【发布时间】:2015-02-07 15:59:01
【问题描述】:
我正在学习如何使用“更多”词法分析器命令。我输入了 ANTLR 书第 281 页中显示的词法分析器语法:
lexer grammar Lexer_To_Test_More_Command ;
LQUOTE : '"' -> more, mode(STR) ;
WS : [ \t\r\n]+ -> skip ;
mode STR ;
STRING : '"' -> mode(DEFAULT_MODE) ;
TEXT : . -> more ;
然后我创建了这个简单的解析器来使用词法分析器:
grammar Parser_To_Test_More_Command ;
import Lexer_To_Test_More_Command ;
test: STRING EOF ;
然后我打开一个 DOS 窗口并输入以下命令:
antlr4 Parser_To_Test_More_Command.g4
生成此警告消息:
警告(155):Parser_To_Test_More_Command.g4:3:29:规则 LQUOTE 包含具有无法识别的常量值的词法分析器命令;词法分析器 解释器可能会产生不正确的输出
我在词法分析器或解析器中做错了吗?
【问题讨论】:
标签: parsing antlr antlr4 lexer