Как разделить грамматику синтаксического анализатора ANTLR4 на отдельные файлы при наличии циклических ссылок? - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь создать язык, грамматика которого имеет циклические ссылки в правилах синтаксического анализа, например:

statement  : 'return' expression ';' ;
expression : ID | lambda ;
lambda     : 'func' '{' statement '}' ;

Это работает, когда все находится в одном файле, но я хочу поместить все выражения вфайл Expressions.g4, заявления в Statements.g4 и т. д.Когда я разделяю эту грамматику и добавляю директивы import, где это необходимо, ANTLR жалуется на ссылку на неопределенное правило.

Конечно, неявные токены, такие как ';', заменяются явными после разделения грамматик лексера и синтаксического анализатора, ониздесь, чтобы проиллюстрировать этот пример.

...