假设我有两个语法(并且某个地方有Lexer定义),ParserA和ParserB。
在ParserA中,我有以下代码:
parser grammar ParserA;
classDeclaration
scope {
ST mList;
}
...
ParserB就像:
parser grammar ParserB;
import ParserA;
methodDeclaration : something something { $classDeclaration::mList.add(...) };
由于classDeclaration位于不同的类(和文件)中,因此操作中的代码将无法编译(通过javac)。关于如何修复它的任何提示?
答案 0 :(得分:2)
有关如何修复它的任何提示?
不,这里没有(AFAIK)ANTLR快捷方式:导入的语法之间无法进行通信(通过使用范围或通过为导入的语法规则提供参数)。