在antlr4语法分析中使用文字吗?

时间:2019-06-10 10:44:30

标签: antlr4

我正在查看Java的解析器和词法分析器语法,可以在here中找到。 Lexer语法定义了记号,例如分号和其他内容。然后,在Parser语法中,使用文字';'而不是编写SEMIhere的使用位置示例。这是为什么?这背后有什么原因吗?

1 个答案:

答案 0 :(得分:1)

如果使用单个字符串文字定义了词法分析器规则(而没有使用相同的文字量定义其他词法分析器规则),例如SEMI: ';';,则可以使用字符串文字来引用该规则,而不是引用其规则名称。

之所以允许这样做,是因为statement ';'之类的内容比statement SEMI之类的内容更具可读性。