コード例 #1
0
            public bool CheckCondition(RegisterCondition condition)
            {
                CheckRegister(condition.Register);
                int registerValue = Data[condition.Register];

                switch (condition.Condition)
                {
                case "==": return(registerValue == condition.Value);

                case "!=": return(registerValue != condition.Value);

                case ">": return(registerValue > condition.Value);

                case "<": return(registerValue < condition.Value);

                case ">=": return(registerValue >= condition.Value);

                case "<=": return(registerValue <= condition.Value);
                }

                return(false);
            }
コード例 #2
0
        public static Instruction ParseLine(string line)
        {
            string[] lineItems = line.Split(new [] { " " }, StringSplitOptions.RemoveEmptyEntries);


            RegisterCondition condition = new RegisterCondition
            {
                Register  = lineItems[4],
                Condition = lineItems[5],
                Value     = int.Parse(lineItems[6])
            };

            Instruction instruction = new Instruction
            {
                Register  = lineItems[0],
                Operation = lineItems[1] == "inc" ? RegisterOperation.Increment : RegisterOperation.Decrement,
                Value     = int.Parse(lineItems[2]),
                Condition = condition
            };

            return(instruction);
        }