public void visit(FunctionCallNode fcn) { foreach (BaseCommand bc in commands) { if (bc.Match(fcn.Name)) { bc.Execute(vm, fcn); } } }
public override void Execute(VirtualMachine vm, FunctionCallNode node) { Variable variable1 = vm.getVariable(node.Left); Variable variable2 = vm.getVariable(node.Right); if (variable1.Type == VariableType.Number && variable2.Type == VariableType.Number) vm.Return = new Variable(VariableType.Number,(Int32.Parse(variable1.Value) + Int32.Parse(variable2.Value)).ToString()); else vm.Return = new Variable(variable1.Value + variable2.Value); }
public override void Execute(VirtualMachine vm, FunctionCallNode node) { Variable variable1 = vm.getVariable(node.Left); Variable variable2 = vm.getVariable(node.Right); if (variable1.Type == VariableType.Number && variable2.Type == VariableType.Number) vm.Return = new Variable(VariableType.Number, (Int32.Parse(variable1.Value) * Int32.Parse(variable2.Value)).ToString()); else throw new Exception("Cannot multiply strings"); }
public abstract void Execute(VirtualMachine vm, FunctionCallNode node);
public override void Execute(VirtualMachine vm, FunctionCallNode node) { Console.WriteLine(vm.Return.Value); }