public void Visit(PrintExpression print) { if (print.Value is ILiteralExpression) { var value = ((ILiteralExpression)print.Value).GetValue(); Console.WriteLine(value); } else if (print.Value is IdentifierExpression) { string varName = ((IdentifierExpression)print.Value).Value; var variable = _variables.FirstOrDefault(var => var.Name == varName); if (variable != null) { if (variable.Value == null) { Console.WriteLine("null"); } else { Console.WriteLine(variable.Value); } } } else if (print.Value is FunctionCallExpression) { Visit(print.Value); var value = _returnValues.Pop(); Console.WriteLine(value.Value); } else { Console.WriteLine(print.Value.Print()); } }
public override void Eval(TemplateContext context, System.IO.StringWriter writer) { writer.Write(PrintExpression.Eval(context)); }