示例#1
0
 public void visit(FunctionCallNode fcn)
 {
     foreach (BaseCommand bc in commands)
     {
         if (bc.Match(fcn.Name))
         {
             bc.Execute(vm, fcn);
         }
     }
 }
示例#2
0
        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");
        }
示例#4
0
 public abstract void Execute(VirtualMachine vm, FunctionCallNode node);
示例#5
0
 public override void Execute(VirtualMachine vm, FunctionCallNode node)
 {
     Console.WriteLine(vm.Return.Value);
 }