如何修改 ANTLR4 语法以支持运算符的左关联?

How can I modify ANTLR4 grammar such that left association of operator can be supported?

我想支持以下输入,因为它具有提供的语法。

这行不通

with [{id: 1},{id: 2}] as a
return a[0].id, a[1].id

如果我们将其更改为:

with [{id: 1},{id: 2}] as a
return (a[0]).id, (a[1]).id

语法的相关部分在这里:

oC_PropertyOrLabelsExpression
                          :  oC_Atom ( SP? oC_PropertyLookup )* ( SP? oC_NodeLabels )? ;

这是完整的语法: https://s3.amazonaws.com/artifacts.opencypher.org/M18/Cypher.g4

我们可以通过修改语法来做些什么吗?

变化:

oC_StringListNullOperatorExpression
 :  oC_PropertyOrLabelsExpression ( oC_StringOperatorExpression
                                  | oC_ListOperatorExpression
                                  | oC_NullOperatorExpression
                                  )*
 ;

进入:

oC_StringListNullOperatorExpression
 :  oC_PropertyOrLabelsExpression ( oC_StringOperatorExpression
                                  | oC_ListOperatorExpression
                                  | oC_NullOperatorExpression
                                  | oC_PropertyLookup
                                  )*
 ;