public override MemberNode VisitMemberDeclaration(CoronaParser.MemberDeclarationContext context) { BuildValueAst memberValueVisitor = new BuildValueAst(); // Extract label string label = context.ID().GetText(); try { // Extract and call visit on all memberValues List <ValueNode> valueNodes = new List <ValueNode>(); foreach (CoronaParser.MemberValueContext member in context.memberValue()) { valueNodes.Add(memberValueVisitor.Visit(member)); } return(new MemberNode(label, valueNodes)); } catch (TheLanguageErrorException e) { throw new TheLanguageErrorException($"Member \'{ label }\'", e); } }
/// <summary> /// Visit a parse tree produced by <see cref="CoronaParser.memberDeclaration"/>. /// <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 VisitMemberDeclaration([NotNull] CoronaParser.MemberDeclarationContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="CoronaParser.memberDeclaration"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitMemberDeclaration([NotNull] CoronaParser.MemberDeclarationContext context) { }