It looks like your code is a snippet, so there may be a few things preventing your grammar from compiling.
To start, if you check the documentation, you can see that there are two forms for overloading operations.
You are using the syntax to give the types to define the operations. Instead, you should use this existing code with the syntax for defining the operations.
oper sentence = overload {...} ;
The syntax that you are using should be used to define your types before you make the overload oper.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…