public int EvalInt(Vm vm) { return(var?.EvalInt(vm) ?? number?.EvalInt(vm) ?? expr?.EvalInt(vm) ?? rnd.EvalInt(vm)); }
public void ExecuteIn(Vm vm) { var lhs = lhExpr.EvalInt(vm); RelOp relOp; if (relop.s == ">") { relOp = new GT(); } else if (relop.s == ">=") { relOp = new GTE(); } else if (relop.s == "<") { relOp = new LT(); } else if (relop.s == "<=") { relOp = new LTE(); } else if (relop.s == "<>") { relOp = new NEQ(); } else { relOp = new EQ(); } var rhs = rhExpr.EvalInt(vm); var pass = relOp.Execute(lhs, rhs); if (pass) { statement.Command.ExecuteIn(vm); } }
public void ExecuteIn(Vm vm) { vm[var.Name] = expr.EvalInt(vm); }
public void ExecuteIn(Vm vm) { var lineNumber = expr.EvalInt(vm); vm.Gosub(lineNumber); }
public int EvalInt(Vm vm) { var ulim = expr.EvalInt(vm); return(vm.Random(ulim)); }