2
我需要在ANTLR匹配包含由/ 第一個字段分開可以具有1..3數字2個字段的消息,第二字段可以具有1..2數字ANTLR歧義
這不起作用
msg: f1 '/' f2;
f1: DIGIT(DIGIT(DIGIT)?)? ;
f2: DIGIT(DIGIT)?
- 如何避免在這種情況下的歧義?
- 有沒有更優雅的方式來表示ANTLR中的重複次數?
非常感謝 克里斯
我需要在ANTLR匹配包含由/ 第一個字段分開可以具有1..3數字2個字段的消息,第二字段可以具有1..2數字ANTLR歧義
這不起作用
msg: f1 '/' f2;
f1: DIGIT(DIGIT(DIGIT)?)? ;
f2: DIGIT(DIGIT)?
非常感謝 克里斯
AFAIR(這是前一段時間我最後一次使用ANTLR),你可以使用「片段」,以避免f1和f2爲頂級令牌:
msg: f1 '/' f2;
fragment f1: DIGIT(DIGIT(DIGIT)?)? ;
fragment f2: DIGIT(DIGIT)?
這可以讓你在f1和f2之間有一個歧義,因爲它們不需要自己匹配。
我仍然得到同樣的錯誤:-([MismatchedTokenException異常] 感謝 – kcris 2010-03-11 21:16:59
對不起,我的錯!我解決它;如果DIGIT太,這是行不通的片段;如果數字是不是一個片段,它的作品! ! 謝謝 – kcris 2010-03-11 21:20:21