コード例 #1
0
 public override void EnterTokensSpec([NotNull] AbstractGrammarParser.TokensSpecContext context)
 {
     foreach (GrammarParser.IdContext id in context.id())
     {
         AddNavigationTarget(id, ParseTrees.GetStartNode(id), _navigationSource._lexerRuleNavigationType, _navigationSource._lexerRuleGlyph);
     }
 }
コード例 #2
0
            public override Tuple <IParseTree, int> VisitTokensSpec([NotNull] AbstractGrammarParser.TokensSpecContext context)
            {
                if (context.ChildCount == 0 || targetElement == context.GetChild(0))
                {
                    return(null);
                }

                if (ParseTrees.GetTerminalNodeType(targetElement) == GrammarParser.RBRACE)
                {
                    return(Tuple.Create <IParseTree, int>(context, 0));
                }

                // align to the previous element
                for (int i = priorSiblings.Count - 2; i >= 0; i--)
                {
                    IParseTree sibling = priorSiblings[i];
                    // stop at the first id rule, index 0 is the TOKENS terminal itself
                    if (i == 1 || ParseTrees.ElementStartsLine(sibling))
                    {
                        return(Tuple.Create(sibling, 0));
                    }
                }

                return(Tuple.Create <IParseTree, int>(context, _indentSize));
            }
コード例 #3
0
 public override void EnterTokensSpec([NotNull] AbstractGrammarParser.TokensSpecContext context)
 {
     OutlineBlock(context, "tokens { ... }");
 }