gpt4 book ai didi

java - 编写解释器,需要帮助表示这些数据

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:11 25 4
gpt4 key购买 nike

我正在编写一个小型解释器来显示巴科斯-诺尔形式的示例,我想寻求代表一些数据的帮助。

<statement> : <assignment> | HALT | PRINT(<variable>)
<assignment> : <variable> = <expression>
<expression> : <term> | <term><operator><expression>
<term> : <number> | <variable>
<variable> : x | y | z
<operator> : + | -
<number> : 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

正如您所看到的,所有内容都封装在一条语句中。然后是赋值和表达式。表达式封装了一个术语,术语封装了一个数字和一个变量。赋值封装了变量和表达式。我的问题是我使用什么数据结构来表示所有这些?我认为它应该是一个集合,但这提出了一个问题:我应该有嵌套集合吗?

最佳答案

这看起来像一个简单的表达式解析器,添加了一些命令(PRINT 和 HALT)。解析此类内容的最简单方法可能是使用 recursive descent parser 。如果您正在构建解释器,则可以在解析时解释表达式,或者构建表达式的后缀(或前缀)表示形式以供以后解释。

关于java - 编写解释器,需要帮助表示这些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732176/

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