public bool visitReadStmt(Statement.Read stmt) { if (environment.Contains(stmt.Target.Name)) { return(true); } else { ErrorWriter.Write(stmt.Target, "Cannot read to uninitialized variable {0}", stmt.Target.Name); return(false); } }
public object visitReadStmt(Statement.Read stmt) { var target = stmt.Target; var input = Console.ReadLine(); var type = environment.GetType(target.Name); switch (type) { case "int": try { environment.Assign(target.Name, Int32.Parse(input)); } catch { runtimeError(target, "Could not parse to int"); } break; case "bool": try { environment.Assign(target.Name, Boolean.Parse(input)); } catch { runtimeError(target, "Could not parse to bool"); } break; default: environment.Assign(target.Name, input); break; } return(null); }