我有两个解析器语法(我们称它们为 Ag 和 Bg)。现在我想将语法 B 导入到语法 A。这是他们两个语法的样子: 语法 A:
parser grammar A;
options {
tokenVocab = testLexer;
}
import B;
@header {
package com.splendit.pli2uct;
}
rule
: ImpLexRule1 | subRule ;
语法 B:
parser grammar B;
@header {
package com.splendit.pli2uct;
}
subRule: ImpLexRule2 ;
但是当我从语法文件构建 java 类时(无论我是使用 antlr ide 还是使用 antlr-maven-plugin),我收到以下错误:error(144): Bg:11:2: redefinition标题动作
但是当我在 Bg Grammar 中保留 header 定义时,生成的 Java 类会出错,因为文件开头没有 noch 包定义。有人可以帮我解决这个问题吗?我真的不知道我做错了什么。
提前感谢伯恩哈德