gpt4 book ai didi

c++ - 弹性和 Bison : how to recognize an array

转载 作者:行者123 更新时间:2023-11-30 02:58:58 25 4
gpt4 key购买 nike

我正在研究 bison 和 flex 以了解口译员的工作方式。我已经做了很多事情,比如范围({INT:INT}{INT:INT:INT})、字符串({string"here comes any text"} ) 等,但我无法决定哪种方法应该是帮助 bison 理解用户是否以 [INT, INT, ID, ID, INT, ..., INT, ID, ID. ..]?

首先想到的是使用 flex 关键字 BEGIN 然后查看行尾,但这似乎很愚蠢,因为您需要很多东西来了解下一个成员是否是INT或者ID,都不是什么好办法。我还能做什么?我宁愿用 Bison 来做,但我不知道如何让 Bison 看起来在 [] 之间递归以获取它们包含的所有内容。我该怎么做?

提前致谢!

最佳答案

简单 - 只需制定一个递归规则。

expr :- INT | ID;
array_expr :- array_expr expr | expr;
array :- '[' array_expr ']';

自从我制作 Bison 以来已经有一段时间了,但这应该非常接近正确。

关于c++ - 弹性和 Bison : how to recognize an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346109/

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