예제 #1
0
        private DiagramItem Transform(ANTLRv4Parser.LabeledAltContext context)
        {
            var identifier  = context.identifier()?.GetText() ?? string.Empty;
            var alternative = context.alternative();

            if (string.IsNullOrEmpty(alternative.GetText()))
            {
                return(new Terminal($"{(string.IsNullOrEmpty(identifier) ? string.Empty : identifier + " = ")} emptyString", noneString, noneString));
            }
            return(new Sequence(alternative.element().Select(Transform).Select(FSharpChoice <DiagramItem, string> .NewChoice1Of2)));
        }
 /// <summary>
 /// Exit a parse tree produced by <see cref="ANTLRv4Parser.labeledAlt"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitLabeledAlt([NotNull] ANTLRv4Parser.LabeledAltContext context)
 {
 }
 /// <summary>
 /// Visit a parse tree produced by <see cref="ANTLRv4Parser.labeledAlt"/>.
 /// <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 VisitLabeledAlt([NotNull] ANTLRv4Parser.LabeledAltContext context)
 {
     return(VisitChildren(context));
 }