diff --git a/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj b/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj
index bd456b1c41..7bd0d76f1d 100644
--- a/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj
+++ b/libraries/AdaptiveExpressions/AdaptiveExpressions.csproj
@@ -31,13 +31,13 @@
-
- all
- runtime; build; native; contentfiles; analyzers
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries/AdaptiveExpressions/Generated/CommonRegexBaseListener.cs b/libraries/AdaptiveExpressions/Generated/CommonRegexBaseListener.cs
new file mode 100644
index 0000000000..af47a7e64d
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/CommonRegexBaseListener.cs
@@ -0,0 +1,378 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from CommonRegex.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+
+#pragma warning disable 3021 // Disable StyleCop warning CS3021 re CLSCompliant attribute in generated files.
+#pragma warning disable 0108 // Disable StyleCop warning CS0108, hides inherited member in generated files.
+
+
+using Antlr4.Runtime.Misc;
+using IErrorNode = Antlr4.Runtime.Tree.IErrorNode;
+using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode;
+using IToken = Antlr4.Runtime.IToken;
+using ParserRuleContext = Antlr4.Runtime.ParserRuleContext;
+
+///
+/// This class provides an empty implementation of ,
+/// which can be extended to create a listener which only needs to handle a subset
+/// of the available methods.
+///
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public partial class CommonRegexBaseListener : ICommonRegexListener {
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterParse([NotNull] CommonRegexParser.ParseContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitParse([NotNull] CommonRegexParser.ParseContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterAlternation([NotNull] CommonRegexParser.AlternationContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitAlternation([NotNull] CommonRegexParser.AlternationContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterExpr([NotNull] CommonRegexParser.ExprContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitExpr([NotNull] CommonRegexParser.ExprContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterElement([NotNull] CommonRegexParser.ElementContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitElement([NotNull] CommonRegexParser.ElementContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterQuantifier([NotNull] CommonRegexParser.QuantifierContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitQuantifier([NotNull] CommonRegexParser.QuantifierContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterQuantifier_type([NotNull] CommonRegexParser.Quantifier_typeContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitQuantifier_type([NotNull] CommonRegexParser.Quantifier_typeContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterCharacter_class([NotNull] CommonRegexParser.Character_classContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitCharacter_class([NotNull] CommonRegexParser.Character_classContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterCapture([NotNull] CommonRegexParser.CaptureContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitCapture([NotNull] CommonRegexParser.CaptureContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterNon_capture([NotNull] CommonRegexParser.Non_captureContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitNon_capture([NotNull] CommonRegexParser.Non_captureContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterOption([NotNull] CommonRegexParser.OptionContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitOption([NotNull] CommonRegexParser.OptionContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterOption_flag([NotNull] CommonRegexParser.Option_flagContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitOption_flag([NotNull] CommonRegexParser.Option_flagContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterAtom([NotNull] CommonRegexParser.AtomContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitAtom([NotNull] CommonRegexParser.AtomContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterCc_atom([NotNull] CommonRegexParser.Cc_atomContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitCc_atom([NotNull] CommonRegexParser.Cc_atomContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterShared_atom([NotNull] CommonRegexParser.Shared_atomContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitShared_atom([NotNull] CommonRegexParser.Shared_atomContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterLiteral([NotNull] CommonRegexParser.LiteralContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitLiteral([NotNull] CommonRegexParser.LiteralContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterCc_literal([NotNull] CommonRegexParser.Cc_literalContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitCc_literal([NotNull] CommonRegexParser.Cc_literalContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterShared_literal([NotNull] CommonRegexParser.Shared_literalContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitShared_literal([NotNull] CommonRegexParser.Shared_literalContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterNumber([NotNull] CommonRegexParser.NumberContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitNumber([NotNull] CommonRegexParser.NumberContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterOctal_char([NotNull] CommonRegexParser.Octal_charContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitOctal_char([NotNull] CommonRegexParser.Octal_charContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterOctal_digit([NotNull] CommonRegexParser.Octal_digitContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitOctal_digit([NotNull] CommonRegexParser.Octal_digitContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterDigits([NotNull] CommonRegexParser.DigitsContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitDigits([NotNull] CommonRegexParser.DigitsContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterDigit([NotNull] CommonRegexParser.DigitContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitDigit([NotNull] CommonRegexParser.DigitContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterName([NotNull] CommonRegexParser.NameContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitName([NotNull] CommonRegexParser.NameContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterAlpha_nums([NotNull] CommonRegexParser.Alpha_numsContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitAlpha_nums([NotNull] CommonRegexParser.Alpha_numsContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterNon_close_parens([NotNull] CommonRegexParser.Non_close_parensContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitNon_close_parens([NotNull] CommonRegexParser.Non_close_parensContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterNon_close_paren([NotNull] CommonRegexParser.Non_close_parenContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitNon_close_paren([NotNull] CommonRegexParser.Non_close_parenContext context) { }
+ ///
+ /// Enter a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void EnterLetter([NotNull] CommonRegexParser.LetterContext context) { }
+ ///
+ /// Exit a parse tree produced by .
+ /// The default implementation does nothing.
+ ///
+ /// The parse tree.
+ public virtual void ExitLetter([NotNull] CommonRegexParser.LetterContext context) { }
+
+ ///
+ /// The default implementation does nothing.
+ public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { }
+ ///
+ /// The default implementation does nothing.
+ public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { }
+ ///
+ /// The default implementation does nothing.
+ public virtual void VisitTerminal([NotNull] ITerminalNode node) { }
+ ///
+ /// The default implementation does nothing.
+ public virtual void VisitErrorNode([NotNull] IErrorNode node) { }
+}
diff --git a/libraries/AdaptiveExpressions/Generated/CommonRegexBaseVisitor.cs b/libraries/AdaptiveExpressions/Generated/CommonRegexBaseVisitor.cs
new file mode 100644
index 0000000000..31969bcd55
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/CommonRegexBaseVisitor.cs
@@ -0,0 +1,310 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from CommonRegex.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+
+#pragma warning disable 3021 // Disable StyleCop warning CS3021 re CLSCompliant attribute in generated files.
+#pragma warning disable 0108 // Disable StyleCop warning CS0108, hides inherited member in generated files.
+
+using Antlr4.Runtime.Misc;
+using Antlr4.Runtime.Tree;
+using IToken = Antlr4.Runtime.IToken;
+using ParserRuleContext = Antlr4.Runtime.ParserRuleContext;
+
+///
+/// This class provides an empty implementation of ,
+/// which can be extended to create a visitor which only needs to handle a subset
+/// of the available methods.
+///
+/// The return type of the visit operation.
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public partial class CommonRegexBaseVisitor : AbstractParseTreeVisitor, ICommonRegexVisitor {
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitParse([NotNull] CommonRegexParser.ParseContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitAlternation([NotNull] CommonRegexParser.AlternationContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitExpr([NotNull] CommonRegexParser.ExprContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitElement([NotNull] CommonRegexParser.ElementContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitQuantifier([NotNull] CommonRegexParser.QuantifierContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitQuantifier_type([NotNull] CommonRegexParser.Quantifier_typeContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitCharacter_class([NotNull] CommonRegexParser.Character_classContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitCapture([NotNull] CommonRegexParser.CaptureContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitNon_capture([NotNull] CommonRegexParser.Non_captureContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitOption([NotNull] CommonRegexParser.OptionContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitOption_flag([NotNull] CommonRegexParser.Option_flagContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitAtom([NotNull] CommonRegexParser.AtomContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitCc_atom([NotNull] CommonRegexParser.Cc_atomContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitShared_atom([NotNull] CommonRegexParser.Shared_atomContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitLiteral([NotNull] CommonRegexParser.LiteralContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitCc_literal([NotNull] CommonRegexParser.Cc_literalContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitShared_literal([NotNull] CommonRegexParser.Shared_literalContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitNumber([NotNull] CommonRegexParser.NumberContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitOctal_char([NotNull] CommonRegexParser.Octal_charContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitOctal_digit([NotNull] CommonRegexParser.Octal_digitContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitDigits([NotNull] CommonRegexParser.DigitsContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitDigit([NotNull] CommonRegexParser.DigitContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitName([NotNull] CommonRegexParser.NameContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitAlpha_nums([NotNull] CommonRegexParser.Alpha_numsContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitNon_close_parens([NotNull] CommonRegexParser.Non_close_parensContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitNon_close_paren([NotNull] CommonRegexParser.Non_close_parenContext context) { return VisitChildren(context); }
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The default implementation returns the result of calling
+ /// on .
+ ///
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ public virtual Result VisitLetter([NotNull] CommonRegexParser.LetterContext context) { return VisitChildren(context); }
+}
diff --git a/libraries/AdaptiveExpressions/Generated/CommonRegexLexer.cs b/libraries/AdaptiveExpressions/Generated/CommonRegexLexer.cs
new file mode 100644
index 0000000000..29d20822f6
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/CommonRegexLexer.cs
@@ -0,0 +1,571 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from CommonRegex.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+
+#pragma warning disable 3021 // Disable StyleCop warning CS3021 re CLSCompliant attribute in generated files.
+#pragma warning disable 0108 // Disable StyleCop warning CS0108, hides inherited member in generated files.
+
+using System;
+using System.IO;
+using System.Text;
+using Antlr4.Runtime;
+using Antlr4.Runtime.Atn;
+using Antlr4.Runtime.Misc;
+using DFA = Antlr4.Runtime.Dfa.DFA;
+
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public partial class CommonRegexLexer : Lexer {
+ protected static DFA[] decisionToDFA;
+ protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
+ public const int
+ Quoted=1, BlockQuoted=2, BellChar=3, ControlChar=4, EscapeChar=5, FormFeed=6,
+ NewLine=7, CarriageReturn=8, Tab=9, Backslash=10, HexChar=11, Dot=12,
+ DecimalDigit=13, NotDecimalDigit=14, CharWithProperty=15, CharWithoutProperty=16,
+ WhiteSpace=17, NotWhiteSpace=18, WordChar=19, NotWordChar=20, CharacterClassStart=21,
+ CharacterClassEnd=22, Caret=23, Hyphen=24, QuestionMark=25, Plus=26, Star=27,
+ OpenBrace=28, CloseBrace=29, Comma=30, EndOfSubject=31, Pipe=32, OpenParen=33,
+ CloseParen=34, LessThan=35, GreaterThan=36, SingleQuote=37, Underscore=38,
+ Colon=39, Hash=40, Equals=41, Exclamation=42, Ampersand=43, ALC=44, BLC=45,
+ CLC=46, DLC=47, ELC=48, FLC=49, GLC=50, HLC=51, ILC=52, JLC=53, KLC=54,
+ LLC=55, MLC=56, NLC=57, OLC=58, PLC=59, QLC=60, RLC=61, SLC=62, TLC=63,
+ ULC=64, VLC=65, WLC=66, XLC=67, YLC=68, ZLC=69, AUC=70, BUC=71, CUC=72,
+ DUC=73, EUC=74, FUC=75, GUC=76, HUC=77, IUC=78, JUC=79, KUC=80, LUC=81,
+ MUC=82, NUC=83, OUC=84, PUC=85, QUC=86, RUC=87, SUC=88, TUC=89, UUC=90,
+ VUC=91, WUC=92, XUC=93, YUC=94, ZUC=95, D1=96, D2=97, D3=98, D4=99, D5=100,
+ D6=101, D7=102, D8=103, D9=104, D0=105, OtherChar=106;
+ public static string[] channelNames = {
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
+ };
+
+ public static string[] modeNames = {
+ "DEFAULT_MODE"
+ };
+
+ public static readonly string[] ruleNames = {
+ "Quoted", "BlockQuoted", "BellChar", "ControlChar", "EscapeChar", "FormFeed",
+ "NewLine", "CarriageReturn", "Tab", "Backslash", "HexChar", "Dot", "DecimalDigit",
+ "NotDecimalDigit", "CharWithProperty", "CharWithoutProperty", "WhiteSpace",
+ "NotWhiteSpace", "WordChar", "NotWordChar", "CharacterClassStart", "CharacterClassEnd",
+ "Caret", "Hyphen", "QuestionMark", "Plus", "Star", "OpenBrace", "CloseBrace",
+ "Comma", "EndOfSubject", "Pipe", "OpenParen", "CloseParen", "LessThan",
+ "GreaterThan", "SingleQuote", "Underscore", "Colon", "Hash", "Equals",
+ "Exclamation", "Ampersand", "ALC", "BLC", "CLC", "DLC", "ELC", "FLC",
+ "GLC", "HLC", "ILC", "JLC", "KLC", "LLC", "MLC", "NLC", "OLC", "PLC",
+ "QLC", "RLC", "SLC", "TLC", "ULC", "VLC", "WLC", "XLC", "YLC", "ZLC",
+ "AUC", "BUC", "CUC", "DUC", "EUC", "FUC", "GUC", "HUC", "IUC", "JUC",
+ "KUC", "LUC", "MUC", "NUC", "OUC", "PUC", "QUC", "RUC", "SUC", "TUC",
+ "UUC", "VUC", "WUC", "XUC", "YUC", "ZUC", "D1", "D2", "D3", "D4", "D5",
+ "D6", "D7", "D8", "D9", "D0", "OtherChar", "UnderscoreAlphaNumerics",
+ "AlphaNumerics", "AlphaNumeric", "NonAlphaNumeric", "HexDigit", "ASCII"
+ };
+
+
+ public CommonRegexLexer(ICharStream input)
+ : this(input, Console.Out, Console.Error) { }
+
+ public CommonRegexLexer(ICharStream input, TextWriter output, TextWriter errorOutput)
+ : base(input, output, errorOutput)
+ {
+ Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
+ }
+
+ private static readonly string[] _LiteralNames = {
+ null, null, null, "'\\a'", "'\\c'", "'\\e'", "'\\f'", "'\\n'", "'\\r'",
+ "'\\t'", "'\\'", null, "'.'", "'\\d'", "'\\D'", null, null, "'\\s'", "'\\S'",
+ "'\\w'", "'\\W'", "'['", "']'", "'^'", "'-'", "'?'", "'+'", "'*'", "'{'",
+ "'}'", "','", "'$'", "'|'", "'('", "')'", "'<'", "'>'", "'''", "'_'",
+ "':'", "'#'", "'='", "'!'", "'&'", "'a'", "'b'", "'c'", "'d'", "'e'",
+ "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
+ "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
+ "'z'", "'A'", "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'",
+ "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'",
+ "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", "'Z'", "'1'", "'2'", "'3'",
+ "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "'0'"
+ };
+ private static readonly string[] _SymbolicNames = {
+ null, "Quoted", "BlockQuoted", "BellChar", "ControlChar", "EscapeChar",
+ "FormFeed", "NewLine", "CarriageReturn", "Tab", "Backslash", "HexChar",
+ "Dot", "DecimalDigit", "NotDecimalDigit", "CharWithProperty", "CharWithoutProperty",
+ "WhiteSpace", "NotWhiteSpace", "WordChar", "NotWordChar", "CharacterClassStart",
+ "CharacterClassEnd", "Caret", "Hyphen", "QuestionMark", "Plus", "Star",
+ "OpenBrace", "CloseBrace", "Comma", "EndOfSubject", "Pipe", "OpenParen",
+ "CloseParen", "LessThan", "GreaterThan", "SingleQuote", "Underscore",
+ "Colon", "Hash", "Equals", "Exclamation", "Ampersand", "ALC", "BLC", "CLC",
+ "DLC", "ELC", "FLC", "GLC", "HLC", "ILC", "JLC", "KLC", "LLC", "MLC",
+ "NLC", "OLC", "PLC", "QLC", "RLC", "SLC", "TLC", "ULC", "VLC", "WLC",
+ "XLC", "YLC", "ZLC", "AUC", "BUC", "CUC", "DUC", "EUC", "FUC", "GUC",
+ "HUC", "IUC", "JUC", "KUC", "LUC", "MUC", "NUC", "OUC", "PUC", "QUC",
+ "RUC", "SUC", "TUC", "UUC", "VUC", "WUC", "XUC", "YUC", "ZUC", "D1", "D2",
+ "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D0", "OtherChar"
+ };
+ public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
+
+ [NotNull]
+ public override IVocabulary Vocabulary
+ {
+ get
+ {
+ return DefaultVocabulary;
+ }
+ }
+
+ public override string GrammarFileName { get { return "CommonRegex.g4"; } }
+
+ public override string[] RuleNames { get { return ruleNames; } }
+
+ public override string[] ChannelNames { get { return channelNames; } }
+
+ public override string[] ModeNames { get { return modeNames; } }
+
+ public override string SerializedAtn { get { return new string(_serializedATN); } }
+
+ static CommonRegexLexer() {
+ decisionToDFA = new DFA[_ATN.NumberOfDecisions];
+ for (int i = 0; i < _ATN.NumberOfDecisions; i++) {
+ decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
+ }
+ }
+ private static char[] _serializedATN = {
+ '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786',
+ '\x5964', '\x2', 'l', '\x1FC', '\b', '\x1', '\x4', '\x2', '\t', '\x2',
+ '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t',
+ '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b',
+ '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v',
+ '\t', '\v', '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE',
+ '\t', '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t', '\x10', '\x4',
+ '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4', '\x13', '\t',
+ '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t', '\x15', '\x4',
+ '\x16', '\t', '\x16', '\x4', '\x17', '\t', '\x17', '\x4', '\x18', '\t',
+ '\x18', '\x4', '\x19', '\t', '\x19', '\x4', '\x1A', '\t', '\x1A', '\x4',
+ '\x1B', '\t', '\x1B', '\x4', '\x1C', '\t', '\x1C', '\x4', '\x1D', '\t',
+ '\x1D', '\x4', '\x1E', '\t', '\x1E', '\x4', '\x1F', '\t', '\x1F', '\x4',
+ ' ', '\t', ' ', '\x4', '!', '\t', '!', '\x4', '\"', '\t', '\"', '\x4',
+ '#', '\t', '#', '\x4', '$', '\t', '$', '\x4', '%', '\t', '%', '\x4', '&',
+ '\t', '&', '\x4', '\'', '\t', '\'', '\x4', '(', '\t', '(', '\x4', ')',
+ '\t', ')', '\x4', '*', '\t', '*', '\x4', '+', '\t', '+', '\x4', ',', '\t',
+ ',', '\x4', '-', '\t', '-', '\x4', '.', '\t', '.', '\x4', '/', '\t', '/',
+ '\x4', '\x30', '\t', '\x30', '\x4', '\x31', '\t', '\x31', '\x4', '\x32',
+ '\t', '\x32', '\x4', '\x33', '\t', '\x33', '\x4', '\x34', '\t', '\x34',
+ '\x4', '\x35', '\t', '\x35', '\x4', '\x36', '\t', '\x36', '\x4', '\x37',
+ '\t', '\x37', '\x4', '\x38', '\t', '\x38', '\x4', '\x39', '\t', '\x39',
+ '\x4', ':', '\t', ':', '\x4', ';', '\t', ';', '\x4', '<', '\t', '<', '\x4',
+ '=', '\t', '=', '\x4', '>', '\t', '>', '\x4', '?', '\t', '?', '\x4', '@',
+ '\t', '@', '\x4', '\x41', '\t', '\x41', '\x4', '\x42', '\t', '\x42', '\x4',
+ '\x43', '\t', '\x43', '\x4', '\x44', '\t', '\x44', '\x4', '\x45', '\t',
+ '\x45', '\x4', '\x46', '\t', '\x46', '\x4', 'G', '\t', 'G', '\x4', 'H',
+ '\t', 'H', '\x4', 'I', '\t', 'I', '\x4', 'J', '\t', 'J', '\x4', 'K', '\t',
+ 'K', '\x4', 'L', '\t', 'L', '\x4', 'M', '\t', 'M', '\x4', 'N', '\t', 'N',
+ '\x4', 'O', '\t', 'O', '\x4', 'P', '\t', 'P', '\x4', 'Q', '\t', 'Q', '\x4',
+ 'R', '\t', 'R', '\x4', 'S', '\t', 'S', '\x4', 'T', '\t', 'T', '\x4', 'U',
+ '\t', 'U', '\x4', 'V', '\t', 'V', '\x4', 'W', '\t', 'W', '\x4', 'X', '\t',
+ 'X', '\x4', 'Y', '\t', 'Y', '\x4', 'Z', '\t', 'Z', '\x4', '[', '\t', '[',
+ '\x4', '\\', '\t', '\\', '\x4', ']', '\t', ']', '\x4', '^', '\t', '^',
+ '\x4', '_', '\t', '_', '\x4', '`', '\t', '`', '\x4', '\x61', '\t', '\x61',
+ '\x4', '\x62', '\t', '\x62', '\x4', '\x63', '\t', '\x63', '\x4', '\x64',
+ '\t', '\x64', '\x4', '\x65', '\t', '\x65', '\x4', '\x66', '\t', '\x66',
+ '\x4', 'g', '\t', 'g', '\x4', 'h', '\t', 'h', '\x4', 'i', '\t', 'i', '\x4',
+ 'j', '\t', 'j', '\x4', 'k', '\t', 'k', '\x4', 'l', '\t', 'l', '\x4', 'm',
+ '\t', 'm', '\x4', 'n', '\t', 'n', '\x4', 'o', '\t', 'o', '\x4', 'p', '\t',
+ 'p', '\x4', 'q', '\t', 'q', '\x3', '\x2', '\x3', '\x2', '\x3', '\x2',
+ '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\a', '\x3', '\xEB',
+ '\n', '\x3', '\f', '\x3', '\xE', '\x3', '\xEE', '\v', '\x3', '\x3', '\x3',
+ '\x3', '\x3', '\x3', '\x3', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4',
+ '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\x3', '\x6',
+ '\x3', '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\b', '\x3',
+ '\b', '\x3', '\b', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\n',
+ '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3',
+ '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f',
+ '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x6', '\f', '\x114', '\n', '\f',
+ '\r', '\f', '\xE', '\f', '\x115', '\x3', '\f', '\x3', '\f', '\x5', '\f',
+ '\x11A', '\n', '\f', '\x3', '\r', '\x3', '\r', '\x3', '\xE', '\x3', '\xE',
+ '\x3', '\xE', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\x10',
+ '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10',
+ '\x3', '\x10', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11',
+ '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x12', '\x3', '\x12',
+ '\x3', '\x12', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x14',
+ '\x3', '\x14', '\x3', '\x14', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15',
+ '\x3', '\x16', '\x3', '\x16', '\x3', '\x17', '\x3', '\x17', '\x3', '\x18',
+ '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A', '\x3', '\x1A',
+ '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1C', '\x3', '\x1C', '\x3', '\x1D',
+ '\x3', '\x1D', '\x3', '\x1E', '\x3', '\x1E', '\x3', '\x1F', '\x3', '\x1F',
+ '\x3', ' ', '\x3', ' ', '\x3', '!', '\x3', '!', '\x3', '\"', '\x3', '\"',
+ '\x3', '#', '\x3', '#', '\x3', '$', '\x3', '$', '\x3', '%', '\x3', '%',
+ '\x3', '&', '\x3', '&', '\x3', '\'', '\x3', '\'', '\x3', '(', '\x3', '(',
+ '\x3', ')', '\x3', ')', '\x3', '*', '\x3', '*', '\x3', '+', '\x3', '+',
+ '\x3', ',', '\x3', ',', '\x3', '-', '\x3', '-', '\x3', '.', '\x3', '.',
+ '\x3', '/', '\x3', '/', '\x3', '\x30', '\x3', '\x30', '\x3', '\x31', '\x3',
+ '\x31', '\x3', '\x32', '\x3', '\x32', '\x3', '\x33', '\x3', '\x33', '\x3',
+ '\x34', '\x3', '\x34', '\x3', '\x35', '\x3', '\x35', '\x3', '\x36', '\x3',
+ '\x36', '\x3', '\x37', '\x3', '\x37', '\x3', '\x38', '\x3', '\x38', '\x3',
+ '\x39', '\x3', '\x39', '\x3', ':', '\x3', ':', '\x3', ';', '\x3', ';',
+ '\x3', '<', '\x3', '<', '\x3', '=', '\x3', '=', '\x3', '>', '\x3', '>',
+ '\x3', '?', '\x3', '?', '\x3', '@', '\x3', '@', '\x3', '\x41', '\x3',
+ '\x41', '\x3', '\x42', '\x3', '\x42', '\x3', '\x43', '\x3', '\x43', '\x3',
+ '\x44', '\x3', '\x44', '\x3', '\x45', '\x3', '\x45', '\x3', '\x46', '\x3',
+ '\x46', '\x3', 'G', '\x3', 'G', '\x3', 'H', '\x3', 'H', '\x3', 'I', '\x3',
+ 'I', '\x3', 'J', '\x3', 'J', '\x3', 'K', '\x3', 'K', '\x3', 'L', '\x3',
+ 'L', '\x3', 'M', '\x3', 'M', '\x3', 'N', '\x3', 'N', '\x3', 'O', '\x3',
+ 'O', '\x3', 'P', '\x3', 'P', '\x3', 'Q', '\x3', 'Q', '\x3', 'R', '\x3',
+ 'R', '\x3', 'S', '\x3', 'S', '\x3', 'T', '\x3', 'T', '\x3', 'U', '\x3',
+ 'U', '\x3', 'V', '\x3', 'V', '\x3', 'W', '\x3', 'W', '\x3', 'X', '\x3',
+ 'X', '\x3', 'Y', '\x3', 'Y', '\x3', 'Z', '\x3', 'Z', '\x3', '[', '\x3',
+ '[', '\x3', '\\', '\x3', '\\', '\x3', ']', '\x3', ']', '\x3', '^', '\x3',
+ '^', '\x3', '_', '\x3', '_', '\x3', '`', '\x3', '`', '\x3', '\x61', '\x3',
+ '\x61', '\x3', '\x62', '\x3', '\x62', '\x3', '\x63', '\x3', '\x63', '\x3',
+ '\x64', '\x3', '\x64', '\x3', '\x65', '\x3', '\x65', '\x3', '\x66', '\x3',
+ '\x66', '\x3', 'g', '\x3', 'g', '\x3', 'h', '\x3', 'h', '\x3', 'i', '\x3',
+ 'i', '\x3', 'j', '\x3', 'j', '\x3', 'k', '\x3', 'k', '\x3', 'l', '\x3',
+ 'l', '\x6', 'l', '\x1EC', '\n', 'l', '\r', 'l', '\xE', 'l', '\x1ED', '\x3',
+ 'm', '\x6', 'm', '\x1F1', '\n', 'm', '\r', 'm', '\xE', 'm', '\x1F2', '\x3',
+ 'n', '\x3', 'n', '\x3', 'o', '\x3', 'o', '\x3', 'p', '\x3', 'p', '\x3',
+ 'q', '\x3', 'q', '\x3', '\xEC', '\x2', 'r', '\x3', '\x3', '\x5', '\x4',
+ '\a', '\x5', '\t', '\x6', '\v', '\a', '\r', '\b', '\xF', '\t', '\x11',
+ '\n', '\x13', '\v', '\x15', '\f', '\x17', '\r', '\x19', '\xE', '\x1B',
+ '\xF', '\x1D', '\x10', '\x1F', '\x11', '!', '\x12', '#', '\x13', '%',
+ '\x14', '\'', '\x15', ')', '\x16', '+', '\x17', '-', '\x18', '/', '\x19',
+ '\x31', '\x1A', '\x33', '\x1B', '\x35', '\x1C', '\x37', '\x1D', '\x39',
+ '\x1E', ';', '\x1F', '=', ' ', '?', '!', '\x41', '\"', '\x43', '#', '\x45',
+ '$', 'G', '%', 'I', '&', 'K', '\'', 'M', '(', 'O', ')', 'Q', '*', 'S',
+ '+', 'U', ',', 'W', '-', 'Y', '.', '[', '/', ']', '\x30', '_', '\x31',
+ '\x61', '\x32', '\x63', '\x33', '\x65', '\x34', 'g', '\x35', 'i', '\x36',
+ 'k', '\x37', 'm', '\x38', 'o', '\x39', 'q', ':', 's', ';', 'u', '<', 'w',
+ '=', 'y', '>', '{', '?', '}', '@', '\x7F', '\x41', '\x81', '\x42', '\x83',
+ '\x43', '\x85', '\x44', '\x87', '\x45', '\x89', '\x46', '\x8B', 'G', '\x8D',
+ 'H', '\x8F', 'I', '\x91', 'J', '\x93', 'K', '\x95', 'L', '\x97', 'M',
+ '\x99', 'N', '\x9B', 'O', '\x9D', 'P', '\x9F', 'Q', '\xA1', 'R', '\xA3',
+ 'S', '\xA5', 'T', '\xA7', 'U', '\xA9', 'V', '\xAB', 'W', '\xAD', 'X',
+ '\xAF', 'Y', '\xB1', 'Z', '\xB3', '[', '\xB5', '\\', '\xB7', ']', '\xB9',
+ '^', '\xBB', '_', '\xBD', '`', '\xBF', '\x61', '\xC1', '\x62', '\xC3',
+ '\x63', '\xC5', '\x64', '\xC7', '\x65', '\xC9', '\x66', '\xCB', 'g', '\xCD',
+ 'h', '\xCF', 'i', '\xD1', 'j', '\xD3', 'k', '\xD5', 'l', '\xD7', '\x2',
+ '\xD9', '\x2', '\xDB', '\x2', '\xDD', '\x2', '\xDF', '\x2', '\xE1', '\x2',
+ '\x3', '\x2', '\x5', '\x5', '\x2', '\x32', ';', '\x43', '\\', '\x63',
+ '|', '\x5', '\x2', '\x32', ';', '\x43', 'H', '\x63', 'h', '\x3', '\x2',
+ '\x2', '\x81', '\x2', '\x1FB', '\x2', '\x3', '\x3', '\x2', '\x2', '\x2',
+ '\x2', '\x5', '\x3', '\x2', '\x2', '\x2', '\x2', '\a', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\t', '\x3', '\x2', '\x2', '\x2', '\x2', '\v', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '\r', '\x3', '\x2', '\x2', '\x2', '\x2', '\xF', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x11', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x13', '\x3', '\x2', '\x2', '\x2', '\x2', '\x15', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x17', '\x3', '\x2', '\x2', '\x2', '\x2', '\x19', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x1B', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x1D', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1F', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '!', '\x3', '\x2', '\x2', '\x2', '\x2', '#', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '%', '\x3', '\x2', '\x2', '\x2', '\x2', '\'', '\x3',
+ '\x2', '\x2', '\x2', '\x2', ')', '\x3', '\x2', '\x2', '\x2', '\x2', '+',
+ '\x3', '\x2', '\x2', '\x2', '\x2', '-', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '/', '\x3', '\x2', '\x2', '\x2', '\x2', '\x31', '\x3', '\x2', '\x2', '\x2',
+ '\x2', '\x33', '\x3', '\x2', '\x2', '\x2', '\x2', '\x35', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '\x37', '\x3', '\x2', '\x2', '\x2', '\x2', '\x39',
+ '\x3', '\x2', '\x2', '\x2', '\x2', ';', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '=', '\x3', '\x2', '\x2', '\x2', '\x2', '?', '\x3', '\x2', '\x2', '\x2',
+ '\x2', '\x41', '\x3', '\x2', '\x2', '\x2', '\x2', '\x43', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '\x45', '\x3', '\x2', '\x2', '\x2', '\x2', 'G', '\x3',
+ '\x2', '\x2', '\x2', '\x2', 'I', '\x3', '\x2', '\x2', '\x2', '\x2', 'K',
+ '\x3', '\x2', '\x2', '\x2', '\x2', 'M', '\x3', '\x2', '\x2', '\x2', '\x2',
+ 'O', '\x3', '\x2', '\x2', '\x2', '\x2', 'Q', '\x3', '\x2', '\x2', '\x2',
+ '\x2', 'S', '\x3', '\x2', '\x2', '\x2', '\x2', 'U', '\x3', '\x2', '\x2',
+ '\x2', '\x2', 'W', '\x3', '\x2', '\x2', '\x2', '\x2', 'Y', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '[', '\x3', '\x2', '\x2', '\x2', '\x2', ']', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '_', '\x3', '\x2', '\x2', '\x2', '\x2', '\x61',
+ '\x3', '\x2', '\x2', '\x2', '\x2', '\x63', '\x3', '\x2', '\x2', '\x2',
+ '\x2', '\x65', '\x3', '\x2', '\x2', '\x2', '\x2', 'g', '\x3', '\x2', '\x2',
+ '\x2', '\x2', 'i', '\x3', '\x2', '\x2', '\x2', '\x2', 'k', '\x3', '\x2',
+ '\x2', '\x2', '\x2', 'm', '\x3', '\x2', '\x2', '\x2', '\x2', 'o', '\x3',
+ '\x2', '\x2', '\x2', '\x2', 'q', '\x3', '\x2', '\x2', '\x2', '\x2', 's',
+ '\x3', '\x2', '\x2', '\x2', '\x2', 'u', '\x3', '\x2', '\x2', '\x2', '\x2',
+ 'w', '\x3', '\x2', '\x2', '\x2', '\x2', 'y', '\x3', '\x2', '\x2', '\x2',
+ '\x2', '{', '\x3', '\x2', '\x2', '\x2', '\x2', '}', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x7F', '\x3', '\x2', '\x2', '\x2', '\x2', '\x81', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x83', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x85', '\x3', '\x2', '\x2', '\x2', '\x2', '\x87', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x89', '\x3', '\x2', '\x2', '\x2', '\x2', '\x8B', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x8D', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x8F', '\x3', '\x2', '\x2', '\x2', '\x2', '\x91', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x93', '\x3', '\x2', '\x2', '\x2', '\x2', '\x95', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x97', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x99', '\x3', '\x2', '\x2', '\x2', '\x2', '\x9B', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x9D', '\x3', '\x2', '\x2', '\x2', '\x2', '\x9F', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\xA1', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\xA3', '\x3', '\x2', '\x2', '\x2', '\x2', '\xA5', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\xA7', '\x3', '\x2', '\x2', '\x2', '\x2', '\xA9', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\xAB', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\xAD', '\x3', '\x2', '\x2', '\x2', '\x2', '\xAF', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\xB1', '\x3', '\x2', '\x2', '\x2', '\x2', '\xB3', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\xB5', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\xB7', '\x3', '\x2', '\x2', '\x2', '\x2', '\xB9', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\xBB', '\x3', '\x2', '\x2', '\x2', '\x2', '\xBD', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\xBF', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\xC1', '\x3', '\x2', '\x2', '\x2', '\x2', '\xC3', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\xC5', '\x3', '\x2', '\x2', '\x2', '\x2', '\xC7', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\xC9', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\xCB', '\x3', '\x2', '\x2', '\x2', '\x2', '\xCD', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\xCF', '\x3', '\x2', '\x2', '\x2', '\x2', '\xD1', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\xD3', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\xD5', '\x3', '\x2', '\x2', '\x2', '\x3', '\xE3', '\x3', '\x2', '\x2',
+ '\x2', '\x5', '\xE6', '\x3', '\x2', '\x2', '\x2', '\a', '\xF2', '\x3',
+ '\x2', '\x2', '\x2', '\t', '\xF5', '\x3', '\x2', '\x2', '\x2', '\v', '\xF8',
+ '\x3', '\x2', '\x2', '\x2', '\r', '\xFB', '\x3', '\x2', '\x2', '\x2',
+ '\xF', '\xFE', '\x3', '\x2', '\x2', '\x2', '\x11', '\x101', '\x3', '\x2',
+ '\x2', '\x2', '\x13', '\x104', '\x3', '\x2', '\x2', '\x2', '\x15', '\x107',
+ '\x3', '\x2', '\x2', '\x2', '\x17', '\x109', '\x3', '\x2', '\x2', '\x2',
+ '\x19', '\x11B', '\x3', '\x2', '\x2', '\x2', '\x1B', '\x11D', '\x3', '\x2',
+ '\x2', '\x2', '\x1D', '\x120', '\x3', '\x2', '\x2', '\x2', '\x1F', '\x123',
+ '\x3', '\x2', '\x2', '\x2', '!', '\x12A', '\x3', '\x2', '\x2', '\x2',
+ '#', '\x131', '\x3', '\x2', '\x2', '\x2', '%', '\x134', '\x3', '\x2',
+ '\x2', '\x2', '\'', '\x137', '\x3', '\x2', '\x2', '\x2', ')', '\x13A',
+ '\x3', '\x2', '\x2', '\x2', '+', '\x13D', '\x3', '\x2', '\x2', '\x2',
+ '-', '\x13F', '\x3', '\x2', '\x2', '\x2', '/', '\x141', '\x3', '\x2',
+ '\x2', '\x2', '\x31', '\x143', '\x3', '\x2', '\x2', '\x2', '\x33', '\x145',
+ '\x3', '\x2', '\x2', '\x2', '\x35', '\x147', '\x3', '\x2', '\x2', '\x2',
+ '\x37', '\x149', '\x3', '\x2', '\x2', '\x2', '\x39', '\x14B', '\x3', '\x2',
+ '\x2', '\x2', ';', '\x14D', '\x3', '\x2', '\x2', '\x2', '=', '\x14F',
+ '\x3', '\x2', '\x2', '\x2', '?', '\x151', '\x3', '\x2', '\x2', '\x2',
+ '\x41', '\x153', '\x3', '\x2', '\x2', '\x2', '\x43', '\x155', '\x3', '\x2',
+ '\x2', '\x2', '\x45', '\x157', '\x3', '\x2', '\x2', '\x2', 'G', '\x159',
+ '\x3', '\x2', '\x2', '\x2', 'I', '\x15B', '\x3', '\x2', '\x2', '\x2',
+ 'K', '\x15D', '\x3', '\x2', '\x2', '\x2', 'M', '\x15F', '\x3', '\x2',
+ '\x2', '\x2', 'O', '\x161', '\x3', '\x2', '\x2', '\x2', 'Q', '\x163',
+ '\x3', '\x2', '\x2', '\x2', 'S', '\x165', '\x3', '\x2', '\x2', '\x2',
+ 'U', '\x167', '\x3', '\x2', '\x2', '\x2', 'W', '\x169', '\x3', '\x2',
+ '\x2', '\x2', 'Y', '\x16B', '\x3', '\x2', '\x2', '\x2', '[', '\x16D',
+ '\x3', '\x2', '\x2', '\x2', ']', '\x16F', '\x3', '\x2', '\x2', '\x2',
+ '_', '\x171', '\x3', '\x2', '\x2', '\x2', '\x61', '\x173', '\x3', '\x2',
+ '\x2', '\x2', '\x63', '\x175', '\x3', '\x2', '\x2', '\x2', '\x65', '\x177',
+ '\x3', '\x2', '\x2', '\x2', 'g', '\x179', '\x3', '\x2', '\x2', '\x2',
+ 'i', '\x17B', '\x3', '\x2', '\x2', '\x2', 'k', '\x17D', '\x3', '\x2',
+ '\x2', '\x2', 'm', '\x17F', '\x3', '\x2', '\x2', '\x2', 'o', '\x181',
+ '\x3', '\x2', '\x2', '\x2', 'q', '\x183', '\x3', '\x2', '\x2', '\x2',
+ 's', '\x185', '\x3', '\x2', '\x2', '\x2', 'u', '\x187', '\x3', '\x2',
+ '\x2', '\x2', 'w', '\x189', '\x3', '\x2', '\x2', '\x2', 'y', '\x18B',
+ '\x3', '\x2', '\x2', '\x2', '{', '\x18D', '\x3', '\x2', '\x2', '\x2',
+ '}', '\x18F', '\x3', '\x2', '\x2', '\x2', '\x7F', '\x191', '\x3', '\x2',
+ '\x2', '\x2', '\x81', '\x193', '\x3', '\x2', '\x2', '\x2', '\x83', '\x195',
+ '\x3', '\x2', '\x2', '\x2', '\x85', '\x197', '\x3', '\x2', '\x2', '\x2',
+ '\x87', '\x199', '\x3', '\x2', '\x2', '\x2', '\x89', '\x19B', '\x3', '\x2',
+ '\x2', '\x2', '\x8B', '\x19D', '\x3', '\x2', '\x2', '\x2', '\x8D', '\x19F',
+ '\x3', '\x2', '\x2', '\x2', '\x8F', '\x1A1', '\x3', '\x2', '\x2', '\x2',
+ '\x91', '\x1A3', '\x3', '\x2', '\x2', '\x2', '\x93', '\x1A5', '\x3', '\x2',
+ '\x2', '\x2', '\x95', '\x1A7', '\x3', '\x2', '\x2', '\x2', '\x97', '\x1A9',
+ '\x3', '\x2', '\x2', '\x2', '\x99', '\x1AB', '\x3', '\x2', '\x2', '\x2',
+ '\x9B', '\x1AD', '\x3', '\x2', '\x2', '\x2', '\x9D', '\x1AF', '\x3', '\x2',
+ '\x2', '\x2', '\x9F', '\x1B1', '\x3', '\x2', '\x2', '\x2', '\xA1', '\x1B3',
+ '\x3', '\x2', '\x2', '\x2', '\xA3', '\x1B5', '\x3', '\x2', '\x2', '\x2',
+ '\xA5', '\x1B7', '\x3', '\x2', '\x2', '\x2', '\xA7', '\x1B9', '\x3', '\x2',
+ '\x2', '\x2', '\xA9', '\x1BB', '\x3', '\x2', '\x2', '\x2', '\xAB', '\x1BD',
+ '\x3', '\x2', '\x2', '\x2', '\xAD', '\x1BF', '\x3', '\x2', '\x2', '\x2',
+ '\xAF', '\x1C1', '\x3', '\x2', '\x2', '\x2', '\xB1', '\x1C3', '\x3', '\x2',
+ '\x2', '\x2', '\xB3', '\x1C5', '\x3', '\x2', '\x2', '\x2', '\xB5', '\x1C7',
+ '\x3', '\x2', '\x2', '\x2', '\xB7', '\x1C9', '\x3', '\x2', '\x2', '\x2',
+ '\xB9', '\x1CB', '\x3', '\x2', '\x2', '\x2', '\xBB', '\x1CD', '\x3', '\x2',
+ '\x2', '\x2', '\xBD', '\x1CF', '\x3', '\x2', '\x2', '\x2', '\xBF', '\x1D1',
+ '\x3', '\x2', '\x2', '\x2', '\xC1', '\x1D3', '\x3', '\x2', '\x2', '\x2',
+ '\xC3', '\x1D5', '\x3', '\x2', '\x2', '\x2', '\xC5', '\x1D7', '\x3', '\x2',
+ '\x2', '\x2', '\xC7', '\x1D9', '\x3', '\x2', '\x2', '\x2', '\xC9', '\x1DB',
+ '\x3', '\x2', '\x2', '\x2', '\xCB', '\x1DD', '\x3', '\x2', '\x2', '\x2',
+ '\xCD', '\x1DF', '\x3', '\x2', '\x2', '\x2', '\xCF', '\x1E1', '\x3', '\x2',
+ '\x2', '\x2', '\xD1', '\x1E3', '\x3', '\x2', '\x2', '\x2', '\xD3', '\x1E5',
+ '\x3', '\x2', '\x2', '\x2', '\xD5', '\x1E7', '\x3', '\x2', '\x2', '\x2',
+ '\xD7', '\x1EB', '\x3', '\x2', '\x2', '\x2', '\xD9', '\x1F0', '\x3', '\x2',
+ '\x2', '\x2', '\xDB', '\x1F4', '\x3', '\x2', '\x2', '\x2', '\xDD', '\x1F6',
+ '\x3', '\x2', '\x2', '\x2', '\xDF', '\x1F8', '\x3', '\x2', '\x2', '\x2',
+ '\xE1', '\x1FA', '\x3', '\x2', '\x2', '\x2', '\xE3', '\xE4', '\a', '^',
+ '\x2', '\x2', '\xE4', '\xE5', '\x5', '\xDD', 'o', '\x2', '\xE5', '\x4',
+ '\x3', '\x2', '\x2', '\x2', '\xE6', '\xE7', '\a', '^', '\x2', '\x2', '\xE7',
+ '\xE8', '\a', 'S', '\x2', '\x2', '\xE8', '\xEC', '\x3', '\x2', '\x2',
+ '\x2', '\xE9', '\xEB', '\v', '\x2', '\x2', '\x2', '\xEA', '\xE9', '\x3',
+ '\x2', '\x2', '\x2', '\xEB', '\xEE', '\x3', '\x2', '\x2', '\x2', '\xEC',
+ '\xED', '\x3', '\x2', '\x2', '\x2', '\xEC', '\xEA', '\x3', '\x2', '\x2',
+ '\x2', '\xED', '\xEF', '\x3', '\x2', '\x2', '\x2', '\xEE', '\xEC', '\x3',
+ '\x2', '\x2', '\x2', '\xEF', '\xF0', '\a', '^', '\x2', '\x2', '\xF0',
+ '\xF1', '\a', 'G', '\x2', '\x2', '\xF1', '\x6', '\x3', '\x2', '\x2', '\x2',
+ '\xF2', '\xF3', '\a', '^', '\x2', '\x2', '\xF3', '\xF4', '\a', '\x63',
+ '\x2', '\x2', '\xF4', '\b', '\x3', '\x2', '\x2', '\x2', '\xF5', '\xF6',
+ '\a', '^', '\x2', '\x2', '\xF6', '\xF7', '\a', '\x65', '\x2', '\x2', '\xF7',
+ '\n', '\x3', '\x2', '\x2', '\x2', '\xF8', '\xF9', '\a', '^', '\x2', '\x2',
+ '\xF9', '\xFA', '\a', 'g', '\x2', '\x2', '\xFA', '\f', '\x3', '\x2', '\x2',
+ '\x2', '\xFB', '\xFC', '\a', '^', '\x2', '\x2', '\xFC', '\xFD', '\a',
+ 'h', '\x2', '\x2', '\xFD', '\xE', '\x3', '\x2', '\x2', '\x2', '\xFE',
+ '\xFF', '\a', '^', '\x2', '\x2', '\xFF', '\x100', '\a', 'p', '\x2', '\x2',
+ '\x100', '\x10', '\x3', '\x2', '\x2', '\x2', '\x101', '\x102', '\a', '^',
+ '\x2', '\x2', '\x102', '\x103', '\a', 't', '\x2', '\x2', '\x103', '\x12',
+ '\x3', '\x2', '\x2', '\x2', '\x104', '\x105', '\a', '^', '\x2', '\x2',
+ '\x105', '\x106', '\a', 'v', '\x2', '\x2', '\x106', '\x14', '\x3', '\x2',
+ '\x2', '\x2', '\x107', '\x108', '\a', '^', '\x2', '\x2', '\x108', '\x16',
+ '\x3', '\x2', '\x2', '\x2', '\x109', '\x10A', '\a', '^', '\x2', '\x2',
+ '\x10A', '\x10B', '\a', 'z', '\x2', '\x2', '\x10B', '\x119', '\x3', '\x2',
+ '\x2', '\x2', '\x10C', '\x10D', '\x5', '\xDF', 'p', '\x2', '\x10D', '\x10E',
+ '\x5', '\xDF', 'p', '\x2', '\x10E', '\x11A', '\x3', '\x2', '\x2', '\x2',
+ '\x10F', '\x110', '\a', '}', '\x2', '\x2', '\x110', '\x111', '\x5', '\xDF',
+ 'p', '\x2', '\x111', '\x113', '\x5', '\xDF', 'p', '\x2', '\x112', '\x114',
+ '\x5', '\xDF', 'p', '\x2', '\x113', '\x112', '\x3', '\x2', '\x2', '\x2',
+ '\x114', '\x115', '\x3', '\x2', '\x2', '\x2', '\x115', '\x113', '\x3',
+ '\x2', '\x2', '\x2', '\x115', '\x116', '\x3', '\x2', '\x2', '\x2', '\x116',
+ '\x117', '\x3', '\x2', '\x2', '\x2', '\x117', '\x118', '\a', '\x7F', '\x2',
+ '\x2', '\x118', '\x11A', '\x3', '\x2', '\x2', '\x2', '\x119', '\x10C',
+ '\x3', '\x2', '\x2', '\x2', '\x119', '\x10F', '\x3', '\x2', '\x2', '\x2',
+ '\x11A', '\x18', '\x3', '\x2', '\x2', '\x2', '\x11B', '\x11C', '\a', '\x30',
+ '\x2', '\x2', '\x11C', '\x1A', '\x3', '\x2', '\x2', '\x2', '\x11D', '\x11E',
+ '\a', '^', '\x2', '\x2', '\x11E', '\x11F', '\a', '\x66', '\x2', '\x2',
+ '\x11F', '\x1C', '\x3', '\x2', '\x2', '\x2', '\x120', '\x121', '\a', '^',
+ '\x2', '\x2', '\x121', '\x122', '\a', '\x46', '\x2', '\x2', '\x122', '\x1E',
+ '\x3', '\x2', '\x2', '\x2', '\x123', '\x124', '\a', '^', '\x2', '\x2',
+ '\x124', '\x125', '\a', 'r', '\x2', '\x2', '\x125', '\x126', '\a', '}',
+ '\x2', '\x2', '\x126', '\x127', '\x3', '\x2', '\x2', '\x2', '\x127', '\x128',
+ '\x5', '\xD7', 'l', '\x2', '\x128', '\x129', '\a', '\x7F', '\x2', '\x2',
+ '\x129', ' ', '\x3', '\x2', '\x2', '\x2', '\x12A', '\x12B', '\a', '^',
+ '\x2', '\x2', '\x12B', '\x12C', '\a', 'R', '\x2', '\x2', '\x12C', '\x12D',
+ '\a', '}', '\x2', '\x2', '\x12D', '\x12E', '\x3', '\x2', '\x2', '\x2',
+ '\x12E', '\x12F', '\x5', '\xD7', 'l', '\x2', '\x12F', '\x130', '\a', '\x7F',
+ '\x2', '\x2', '\x130', '\"', '\x3', '\x2', '\x2', '\x2', '\x131', '\x132',
+ '\a', '^', '\x2', '\x2', '\x132', '\x133', '\a', 'u', '\x2', '\x2', '\x133',
+ '$', '\x3', '\x2', '\x2', '\x2', '\x134', '\x135', '\a', '^', '\x2', '\x2',
+ '\x135', '\x136', '\a', 'U', '\x2', '\x2', '\x136', '&', '\x3', '\x2',
+ '\x2', '\x2', '\x137', '\x138', '\a', '^', '\x2', '\x2', '\x138', '\x139',
+ '\a', 'y', '\x2', '\x2', '\x139', '(', '\x3', '\x2', '\x2', '\x2', '\x13A',
+ '\x13B', '\a', '^', '\x2', '\x2', '\x13B', '\x13C', '\a', 'Y', '\x2',
+ '\x2', '\x13C', '*', '\x3', '\x2', '\x2', '\x2', '\x13D', '\x13E', '\a',
+ ']', '\x2', '\x2', '\x13E', ',', '\x3', '\x2', '\x2', '\x2', '\x13F',
+ '\x140', '\a', '_', '\x2', '\x2', '\x140', '.', '\x3', '\x2', '\x2', '\x2',
+ '\x141', '\x142', '\a', '`', '\x2', '\x2', '\x142', '\x30', '\x3', '\x2',
+ '\x2', '\x2', '\x143', '\x144', '\a', '/', '\x2', '\x2', '\x144', '\x32',
+ '\x3', '\x2', '\x2', '\x2', '\x145', '\x146', '\a', '\x41', '\x2', '\x2',
+ '\x146', '\x34', '\x3', '\x2', '\x2', '\x2', '\x147', '\x148', '\a', '-',
+ '\x2', '\x2', '\x148', '\x36', '\x3', '\x2', '\x2', '\x2', '\x149', '\x14A',
+ '\a', ',', '\x2', '\x2', '\x14A', '\x38', '\x3', '\x2', '\x2', '\x2',
+ '\x14B', '\x14C', '\a', '}', '\x2', '\x2', '\x14C', ':', '\x3', '\x2',
+ '\x2', '\x2', '\x14D', '\x14E', '\a', '\x7F', '\x2', '\x2', '\x14E', '<',
+ '\x3', '\x2', '\x2', '\x2', '\x14F', '\x150', '\a', '.', '\x2', '\x2',
+ '\x150', '>', '\x3', '\x2', '\x2', '\x2', '\x151', '\x152', '\a', '&',
+ '\x2', '\x2', '\x152', '@', '\x3', '\x2', '\x2', '\x2', '\x153', '\x154',
+ '\a', '~', '\x2', '\x2', '\x154', '\x42', '\x3', '\x2', '\x2', '\x2',
+ '\x155', '\x156', '\a', '*', '\x2', '\x2', '\x156', '\x44', '\x3', '\x2',
+ '\x2', '\x2', '\x157', '\x158', '\a', '+', '\x2', '\x2', '\x158', '\x46',
+ '\x3', '\x2', '\x2', '\x2', '\x159', '\x15A', '\a', '>', '\x2', '\x2',
+ '\x15A', 'H', '\x3', '\x2', '\x2', '\x2', '\x15B', '\x15C', '\a', '@',
+ '\x2', '\x2', '\x15C', 'J', '\x3', '\x2', '\x2', '\x2', '\x15D', '\x15E',
+ '\a', ')', '\x2', '\x2', '\x15E', 'L', '\x3', '\x2', '\x2', '\x2', '\x15F',
+ '\x160', '\a', '\x61', '\x2', '\x2', '\x160', 'N', '\x3', '\x2', '\x2',
+ '\x2', '\x161', '\x162', '\a', '<', '\x2', '\x2', '\x162', 'P', '\x3',
+ '\x2', '\x2', '\x2', '\x163', '\x164', '\a', '%', '\x2', '\x2', '\x164',
+ 'R', '\x3', '\x2', '\x2', '\x2', '\x165', '\x166', '\a', '?', '\x2', '\x2',
+ '\x166', 'T', '\x3', '\x2', '\x2', '\x2', '\x167', '\x168', '\a', '#',
+ '\x2', '\x2', '\x168', 'V', '\x3', '\x2', '\x2', '\x2', '\x169', '\x16A',
+ '\a', '(', '\x2', '\x2', '\x16A', 'X', '\x3', '\x2', '\x2', '\x2', '\x16B',
+ '\x16C', '\a', '\x63', '\x2', '\x2', '\x16C', 'Z', '\x3', '\x2', '\x2',
+ '\x2', '\x16D', '\x16E', '\a', '\x64', '\x2', '\x2', '\x16E', '\\', '\x3',
+ '\x2', '\x2', '\x2', '\x16F', '\x170', '\a', '\x65', '\x2', '\x2', '\x170',
+ '^', '\x3', '\x2', '\x2', '\x2', '\x171', '\x172', '\a', '\x66', '\x2',
+ '\x2', '\x172', '`', '\x3', '\x2', '\x2', '\x2', '\x173', '\x174', '\a',
+ 'g', '\x2', '\x2', '\x174', '\x62', '\x3', '\x2', '\x2', '\x2', '\x175',
+ '\x176', '\a', 'h', '\x2', '\x2', '\x176', '\x64', '\x3', '\x2', '\x2',
+ '\x2', '\x177', '\x178', '\a', 'i', '\x2', '\x2', '\x178', '\x66', '\x3',
+ '\x2', '\x2', '\x2', '\x179', '\x17A', '\a', 'j', '\x2', '\x2', '\x17A',
+ 'h', '\x3', '\x2', '\x2', '\x2', '\x17B', '\x17C', '\a', 'k', '\x2', '\x2',
+ '\x17C', 'j', '\x3', '\x2', '\x2', '\x2', '\x17D', '\x17E', '\a', 'l',
+ '\x2', '\x2', '\x17E', 'l', '\x3', '\x2', '\x2', '\x2', '\x17F', '\x180',
+ '\a', 'm', '\x2', '\x2', '\x180', 'n', '\x3', '\x2', '\x2', '\x2', '\x181',
+ '\x182', '\a', 'n', '\x2', '\x2', '\x182', 'p', '\x3', '\x2', '\x2', '\x2',
+ '\x183', '\x184', '\a', 'o', '\x2', '\x2', '\x184', 'r', '\x3', '\x2',
+ '\x2', '\x2', '\x185', '\x186', '\a', 'p', '\x2', '\x2', '\x186', 't',
+ '\x3', '\x2', '\x2', '\x2', '\x187', '\x188', '\a', 'q', '\x2', '\x2',
+ '\x188', 'v', '\x3', '\x2', '\x2', '\x2', '\x189', '\x18A', '\a', 'r',
+ '\x2', '\x2', '\x18A', 'x', '\x3', '\x2', '\x2', '\x2', '\x18B', '\x18C',
+ '\a', 's', '\x2', '\x2', '\x18C', 'z', '\x3', '\x2', '\x2', '\x2', '\x18D',
+ '\x18E', '\a', 't', '\x2', '\x2', '\x18E', '|', '\x3', '\x2', '\x2', '\x2',
+ '\x18F', '\x190', '\a', 'u', '\x2', '\x2', '\x190', '~', '\x3', '\x2',
+ '\x2', '\x2', '\x191', '\x192', '\a', 'v', '\x2', '\x2', '\x192', '\x80',
+ '\x3', '\x2', '\x2', '\x2', '\x193', '\x194', '\a', 'w', '\x2', '\x2',
+ '\x194', '\x82', '\x3', '\x2', '\x2', '\x2', '\x195', '\x196', '\a', 'x',
+ '\x2', '\x2', '\x196', '\x84', '\x3', '\x2', '\x2', '\x2', '\x197', '\x198',
+ '\a', 'y', '\x2', '\x2', '\x198', '\x86', '\x3', '\x2', '\x2', '\x2',
+ '\x199', '\x19A', '\a', 'z', '\x2', '\x2', '\x19A', '\x88', '\x3', '\x2',
+ '\x2', '\x2', '\x19B', '\x19C', '\a', '{', '\x2', '\x2', '\x19C', '\x8A',
+ '\x3', '\x2', '\x2', '\x2', '\x19D', '\x19E', '\a', '|', '\x2', '\x2',
+ '\x19E', '\x8C', '\x3', '\x2', '\x2', '\x2', '\x19F', '\x1A0', '\a', '\x43',
+ '\x2', '\x2', '\x1A0', '\x8E', '\x3', '\x2', '\x2', '\x2', '\x1A1', '\x1A2',
+ '\a', '\x44', '\x2', '\x2', '\x1A2', '\x90', '\x3', '\x2', '\x2', '\x2',
+ '\x1A3', '\x1A4', '\a', '\x45', '\x2', '\x2', '\x1A4', '\x92', '\x3',
+ '\x2', '\x2', '\x2', '\x1A5', '\x1A6', '\a', '\x46', '\x2', '\x2', '\x1A6',
+ '\x94', '\x3', '\x2', '\x2', '\x2', '\x1A7', '\x1A8', '\a', 'G', '\x2',
+ '\x2', '\x1A8', '\x96', '\x3', '\x2', '\x2', '\x2', '\x1A9', '\x1AA',
+ '\a', 'H', '\x2', '\x2', '\x1AA', '\x98', '\x3', '\x2', '\x2', '\x2',
+ '\x1AB', '\x1AC', '\a', 'I', '\x2', '\x2', '\x1AC', '\x9A', '\x3', '\x2',
+ '\x2', '\x2', '\x1AD', '\x1AE', '\a', 'J', '\x2', '\x2', '\x1AE', '\x9C',
+ '\x3', '\x2', '\x2', '\x2', '\x1AF', '\x1B0', '\a', 'K', '\x2', '\x2',
+ '\x1B0', '\x9E', '\x3', '\x2', '\x2', '\x2', '\x1B1', '\x1B2', '\a', 'L',
+ '\x2', '\x2', '\x1B2', '\xA0', '\x3', '\x2', '\x2', '\x2', '\x1B3', '\x1B4',
+ '\a', 'M', '\x2', '\x2', '\x1B4', '\xA2', '\x3', '\x2', '\x2', '\x2',
+ '\x1B5', '\x1B6', '\a', 'N', '\x2', '\x2', '\x1B6', '\xA4', '\x3', '\x2',
+ '\x2', '\x2', '\x1B7', '\x1B8', '\a', 'O', '\x2', '\x2', '\x1B8', '\xA6',
+ '\x3', '\x2', '\x2', '\x2', '\x1B9', '\x1BA', '\a', 'P', '\x2', '\x2',
+ '\x1BA', '\xA8', '\x3', '\x2', '\x2', '\x2', '\x1BB', '\x1BC', '\a', 'Q',
+ '\x2', '\x2', '\x1BC', '\xAA', '\x3', '\x2', '\x2', '\x2', '\x1BD', '\x1BE',
+ '\a', 'R', '\x2', '\x2', '\x1BE', '\xAC', '\x3', '\x2', '\x2', '\x2',
+ '\x1BF', '\x1C0', '\a', 'S', '\x2', '\x2', '\x1C0', '\xAE', '\x3', '\x2',
+ '\x2', '\x2', '\x1C1', '\x1C2', '\a', 'T', '\x2', '\x2', '\x1C2', '\xB0',
+ '\x3', '\x2', '\x2', '\x2', '\x1C3', '\x1C4', '\a', 'U', '\x2', '\x2',
+ '\x1C4', '\xB2', '\x3', '\x2', '\x2', '\x2', '\x1C5', '\x1C6', '\a', 'V',
+ '\x2', '\x2', '\x1C6', '\xB4', '\x3', '\x2', '\x2', '\x2', '\x1C7', '\x1C8',
+ '\a', 'W', '\x2', '\x2', '\x1C8', '\xB6', '\x3', '\x2', '\x2', '\x2',
+ '\x1C9', '\x1CA', '\a', 'X', '\x2', '\x2', '\x1CA', '\xB8', '\x3', '\x2',
+ '\x2', '\x2', '\x1CB', '\x1CC', '\a', 'Y', '\x2', '\x2', '\x1CC', '\xBA',
+ '\x3', '\x2', '\x2', '\x2', '\x1CD', '\x1CE', '\a', 'Z', '\x2', '\x2',
+ '\x1CE', '\xBC', '\x3', '\x2', '\x2', '\x2', '\x1CF', '\x1D0', '\a', '[',
+ '\x2', '\x2', '\x1D0', '\xBE', '\x3', '\x2', '\x2', '\x2', '\x1D1', '\x1D2',
+ '\a', '\\', '\x2', '\x2', '\x1D2', '\xC0', '\x3', '\x2', '\x2', '\x2',
+ '\x1D3', '\x1D4', '\a', '\x33', '\x2', '\x2', '\x1D4', '\xC2', '\x3',
+ '\x2', '\x2', '\x2', '\x1D5', '\x1D6', '\a', '\x34', '\x2', '\x2', '\x1D6',
+ '\xC4', '\x3', '\x2', '\x2', '\x2', '\x1D7', '\x1D8', '\a', '\x35', '\x2',
+ '\x2', '\x1D8', '\xC6', '\x3', '\x2', '\x2', '\x2', '\x1D9', '\x1DA',
+ '\a', '\x36', '\x2', '\x2', '\x1DA', '\xC8', '\x3', '\x2', '\x2', '\x2',
+ '\x1DB', '\x1DC', '\a', '\x37', '\x2', '\x2', '\x1DC', '\xCA', '\x3',
+ '\x2', '\x2', '\x2', '\x1DD', '\x1DE', '\a', '\x38', '\x2', '\x2', '\x1DE',
+ '\xCC', '\x3', '\x2', '\x2', '\x2', '\x1DF', '\x1E0', '\a', '\x39', '\x2',
+ '\x2', '\x1E0', '\xCE', '\x3', '\x2', '\x2', '\x2', '\x1E1', '\x1E2',
+ '\a', ':', '\x2', '\x2', '\x1E2', '\xD0', '\x3', '\x2', '\x2', '\x2',
+ '\x1E3', '\x1E4', '\a', ';', '\x2', '\x2', '\x1E4', '\xD2', '\x3', '\x2',
+ '\x2', '\x2', '\x1E5', '\x1E6', '\a', '\x32', '\x2', '\x2', '\x1E6', '\xD4',
+ '\x3', '\x2', '\x2', '\x2', '\x1E7', '\x1E8', '\v', '\x2', '\x2', '\x2',
+ '\x1E8', '\xD6', '\x3', '\x2', '\x2', '\x2', '\x1E9', '\x1EC', '\a', '\x61',
+ '\x2', '\x2', '\x1EA', '\x1EC', '\x5', '\xDB', 'n', '\x2', '\x1EB', '\x1E9',
+ '\x3', '\x2', '\x2', '\x2', '\x1EB', '\x1EA', '\x3', '\x2', '\x2', '\x2',
+ '\x1EC', '\x1ED', '\x3', '\x2', '\x2', '\x2', '\x1ED', '\x1EB', '\x3',
+ '\x2', '\x2', '\x2', '\x1ED', '\x1EE', '\x3', '\x2', '\x2', '\x2', '\x1EE',
+ '\xD8', '\x3', '\x2', '\x2', '\x2', '\x1EF', '\x1F1', '\x5', '\xDB', 'n',
+ '\x2', '\x1F0', '\x1EF', '\x3', '\x2', '\x2', '\x2', '\x1F1', '\x1F2',
+ '\x3', '\x2', '\x2', '\x2', '\x1F2', '\x1F0', '\x3', '\x2', '\x2', '\x2',
+ '\x1F2', '\x1F3', '\x3', '\x2', '\x2', '\x2', '\x1F3', '\xDA', '\x3',
+ '\x2', '\x2', '\x2', '\x1F4', '\x1F5', '\t', '\x2', '\x2', '\x2', '\x1F5',
+ '\xDC', '\x3', '\x2', '\x2', '\x2', '\x1F6', '\x1F7', '\n', '\x2', '\x2',
+ '\x2', '\x1F7', '\xDE', '\x3', '\x2', '\x2', '\x2', '\x1F8', '\x1F9',
+ '\t', '\x3', '\x2', '\x2', '\x1F9', '\xE0', '\x3', '\x2', '\x2', '\x2',
+ '\x1FA', '\x1FB', '\t', '\x4', '\x2', '\x2', '\x1FB', '\xE2', '\x3', '\x2',
+ '\x2', '\x2', '\t', '\x2', '\xEC', '\x115', '\x119', '\x1EB', '\x1ED',
+ '\x1F2', '\x2',
+ };
+
+ public static readonly ATN _ATN =
+ new ATNDeserializer().Deserialize(_serializedATN);
+
+
+}
diff --git a/libraries/AdaptiveExpressions/Generated/CommonRegexListener.cs b/libraries/AdaptiveExpressions/Generated/CommonRegexListener.cs
new file mode 100644
index 0000000000..7e9e4990ca
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/CommonRegexListener.cs
@@ -0,0 +1,307 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from CommonRegex.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+
+#pragma warning disable 3021 // Disable StyleCop warning CS3021 re CLSCompliant attribute in generated files.
+#pragma warning disable 0108 // Disable StyleCop warning CS0108, hides inherited member in generated files.
+
+using Antlr4.Runtime.Misc;
+using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener;
+using IToken = Antlr4.Runtime.IToken;
+
+///
+/// This interface defines a complete listener for a parse tree produced by
+/// .
+///
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public interface ICommonRegexListener : IParseTreeListener {
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterParse([NotNull] CommonRegexParser.ParseContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitParse([NotNull] CommonRegexParser.ParseContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterAlternation([NotNull] CommonRegexParser.AlternationContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitAlternation([NotNull] CommonRegexParser.AlternationContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterExpr([NotNull] CommonRegexParser.ExprContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitExpr([NotNull] CommonRegexParser.ExprContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterElement([NotNull] CommonRegexParser.ElementContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitElement([NotNull] CommonRegexParser.ElementContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterQuantifier([NotNull] CommonRegexParser.QuantifierContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitQuantifier([NotNull] CommonRegexParser.QuantifierContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterQuantifier_type([NotNull] CommonRegexParser.Quantifier_typeContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitQuantifier_type([NotNull] CommonRegexParser.Quantifier_typeContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterCharacter_class([NotNull] CommonRegexParser.Character_classContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitCharacter_class([NotNull] CommonRegexParser.Character_classContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterCapture([NotNull] CommonRegexParser.CaptureContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitCapture([NotNull] CommonRegexParser.CaptureContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterNon_capture([NotNull] CommonRegexParser.Non_captureContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitNon_capture([NotNull] CommonRegexParser.Non_captureContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterOption([NotNull] CommonRegexParser.OptionContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitOption([NotNull] CommonRegexParser.OptionContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterOption_flag([NotNull] CommonRegexParser.Option_flagContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitOption_flag([NotNull] CommonRegexParser.Option_flagContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterAtom([NotNull] CommonRegexParser.AtomContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitAtom([NotNull] CommonRegexParser.AtomContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterCc_atom([NotNull] CommonRegexParser.Cc_atomContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitCc_atom([NotNull] CommonRegexParser.Cc_atomContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterShared_atom([NotNull] CommonRegexParser.Shared_atomContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitShared_atom([NotNull] CommonRegexParser.Shared_atomContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterLiteral([NotNull] CommonRegexParser.LiteralContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitLiteral([NotNull] CommonRegexParser.LiteralContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterCc_literal([NotNull] CommonRegexParser.Cc_literalContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitCc_literal([NotNull] CommonRegexParser.Cc_literalContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterShared_literal([NotNull] CommonRegexParser.Shared_literalContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitShared_literal([NotNull] CommonRegexParser.Shared_literalContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterNumber([NotNull] CommonRegexParser.NumberContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitNumber([NotNull] CommonRegexParser.NumberContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterOctal_char([NotNull] CommonRegexParser.Octal_charContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitOctal_char([NotNull] CommonRegexParser.Octal_charContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterOctal_digit([NotNull] CommonRegexParser.Octal_digitContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitOctal_digit([NotNull] CommonRegexParser.Octal_digitContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterDigits([NotNull] CommonRegexParser.DigitsContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitDigits([NotNull] CommonRegexParser.DigitsContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterDigit([NotNull] CommonRegexParser.DigitContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitDigit([NotNull] CommonRegexParser.DigitContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterName([NotNull] CommonRegexParser.NameContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitName([NotNull] CommonRegexParser.NameContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterAlpha_nums([NotNull] CommonRegexParser.Alpha_numsContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitAlpha_nums([NotNull] CommonRegexParser.Alpha_numsContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterNon_close_parens([NotNull] CommonRegexParser.Non_close_parensContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitNon_close_parens([NotNull] CommonRegexParser.Non_close_parensContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterNon_close_paren([NotNull] CommonRegexParser.Non_close_parenContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitNon_close_paren([NotNull] CommonRegexParser.Non_close_parenContext context);
+ ///
+ /// Enter a parse tree produced by .
+ ///
+ /// The parse tree.
+ void EnterLetter([NotNull] CommonRegexParser.LetterContext context);
+ ///
+ /// Exit a parse tree produced by .
+ ///
+ /// The parse tree.
+ void ExitLetter([NotNull] CommonRegexParser.LetterContext context);
+}
diff --git a/libraries/AdaptiveExpressions/Generated/CommonRegexParser.cs b/libraries/AdaptiveExpressions/Generated/CommonRegexParser.cs
new file mode 100644
index 0000000000..034ce23187
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/CommonRegexParser.cs
@@ -0,0 +1,2907 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from CommonRegex.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+
+#pragma warning disable 3021 // Disable StyleCop warning CS3021 re CLSCompliant attribute in generated files.
+#pragma warning disable 0108 // Disable StyleCop warning CS0108, hides inherited member in generated files.
+
+using System;
+using System.IO;
+using System.Text;
+using System.Diagnostics;
+using System.Collections.Generic;
+using Antlr4.Runtime;
+using Antlr4.Runtime.Atn;
+using Antlr4.Runtime.Misc;
+using Antlr4.Runtime.Tree;
+using DFA = Antlr4.Runtime.Dfa.DFA;
+
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public partial class CommonRegexParser : Parser {
+ protected static DFA[] decisionToDFA;
+ protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
+ public const int
+ Quoted=1, BlockQuoted=2, BellChar=3, ControlChar=4, EscapeChar=5, FormFeed=6,
+ NewLine=7, CarriageReturn=8, Tab=9, Backslash=10, HexChar=11, Dot=12,
+ DecimalDigit=13, NotDecimalDigit=14, CharWithProperty=15, CharWithoutProperty=16,
+ WhiteSpace=17, NotWhiteSpace=18, WordChar=19, NotWordChar=20, CharacterClassStart=21,
+ CharacterClassEnd=22, Caret=23, Hyphen=24, QuestionMark=25, Plus=26, Star=27,
+ OpenBrace=28, CloseBrace=29, Comma=30, EndOfSubject=31, Pipe=32, OpenParen=33,
+ CloseParen=34, LessThan=35, GreaterThan=36, SingleQuote=37, Underscore=38,
+ Colon=39, Hash=40, Equals=41, Exclamation=42, Ampersand=43, ALC=44, BLC=45,
+ CLC=46, DLC=47, ELC=48, FLC=49, GLC=50, HLC=51, ILC=52, JLC=53, KLC=54,
+ LLC=55, MLC=56, NLC=57, OLC=58, PLC=59, QLC=60, RLC=61, SLC=62, TLC=63,
+ ULC=64, VLC=65, WLC=66, XLC=67, YLC=68, ZLC=69, AUC=70, BUC=71, CUC=72,
+ DUC=73, EUC=74, FUC=75, GUC=76, HUC=77, IUC=78, JUC=79, KUC=80, LUC=81,
+ MUC=82, NUC=83, OUC=84, PUC=85, QUC=86, RUC=87, SUC=88, TUC=89, UUC=90,
+ VUC=91, WUC=92, XUC=93, YUC=94, ZUC=95, D1=96, D2=97, D3=98, D4=99, D5=100,
+ D6=101, D7=102, D8=103, D9=104, D0=105, OtherChar=106;
+ public const int
+ RULE_parse = 0, RULE_alternation = 1, RULE_expr = 2, RULE_element = 3,
+ RULE_quantifier = 4, RULE_quantifier_type = 5, RULE_character_class = 6,
+ RULE_capture = 7, RULE_non_capture = 8, RULE_option = 9, RULE_option_flag = 10,
+ RULE_atom = 11, RULE_cc_atom = 12, RULE_shared_atom = 13, RULE_literal = 14,
+ RULE_cc_literal = 15, RULE_shared_literal = 16, RULE_number = 17, RULE_octal_char = 18,
+ RULE_octal_digit = 19, RULE_digits = 20, RULE_digit = 21, RULE_name = 22,
+ RULE_alpha_nums = 23, RULE_non_close_parens = 24, RULE_non_close_paren = 25,
+ RULE_letter = 26;
+ public static readonly string[] ruleNames = {
+ "parse", "alternation", "expr", "element", "quantifier", "quantifier_type",
+ "character_class", "capture", "non_capture", "option", "option_flag",
+ "atom", "cc_atom", "shared_atom", "literal", "cc_literal", "shared_literal",
+ "number", "octal_char", "octal_digit", "digits", "digit", "name", "alpha_nums",
+ "non_close_parens", "non_close_paren", "letter"
+ };
+
+ private static readonly string[] _LiteralNames = {
+ null, null, null, "'\\a'", "'\\c'", "'\\e'", "'\\f'", "'\\n'", "'\\r'",
+ "'\\t'", "'\\'", null, "'.'", "'\\d'", "'\\D'", null, null, "'\\s'", "'\\S'",
+ "'\\w'", "'\\W'", "'['", "']'", "'^'", "'-'", "'?'", "'+'", "'*'", "'{'",
+ "'}'", "','", "'$'", "'|'", "'('", "')'", "'<'", "'>'", "'''", "'_'",
+ "':'", "'#'", "'='", "'!'", "'&'", "'a'", "'b'", "'c'", "'d'", "'e'",
+ "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
+ "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
+ "'z'", "'A'", "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'",
+ "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'",
+ "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", "'Z'", "'1'", "'2'", "'3'",
+ "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "'0'"
+ };
+ private static readonly string[] _SymbolicNames = {
+ null, "Quoted", "BlockQuoted", "BellChar", "ControlChar", "EscapeChar",
+ "FormFeed", "NewLine", "CarriageReturn", "Tab", "Backslash", "HexChar",
+ "Dot", "DecimalDigit", "NotDecimalDigit", "CharWithProperty", "CharWithoutProperty",
+ "WhiteSpace", "NotWhiteSpace", "WordChar", "NotWordChar", "CharacterClassStart",
+ "CharacterClassEnd", "Caret", "Hyphen", "QuestionMark", "Plus", "Star",
+ "OpenBrace", "CloseBrace", "Comma", "EndOfSubject", "Pipe", "OpenParen",
+ "CloseParen", "LessThan", "GreaterThan", "SingleQuote", "Underscore",
+ "Colon", "Hash", "Equals", "Exclamation", "Ampersand", "ALC", "BLC", "CLC",
+ "DLC", "ELC", "FLC", "GLC", "HLC", "ILC", "JLC", "KLC", "LLC", "MLC",
+ "NLC", "OLC", "PLC", "QLC", "RLC", "SLC", "TLC", "ULC", "VLC", "WLC",
+ "XLC", "YLC", "ZLC", "AUC", "BUC", "CUC", "DUC", "EUC", "FUC", "GUC",
+ "HUC", "IUC", "JUC", "KUC", "LUC", "MUC", "NUC", "OUC", "PUC", "QUC",
+ "RUC", "SUC", "TUC", "UUC", "VUC", "WUC", "XUC", "YUC", "ZUC", "D1", "D2",
+ "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D0", "OtherChar"
+ };
+ public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
+
+ [NotNull]
+ public override IVocabulary Vocabulary
+ {
+ get
+ {
+ return DefaultVocabulary;
+ }
+ }
+
+ public override string GrammarFileName { get { return "CommonRegex.g4"; } }
+
+ public override string[] RuleNames { get { return ruleNames; } }
+
+ public override string SerializedAtn { get { return new string(_serializedATN); } }
+
+ static CommonRegexParser() {
+ decisionToDFA = new DFA[_ATN.NumberOfDecisions];
+ for (int i = 0; i < _ATN.NumberOfDecisions; i++) {
+ decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
+ }
+ }
+
+ public CommonRegexParser(ITokenStream input) : this(input, Console.Out, Console.Error) { }
+
+ public CommonRegexParser(ITokenStream input, TextWriter output, TextWriter errorOutput)
+ : base(input, output, errorOutput)
+ {
+ Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
+ }
+
+ public partial class ParseContext : ParserRuleContext {
+ public AlternationContext alternation() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode Eof() { return GetToken(CommonRegexParser.Eof, 0); }
+ public ParseContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_parse; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterParse(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitParse(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitParse(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public ParseContext parse() {
+ ParseContext _localctx = new ParseContext(Context, State);
+ EnterRule(_localctx, 0, RULE_parse);
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 54; alternation();
+ State = 55; Match(Eof);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class AlternationContext : ParserRuleContext {
+ public ExprContext[] expr() {
+ return GetRuleContexts();
+ }
+ public ExprContext expr(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode[] Pipe() { return GetTokens(CommonRegexParser.Pipe); }
+ public ITerminalNode Pipe(int i) {
+ return GetToken(CommonRegexParser.Pipe, i);
+ }
+ public AlternationContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_alternation; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterAlternation(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitAlternation(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitAlternation(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public AlternationContext alternation() {
+ AlternationContext _localctx = new AlternationContext(Context, State);
+ EnterRule(_localctx, 2, RULE_alternation);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 57; expr();
+ State = 62;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ while (_la==Pipe) {
+ {
+ {
+ State = 58; Match(Pipe);
+ State = 59; expr();
+ }
+ }
+ State = 64;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class ExprContext : ParserRuleContext {
+ public ElementContext[] element() {
+ return GetRuleContexts();
+ }
+ public ElementContext element(int i) {
+ return GetRuleContext(i);
+ }
+ public ExprContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_expr; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterExpr(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitExpr(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitExpr(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public ExprContext expr() {
+ ExprContext _localctx = new ExprContext(Context, State);
+ EnterRule(_localctx, 4, RULE_expr);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 68;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << Quoted) | (1L << BlockQuoted) | (1L << BellChar) | (1L << ControlChar) | (1L << EscapeChar) | (1L << FormFeed) | (1L << NewLine) | (1L << CarriageReturn) | (1L << Tab) | (1L << Backslash) | (1L << HexChar) | (1L << Dot) | (1L << DecimalDigit) | (1L << NotDecimalDigit) | (1L << CharWithProperty) | (1L << CharWithoutProperty) | (1L << WhiteSpace) | (1L << NotWhiteSpace) | (1L << WordChar) | (1L << NotWordChar) | (1L << CharacterClassStart) | (1L << CharacterClassEnd) | (1L << Caret) | (1L << Hyphen) | (1L << OpenBrace) | (1L << CloseBrace) | (1L << Comma) | (1L << EndOfSubject) | (1L << OpenParen) | (1L << LessThan) | (1L << GreaterThan) | (1L << SingleQuote) | (1L << Underscore) | (1L << Colon) | (1L << Hash) | (1L << Equals) | (1L << Exclamation) | (1L << Ampersand) | (1L << ALC) | (1L << BLC) | (1L << CLC) | (1L << DLC) | (1L << ELC) | (1L << FLC) | (1L << GLC) | (1L << HLC) | (1L << ILC) | (1L << JLC) | (1L << KLC) | (1L << LLC) | (1L << MLC) | (1L << NLC) | (1L << OLC) | (1L << PLC) | (1L << QLC) | (1L << RLC) | (1L << SLC) | (1L << TLC))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ULC - 64)) | (1L << (VLC - 64)) | (1L << (WLC - 64)) | (1L << (XLC - 64)) | (1L << (YLC - 64)) | (1L << (ZLC - 64)) | (1L << (AUC - 64)) | (1L << (BUC - 64)) | (1L << (CUC - 64)) | (1L << (DUC - 64)) | (1L << (EUC - 64)) | (1L << (FUC - 64)) | (1L << (GUC - 64)) | (1L << (HUC - 64)) | (1L << (IUC - 64)) | (1L << (JUC - 64)) | (1L << (KUC - 64)) | (1L << (LUC - 64)) | (1L << (MUC - 64)) | (1L << (NUC - 64)) | (1L << (OUC - 64)) | (1L << (PUC - 64)) | (1L << (QUC - 64)) | (1L << (RUC - 64)) | (1L << (SUC - 64)) | (1L << (TUC - 64)) | (1L << (UUC - 64)) | (1L << (VUC - 64)) | (1L << (WUC - 64)) | (1L << (XUC - 64)) | (1L << (YUC - 64)) | (1L << (ZUC - 64)) | (1L << (D1 - 64)) | (1L << (D2 - 64)) | (1L << (D3 - 64)) | (1L << (D4 - 64)) | (1L << (D5 - 64)) | (1L << (D6 - 64)) | (1L << (D7 - 64)) | (1L << (D8 - 64)) | (1L << (D9 - 64)) | (1L << (D0 - 64)) | (1L << (OtherChar - 64)))) != 0)) {
+ {
+ {
+ State = 65; element();
+ }
+ }
+ State = 70;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class ElementContext : ParserRuleContext {
+ public AtomContext atom() {
+ return GetRuleContext(0);
+ }
+ public QuantifierContext quantifier() {
+ return GetRuleContext(0);
+ }
+ public ElementContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_element; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterElement(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitElement(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitElement(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public ElementContext element() {
+ ElementContext _localctx = new ElementContext(Context, State);
+ EnterRule(_localctx, 6, RULE_element);
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 71; atom();
+ State = 73;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,2,Context) ) {
+ case 1:
+ {
+ State = 72; quantifier();
+ }
+ break;
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class QuantifierContext : ParserRuleContext {
+ public ITerminalNode QuestionMark() { return GetToken(CommonRegexParser.QuestionMark, 0); }
+ public Quantifier_typeContext quantifier_type() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode Plus() { return GetToken(CommonRegexParser.Plus, 0); }
+ public ITerminalNode Star() { return GetToken(CommonRegexParser.Star, 0); }
+ public ITerminalNode OpenBrace() { return GetToken(CommonRegexParser.OpenBrace, 0); }
+ public NumberContext[] number() {
+ return GetRuleContexts();
+ }
+ public NumberContext number(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode CloseBrace() { return GetToken(CommonRegexParser.CloseBrace, 0); }
+ public ITerminalNode Comma() { return GetToken(CommonRegexParser.Comma, 0); }
+ public QuantifierContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_quantifier; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterQuantifier(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitQuantifier(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitQuantifier(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public QuantifierContext quantifier() {
+ QuantifierContext _localctx = new QuantifierContext(Context, State);
+ EnterRule(_localctx, 8, RULE_quantifier);
+ try {
+ State = 99;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,3,Context) ) {
+ case 1:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 75; Match(QuestionMark);
+ State = 76; quantifier_type();
+ }
+ break;
+ case 2:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 77; Match(Plus);
+ State = 78; quantifier_type();
+ }
+ break;
+ case 3:
+ EnterOuterAlt(_localctx, 3);
+ {
+ State = 79; Match(Star);
+ State = 80; quantifier_type();
+ }
+ break;
+ case 4:
+ EnterOuterAlt(_localctx, 4);
+ {
+ State = 81; Match(OpenBrace);
+ State = 82; number();
+ State = 83; Match(CloseBrace);
+ State = 84; quantifier_type();
+ }
+ break;
+ case 5:
+ EnterOuterAlt(_localctx, 5);
+ {
+ State = 86; Match(OpenBrace);
+ State = 87; number();
+ State = 88; Match(Comma);
+ State = 89; Match(CloseBrace);
+ State = 90; quantifier_type();
+ }
+ break;
+ case 6:
+ EnterOuterAlt(_localctx, 6);
+ {
+ State = 92; Match(OpenBrace);
+ State = 93; number();
+ State = 94; Match(Comma);
+ State = 95; number();
+ State = 96; Match(CloseBrace);
+ State = 97; quantifier_type();
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Quantifier_typeContext : ParserRuleContext {
+ public ITerminalNode Plus() { return GetToken(CommonRegexParser.Plus, 0); }
+ public ITerminalNode QuestionMark() { return GetToken(CommonRegexParser.QuestionMark, 0); }
+ public Quantifier_typeContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_quantifier_type; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterQuantifier_type(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitQuantifier_type(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitQuantifier_type(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Quantifier_typeContext quantifier_type() {
+ Quantifier_typeContext _localctx = new Quantifier_typeContext(Context, State);
+ EnterRule(_localctx, 10, RULE_quantifier_type);
+ try {
+ State = 104;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case Plus:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 101; Match(Plus);
+ }
+ break;
+ case QuestionMark:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 102; Match(QuestionMark);
+ }
+ break;
+ case Eof:
+ case Quoted:
+ case BlockQuoted:
+ case BellChar:
+ case ControlChar:
+ case EscapeChar:
+ case FormFeed:
+ case NewLine:
+ case CarriageReturn:
+ case Tab:
+ case Backslash:
+ case HexChar:
+ case Dot:
+ case DecimalDigit:
+ case NotDecimalDigit:
+ case CharWithProperty:
+ case CharWithoutProperty:
+ case WhiteSpace:
+ case NotWhiteSpace:
+ case WordChar:
+ case NotWordChar:
+ case CharacterClassStart:
+ case CharacterClassEnd:
+ case Caret:
+ case Hyphen:
+ case OpenBrace:
+ case CloseBrace:
+ case Comma:
+ case EndOfSubject:
+ case Pipe:
+ case OpenParen:
+ case CloseParen:
+ case LessThan:
+ case GreaterThan:
+ case SingleQuote:
+ case Underscore:
+ case Colon:
+ case Hash:
+ case Equals:
+ case Exclamation:
+ case Ampersand:
+ case ALC:
+ case BLC:
+ case CLC:
+ case DLC:
+ case ELC:
+ case FLC:
+ case GLC:
+ case HLC:
+ case ILC:
+ case JLC:
+ case KLC:
+ case LLC:
+ case MLC:
+ case NLC:
+ case OLC:
+ case PLC:
+ case QLC:
+ case RLC:
+ case SLC:
+ case TLC:
+ case ULC:
+ case VLC:
+ case WLC:
+ case XLC:
+ case YLC:
+ case ZLC:
+ case AUC:
+ case BUC:
+ case CUC:
+ case DUC:
+ case EUC:
+ case FUC:
+ case GUC:
+ case HUC:
+ case IUC:
+ case JUC:
+ case KUC:
+ case LUC:
+ case MUC:
+ case NUC:
+ case OUC:
+ case PUC:
+ case QUC:
+ case RUC:
+ case SUC:
+ case TUC:
+ case UUC:
+ case VUC:
+ case WUC:
+ case XUC:
+ case YUC:
+ case ZUC:
+ case D1:
+ case D2:
+ case D3:
+ case D4:
+ case D5:
+ case D6:
+ case D7:
+ case D8:
+ case D9:
+ case D0:
+ case OtherChar:
+ EnterOuterAlt(_localctx, 3);
+ {
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Character_classContext : ParserRuleContext {
+ public ITerminalNode CharacterClassStart() { return GetToken(CommonRegexParser.CharacterClassStart, 0); }
+ public ITerminalNode Caret() { return GetToken(CommonRegexParser.Caret, 0); }
+ public ITerminalNode CharacterClassEnd() { return GetToken(CommonRegexParser.CharacterClassEnd, 0); }
+ public Cc_atomContext[] cc_atom() {
+ return GetRuleContexts();
+ }
+ public Cc_atomContext cc_atom(int i) {
+ return GetRuleContext(i);
+ }
+ public Character_classContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_character_class; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterCharacter_class(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitCharacter_class(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitCharacter_class(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Character_classContext character_class() {
+ Character_classContext _localctx = new Character_classContext(Context, State);
+ EnterRule(_localctx, 12, RULE_character_class);
+ int _la;
+ try {
+ State = 123;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,7,Context) ) {
+ case 1:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 106; Match(CharacterClassStart);
+ State = 107; Match(Caret);
+ State = 109;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ do {
+ {
+ {
+ State = 108; cc_atom();
+ }
+ }
+ State = 111;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << Quoted) | (1L << BlockQuoted) | (1L << BellChar) | (1L << ControlChar) | (1L << EscapeChar) | (1L << FormFeed) | (1L << NewLine) | (1L << CarriageReturn) | (1L << Tab) | (1L << Backslash) | (1L << HexChar) | (1L << Dot) | (1L << DecimalDigit) | (1L << NotDecimalDigit) | (1L << CharWithProperty) | (1L << CharWithoutProperty) | (1L << WhiteSpace) | (1L << NotWhiteSpace) | (1L << WordChar) | (1L << NotWordChar) | (1L << CharacterClassStart) | (1L << Caret) | (1L << Hyphen) | (1L << QuestionMark) | (1L << Plus) | (1L << Star) | (1L << OpenBrace) | (1L << CloseBrace) | (1L << Comma) | (1L << EndOfSubject) | (1L << Pipe) | (1L << OpenParen) | (1L << CloseParen) | (1L << LessThan) | (1L << GreaterThan) | (1L << SingleQuote) | (1L << Underscore) | (1L << Colon) | (1L << Hash) | (1L << Equals) | (1L << Exclamation) | (1L << Ampersand) | (1L << ALC) | (1L << BLC) | (1L << CLC) | (1L << DLC) | (1L << ELC) | (1L << FLC) | (1L << GLC) | (1L << HLC) | (1L << ILC) | (1L << JLC) | (1L << KLC) | (1L << LLC) | (1L << MLC) | (1L << NLC) | (1L << OLC) | (1L << PLC) | (1L << QLC) | (1L << RLC) | (1L << SLC) | (1L << TLC))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ULC - 64)) | (1L << (VLC - 64)) | (1L << (WLC - 64)) | (1L << (XLC - 64)) | (1L << (YLC - 64)) | (1L << (ZLC - 64)) | (1L << (AUC - 64)) | (1L << (BUC - 64)) | (1L << (CUC - 64)) | (1L << (DUC - 64)) | (1L << (EUC - 64)) | (1L << (FUC - 64)) | (1L << (GUC - 64)) | (1L << (HUC - 64)) | (1L << (IUC - 64)) | (1L << (JUC - 64)) | (1L << (KUC - 64)) | (1L << (LUC - 64)) | (1L << (MUC - 64)) | (1L << (NUC - 64)) | (1L << (OUC - 64)) | (1L << (PUC - 64)) | (1L << (QUC - 64)) | (1L << (RUC - 64)) | (1L << (SUC - 64)) | (1L << (TUC - 64)) | (1L << (UUC - 64)) | (1L << (VUC - 64)) | (1L << (WUC - 64)) | (1L << (XUC - 64)) | (1L << (YUC - 64)) | (1L << (ZUC - 64)) | (1L << (D1 - 64)) | (1L << (D2 - 64)) | (1L << (D3 - 64)) | (1L << (D4 - 64)) | (1L << (D5 - 64)) | (1L << (D6 - 64)) | (1L << (D7 - 64)) | (1L << (D8 - 64)) | (1L << (D9 - 64)) | (1L << (D0 - 64)) | (1L << (OtherChar - 64)))) != 0) );
+ State = 113; Match(CharacterClassEnd);
+ }
+ break;
+ case 2:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 115; Match(CharacterClassStart);
+ State = 117;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ do {
+ {
+ {
+ State = 116; cc_atom();
+ }
+ }
+ State = 119;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << Quoted) | (1L << BlockQuoted) | (1L << BellChar) | (1L << ControlChar) | (1L << EscapeChar) | (1L << FormFeed) | (1L << NewLine) | (1L << CarriageReturn) | (1L << Tab) | (1L << Backslash) | (1L << HexChar) | (1L << Dot) | (1L << DecimalDigit) | (1L << NotDecimalDigit) | (1L << CharWithProperty) | (1L << CharWithoutProperty) | (1L << WhiteSpace) | (1L << NotWhiteSpace) | (1L << WordChar) | (1L << NotWordChar) | (1L << CharacterClassStart) | (1L << Caret) | (1L << Hyphen) | (1L << QuestionMark) | (1L << Plus) | (1L << Star) | (1L << OpenBrace) | (1L << CloseBrace) | (1L << Comma) | (1L << EndOfSubject) | (1L << Pipe) | (1L << OpenParen) | (1L << CloseParen) | (1L << LessThan) | (1L << GreaterThan) | (1L << SingleQuote) | (1L << Underscore) | (1L << Colon) | (1L << Hash) | (1L << Equals) | (1L << Exclamation) | (1L << Ampersand) | (1L << ALC) | (1L << BLC) | (1L << CLC) | (1L << DLC) | (1L << ELC) | (1L << FLC) | (1L << GLC) | (1L << HLC) | (1L << ILC) | (1L << JLC) | (1L << KLC) | (1L << LLC) | (1L << MLC) | (1L << NLC) | (1L << OLC) | (1L << PLC) | (1L << QLC) | (1L << RLC) | (1L << SLC) | (1L << TLC))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ULC - 64)) | (1L << (VLC - 64)) | (1L << (WLC - 64)) | (1L << (XLC - 64)) | (1L << (YLC - 64)) | (1L << (ZLC - 64)) | (1L << (AUC - 64)) | (1L << (BUC - 64)) | (1L << (CUC - 64)) | (1L << (DUC - 64)) | (1L << (EUC - 64)) | (1L << (FUC - 64)) | (1L << (GUC - 64)) | (1L << (HUC - 64)) | (1L << (IUC - 64)) | (1L << (JUC - 64)) | (1L << (KUC - 64)) | (1L << (LUC - 64)) | (1L << (MUC - 64)) | (1L << (NUC - 64)) | (1L << (OUC - 64)) | (1L << (PUC - 64)) | (1L << (QUC - 64)) | (1L << (RUC - 64)) | (1L << (SUC - 64)) | (1L << (TUC - 64)) | (1L << (UUC - 64)) | (1L << (VUC - 64)) | (1L << (WUC - 64)) | (1L << (XUC - 64)) | (1L << (YUC - 64)) | (1L << (ZUC - 64)) | (1L << (D1 - 64)) | (1L << (D2 - 64)) | (1L << (D3 - 64)) | (1L << (D4 - 64)) | (1L << (D5 - 64)) | (1L << (D6 - 64)) | (1L << (D7 - 64)) | (1L << (D8 - 64)) | (1L << (D9 - 64)) | (1L << (D0 - 64)) | (1L << (OtherChar - 64)))) != 0) );
+ State = 121; Match(CharacterClassEnd);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class CaptureContext : ParserRuleContext {
+ public ITerminalNode OpenParen() { return GetToken(CommonRegexParser.OpenParen, 0); }
+ public ITerminalNode QuestionMark() { return GetToken(CommonRegexParser.QuestionMark, 0); }
+ public ITerminalNode LessThan() { return GetToken(CommonRegexParser.LessThan, 0); }
+ public NameContext name() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode GreaterThan() { return GetToken(CommonRegexParser.GreaterThan, 0); }
+ public AlternationContext alternation() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode CloseParen() { return GetToken(CommonRegexParser.CloseParen, 0); }
+ public CaptureContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_capture; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterCapture(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitCapture(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitCapture(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public CaptureContext capture() {
+ CaptureContext _localctx = new CaptureContext(Context, State);
+ EnterRule(_localctx, 14, RULE_capture);
+ try {
+ State = 137;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,8,Context) ) {
+ case 1:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 125; Match(OpenParen);
+ State = 126; Match(QuestionMark);
+ State = 127; Match(LessThan);
+ State = 128; name();
+ State = 129; Match(GreaterThan);
+ State = 130; alternation();
+ State = 131; Match(CloseParen);
+ }
+ break;
+ case 2:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 133; Match(OpenParen);
+ State = 134; alternation();
+ State = 135; Match(CloseParen);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Non_captureContext : ParserRuleContext {
+ public ITerminalNode OpenParen() { return GetToken(CommonRegexParser.OpenParen, 0); }
+ public ITerminalNode QuestionMark() { return GetToken(CommonRegexParser.QuestionMark, 0); }
+ public ITerminalNode Colon() { return GetToken(CommonRegexParser.Colon, 0); }
+ public AlternationContext alternation() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode CloseParen() { return GetToken(CommonRegexParser.CloseParen, 0); }
+ public Non_captureContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_non_capture; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterNon_capture(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitNon_capture(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitNon_capture(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Non_captureContext non_capture() {
+ Non_captureContext _localctx = new Non_captureContext(Context, State);
+ EnterRule(_localctx, 16, RULE_non_capture);
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 139; Match(OpenParen);
+ State = 140; Match(QuestionMark);
+ State = 141; Match(Colon);
+ State = 142; alternation();
+ State = 143; Match(CloseParen);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class OptionContext : ParserRuleContext {
+ public ITerminalNode OpenParen() { return GetToken(CommonRegexParser.OpenParen, 0); }
+ public ITerminalNode QuestionMark() { return GetToken(CommonRegexParser.QuestionMark, 0); }
+ public ITerminalNode CloseParen() { return GetToken(CommonRegexParser.CloseParen, 0); }
+ public Option_flagContext[] option_flag() {
+ return GetRuleContexts();
+ }
+ public Option_flagContext option_flag(int i) {
+ return GetRuleContext(i);
+ }
+ public OptionContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_option; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterOption(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitOption(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitOption(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public OptionContext option() {
+ OptionContext _localctx = new OptionContext(Context, State);
+ EnterRule(_localctx, 18, RULE_option);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 145; Match(OpenParen);
+ State = 146; Match(QuestionMark);
+ State = 148;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ do {
+ {
+ {
+ State = 147; option_flag();
+ }
+ }
+ State = 150;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ILC) | (1L << MLC) | (1L << SLC))) != 0) );
+ State = 152; Match(CloseParen);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Option_flagContext : ParserRuleContext {
+ public ITerminalNode ILC() { return GetToken(CommonRegexParser.ILC, 0); }
+ public ITerminalNode MLC() { return GetToken(CommonRegexParser.MLC, 0); }
+ public ITerminalNode SLC() { return GetToken(CommonRegexParser.SLC, 0); }
+ public Option_flagContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_option_flag; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterOption_flag(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitOption_flag(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitOption_flag(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Option_flagContext option_flag() {
+ Option_flagContext _localctx = new Option_flagContext(Context, State);
+ EnterRule(_localctx, 20, RULE_option_flag);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 154;
+ _la = TokenStream.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ILC) | (1L << MLC) | (1L << SLC))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class AtomContext : ParserRuleContext {
+ public Shared_atomContext shared_atom() {
+ return GetRuleContext(0);
+ }
+ public LiteralContext literal() {
+ return GetRuleContext(0);
+ }
+ public Character_classContext character_class() {
+ return GetRuleContext(0);
+ }
+ public CaptureContext capture() {
+ return GetRuleContext(0);
+ }
+ public Non_captureContext non_capture() {
+ return GetRuleContext(0);
+ }
+ public OptionContext option() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode Dot() { return GetToken(CommonRegexParser.Dot, 0); }
+ public ITerminalNode Caret() { return GetToken(CommonRegexParser.Caret, 0); }
+ public ITerminalNode EndOfSubject() { return GetToken(CommonRegexParser.EndOfSubject, 0); }
+ public AtomContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_atom; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterAtom(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitAtom(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitAtom(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public AtomContext atom() {
+ AtomContext _localctx = new AtomContext(Context, State);
+ EnterRule(_localctx, 22, RULE_atom);
+ try {
+ State = 165;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,10,Context) ) {
+ case 1:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 156; shared_atom();
+ }
+ break;
+ case 2:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 157; literal();
+ }
+ break;
+ case 3:
+ EnterOuterAlt(_localctx, 3);
+ {
+ State = 158; character_class();
+ }
+ break;
+ case 4:
+ EnterOuterAlt(_localctx, 4);
+ {
+ State = 159; capture();
+ }
+ break;
+ case 5:
+ EnterOuterAlt(_localctx, 5);
+ {
+ State = 160; non_capture();
+ }
+ break;
+ case 6:
+ EnterOuterAlt(_localctx, 6);
+ {
+ State = 161; option();
+ }
+ break;
+ case 7:
+ EnterOuterAlt(_localctx, 7);
+ {
+ State = 162; Match(Dot);
+ }
+ break;
+ case 8:
+ EnterOuterAlt(_localctx, 8);
+ {
+ State = 163; Match(Caret);
+ }
+ break;
+ case 9:
+ EnterOuterAlt(_localctx, 9);
+ {
+ State = 164; Match(EndOfSubject);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Cc_atomContext : ParserRuleContext {
+ public Cc_literalContext[] cc_literal() {
+ return GetRuleContexts();
+ }
+ public Cc_literalContext cc_literal(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode Hyphen() { return GetToken(CommonRegexParser.Hyphen, 0); }
+ public Shared_atomContext shared_atom() {
+ return GetRuleContext(0);
+ }
+ public Cc_atomContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_cc_atom; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterCc_atom(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitCc_atom(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitCc_atom(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Cc_atomContext cc_atom() {
+ Cc_atomContext _localctx = new Cc_atomContext(Context, State);
+ EnterRule(_localctx, 24, RULE_cc_atom);
+ try {
+ State = 173;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,11,Context) ) {
+ case 1:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 167; cc_literal();
+ State = 168; Match(Hyphen);
+ State = 169; cc_literal();
+ }
+ break;
+ case 2:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 171; shared_atom();
+ }
+ break;
+ case 3:
+ EnterOuterAlt(_localctx, 3);
+ {
+ State = 172; cc_literal();
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Shared_atomContext : ParserRuleContext {
+ public ITerminalNode ControlChar() { return GetToken(CommonRegexParser.ControlChar, 0); }
+ public ITerminalNode DecimalDigit() { return GetToken(CommonRegexParser.DecimalDigit, 0); }
+ public ITerminalNode NotDecimalDigit() { return GetToken(CommonRegexParser.NotDecimalDigit, 0); }
+ public ITerminalNode CharWithProperty() { return GetToken(CommonRegexParser.CharWithProperty, 0); }
+ public ITerminalNode CharWithoutProperty() { return GetToken(CommonRegexParser.CharWithoutProperty, 0); }
+ public ITerminalNode WhiteSpace() { return GetToken(CommonRegexParser.WhiteSpace, 0); }
+ public ITerminalNode NotWhiteSpace() { return GetToken(CommonRegexParser.NotWhiteSpace, 0); }
+ public ITerminalNode WordChar() { return GetToken(CommonRegexParser.WordChar, 0); }
+ public ITerminalNode NotWordChar() { return GetToken(CommonRegexParser.NotWordChar, 0); }
+ public Shared_atomContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_shared_atom; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterShared_atom(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitShared_atom(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitShared_atom(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Shared_atomContext shared_atom() {
+ Shared_atomContext _localctx = new Shared_atomContext(Context, State);
+ EnterRule(_localctx, 26, RULE_shared_atom);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 175;
+ _la = TokenStream.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ControlChar) | (1L << DecimalDigit) | (1L << NotDecimalDigit) | (1L << CharWithProperty) | (1L << CharWithoutProperty) | (1L << WhiteSpace) | (1L << NotWhiteSpace) | (1L << WordChar) | (1L << NotWordChar))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class LiteralContext : ParserRuleContext {
+ public Shared_literalContext shared_literal() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode CharacterClassEnd() { return GetToken(CommonRegexParser.CharacterClassEnd, 0); }
+ public LiteralContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_literal; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterLiteral(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitLiteral(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitLiteral(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public LiteralContext literal() {
+ LiteralContext _localctx = new LiteralContext(Context, State);
+ EnterRule(_localctx, 28, RULE_literal);
+ try {
+ State = 179;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case Quoted:
+ case BlockQuoted:
+ case BellChar:
+ case EscapeChar:
+ case FormFeed:
+ case NewLine:
+ case CarriageReturn:
+ case Tab:
+ case Backslash:
+ case HexChar:
+ case Hyphen:
+ case OpenBrace:
+ case CloseBrace:
+ case Comma:
+ case LessThan:
+ case GreaterThan:
+ case SingleQuote:
+ case Underscore:
+ case Colon:
+ case Hash:
+ case Equals:
+ case Exclamation:
+ case Ampersand:
+ case ALC:
+ case BLC:
+ case CLC:
+ case DLC:
+ case ELC:
+ case FLC:
+ case GLC:
+ case HLC:
+ case ILC:
+ case JLC:
+ case KLC:
+ case LLC:
+ case MLC:
+ case NLC:
+ case OLC:
+ case PLC:
+ case QLC:
+ case RLC:
+ case SLC:
+ case TLC:
+ case ULC:
+ case VLC:
+ case WLC:
+ case XLC:
+ case YLC:
+ case ZLC:
+ case AUC:
+ case BUC:
+ case CUC:
+ case DUC:
+ case EUC:
+ case FUC:
+ case GUC:
+ case HUC:
+ case IUC:
+ case JUC:
+ case KUC:
+ case LUC:
+ case MUC:
+ case NUC:
+ case OUC:
+ case PUC:
+ case QUC:
+ case RUC:
+ case SUC:
+ case TUC:
+ case UUC:
+ case VUC:
+ case WUC:
+ case XUC:
+ case YUC:
+ case ZUC:
+ case D1:
+ case D2:
+ case D3:
+ case D4:
+ case D5:
+ case D6:
+ case D7:
+ case D8:
+ case D9:
+ case D0:
+ case OtherChar:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 177; shared_literal();
+ }
+ break;
+ case CharacterClassEnd:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 178; Match(CharacterClassEnd);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Cc_literalContext : ParserRuleContext {
+ public Shared_literalContext shared_literal() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode Dot() { return GetToken(CommonRegexParser.Dot, 0); }
+ public ITerminalNode CharacterClassStart() { return GetToken(CommonRegexParser.CharacterClassStart, 0); }
+ public ITerminalNode Caret() { return GetToken(CommonRegexParser.Caret, 0); }
+ public ITerminalNode QuestionMark() { return GetToken(CommonRegexParser.QuestionMark, 0); }
+ public ITerminalNode Plus() { return GetToken(CommonRegexParser.Plus, 0); }
+ public ITerminalNode Star() { return GetToken(CommonRegexParser.Star, 0); }
+ public ITerminalNode EndOfSubject() { return GetToken(CommonRegexParser.EndOfSubject, 0); }
+ public ITerminalNode Pipe() { return GetToken(CommonRegexParser.Pipe, 0); }
+ public ITerminalNode OpenParen() { return GetToken(CommonRegexParser.OpenParen, 0); }
+ public ITerminalNode CloseParen() { return GetToken(CommonRegexParser.CloseParen, 0); }
+ public Cc_literalContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_cc_literal; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterCc_literal(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitCc_literal(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitCc_literal(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Cc_literalContext cc_literal() {
+ Cc_literalContext _localctx = new Cc_literalContext(Context, State);
+ EnterRule(_localctx, 30, RULE_cc_literal);
+ try {
+ State = 192;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case Quoted:
+ case BlockQuoted:
+ case BellChar:
+ case EscapeChar:
+ case FormFeed:
+ case NewLine:
+ case CarriageReturn:
+ case Tab:
+ case Backslash:
+ case HexChar:
+ case Hyphen:
+ case OpenBrace:
+ case CloseBrace:
+ case Comma:
+ case LessThan:
+ case GreaterThan:
+ case SingleQuote:
+ case Underscore:
+ case Colon:
+ case Hash:
+ case Equals:
+ case Exclamation:
+ case Ampersand:
+ case ALC:
+ case BLC:
+ case CLC:
+ case DLC:
+ case ELC:
+ case FLC:
+ case GLC:
+ case HLC:
+ case ILC:
+ case JLC:
+ case KLC:
+ case LLC:
+ case MLC:
+ case NLC:
+ case OLC:
+ case PLC:
+ case QLC:
+ case RLC:
+ case SLC:
+ case TLC:
+ case ULC:
+ case VLC:
+ case WLC:
+ case XLC:
+ case YLC:
+ case ZLC:
+ case AUC:
+ case BUC:
+ case CUC:
+ case DUC:
+ case EUC:
+ case FUC:
+ case GUC:
+ case HUC:
+ case IUC:
+ case JUC:
+ case KUC:
+ case LUC:
+ case MUC:
+ case NUC:
+ case OUC:
+ case PUC:
+ case QUC:
+ case RUC:
+ case SUC:
+ case TUC:
+ case UUC:
+ case VUC:
+ case WUC:
+ case XUC:
+ case YUC:
+ case ZUC:
+ case D1:
+ case D2:
+ case D3:
+ case D4:
+ case D5:
+ case D6:
+ case D7:
+ case D8:
+ case D9:
+ case D0:
+ case OtherChar:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 181; shared_literal();
+ }
+ break;
+ case Dot:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 182; Match(Dot);
+ }
+ break;
+ case CharacterClassStart:
+ EnterOuterAlt(_localctx, 3);
+ {
+ State = 183; Match(CharacterClassStart);
+ }
+ break;
+ case Caret:
+ EnterOuterAlt(_localctx, 4);
+ {
+ State = 184; Match(Caret);
+ }
+ break;
+ case QuestionMark:
+ EnterOuterAlt(_localctx, 5);
+ {
+ State = 185; Match(QuestionMark);
+ }
+ break;
+ case Plus:
+ EnterOuterAlt(_localctx, 6);
+ {
+ State = 186; Match(Plus);
+ }
+ break;
+ case Star:
+ EnterOuterAlt(_localctx, 7);
+ {
+ State = 187; Match(Star);
+ }
+ break;
+ case EndOfSubject:
+ EnterOuterAlt(_localctx, 8);
+ {
+ State = 188; Match(EndOfSubject);
+ }
+ break;
+ case Pipe:
+ EnterOuterAlt(_localctx, 9);
+ {
+ State = 189; Match(Pipe);
+ }
+ break;
+ case OpenParen:
+ EnterOuterAlt(_localctx, 10);
+ {
+ State = 190; Match(OpenParen);
+ }
+ break;
+ case CloseParen:
+ EnterOuterAlt(_localctx, 11);
+ {
+ State = 191; Match(CloseParen);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Shared_literalContext : ParserRuleContext {
+ public Octal_charContext octal_char() {
+ return GetRuleContext(0);
+ }
+ public LetterContext letter() {
+ return GetRuleContext(0);
+ }
+ public DigitContext digit() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode BellChar() { return GetToken(CommonRegexParser.BellChar, 0); }
+ public ITerminalNode EscapeChar() { return GetToken(CommonRegexParser.EscapeChar, 0); }
+ public ITerminalNode FormFeed() { return GetToken(CommonRegexParser.FormFeed, 0); }
+ public ITerminalNode NewLine() { return GetToken(CommonRegexParser.NewLine, 0); }
+ public ITerminalNode CarriageReturn() { return GetToken(CommonRegexParser.CarriageReturn, 0); }
+ public ITerminalNode Tab() { return GetToken(CommonRegexParser.Tab, 0); }
+ public ITerminalNode HexChar() { return GetToken(CommonRegexParser.HexChar, 0); }
+ public ITerminalNode Quoted() { return GetToken(CommonRegexParser.Quoted, 0); }
+ public ITerminalNode BlockQuoted() { return GetToken(CommonRegexParser.BlockQuoted, 0); }
+ public ITerminalNode OpenBrace() { return GetToken(CommonRegexParser.OpenBrace, 0); }
+ public ITerminalNode CloseBrace() { return GetToken(CommonRegexParser.CloseBrace, 0); }
+ public ITerminalNode Comma() { return GetToken(CommonRegexParser.Comma, 0); }
+ public ITerminalNode Hyphen() { return GetToken(CommonRegexParser.Hyphen, 0); }
+ public ITerminalNode LessThan() { return GetToken(CommonRegexParser.LessThan, 0); }
+ public ITerminalNode GreaterThan() { return GetToken(CommonRegexParser.GreaterThan, 0); }
+ public ITerminalNode SingleQuote() { return GetToken(CommonRegexParser.SingleQuote, 0); }
+ public ITerminalNode Underscore() { return GetToken(CommonRegexParser.Underscore, 0); }
+ public ITerminalNode Colon() { return GetToken(CommonRegexParser.Colon, 0); }
+ public ITerminalNode Hash() { return GetToken(CommonRegexParser.Hash, 0); }
+ public ITerminalNode Equals() { return GetToken(CommonRegexParser.Equals, 0); }
+ public ITerminalNode Exclamation() { return GetToken(CommonRegexParser.Exclamation, 0); }
+ public ITerminalNode Ampersand() { return GetToken(CommonRegexParser.Ampersand, 0); }
+ public ITerminalNode OtherChar() { return GetToken(CommonRegexParser.OtherChar, 0); }
+ public Shared_literalContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_shared_literal; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterShared_literal(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitShared_literal(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitShared_literal(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Shared_literalContext shared_literal() {
+ Shared_literalContext _localctx = new Shared_literalContext(Context, State);
+ EnterRule(_localctx, 32, RULE_shared_literal);
+ try {
+ State = 220;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case Backslash:
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 194; octal_char();
+ }
+ break;
+ case ALC:
+ case BLC:
+ case CLC:
+ case DLC:
+ case ELC:
+ case FLC:
+ case GLC:
+ case HLC:
+ case ILC:
+ case JLC:
+ case KLC:
+ case LLC:
+ case MLC:
+ case NLC:
+ case OLC:
+ case PLC:
+ case QLC:
+ case RLC:
+ case SLC:
+ case TLC:
+ case ULC:
+ case VLC:
+ case WLC:
+ case XLC:
+ case YLC:
+ case ZLC:
+ case AUC:
+ case BUC:
+ case CUC:
+ case DUC:
+ case EUC:
+ case FUC:
+ case GUC:
+ case HUC:
+ case IUC:
+ case JUC:
+ case KUC:
+ case LUC:
+ case MUC:
+ case NUC:
+ case OUC:
+ case PUC:
+ case QUC:
+ case RUC:
+ case SUC:
+ case TUC:
+ case UUC:
+ case VUC:
+ case WUC:
+ case XUC:
+ case YUC:
+ case ZUC:
+ EnterOuterAlt(_localctx, 2);
+ {
+ State = 195; letter();
+ }
+ break;
+ case D1:
+ case D2:
+ case D3:
+ case D4:
+ case D5:
+ case D6:
+ case D7:
+ case D8:
+ case D9:
+ case D0:
+ EnterOuterAlt(_localctx, 3);
+ {
+ State = 196; digit();
+ }
+ break;
+ case BellChar:
+ EnterOuterAlt(_localctx, 4);
+ {
+ State = 197; Match(BellChar);
+ }
+ break;
+ case EscapeChar:
+ EnterOuterAlt(_localctx, 5);
+ {
+ State = 198; Match(EscapeChar);
+ }
+ break;
+ case FormFeed:
+ EnterOuterAlt(_localctx, 6);
+ {
+ State = 199; Match(FormFeed);
+ }
+ break;
+ case NewLine:
+ EnterOuterAlt(_localctx, 7);
+ {
+ State = 200; Match(NewLine);
+ }
+ break;
+ case CarriageReturn:
+ EnterOuterAlt(_localctx, 8);
+ {
+ State = 201; Match(CarriageReturn);
+ }
+ break;
+ case Tab:
+ EnterOuterAlt(_localctx, 9);
+ {
+ State = 202; Match(Tab);
+ }
+ break;
+ case HexChar:
+ EnterOuterAlt(_localctx, 10);
+ {
+ State = 203; Match(HexChar);
+ }
+ break;
+ case Quoted:
+ EnterOuterAlt(_localctx, 11);
+ {
+ State = 204; Match(Quoted);
+ }
+ break;
+ case BlockQuoted:
+ EnterOuterAlt(_localctx, 12);
+ {
+ State = 205; Match(BlockQuoted);
+ }
+ break;
+ case OpenBrace:
+ EnterOuterAlt(_localctx, 13);
+ {
+ State = 206; Match(OpenBrace);
+ }
+ break;
+ case CloseBrace:
+ EnterOuterAlt(_localctx, 14);
+ {
+ State = 207; Match(CloseBrace);
+ }
+ break;
+ case Comma:
+ EnterOuterAlt(_localctx, 15);
+ {
+ State = 208; Match(Comma);
+ }
+ break;
+ case Hyphen:
+ EnterOuterAlt(_localctx, 16);
+ {
+ State = 209; Match(Hyphen);
+ }
+ break;
+ case LessThan:
+ EnterOuterAlt(_localctx, 17);
+ {
+ State = 210; Match(LessThan);
+ }
+ break;
+ case GreaterThan:
+ EnterOuterAlt(_localctx, 18);
+ {
+ State = 211; Match(GreaterThan);
+ }
+ break;
+ case SingleQuote:
+ EnterOuterAlt(_localctx, 19);
+ {
+ State = 212; Match(SingleQuote);
+ }
+ break;
+ case Underscore:
+ EnterOuterAlt(_localctx, 20);
+ {
+ State = 213; Match(Underscore);
+ }
+ break;
+ case Colon:
+ EnterOuterAlt(_localctx, 21);
+ {
+ State = 214; Match(Colon);
+ }
+ break;
+ case Hash:
+ EnterOuterAlt(_localctx, 22);
+ {
+ State = 215; Match(Hash);
+ }
+ break;
+ case Equals:
+ EnterOuterAlt(_localctx, 23);
+ {
+ State = 216; Match(Equals);
+ }
+ break;
+ case Exclamation:
+ EnterOuterAlt(_localctx, 24);
+ {
+ State = 217; Match(Exclamation);
+ }
+ break;
+ case Ampersand:
+ EnterOuterAlt(_localctx, 25);
+ {
+ State = 218; Match(Ampersand);
+ }
+ break;
+ case OtherChar:
+ EnterOuterAlt(_localctx, 26);
+ {
+ State = 219; Match(OtherChar);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class NumberContext : ParserRuleContext {
+ public DigitsContext digits() {
+ return GetRuleContext(0);
+ }
+ public NumberContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_number; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterNumber(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitNumber(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitNumber(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public NumberContext number() {
+ NumberContext _localctx = new NumberContext(Context, State);
+ EnterRule(_localctx, 34, RULE_number);
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 222; digits();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Octal_charContext : ParserRuleContext {
+ public ITerminalNode Backslash() { return GetToken(CommonRegexParser.Backslash, 0); }
+ public Octal_digitContext[] octal_digit() {
+ return GetRuleContexts();
+ }
+ public Octal_digitContext octal_digit(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode D0() { return GetToken(CommonRegexParser.D0, 0); }
+ public ITerminalNode D1() { return GetToken(CommonRegexParser.D1, 0); }
+ public ITerminalNode D2() { return GetToken(CommonRegexParser.D2, 0); }
+ public ITerminalNode D3() { return GetToken(CommonRegexParser.D3, 0); }
+ public Octal_charContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_octal_char; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterOctal_char(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitOctal_char(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitOctal_char(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Octal_charContext octal_char() {
+ Octal_charContext _localctx = new Octal_charContext(Context, State);
+ EnterRule(_localctx, 36, RULE_octal_char);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 233;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,15,Context) ) {
+ case 1:
+ {
+ State = 224; Match(Backslash);
+ State = 225;
+ _la = TokenStream.LA(1);
+ if ( !(((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & ((1L << (D1 - 96)) | (1L << (D2 - 96)) | (1L << (D3 - 96)) | (1L << (D0 - 96)))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ State = 226; octal_digit();
+ State = 227; octal_digit();
+ }
+ break;
+ case 2:
+ {
+ State = 229; Match(Backslash);
+ State = 230; octal_digit();
+ State = 231; octal_digit();
+ }
+ break;
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Octal_digitContext : ParserRuleContext {
+ public ITerminalNode D0() { return GetToken(CommonRegexParser.D0, 0); }
+ public ITerminalNode D1() { return GetToken(CommonRegexParser.D1, 0); }
+ public ITerminalNode D2() { return GetToken(CommonRegexParser.D2, 0); }
+ public ITerminalNode D3() { return GetToken(CommonRegexParser.D3, 0); }
+ public ITerminalNode D4() { return GetToken(CommonRegexParser.D4, 0); }
+ public ITerminalNode D5() { return GetToken(CommonRegexParser.D5, 0); }
+ public ITerminalNode D6() { return GetToken(CommonRegexParser.D6, 0); }
+ public ITerminalNode D7() { return GetToken(CommonRegexParser.D7, 0); }
+ public Octal_digitContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_octal_digit; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterOctal_digit(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitOctal_digit(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitOctal_digit(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Octal_digitContext octal_digit() {
+ Octal_digitContext _localctx = new Octal_digitContext(Context, State);
+ EnterRule(_localctx, 38, RULE_octal_digit);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 235;
+ _la = TokenStream.LA(1);
+ if ( !(((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & ((1L << (D1 - 96)) | (1L << (D2 - 96)) | (1L << (D3 - 96)) | (1L << (D4 - 96)) | (1L << (D5 - 96)) | (1L << (D6 - 96)) | (1L << (D7 - 96)) | (1L << (D0 - 96)))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class DigitsContext : ParserRuleContext {
+ public DigitContext[] digit() {
+ return GetRuleContexts();
+ }
+ public DigitContext digit(int i) {
+ return GetRuleContext(i);
+ }
+ public DigitsContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_digits; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterDigits(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitDigits(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitDigits(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public DigitsContext digits() {
+ DigitsContext _localctx = new DigitsContext(Context, State);
+ EnterRule(_localctx, 40, RULE_digits);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 238;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ do {
+ {
+ {
+ State = 237; digit();
+ }
+ }
+ State = 240;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ } while ( ((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & ((1L << (D1 - 96)) | (1L << (D2 - 96)) | (1L << (D3 - 96)) | (1L << (D4 - 96)) | (1L << (D5 - 96)) | (1L << (D6 - 96)) | (1L << (D7 - 96)) | (1L << (D8 - 96)) | (1L << (D9 - 96)) | (1L << (D0 - 96)))) != 0) );
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class DigitContext : ParserRuleContext {
+ public ITerminalNode D0() { return GetToken(CommonRegexParser.D0, 0); }
+ public ITerminalNode D1() { return GetToken(CommonRegexParser.D1, 0); }
+ public ITerminalNode D2() { return GetToken(CommonRegexParser.D2, 0); }
+ public ITerminalNode D3() { return GetToken(CommonRegexParser.D3, 0); }
+ public ITerminalNode D4() { return GetToken(CommonRegexParser.D4, 0); }
+ public ITerminalNode D5() { return GetToken(CommonRegexParser.D5, 0); }
+ public ITerminalNode D6() { return GetToken(CommonRegexParser.D6, 0); }
+ public ITerminalNode D7() { return GetToken(CommonRegexParser.D7, 0); }
+ public ITerminalNode D8() { return GetToken(CommonRegexParser.D8, 0); }
+ public ITerminalNode D9() { return GetToken(CommonRegexParser.D9, 0); }
+ public DigitContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_digit; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterDigit(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitDigit(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitDigit(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public DigitContext digit() {
+ DigitContext _localctx = new DigitContext(Context, State);
+ EnterRule(_localctx, 42, RULE_digit);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 242;
+ _la = TokenStream.LA(1);
+ if ( !(((((_la - 96)) & ~0x3f) == 0 && ((1L << (_la - 96)) & ((1L << (D1 - 96)) | (1L << (D2 - 96)) | (1L << (D3 - 96)) | (1L << (D4 - 96)) | (1L << (D5 - 96)) | (1L << (D6 - 96)) | (1L << (D7 - 96)) | (1L << (D8 - 96)) | (1L << (D9 - 96)) | (1L << (D0 - 96)))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class NameContext : ParserRuleContext {
+ public Alpha_numsContext alpha_nums() {
+ return GetRuleContext(0);
+ }
+ public NameContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_name; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterName(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitName(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitName(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public NameContext name() {
+ NameContext _localctx = new NameContext(Context, State);
+ EnterRule(_localctx, 44, RULE_name);
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 244; alpha_nums();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Alpha_numsContext : ParserRuleContext {
+ public LetterContext[] letter() {
+ return GetRuleContexts();
+ }
+ public LetterContext letter(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode[] Underscore() { return GetTokens(CommonRegexParser.Underscore); }
+ public ITerminalNode Underscore(int i) {
+ return GetToken(CommonRegexParser.Underscore, i);
+ }
+ public DigitContext[] digit() {
+ return GetRuleContexts();
+ }
+ public DigitContext digit(int i) {
+ return GetRuleContext(i);
+ }
+ public Alpha_numsContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_alpha_nums; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterAlpha_nums(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitAlpha_nums(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitAlpha_nums(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Alpha_numsContext alpha_nums() {
+ Alpha_numsContext _localctx = new Alpha_numsContext(Context, State);
+ EnterRule(_localctx, 46, RULE_alpha_nums);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 248;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case ALC:
+ case BLC:
+ case CLC:
+ case DLC:
+ case ELC:
+ case FLC:
+ case GLC:
+ case HLC:
+ case ILC:
+ case JLC:
+ case KLC:
+ case LLC:
+ case MLC:
+ case NLC:
+ case OLC:
+ case PLC:
+ case QLC:
+ case RLC:
+ case SLC:
+ case TLC:
+ case ULC:
+ case VLC:
+ case WLC:
+ case XLC:
+ case YLC:
+ case ZLC:
+ case AUC:
+ case BUC:
+ case CUC:
+ case DUC:
+ case EUC:
+ case FUC:
+ case GUC:
+ case HUC:
+ case IUC:
+ case JUC:
+ case KUC:
+ case LUC:
+ case MUC:
+ case NUC:
+ case OUC:
+ case PUC:
+ case QUC:
+ case RUC:
+ case SUC:
+ case TUC:
+ case UUC:
+ case VUC:
+ case WUC:
+ case XUC:
+ case YUC:
+ case ZUC:
+ {
+ State = 246; letter();
+ }
+ break;
+ case Underscore:
+ {
+ State = 247; Match(Underscore);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ State = 255;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << Underscore) | (1L << ALC) | (1L << BLC) | (1L << CLC) | (1L << DLC) | (1L << ELC) | (1L << FLC) | (1L << GLC) | (1L << HLC) | (1L << ILC) | (1L << JLC) | (1L << KLC) | (1L << LLC) | (1L << MLC) | (1L << NLC) | (1L << OLC) | (1L << PLC) | (1L << QLC) | (1L << RLC) | (1L << SLC) | (1L << TLC))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ULC - 64)) | (1L << (VLC - 64)) | (1L << (WLC - 64)) | (1L << (XLC - 64)) | (1L << (YLC - 64)) | (1L << (ZLC - 64)) | (1L << (AUC - 64)) | (1L << (BUC - 64)) | (1L << (CUC - 64)) | (1L << (DUC - 64)) | (1L << (EUC - 64)) | (1L << (FUC - 64)) | (1L << (GUC - 64)) | (1L << (HUC - 64)) | (1L << (IUC - 64)) | (1L << (JUC - 64)) | (1L << (KUC - 64)) | (1L << (LUC - 64)) | (1L << (MUC - 64)) | (1L << (NUC - 64)) | (1L << (OUC - 64)) | (1L << (PUC - 64)) | (1L << (QUC - 64)) | (1L << (RUC - 64)) | (1L << (SUC - 64)) | (1L << (TUC - 64)) | (1L << (UUC - 64)) | (1L << (VUC - 64)) | (1L << (WUC - 64)) | (1L << (XUC - 64)) | (1L << (YUC - 64)) | (1L << (ZUC - 64)) | (1L << (D1 - 64)) | (1L << (D2 - 64)) | (1L << (D3 - 64)) | (1L << (D4 - 64)) | (1L << (D5 - 64)) | (1L << (D6 - 64)) | (1L << (D7 - 64)) | (1L << (D8 - 64)) | (1L << (D9 - 64)) | (1L << (D0 - 64)))) != 0)) {
+ {
+ State = 253;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case ALC:
+ case BLC:
+ case CLC:
+ case DLC:
+ case ELC:
+ case FLC:
+ case GLC:
+ case HLC:
+ case ILC:
+ case JLC:
+ case KLC:
+ case LLC:
+ case MLC:
+ case NLC:
+ case OLC:
+ case PLC:
+ case QLC:
+ case RLC:
+ case SLC:
+ case TLC:
+ case ULC:
+ case VLC:
+ case WLC:
+ case XLC:
+ case YLC:
+ case ZLC:
+ case AUC:
+ case BUC:
+ case CUC:
+ case DUC:
+ case EUC:
+ case FUC:
+ case GUC:
+ case HUC:
+ case IUC:
+ case JUC:
+ case KUC:
+ case LUC:
+ case MUC:
+ case NUC:
+ case OUC:
+ case PUC:
+ case QUC:
+ case RUC:
+ case SUC:
+ case TUC:
+ case UUC:
+ case VUC:
+ case WUC:
+ case XUC:
+ case YUC:
+ case ZUC:
+ {
+ State = 250; letter();
+ }
+ break;
+ case Underscore:
+ {
+ State = 251; Match(Underscore);
+ }
+ break;
+ case D1:
+ case D2:
+ case D3:
+ case D4:
+ case D5:
+ case D6:
+ case D7:
+ case D8:
+ case D9:
+ case D0:
+ {
+ State = 252; digit();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ State = 257;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Non_close_parensContext : ParserRuleContext {
+ public Non_close_parenContext[] non_close_paren() {
+ return GetRuleContexts();
+ }
+ public Non_close_parenContext non_close_paren(int i) {
+ return GetRuleContext(i);
+ }
+ public Non_close_parensContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_non_close_parens; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterNon_close_parens(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitNon_close_parens(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitNon_close_parens(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Non_close_parensContext non_close_parens() {
+ Non_close_parensContext _localctx = new Non_close_parensContext(Context, State);
+ EnterRule(_localctx, 48, RULE_non_close_parens);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 259;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ do {
+ {
+ {
+ State = 258; non_close_paren();
+ }
+ }
+ State = 261;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << Quoted) | (1L << BlockQuoted) | (1L << BellChar) | (1L << ControlChar) | (1L << EscapeChar) | (1L << FormFeed) | (1L << NewLine) | (1L << CarriageReturn) | (1L << Tab) | (1L << Backslash) | (1L << HexChar) | (1L << Dot) | (1L << DecimalDigit) | (1L << NotDecimalDigit) | (1L << CharWithProperty) | (1L << CharWithoutProperty) | (1L << WhiteSpace) | (1L << NotWhiteSpace) | (1L << WordChar) | (1L << NotWordChar) | (1L << CharacterClassStart) | (1L << CharacterClassEnd) | (1L << Caret) | (1L << Hyphen) | (1L << QuestionMark) | (1L << Plus) | (1L << Star) | (1L << OpenBrace) | (1L << CloseBrace) | (1L << Comma) | (1L << EndOfSubject) | (1L << Pipe) | (1L << OpenParen) | (1L << LessThan) | (1L << GreaterThan) | (1L << SingleQuote) | (1L << Underscore) | (1L << Colon) | (1L << Hash) | (1L << Equals) | (1L << Exclamation) | (1L << Ampersand) | (1L << ALC) | (1L << BLC) | (1L << CLC) | (1L << DLC) | (1L << ELC) | (1L << FLC) | (1L << GLC) | (1L << HLC) | (1L << ILC) | (1L << JLC) | (1L << KLC) | (1L << LLC) | (1L << MLC) | (1L << NLC) | (1L << OLC) | (1L << PLC) | (1L << QLC) | (1L << RLC) | (1L << SLC) | (1L << TLC))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ULC - 64)) | (1L << (VLC - 64)) | (1L << (WLC - 64)) | (1L << (XLC - 64)) | (1L << (YLC - 64)) | (1L << (ZLC - 64)) | (1L << (AUC - 64)) | (1L << (BUC - 64)) | (1L << (CUC - 64)) | (1L << (DUC - 64)) | (1L << (EUC - 64)) | (1L << (FUC - 64)) | (1L << (GUC - 64)) | (1L << (HUC - 64)) | (1L << (IUC - 64)) | (1L << (JUC - 64)) | (1L << (KUC - 64)) | (1L << (LUC - 64)) | (1L << (MUC - 64)) | (1L << (NUC - 64)) | (1L << (OUC - 64)) | (1L << (PUC - 64)) | (1L << (QUC - 64)) | (1L << (RUC - 64)) | (1L << (SUC - 64)) | (1L << (TUC - 64)) | (1L << (UUC - 64)) | (1L << (VUC - 64)) | (1L << (WUC - 64)) | (1L << (XUC - 64)) | (1L << (YUC - 64)) | (1L << (ZUC - 64)) | (1L << (D1 - 64)) | (1L << (D2 - 64)) | (1L << (D3 - 64)) | (1L << (D4 - 64)) | (1L << (D5 - 64)) | (1L << (D6 - 64)) | (1L << (D7 - 64)) | (1L << (D8 - 64)) | (1L << (D9 - 64)) | (1L << (D0 - 64)) | (1L << (OtherChar - 64)))) != 0) );
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class Non_close_parenContext : ParserRuleContext {
+ public ITerminalNode CloseParen() { return GetToken(CommonRegexParser.CloseParen, 0); }
+ public Non_close_parenContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_non_close_paren; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterNon_close_paren(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitNon_close_paren(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitNon_close_paren(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public Non_close_parenContext non_close_paren() {
+ Non_close_parenContext _localctx = new Non_close_parenContext(Context, State);
+ EnterRule(_localctx, 50, RULE_non_close_paren);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 263;
+ _la = TokenStream.LA(1);
+ if ( _la <= 0 || (_la==CloseParen) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class LetterContext : ParserRuleContext {
+ public ITerminalNode ALC() { return GetToken(CommonRegexParser.ALC, 0); }
+ public ITerminalNode BLC() { return GetToken(CommonRegexParser.BLC, 0); }
+ public ITerminalNode CLC() { return GetToken(CommonRegexParser.CLC, 0); }
+ public ITerminalNode DLC() { return GetToken(CommonRegexParser.DLC, 0); }
+ public ITerminalNode ELC() { return GetToken(CommonRegexParser.ELC, 0); }
+ public ITerminalNode FLC() { return GetToken(CommonRegexParser.FLC, 0); }
+ public ITerminalNode GLC() { return GetToken(CommonRegexParser.GLC, 0); }
+ public ITerminalNode HLC() { return GetToken(CommonRegexParser.HLC, 0); }
+ public ITerminalNode ILC() { return GetToken(CommonRegexParser.ILC, 0); }
+ public ITerminalNode JLC() { return GetToken(CommonRegexParser.JLC, 0); }
+ public ITerminalNode KLC() { return GetToken(CommonRegexParser.KLC, 0); }
+ public ITerminalNode LLC() { return GetToken(CommonRegexParser.LLC, 0); }
+ public ITerminalNode MLC() { return GetToken(CommonRegexParser.MLC, 0); }
+ public ITerminalNode NLC() { return GetToken(CommonRegexParser.NLC, 0); }
+ public ITerminalNode OLC() { return GetToken(CommonRegexParser.OLC, 0); }
+ public ITerminalNode PLC() { return GetToken(CommonRegexParser.PLC, 0); }
+ public ITerminalNode QLC() { return GetToken(CommonRegexParser.QLC, 0); }
+ public ITerminalNode RLC() { return GetToken(CommonRegexParser.RLC, 0); }
+ public ITerminalNode SLC() { return GetToken(CommonRegexParser.SLC, 0); }
+ public ITerminalNode TLC() { return GetToken(CommonRegexParser.TLC, 0); }
+ public ITerminalNode ULC() { return GetToken(CommonRegexParser.ULC, 0); }
+ public ITerminalNode VLC() { return GetToken(CommonRegexParser.VLC, 0); }
+ public ITerminalNode WLC() { return GetToken(CommonRegexParser.WLC, 0); }
+ public ITerminalNode XLC() { return GetToken(CommonRegexParser.XLC, 0); }
+ public ITerminalNode YLC() { return GetToken(CommonRegexParser.YLC, 0); }
+ public ITerminalNode ZLC() { return GetToken(CommonRegexParser.ZLC, 0); }
+ public ITerminalNode AUC() { return GetToken(CommonRegexParser.AUC, 0); }
+ public ITerminalNode BUC() { return GetToken(CommonRegexParser.BUC, 0); }
+ public ITerminalNode CUC() { return GetToken(CommonRegexParser.CUC, 0); }
+ public ITerminalNode DUC() { return GetToken(CommonRegexParser.DUC, 0); }
+ public ITerminalNode EUC() { return GetToken(CommonRegexParser.EUC, 0); }
+ public ITerminalNode FUC() { return GetToken(CommonRegexParser.FUC, 0); }
+ public ITerminalNode GUC() { return GetToken(CommonRegexParser.GUC, 0); }
+ public ITerminalNode HUC() { return GetToken(CommonRegexParser.HUC, 0); }
+ public ITerminalNode IUC() { return GetToken(CommonRegexParser.IUC, 0); }
+ public ITerminalNode JUC() { return GetToken(CommonRegexParser.JUC, 0); }
+ public ITerminalNode KUC() { return GetToken(CommonRegexParser.KUC, 0); }
+ public ITerminalNode LUC() { return GetToken(CommonRegexParser.LUC, 0); }
+ public ITerminalNode MUC() { return GetToken(CommonRegexParser.MUC, 0); }
+ public ITerminalNode NUC() { return GetToken(CommonRegexParser.NUC, 0); }
+ public ITerminalNode OUC() { return GetToken(CommonRegexParser.OUC, 0); }
+ public ITerminalNode PUC() { return GetToken(CommonRegexParser.PUC, 0); }
+ public ITerminalNode QUC() { return GetToken(CommonRegexParser.QUC, 0); }
+ public ITerminalNode RUC() { return GetToken(CommonRegexParser.RUC, 0); }
+ public ITerminalNode SUC() { return GetToken(CommonRegexParser.SUC, 0); }
+ public ITerminalNode TUC() { return GetToken(CommonRegexParser.TUC, 0); }
+ public ITerminalNode UUC() { return GetToken(CommonRegexParser.UUC, 0); }
+ public ITerminalNode VUC() { return GetToken(CommonRegexParser.VUC, 0); }
+ public ITerminalNode WUC() { return GetToken(CommonRegexParser.WUC, 0); }
+ public ITerminalNode XUC() { return GetToken(CommonRegexParser.XUC, 0); }
+ public ITerminalNode YUC() { return GetToken(CommonRegexParser.YUC, 0); }
+ public ITerminalNode ZUC() { return GetToken(CommonRegexParser.ZUC, 0); }
+ public LetterContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_letter; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.EnterLetter(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ ICommonRegexListener typedListener = listener as ICommonRegexListener;
+ if (typedListener != null) typedListener.ExitLetter(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ ICommonRegexVisitor typedVisitor = visitor as ICommonRegexVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitLetter(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public LetterContext letter() {
+ LetterContext _localctx = new LetterContext(Context, State);
+ EnterRule(_localctx, 52, RULE_letter);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 265;
+ _la = TokenStream.LA(1);
+ if ( !(((((_la - 44)) & ~0x3f) == 0 && ((1L << (_la - 44)) & ((1L << (ALC - 44)) | (1L << (BLC - 44)) | (1L << (CLC - 44)) | (1L << (DLC - 44)) | (1L << (ELC - 44)) | (1L << (FLC - 44)) | (1L << (GLC - 44)) | (1L << (HLC - 44)) | (1L << (ILC - 44)) | (1L << (JLC - 44)) | (1L << (KLC - 44)) | (1L << (LLC - 44)) | (1L << (MLC - 44)) | (1L << (NLC - 44)) | (1L << (OLC - 44)) | (1L << (PLC - 44)) | (1L << (QLC - 44)) | (1L << (RLC - 44)) | (1L << (SLC - 44)) | (1L << (TLC - 44)) | (1L << (ULC - 44)) | (1L << (VLC - 44)) | (1L << (WLC - 44)) | (1L << (XLC - 44)) | (1L << (YLC - 44)) | (1L << (ZLC - 44)) | (1L << (AUC - 44)) | (1L << (BUC - 44)) | (1L << (CUC - 44)) | (1L << (DUC - 44)) | (1L << (EUC - 44)) | (1L << (FUC - 44)) | (1L << (GUC - 44)) | (1L << (HUC - 44)) | (1L << (IUC - 44)) | (1L << (JUC - 44)) | (1L << (KUC - 44)) | (1L << (LUC - 44)) | (1L << (MUC - 44)) | (1L << (NUC - 44)) | (1L << (OUC - 44)) | (1L << (PUC - 44)) | (1L << (QUC - 44)) | (1L << (RUC - 44)) | (1L << (SUC - 44)) | (1L << (TUC - 44)) | (1L << (UUC - 44)) | (1L << (VUC - 44)) | (1L << (WUC - 44)) | (1L << (XUC - 44)) | (1L << (YUC - 44)) | (1L << (ZUC - 44)))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ private static char[] _serializedATN = {
+ '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786',
+ '\x5964', '\x3', 'l', '\x10E', '\x4', '\x2', '\t', '\x2', '\x4', '\x3',
+ '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', '\x5', '\x4',
+ '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', '\t', '\b',
+ '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v', '\t', '\v',
+ '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r', '\x4', '\xE', '\t',
+ '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t', '\x10', '\x4',
+ '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4', '\x13', '\t',
+ '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t', '\x15', '\x4',
+ '\x16', '\t', '\x16', '\x4', '\x17', '\t', '\x17', '\x4', '\x18', '\t',
+ '\x18', '\x4', '\x19', '\t', '\x19', '\x4', '\x1A', '\t', '\x1A', '\x4',
+ '\x1B', '\t', '\x1B', '\x4', '\x1C', '\t', '\x1C', '\x3', '\x2', '\x3',
+ '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\a', '\x3',
+ '?', '\n', '\x3', '\f', '\x3', '\xE', '\x3', '\x42', '\v', '\x3', '\x3',
+ '\x4', '\a', '\x4', '\x45', '\n', '\x4', '\f', '\x4', '\xE', '\x4', 'H',
+ '\v', '\x4', '\x3', '\x5', '\x3', '\x5', '\x5', '\x5', 'L', '\n', '\x5',
+ '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6',
+ '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6',
+ '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6',
+ '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6',
+ '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x5', '\x6',
+ '\x66', '\n', '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x5', '\a',
+ 'k', '\n', '\a', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x6', '\b', 'p',
+ '\n', '\b', '\r', '\b', '\xE', '\b', 'q', '\x3', '\b', '\x3', '\b', '\x3',
+ '\b', '\x3', '\b', '\x6', '\b', 'x', '\n', '\b', '\r', '\b', '\xE', '\b',
+ 'y', '\x3', '\b', '\x3', '\b', '\x5', '\b', '~', '\n', '\b', '\x3', '\t',
+ '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3',
+ '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t',
+ '\x5', '\t', '\x8C', '\n', '\t', '\x3', '\n', '\x3', '\n', '\x3', '\n',
+ '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', '\v', '\x3',
+ '\v', '\x6', '\v', '\x97', '\n', '\v', '\r', '\v', '\xE', '\v', '\x98',
+ '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3', '\f', '\x3', '\r', '\x3',
+ '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r',
+ '\x3', '\r', '\x3', '\r', '\x5', '\r', '\xA8', '\n', '\r', '\x3', '\xE',
+ '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE',
+ '\x5', '\xE', '\xB0', '\n', '\xE', '\x3', '\xF', '\x3', '\xF', '\x3',
+ '\x10', '\x3', '\x10', '\x5', '\x10', '\xB6', '\n', '\x10', '\x3', '\x11',
+ '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11',
+ '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11',
+ '\x5', '\x11', '\xC3', '\n', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3',
+ '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3',
+ '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3',
+ '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3',
+ '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3',
+ '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x5', '\x12', '\xDF',
+ '\n', '\x12', '\x3', '\x13', '\x3', '\x13', '\x3', '\x14', '\x3', '\x14',
+ '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14',
+ '\x3', '\x14', '\x3', '\x14', '\x5', '\x14', '\xEC', '\n', '\x14', '\x3',
+ '\x15', '\x3', '\x15', '\x3', '\x16', '\x6', '\x16', '\xF1', '\n', '\x16',
+ '\r', '\x16', '\xE', '\x16', '\xF2', '\x3', '\x17', '\x3', '\x17', '\x3',
+ '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x5', '\x19', '\xFB',
+ '\n', '\x19', '\x3', '\x19', '\x3', '\x19', '\x3', '\x19', '\a', '\x19',
+ '\x100', '\n', '\x19', '\f', '\x19', '\xE', '\x19', '\x103', '\v', '\x19',
+ '\x3', '\x1A', '\x6', '\x1A', '\x106', '\n', '\x1A', '\r', '\x1A', '\xE',
+ '\x1A', '\x107', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1C', '\x3', '\x1C',
+ '\x3', '\x1C', '\x2', '\x2', '\x1D', '\x2', '\x4', '\x6', '\b', '\n',
+ '\f', '\xE', '\x10', '\x12', '\x14', '\x16', '\x18', '\x1A', '\x1C', '\x1E',
+ ' ', '\"', '$', '&', '(', '*', ',', '.', '\x30', '\x32', '\x34', '\x36',
+ '\x2', '\t', '\x5', '\x2', '\x36', '\x36', ':', ':', '@', '@', '\x4',
+ '\x2', '\x6', '\x6', '\xF', '\x16', '\x4', '\x2', '\x62', '\x64', 'k',
+ 'k', '\x4', '\x2', '\x62', 'h', 'k', 'k', '\x3', '\x2', '\x62', 'k', '\x3',
+ '\x2', '$', '$', '\x3', '\x2', '.', '\x61', '\x2', '\x136', '\x2', '\x38',
+ '\x3', '\x2', '\x2', '\x2', '\x4', ';', '\x3', '\x2', '\x2', '\x2', '\x6',
+ '\x46', '\x3', '\x2', '\x2', '\x2', '\b', 'I', '\x3', '\x2', '\x2', '\x2',
+ '\n', '\x65', '\x3', '\x2', '\x2', '\x2', '\f', 'j', '\x3', '\x2', '\x2',
+ '\x2', '\xE', '}', '\x3', '\x2', '\x2', '\x2', '\x10', '\x8B', '\x3',
+ '\x2', '\x2', '\x2', '\x12', '\x8D', '\x3', '\x2', '\x2', '\x2', '\x14',
+ '\x93', '\x3', '\x2', '\x2', '\x2', '\x16', '\x9C', '\x3', '\x2', '\x2',
+ '\x2', '\x18', '\xA7', '\x3', '\x2', '\x2', '\x2', '\x1A', '\xAF', '\x3',
+ '\x2', '\x2', '\x2', '\x1C', '\xB1', '\x3', '\x2', '\x2', '\x2', '\x1E',
+ '\xB5', '\x3', '\x2', '\x2', '\x2', ' ', '\xC2', '\x3', '\x2', '\x2',
+ '\x2', '\"', '\xDE', '\x3', '\x2', '\x2', '\x2', '$', '\xE0', '\x3', '\x2',
+ '\x2', '\x2', '&', '\xEB', '\x3', '\x2', '\x2', '\x2', '(', '\xED', '\x3',
+ '\x2', '\x2', '\x2', '*', '\xF0', '\x3', '\x2', '\x2', '\x2', ',', '\xF4',
+ '\x3', '\x2', '\x2', '\x2', '.', '\xF6', '\x3', '\x2', '\x2', '\x2', '\x30',
+ '\xFA', '\x3', '\x2', '\x2', '\x2', '\x32', '\x105', '\x3', '\x2', '\x2',
+ '\x2', '\x34', '\x109', '\x3', '\x2', '\x2', '\x2', '\x36', '\x10B', '\x3',
+ '\x2', '\x2', '\x2', '\x38', '\x39', '\x5', '\x4', '\x3', '\x2', '\x39',
+ ':', '\a', '\x2', '\x2', '\x3', ':', '\x3', '\x3', '\x2', '\x2', '\x2',
+ ';', '@', '\x5', '\x6', '\x4', '\x2', '<', '=', '\a', '\"', '\x2', '\x2',
+ '=', '?', '\x5', '\x6', '\x4', '\x2', '>', '<', '\x3', '\x2', '\x2', '\x2',
+ '?', '\x42', '\x3', '\x2', '\x2', '\x2', '@', '>', '\x3', '\x2', '\x2',
+ '\x2', '@', '\x41', '\x3', '\x2', '\x2', '\x2', '\x41', '\x5', '\x3',
+ '\x2', '\x2', '\x2', '\x42', '@', '\x3', '\x2', '\x2', '\x2', '\x43',
+ '\x45', '\x5', '\b', '\x5', '\x2', '\x44', '\x43', '\x3', '\x2', '\x2',
+ '\x2', '\x45', 'H', '\x3', '\x2', '\x2', '\x2', '\x46', '\x44', '\x3',
+ '\x2', '\x2', '\x2', '\x46', 'G', '\x3', '\x2', '\x2', '\x2', 'G', '\a',
+ '\x3', '\x2', '\x2', '\x2', 'H', '\x46', '\x3', '\x2', '\x2', '\x2', 'I',
+ 'K', '\x5', '\x18', '\r', '\x2', 'J', 'L', '\x5', '\n', '\x6', '\x2',
+ 'K', 'J', '\x3', '\x2', '\x2', '\x2', 'K', 'L', '\x3', '\x2', '\x2', '\x2',
+ 'L', '\t', '\x3', '\x2', '\x2', '\x2', 'M', 'N', '\a', '\x1B', '\x2',
+ '\x2', 'N', '\x66', '\x5', '\f', '\a', '\x2', 'O', 'P', '\a', '\x1C',
+ '\x2', '\x2', 'P', '\x66', '\x5', '\f', '\a', '\x2', 'Q', 'R', '\a', '\x1D',
+ '\x2', '\x2', 'R', '\x66', '\x5', '\f', '\a', '\x2', 'S', 'T', '\a', '\x1E',
+ '\x2', '\x2', 'T', 'U', '\x5', '$', '\x13', '\x2', 'U', 'V', '\a', '\x1F',
+ '\x2', '\x2', 'V', 'W', '\x5', '\f', '\a', '\x2', 'W', '\x66', '\x3',
+ '\x2', '\x2', '\x2', 'X', 'Y', '\a', '\x1E', '\x2', '\x2', 'Y', 'Z', '\x5',
+ '$', '\x13', '\x2', 'Z', '[', '\a', ' ', '\x2', '\x2', '[', '\\', '\a',
+ '\x1F', '\x2', '\x2', '\\', ']', '\x5', '\f', '\a', '\x2', ']', '\x66',
+ '\x3', '\x2', '\x2', '\x2', '^', '_', '\a', '\x1E', '\x2', '\x2', '_',
+ '`', '\x5', '$', '\x13', '\x2', '`', '\x61', '\a', ' ', '\x2', '\x2',
+ '\x61', '\x62', '\x5', '$', '\x13', '\x2', '\x62', '\x63', '\a', '\x1F',
+ '\x2', '\x2', '\x63', '\x64', '\x5', '\f', '\a', '\x2', '\x64', '\x66',
+ '\x3', '\x2', '\x2', '\x2', '\x65', 'M', '\x3', '\x2', '\x2', '\x2', '\x65',
+ 'O', '\x3', '\x2', '\x2', '\x2', '\x65', 'Q', '\x3', '\x2', '\x2', '\x2',
+ '\x65', 'S', '\x3', '\x2', '\x2', '\x2', '\x65', 'X', '\x3', '\x2', '\x2',
+ '\x2', '\x65', '^', '\x3', '\x2', '\x2', '\x2', '\x66', '\v', '\x3', '\x2',
+ '\x2', '\x2', 'g', 'k', '\a', '\x1C', '\x2', '\x2', 'h', 'k', '\a', '\x1B',
+ '\x2', '\x2', 'i', 'k', '\x3', '\x2', '\x2', '\x2', 'j', 'g', '\x3', '\x2',
+ '\x2', '\x2', 'j', 'h', '\x3', '\x2', '\x2', '\x2', 'j', 'i', '\x3', '\x2',
+ '\x2', '\x2', 'k', '\r', '\x3', '\x2', '\x2', '\x2', 'l', 'm', '\a', '\x17',
+ '\x2', '\x2', 'm', 'o', '\a', '\x19', '\x2', '\x2', 'n', 'p', '\x5', '\x1A',
+ '\xE', '\x2', 'o', 'n', '\x3', '\x2', '\x2', '\x2', 'p', 'q', '\x3', '\x2',
+ '\x2', '\x2', 'q', 'o', '\x3', '\x2', '\x2', '\x2', 'q', 'r', '\x3', '\x2',
+ '\x2', '\x2', 'r', 's', '\x3', '\x2', '\x2', '\x2', 's', 't', '\a', '\x18',
+ '\x2', '\x2', 't', '~', '\x3', '\x2', '\x2', '\x2', 'u', 'w', '\a', '\x17',
+ '\x2', '\x2', 'v', 'x', '\x5', '\x1A', '\xE', '\x2', 'w', 'v', '\x3',
+ '\x2', '\x2', '\x2', 'x', 'y', '\x3', '\x2', '\x2', '\x2', 'y', 'w', '\x3',
+ '\x2', '\x2', '\x2', 'y', 'z', '\x3', '\x2', '\x2', '\x2', 'z', '{', '\x3',
+ '\x2', '\x2', '\x2', '{', '|', '\a', '\x18', '\x2', '\x2', '|', '~', '\x3',
+ '\x2', '\x2', '\x2', '}', 'l', '\x3', '\x2', '\x2', '\x2', '}', 'u', '\x3',
+ '\x2', '\x2', '\x2', '~', '\xF', '\x3', '\x2', '\x2', '\x2', '\x7F', '\x80',
+ '\a', '#', '\x2', '\x2', '\x80', '\x81', '\a', '\x1B', '\x2', '\x2', '\x81',
+ '\x82', '\a', '%', '\x2', '\x2', '\x82', '\x83', '\x5', '.', '\x18', '\x2',
+ '\x83', '\x84', '\a', '&', '\x2', '\x2', '\x84', '\x85', '\x5', '\x4',
+ '\x3', '\x2', '\x85', '\x86', '\a', '$', '\x2', '\x2', '\x86', '\x8C',
+ '\x3', '\x2', '\x2', '\x2', '\x87', '\x88', '\a', '#', '\x2', '\x2', '\x88',
+ '\x89', '\x5', '\x4', '\x3', '\x2', '\x89', '\x8A', '\a', '$', '\x2',
+ '\x2', '\x8A', '\x8C', '\x3', '\x2', '\x2', '\x2', '\x8B', '\x7F', '\x3',
+ '\x2', '\x2', '\x2', '\x8B', '\x87', '\x3', '\x2', '\x2', '\x2', '\x8C',
+ '\x11', '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8E', '\a', '#', '\x2',
+ '\x2', '\x8E', '\x8F', '\a', '\x1B', '\x2', '\x2', '\x8F', '\x90', '\a',
+ ')', '\x2', '\x2', '\x90', '\x91', '\x5', '\x4', '\x3', '\x2', '\x91',
+ '\x92', '\a', '$', '\x2', '\x2', '\x92', '\x13', '\x3', '\x2', '\x2',
+ '\x2', '\x93', '\x94', '\a', '#', '\x2', '\x2', '\x94', '\x96', '\a',
+ '\x1B', '\x2', '\x2', '\x95', '\x97', '\x5', '\x16', '\f', '\x2', '\x96',
+ '\x95', '\x3', '\x2', '\x2', '\x2', '\x97', '\x98', '\x3', '\x2', '\x2',
+ '\x2', '\x98', '\x96', '\x3', '\x2', '\x2', '\x2', '\x98', '\x99', '\x3',
+ '\x2', '\x2', '\x2', '\x99', '\x9A', '\x3', '\x2', '\x2', '\x2', '\x9A',
+ '\x9B', '\a', '$', '\x2', '\x2', '\x9B', '\x15', '\x3', '\x2', '\x2',
+ '\x2', '\x9C', '\x9D', '\t', '\x2', '\x2', '\x2', '\x9D', '\x17', '\x3',
+ '\x2', '\x2', '\x2', '\x9E', '\xA8', '\x5', '\x1C', '\xF', '\x2', '\x9F',
+ '\xA8', '\x5', '\x1E', '\x10', '\x2', '\xA0', '\xA8', '\x5', '\xE', '\b',
+ '\x2', '\xA1', '\xA8', '\x5', '\x10', '\t', '\x2', '\xA2', '\xA8', '\x5',
+ '\x12', '\n', '\x2', '\xA3', '\xA8', '\x5', '\x14', '\v', '\x2', '\xA4',
+ '\xA8', '\a', '\xE', '\x2', '\x2', '\xA5', '\xA8', '\a', '\x19', '\x2',
+ '\x2', '\xA6', '\xA8', '\a', '!', '\x2', '\x2', '\xA7', '\x9E', '\x3',
+ '\x2', '\x2', '\x2', '\xA7', '\x9F', '\x3', '\x2', '\x2', '\x2', '\xA7',
+ '\xA0', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA1', '\x3', '\x2', '\x2',
+ '\x2', '\xA7', '\xA2', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA3', '\x3',
+ '\x2', '\x2', '\x2', '\xA7', '\xA4', '\x3', '\x2', '\x2', '\x2', '\xA7',
+ '\xA5', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA6', '\x3', '\x2', '\x2',
+ '\x2', '\xA8', '\x19', '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAA', '\x5',
+ ' ', '\x11', '\x2', '\xAA', '\xAB', '\a', '\x1A', '\x2', '\x2', '\xAB',
+ '\xAC', '\x5', ' ', '\x11', '\x2', '\xAC', '\xB0', '\x3', '\x2', '\x2',
+ '\x2', '\xAD', '\xB0', '\x5', '\x1C', '\xF', '\x2', '\xAE', '\xB0', '\x5',
+ ' ', '\x11', '\x2', '\xAF', '\xA9', '\x3', '\x2', '\x2', '\x2', '\xAF',
+ '\xAD', '\x3', '\x2', '\x2', '\x2', '\xAF', '\xAE', '\x3', '\x2', '\x2',
+ '\x2', '\xB0', '\x1B', '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB2', '\t',
+ '\x3', '\x2', '\x2', '\xB2', '\x1D', '\x3', '\x2', '\x2', '\x2', '\xB3',
+ '\xB6', '\x5', '\"', '\x12', '\x2', '\xB4', '\xB6', '\a', '\x18', '\x2',
+ '\x2', '\xB5', '\xB3', '\x3', '\x2', '\x2', '\x2', '\xB5', '\xB4', '\x3',
+ '\x2', '\x2', '\x2', '\xB6', '\x1F', '\x3', '\x2', '\x2', '\x2', '\xB7',
+ '\xC3', '\x5', '\"', '\x12', '\x2', '\xB8', '\xC3', '\a', '\xE', '\x2',
+ '\x2', '\xB9', '\xC3', '\a', '\x17', '\x2', '\x2', '\xBA', '\xC3', '\a',
+ '\x19', '\x2', '\x2', '\xBB', '\xC3', '\a', '\x1B', '\x2', '\x2', '\xBC',
+ '\xC3', '\a', '\x1C', '\x2', '\x2', '\xBD', '\xC3', '\a', '\x1D', '\x2',
+ '\x2', '\xBE', '\xC3', '\a', '!', '\x2', '\x2', '\xBF', '\xC3', '\a',
+ '\"', '\x2', '\x2', '\xC0', '\xC3', '\a', '#', '\x2', '\x2', '\xC1', '\xC3',
+ '\a', '$', '\x2', '\x2', '\xC2', '\xB7', '\x3', '\x2', '\x2', '\x2', '\xC2',
+ '\xB8', '\x3', '\x2', '\x2', '\x2', '\xC2', '\xB9', '\x3', '\x2', '\x2',
+ '\x2', '\xC2', '\xBA', '\x3', '\x2', '\x2', '\x2', '\xC2', '\xBB', '\x3',
+ '\x2', '\x2', '\x2', '\xC2', '\xBC', '\x3', '\x2', '\x2', '\x2', '\xC2',
+ '\xBD', '\x3', '\x2', '\x2', '\x2', '\xC2', '\xBE', '\x3', '\x2', '\x2',
+ '\x2', '\xC2', '\xBF', '\x3', '\x2', '\x2', '\x2', '\xC2', '\xC0', '\x3',
+ '\x2', '\x2', '\x2', '\xC2', '\xC1', '\x3', '\x2', '\x2', '\x2', '\xC3',
+ '!', '\x3', '\x2', '\x2', '\x2', '\xC4', '\xDF', '\x5', '&', '\x14', '\x2',
+ '\xC5', '\xDF', '\x5', '\x36', '\x1C', '\x2', '\xC6', '\xDF', '\x5', ',',
+ '\x17', '\x2', '\xC7', '\xDF', '\a', '\x5', '\x2', '\x2', '\xC8', '\xDF',
+ '\a', '\a', '\x2', '\x2', '\xC9', '\xDF', '\a', '\b', '\x2', '\x2', '\xCA',
+ '\xDF', '\a', '\t', '\x2', '\x2', '\xCB', '\xDF', '\a', '\n', '\x2', '\x2',
+ '\xCC', '\xDF', '\a', '\v', '\x2', '\x2', '\xCD', '\xDF', '\a', '\r',
+ '\x2', '\x2', '\xCE', '\xDF', '\a', '\x3', '\x2', '\x2', '\xCF', '\xDF',
+ '\a', '\x4', '\x2', '\x2', '\xD0', '\xDF', '\a', '\x1E', '\x2', '\x2',
+ '\xD1', '\xDF', '\a', '\x1F', '\x2', '\x2', '\xD2', '\xDF', '\a', ' ',
+ '\x2', '\x2', '\xD3', '\xDF', '\a', '\x1A', '\x2', '\x2', '\xD4', '\xDF',
+ '\a', '%', '\x2', '\x2', '\xD5', '\xDF', '\a', '&', '\x2', '\x2', '\xD6',
+ '\xDF', '\a', '\'', '\x2', '\x2', '\xD7', '\xDF', '\a', '(', '\x2', '\x2',
+ '\xD8', '\xDF', '\a', ')', '\x2', '\x2', '\xD9', '\xDF', '\a', '*', '\x2',
+ '\x2', '\xDA', '\xDF', '\a', '+', '\x2', '\x2', '\xDB', '\xDF', '\a',
+ ',', '\x2', '\x2', '\xDC', '\xDF', '\a', '-', '\x2', '\x2', '\xDD', '\xDF',
+ '\a', 'l', '\x2', '\x2', '\xDE', '\xC4', '\x3', '\x2', '\x2', '\x2', '\xDE',
+ '\xC5', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xC6', '\x3', '\x2', '\x2',
+ '\x2', '\xDE', '\xC7', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xC8', '\x3',
+ '\x2', '\x2', '\x2', '\xDE', '\xC9', '\x3', '\x2', '\x2', '\x2', '\xDE',
+ '\xCA', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xCB', '\x3', '\x2', '\x2',
+ '\x2', '\xDE', '\xCC', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xCD', '\x3',
+ '\x2', '\x2', '\x2', '\xDE', '\xCE', '\x3', '\x2', '\x2', '\x2', '\xDE',
+ '\xCF', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xD0', '\x3', '\x2', '\x2',
+ '\x2', '\xDE', '\xD1', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xD2', '\x3',
+ '\x2', '\x2', '\x2', '\xDE', '\xD3', '\x3', '\x2', '\x2', '\x2', '\xDE',
+ '\xD4', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xD5', '\x3', '\x2', '\x2',
+ '\x2', '\xDE', '\xD6', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xD7', '\x3',
+ '\x2', '\x2', '\x2', '\xDE', '\xD8', '\x3', '\x2', '\x2', '\x2', '\xDE',
+ '\xD9', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xDA', '\x3', '\x2', '\x2',
+ '\x2', '\xDE', '\xDB', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xDC', '\x3',
+ '\x2', '\x2', '\x2', '\xDE', '\xDD', '\x3', '\x2', '\x2', '\x2', '\xDF',
+ '#', '\x3', '\x2', '\x2', '\x2', '\xE0', '\xE1', '\x5', '*', '\x16', '\x2',
+ '\xE1', '%', '\x3', '\x2', '\x2', '\x2', '\xE2', '\xE3', '\a', '\f', '\x2',
+ '\x2', '\xE3', '\xE4', '\t', '\x4', '\x2', '\x2', '\xE4', '\xE5', '\x5',
+ '(', '\x15', '\x2', '\xE5', '\xE6', '\x5', '(', '\x15', '\x2', '\xE6',
+ '\xEC', '\x3', '\x2', '\x2', '\x2', '\xE7', '\xE8', '\a', '\f', '\x2',
+ '\x2', '\xE8', '\xE9', '\x5', '(', '\x15', '\x2', '\xE9', '\xEA', '\x5',
+ '(', '\x15', '\x2', '\xEA', '\xEC', '\x3', '\x2', '\x2', '\x2', '\xEB',
+ '\xE2', '\x3', '\x2', '\x2', '\x2', '\xEB', '\xE7', '\x3', '\x2', '\x2',
+ '\x2', '\xEC', '\'', '\x3', '\x2', '\x2', '\x2', '\xED', '\xEE', '\t',
+ '\x5', '\x2', '\x2', '\xEE', ')', '\x3', '\x2', '\x2', '\x2', '\xEF',
+ '\xF1', '\x5', ',', '\x17', '\x2', '\xF0', '\xEF', '\x3', '\x2', '\x2',
+ '\x2', '\xF1', '\xF2', '\x3', '\x2', '\x2', '\x2', '\xF2', '\xF0', '\x3',
+ '\x2', '\x2', '\x2', '\xF2', '\xF3', '\x3', '\x2', '\x2', '\x2', '\xF3',
+ '+', '\x3', '\x2', '\x2', '\x2', '\xF4', '\xF5', '\t', '\x6', '\x2', '\x2',
+ '\xF5', '-', '\x3', '\x2', '\x2', '\x2', '\xF6', '\xF7', '\x5', '\x30',
+ '\x19', '\x2', '\xF7', '/', '\x3', '\x2', '\x2', '\x2', '\xF8', '\xFB',
+ '\x5', '\x36', '\x1C', '\x2', '\xF9', '\xFB', '\a', '(', '\x2', '\x2',
+ '\xFA', '\xF8', '\x3', '\x2', '\x2', '\x2', '\xFA', '\xF9', '\x3', '\x2',
+ '\x2', '\x2', '\xFB', '\x101', '\x3', '\x2', '\x2', '\x2', '\xFC', '\x100',
+ '\x5', '\x36', '\x1C', '\x2', '\xFD', '\x100', '\a', '(', '\x2', '\x2',
+ '\xFE', '\x100', '\x5', ',', '\x17', '\x2', '\xFF', '\xFC', '\x3', '\x2',
+ '\x2', '\x2', '\xFF', '\xFD', '\x3', '\x2', '\x2', '\x2', '\xFF', '\xFE',
+ '\x3', '\x2', '\x2', '\x2', '\x100', '\x103', '\x3', '\x2', '\x2', '\x2',
+ '\x101', '\xFF', '\x3', '\x2', '\x2', '\x2', '\x101', '\x102', '\x3',
+ '\x2', '\x2', '\x2', '\x102', '\x31', '\x3', '\x2', '\x2', '\x2', '\x103',
+ '\x101', '\x3', '\x2', '\x2', '\x2', '\x104', '\x106', '\x5', '\x34',
+ '\x1B', '\x2', '\x105', '\x104', '\x3', '\x2', '\x2', '\x2', '\x106',
+ '\x107', '\x3', '\x2', '\x2', '\x2', '\x107', '\x105', '\x3', '\x2', '\x2',
+ '\x2', '\x107', '\x108', '\x3', '\x2', '\x2', '\x2', '\x108', '\x33',
+ '\x3', '\x2', '\x2', '\x2', '\x109', '\x10A', '\n', '\a', '\x2', '\x2',
+ '\x10A', '\x35', '\x3', '\x2', '\x2', '\x2', '\x10B', '\x10C', '\t', '\b',
+ '\x2', '\x2', '\x10C', '\x37', '\x3', '\x2', '\x2', '\x2', '\x17', '@',
+ '\x46', 'K', '\x65', 'j', 'q', 'y', '}', '\x8B', '\x98', '\xA7', '\xAF',
+ '\xB5', '\xC2', '\xDE', '\xEB', '\xF2', '\xFA', '\xFF', '\x101', '\x107',
+ };
+
+ public static readonly ATN _ATN =
+ new ATNDeserializer().Deserialize(_serializedATN);
+
+
+}
diff --git a/libraries/AdaptiveExpressions/Generated/CommonRegexVisitor.cs b/libraries/AdaptiveExpressions/Generated/CommonRegexVisitor.cs
new file mode 100644
index 0000000000..a46cc286f9
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/CommonRegexVisitor.cs
@@ -0,0 +1,200 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from CommonRegex.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+
+#pragma warning disable 3021 // Disable StyleCop warning CS3021 re CLSCompliant attribute in generated files.
+#pragma warning disable 0108 // Disable StyleCop warning CS0108, hides inherited member in generated files.
+
+using Antlr4.Runtime.Misc;
+using Antlr4.Runtime.Tree;
+using IToken = Antlr4.Runtime.IToken;
+
+///
+/// This interface defines a complete generic visitor for a parse tree produced
+/// by .
+///
+/// The return type of the visit operation.
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public interface ICommonRegexVisitor : IParseTreeVisitor {
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitParse([NotNull] CommonRegexParser.ParseContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitAlternation([NotNull] CommonRegexParser.AlternationContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitExpr([NotNull] CommonRegexParser.ExprContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitElement([NotNull] CommonRegexParser.ElementContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitQuantifier([NotNull] CommonRegexParser.QuantifierContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitQuantifier_type([NotNull] CommonRegexParser.Quantifier_typeContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitCharacter_class([NotNull] CommonRegexParser.Character_classContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitCapture([NotNull] CommonRegexParser.CaptureContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitNon_capture([NotNull] CommonRegexParser.Non_captureContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitOption([NotNull] CommonRegexParser.OptionContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitOption_flag([NotNull] CommonRegexParser.Option_flagContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitAtom([NotNull] CommonRegexParser.AtomContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitCc_atom([NotNull] CommonRegexParser.Cc_atomContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitShared_atom([NotNull] CommonRegexParser.Shared_atomContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitLiteral([NotNull] CommonRegexParser.LiteralContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitCc_literal([NotNull] CommonRegexParser.Cc_literalContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitShared_literal([NotNull] CommonRegexParser.Shared_literalContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitNumber([NotNull] CommonRegexParser.NumberContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitOctal_char([NotNull] CommonRegexParser.Octal_charContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitOctal_digit([NotNull] CommonRegexParser.Octal_digitContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitDigits([NotNull] CommonRegexParser.DigitsContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitDigit([NotNull] CommonRegexParser.DigitContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitName([NotNull] CommonRegexParser.NameContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitAlpha_nums([NotNull] CommonRegexParser.Alpha_numsContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitNon_close_parens([NotNull] CommonRegexParser.Non_close_parensContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitNon_close_paren([NotNull] CommonRegexParser.Non_close_parenContext context);
+ ///
+ /// Visit a parse tree produced by .
+ ///
+ /// The parse tree.
+ /// The visitor result.
+ Result VisitLetter([NotNull] CommonRegexParser.LetterContext context);
+}
diff --git a/libraries/AdaptiveExpressions/Generated/ExpressionAntlrLexer.cs b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrLexer.cs
new file mode 100644
index 0000000000..fe85cb50d9
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrLexer.cs
@@ -0,0 +1,395 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from ExpressionAntlrLexer.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+#pragma warning disable 3021
+using System;
+using System.IO;
+using System.Text;
+using Antlr4.Runtime;
+using Antlr4.Runtime.Atn;
+using Antlr4.Runtime.Misc;
+using DFA = Antlr4.Runtime.Dfa.DFA;
+
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public partial class ExpressionAntlrLexer : Lexer {
+ protected static DFA[] decisionToDFA;
+ protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
+ public const int
+ STRING_INTERPOLATION_START=1, PLUS=2, SUBSTRACT=3, NON=4, XOR=5, ASTERISK=6,
+ SLASH=7, PERCENT=8, DOUBLE_EQUAL=9, NOT_EQUAL=10, SINGLE_AND=11, DOUBLE_AND=12,
+ DOUBLE_VERTICAL_CYLINDER=13, LESS_THAN=14, MORE_THAN=15, LESS_OR_EQUAl=16,
+ MORE_OR_EQUAL=17, OPEN_BRACKET=18, CLOSE_BRACKET=19, DOT=20, OPEN_SQUARE_BRACKET=21,
+ CLOSE_SQUARE_BRACKET=22, OPEN_CURLY_BRACKET=23, CLOSE_CURLY_BRACKET=24,
+ COMMA=25, COLON=26, ARROW=27, NULL_COALESCE=28, QUESTION_MARK=29, NUMBER=30,
+ WHITESPACE=31, IDENTIFIER=32, NEWLINE=33, STRING=34, INVALID_TOKEN_DEFAULT_MODE=35,
+ TEMPLATE=36, ESCAPE_CHARACTER=37, TEXT_CONTENT=38;
+ public const int
+ STRING_INTERPOLATION_MODE=1;
+ public static string[] channelNames = {
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
+ };
+
+ public static string[] modeNames = {
+ "DEFAULT_MODE", "STRING_INTERPOLATION_MODE"
+ };
+
+ public static readonly string[] ruleNames = {
+ "LETTER", "DIGIT", "OBJECT_DEFINITION", "STRING_INTERPOLATION_START",
+ "PLUS", "SUBSTRACT", "NON", "XOR", "ASTERISK", "SLASH", "PERCENT", "DOUBLE_EQUAL",
+ "NOT_EQUAL", "SINGLE_AND", "DOUBLE_AND", "DOUBLE_VERTICAL_CYLINDER", "LESS_THAN",
+ "MORE_THAN", "LESS_OR_EQUAl", "MORE_OR_EQUAL", "OPEN_BRACKET", "CLOSE_BRACKET",
+ "DOT", "OPEN_SQUARE_BRACKET", "CLOSE_SQUARE_BRACKET", "OPEN_CURLY_BRACKET",
+ "CLOSE_CURLY_BRACKET", "COMMA", "COLON", "ARROW", "NULL_COALESCE", "QUESTION_MARK",
+ "NUMBER", "WHITESPACE", "IDENTIFIER", "NEWLINE", "STRING", "INVALID_TOKEN_DEFAULT_MODE",
+ "STRING_INTERPOLATION_END", "TEMPLATE", "ESCAPE_CHARACTER", "TEXT_CONTENT"
+ };
+
+
+ bool ignoreWS = true; // usually we ignore whitespace, but inside stringInterpolation, whitespace is significant
+
+
+ public ExpressionAntlrLexer(ICharStream input)
+ : this(input, Console.Out, Console.Error) { }
+
+ public ExpressionAntlrLexer(ICharStream input, TextWriter output, TextWriter errorOutput)
+ : base(input, output, errorOutput)
+ {
+ Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
+ }
+
+ private static readonly string[] _LiteralNames = {
+ null, null, "'+'", "'-'", "'!'", "'^'", "'*'", "'/'", "'%'", "'=='", null,
+ "'&'", "'&&'", "'||'", "'<'", "'>'", "'<='", "'>='", "'('", "')'", "'.'",
+ "'['", "']'", "'{'", "'}'", "','", "':'", "'=>'", "'??'", "'?'"
+ };
+ private static readonly string[] _SymbolicNames = {
+ null, "STRING_INTERPOLATION_START", "PLUS", "SUBSTRACT", "NON", "XOR",
+ "ASTERISK", "SLASH", "PERCENT", "DOUBLE_EQUAL", "NOT_EQUAL", "SINGLE_AND",
+ "DOUBLE_AND", "DOUBLE_VERTICAL_CYLINDER", "LESS_THAN", "MORE_THAN", "LESS_OR_EQUAl",
+ "MORE_OR_EQUAL", "OPEN_BRACKET", "CLOSE_BRACKET", "DOT", "OPEN_SQUARE_BRACKET",
+ "CLOSE_SQUARE_BRACKET", "OPEN_CURLY_BRACKET", "CLOSE_CURLY_BRACKET", "COMMA",
+ "COLON", "ARROW", "NULL_COALESCE", "QUESTION_MARK", "NUMBER", "WHITESPACE",
+ "IDENTIFIER", "NEWLINE", "STRING", "INVALID_TOKEN_DEFAULT_MODE", "TEMPLATE",
+ "ESCAPE_CHARACTER", "TEXT_CONTENT"
+ };
+ public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
+
+ [NotNull]
+ public override IVocabulary Vocabulary
+ {
+ get
+ {
+ return DefaultVocabulary;
+ }
+ }
+
+ public override string GrammarFileName { get { return "ExpressionAntlrLexer.g4"; } }
+
+ public override string[] RuleNames { get { return ruleNames; } }
+
+ public override string[] ChannelNames { get { return channelNames; } }
+
+ public override string[] ModeNames { get { return modeNames; } }
+
+ public override string SerializedAtn { get { return new string(_serializedATN); } }
+
+ static ExpressionAntlrLexer() {
+ decisionToDFA = new DFA[_ATN.NumberOfDecisions];
+ for (int i = 0; i < _ATN.NumberOfDecisions; i++) {
+ decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
+ }
+ }
+ public override void Action(RuleContext _localctx, int ruleIndex, int actionIndex) {
+ switch (ruleIndex) {
+ case 3 : STRING_INTERPOLATION_START_action(_localctx, actionIndex); break;
+ case 38 : STRING_INTERPOLATION_END_action(_localctx, actionIndex); break;
+ }
+ }
+ private void STRING_INTERPOLATION_START_action(RuleContext _localctx, int actionIndex) {
+ switch (actionIndex) {
+ case 0: ignoreWS = false; break;
+ }
+ }
+ private void STRING_INTERPOLATION_END_action(RuleContext _localctx, int actionIndex) {
+ switch (actionIndex) {
+ case 1: ignoreWS = true; break;
+ }
+ }
+ public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
+ switch (ruleIndex) {
+ case 33 : return WHITESPACE_sempred(_localctx, predIndex);
+ }
+ return true;
+ }
+ private bool WHITESPACE_sempred(RuleContext _localctx, int predIndex) {
+ switch (predIndex) {
+ case 0: return ignoreWS;
+ }
+ return true;
+ }
+
+ private static char[] _serializedATN = {
+ '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786',
+ '\x5964', '\x2', '(', '\x110', '\b', '\x1', '\b', '\x1', '\x4', '\x2',
+ '\t', '\x2', '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4',
+ '\x5', '\t', '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a',
+ '\x4', '\b', '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n',
+ '\x4', '\v', '\t', '\v', '\x4', '\f', '\t', '\f', '\x4', '\r', '\t', '\r',
+ '\x4', '\xE', '\t', '\xE', '\x4', '\xF', '\t', '\xF', '\x4', '\x10', '\t',
+ '\x10', '\x4', '\x11', '\t', '\x11', '\x4', '\x12', '\t', '\x12', '\x4',
+ '\x13', '\t', '\x13', '\x4', '\x14', '\t', '\x14', '\x4', '\x15', '\t',
+ '\x15', '\x4', '\x16', '\t', '\x16', '\x4', '\x17', '\t', '\x17', '\x4',
+ '\x18', '\t', '\x18', '\x4', '\x19', '\t', '\x19', '\x4', '\x1A', '\t',
+ '\x1A', '\x4', '\x1B', '\t', '\x1B', '\x4', '\x1C', '\t', '\x1C', '\x4',
+ '\x1D', '\t', '\x1D', '\x4', '\x1E', '\t', '\x1E', '\x4', '\x1F', '\t',
+ '\x1F', '\x4', ' ', '\t', ' ', '\x4', '!', '\t', '!', '\x4', '\"', '\t',
+ '\"', '\x4', '#', '\t', '#', '\x4', '$', '\t', '$', '\x4', '%', '\t',
+ '%', '\x4', '&', '\t', '&', '\x4', '\'', '\t', '\'', '\x4', '(', '\t',
+ '(', '\x4', ')', '\t', ')', '\x4', '*', '\t', '*', '\x4', '+', '\t', '+',
+ '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', '\x4',
+ '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x5', '\x4', '\x61', '\n',
+ '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x6',
+ '\x4', 'g', '\n', '\x4', '\r', '\x4', '\xE', '\x4', 'h', '\a', '\x4',
+ 'k', '\n', '\x4', '\f', '\x4', '\xE', '\x4', 'n', '\v', '\x4', '\x3',
+ '\x4', '\x3', '\x4', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3',
+ '\x5', '\x3', '\x5', '\x3', '\x6', '\x3', '\x6', '\x3', '\a', '\x3', '\a',
+ '\x3', '\b', '\x3', '\b', '\x3', '\t', '\x3', '\t', '\x3', '\n', '\x3',
+ '\n', '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3', '\f', '\x3', '\r',
+ '\x3', '\r', '\x3', '\r', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3',
+ '\xE', '\x5', '\xE', '\x8C', '\n', '\xE', '\x3', '\xF', '\x3', '\xF',
+ '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x11', '\x3', '\x11',
+ '\x3', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3', '\x13', '\x3', '\x13',
+ '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x15', '\x3', '\x15',
+ '\x3', '\x15', '\x3', '\x16', '\x3', '\x16', '\x3', '\x17', '\x3', '\x17',
+ '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A',
+ '\x3', '\x1A', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1C', '\x3', '\x1C',
+ '\x3', '\x1D', '\x3', '\x1D', '\x3', '\x1E', '\x3', '\x1E', '\x3', '\x1F',
+ '\x3', '\x1F', '\x3', '\x1F', '\x3', ' ', '\x3', ' ', '\x3', ' ', '\x3',
+ '!', '\x3', '!', '\x3', '\"', '\x6', '\"', '\xBB', '\n', '\"', '\r', '\"',
+ '\xE', '\"', '\xBC', '\x3', '\"', '\x3', '\"', '\x6', '\"', '\xC1', '\n',
+ '\"', '\r', '\"', '\xE', '\"', '\xC2', '\x5', '\"', '\xC5', '\n', '\"',
+ '\x3', '#', '\x3', '#', '\x3', '#', '\x3', '#', '\x3', '#', '\x3', '$',
+ '\x3', '$', '\x3', '$', '\x3', '$', '\x3', '$', '\x5', '$', '\xD1', '\n',
+ '$', '\x3', '$', '\x3', '$', '\x3', '$', '\a', '$', '\xD6', '\n', '$',
+ '\f', '$', '\xE', '$', '\xD9', '\v', '$', '\x3', '%', '\x5', '%', '\xDC',
+ '\n', '%', '\x3', '%', '\x3', '%', '\x3', '%', '\x3', '%', '\x3', '&',
+ '\x3', '&', '\x3', '&', '\x3', '&', '\a', '&', '\xE6', '\n', '&', '\f',
+ '&', '\xE', '&', '\xE9', '\v', '&', '\x3', '&', '\x3', '&', '\x3', '&',
+ '\x3', '&', '\x3', '&', '\a', '&', '\xF0', '\n', '&', '\f', '&', '\xE',
+ '&', '\xF3', '\v', '&', '\x3', '&', '\x5', '&', '\xF6', '\n', '&', '\x3',
+ '\'', '\x3', '\'', '\x3', '(', '\x3', '(', '\x3', '(', '\x3', '(', '\x3',
+ '(', '\x3', '(', '\x3', ')', '\x3', ')', '\x3', ')', '\x3', ')', '\x3',
+ ')', '\x6', ')', '\x105', '\n', ')', '\r', ')', '\xE', ')', '\x106', '\x3',
+ ')', '\x3', ')', '\x3', '*', '\x3', '*', '\x5', '*', '\x10D', '\n', '*',
+ '\x3', '+', '\x3', '+', '\x4', '\xE7', '\xF1', '\x2', ',', '\x4', '\x2',
+ '\x6', '\x2', '\b', '\x2', '\n', '\x3', '\f', '\x4', '\xE', '\x5', '\x10',
+ '\x6', '\x12', '\a', '\x14', '\b', '\x16', '\t', '\x18', '\n', '\x1A',
+ '\v', '\x1C', '\f', '\x1E', '\r', ' ', '\xE', '\"', '\xF', '$', '\x10',
+ '&', '\x11', '(', '\x12', '*', '\x13', ',', '\x14', '.', '\x15', '\x30',
+ '\x16', '\x32', '\x17', '\x34', '\x18', '\x36', '\x19', '\x38', '\x1A',
+ ':', '\x1B', '<', '\x1C', '>', '\x1D', '@', '\x1E', '\x42', '\x1F', '\x44',
+ ' ', '\x46', '!', 'H', '\"', 'J', '#', 'L', '$', 'N', '%', 'P', '\x2',
+ 'R', '&', 'T', '\'', 'V', '(', '\x4', '\x2', '\x3', '\f', '\x4', '\x2',
+ '\x43', '\\', '\x63', '|', '\x3', '\x2', '\x32', ';', '\t', '\x2', '\f',
+ '\f', '\xF', '\xF', '$', '$', ')', ')', '\x62', '\x62', '}', '}', '\x7F',
+ '\x7F', '\x6', '\x2', '\v', '\v', '\"', '\"', '\xA2', '\xA2', '\xFF01',
+ '\xFF01', '\x5', '\x2', '%', '%', '\x42', '\x42', '\x61', '\x61', '\x4',
+ '\x2', ')', ')', '^', '^', '\x3', '\x2', ')', ')', '\x4', '\x2', '$',
+ '$', '^', '^', '\x3', '\x2', '$', '$', '\x4', '\x2', '\f', '\f', '\xF',
+ '\xF', '\x2', '\x125', '\x2', '\n', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\f', '\x3', '\x2', '\x2', '\x2', '\x2', '\xE', '\x3', '\x2', '\x2', '\x2',
+ '\x2', '\x10', '\x3', '\x2', '\x2', '\x2', '\x2', '\x12', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '\x14', '\x3', '\x2', '\x2', '\x2', '\x2', '\x16',
+ '\x3', '\x2', '\x2', '\x2', '\x2', '\x18', '\x3', '\x2', '\x2', '\x2',
+ '\x2', '\x1A', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1C', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '\x1E', '\x3', '\x2', '\x2', '\x2', '\x2', ' ', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\"', '\x3', '\x2', '\x2', '\x2', '\x2', '$',
+ '\x3', '\x2', '\x2', '\x2', '\x2', '&', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '(', '\x3', '\x2', '\x2', '\x2', '\x2', '*', '\x3', '\x2', '\x2', '\x2',
+ '\x2', ',', '\x3', '\x2', '\x2', '\x2', '\x2', '.', '\x3', '\x2', '\x2',
+ '\x2', '\x2', '\x30', '\x3', '\x2', '\x2', '\x2', '\x2', '\x32', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x34', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x36', '\x3', '\x2', '\x2', '\x2', '\x2', '\x38', '\x3', '\x2', '\x2',
+ '\x2', '\x2', ':', '\x3', '\x2', '\x2', '\x2', '\x2', '<', '\x3', '\x2',
+ '\x2', '\x2', '\x2', '>', '\x3', '\x2', '\x2', '\x2', '\x2', '@', '\x3',
+ '\x2', '\x2', '\x2', '\x2', '\x42', '\x3', '\x2', '\x2', '\x2', '\x2',
+ '\x44', '\x3', '\x2', '\x2', '\x2', '\x2', '\x46', '\x3', '\x2', '\x2',
+ '\x2', '\x2', 'H', '\x3', '\x2', '\x2', '\x2', '\x2', 'J', '\x3', '\x2',
+ '\x2', '\x2', '\x2', 'L', '\x3', '\x2', '\x2', '\x2', '\x2', 'N', '\x3',
+ '\x2', '\x2', '\x2', '\x3', 'P', '\x3', '\x2', '\x2', '\x2', '\x3', 'R',
+ '\x3', '\x2', '\x2', '\x2', '\x3', 'T', '\x3', '\x2', '\x2', '\x2', '\x3',
+ 'V', '\x3', '\x2', '\x2', '\x2', '\x4', 'X', '\x3', '\x2', '\x2', '\x2',
+ '\x6', 'Z', '\x3', '\x2', '\x2', '\x2', '\b', '\\', '\x3', '\x2', '\x2',
+ '\x2', '\n', 'q', '\x3', '\x2', '\x2', '\x2', '\f', 'v', '\x3', '\x2',
+ '\x2', '\x2', '\xE', 'x', '\x3', '\x2', '\x2', '\x2', '\x10', 'z', '\x3',
+ '\x2', '\x2', '\x2', '\x12', '|', '\x3', '\x2', '\x2', '\x2', '\x14',
+ '~', '\x3', '\x2', '\x2', '\x2', '\x16', '\x80', '\x3', '\x2', '\x2',
+ '\x2', '\x18', '\x82', '\x3', '\x2', '\x2', '\x2', '\x1A', '\x84', '\x3',
+ '\x2', '\x2', '\x2', '\x1C', '\x8B', '\x3', '\x2', '\x2', '\x2', '\x1E',
+ '\x8D', '\x3', '\x2', '\x2', '\x2', ' ', '\x8F', '\x3', '\x2', '\x2',
+ '\x2', '\"', '\x92', '\x3', '\x2', '\x2', '\x2', '$', '\x95', '\x3', '\x2',
+ '\x2', '\x2', '&', '\x97', '\x3', '\x2', '\x2', '\x2', '(', '\x99', '\x3',
+ '\x2', '\x2', '\x2', '*', '\x9C', '\x3', '\x2', '\x2', '\x2', ',', '\x9F',
+ '\x3', '\x2', '\x2', '\x2', '.', '\xA1', '\x3', '\x2', '\x2', '\x2', '\x30',
+ '\xA3', '\x3', '\x2', '\x2', '\x2', '\x32', '\xA5', '\x3', '\x2', '\x2',
+ '\x2', '\x34', '\xA7', '\x3', '\x2', '\x2', '\x2', '\x36', '\xA9', '\x3',
+ '\x2', '\x2', '\x2', '\x38', '\xAB', '\x3', '\x2', '\x2', '\x2', ':',
+ '\xAD', '\x3', '\x2', '\x2', '\x2', '<', '\xAF', '\x3', '\x2', '\x2',
+ '\x2', '>', '\xB1', '\x3', '\x2', '\x2', '\x2', '@', '\xB4', '\x3', '\x2',
+ '\x2', '\x2', '\x42', '\xB7', '\x3', '\x2', '\x2', '\x2', '\x44', '\xBA',
+ '\x3', '\x2', '\x2', '\x2', '\x46', '\xC6', '\x3', '\x2', '\x2', '\x2',
+ 'H', '\xD0', '\x3', '\x2', '\x2', '\x2', 'J', '\xDB', '\x3', '\x2', '\x2',
+ '\x2', 'L', '\xF5', '\x3', '\x2', '\x2', '\x2', 'N', '\xF7', '\x3', '\x2',
+ '\x2', '\x2', 'P', '\xF9', '\x3', '\x2', '\x2', '\x2', 'R', '\xFF', '\x3',
+ '\x2', '\x2', '\x2', 'T', '\x10A', '\x3', '\x2', '\x2', '\x2', 'V', '\x10E',
+ '\x3', '\x2', '\x2', '\x2', 'X', 'Y', '\t', '\x2', '\x2', '\x2', 'Y',
+ '\x5', '\x3', '\x2', '\x2', '\x2', 'Z', '[', '\t', '\x3', '\x2', '\x2',
+ '[', '\a', '\x3', '\x2', '\x2', '\x2', '\\', 'l', '\a', '}', '\x2', '\x2',
+ ']', 'k', '\x5', '\x46', '#', '\x2', '^', '\x61', '\x5', 'H', '$', '\x2',
+ '_', '\x61', '\x5', 'L', '&', '\x2', '`', '^', '\x3', '\x2', '\x2', '\x2',
+ '`', '_', '\x3', '\x2', '\x2', '\x2', '\x61', '\x62', '\x3', '\x2', '\x2',
+ '\x2', '\x62', '\x66', '\a', '<', '\x2', '\x2', '\x63', 'g', '\x5', 'L',
+ '&', '\x2', '\x64', 'g', '\n', '\x4', '\x2', '\x2', '\x65', 'g', '\x5',
+ '\b', '\x4', '\x2', '\x66', '\x63', '\x3', '\x2', '\x2', '\x2', '\x66',
+ '\x64', '\x3', '\x2', '\x2', '\x2', '\x66', '\x65', '\x3', '\x2', '\x2',
+ '\x2', 'g', 'h', '\x3', '\x2', '\x2', '\x2', 'h', '\x66', '\x3', '\x2',
+ '\x2', '\x2', 'h', 'i', '\x3', '\x2', '\x2', '\x2', 'i', 'k', '\x3', '\x2',
+ '\x2', '\x2', 'j', ']', '\x3', '\x2', '\x2', '\x2', 'j', '`', '\x3', '\x2',
+ '\x2', '\x2', 'k', 'n', '\x3', '\x2', '\x2', '\x2', 'l', 'j', '\x3', '\x2',
+ '\x2', '\x2', 'l', 'm', '\x3', '\x2', '\x2', '\x2', 'm', 'o', '\x3', '\x2',
+ '\x2', '\x2', 'n', 'l', '\x3', '\x2', '\x2', '\x2', 'o', 'p', '\a', '\x7F',
+ '\x2', '\x2', 'p', '\t', '\x3', '\x2', '\x2', '\x2', 'q', 'r', '\a', '\x62',
+ '\x2', '\x2', 'r', 's', '\b', '\x5', '\x2', '\x2', 's', 't', '\x3', '\x2',
+ '\x2', '\x2', 't', 'u', '\b', '\x5', '\x3', '\x2', 'u', '\v', '\x3', '\x2',
+ '\x2', '\x2', 'v', 'w', '\a', '-', '\x2', '\x2', 'w', '\r', '\x3', '\x2',
+ '\x2', '\x2', 'x', 'y', '\a', '/', '\x2', '\x2', 'y', '\xF', '\x3', '\x2',
+ '\x2', '\x2', 'z', '{', '\a', '#', '\x2', '\x2', '{', '\x11', '\x3', '\x2',
+ '\x2', '\x2', '|', '}', '\a', '`', '\x2', '\x2', '}', '\x13', '\x3', '\x2',
+ '\x2', '\x2', '~', '\x7F', '\a', ',', '\x2', '\x2', '\x7F', '\x15', '\x3',
+ '\x2', '\x2', '\x2', '\x80', '\x81', '\a', '\x31', '\x2', '\x2', '\x81',
+ '\x17', '\x3', '\x2', '\x2', '\x2', '\x82', '\x83', '\a', '\'', '\x2',
+ '\x2', '\x83', '\x19', '\x3', '\x2', '\x2', '\x2', '\x84', '\x85', '\a',
+ '?', '\x2', '\x2', '\x85', '\x86', '\a', '?', '\x2', '\x2', '\x86', '\x1B',
+ '\x3', '\x2', '\x2', '\x2', '\x87', '\x88', '\a', '#', '\x2', '\x2', '\x88',
+ '\x8C', '\a', '?', '\x2', '\x2', '\x89', '\x8A', '\a', '>', '\x2', '\x2',
+ '\x8A', '\x8C', '\a', '@', '\x2', '\x2', '\x8B', '\x87', '\x3', '\x2',
+ '\x2', '\x2', '\x8B', '\x89', '\x3', '\x2', '\x2', '\x2', '\x8C', '\x1D',
+ '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8E', '\a', '(', '\x2', '\x2', '\x8E',
+ '\x1F', '\x3', '\x2', '\x2', '\x2', '\x8F', '\x90', '\a', '(', '\x2',
+ '\x2', '\x90', '\x91', '\a', '(', '\x2', '\x2', '\x91', '!', '\x3', '\x2',
+ '\x2', '\x2', '\x92', '\x93', '\a', '~', '\x2', '\x2', '\x93', '\x94',
+ '\a', '~', '\x2', '\x2', '\x94', '#', '\x3', '\x2', '\x2', '\x2', '\x95',
+ '\x96', '\a', '>', '\x2', '\x2', '\x96', '%', '\x3', '\x2', '\x2', '\x2',
+ '\x97', '\x98', '\a', '@', '\x2', '\x2', '\x98', '\'', '\x3', '\x2', '\x2',
+ '\x2', '\x99', '\x9A', '\a', '>', '\x2', '\x2', '\x9A', '\x9B', '\a',
+ '?', '\x2', '\x2', '\x9B', ')', '\x3', '\x2', '\x2', '\x2', '\x9C', '\x9D',
+ '\a', '@', '\x2', '\x2', '\x9D', '\x9E', '\a', '?', '\x2', '\x2', '\x9E',
+ '+', '\x3', '\x2', '\x2', '\x2', '\x9F', '\xA0', '\a', '*', '\x2', '\x2',
+ '\xA0', '-', '\x3', '\x2', '\x2', '\x2', '\xA1', '\xA2', '\a', '+', '\x2',
+ '\x2', '\xA2', '/', '\x3', '\x2', '\x2', '\x2', '\xA3', '\xA4', '\a',
+ '\x30', '\x2', '\x2', '\xA4', '\x31', '\x3', '\x2', '\x2', '\x2', '\xA5',
+ '\xA6', '\a', ']', '\x2', '\x2', '\xA6', '\x33', '\x3', '\x2', '\x2',
+ '\x2', '\xA7', '\xA8', '\a', '_', '\x2', '\x2', '\xA8', '\x35', '\x3',
+ '\x2', '\x2', '\x2', '\xA9', '\xAA', '\a', '}', '\x2', '\x2', '\xAA',
+ '\x37', '\x3', '\x2', '\x2', '\x2', '\xAB', '\xAC', '\a', '\x7F', '\x2',
+ '\x2', '\xAC', '\x39', '\x3', '\x2', '\x2', '\x2', '\xAD', '\xAE', '\a',
+ '.', '\x2', '\x2', '\xAE', ';', '\x3', '\x2', '\x2', '\x2', '\xAF', '\xB0',
+ '\a', '<', '\x2', '\x2', '\xB0', '=', '\x3', '\x2', '\x2', '\x2', '\xB1',
+ '\xB2', '\a', '?', '\x2', '\x2', '\xB2', '\xB3', '\a', '@', '\x2', '\x2',
+ '\xB3', '?', '\x3', '\x2', '\x2', '\x2', '\xB4', '\xB5', '\a', '\x41',
+ '\x2', '\x2', '\xB5', '\xB6', '\a', '\x41', '\x2', '\x2', '\xB6', '\x41',
+ '\x3', '\x2', '\x2', '\x2', '\xB7', '\xB8', '\a', '\x41', '\x2', '\x2',
+ '\xB8', '\x43', '\x3', '\x2', '\x2', '\x2', '\xB9', '\xBB', '\x5', '\x6',
+ '\x3', '\x2', '\xBA', '\xB9', '\x3', '\x2', '\x2', '\x2', '\xBB', '\xBC',
+ '\x3', '\x2', '\x2', '\x2', '\xBC', '\xBA', '\x3', '\x2', '\x2', '\x2',
+ '\xBC', '\xBD', '\x3', '\x2', '\x2', '\x2', '\xBD', '\xC4', '\x3', '\x2',
+ '\x2', '\x2', '\xBE', '\xC0', '\a', '\x30', '\x2', '\x2', '\xBF', '\xC1',
+ '\x5', '\x6', '\x3', '\x2', '\xC0', '\xBF', '\x3', '\x2', '\x2', '\x2',
+ '\xC1', '\xC2', '\x3', '\x2', '\x2', '\x2', '\xC2', '\xC0', '\x3', '\x2',
+ '\x2', '\x2', '\xC2', '\xC3', '\x3', '\x2', '\x2', '\x2', '\xC3', '\xC5',
+ '\x3', '\x2', '\x2', '\x2', '\xC4', '\xBE', '\x3', '\x2', '\x2', '\x2',
+ '\xC4', '\xC5', '\x3', '\x2', '\x2', '\x2', '\xC5', '\x45', '\x3', '\x2',
+ '\x2', '\x2', '\xC6', '\xC7', '\t', '\x5', '\x2', '\x2', '\xC7', '\xC8',
+ '\x6', '#', '\x2', '\x2', '\xC8', '\xC9', '\x3', '\x2', '\x2', '\x2',
+ '\xC9', '\xCA', '\b', '#', '\x4', '\x2', '\xCA', 'G', '\x3', '\x2', '\x2',
+ '\x2', '\xCB', '\xD1', '\x5', '\x4', '\x2', '\x2', '\xCC', '\xD1', '\t',
+ '\x6', '\x2', '\x2', '\xCD', '\xCE', '\a', '\x42', '\x2', '\x2', '\xCE',
+ '\xD1', '\a', '\x42', '\x2', '\x2', '\xCF', '\xD1', '\x4', '&', '\'',
+ '\x2', '\xD0', '\xCB', '\x3', '\x2', '\x2', '\x2', '\xD0', '\xCC', '\x3',
+ '\x2', '\x2', '\x2', '\xD0', '\xCD', '\x3', '\x2', '\x2', '\x2', '\xD0',
+ '\xCF', '\x3', '\x2', '\x2', '\x2', '\xD1', '\xD7', '\x3', '\x2', '\x2',
+ '\x2', '\xD2', '\xD6', '\x5', '\x4', '\x2', '\x2', '\xD3', '\xD6', '\x5',
+ '\x6', '\x3', '\x2', '\xD4', '\xD6', '\a', '\x61', '\x2', '\x2', '\xD5',
+ '\xD2', '\x3', '\x2', '\x2', '\x2', '\xD5', '\xD3', '\x3', '\x2', '\x2',
+ '\x2', '\xD5', '\xD4', '\x3', '\x2', '\x2', '\x2', '\xD6', '\xD9', '\x3',
+ '\x2', '\x2', '\x2', '\xD7', '\xD5', '\x3', '\x2', '\x2', '\x2', '\xD7',
+ '\xD8', '\x3', '\x2', '\x2', '\x2', '\xD8', 'I', '\x3', '\x2', '\x2',
+ '\x2', '\xD9', '\xD7', '\x3', '\x2', '\x2', '\x2', '\xDA', '\xDC', '\a',
+ '\xF', '\x2', '\x2', '\xDB', '\xDA', '\x3', '\x2', '\x2', '\x2', '\xDB',
+ '\xDC', '\x3', '\x2', '\x2', '\x2', '\xDC', '\xDD', '\x3', '\x2', '\x2',
+ '\x2', '\xDD', '\xDE', '\a', '\f', '\x2', '\x2', '\xDE', '\xDF', '\x3',
+ '\x2', '\x2', '\x2', '\xDF', '\xE0', '\b', '%', '\x4', '\x2', '\xE0',
+ 'K', '\x3', '\x2', '\x2', '\x2', '\xE1', '\xE7', '\a', ')', '\x2', '\x2',
+ '\xE2', '\xE3', '\a', '^', '\x2', '\x2', '\xE3', '\xE6', '\t', '\a', '\x2',
+ '\x2', '\xE4', '\xE6', '\n', '\b', '\x2', '\x2', '\xE5', '\xE2', '\x3',
+ '\x2', '\x2', '\x2', '\xE5', '\xE4', '\x3', '\x2', '\x2', '\x2', '\xE6',
+ '\xE9', '\x3', '\x2', '\x2', '\x2', '\xE7', '\xE8', '\x3', '\x2', '\x2',
+ '\x2', '\xE7', '\xE5', '\x3', '\x2', '\x2', '\x2', '\xE8', '\xEA', '\x3',
+ '\x2', '\x2', '\x2', '\xE9', '\xE7', '\x3', '\x2', '\x2', '\x2', '\xEA',
+ '\xF6', '\a', ')', '\x2', '\x2', '\xEB', '\xF1', '\a', '$', '\x2', '\x2',
+ '\xEC', '\xED', '\a', '^', '\x2', '\x2', '\xED', '\xF0', '\t', '\t', '\x2',
+ '\x2', '\xEE', '\xF0', '\n', '\n', '\x2', '\x2', '\xEF', '\xEC', '\x3',
+ '\x2', '\x2', '\x2', '\xEF', '\xEE', '\x3', '\x2', '\x2', '\x2', '\xF0',
+ '\xF3', '\x3', '\x2', '\x2', '\x2', '\xF1', '\xF2', '\x3', '\x2', '\x2',
+ '\x2', '\xF1', '\xEF', '\x3', '\x2', '\x2', '\x2', '\xF2', '\xF4', '\x3',
+ '\x2', '\x2', '\x2', '\xF3', '\xF1', '\x3', '\x2', '\x2', '\x2', '\xF4',
+ '\xF6', '\a', '$', '\x2', '\x2', '\xF5', '\xE1', '\x3', '\x2', '\x2',
+ '\x2', '\xF5', '\xEB', '\x3', '\x2', '\x2', '\x2', '\xF6', 'M', '\x3',
+ '\x2', '\x2', '\x2', '\xF7', '\xF8', '\v', '\x2', '\x2', '\x2', '\xF8',
+ 'O', '\x3', '\x2', '\x2', '\x2', '\xF9', '\xFA', '\a', '\x62', '\x2',
+ '\x2', '\xFA', '\xFB', '\b', '(', '\x5', '\x2', '\xFB', '\xFC', '\x3',
+ '\x2', '\x2', '\x2', '\xFC', '\xFD', '\b', '(', '\x6', '\x2', '\xFD',
+ '\xFE', '\b', '(', '\a', '\x2', '\xFE', 'Q', '\x3', '\x2', '\x2', '\x2',
+ '\xFF', '\x100', '\a', '&', '\x2', '\x2', '\x100', '\x104', '\a', '}',
+ '\x2', '\x2', '\x101', '\x105', '\x5', 'L', '&', '\x2', '\x102', '\x105',
+ '\x5', '\b', '\x4', '\x2', '\x103', '\x105', '\n', '\x4', '\x2', '\x2',
+ '\x104', '\x101', '\x3', '\x2', '\x2', '\x2', '\x104', '\x102', '\x3',
+ '\x2', '\x2', '\x2', '\x104', '\x103', '\x3', '\x2', '\x2', '\x2', '\x105',
+ '\x106', '\x3', '\x2', '\x2', '\x2', '\x106', '\x104', '\x3', '\x2', '\x2',
+ '\x2', '\x106', '\x107', '\x3', '\x2', '\x2', '\x2', '\x107', '\x108',
+ '\x3', '\x2', '\x2', '\x2', '\x108', '\x109', '\a', '\x7F', '\x2', '\x2',
+ '\x109', 'S', '\x3', '\x2', '\x2', '\x2', '\x10A', '\x10C', '\a', '^',
+ '\x2', '\x2', '\x10B', '\x10D', '\n', '\v', '\x2', '\x2', '\x10C', '\x10B',
+ '\x3', '\x2', '\x2', '\x2', '\x10C', '\x10D', '\x3', '\x2', '\x2', '\x2',
+ '\x10D', 'U', '\x3', '\x2', '\x2', '\x2', '\x10E', '\x10F', '\v', '\x2',
+ '\x2', '\x2', '\x10F', 'W', '\x3', '\x2', '\x2', '\x2', '\x19', '\x2',
+ '\x3', '`', '\x66', 'h', 'j', 'l', '\x8B', '\xBC', '\xC2', '\xC4', '\xD0',
+ '\xD5', '\xD7', '\xDB', '\xE5', '\xE7', '\xEF', '\xF1', '\xF5', '\x104',
+ '\x106', '\x10C', '\b', '\x3', '\x5', '\x2', '\a', '\x3', '\x2', '\b',
+ '\x2', '\x2', '\x3', '(', '\x3', '\t', '\x3', '\x2', '\x6', '\x2', '\x2',
+ };
+
+ public static readonly ATN _ATN =
+ new ATNDeserializer().Deserialize(_serializedATN);
+
+
+}
diff --git a/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParser.cs b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParser.cs
new file mode 100644
index 0000000000..7a1c935ce3
--- /dev/null
+++ b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParser.cs
@@ -0,0 +1,1547 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// ANTLR Version: 4.8
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+// Generated from ExpressionAntlrParser.g4 by ANTLR 4.8
+
+// Unreachable code detected
+#pragma warning disable 0162
+// The variable '...' is assigned but its value is never used
+#pragma warning disable 0219
+// Missing XML comment for publicly visible type or member '...'
+#pragma warning disable 1591
+// Ambiguous reference in cref attribute
+#pragma warning disable 419
+
+#pragma warning disable 3021
+using System;
+using System.IO;
+using System.Text;
+using System.Diagnostics;
+using System.Collections.Generic;
+using Antlr4.Runtime;
+using Antlr4.Runtime.Atn;
+using Antlr4.Runtime.Misc;
+using Antlr4.Runtime.Tree;
+using DFA = Antlr4.Runtime.Dfa.DFA;
+
+[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.8")]
+[System.CLSCompliant(false)]
+public partial class ExpressionAntlrParser : Parser {
+ protected static DFA[] decisionToDFA;
+ protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
+ public const int
+ STRING_INTERPOLATION_START=1, PLUS=2, SUBSTRACT=3, NON=4, XOR=5, ASTERISK=6,
+ SLASH=7, PERCENT=8, DOUBLE_EQUAL=9, NOT_EQUAL=10, SINGLE_AND=11, DOUBLE_AND=12,
+ DOUBLE_VERTICAL_CYLINDER=13, LESS_THAN=14, MORE_THAN=15, LESS_OR_EQUAl=16,
+ MORE_OR_EQUAL=17, OPEN_BRACKET=18, CLOSE_BRACKET=19, DOT=20, OPEN_SQUARE_BRACKET=21,
+ CLOSE_SQUARE_BRACKET=22, OPEN_CURLY_BRACKET=23, CLOSE_CURLY_BRACKET=24,
+ COMMA=25, COLON=26, ARROW=27, NULL_COALESCE=28, QUESTION_MARK=29, NUMBER=30,
+ WHITESPACE=31, IDENTIFIER=32, NEWLINE=33, STRING=34, INVALID_TOKEN_DEFAULT_MODE=35,
+ TEMPLATE=36, ESCAPE_CHARACTER=37, TEXT_CONTENT=38;
+ public const int
+ RULE_file = 0, RULE_expression = 1, RULE_primaryExpression = 2, RULE_stringInterpolation = 3,
+ RULE_textContent = 4, RULE_argsList = 5, RULE_lambda = 6, RULE_keyValuePairList = 7,
+ RULE_keyValuePair = 8, RULE_key = 9;
+ public static readonly string[] ruleNames = {
+ "file", "expression", "primaryExpression", "stringInterpolation", "textContent",
+ "argsList", "lambda", "keyValuePairList", "keyValuePair", "key"
+ };
+
+ private static readonly string[] _LiteralNames = {
+ null, null, "'+'", "'-'", "'!'", "'^'", "'*'", "'/'", "'%'", "'=='", null,
+ "'&'", "'&&'", "'||'", "'<'", "'>'", "'<='", "'>='", "'('", "')'", "'.'",
+ "'['", "']'", "'{'", "'}'", "','", "':'", "'=>'", "'??'", "'?'"
+ };
+ private static readonly string[] _SymbolicNames = {
+ null, "STRING_INTERPOLATION_START", "PLUS", "SUBSTRACT", "NON", "XOR",
+ "ASTERISK", "SLASH", "PERCENT", "DOUBLE_EQUAL", "NOT_EQUAL", "SINGLE_AND",
+ "DOUBLE_AND", "DOUBLE_VERTICAL_CYLINDER", "LESS_THAN", "MORE_THAN", "LESS_OR_EQUAl",
+ "MORE_OR_EQUAL", "OPEN_BRACKET", "CLOSE_BRACKET", "DOT", "OPEN_SQUARE_BRACKET",
+ "CLOSE_SQUARE_BRACKET", "OPEN_CURLY_BRACKET", "CLOSE_CURLY_BRACKET", "COMMA",
+ "COLON", "ARROW", "NULL_COALESCE", "QUESTION_MARK", "NUMBER", "WHITESPACE",
+ "IDENTIFIER", "NEWLINE", "STRING", "INVALID_TOKEN_DEFAULT_MODE", "TEMPLATE",
+ "ESCAPE_CHARACTER", "TEXT_CONTENT"
+ };
+ public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
+
+ [NotNull]
+ public override IVocabulary Vocabulary
+ {
+ get
+ {
+ return DefaultVocabulary;
+ }
+ }
+
+ public override string GrammarFileName { get { return "ExpressionAntlrParser.g4"; } }
+
+ public override string[] RuleNames { get { return ruleNames; } }
+
+ public override string SerializedAtn { get { return new string(_serializedATN); } }
+
+ static ExpressionAntlrParser() {
+ decisionToDFA = new DFA[_ATN.NumberOfDecisions];
+ for (int i = 0; i < _ATN.NumberOfDecisions; i++) {
+ decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i);
+ }
+ }
+
+ public ExpressionAntlrParser(ITokenStream input) : this(input, Console.Out, Console.Error) { }
+
+ public ExpressionAntlrParser(ITokenStream input, TextWriter output, TextWriter errorOutput)
+ : base(input, output, errorOutput)
+ {
+ Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache);
+ }
+
+ public partial class FileContext : ParserRuleContext {
+ public ExpressionContext expression() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode Eof() { return GetToken(ExpressionAntlrParser.Eof, 0); }
+ public FileContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_file; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterFile(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitFile(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitFile(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public FileContext file() {
+ FileContext _localctx = new FileContext(Context, State);
+ EnterRule(_localctx, 0, RULE_file);
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 20; expression(0);
+ State = 21; Match(Eof);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class ExpressionContext : ParserRuleContext {
+ public ExpressionContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_expression; } }
+
+ public ExpressionContext() { }
+ public virtual void CopyFrom(ExpressionContext context) {
+ base.CopyFrom(context);
+ }
+ }
+ public partial class UnaryOpExpContext : ExpressionContext {
+ public ExpressionContext expression() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode NON() { return GetToken(ExpressionAntlrParser.NON, 0); }
+ public ITerminalNode SUBSTRACT() { return GetToken(ExpressionAntlrParser.SUBSTRACT, 0); }
+ public ITerminalNode PLUS() { return GetToken(ExpressionAntlrParser.PLUS, 0); }
+ public UnaryOpExpContext(ExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterUnaryOpExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitUnaryOpExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitUnaryOpExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class BinaryOpExpContext : ExpressionContext {
+ public ExpressionContext[] expression() {
+ return GetRuleContexts();
+ }
+ public ExpressionContext expression(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode XOR() { return GetToken(ExpressionAntlrParser.XOR, 0); }
+ public ITerminalNode ASTERISK() { return GetToken(ExpressionAntlrParser.ASTERISK, 0); }
+ public ITerminalNode SLASH() { return GetToken(ExpressionAntlrParser.SLASH, 0); }
+ public ITerminalNode PERCENT() { return GetToken(ExpressionAntlrParser.PERCENT, 0); }
+ public ITerminalNode PLUS() { return GetToken(ExpressionAntlrParser.PLUS, 0); }
+ public ITerminalNode SUBSTRACT() { return GetToken(ExpressionAntlrParser.SUBSTRACT, 0); }
+ public ITerminalNode DOUBLE_EQUAL() { return GetToken(ExpressionAntlrParser.DOUBLE_EQUAL, 0); }
+ public ITerminalNode NOT_EQUAL() { return GetToken(ExpressionAntlrParser.NOT_EQUAL, 0); }
+ public ITerminalNode SINGLE_AND() { return GetToken(ExpressionAntlrParser.SINGLE_AND, 0); }
+ public ITerminalNode LESS_THAN() { return GetToken(ExpressionAntlrParser.LESS_THAN, 0); }
+ public ITerminalNode LESS_OR_EQUAl() { return GetToken(ExpressionAntlrParser.LESS_OR_EQUAl, 0); }
+ public ITerminalNode MORE_THAN() { return GetToken(ExpressionAntlrParser.MORE_THAN, 0); }
+ public ITerminalNode MORE_OR_EQUAL() { return GetToken(ExpressionAntlrParser.MORE_OR_EQUAL, 0); }
+ public ITerminalNode DOUBLE_AND() { return GetToken(ExpressionAntlrParser.DOUBLE_AND, 0); }
+ public ITerminalNode DOUBLE_VERTICAL_CYLINDER() { return GetToken(ExpressionAntlrParser.DOUBLE_VERTICAL_CYLINDER, 0); }
+ public ITerminalNode NULL_COALESCE() { return GetToken(ExpressionAntlrParser.NULL_COALESCE, 0); }
+ public BinaryOpExpContext(ExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterBinaryOpExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitBinaryOpExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitBinaryOpExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class PrimaryExpContext : ExpressionContext {
+ public PrimaryExpressionContext primaryExpression() {
+ return GetRuleContext(0);
+ }
+ public PrimaryExpContext(ExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterPrimaryExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitPrimaryExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitPrimaryExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class TripleOpExpContext : ExpressionContext {
+ public ExpressionContext[] expression() {
+ return GetRuleContexts();
+ }
+ public ExpressionContext expression(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode QUESTION_MARK() { return GetToken(ExpressionAntlrParser.QUESTION_MARK, 0); }
+ public ITerminalNode COLON() { return GetToken(ExpressionAntlrParser.COLON, 0); }
+ public TripleOpExpContext(ExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterTripleOpExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitTripleOpExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitTripleOpExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public ExpressionContext expression() {
+ return expression(0);
+ }
+
+ private ExpressionContext expression(int _p) {
+ ParserRuleContext _parentctx = Context;
+ int _parentState = State;
+ ExpressionContext _localctx = new ExpressionContext(Context, _parentState);
+ ExpressionContext _prevctx = _localctx;
+ int _startState = 2;
+ EnterRecursionRule(_localctx, 2, RULE_expression, _p);
+ int _la;
+ try {
+ int _alt;
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 27;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case PLUS:
+ case SUBSTRACT:
+ case NON:
+ {
+ _localctx = new UnaryOpExpContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+
+ State = 24;
+ _la = TokenStream.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << PLUS) | (1L << SUBSTRACT) | (1L << NON))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ State = 25; expression(12);
+ }
+ break;
+ case STRING_INTERPOLATION_START:
+ case OPEN_BRACKET:
+ case OPEN_SQUARE_BRACKET:
+ case OPEN_CURLY_BRACKET:
+ case NUMBER:
+ case IDENTIFIER:
+ case STRING:
+ {
+ _localctx = new PrimaryExpContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+ State = 26; primaryExpression(0);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ Context.Stop = TokenStream.LT(-1);
+ State = 64;
+ ErrorHandler.Sync(this);
+ _alt = Interpreter.AdaptivePredict(TokenStream,2,Context);
+ while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( ParseListeners!=null )
+ TriggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ State = 62;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,1,Context) ) {
+ case 1:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 29;
+ if (!(Precpred(Context, 11))) throw new FailedPredicateException(this, "Precpred(Context, 11)");
+ State = 30; Match(XOR);
+ State = 31; expression(11);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 32;
+ if (!(Precpred(Context, 10))) throw new FailedPredicateException(this, "Precpred(Context, 10)");
+ State = 33;
+ _la = TokenStream.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ASTERISK) | (1L << SLASH) | (1L << PERCENT))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ State = 34; expression(11);
+ }
+ break;
+ case 3:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 35;
+ if (!(Precpred(Context, 9))) throw new FailedPredicateException(this, "Precpred(Context, 9)");
+ State = 36;
+ _la = TokenStream.LA(1);
+ if ( !(_la==PLUS || _la==SUBSTRACT) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ State = 37; expression(10);
+ }
+ break;
+ case 4:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 38;
+ if (!(Precpred(Context, 8))) throw new FailedPredicateException(this, "Precpred(Context, 8)");
+ State = 39;
+ _la = TokenStream.LA(1);
+ if ( !(_la==DOUBLE_EQUAL || _la==NOT_EQUAL) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ State = 40; expression(9);
+ }
+ break;
+ case 5:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 41;
+ if (!(Precpred(Context, 7))) throw new FailedPredicateException(this, "Precpred(Context, 7)");
+ {
+ State = 42; Match(SINGLE_AND);
+ }
+ State = 43; expression(8);
+ }
+ break;
+ case 6:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 44;
+ if (!(Precpred(Context, 6))) throw new FailedPredicateException(this, "Precpred(Context, 6)");
+ State = 45;
+ _la = TokenStream.LA(1);
+ if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << LESS_THAN) | (1L << MORE_THAN) | (1L << LESS_OR_EQUAl) | (1L << MORE_OR_EQUAL))) != 0)) ) {
+ ErrorHandler.RecoverInline(this);
+ }
+ else {
+ ErrorHandler.ReportMatch(this);
+ Consume();
+ }
+ State = 46; expression(7);
+ }
+ break;
+ case 7:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 47;
+ if (!(Precpred(Context, 5))) throw new FailedPredicateException(this, "Precpred(Context, 5)");
+ State = 48; Match(DOUBLE_AND);
+ State = 49; expression(6);
+ }
+ break;
+ case 8:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 50;
+ if (!(Precpred(Context, 4))) throw new FailedPredicateException(this, "Precpred(Context, 4)");
+ State = 51; Match(DOUBLE_VERTICAL_CYLINDER);
+ State = 52; expression(5);
+ }
+ break;
+ case 9:
+ {
+ _localctx = new BinaryOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 53;
+ if (!(Precpred(Context, 3))) throw new FailedPredicateException(this, "Precpred(Context, 3)");
+ State = 54; Match(NULL_COALESCE);
+ State = 55; expression(4);
+ }
+ break;
+ case 10:
+ {
+ _localctx = new TripleOpExpContext(new ExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_expression);
+ State = 56;
+ if (!(Precpred(Context, 2))) throw new FailedPredicateException(this, "Precpred(Context, 2)");
+ State = 57; Match(QUESTION_MARK);
+ State = 58; expression(0);
+ State = 59; Match(COLON);
+ State = 60; expression(3);
+ }
+ break;
+ }
+ }
+ }
+ State = 66;
+ ErrorHandler.Sync(this);
+ _alt = Interpreter.AdaptivePredict(TokenStream,2,Context);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ UnrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public partial class PrimaryExpressionContext : ParserRuleContext {
+ public PrimaryExpressionContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_primaryExpression; } }
+
+ public PrimaryExpressionContext() { }
+ public virtual void CopyFrom(PrimaryExpressionContext context) {
+ base.CopyFrom(context);
+ }
+ }
+ public partial class FuncInvokeExpContext : PrimaryExpressionContext {
+ public PrimaryExpressionContext primaryExpression() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode OPEN_BRACKET() { return GetToken(ExpressionAntlrParser.OPEN_BRACKET, 0); }
+ public ITerminalNode CLOSE_BRACKET() { return GetToken(ExpressionAntlrParser.CLOSE_BRACKET, 0); }
+ public ITerminalNode NON() { return GetToken(ExpressionAntlrParser.NON, 0); }
+ public ArgsListContext argsList() {
+ return GetRuleContext(0);
+ }
+ public FuncInvokeExpContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterFuncInvokeExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitFuncInvokeExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitFuncInvokeExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class IdAtomContext : PrimaryExpressionContext {
+ public ITerminalNode IDENTIFIER() { return GetToken(ExpressionAntlrParser.IDENTIFIER, 0); }
+ public IdAtomContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterIdAtom(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitIdAtom(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitIdAtom(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class JsonCreationExpContext : PrimaryExpressionContext {
+ public ITerminalNode OPEN_CURLY_BRACKET() { return GetToken(ExpressionAntlrParser.OPEN_CURLY_BRACKET, 0); }
+ public ITerminalNode CLOSE_CURLY_BRACKET() { return GetToken(ExpressionAntlrParser.CLOSE_CURLY_BRACKET, 0); }
+ public KeyValuePairListContext keyValuePairList() {
+ return GetRuleContext(0);
+ }
+ public JsonCreationExpContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterJsonCreationExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitJsonCreationExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitJsonCreationExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class StringAtomContext : PrimaryExpressionContext {
+ public ITerminalNode STRING() { return GetToken(ExpressionAntlrParser.STRING, 0); }
+ public StringAtomContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterStringAtom(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitStringAtom(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitStringAtom(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class IndexAccessExpContext : PrimaryExpressionContext {
+ public PrimaryExpressionContext primaryExpression() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode OPEN_SQUARE_BRACKET() { return GetToken(ExpressionAntlrParser.OPEN_SQUARE_BRACKET, 0); }
+ public ExpressionContext expression() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode CLOSE_SQUARE_BRACKET() { return GetToken(ExpressionAntlrParser.CLOSE_SQUARE_BRACKET, 0); }
+ public IndexAccessExpContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterIndexAccessExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitIndexAccessExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitIndexAccessExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class StringInterpolationAtomContext : PrimaryExpressionContext {
+ public StringInterpolationContext stringInterpolation() {
+ return GetRuleContext(0);
+ }
+ public StringInterpolationAtomContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterStringInterpolationAtom(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitStringInterpolationAtom(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitStringInterpolationAtom(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class MemberAccessExpContext : PrimaryExpressionContext {
+ public PrimaryExpressionContext primaryExpression() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode DOT() { return GetToken(ExpressionAntlrParser.DOT, 0); }
+ public ITerminalNode IDENTIFIER() { return GetToken(ExpressionAntlrParser.IDENTIFIER, 0); }
+ public MemberAccessExpContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterMemberAccessExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitMemberAccessExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitMemberAccessExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class ParenthesisExpContext : PrimaryExpressionContext {
+ public ITerminalNode OPEN_BRACKET() { return GetToken(ExpressionAntlrParser.OPEN_BRACKET, 0); }
+ public ExpressionContext expression() {
+ return GetRuleContext(0);
+ }
+ public ITerminalNode CLOSE_BRACKET() { return GetToken(ExpressionAntlrParser.CLOSE_BRACKET, 0); }
+ public ParenthesisExpContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterParenthesisExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitParenthesisExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitParenthesisExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class NumericAtomContext : PrimaryExpressionContext {
+ public ITerminalNode NUMBER() { return GetToken(ExpressionAntlrParser.NUMBER, 0); }
+ public NumericAtomContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterNumericAtom(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitNumericAtom(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitNumericAtom(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+ public partial class ArrayCreationExpContext : PrimaryExpressionContext {
+ public ITerminalNode OPEN_SQUARE_BRACKET() { return GetToken(ExpressionAntlrParser.OPEN_SQUARE_BRACKET, 0); }
+ public ITerminalNode CLOSE_SQUARE_BRACKET() { return GetToken(ExpressionAntlrParser.CLOSE_SQUARE_BRACKET, 0); }
+ public ArgsListContext argsList() {
+ return GetRuleContext(0);
+ }
+ public ArrayCreationExpContext(PrimaryExpressionContext context) { CopyFrom(context); }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterArrayCreationExp(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitArrayCreationExp(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitArrayCreationExp(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public PrimaryExpressionContext primaryExpression() {
+ return primaryExpression(0);
+ }
+
+ private PrimaryExpressionContext primaryExpression(int _p) {
+ ParserRuleContext _parentctx = Context;
+ int _parentState = State;
+ PrimaryExpressionContext _localctx = new PrimaryExpressionContext(Context, _parentState);
+ PrimaryExpressionContext _prevctx = _localctx;
+ int _startState = 4;
+ EnterRecursionRule(_localctx, 4, RULE_primaryExpression, _p);
+ int _la;
+ try {
+ int _alt;
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 86;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case OPEN_BRACKET:
+ {
+ _localctx = new ParenthesisExpContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+
+ State = 68; Match(OPEN_BRACKET);
+ State = 69; expression(0);
+ State = 70; Match(CLOSE_BRACKET);
+ }
+ break;
+ case OPEN_SQUARE_BRACKET:
+ {
+ _localctx = new ArrayCreationExpContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+ State = 72; Match(OPEN_SQUARE_BRACKET);
+ State = 74;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << STRING_INTERPOLATION_START) | (1L << PLUS) | (1L << SUBSTRACT) | (1L << NON) | (1L << OPEN_BRACKET) | (1L << OPEN_SQUARE_BRACKET) | (1L << OPEN_CURLY_BRACKET) | (1L << NUMBER) | (1L << IDENTIFIER) | (1L << STRING))) != 0)) {
+ {
+ State = 73; argsList();
+ }
+ }
+
+ State = 76; Match(CLOSE_SQUARE_BRACKET);
+ }
+ break;
+ case OPEN_CURLY_BRACKET:
+ {
+ _localctx = new JsonCreationExpContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+ State = 77; Match(OPEN_CURLY_BRACKET);
+ State = 79;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ if (_la==IDENTIFIER || _la==STRING) {
+ {
+ State = 78; keyValuePairList();
+ }
+ }
+
+ State = 81; Match(CLOSE_CURLY_BRACKET);
+ }
+ break;
+ case NUMBER:
+ {
+ _localctx = new NumericAtomContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+ State = 82; Match(NUMBER);
+ }
+ break;
+ case STRING:
+ {
+ _localctx = new StringAtomContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+ State = 83; Match(STRING);
+ }
+ break;
+ case IDENTIFIER:
+ {
+ _localctx = new IdAtomContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+ State = 84; Match(IDENTIFIER);
+ }
+ break;
+ case STRING_INTERPOLATION_START:
+ {
+ _localctx = new StringInterpolationAtomContext(_localctx);
+ Context = _localctx;
+ _prevctx = _localctx;
+ State = 85; stringInterpolation();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ Context.Stop = TokenStream.LT(-1);
+ State = 107;
+ ErrorHandler.Sync(this);
+ _alt = Interpreter.AdaptivePredict(TokenStream,9,Context);
+ while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( ParseListeners!=null )
+ TriggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ State = 105;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,8,Context) ) {
+ case 1:
+ {
+ _localctx = new MemberAccessExpContext(new PrimaryExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_primaryExpression);
+ State = 88;
+ if (!(Precpred(Context, 3))) throw new FailedPredicateException(this, "Precpred(Context, 3)");
+ State = 89; Match(DOT);
+ State = 90; Match(IDENTIFIER);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new FuncInvokeExpContext(new PrimaryExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_primaryExpression);
+ State = 91;
+ if (!(Precpred(Context, 2))) throw new FailedPredicateException(this, "Precpred(Context, 2)");
+ State = 93;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ if (_la==NON) {
+ {
+ State = 92; Match(NON);
+ }
+ }
+
+ State = 95; Match(OPEN_BRACKET);
+ State = 97;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << STRING_INTERPOLATION_START) | (1L << PLUS) | (1L << SUBSTRACT) | (1L << NON) | (1L << OPEN_BRACKET) | (1L << OPEN_SQUARE_BRACKET) | (1L << OPEN_CURLY_BRACKET) | (1L << NUMBER) | (1L << IDENTIFIER) | (1L << STRING))) != 0)) {
+ {
+ State = 96; argsList();
+ }
+ }
+
+ State = 99; Match(CLOSE_BRACKET);
+ }
+ break;
+ case 3:
+ {
+ _localctx = new IndexAccessExpContext(new PrimaryExpressionContext(_parentctx, _parentState));
+ PushNewRecursionContext(_localctx, _startState, RULE_primaryExpression);
+ State = 100;
+ if (!(Precpred(Context, 1))) throw new FailedPredicateException(this, "Precpred(Context, 1)");
+ State = 101; Match(OPEN_SQUARE_BRACKET);
+ State = 102; expression(0);
+ State = 103; Match(CLOSE_SQUARE_BRACKET);
+ }
+ break;
+ }
+ }
+ }
+ State = 109;
+ ErrorHandler.Sync(this);
+ _alt = Interpreter.AdaptivePredict(TokenStream,9,Context);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ UnrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public partial class StringInterpolationContext : ParserRuleContext {
+ public ITerminalNode[] STRING_INTERPOLATION_START() { return GetTokens(ExpressionAntlrParser.STRING_INTERPOLATION_START); }
+ public ITerminalNode STRING_INTERPOLATION_START(int i) {
+ return GetToken(ExpressionAntlrParser.STRING_INTERPOLATION_START, i);
+ }
+ public ITerminalNode[] ESCAPE_CHARACTER() { return GetTokens(ExpressionAntlrParser.ESCAPE_CHARACTER); }
+ public ITerminalNode ESCAPE_CHARACTER(int i) {
+ return GetToken(ExpressionAntlrParser.ESCAPE_CHARACTER, i);
+ }
+ public ITerminalNode[] TEMPLATE() { return GetTokens(ExpressionAntlrParser.TEMPLATE); }
+ public ITerminalNode TEMPLATE(int i) {
+ return GetToken(ExpressionAntlrParser.TEMPLATE, i);
+ }
+ public TextContentContext[] textContent() {
+ return GetRuleContexts();
+ }
+ public TextContentContext textContent(int i) {
+ return GetRuleContext(i);
+ }
+ public StringInterpolationContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_stringInterpolation; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterStringInterpolation(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitStringInterpolation(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitStringInterpolation(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public StringInterpolationContext stringInterpolation() {
+ StringInterpolationContext _localctx = new StringInterpolationContext(Context, State);
+ EnterRule(_localctx, 6, RULE_stringInterpolation);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 110; Match(STRING_INTERPOLATION_START);
+ State = 116;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TEMPLATE) | (1L << ESCAPE_CHARACTER) | (1L << TEXT_CONTENT))) != 0)) {
+ {
+ State = 114;
+ ErrorHandler.Sync(this);
+ switch (TokenStream.LA(1)) {
+ case ESCAPE_CHARACTER:
+ {
+ State = 111; Match(ESCAPE_CHARACTER);
+ }
+ break;
+ case TEMPLATE:
+ {
+ State = 112; Match(TEMPLATE);
+ }
+ break;
+ case TEXT_CONTENT:
+ {
+ State = 113; textContent();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ State = 118;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ }
+ State = 119; Match(STRING_INTERPOLATION_START);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class TextContentContext : ParserRuleContext {
+ public ITerminalNode[] TEXT_CONTENT() { return GetTokens(ExpressionAntlrParser.TEXT_CONTENT); }
+ public ITerminalNode TEXT_CONTENT(int i) {
+ return GetToken(ExpressionAntlrParser.TEXT_CONTENT, i);
+ }
+ public TextContentContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_textContent; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterTextContent(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitTextContent(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitTextContent(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public TextContentContext textContent() {
+ TextContentContext _localctx = new TextContentContext(Context, State);
+ EnterRule(_localctx, 8, RULE_textContent);
+ try {
+ int _alt;
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 122;
+ ErrorHandler.Sync(this);
+ _alt = 1;
+ do {
+ switch (_alt) {
+ case 1:
+ {
+ {
+ State = 121; Match(TEXT_CONTENT);
+ }
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ State = 124;
+ ErrorHandler.Sync(this);
+ _alt = Interpreter.AdaptivePredict(TokenStream,12,Context);
+ } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER );
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class ArgsListContext : ParserRuleContext {
+ public LambdaContext[] lambda() {
+ return GetRuleContexts();
+ }
+ public LambdaContext lambda(int i) {
+ return GetRuleContext(i);
+ }
+ public ExpressionContext[] expression() {
+ return GetRuleContexts();
+ }
+ public ExpressionContext expression(int i) {
+ return GetRuleContext(i);
+ }
+ public ITerminalNode[] COMMA() { return GetTokens(ExpressionAntlrParser.COMMA); }
+ public ITerminalNode COMMA(int i) {
+ return GetToken(ExpressionAntlrParser.COMMA, i);
+ }
+ public ArgsListContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_argsList; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterArgsList(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitArgsList(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor;
+ if (typedVisitor != null) return typedVisitor.VisitArgsList(this);
+ else return visitor.VisitChildren(this);
+ }
+ }
+
+ [RuleVersion(0)]
+ public ArgsListContext argsList() {
+ ArgsListContext _localctx = new ArgsListContext(Context, State);
+ EnterRule(_localctx, 10, RULE_argsList);
+ int _la;
+ try {
+ EnterOuterAlt(_localctx, 1);
+ {
+ State = 128;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) {
+ case 1:
+ {
+ State = 126; lambda();
+ }
+ break;
+ case 2:
+ {
+ State = 127; expression(0);
+ }
+ break;
+ }
+ State = 137;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ while (_la==COMMA) {
+ {
+ {
+ State = 130; Match(COMMA);
+ State = 133;
+ ErrorHandler.Sync(this);
+ switch ( Interpreter.AdaptivePredict(TokenStream,14,Context) ) {
+ case 1:
+ {
+ State = 131; lambda();
+ }
+ break;
+ case 2:
+ {
+ State = 132; expression(0);
+ }
+ break;
+ }
+ }
+ }
+ State = 139;
+ ErrorHandler.Sync(this);
+ _la = TokenStream.LA(1);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ ErrorHandler.ReportError(this, re);
+ ErrorHandler.Recover(this, re);
+ }
+ finally {
+ ExitRule();
+ }
+ return _localctx;
+ }
+
+ public partial class LambdaContext : ParserRuleContext {
+ public ITerminalNode IDENTIFIER() { return GetToken(ExpressionAntlrParser.IDENTIFIER, 0); }
+ public ITerminalNode ARROW() { return GetToken(ExpressionAntlrParser.ARROW, 0); }
+ public ExpressionContext expression() {
+ return GetRuleContext(0);
+ }
+ public LambdaContext(ParserRuleContext parent, int invokingState)
+ : base(parent, invokingState)
+ {
+ }
+ public override int RuleIndex { get { return RULE_lambda; } }
+ public override void EnterRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.EnterLambda(this);
+ }
+ public override void ExitRule(IParseTreeListener listener) {
+ IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener;
+ if (typedListener != null) typedListener.ExitLambda(this);
+ }
+ public override TResult Accept(IParseTreeVisitor visitor) {
+ IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor