1

假设我有两个语法(并且在某处定义了 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)。有关如何修复它的任何提示?

4

1 回答 1

2

有关如何修复它的任何提示?

不,(AFAIK)这里没有 ANTLR 快捷方式:导入的语法之间不可能进行通信(通过使用范围或通过为导入的语法规则提供参数)。

于 2012-05-26T19:05:59.537 回答