Parsing ANTLR模糊度
我需要在Parsing ANTLR模糊度,parsing,antlr,ambiguous-grammar,Parsing,Antlr,Ambiguous Grammar,我需要在ANTLR中匹配一条消息,该消息包含两个由/ 第一个字段可以有1..3位数,第二个字段可以有1..2位数 这行不通 msg: f1 '/' f2; f1: DIGIT(DIGIT(DIGIT)?)? ; f2: DIGIT(DIGIT)? 在这种情况下,我如何避免歧义 用ANTLR表示重复次数是否有更优雅的方法 非常感谢 ChrisAFAIR(我上次使用ANTLR是很久以前的事了),您可以使用“fragment”来避免将f1和f2作为顶级标记: msg: f1 '/' f2; fr
ANTLR
中匹配一条消息,该消息包含两个由/
第一个字段可以有1..3位数,第二个字段可以有1..2位数
这行不通
msg: f1 '/' f2;
f1: DIGIT(DIGIT(DIGIT)?)? ;
f2: DIGIT(DIGIT)?
在这种情况下,我如何避免歧义
用ANTLR
表示重复次数是否有更优雅的方法
非常感谢
ChrisAFAIR(我上次使用ANTLR是很久以前的事了),您可以使用“fragment”来避免将f1和f2作为顶级标记:
msg: f1 '/' f2;
fragment f1: DIGIT(DIGIT(DIGIT)?)? ;
fragment f2: DIGIT(DIGIT)?
这使得f1和f2之间存在歧义,因为它们不必自己匹配。我仍然得到相同的错误:-([MismatchedTokenException]谢谢!对不起,我的错误:我解决了它;如果DIGIT也是一个片段,它不起作用;如果DIGIT不是片段,它起作用!!谢谢