public override void EnterRules([NotNull] ANTLRv4Parser.RulesContext context) { ANTLRv4Parser.RuleSpecContext[] rule_spec = context.ruleSpec(); if (rule_spec == null) { return; } First = rule_spec[0]; }
public override void EnterRules([NotNull] ANTLRv4Parser.RulesContext context) { if (saw_tokenVocab_option) { return; } // We didn't see an option to include lexer grammar. if (Type != GrammarType.Parser) { return; } // It's a parser grammar, but we didn't see the tokenVocab option for the lexer. // We must assume a lexer grammar in this directory. string file = _pd.Item.FullPath; string dir = System.IO.Path.GetDirectoryName(file); string dep = file.Replace("Parser.g4", "Lexer.g4"); _pd.Imports.Add(dep); if (!AntlrGrammarDetails._dependent_grammars.ContainsKey(dep)) { AntlrGrammarDetails._dependent_grammars.Add(dep); } bool found = false; foreach (string f in AntlrGrammarDetails._dependent_grammars[dep]) { if (f == file) { found = true; break; } } if (!found) { AntlrGrammarDetails._dependent_grammars.Add(dep, file); } }
/// <summary> /// Exit a parse tree produced by <see cref="ANTLRv4Parser.rules"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitRules([NotNull] ANTLRv4Parser.RulesContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="ANTLRv4Parser.rules"/>. /// <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 VisitRules([NotNull] ANTLRv4Parser.RulesContext context) { return(VisitChildren(context)); }