Esempio n. 1
0
 public override void EnterGrammarSpec([NotNull] ANTLRv4Parser.GrammarSpecContext context)
 {
     _pd.Attributes[context] = new List <CombinedScopeSymbol>()
     {
         (CombinedScopeSymbol)_pd.RootScope
     };
 }
Esempio n. 2
0
        public void CollectInfo(CodeSource grammarSource, ANTLRv4Parser.GrammarSpecContext context)
        {
            GrammarSource = grammarSource;
            var walker = new ParseTreeWalker();

            walker.Walk(this, context);
        }
Esempio n. 3
0
            public static void Main(string[] args)
            {
                ANTLRv4Lexer      lexer  = new ANTLRv4Lexer(new ANTLRFileStream("grammars/org/antlr/codebuff/ANTLRv4Lexer.g4"));
                CommonTokenStream tokens = new CodeBuffTokenStream(lexer);
                ANTLRv4Parser     parser = new ANTLRv4Parser(tokens);

                ANTLRv4Parser.GrammarSpecContext tree = parser.grammarSpec();
                Console.WriteLine(tree.ToStringTree(parser));
            }
Esempio n. 4
0
        public override ItemSequence VisitGrammarSpec([NotNull] ANTLRv4Parser.GrammarSpecContext context)
        {
            string VisitGrammarDecl(ANTLRv4Parser.GrammarDeclContext decl)
            {
                string type = decl.grammarType().LEXER() != null ? "Lexer" : decl.grammarType().PARSER() != null ? "Parser" : "Combined";
                string name = decl.identifier().GetText();

                return($"{type} Grammar {name}");
            }

            string grammarName = VisitGrammarDecl(context.grammarDecl());
            var    comments    = context.DOC_COMMENT().Select(x => x.GetText()).Select(CreateComment).Select(x => Create($"{grammarName} Comment", DiagramOf(x)));
            //var prequel = context.prequelConstruct(); NOT YET
            var rules     = context.rules().ruleSpec().SelectMany(VisitRuleSpec);
            var modeSpecs = context.modeSpec().SelectMany(VisitModeSpec);

            return(comments.Concat(rules).Concat(modeSpecs));
        }
 /// <summary>
 /// Exit a parse tree produced by <see cref="ANTLRv4Parser.grammarSpec"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitGrammarSpec([NotNull] ANTLRv4Parser.GrammarSpecContext context)
 {
 }
 /// <summary>
 /// Visit a parse tree produced by <see cref="ANTLRv4Parser.grammarSpec"/>.
 /// <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 VisitGrammarSpec([NotNull] ANTLRv4Parser.GrammarSpecContext context)
 {
     return(VisitChildren(context));
 }
Esempio n. 7
0
 public override void EnterGrammarSpec([NotNull] ANTLRv4Parser.GrammarSpecContext context)
 {
     GrammarName = context.identifier().GetText();
 }