我有一个简短的ANTLR语法:
query : word (WS word)+;
word : simpleword | compoundword;
compoundword : simpleword (NONWORD+ simpleword)+ | NONWORD+ simpleword (NONWORD+ simpleword)* NONWORD*;
simpleword : SIMPLEWORD;
SIMPLEWORD: [0-9a-zA-Z]+;
NONWORD: [-_];
WS : (' ' | '\r' | '\n');
但是生成的解析器无法解析字符串“abc-def qwe qaz”,消息“输入不匹配” - “期待WS”。
任何提示如何解决这个问题?为什么“abc-def”不匹配复合词制作(第一种选择)?
答案 0 :(得分:1)
实际上这个问题不在问题中发布的代码之外 - 我还有其他一些作品,但我的印象是,如果无法从我最顶级的作品中找到它们,它们不应该影响我的解析器。他们做到了。