public override AstNode VisitVarDecl([NotNull] TigerParser.VarDeclContext context) { if (context.type_Id == null) { return(new VarDeclarationAST(context.id.Text, (ExpressionAst)context.value.Accept(this))); } return(new VarDeclarationAST(context.id.Text, context.type_Id.GetText(), (ExpressionAst)context.value.Accept(this))); }
public override Node VisitVarDecl([NotNull] TigerParser.VarDeclContext context) { var node = new VarDeclNode(context); node.Children.Add( // NAME new IdNode( context.id.Line, context.id.Column, context.id.Text)); node.Children.Add(context.typeId == null ? // TYPE null : new IdNode( context.typeId.Line, context.typeId.Column, context.typeId.Text)); node.Children.Add(Visit(context.expr())); // EXPRESSION return(node); }
/// <summary> /// Visit a parse tree produced by the <c>VarDecl</c> /// labeled alternative in <see cref="TigerParser.decls"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitVarDecl([NotNull] TigerParser.VarDeclContext context) { return(VisitChildren(context)); }