Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
    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);
    }