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); }
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); }