有循环引用时,如何将ANTLR4解析器语法拆分为单独的文件?

时间:2018-11-17 10:29:36

标签: antlr4

我正在尝试使一种语法在解析规则中具有循环引用的语言,如下所示:

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

当所有内容都在一个文件中时它可以工作,但是我想将有关表达式的所有内容都放在文件Expressions.g4中,将语句放在Statements.g4中,依此类推。当我分割此语法并在需要时添加import指令时,ANTLR会抱怨引用未定义的规则。

当然,在分离词法分析器和语法分析器语法之后,诸如';'之类的隐式标记将被显式替换,它们在这里是为了使本示例更清楚。

0 个答案:

没有答案