gpt4 book ai didi

parsing - 表示逗号分隔列表的语法表达式

转载 作者:行者123 更新时间:2023-12-03 21:42:47 26 4
gpt4 key购买 nike

根据我的经验,形式语法通常以类似于以下的形式表达逗号分隔的列表:

foo_list -> foo ("," foo)*

有哪些替代方法可以避免提及 foo两次?虽然这个人为的例子可能看起来很无辜,但我遇到的是非平凡的表达式而不是 foo .例如:
foo_list -> ( ( bar | baz | cat ) ) ( "," ( bar | baz | cat ) )*

最佳答案

我记得我曾经使用过的一个(专有)解析器生成器,它将这个产品写成

foo_list ::= <* bar | baz | cat ; "," *>

是的,正是这样。上面的实际元字符是有争议的,但我认为一般方法是可以接受的。

在编写另一个解析器生成器时,我曾考虑过类似的东西,但为了保持模型简单而放弃了它。

语法图当然可以很好地表示它,而不会出现不必要的重复:

foo_list

关于parsing - 表示逗号分隔列表的语法表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5017762/

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