コード例 #1
0
ファイル: Program.cs プロジェクト: D-Eijkelenboom/DP2
        static void Main(string[] args)
        {
            string[] lines = File.ReadAllLines(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "//snippets//example.txt");
            Tokenizer tokenizer = new Tokenizer(lines);
            Compiler compiler = new Compiler();
            compiler.compile(tokenizer.getTokens());
            VirtualMachine vm = new VirtualMachine();
            vm.Run(compiler.Nodes);

            Console.ReadLine();
        }
コード例 #2
0
ファイル: PlusCommand.cs プロジェクト: D-Eijkelenboom/DP2
        public override void Execute(VirtualMachine vm, IList<string> parameterNames)
        {
            var variable1 = vm.getVariable(parameterNames[1]);
            var variable2 = vm.getVariable(parameterNames[2]);

            int var1;
            int var2;

            if (Int32.TryParse(variable1, out var1) && Int32.TryParse(variable2, out var2))
                vm.ReturnValue = (var1 + var2)
                                  .ToString();
            else
                vm.ReturnValue = variable1 + variable2;
        }
コード例 #3
0
ファイル: DivideCommand.cs プロジェクト: D-Eijkelenboom/DP2
        public override void Execute(VirtualMachine vm, IList<string> parameterNames)
        {
            var variable1 = vm.getVariable(parameterNames[1]);
            var variable2 = vm.getVariable(parameterNames[2]);

            int var1;
            int var2;

            if (Int32.TryParse(variable1, out var1) && Int32.TryParse(variable2, out var2))
                vm.ReturnValue = (var1 / var2)
                                  .ToString();
            else
                Console.WriteLine("Specified operation could not be completed, given variable not a integer");
        }
コード例 #4
0
ファイル: MinusCommand.cs プロジェクト: D-Eijkelenboom/DP2
        public override void Execute(VirtualMachine vm, IList<string> parameterNames)
        {
            var variable1 = vm.getVariable(parameterNames[1]);
            var variable2 = vm.getVariable(parameterNames[2]);

            int var1;
            int var2;

            if (Int32.TryParse(variable1, out var1) && Int32.TryParse(variable2, out var2))
                vm.ReturnValue = (var1 - var2)
                                  .ToString();
            else
                if(variable1.Contains(variable2))
                {
                    variable1.Replace(variable2, "");
                }
                else
                {
                    Console.WriteLine("String does not contain substring");
                }
        }
コード例 #5
0
ファイル: BaseCommand.cs プロジェクト: D-Eijkelenboom/DP2
 public abstract void Execute(VirtualMachine vm, IList<string> parameters);
コード例 #6
0
 public override void Execute(VirtualMachine vm, IList<string> parameters)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
 public override void Execute(VirtualMachine vm, IList<string> parameters)
 {
     vm.setVariable(parameters[1], parameters[2]);
 }
コード例 #8
0
ファイル: NextNodeVisitor.cs プロジェクト: D-Eijkelenboom/DP2
 public NextNodeVisitor(VirtualMachine vm)
 {
     virtualMachine = vm;
 }
コード例 #9
0
ファイル: AreEqualCommand.cs プロジェクト: D-Eijkelenboom/DP2
 public override void Execute(VirtualMachine vm, IList<string> parameters)
 {
     vm.ReturnValue = Convert.ToString(vm.getVariable(parameters[1]) == vm.getVariable(parameters[2]));
 }
コード例 #10
0
 public override void Execute(VirtualMachine vm, IList<string> parameters)
 {
     vm.ReturnValue = parameters[1];
 }