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
あり、文字列の一種です)。
これは明らかに左再帰ですが、これを修正する方法がわかりません。