public void Execute(UltimateVirtualMachine vm, List<Token> parameters) { if (vm.Variables.ContainsKey(parameters[0].Value)) { if (vm.Variables.GetValue(parameters[0].Value).type == TokenEnumeration.Integer) { int result; if (int.TryParse(vm.ReturnValue.Value.ToString(), out result)) { vm.Variables[parameters[0].Value].Value = vm.ReturnValue.Value; } else { Console.WriteLine("Variable type mismatch"); } } else { vm.Variables[parameters[0].Value].Value = vm.ReturnValue.Value; } } else { vm.Variables.Add(parameters[0].Value, vm.ReturnValue.Copy()); } }
public void Execute(UltimateVirtualMachine vm, List<Token> parameters) { if (vm.Variables.GetValue(parameters[0].Value).type == TokenEnumeration.Number && vm.Variables.GetValue(parameters[1].Value).type == TokenEnumeration.Number) { vm.ReturnValue.Value = Convert.ToInt32(vm.Variables.GetValue(parameters[0].Value).Value) * Convert.ToInt32(vm.Variables.GetValue(parameters[1].Value).Value); vm.ReturnValue.type = TokenEnumeration.Number; } }
public void Execute(UltimateVirtualMachine vm, List<Token> parameters) { if (vm.Variables.GetValue(parameters[0].Value).type == TokenEnumeration.Number && vm.Variables.GetValue(parameters[1].Value).type == TokenEnumeration.Number) { vm.ReturnValue.Value = Convert.ToInt32(vm.Variables.GetValue(parameters[0].Value).Value) - Convert.ToInt32(vm.Variables.GetValue(parameters[1].Value).Value); vm.ReturnValue.type = TokenEnumeration.Number; } else if (vm.Variables.GetValue(parameters[0].Value).type == TokenEnumeration.QuotedString && vm.Variables.GetValue(parameters[1].Value).type == TokenEnumeration.QuotedString) { vm.ReturnValue.Value = vm.Variables.GetValue(parameters[0].Value).Value.ToString().Replace(vm.Variables.GetValue(parameters[1].Value).Value.ToString(), ""); vm.ReturnValue.type = TokenEnumeration.QuotedString; } }
public void Execute(UltimateVirtualMachine vm, List<Token> parameters) { if (!vm.Variables.ContainsKey(parameters[0].Value)) { Console.WriteLine(parameters[0].Value + " is not declared"); return; } if (!vm.Variables.ContainsKey(parameters[1].Value)) { Console.WriteLine(parameters[1].Value + " is not declared"); return; } if (vm.Variables.GetValue(parameters[0].Value).type == TokenEnumeration.Number && vm.Variables.GetValue(parameters[1].Value).type == TokenEnumeration.Number) { vm.ReturnValue.Value = Convert.ToInt32(vm.Variables.GetValue(parameters[0].Value).Value) < Convert.ToInt32(vm.Variables.GetValue(parameters[1].Value).Value); vm.ReturnValue.type = TokenEnumeration.Bool; } }
public void Execute(UltimateVirtualMachine vm, List<Token> parameters) { if(vm.Variables.ContainsKey(parameters[0].Value)) { vm.ReturnValue.Value = vm.Variables[parameters[0].Value].Value; TokenEnumeration type = vm.Variables[parameters[0].Value].type; switch (vm.Variables[parameters[0].Value].type) { case TokenEnumeration.Integer: type = TokenEnumeration.Number; break; case TokenEnumeration.String: type = TokenEnumeration.QuotedString; break; } vm.ReturnValue.type = type; } else { Console.WriteLine("Variable " + parameters[0].Value + " was not declared"); } }