鉴于编写了一个用自定义语言编译简单程序的工具,该工具使用解析器来解析简单的 .txt 文件程序,我正在寻找一种有效的方法来存储和评估表达式。更具体地说,表达式可以被评估为布尔、双精度和可能的其他类型。双精度表达式也可以包含数学函数。
我需要能够存储表达式,以便在执行包含它的指令时对其进行评估。
例如,应该有一个 Expression 类,其子级可以是 DoubleExpression 或 BoolExpression。DoubleExpression 可以是文字、一元表达式(平方根、正弦等)或二元表达式(比较、乘法等)。程序需要在不丢失信息的情况下存储这些指令。
因此,表示乘法 a * 2 的表达式应该存储 a 是一个全局变量,并且应该能够在每次评估该表达式时计算其结果。