打字猴:1.700474094e+09
1700474094
1700474095 public int interpreter(HashMap<String,Integer>var){
1700474096
1700474097 return super.left.interpreter(var)+super.right.interpreter(var);
1700474098
1700474099 }
1700474100
1700474101 }
1700474102
1700474103 代码清单27-5 减法解析器
1700474104
1700474105 public class SubExpression extends SymbolExpression{
1700474106
1700474107 public SubExpression(Expression_left,Expression_right){
1700474108
1700474109 super(_left,_right);
1700474110
1700474111 }
1700474112
1700474113 //左右两个表达式相减
1700474114
1700474115 public int interpreter(HashMap<String,Integer>var){
1700474116
1700474117 return super.left.interpreter(var)-super.right.interpreter(var);
1700474118
1700474119 }
1700474120
1700474121 }
1700474122
1700474123 解析器的开发工作已经完成了,但是需求还没有完全实现。我们还需要对解析器进行封装,封装类Calculator如代码清单27-6所示。
1700474124
1700474125 代码清单27-6 解析器封装类
1700474126
1700474127 public class Calculator{
1700474128
1700474129 //定义表达式
1700474130
1700474131 private Expression expression;
1700474132
1700474133 //构造函数传参,并解析
1700474134
1700474135 public Calculator(String expStr){
1700474136
1700474137 //定义一个栈,安排运算的先后顺序
1700474138
1700474139 Stack<Expression>stack=new Stack<Expression>();
1700474140
1700474141 //表达式拆分为字符数组
1700474142
1700474143 char[]charArray=expStr.toCharArray();
[ 上一页 ]  [ :1.700474094e+09 ]  [ 下一页 ]