public string DoMath(Stack stack) { if (stack.GetDictionary().ContainsKey(InputArray[0])) { Dictionary<string, string> dictionary = stack.GetDictionary(); string value = dictionary[InputArray[0]]; InputArray[0] = value; } if (stack.GetDictionary().ContainsKey(InputArray[2])) { Dictionary<string, string> dictionary = stack.GetDictionary(); string value = dictionary[InputArray[2]]; InputArray[2] = value; } switch (InputArray[1]) { case "+" : return (int.Parse(InputArray[0]) + int.Parse(InputArray[2])).ToString(); case "-": return (int.Parse(InputArray[0]) - int.Parse(InputArray[2])).ToString(); case "*": return (int.Parse(InputArray[0]) * int.Parse(InputArray[2])).ToString(); case "/": return (int.Parse(InputArray[0]) / int.Parse(InputArray[2])).ToString(); case "%": return (int.Parse(InputArray[0]) % int.Parse(InputArray[2])).ToString(); default: throw new ArgumentException("no good"); } }
public string AddConstant(Stack stack) { if (stack.GetDictionary().ContainsKey(InputArray[0])) { stack.dictionary[InputArray[0]] = InputArray[2]; return InputArray[0] + " " + InputArray[1] + " " + InputArray[2]; } stack.AddToDictionary(InputArray[0], InputArray[2]); return InputArray[0] + " " + InputArray[1] + " " + InputArray[2]; }