打字猴:1.700474073e+09
1700474073 this.left=_left;
1700474074
1700474075 this.right=_right;
1700474076
1700474077 }
1700474078
1700474079 }
1700474080
1700474081 这个解析过程还是比较有意思的,每个运算符号都只和自己左右两个数字有关系,但左右两个数字有可能也是一个解析的结果,无论何种类型,都是Expression的实现类,于是在对运算符解析的子类中增加了一个构造函数,传递左右两个表达式。具体的加、减法解析器如代码清单27-4、代码清单27-5所示。
1700474082
1700474083 代码清单27-4 加法解析器
1700474084
1700474085 public class AddExpression extends SymbolExpression{
1700474086
1700474087 public AddExpression(Expression_left,Expression_right){
1700474088
1700474089 super(_left,_right);
1700474090
1700474091 }
1700474092
1700474093 //把左右两个表达式运算的结果加起来
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
[ 上一页 ]  [ :1.700474073e+09 ]  [ 下一页 ]