SOで見つけたすべての解決策は、「ANTLR4に切り替える」でした。これは、使用しているため、実際にはオプションではありませんantlr4ruby(これはANTLR3であり、4は「for」を意味します)。
プロパティ アクセスのルールを作成したいのですが、次のように一致する必要があります。
variable
variable.property
variable.prop.prop
etc.
ここに私が持っているものがあります:
variable: NAME -> ^(VARIABLE NAME) | variable DOT NAME -> ^(ACCESS variable NAME);
(VARIABLEとACCESSは後で使用するパーサー トークンでNAMEあり、文字列の一種です)。
これは明らかに左再帰ですが、これを修正する方法がわかりません。