gpt4 book ai didi

parsing - ANTLR 歧义

转载 作者:行者123 更新时间:2023-12-02 15:27:37 27 4
gpt4 key购买 nike

我需要在 ANTLR 中匹配一条消息,该消息包含由/分隔的 2 个字段第一个字段可以有 1..3 数字,第二个字段可以有 1..2 数字,

这不起作用

msg: f1 '/' f2;

f1: DIGIT(DIGIT(DIGIT)?)? ;
f2: DIGIT(DIGIT)?
  1. 在这种情况下如何避免歧义?
  2. 有没有更优雅的方式用 ANTLR 来表达重复次数?

非常感谢 克里斯

最佳答案

AFAIR(我上次使用 ANTLR 是在不久前),您可以使用“fragment”来避免将 f1 和 f2 作为顶级 token :

msg: f1 '/' f2;

fragment f1: DIGIT(DIGIT(DIGIT)?)? ;
fragment f2: DIGIT(DIGIT)?

这允许您在 f1 和 f2 之间产生歧义,因为它们不必单独匹配。

关于parsing - ANTLR 歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2428568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com