Пример #1
0
        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());
        }
Пример #2
0
        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());
        }
Пример #3
0
 public Stmt VisitPrintLine(Stmt.PrintLine stmt)
 {
     throw new NotImplementedException();
 }