public Stmt VisitPrintLine(Stmt.PrintLine stmt) { if (stmt.expr != null) { if (stmt.expr is Expression.Literal || stmt.expr is Expression.LexemeTypeLiteral) { var lexemeTypeLiteral = Evaluate(stmt.expr) as Expression.LexemeTypeLiteral; Console.WriteLine(lexemeTypeLiteral.Literal); return(new Stmt.PrintLine()); } if (stmt.expr is Expression.Variable) { var variable = LookUpVariable(stmt.expr.Name, stmt.expr); if (variable != null) { if (variable is Expression.LexemeTypeLiteral) { Console.WriteLine(((Expression.LexemeTypeLiteral)variable).Literal); } } } } return(new Stmt.PrintLine()); }
public object VisitPrintLine(Stmt.PrintLine stmt) { if (stmt == null || stmt.expr == null) { throw new ArgumentNullException("stmt and or expressoin are null"); } Resolve(stmt.expr); return(new Stmt.PrintLine()); }
public Stmt VisitPrintLine(Stmt.PrintLine stmt) { throw new NotImplementedException(); }