62 } |
62 } |
63 |
63 |
64 /** |
64 /** |
65 * Check the expression |
65 * Check the expression |
66 */ |
66 */ |
67 public Vset checkValue(Environment env, Context ctx, Vset vset, Hashtable exp) { |
67 public Vset checkValue(Environment env, Context ctx, Vset vset, Hashtable<Object, Object> exp) { |
68 ConditionVars cvars = cond.checkCondition(env, ctx, vset, exp); |
68 ConditionVars cvars = cond.checkCondition(env, ctx, vset, exp); |
69 vset = left.checkValue(env, ctx, cvars.vsTrue, exp).join( |
69 vset = left.checkValue(env, ctx, cvars.vsTrue, exp).join( |
70 right.checkValue(env, ctx, cvars.vsFalse, exp) ); |
70 right.checkValue(env, ctx, cvars.vsFalse, exp) ); |
71 cond = convert(env, ctx, Type.tBoolean, cond); |
71 cond = convert(env, ctx, Type.tBoolean, cond); |
72 |
72 |
105 left = convert(env, ctx, type, left); |
105 left = convert(env, ctx, type, left); |
106 right = convert(env, ctx, type, right); |
106 right = convert(env, ctx, type, right); |
107 return vset; |
107 return vset; |
108 } |
108 } |
109 |
109 |
110 public Vset check(Environment env, Context ctx, Vset vset, Hashtable exp) { |
110 public Vset check(Environment env, Context ctx, Vset vset, Hashtable<Object, Object> exp) { |
111 vset = cond.checkValue(env, ctx, vset, exp); |
111 vset = cond.checkValue(env, ctx, vset, exp); |
112 cond = convert(env, ctx, Type.tBoolean, cond); |
112 cond = convert(env, ctx, Type.tBoolean, cond); |
113 return left.check(env, ctx, vset.copy(), exp).join(right.check(env, ctx, vset, exp)); |
113 return left.check(env, ctx, vset.copy(), exp).join(right.check(env, ctx, vset, exp)); |
114 } |
114 } |
115 |
115 |