在ANTLR语法中,先调用词法分析器规则,再调用解析器规则。
以下是一个简单的ANTLR语法示例,演示了词法分析器和解析器规则的调用顺序:
grammar MyGrammar;
/* Lexer rules */
ID : [a-zA-Z]+;
INT : [0-9]+;
/* Parser rules */
expr : ID '+' INT;
在这个示例中,表达式规则 expr
由一个标识符和一个整数相加组成。当ANTLR语法分析器解析输入时,它会首先调用词法分析器规则,创建词法单元。然后,解析器使用这些单元来创建语法树并生成代码。
在上述ANTLR语法中,输入“foo + 42”将首先解析为两个词法单元:“ID”和“INT”。然后解析器将使用这些词法单元来创建语法树,并生成符合规则 expr
的代码。
总之,ANTLR语法中的解析器和词法分析器规则的调用顺序始终为词法分析器->解析器。