예제 #1
0
        private List<string> WriteArithmeticInstructions(string operation, ArithmeticAssemblyEmitter emitter)
        {
            List<string> instructions = new List<string>();

            switch (operation)
            {
                case "add":
                    instructions.AddRange(emitter.EmitAdd());
                    break;
                case "sub":
                    instructions.AddRange(emitter.EmitSub());
                    break;
                case "neg":
                    instructions.AddRange(emitter.EmitNeg());
                    break;
                case "eq":
                    instructions.AddRange(emitter.EmitEq());
                    break;
                case "gt":
                    instructions.AddRange(emitter.EmitGt());
                    break;
                case "lt":
                    instructions.AddRange(emitter.EmitLt());
                    break;
                case "and":
                    instructions.AddRange(emitter.EmitAnd());
                    break;
                case "or":
                    instructions.AddRange(emitter.EmitOr());
                    break;
                case "not":
                    instructions.AddRange(emitter.EmitNot());
                    break;
            }

            return instructions;
        }