我有一个语法规则:
type_specifier:INT | VOID
和INT和void是词法分析的2个正则表达式:
INT:'int';
VOID:'void';
我的语法中还有另一条规则:
var_declaration:type_specifier ID SEMIC
我希望在达到此规则后得到type_specifier kind(int或void)如何在antlr中获取它?
答案 0 :(得分:0)
启用生成AST,允许遍历树(默认情况下实际上只是一个列表)以获取每个找到的标记的类型和文本。为此,请在语法选项中设置输出类型:
options {
...
output = AST;
...
}
在您的代码中,您可以使用运行时在返回的树中询问子节点,它们的文本和类型等。详细信息取决于您的目标语言,但所有语言的原则都是相同的。