繁体   English   中英

此ANTLR 4 Lexer文件中的“语法分析器不允许使用解析器规则'通道'”错误是什么?

[英]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。 如所附图片所示,我收到错误“词法分析器中不允许使用解析器规则'通道'”

这是Lexer文件中的错误

纯词法分析器语法只能包含词法分析器规则。 我认为这里正在发生的事情是您正在使用的工具将“规则” channels解释为解析器规则,因为它不是以大写字母开头,因此在这种仅用于词法分析器的语法中不合适。

但是,迈克的评论是正确的。 channels构造(当前)是词法分析器文件的有效ANTLR语法。 参见本页。 它应该放在lexer语法文件中,因此,我唯一能推测出的错误是您使用的工具(IDE)不了解channels自定义规范语法。

请注意,并不是该github列表中的每个语法都是完美的,也不是ANTLR的一部分,而是由不同的作者提供的,有时还与您在任何给定时刻使用的ANTLR版本不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM