public override void EnterGrammarSpec([NotNull] ANTLRv4Parser.GrammarSpecContext context) { _pd.Attributes[context] = new List <CombinedScopeSymbol>() { (CombinedScopeSymbol)_pd.RootScope }; }
public void CollectInfo(CodeSource grammarSource, ANTLRv4Parser.GrammarSpecContext context) { GrammarSource = grammarSource; var walker = new ParseTreeWalker(); walker.Walk(this, context); }
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)); }
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)); }
public override void EnterGrammarSpec([NotNull] ANTLRv4Parser.GrammarSpecContext context) { GrammarName = context.identifier().GetText(); }