Beispiel #1
0
            public override void EnterTerminal([NotNull] ANTLRv4Parser.TerminalContext context)
            {
                TerminalNodeImpl first = context.GetChild(0) as TerminalNodeImpl;

                if (first.Symbol.Type == ANTLRv4Parser.STRING_LITERAL)
                {
                    Literals.Add(first);
                }
            }
Beispiel #2
0
        public override void EnterTerminal([NotNull] ANTLRv4Parser.TerminalContext context)
        {
            TerminalNodeImpl first = context.GetChild(0) as TerminalNodeImpl;

            if (first.Symbol.Type == ANTLRv4Parser.TOKEN_REF)
            {
                string          id   = first.GetText();
                IList <ISymbol> list = _pd.RootScope.LookupType(id);
                if (!list.Any())
                {
                    ISymbol sym = new TerminalSymbol(id, first.Symbol);
                    _pd.RootScope.define(ref sym);
                }
                List <CombinedScopeSymbol> new_attrs = new List <CombinedScopeSymbol>();
                foreach (ISymbol sym in list)
                {
                    CombinedScopeSymbol s = new RefSymbol(first.Symbol, sym);
                    new_attrs.Add(s);
                }
                _pd.Attributes[context]             = new_attrs;
                _pd.Attributes[context.GetChild(0)] = new_attrs;
            }
        }
 /// <summary>
 /// Exit a parse tree produced by <see cref="ANTLRv4Parser.terminal"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitTerminal([NotNull] ANTLRv4Parser.TerminalContext context)
 {
 }
 /// <summary>
 /// Visit a parse tree produced by <see cref="ANTLRv4Parser.terminal"/>.
 /// <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 VisitTerminal([NotNull] ANTLRv4Parser.TerminalContext context)
 {
     return(VisitChildren(context));
 }