Compiler construction 获取antlr3中语法规则的文本

Compiler construction 获取antlr3中语法规则的文本,compiler-construction,antlr,antlr3,Compiler Construction,Antlr,Antlr3,我有一条语法规则: type_specifier:INT | VOID INT和void是词法分析的两个正则表达式,它们是: INT:'int'; VOID:'void'; 我的语法中还有一条规则: var_declaration:type_specifier ID SEMIC 我想在达到此规则后获取类型\说明符种类(int或void),如何在antlr中获取它?启用生成AST,允许遍历树(默认情况下,它实际上只是一个列表)以获取找到的每个标记的类型和文本。要执行此操作,请在语法选

我有一条语法规则:

 type_specifier:INT | VOID
INT和void是词法分析的两个正则表达式,它们是:

 INT:'int';
 VOID:'void';
我的语法中还有一条规则:

 var_declaration:type_specifier ID SEMIC

我想在达到此规则后获取类型\说明符种类(int或void),如何在antlr中获取它?

启用生成AST,允许遍历树(默认情况下,它实际上只是一个列表)以获取找到的每个标记的类型和文本。要执行此操作,请在语法选项中设置输出类型:

options {
  ...
  output = AST;
  ...
}
在您的代码中,您可以使用运行时在返回的树中请求子节点、它们的文本和类型等。详细信息取决于您的目标语言,但原则对于所有语言都是相同的