引入导入时重新定义'init'动作

时间:2013-06-13 10:21:59

标签: antlr4

我的解析器由几个规则组成,其中大部分都以@init动作开头。现在,由于我的文件变得非常大,我决定为词法规则制作单独的文件LexerRules.g4并使用

grammar TermParser;
import LexerRules;

现在如果我使用我的别名ANTLR4;我会遇到以下错误。

error(94): TermParser.g4:163:1: redefinition of 'init' action
error(94): TermParser.g4:189:1: redefinition of 'init' action
error(94): TermParser.g4:200:1: redefinition of 'init' action
error(94): TermParser.g4:212:1: redefinition of 'init' action
error(94): TermParser.g4:230:1: redefinition of 'init' action
error(94): TermParser.g4:296:1: redefinition of 'init' action
error(94): TermParser.g4:315:1: redefinition of 'init' action
error(94): TermParser.g4:359:1: redefinition of 'init' action
error(94): TermParser.g4:381:1: redefinition of 'init' action
error(94): TermParser.g4:440:1: redefinition of 'init' action

我如何分离解析器和词法分析器规则与在多个解析器规则中使用@init动作有什么关系?

当我拥有一个大文件时,我没遇到任何问题:lexer以及解析器规则。

此外,导入不会使ANTLRWORKS 2中的主语法文件摆脱隐式定义警告。

0 个答案:

没有答案