[英]What is “parser rule 'channels' not allowed in lexer” error in this ANTLR 4 Lexer file?
我正在尝试从https://github.com/antlr/grammars-v4/tree/master/mysql上的MySQL .g4文件构建解析器和Lexer。 如所附图片所示,我收到错误“词法分析器中不允许使用解析器规则'通道'” 。
纯词法分析器语法只能包含词法分析器规则。 我认为这里正在发生的事情是您正在使用的工具将“规则” channels
解释为解析器规则,因为它不是以大写字母开头,因此在这种仅用于词法分析器的语法中不合适。
但是,迈克的评论是正确的。 此channels
构造(当前)是词法分析器文件的有效ANTLR语法。 参见本页。 。 它应该放在lexer语法文件中,因此,我唯一能推测出的错误是您使用的工具(IDE)不了解channels
自定义规范语法。
请注意,并不是该github列表中的每个语法都是完美的,也不是ANTLR的一部分,而是由不同的作者提供的,有时还与您在任何给定时刻使用的ANTLR版本不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.