public override WExpr InterpretModel(Context context, Model model, ProgramBuilder builder) { int opChoice = GetConcChoice(context, model); WCComparison.CompareType op = (opChoice == 0) ? WCComparison.CompareType.eq : WCComparison.CompareType.neq; WExpr rv = new WCComparison((WEVar)x.InterpretModel(context, model, builder), op, new WEConst(0)); builder.CheckExpr(rv); return(rv); }
public override WExpr InterpretModel(Context context, Model model, ProgramBuilder builder) { WEVar lhsConc = (WEVar)lhs.InterpretModel(context, model, builder); WEOperand assignConc = (WEOperand)assign.InterpretModel(context, model, builder); WExpr rv = new WEArith(lhsConc, assignConc, WEArith.ArithOp.plus, 0); builder.CheckExpr(rv); return(rv); }
public override WExpr InterpretModel(Context context, Model model, ProgramBuilder builder) { WEVar arg1Conc = (WEVar)arg1.InterpretModel(context, model, builder); WCComparison.CompareType comp = (WCComparison.CompareType) this.GetConcChoice(context, model); WEOperand arg2Conc = (WEOperand)arg2.InterpretModel(context, model, builder); WExpr rv = new WCComparison(arg1Conc, comp, arg2Conc); builder.CheckExpr(rv); return(rv); }
public override WExpr InterpretModel(Context context, Model model, ProgramBuilder builder) { WEVar argConc = (WEVar)arg.InterpretModel(context, model, builder); WEArith.ArithOp op = (WEArith.ArithOp)GetConcChoice(context, model); WExpr rv = new WEArith(argConc, argConc, op, builder.NewConst(1)); builder.CheckExpr(rv); return(rv); }
public override WExpr InterpretModel(Context context, Model model, ProgramBuilder builder) { WEVar lhsConc = (WEVar)lhs.InterpretModel(context, model, builder); WEArith.ArithOp op = (WEArith.ArithOp)(GetConcChoice(context, model) + 2); WEOperand arg1Conc = (WEOperand)arg1.InterpretModel(context, model, builder); WEOperand arg2Conc = (WEOperand)arg2.InterpretModel(context, model, builder); WExpr rv = new WEArith(lhsConc, arg1Conc, op, arg2Conc); builder.CheckExpr(rv); return(rv); }