private DiagramItem Transform(ANTLRv4Parser.AtomContext context) { if (context.terminal() != null) { return(new Terminal(context.terminal().TOKEN_REF()?.GetText() ?? context.terminal().STRING_LITERAL().GetText(), noneString, noneString)); } if (context.ruleref() != null) { List <Terminal> terminals = new List <Terminal>(2) { new Terminal(context.ruleref().RULE_REF().GetText(), noneString, noneString) }; if (context.ruleref().argActionBlock() != null) { terminals.Add(TerminalWithClass(context.ruleref().argActionBlock().GetText(), "argActionBlocks")); } return(new Sequence(terminals.Select(FSharpChoice <DiagramItem, string> .NewChoice1Of2))); } if (context.notSet() != null) { return(new Sequence(new DiagramItem[] { TerminalWithClass("NOT", "nots"), context.notSet().setElement() == null ? Transform(context.notSet().blockSet()) : Transform(context.notSet().setElement()) } .Select(FSharpChoice <DiagramItem, string> .NewChoice1Of2))); } if (context.DOT() != null) { return(new Terminal("Anything", noneString, noneString)); } throw new NotImplementedException(); }
/// <summary> /// Enter a parse tree produced by <see cref="ANTLRv4Parser.atom"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void EnterAtom([NotNull] ANTLRv4Parser.AtomContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="ANTLRv4Parser.atom"/>. /// <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 VisitAtom([NotNull] ANTLRv4Parser.AtomContext context) { return(VisitChildren(context)); }