Java 有没有可能让Antlr4从基本语法词法器而不是gener词法器生成词法器?
我有一个名为Java 有没有可能让Antlr4从基本语法词法器而不是gener词法器生成词法器?,java,parsing,antlr,antlr4,lexer,Java,Parsing,Antlr,Antlr4,Lexer,我有一个名为BasicTokens的lexer grammar,它是我的语言的一组基本标记,有null、true、false等标记 现在,当我创建解析器语法时,说BasicGrammar,它导入的是BasicTokens,另一个语法叫做InheritedGrammar,它导入的是BasicGrammar 当Antlr4为InheritedGrammar生成解析器时,它包含了BasicGrammar中已经定义的所有规则 有没有办法让Antlr只描述在InheritedGrammar中生成的规则,而
BasicTokens
的lexer grammar
,它是我的语言的一组基本标记,有null
、true
、false
等标记
现在,当我创建解析器语法时,说BasicGrammar
,它导入的是BasicTokens
,另一个语法叫做InheritedGrammar
,它导入的是BasicGrammar
当Antlr4为InheritedGrammar
生成解析器时,它包含了BasicGrammar
中已经定义的所有规则
有没有办法让Antlr只描述在
InheritedGrammar
中生成的规则,而不描述在BasicGrammar
中生成的规则,也可以继承BasicGrammar
而不是Parser
?这是不可能的,因为Antlr 4实现导入的方式
如果语法x
导入语法y
,操作如下:
y
(及其所有规则)x
中的规则添加到规则集合中。如果发生任何名称冲突,请将y
中的规则替换为x
中的规则当您到达代码生成器时,规则层次结构已完全扁平化。是否有方法在不导入语法的情况下引用语法?