ANTLR3 взаимно леворекурсивное правило

Каждое решение, которое я нашел на SO, было "переключение на ANTLR4", что на самом деле не вариант, потому что я использую antlr4ruby (что является ANTLR3, 4 означает "для").

Я хочу построить правило для доступа к свойству, оно должно соответствовать что-то вроде этого:

variable
variable.property
variable.prop.prop
etc.

вот что у меня есть:

variable: NAME -> ^(VARIABLE NAME) | variable DOT NAME -> ^(ACCESS variable NAME);

(VARIABLE а также ACCESS являются токены парсера для использования позже, NAME это своего рода строка).

Это явно левый рекурсив, но я понятия не имею, как это исправить.

0 ответов

Другие вопросы по тегам