假设我的语法具有解析器规则以匹配多个特定字符串之一。 在语法中做正确的事情是为每个特定字符串制作备用解析器规则,还是保持解析器规则的一般性并解析访问者子类中的字符串?
答案 0 :(得分:2)
如果特定字符串有意义(例如DSL中的关键字),则听起来像是你想要的标记。无论您在语法中有什么规则,都可以引用您创建的令牌。
通常,最好让你的语法尽可能多地完成解析器的工作,而不是过度概括并且必须编写一堆额外的代码。
请参阅以下内容:http://www.antlr.org/wiki/display/ANTLR4/Grammar+Structure