考虑到编写一个使用解析器解析简单的.txt文件程序的自定义语言编译简单程序的工具,我正在寻找一种存储和计算表达式的有效方法。 更具体地说,表达式可以被计算为boolean,double和其他类型。双重表达式也可以包含数学函数。
我需要能够存储表达式,以便在执行包含它的指令时对其进行评估。
例如,应该有一个Expression类,其子项可以是DoubleExpression或BoolExpression。 DoubleExpression可以是文字,一元表达(平方根,正弦等)或二元表达式(比较,乘法,......)。 程序需要存储这些指令而不会丢失信息。
因此,表示乘法a * 2的表达式应该存储a是一个全局变量,并且应该能够在每次计算该表达式时计算其结果。
答案 0 :(得分:0)
String类有很多实用程序,比如逐字阅读,StringTokenizer也是如此。您还应该查看扫描仪课程。 IO知识是必须的。
答案 1 :(得分:0)
不确定这是否是您正在寻找的,但几年前我为扩展的FTP脚本语言编写了一个相当广泛的表达式解析器和求值器。源代码位于:
david.tribble.com/src/java/default.html#tribble.net.ftp.shell
您将对CommandParser.parseExpr()
方法感兴趣,该方法分析表达式并构建表达式树,以及Interp.evalExpr()
方法,它会评估这些树。