public override string CanCreateGraph() { if (FirstOperand.MainVariable.Type != "int" || FirstOperand.CanCreateGraph() == "") { return(""); } if (IsUnary) { if (Value == "-") { MainVariable.Value = (-int.Parse(FirstOperand.MainVariable.Value)).ToString(); } else { return(""); } } else { if (SecondOperand.MainVariable.Type != "int" || SecondOperand.CanCreateGraph() == "") { return(""); } else { switch (Value) { case ("+"): { MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) + int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } case ("-"): { MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) - int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } case ("*"): { { MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) * int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } } case ("/"): { if (int.Parse(SecondOperand.MainVariable.Value) == 0) { throw new DividingByZeroWarning(LineNumber); } MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) / int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } case ("%"): { if (int.Parse(SecondOperand.MainVariable.Value) == 0) { throw new DividingByZeroWarning(LineNumber); } MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) % int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } case ("&"): { MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) & int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } case ("|"): { MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) | int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } case ("^"): { MainVariable.Value = (int.Parse(FirstOperand.MainVariable.Value) ^ int.Parse(SecondOperand.MainVariable.Value)).ToString(); break; } default: { throw new IntIsRequiredException(LineNumber); } } } } return(MainVariable.Value); }