ANTLR4解析器规则粒度

ANTLR4解析器规则粒度,antlr4,Antlr4,假设我有一个语法,它有一个解析器规则来匹配几个特定字符串中的一个。 语法中正确的做法是为每个特定字符串创建备用语法分析器规则,还是保持语法分析器规则的通用性并在访问者子类中解码该字符串?如果特定字符串有意义(例如DSL中的关键字),听起来您需要令牌。语法中的任何规则都可以引用您创建的标记 一般来说,最好让语法尽可能多地完成语法分析器的工作,而不是过度概括和编写大量额外的代码 请参见以下内容:太好了!这是我的本能,我用代币代替,而不是不必要地把事情复杂化。谢谢你的帮助!

假设我有一个语法,它有一个解析器规则来匹配几个特定字符串中的一个。
语法中正确的做法是为每个特定字符串创建备用语法分析器规则,还是保持语法分析器规则的通用性并在访问者子类中解码该字符串?

如果特定字符串有意义(例如DSL中的关键字),听起来您需要令牌。语法中的任何规则都可以引用您创建的标记

一般来说,最好让语法尽可能多地完成语法分析器的工作,而不是过度概括和编写大量额外的代码


请参见以下内容:

太好了!这是我的本能,我用代币代替,而不是不必要地把事情复杂化。谢谢你的帮助!