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; + if (typedVisitor != null) return typedVisitor.VisitLambda(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LambdaContext lambda() { + LambdaContext _localctx = new LambdaContext(Context, State); + EnterRule(_localctx, 12, RULE_lambda); + try { + EnterOuterAlt(_localctx, 1); + { + State = 140; Match(IDENTIFIER); + State = 141; Match(ARROW); + State = 142; expression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class KeyValuePairListContext : ParserRuleContext { + public KeyValuePairContext[] keyValuePair() { + return GetRuleContexts(); + } + public KeyValuePairContext keyValuePair(int i) { + return GetRuleContext(i); + } + public ITerminalNode[] COMMA() { return GetTokens(ExpressionAntlrParser.COMMA); } + public ITerminalNode COMMA(int i) { + return GetToken(ExpressionAntlrParser.COMMA, i); + } + public KeyValuePairListContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_keyValuePairList; } } + public override void EnterRule(IParseTreeListener listener) { + IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener; + if (typedListener != null) typedListener.EnterKeyValuePairList(this); + } + public override void ExitRule(IParseTreeListener listener) { + IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener; + if (typedListener != null) typedListener.ExitKeyValuePairList(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitKeyValuePairList(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public KeyValuePairListContext keyValuePairList() { + KeyValuePairListContext _localctx = new KeyValuePairListContext(Context, State); + EnterRule(_localctx, 14, RULE_keyValuePairList); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 144; keyValuePair(); + State = 149; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==COMMA) { + { + { + State = 145; Match(COMMA); + State = 146; keyValuePair(); + } + } + State = 151; + 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 KeyValuePairContext : ParserRuleContext { + public KeyContext key() { + return GetRuleContext(0); + } + public ITerminalNode COLON() { return GetToken(ExpressionAntlrParser.COLON, 0); } + public ExpressionContext expression() { + return GetRuleContext(0); + } + public KeyValuePairContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_keyValuePair; } } + public override void EnterRule(IParseTreeListener listener) { + IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener; + if (typedListener != null) typedListener.EnterKeyValuePair(this); + } + public override void ExitRule(IParseTreeListener listener) { + IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener; + if (typedListener != null) typedListener.ExitKeyValuePair(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitKeyValuePair(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public KeyValuePairContext keyValuePair() { + KeyValuePairContext _localctx = new KeyValuePairContext(Context, State); + EnterRule(_localctx, 16, RULE_keyValuePair); + try { + EnterOuterAlt(_localctx, 1); + { + State = 152; key(); + State = 153; Match(COLON); + State = 154; expression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class KeyContext : ParserRuleContext { + public ITerminalNode IDENTIFIER() { return GetToken(ExpressionAntlrParser.IDENTIFIER, 0); } + public ITerminalNode STRING() { return GetToken(ExpressionAntlrParser.STRING, 0); } + public KeyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_key; } } + public override void EnterRule(IParseTreeListener listener) { + IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener; + if (typedListener != null) typedListener.EnterKey(this); + } + public override void ExitRule(IParseTreeListener listener) { + IExpressionAntlrParserListener typedListener = listener as IExpressionAntlrParserListener; + if (typedListener != null) typedListener.ExitKey(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IExpressionAntlrParserVisitor typedVisitor = visitor as IExpressionAntlrParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitKey(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public KeyContext key() { + KeyContext _localctx = new KeyContext(Context, State); + EnterRule(_localctx, 18, RULE_key); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 156; + _la = TokenStream.LA(1); + if ( !(_la==IDENTIFIER || _la==STRING) ) { + 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 override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 1: return expression_sempred((ExpressionContext)_localctx, predIndex); + case 2: return primaryExpression_sempred((PrimaryExpressionContext)_localctx, predIndex); + } + return true; + } + private bool expression_sempred(ExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 0: return Precpred(Context, 11); + case 1: return Precpred(Context, 10); + case 2: return Precpred(Context, 9); + case 3: return Precpred(Context, 8); + case 4: return Precpred(Context, 7); + case 5: return Precpred(Context, 6); + case 6: return Precpred(Context, 5); + case 7: return Precpred(Context, 4); + case 8: return Precpred(Context, 3); + case 9: return Precpred(Context, 2); + } + return true; + } + private bool primaryExpression_sempred(PrimaryExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 10: return Precpred(Context, 3); + case 11: return Precpred(Context, 2); + case 12: return Precpred(Context, 1); + } + return true; + } + + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x3', '(', '\xA1', '\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', + '\x3', '\x2', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x3', '\x3', '\x5', '\x3', '\x1E', '\n', '\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', '\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', '\x3', '\a', '\x3', '\x41', '\n', '\x3', '\f', + '\x3', '\xE', '\x3', '\x44', '\v', '\x3', '\x3', '\x4', '\x3', '\x4', + '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', + '\x5', '\x4', 'M', '\n', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', + '\x5', '\x4', 'R', '\n', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', + '\x3', '\x4', '\x3', '\x4', '\x5', '\x4', 'Y', '\n', '\x4', '\x3', '\x4', + '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x5', '\x4', + '`', '\n', '\x4', '\x3', '\x4', '\x3', '\x4', '\x5', '\x4', '\x64', '\n', + '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', + '\x4', '\x3', '\x4', '\a', '\x4', 'l', '\n', '\x4', '\f', '\x4', '\xE', + '\x4', 'o', '\v', '\x4', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', + '\x5', '\a', '\x5', 'u', '\n', '\x5', '\f', '\x5', '\xE', '\x5', 'x', + '\v', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\x6', '\x6', '}', + '\n', '\x6', '\r', '\x6', '\xE', '\x6', '~', '\x3', '\a', '\x3', '\a', + '\x5', '\a', '\x83', '\n', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', + '\x5', '\a', '\x88', '\n', '\a', '\a', '\a', '\x8A', '\n', '\a', '\f', + '\a', '\xE', '\a', '\x8D', '\v', '\a', '\x3', '\b', '\x3', '\b', '\x3', + '\b', '\x3', '\b', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\a', '\t', + '\x96', '\n', '\t', '\f', '\t', '\xE', '\t', '\x99', '\v', '\t', '\x3', + '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\v', '\x3', '\v', + '\x3', '\v', '\x2', '\x4', '\x4', '\x6', '\f', '\x2', '\x4', '\x6', '\b', + '\n', '\f', '\xE', '\x10', '\x12', '\x14', '\x2', '\b', '\x3', '\x2', + '\x4', '\x6', '\x3', '\x2', '\b', '\n', '\x3', '\x2', '\x4', '\x5', '\x3', + '\x2', '\v', '\f', '\x3', '\x2', '\x10', '\x13', '\x4', '\x2', '\"', '\"', + '$', '$', '\x2', '\xB6', '\x2', '\x16', '\x3', '\x2', '\x2', '\x2', '\x4', + '\x1D', '\x3', '\x2', '\x2', '\x2', '\x6', 'X', '\x3', '\x2', '\x2', '\x2', + '\b', 'p', '\x3', '\x2', '\x2', '\x2', '\n', '|', '\x3', '\x2', '\x2', + '\x2', '\f', '\x82', '\x3', '\x2', '\x2', '\x2', '\xE', '\x8E', '\x3', + '\x2', '\x2', '\x2', '\x10', '\x92', '\x3', '\x2', '\x2', '\x2', '\x12', + '\x9A', '\x3', '\x2', '\x2', '\x2', '\x14', '\x9E', '\x3', '\x2', '\x2', + '\x2', '\x16', '\x17', '\x5', '\x4', '\x3', '\x2', '\x17', '\x18', '\a', + '\x2', '\x2', '\x3', '\x18', '\x3', '\x3', '\x2', '\x2', '\x2', '\x19', + '\x1A', '\b', '\x3', '\x1', '\x2', '\x1A', '\x1B', '\t', '\x2', '\x2', + '\x2', '\x1B', '\x1E', '\x5', '\x4', '\x3', '\xE', '\x1C', '\x1E', '\x5', + '\x6', '\x4', '\x2', '\x1D', '\x19', '\x3', '\x2', '\x2', '\x2', '\x1D', + '\x1C', '\x3', '\x2', '\x2', '\x2', '\x1E', '\x42', '\x3', '\x2', '\x2', + '\x2', '\x1F', ' ', '\f', '\r', '\x2', '\x2', ' ', '!', '\a', '\a', '\x2', + '\x2', '!', '\x41', '\x5', '\x4', '\x3', '\r', '\"', '#', '\f', '\f', + '\x2', '\x2', '#', '$', '\t', '\x3', '\x2', '\x2', '$', '\x41', '\x5', + '\x4', '\x3', '\r', '%', '&', '\f', '\v', '\x2', '\x2', '&', '\'', '\t', + '\x4', '\x2', '\x2', '\'', '\x41', '\x5', '\x4', '\x3', '\f', '(', ')', + '\f', '\n', '\x2', '\x2', ')', '*', '\t', '\x5', '\x2', '\x2', '*', '\x41', + '\x5', '\x4', '\x3', '\v', '+', ',', '\f', '\t', '\x2', '\x2', ',', '-', + '\a', '\r', '\x2', '\x2', '-', '\x41', '\x5', '\x4', '\x3', '\n', '.', + '/', '\f', '\b', '\x2', '\x2', '/', '\x30', '\t', '\x6', '\x2', '\x2', + '\x30', '\x41', '\x5', '\x4', '\x3', '\t', '\x31', '\x32', '\f', '\a', + '\x2', '\x2', '\x32', '\x33', '\a', '\xE', '\x2', '\x2', '\x33', '\x41', + '\x5', '\x4', '\x3', '\b', '\x34', '\x35', '\f', '\x6', '\x2', '\x2', + '\x35', '\x36', '\a', '\xF', '\x2', '\x2', '\x36', '\x41', '\x5', '\x4', + '\x3', '\a', '\x37', '\x38', '\f', '\x5', '\x2', '\x2', '\x38', '\x39', + '\a', '\x1E', '\x2', '\x2', '\x39', '\x41', '\x5', '\x4', '\x3', '\x6', + ':', ';', '\f', '\x4', '\x2', '\x2', ';', '<', '\a', '\x1F', '\x2', '\x2', + '<', '=', '\x5', '\x4', '\x3', '\x2', '=', '>', '\a', '\x1C', '\x2', '\x2', + '>', '?', '\x5', '\x4', '\x3', '\x5', '?', '\x41', '\x3', '\x2', '\x2', + '\x2', '@', '\x1F', '\x3', '\x2', '\x2', '\x2', '@', '\"', '\x3', '\x2', + '\x2', '\x2', '@', '%', '\x3', '\x2', '\x2', '\x2', '@', '(', '\x3', '\x2', + '\x2', '\x2', '@', '+', '\x3', '\x2', '\x2', '\x2', '@', '.', '\x3', '\x2', + '\x2', '\x2', '@', '\x31', '\x3', '\x2', '\x2', '\x2', '@', '\x34', '\x3', + '\x2', '\x2', '\x2', '@', '\x37', '\x3', '\x2', '\x2', '\x2', '@', ':', + '\x3', '\x2', '\x2', '\x2', '\x41', '\x44', '\x3', '\x2', '\x2', '\x2', + '\x42', '@', '\x3', '\x2', '\x2', '\x2', '\x42', '\x43', '\x3', '\x2', + '\x2', '\x2', '\x43', '\x5', '\x3', '\x2', '\x2', '\x2', '\x44', '\x42', + '\x3', '\x2', '\x2', '\x2', '\x45', '\x46', '\b', '\x4', '\x1', '\x2', + '\x46', 'G', '\a', '\x14', '\x2', '\x2', 'G', 'H', '\x5', '\x4', '\x3', + '\x2', 'H', 'I', '\a', '\x15', '\x2', '\x2', 'I', 'Y', '\x3', '\x2', '\x2', + '\x2', 'J', 'L', '\a', '\x17', '\x2', '\x2', 'K', 'M', '\x5', '\f', '\a', + '\x2', 'L', 'K', '\x3', '\x2', '\x2', '\x2', 'L', 'M', '\x3', '\x2', '\x2', + '\x2', 'M', 'N', '\x3', '\x2', '\x2', '\x2', 'N', 'Y', '\a', '\x18', '\x2', + '\x2', 'O', 'Q', '\a', '\x19', '\x2', '\x2', 'P', 'R', '\x5', '\x10', + '\t', '\x2', 'Q', 'P', '\x3', '\x2', '\x2', '\x2', 'Q', 'R', '\x3', '\x2', + '\x2', '\x2', 'R', 'S', '\x3', '\x2', '\x2', '\x2', 'S', 'Y', '\a', '\x1A', + '\x2', '\x2', 'T', 'Y', '\a', ' ', '\x2', '\x2', 'U', 'Y', '\a', '$', + '\x2', '\x2', 'V', 'Y', '\a', '\"', '\x2', '\x2', 'W', 'Y', '\x5', '\b', + '\x5', '\x2', 'X', '\x45', '\x3', '\x2', '\x2', '\x2', 'X', 'J', '\x3', + '\x2', '\x2', '\x2', 'X', 'O', '\x3', '\x2', '\x2', '\x2', 'X', 'T', '\x3', + '\x2', '\x2', '\x2', 'X', 'U', '\x3', '\x2', '\x2', '\x2', 'X', 'V', '\x3', + '\x2', '\x2', '\x2', 'X', 'W', '\x3', '\x2', '\x2', '\x2', 'Y', 'm', '\x3', + '\x2', '\x2', '\x2', 'Z', '[', '\f', '\x5', '\x2', '\x2', '[', '\\', '\a', + '\x16', '\x2', '\x2', '\\', 'l', '\a', '\"', '\x2', '\x2', ']', '_', '\f', + '\x4', '\x2', '\x2', '^', '`', '\a', '\x6', '\x2', '\x2', '_', '^', '\x3', + '\x2', '\x2', '\x2', '_', '`', '\x3', '\x2', '\x2', '\x2', '`', '\x61', + '\x3', '\x2', '\x2', '\x2', '\x61', '\x63', '\a', '\x14', '\x2', '\x2', + '\x62', '\x64', '\x5', '\f', '\a', '\x2', '\x63', '\x62', '\x3', '\x2', + '\x2', '\x2', '\x63', '\x64', '\x3', '\x2', '\x2', '\x2', '\x64', '\x65', + '\x3', '\x2', '\x2', '\x2', '\x65', 'l', '\a', '\x15', '\x2', '\x2', '\x66', + 'g', '\f', '\x3', '\x2', '\x2', 'g', 'h', '\a', '\x17', '\x2', '\x2', + 'h', 'i', '\x5', '\x4', '\x3', '\x2', 'i', 'j', '\a', '\x18', '\x2', '\x2', + 'j', 'l', '\x3', '\x2', '\x2', '\x2', 'k', 'Z', '\x3', '\x2', '\x2', '\x2', + 'k', ']', '\x3', '\x2', '\x2', '\x2', 'k', '\x66', '\x3', '\x2', '\x2', + '\x2', 'l', 'o', '\x3', '\x2', '\x2', '\x2', 'm', 'k', '\x3', '\x2', '\x2', + '\x2', 'm', 'n', '\x3', '\x2', '\x2', '\x2', 'n', '\a', '\x3', '\x2', + '\x2', '\x2', 'o', 'm', '\x3', '\x2', '\x2', '\x2', 'p', 'v', '\a', '\x3', + '\x2', '\x2', 'q', 'u', '\a', '\'', '\x2', '\x2', 'r', 'u', '\a', '&', + '\x2', '\x2', 's', 'u', '\x5', '\n', '\x6', '\x2', 't', 'q', '\x3', '\x2', + '\x2', '\x2', 't', 'r', '\x3', '\x2', '\x2', '\x2', 't', 's', '\x3', '\x2', + '\x2', '\x2', 'u', 'x', '\x3', '\x2', '\x2', '\x2', 'v', 't', '\x3', '\x2', + '\x2', '\x2', 'v', 'w', '\x3', '\x2', '\x2', '\x2', 'w', 'y', '\x3', '\x2', + '\x2', '\x2', 'x', 'v', '\x3', '\x2', '\x2', '\x2', 'y', 'z', '\a', '\x3', + '\x2', '\x2', 'z', '\t', '\x3', '\x2', '\x2', '\x2', '{', '}', '\a', '(', + '\x2', '\x2', '|', '{', '\x3', '\x2', '\x2', '\x2', '}', '~', '\x3', '\x2', + '\x2', '\x2', '~', '|', '\x3', '\x2', '\x2', '\x2', '~', '\x7F', '\x3', + '\x2', '\x2', '\x2', '\x7F', '\v', '\x3', '\x2', '\x2', '\x2', '\x80', + '\x83', '\x5', '\xE', '\b', '\x2', '\x81', '\x83', '\x5', '\x4', '\x3', + '\x2', '\x82', '\x80', '\x3', '\x2', '\x2', '\x2', '\x82', '\x81', '\x3', + '\x2', '\x2', '\x2', '\x83', '\x8B', '\x3', '\x2', '\x2', '\x2', '\x84', + '\x87', '\a', '\x1B', '\x2', '\x2', '\x85', '\x88', '\x5', '\xE', '\b', + '\x2', '\x86', '\x88', '\x5', '\x4', '\x3', '\x2', '\x87', '\x85', '\x3', + '\x2', '\x2', '\x2', '\x87', '\x86', '\x3', '\x2', '\x2', '\x2', '\x88', + '\x8A', '\x3', '\x2', '\x2', '\x2', '\x89', '\x84', '\x3', '\x2', '\x2', + '\x2', '\x8A', '\x8D', '\x3', '\x2', '\x2', '\x2', '\x8B', '\x89', '\x3', + '\x2', '\x2', '\x2', '\x8B', '\x8C', '\x3', '\x2', '\x2', '\x2', '\x8C', + '\r', '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8B', '\x3', '\x2', '\x2', + '\x2', '\x8E', '\x8F', '\a', '\"', '\x2', '\x2', '\x8F', '\x90', '\a', + '\x1D', '\x2', '\x2', '\x90', '\x91', '\x5', '\x4', '\x3', '\x2', '\x91', + '\xF', '\x3', '\x2', '\x2', '\x2', '\x92', '\x97', '\x5', '\x12', '\n', + '\x2', '\x93', '\x94', '\a', '\x1B', '\x2', '\x2', '\x94', '\x96', '\x5', + '\x12', '\n', '\x2', '\x95', '\x93', '\x3', '\x2', '\x2', '\x2', '\x96', + '\x99', '\x3', '\x2', '\x2', '\x2', '\x97', '\x95', '\x3', '\x2', '\x2', + '\x2', '\x97', '\x98', '\x3', '\x2', '\x2', '\x2', '\x98', '\x11', '\x3', + '\x2', '\x2', '\x2', '\x99', '\x97', '\x3', '\x2', '\x2', '\x2', '\x9A', + '\x9B', '\x5', '\x14', '\v', '\x2', '\x9B', '\x9C', '\a', '\x1C', '\x2', + '\x2', '\x9C', '\x9D', '\x5', '\x4', '\x3', '\x2', '\x9D', '\x13', '\x3', + '\x2', '\x2', '\x2', '\x9E', '\x9F', '\t', '\a', '\x2', '\x2', '\x9F', + '\x15', '\x3', '\x2', '\x2', '\x2', '\x13', '\x1D', '@', '\x42', 'L', + 'Q', 'X', '_', '\x63', 'k', 'm', 't', 'v', '~', '\x82', '\x87', '\x8B', + '\x97', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserBaseListener.cs b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserBaseListener.cs new file mode 100644 index 0000000000..3e454a36e2 --- /dev/null +++ b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserBaseListener.cs @@ -0,0 +1,343 @@ +//------------------------------------------------------------------------------ +// +// 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 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 ExpressionAntlrParserBaseListener : IExpressionAntlrParserListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFile([NotNull] ExpressionAntlrParser.FileContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFile([NotNull] ExpressionAntlrParser.FileContext context) { } + /// + /// Enter a parse tree produced by the unaryOpExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUnaryOpExp([NotNull] ExpressionAntlrParser.UnaryOpExpContext context) { } + /// + /// Exit a parse tree produced by the unaryOpExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUnaryOpExp([NotNull] ExpressionAntlrParser.UnaryOpExpContext context) { } + /// + /// Enter a parse tree produced by the binaryOpExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBinaryOpExp([NotNull] ExpressionAntlrParser.BinaryOpExpContext context) { } + /// + /// Exit a parse tree produced by the binaryOpExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBinaryOpExp([NotNull] ExpressionAntlrParser.BinaryOpExpContext context) { } + /// + /// Enter a parse tree produced by the primaryExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPrimaryExp([NotNull] ExpressionAntlrParser.PrimaryExpContext context) { } + /// + /// Exit a parse tree produced by the primaryExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPrimaryExp([NotNull] ExpressionAntlrParser.PrimaryExpContext context) { } + /// + /// Enter a parse tree produced by the tripleOpExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTripleOpExp([NotNull] ExpressionAntlrParser.TripleOpExpContext context) { } + /// + /// Exit a parse tree produced by the tripleOpExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTripleOpExp([NotNull] ExpressionAntlrParser.TripleOpExpContext context) { } + /// + /// Enter a parse tree produced by the funcInvokeExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFuncInvokeExp([NotNull] ExpressionAntlrParser.FuncInvokeExpContext context) { } + /// + /// Exit a parse tree produced by the funcInvokeExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFuncInvokeExp([NotNull] ExpressionAntlrParser.FuncInvokeExpContext context) { } + /// + /// Enter a parse tree produced by the idAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIdAtom([NotNull] ExpressionAntlrParser.IdAtomContext context) { } + /// + /// Exit a parse tree produced by the idAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIdAtom([NotNull] ExpressionAntlrParser.IdAtomContext context) { } + /// + /// Enter a parse tree produced by the jsonCreationExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterJsonCreationExp([NotNull] ExpressionAntlrParser.JsonCreationExpContext context) { } + /// + /// Exit a parse tree produced by the jsonCreationExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitJsonCreationExp([NotNull] ExpressionAntlrParser.JsonCreationExpContext context) { } + /// + /// Enter a parse tree produced by the stringAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStringAtom([NotNull] ExpressionAntlrParser.StringAtomContext context) { } + /// + /// Exit a parse tree produced by the stringAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStringAtom([NotNull] ExpressionAntlrParser.StringAtomContext context) { } + /// + /// Enter a parse tree produced by the indexAccessExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIndexAccessExp([NotNull] ExpressionAntlrParser.IndexAccessExpContext context) { } + /// + /// Exit a parse tree produced by the indexAccessExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIndexAccessExp([NotNull] ExpressionAntlrParser.IndexAccessExpContext context) { } + /// + /// Enter a parse tree produced by the stringInterpolationAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStringInterpolationAtom([NotNull] ExpressionAntlrParser.StringInterpolationAtomContext context) { } + /// + /// Exit a parse tree produced by the stringInterpolationAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStringInterpolationAtom([NotNull] ExpressionAntlrParser.StringInterpolationAtomContext context) { } + /// + /// Enter a parse tree produced by the memberAccessExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMemberAccessExp([NotNull] ExpressionAntlrParser.MemberAccessExpContext context) { } + /// + /// Exit a parse tree produced by the memberAccessExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMemberAccessExp([NotNull] ExpressionAntlrParser.MemberAccessExpContext context) { } + /// + /// Enter a parse tree produced by the parenthesisExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterParenthesisExp([NotNull] ExpressionAntlrParser.ParenthesisExpContext context) { } + /// + /// Exit a parse tree produced by the parenthesisExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitParenthesisExp([NotNull] ExpressionAntlrParser.ParenthesisExpContext context) { } + /// + /// Enter a parse tree produced by the numericAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNumericAtom([NotNull] ExpressionAntlrParser.NumericAtomContext context) { } + /// + /// Exit a parse tree produced by the numericAtom + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNumericAtom([NotNull] ExpressionAntlrParser.NumericAtomContext context) { } + /// + /// Enter a parse tree produced by the arrayCreationExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArrayCreationExp([NotNull] ExpressionAntlrParser.ArrayCreationExpContext context) { } + /// + /// Exit a parse tree produced by the arrayCreationExp + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArrayCreationExp([NotNull] ExpressionAntlrParser.ArrayCreationExpContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStringInterpolation([NotNull] ExpressionAntlrParser.StringInterpolationContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStringInterpolation([NotNull] ExpressionAntlrParser.StringInterpolationContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTextContent([NotNull] ExpressionAntlrParser.TextContentContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTextContent([NotNull] ExpressionAntlrParser.TextContentContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgsList([NotNull] ExpressionAntlrParser.ArgsListContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgsList([NotNull] ExpressionAntlrParser.ArgsListContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLambda([NotNull] ExpressionAntlrParser.LambdaContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLambda([NotNull] ExpressionAntlrParser.LambdaContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterKeyValuePairList([NotNull] ExpressionAntlrParser.KeyValuePairListContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitKeyValuePairList([NotNull] ExpressionAntlrParser.KeyValuePairListContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterKeyValuePair([NotNull] ExpressionAntlrParser.KeyValuePairContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitKeyValuePair([NotNull] ExpressionAntlrParser.KeyValuePairContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterKey([NotNull] ExpressionAntlrParser.KeyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitKey([NotNull] ExpressionAntlrParser.KeyContext 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/ExpressionAntlrParserBaseVisitor.cs b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserBaseVisitor.cs new file mode 100644 index 0000000000..0475a2f9fe --- /dev/null +++ b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserBaseVisitor.cs @@ -0,0 +1,271 @@ +//------------------------------------------------------------------------------ +// +// 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 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 ExpressionAntlrParserBaseVisitor : AbstractParseTreeVisitor, IExpressionAntlrParserVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFile([NotNull] ExpressionAntlrParser.FileContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the unaryOpExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitUnaryOpExp([NotNull] ExpressionAntlrParser.UnaryOpExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the binaryOpExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitBinaryOpExp([NotNull] ExpressionAntlrParser.BinaryOpExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the primaryExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitPrimaryExp([NotNull] ExpressionAntlrParser.PrimaryExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the tripleOpExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTripleOpExp([NotNull] ExpressionAntlrParser.TripleOpExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the funcInvokeExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFuncInvokeExp([NotNull] ExpressionAntlrParser.FuncInvokeExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the idAtom + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIdAtom([NotNull] ExpressionAntlrParser.IdAtomContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the jsonCreationExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitJsonCreationExp([NotNull] ExpressionAntlrParser.JsonCreationExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the stringAtom + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitStringAtom([NotNull] ExpressionAntlrParser.StringAtomContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the indexAccessExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIndexAccessExp([NotNull] ExpressionAntlrParser.IndexAccessExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the stringInterpolationAtom + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitStringInterpolationAtom([NotNull] ExpressionAntlrParser.StringInterpolationAtomContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the memberAccessExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMemberAccessExp([NotNull] ExpressionAntlrParser.MemberAccessExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the parenthesisExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitParenthesisExp([NotNull] ExpressionAntlrParser.ParenthesisExpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the numericAtom + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitNumericAtom([NotNull] ExpressionAntlrParser.NumericAtomContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the arrayCreationExp + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitArrayCreationExp([NotNull] ExpressionAntlrParser.ArrayCreationExpContext 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 VisitStringInterpolation([NotNull] ExpressionAntlrParser.StringInterpolationContext 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 VisitTextContent([NotNull] ExpressionAntlrParser.TextContentContext 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 VisitArgsList([NotNull] ExpressionAntlrParser.ArgsListContext 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 VisitLambda([NotNull] ExpressionAntlrParser.LambdaContext 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 VisitKeyValuePairList([NotNull] ExpressionAntlrParser.KeyValuePairListContext 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 VisitKeyValuePair([NotNull] ExpressionAntlrParser.KeyValuePairContext 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 VisitKey([NotNull] ExpressionAntlrParser.KeyContext context) { return VisitChildren(context); } +} diff --git a/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserListener.cs b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserListener.cs new file mode 100644 index 0000000000..b75eeb44b6 --- /dev/null +++ b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserListener.cs @@ -0,0 +1,282 @@ +//------------------------------------------------------------------------------ +// +// 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 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 IExpressionAntlrParserListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFile([NotNull] ExpressionAntlrParser.FileContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFile([NotNull] ExpressionAntlrParser.FileContext context); + /// + /// Enter a parse tree produced by the unaryOpExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterUnaryOpExp([NotNull] ExpressionAntlrParser.UnaryOpExpContext context); + /// + /// Exit a parse tree produced by the unaryOpExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitUnaryOpExp([NotNull] ExpressionAntlrParser.UnaryOpExpContext context); + /// + /// Enter a parse tree produced by the binaryOpExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterBinaryOpExp([NotNull] ExpressionAntlrParser.BinaryOpExpContext context); + /// + /// Exit a parse tree produced by the binaryOpExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitBinaryOpExp([NotNull] ExpressionAntlrParser.BinaryOpExpContext context); + /// + /// Enter a parse tree produced by the primaryExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterPrimaryExp([NotNull] ExpressionAntlrParser.PrimaryExpContext context); + /// + /// Exit a parse tree produced by the primaryExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitPrimaryExp([NotNull] ExpressionAntlrParser.PrimaryExpContext context); + /// + /// Enter a parse tree produced by the tripleOpExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterTripleOpExp([NotNull] ExpressionAntlrParser.TripleOpExpContext context); + /// + /// Exit a parse tree produced by the tripleOpExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitTripleOpExp([NotNull] ExpressionAntlrParser.TripleOpExpContext context); + /// + /// Enter a parse tree produced by the funcInvokeExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterFuncInvokeExp([NotNull] ExpressionAntlrParser.FuncInvokeExpContext context); + /// + /// Exit a parse tree produced by the funcInvokeExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitFuncInvokeExp([NotNull] ExpressionAntlrParser.FuncInvokeExpContext context); + /// + /// Enter a parse tree produced by the idAtom + /// labeled alternative in . + /// + /// The parse tree. + void EnterIdAtom([NotNull] ExpressionAntlrParser.IdAtomContext context); + /// + /// Exit a parse tree produced by the idAtom + /// labeled alternative in . + /// + /// The parse tree. + void ExitIdAtom([NotNull] ExpressionAntlrParser.IdAtomContext context); + /// + /// Enter a parse tree produced by the jsonCreationExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterJsonCreationExp([NotNull] ExpressionAntlrParser.JsonCreationExpContext context); + /// + /// Exit a parse tree produced by the jsonCreationExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitJsonCreationExp([NotNull] ExpressionAntlrParser.JsonCreationExpContext context); + /// + /// Enter a parse tree produced by the stringAtom + /// labeled alternative in . + /// + /// The parse tree. + void EnterStringAtom([NotNull] ExpressionAntlrParser.StringAtomContext context); + /// + /// Exit a parse tree produced by the stringAtom + /// labeled alternative in . + /// + /// The parse tree. + void ExitStringAtom([NotNull] ExpressionAntlrParser.StringAtomContext context); + /// + /// Enter a parse tree produced by the indexAccessExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterIndexAccessExp([NotNull] ExpressionAntlrParser.IndexAccessExpContext context); + /// + /// Exit a parse tree produced by the indexAccessExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitIndexAccessExp([NotNull] ExpressionAntlrParser.IndexAccessExpContext context); + /// + /// Enter a parse tree produced by the stringInterpolationAtom + /// labeled alternative in . + /// + /// The parse tree. + void EnterStringInterpolationAtom([NotNull] ExpressionAntlrParser.StringInterpolationAtomContext context); + /// + /// Exit a parse tree produced by the stringInterpolationAtom + /// labeled alternative in . + /// + /// The parse tree. + void ExitStringInterpolationAtom([NotNull] ExpressionAntlrParser.StringInterpolationAtomContext context); + /// + /// Enter a parse tree produced by the memberAccessExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterMemberAccessExp([NotNull] ExpressionAntlrParser.MemberAccessExpContext context); + /// + /// Exit a parse tree produced by the memberAccessExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitMemberAccessExp([NotNull] ExpressionAntlrParser.MemberAccessExpContext context); + /// + /// Enter a parse tree produced by the parenthesisExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterParenthesisExp([NotNull] ExpressionAntlrParser.ParenthesisExpContext context); + /// + /// Exit a parse tree produced by the parenthesisExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitParenthesisExp([NotNull] ExpressionAntlrParser.ParenthesisExpContext context); + /// + /// Enter a parse tree produced by the numericAtom + /// labeled alternative in . + /// + /// The parse tree. + void EnterNumericAtom([NotNull] ExpressionAntlrParser.NumericAtomContext context); + /// + /// Exit a parse tree produced by the numericAtom + /// labeled alternative in . + /// + /// The parse tree. + void ExitNumericAtom([NotNull] ExpressionAntlrParser.NumericAtomContext context); + /// + /// Enter a parse tree produced by the arrayCreationExp + /// labeled alternative in . + /// + /// The parse tree. + void EnterArrayCreationExp([NotNull] ExpressionAntlrParser.ArrayCreationExpContext context); + /// + /// Exit a parse tree produced by the arrayCreationExp + /// labeled alternative in . + /// + /// The parse tree. + void ExitArrayCreationExp([NotNull] ExpressionAntlrParser.ArrayCreationExpContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStringInterpolation([NotNull] ExpressionAntlrParser.StringInterpolationContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStringInterpolation([NotNull] ExpressionAntlrParser.StringInterpolationContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTextContent([NotNull] ExpressionAntlrParser.TextContentContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTextContent([NotNull] ExpressionAntlrParser.TextContentContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgsList([NotNull] ExpressionAntlrParser.ArgsListContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgsList([NotNull] ExpressionAntlrParser.ArgsListContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLambda([NotNull] ExpressionAntlrParser.LambdaContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLambda([NotNull] ExpressionAntlrParser.LambdaContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterKeyValuePairList([NotNull] ExpressionAntlrParser.KeyValuePairListContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitKeyValuePairList([NotNull] ExpressionAntlrParser.KeyValuePairListContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterKeyValuePair([NotNull] ExpressionAntlrParser.KeyValuePairContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitKeyValuePair([NotNull] ExpressionAntlrParser.KeyValuePairContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterKey([NotNull] ExpressionAntlrParser.KeyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitKey([NotNull] ExpressionAntlrParser.KeyContext context); +} diff --git a/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserVisitor.cs b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserVisitor.cs new file mode 100644 index 0000000000..742572c065 --- /dev/null +++ b/libraries/AdaptiveExpressions/Generated/ExpressionAntlrParserVisitor.cs @@ -0,0 +1,181 @@ +//------------------------------------------------------------------------------ +// +// 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 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 IExpressionAntlrParserVisitor : IParseTreeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitFile([NotNull] ExpressionAntlrParser.FileContext context); + /// + /// Visit a parse tree produced by the unaryOpExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitUnaryOpExp([NotNull] ExpressionAntlrParser.UnaryOpExpContext context); + /// + /// Visit a parse tree produced by the binaryOpExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitBinaryOpExp([NotNull] ExpressionAntlrParser.BinaryOpExpContext context); + /// + /// Visit a parse tree produced by the primaryExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitPrimaryExp([NotNull] ExpressionAntlrParser.PrimaryExpContext context); + /// + /// Visit a parse tree produced by the tripleOpExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitTripleOpExp([NotNull] ExpressionAntlrParser.TripleOpExpContext context); + /// + /// Visit a parse tree produced by the funcInvokeExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitFuncInvokeExp([NotNull] ExpressionAntlrParser.FuncInvokeExpContext context); + /// + /// Visit a parse tree produced by the idAtom + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitIdAtom([NotNull] ExpressionAntlrParser.IdAtomContext context); + /// + /// Visit a parse tree produced by the jsonCreationExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitJsonCreationExp([NotNull] ExpressionAntlrParser.JsonCreationExpContext context); + /// + /// Visit a parse tree produced by the stringAtom + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitStringAtom([NotNull] ExpressionAntlrParser.StringAtomContext context); + /// + /// Visit a parse tree produced by the indexAccessExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitIndexAccessExp([NotNull] ExpressionAntlrParser.IndexAccessExpContext context); + /// + /// Visit a parse tree produced by the stringInterpolationAtom + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitStringInterpolationAtom([NotNull] ExpressionAntlrParser.StringInterpolationAtomContext context); + /// + /// Visit a parse tree produced by the memberAccessExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitMemberAccessExp([NotNull] ExpressionAntlrParser.MemberAccessExpContext context); + /// + /// Visit a parse tree produced by the parenthesisExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitParenthesisExp([NotNull] ExpressionAntlrParser.ParenthesisExpContext context); + /// + /// Visit a parse tree produced by the numericAtom + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitNumericAtom([NotNull] ExpressionAntlrParser.NumericAtomContext context); + /// + /// Visit a parse tree produced by the arrayCreationExp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitArrayCreationExp([NotNull] ExpressionAntlrParser.ArrayCreationExpContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStringInterpolation([NotNull] ExpressionAntlrParser.StringInterpolationContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTextContent([NotNull] ExpressionAntlrParser.TextContentContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitArgsList([NotNull] ExpressionAntlrParser.ArgsListContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLambda([NotNull] ExpressionAntlrParser.LambdaContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitKeyValuePairList([NotNull] ExpressionAntlrParser.KeyValuePairListContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitKeyValuePair([NotNull] ExpressionAntlrParser.KeyValuePairContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitKey([NotNull] ExpressionAntlrParser.KeyContext context); +} diff --git a/libraries/AdaptiveExpressions/README.md b/libraries/AdaptiveExpressions/README.md new file mode 100644 index 0000000000..19d09811f9 --- /dev/null +++ b/libraries/AdaptiveExpressions/README.md @@ -0,0 +1,24 @@ +### Introduction +Bots, like any other application, require use of expressions to evaluate outcome of a condition based on runtime information available in memory or to the dialog or the language generation system. + +Common expression language was put together to address this core need as well as to rationalize and snap to a common expression language that will be used across Bot Framework SDK and other conversational AI components that need an expression language. + +[More info](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-adaptive-expressions?view=azure-bot-service-4.0) + +See [API reference for Expression](https://docs.microsoft.com/en-us/azure/bot-service/adaptive-expressions/adaptive-expressions-api-reference?view=azure-bot-service-4.0) for API reference. + +See [Here](https://docs.microsoft.com/en-us/azure/bot-service/adaptive-expressions/adaptive-expressions-prebuilt-functions?view=azure-bot-service-4.0) for a complete list of prebuilt functions supported by the common expression language library. + +### Generated folder + +If you changed the g4 file, please follow the instruction [here](https://github.com/antlr/antlr4/tree/master/runtime/CSharp#step-4-generate-the-c-code) to generate the new Lexer and Parser file. +The specific command is: +``` + java -jar antlr4-4.8.jar -Dlanguage=CSharp CommonmRegex.g4 + java -jar antlr4-4.8.jar -Dlanguage=CSharp ExpressionAntlrLexer.g4 + java -jar antlr4-4.8.jar -Dlanguage=CSharp ExpressionAntlrParser.g4 -visitor +``` +`antlr4-4.8.jar` presents the path of antlr jar. +`xx.g4` presents the path of corresponding g4 file. + +By the way, You will need to have a modern version of Java (>= JRE 1.6) to use it. diff --git a/libraries/AdaptiveExpressions/RegexErrorListener.cs b/libraries/AdaptiveExpressions/RegexErrorListener.cs index acc029a653..c56278d2c8 100644 --- a/libraries/AdaptiveExpressions/RegexErrorListener.cs +++ b/libraries/AdaptiveExpressions/RegexErrorListener.cs @@ -2,8 +2,8 @@ // Licensed under the MIT License. using System; +using System.IO; using Antlr4.Runtime; -using Antlr4.Runtime.Misc; namespace AdaptiveExpressions { @@ -11,6 +11,9 @@ internal class RegexErrorListener : BaseErrorListener { public static readonly RegexErrorListener Instance = new RegexErrorListener(); - public override void SyntaxError([NotNull] IRecognizer recognizer, [Nullable] IToken offendingSymbol, int line, int charPositionInLine, [NotNull] string msg, [Nullable] RecognitionException e) => throw new Exception($"Regular expression is invalid."); + public override void SyntaxError(TextWriter output, IRecognizer recognizer, IToken offendingSymbol, int line, int charPositionInLine, string msg, RecognitionException e) + { + throw new Exception($"Regular expression is invalid."); + } } } diff --git a/libraries/AdaptiveExpressions/parser/ExpressionParser.cs b/libraries/AdaptiveExpressions/parser/ExpressionParser.cs index e92863bfb6..f9bfc337d2 100644 --- a/libraries/AdaptiveExpressions/parser/ExpressionParser.cs +++ b/libraries/AdaptiveExpressions/parser/ExpressionParser.cs @@ -8,7 +8,6 @@ using System.Globalization; using System.Linq; using System.Text.RegularExpressions; -using AdaptiveExpressions.parser; using Antlr4.Runtime; using Antlr4.Runtime.Misc; using Antlr4.Runtime.Tree; diff --git a/libraries/AdaptiveExpressions/parser/ParserErrorListener.cs b/libraries/AdaptiveExpressions/parser/ParserErrorListener.cs index a30bd57ba3..5f2dc35ba7 100644 --- a/libraries/AdaptiveExpressions/parser/ParserErrorListener.cs +++ b/libraries/AdaptiveExpressions/parser/ParserErrorListener.cs @@ -1,10 +1,9 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System; using System.Data; +using System.IO; using Antlr4.Runtime; -using Antlr4.Runtime.Misc; namespace AdaptiveExpressions { @@ -21,13 +20,14 @@ public class ParserErrorListener : BaseErrorListener /// /// Throw a syntax error based one current context. /// + /// Text writer. /// An Antlr4 runtime recognizer. /// The token violate the lexer rules. /// The line number where the error occurred. /// The position of character in the line where the error occurred. /// The error message. /// The RecognitionException. - public override void SyntaxError([NotNull] IRecognizer recognizer, [Nullable] IToken offendingSymbol, int line, int charPositionInLine, [NotNull] string msg, [Nullable] RecognitionException e) + public override void SyntaxError(TextWriter output, IRecognizer recognizer, IToken offendingSymbol, int line, int charPositionInLine, string msg, RecognitionException e) { throw new SyntaxErrorException(msg) { Source = $"({line}:{charPositionInLine})", }; } diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/ErrorListener.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/ErrorListener.cs index 1e022147b3..c3d53dc9cc 100644 --- a/libraries/Microsoft.Bot.Builder.LanguageGeneration/ErrorListener.cs +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/ErrorListener.cs @@ -1,10 +1,9 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System; using System.Collections.Generic; +using System.IO; using Antlr4.Runtime; -using Antlr4.Runtime.Misc; namespace Microsoft.Bot.Builder.LanguageGeneration { @@ -28,7 +27,7 @@ public ErrorListener(string errorSource, int lineOffset = 0) } /// - public override void SyntaxError([NotNull] IRecognizer recognizer, [Nullable] IToken offendingSymbol, int line, int charPositionInLine, [NotNull] string msg, [Nullable] RecognitionException exception) + public override void SyntaxError(TextWriter output, IRecognizer recognizer, IToken offendingSymbol, int line, int charPositionInLine, string msg, RecognitionException e) { var startPosition = new Position(_lineOffset + line, charPositionInLine); var stopPosition = new Position(_lineOffset + line, charPositionInLine + offendingSymbol.StopIndex - offendingSymbol.StartIndex + 1); diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileLexer.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileLexer.cs new file mode 100644 index 0000000000..05857c2dfd --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileLexer.cs @@ -0,0 +1,367 @@ +//------------------------------------------------------------------------------ +// +// 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 LGFileLexer.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 LGFileLexer : Lexer { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + NEWLINE=1, OPTION=2, COMMENT=3, IMPORT=4, TEMPLATE_NAME_LINE=5, INLINE_MULTILINE=6, + MULTILINE_PREFIX=7, TEMPLATE_BODY=8, INVALID_LINE=9, MULTILINE_SUFFIX=10, + ESCAPE_CHARACTER=11, MULTILINE_TEXT=12; + public const int + MULTILINE_MODE=1; + public static string[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static string[] modeNames = { + "DEFAULT_MODE", "MULTILINE_MODE" + }; + + public static readonly string[] ruleNames = { + "WHITESPACE", "NEWLINE", "OPTION", "COMMENT", "IMPORT", "TEMPLATE_NAME_LINE", + "INLINE_MULTILINE", "MULTILINE_PREFIX", "TEMPLATE_BODY", "INVALID_LINE", + "MULTILINE_SUFFIX", "ESCAPE_CHARACTER", "MULTILINE_TEXT" + }; + + + bool startTemplate = false; + + + public LGFileLexer(ICharStream input) + : this(input, Console.Out, Console.Error) { } + + public LGFileLexer(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, null, null, null, null, null, null, null, "'```'" + }; + private static readonly string[] _SymbolicNames = { + null, "NEWLINE", "OPTION", "COMMENT", "IMPORT", "TEMPLATE_NAME_LINE", + "INLINE_MULTILINE", "MULTILINE_PREFIX", "TEMPLATE_BODY", "INVALID_LINE", + "MULTILINE_SUFFIX", "ESCAPE_CHARACTER", "MULTILINE_TEXT" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "LGFileLexer.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 LGFileLexer() { + 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 5 : TEMPLATE_NAME_LINE_action(_localctx, actionIndex); break; + } + } + private void TEMPLATE_NAME_LINE_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 0: startTemplate = true; break; + } + } + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 2 : return OPTION_sempred(_localctx, predIndex); + case 3 : return COMMENT_sempred(_localctx, predIndex); + case 4 : return IMPORT_sempred(_localctx, predIndex); + case 5 : return TEMPLATE_NAME_LINE_sempred(_localctx, predIndex); + case 6 : return INLINE_MULTILINE_sempred(_localctx, predIndex); + case 7 : return MULTILINE_PREFIX_sempred(_localctx, predIndex); + case 8 : return TEMPLATE_BODY_sempred(_localctx, predIndex); + case 9 : return INVALID_LINE_sempred(_localctx, predIndex); + } + return true; + } + private bool OPTION_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 0: return !startTemplate ; + } + return true; + } + private bool COMMENT_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 1: return !startTemplate ; + } + return true; + } + private bool IMPORT_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 2: return !startTemplate ; + } + return true; + } + private bool TEMPLATE_NAME_LINE_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 3: return TokenStartColumn == 0; + } + return true; + } + private bool INLINE_MULTILINE_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 4: return startTemplate && TokenStartColumn == 0 ; + } + return true; + } + private bool MULTILINE_PREFIX_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 5: return startTemplate && TokenStartColumn == 0 ; + } + return true; + } + private bool TEMPLATE_BODY_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 6: return startTemplate ; + } + return true; + } + private bool INVALID_LINE_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 7: return !startTemplate ; + } + return true; + } + + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x2', '\xE', '\xD4', '\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', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x5', + '\x3', '\"', '\n', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x4', '\a', + '\x4', '\'', '\n', '\x4', '\f', '\x4', '\xE', '\x4', '*', '\v', '\x4', + '\x3', '\x4', '\x3', '\x4', '\a', '\x4', '.', '\n', '\x4', '\f', '\x4', + '\xE', '\x4', '\x31', '\v', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', + '\x4', '\x3', '\x4', '\x6', '\x4', '\x37', '\n', '\x4', '\r', '\x4', '\xE', + '\x4', '\x38', '\x3', '\x4', '\x3', '\x4', '\x3', '\x5', '\a', '\x5', + '>', '\n', '\x5', '\f', '\x5', '\xE', '\x5', '\x41', '\v', '\x5', '\x3', + '\x5', '\x3', '\x5', '\a', '\x5', '\x45', '\n', '\x5', '\f', '\x5', '\xE', + '\x5', 'H', '\v', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\a', + '\x6', 'M', '\n', '\x6', '\f', '\x6', '\xE', '\x6', 'P', '\v', '\x6', + '\x3', '\x6', '\x3', '\x6', '\a', '\x6', 'T', '\n', '\x6', '\f', '\x6', + '\xE', '\x6', 'W', '\v', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', + '\a', '\x6', '\\', '\n', '\x6', '\f', '\x6', '\xE', '\x6', '_', '\v', + '\x6', '\x3', '\x6', '\x3', '\x6', '\a', '\x6', '\x63', '\n', '\x6', '\f', + '\x6', '\xE', '\x6', '\x66', '\v', '\x6', '\x3', '\x6', '\x3', '\x6', + '\x3', '\a', '\a', '\a', 'k', '\n', '\a', '\f', '\a', '\xE', '\a', 'n', + '\v', '\a', '\x3', '\a', '\x3', '\a', '\a', '\a', 'r', '\n', '\a', '\f', + '\a', '\xE', '\a', 'u', '\v', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', + '\x3', '\b', '\a', '\b', '{', '\n', '\b', '\f', '\b', '\xE', '\b', '~', + '\v', '\b', '\x3', '\b', '\x3', '\b', '\a', '\b', '\x82', '\n', '\b', + '\f', '\b', '\xE', '\b', '\x85', '\v', '\b', '\x3', '\b', '\x3', '\b', + '\x3', '\b', '\x3', '\b', '\x3', '\b', '\a', '\b', '\x8C', '\n', '\b', + '\f', '\b', '\xE', '\b', '\x8F', '\v', '\b', '\x3', '\b', '\x3', '\b', + '\x3', '\b', '\x3', '\b', '\x3', '\b', '\a', '\b', '\x96', '\n', '\b', + '\f', '\b', '\xE', '\b', '\x99', '\v', '\b', '\x3', '\b', '\x3', '\b', + '\x3', '\t', '\a', '\t', '\x9E', '\n', '\t', '\f', '\t', '\xE', '\t', + '\xA1', '\v', '\t', '\x3', '\t', '\x3', '\t', '\a', '\t', '\xA5', '\n', + '\t', '\f', '\t', '\xE', '\t', '\xA8', '\v', '\t', '\x3', '\t', '\x3', + '\t', '\x3', '\t', '\x3', '\t', '\x3', '\t', '\a', '\t', '\xAF', '\n', + '\t', '\f', '\t', '\xE', '\t', '\xB2', '\v', '\t', '\x3', '\t', '\x3', + '\t', '\x3', '\t', '\x3', '\t', '\x3', '\n', '\x6', '\n', '\xB9', '\n', + '\n', '\r', '\n', '\xE', '\n', '\xBA', '\x3', '\n', '\x3', '\n', '\x3', + '\v', '\x6', '\v', '\xC0', '\n', '\v', '\r', '\v', '\xE', '\v', '\xC1', + '\x3', '\v', '\x3', '\v', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', + '\f', '\x3', '\f', '\x3', '\f', '\x3', '\r', '\x3', '\r', '\x5', '\r', + '\xCE', '\n', '\r', '\x3', '\xE', '\x6', '\xE', '\xD1', '\n', '\xE', '\r', + '\xE', '\xE', '\xE', '\xD2', '\x5', 'U', ']', '\xD2', '\x2', '\xF', '\x4', + '\x2', '\x6', '\x3', '\b', '\x4', '\n', '\x5', '\f', '\x6', '\xE', '\a', + '\x10', '\b', '\x12', '\t', '\x14', '\n', '\x16', '\v', '\x18', '\f', + '\x1A', '\r', '\x1C', '\xE', '\x4', '\x2', '\x3', '\x6', '\x6', '\x2', + '\v', '\v', '\"', '\"', '\xA2', '\xA2', '\xFF01', '\xFF01', '\x4', '\x2', + '\f', '\f', '\xF', '\xF', '\x6', '\x2', '\f', '\f', '\xF', '\xF', ']', + ']', '_', '_', '\x5', '\x2', '\f', '\f', '\xF', '\xF', '*', '+', '\x2', + '\xE8', '\x2', '\x6', '\x3', '\x2', '\x2', '\x2', '\x2', '\b', '\x3', + '\x2', '\x2', '\x2', '\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', '\x3', '\x18', '\x3', '\x2', '\x2', '\x2', + '\x3', '\x1A', '\x3', '\x2', '\x2', '\x2', '\x3', '\x1C', '\x3', '\x2', + '\x2', '\x2', '\x4', '\x1E', '\x3', '\x2', '\x2', '\x2', '\x6', '!', '\x3', + '\x2', '\x2', '\x2', '\b', '(', '\x3', '\x2', '\x2', '\x2', '\n', '?', + '\x3', '\x2', '\x2', '\x2', '\f', 'N', '\x3', '\x2', '\x2', '\x2', '\xE', + 'l', '\x3', '\x2', '\x2', '\x2', '\x10', '|', '\x3', '\x2', '\x2', '\x2', + '\x12', '\x9F', '\x3', '\x2', '\x2', '\x2', '\x14', '\xB8', '\x3', '\x2', + '\x2', '\x2', '\x16', '\xBF', '\x3', '\x2', '\x2', '\x2', '\x18', '\xC5', + '\x3', '\x2', '\x2', '\x2', '\x1A', '\xCB', '\x3', '\x2', '\x2', '\x2', + '\x1C', '\xD0', '\x3', '\x2', '\x2', '\x2', '\x1E', '\x1F', '\t', '\x2', + '\x2', '\x2', '\x1F', '\x5', '\x3', '\x2', '\x2', '\x2', ' ', '\"', '\a', + '\xF', '\x2', '\x2', '!', ' ', '\x3', '\x2', '\x2', '\x2', '!', '\"', + '\x3', '\x2', '\x2', '\x2', '\"', '#', '\x3', '\x2', '\x2', '\x2', '#', + '$', '\a', '\f', '\x2', '\x2', '$', '\a', '\x3', '\x2', '\x2', '\x2', + '%', '\'', '\x5', '\x4', '\x2', '\x2', '&', '%', '\x3', '\x2', '\x2', + '\x2', '\'', '*', '\x3', '\x2', '\x2', '\x2', '(', '&', '\x3', '\x2', + '\x2', '\x2', '(', ')', '\x3', '\x2', '\x2', '\x2', ')', '+', '\x3', '\x2', + '\x2', '\x2', '*', '(', '\x3', '\x2', '\x2', '\x2', '+', '/', '\a', '@', + '\x2', '\x2', ',', '.', '\x5', '\x4', '\x2', '\x2', '-', ',', '\x3', '\x2', + '\x2', '\x2', '.', '\x31', '\x3', '\x2', '\x2', '\x2', '/', '-', '\x3', + '\x2', '\x2', '\x2', '/', '\x30', '\x3', '\x2', '\x2', '\x2', '\x30', + '\x32', '\x3', '\x2', '\x2', '\x2', '\x31', '/', '\x3', '\x2', '\x2', + '\x2', '\x32', '\x33', '\a', '#', '\x2', '\x2', '\x33', '\x34', '\a', + '%', '\x2', '\x2', '\x34', '\x36', '\x3', '\x2', '\x2', '\x2', '\x35', + '\x37', '\n', '\x3', '\x2', '\x2', '\x36', '\x35', '\x3', '\x2', '\x2', + '\x2', '\x37', '\x38', '\x3', '\x2', '\x2', '\x2', '\x38', '\x36', '\x3', + '\x2', '\x2', '\x2', '\x38', '\x39', '\x3', '\x2', '\x2', '\x2', '\x39', + ':', '\x3', '\x2', '\x2', '\x2', ':', ';', '\x6', '\x4', '\x2', '\x2', + ';', '\t', '\x3', '\x2', '\x2', '\x2', '<', '>', '\x5', '\x4', '\x2', + '\x2', '=', '<', '\x3', '\x2', '\x2', '\x2', '>', '\x41', '\x3', '\x2', + '\x2', '\x2', '?', '=', '\x3', '\x2', '\x2', '\x2', '?', '@', '\x3', '\x2', + '\x2', '\x2', '@', '\x42', '\x3', '\x2', '\x2', '\x2', '\x41', '?', '\x3', + '\x2', '\x2', '\x2', '\x42', '\x46', '\a', '@', '\x2', '\x2', '\x43', + '\x45', '\n', '\x3', '\x2', '\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', 'I', + '\x3', '\x2', '\x2', '\x2', 'H', '\x46', '\x3', '\x2', '\x2', '\x2', 'I', + 'J', '\x6', '\x5', '\x3', '\x2', 'J', '\v', '\x3', '\x2', '\x2', '\x2', + 'K', 'M', '\x5', '\x4', '\x2', '\x2', 'L', 'K', '\x3', '\x2', '\x2', '\x2', + 'M', 'P', '\x3', '\x2', '\x2', '\x2', 'N', 'L', '\x3', '\x2', '\x2', '\x2', + 'N', 'O', '\x3', '\x2', '\x2', '\x2', 'O', 'Q', '\x3', '\x2', '\x2', '\x2', + 'P', 'N', '\x3', '\x2', '\x2', '\x2', 'Q', 'U', '\a', ']', '\x2', '\x2', + 'R', 'T', '\n', '\x4', '\x2', '\x2', 'S', 'R', '\x3', '\x2', '\x2', '\x2', + 'T', 'W', '\x3', '\x2', '\x2', '\x2', 'U', 'V', '\x3', '\x2', '\x2', '\x2', + 'U', 'S', '\x3', '\x2', '\x2', '\x2', 'V', 'X', '\x3', '\x2', '\x2', '\x2', + 'W', 'U', '\x3', '\x2', '\x2', '\x2', 'X', 'Y', '\a', '_', '\x2', '\x2', + 'Y', ']', '\a', '*', '\x2', '\x2', 'Z', '\\', '\n', '\x5', '\x2', '\x2', + '[', 'Z', '\x3', '\x2', '\x2', '\x2', '\\', '_', '\x3', '\x2', '\x2', + '\x2', ']', '^', '\x3', '\x2', '\x2', '\x2', ']', '[', '\x3', '\x2', '\x2', + '\x2', '^', '`', '\x3', '\x2', '\x2', '\x2', '_', ']', '\x3', '\x2', '\x2', + '\x2', '`', '\x64', '\a', '+', '\x2', '\x2', '\x61', '\x63', '\x5', '\x4', + '\x2', '\x2', '\x62', '\x61', '\x3', '\x2', '\x2', '\x2', '\x63', '\x66', + '\x3', '\x2', '\x2', '\x2', '\x64', '\x62', '\x3', '\x2', '\x2', '\x2', + '\x64', '\x65', '\x3', '\x2', '\x2', '\x2', '\x65', 'g', '\x3', '\x2', + '\x2', '\x2', '\x66', '\x64', '\x3', '\x2', '\x2', '\x2', 'g', 'h', '\x6', + '\x6', '\x4', '\x2', 'h', '\r', '\x3', '\x2', '\x2', '\x2', 'i', 'k', + '\x5', '\x4', '\x2', '\x2', 'j', 'i', '\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', 's', '\a', '%', '\x2', '\x2', + 'p', 'r', '\n', '\x3', '\x2', '\x2', 'q', 'p', '\x3', '\x2', '\x2', '\x2', + 'r', 'u', '\x3', '\x2', '\x2', '\x2', 's', 'q', '\x3', '\x2', '\x2', '\x2', + 's', 't', '\x3', '\x2', '\x2', '\x2', 't', 'v', '\x3', '\x2', '\x2', '\x2', + 'u', 's', '\x3', '\x2', '\x2', '\x2', 'v', 'w', '\x6', '\a', '\x5', '\x2', + 'w', 'x', '\b', '\a', '\x2', '\x2', 'x', '\xF', '\x3', '\x2', '\x2', '\x2', + 'y', '{', '\x5', '\x4', '\x2', '\x2', 'z', 'y', '\x3', '\x2', '\x2', '\x2', + '{', '~', '\x3', '\x2', '\x2', '\x2', '|', 'z', '\x3', '\x2', '\x2', '\x2', + '|', '}', '\x3', '\x2', '\x2', '\x2', '}', '\x7F', '\x3', '\x2', '\x2', + '\x2', '~', '|', '\x3', '\x2', '\x2', '\x2', '\x7F', '\x83', '\a', '/', + '\x2', '\x2', '\x80', '\x82', '\x5', '\x4', '\x2', '\x2', '\x81', '\x80', + '\x3', '\x2', '\x2', '\x2', '\x82', '\x85', '\x3', '\x2', '\x2', '\x2', + '\x83', '\x81', '\x3', '\x2', '\x2', '\x2', '\x83', '\x84', '\x3', '\x2', + '\x2', '\x2', '\x84', '\x86', '\x3', '\x2', '\x2', '\x2', '\x85', '\x83', + '\x3', '\x2', '\x2', '\x2', '\x86', '\x87', '\a', '\x62', '\x2', '\x2', + '\x87', '\x88', '\a', '\x62', '\x2', '\x2', '\x88', '\x89', '\a', '\x62', + '\x2', '\x2', '\x89', '\x8D', '\x3', '\x2', '\x2', '\x2', '\x8A', '\x8C', + '\n', '\x3', '\x2', '\x2', '\x8B', '\x8A', '\x3', '\x2', '\x2', '\x2', + '\x8C', '\x8F', '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8B', '\x3', '\x2', + '\x2', '\x2', '\x8D', '\x8E', '\x3', '\x2', '\x2', '\x2', '\x8E', '\x90', + '\x3', '\x2', '\x2', '\x2', '\x8F', '\x8D', '\x3', '\x2', '\x2', '\x2', + '\x90', '\x91', '\a', '\x62', '\x2', '\x2', '\x91', '\x92', '\a', '\x62', + '\x2', '\x2', '\x92', '\x93', '\a', '\x62', '\x2', '\x2', '\x93', '\x97', + '\x3', '\x2', '\x2', '\x2', '\x94', '\x96', '\x5', '\x4', '\x2', '\x2', + '\x95', '\x94', '\x3', '\x2', '\x2', '\x2', '\x96', '\x99', '\x3', '\x2', + '\x2', '\x2', '\x97', '\x95', '\x3', '\x2', '\x2', '\x2', '\x97', '\x98', + '\x3', '\x2', '\x2', '\x2', '\x98', '\x9A', '\x3', '\x2', '\x2', '\x2', + '\x99', '\x97', '\x3', '\x2', '\x2', '\x2', '\x9A', '\x9B', '\x6', '\b', + '\x6', '\x2', '\x9B', '\x11', '\x3', '\x2', '\x2', '\x2', '\x9C', '\x9E', + '\x5', '\x4', '\x2', '\x2', '\x9D', '\x9C', '\x3', '\x2', '\x2', '\x2', + '\x9E', '\xA1', '\x3', '\x2', '\x2', '\x2', '\x9F', '\x9D', '\x3', '\x2', + '\x2', '\x2', '\x9F', '\xA0', '\x3', '\x2', '\x2', '\x2', '\xA0', '\xA2', + '\x3', '\x2', '\x2', '\x2', '\xA1', '\x9F', '\x3', '\x2', '\x2', '\x2', + '\xA2', '\xA6', '\a', '/', '\x2', '\x2', '\xA3', '\xA5', '\x5', '\x4', + '\x2', '\x2', '\xA4', '\xA3', '\x3', '\x2', '\x2', '\x2', '\xA5', '\xA8', + '\x3', '\x2', '\x2', '\x2', '\xA6', '\xA4', '\x3', '\x2', '\x2', '\x2', + '\xA6', '\xA7', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA9', '\x3', '\x2', + '\x2', '\x2', '\xA8', '\xA6', '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAA', + '\a', '\x62', '\x2', '\x2', '\xAA', '\xAB', '\a', '\x62', '\x2', '\x2', + '\xAB', '\xAC', '\a', '\x62', '\x2', '\x2', '\xAC', '\xB0', '\x3', '\x2', + '\x2', '\x2', '\xAD', '\xAF', '\n', '\x3', '\x2', '\x2', '\xAE', '\xAD', + '\x3', '\x2', '\x2', '\x2', '\xAF', '\xB2', '\x3', '\x2', '\x2', '\x2', + '\xB0', '\xAE', '\x3', '\x2', '\x2', '\x2', '\xB0', '\xB1', '\x3', '\x2', + '\x2', '\x2', '\xB1', '\xB3', '\x3', '\x2', '\x2', '\x2', '\xB2', '\xB0', + '\x3', '\x2', '\x2', '\x2', '\xB3', '\xB4', '\x6', '\t', '\a', '\x2', + '\xB4', '\xB5', '\x3', '\x2', '\x2', '\x2', '\xB5', '\xB6', '\b', '\t', + '\x3', '\x2', '\xB6', '\x13', '\x3', '\x2', '\x2', '\x2', '\xB7', '\xB9', + '\n', '\x3', '\x2', '\x2', '\xB8', '\xB7', '\x3', '\x2', '\x2', '\x2', + '\xB9', '\xBA', '\x3', '\x2', '\x2', '\x2', '\xBA', '\xB8', '\x3', '\x2', + '\x2', '\x2', '\xBA', '\xBB', '\x3', '\x2', '\x2', '\x2', '\xBB', '\xBC', + '\x3', '\x2', '\x2', '\x2', '\xBC', '\xBD', '\x6', '\n', '\b', '\x2', + '\xBD', '\x15', '\x3', '\x2', '\x2', '\x2', '\xBE', '\xC0', '\n', '\x3', + '\x2', '\x2', '\xBF', '\xBE', '\x3', '\x2', '\x2', '\x2', '\xC0', '\xC1', + '\x3', '\x2', '\x2', '\x2', '\xC1', '\xBF', '\x3', '\x2', '\x2', '\x2', + '\xC1', '\xC2', '\x3', '\x2', '\x2', '\x2', '\xC2', '\xC3', '\x3', '\x2', + '\x2', '\x2', '\xC3', '\xC4', '\x6', '\v', '\t', '\x2', '\xC4', '\x17', + '\x3', '\x2', '\x2', '\x2', '\xC5', '\xC6', '\a', '\x62', '\x2', '\x2', + '\xC6', '\xC7', '\a', '\x62', '\x2', '\x2', '\xC7', '\xC8', '\a', '\x62', + '\x2', '\x2', '\xC8', '\xC9', '\x3', '\x2', '\x2', '\x2', '\xC9', '\xCA', + '\b', '\f', '\x4', '\x2', '\xCA', '\x19', '\x3', '\x2', '\x2', '\x2', + '\xCB', '\xCD', '\a', '^', '\x2', '\x2', '\xCC', '\xCE', '\n', '\x3', + '\x2', '\x2', '\xCD', '\xCC', '\x3', '\x2', '\x2', '\x2', '\xCD', '\xCE', + '\x3', '\x2', '\x2', '\x2', '\xCE', '\x1B', '\x3', '\x2', '\x2', '\x2', + '\xCF', '\xD1', '\v', '\x2', '\x2', '\x2', '\xD0', '\xCF', '\x3', '\x2', + '\x2', '\x2', '\xD1', '\xD2', '\x3', '\x2', '\x2', '\x2', '\xD2', '\xD3', + '\x3', '\x2', '\x2', '\x2', '\xD2', '\xD0', '\x3', '\x2', '\x2', '\x2', + '\xD3', '\x1D', '\x3', '\x2', '\x2', '\x2', '\x1B', '\x2', '\x3', '!', + '(', '/', '\x38', '?', '\x46', 'N', 'U', ']', '\x64', 'l', 's', '|', '\x83', + '\x8D', '\x97', '\x9F', '\xA6', '\xB0', '\xBA', '\xC1', '\xCD', '\xD2', + '\x5', '\x3', '\a', '\x2', '\a', '\x3', '\x2', '\x6', '\x2', '\x2', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParser.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParser.cs new file mode 100644 index 0000000000..1bc44a63f5 --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParser.cs @@ -0,0 +1,857 @@ +//------------------------------------------------------------------------------ +// +// 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 LGFileParser.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 LGFileParser : Parser { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + NEWLINE=1, OPTION=2, COMMENT=3, IMPORT=4, TEMPLATE_NAME_LINE=5, INLINE_MULTILINE=6, + MULTILINE_PREFIX=7, TEMPLATE_BODY=8, INVALID_LINE=9, MULTILINE_SUFFIX=10, + ESCAPE_CHARACTER=11, MULTILINE_TEXT=12; + public const int + RULE_file = 0, RULE_paragraph = 1, RULE_commentDefinition = 2, RULE_importDefinition = 3, + RULE_optionDefinition = 4, RULE_errorDefinition = 5, RULE_templateDefinition = 6, + RULE_templateNameLine = 7, RULE_templateBody = 8, RULE_templateBodyLine = 9; + public static readonly string[] ruleNames = { + "file", "paragraph", "commentDefinition", "importDefinition", "optionDefinition", + "errorDefinition", "templateDefinition", "templateNameLine", "templateBody", + "templateBodyLine" + }; + + private static readonly string[] _LiteralNames = { + null, null, null, null, null, null, null, null, null, null, "'```'" + }; + private static readonly string[] _SymbolicNames = { + null, "NEWLINE", "OPTION", "COMMENT", "IMPORT", "TEMPLATE_NAME_LINE", + "INLINE_MULTILINE", "MULTILINE_PREFIX", "TEMPLATE_BODY", "INVALID_LINE", + "MULTILINE_SUFFIX", "ESCAPE_CHARACTER", "MULTILINE_TEXT" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "LGFileParser.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static LGFileParser() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + + public LGFileParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } + + public LGFileParser(ITokenStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + public partial class FileContext : ParserRuleContext { + public ITerminalNode Eof() { return GetToken(LGFileParser.Eof, 0); } + public ParagraphContext[] paragraph() { + return GetRuleContexts(); + } + public ParagraphContext paragraph(int i) { + return GetRuleContext(i); + } + public FileContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_file; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterFile(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitFile(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + 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 { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 21; + ErrorHandler.Sync(this); + _alt = 1+1; + do { + switch (_alt) { + case 1+1: + { + { + State = 20; paragraph(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 23; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,0,Context); + } while ( _alt!=1 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 25; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ParagraphContext : ParserRuleContext { + public TemplateDefinitionContext templateDefinition() { + return GetRuleContext(0); + } + public ImportDefinitionContext importDefinition() { + return GetRuleContext(0); + } + public OptionDefinitionContext optionDefinition() { + return GetRuleContext(0); + } + public ErrorDefinitionContext errorDefinition() { + return GetRuleContext(0); + } + public CommentDefinitionContext commentDefinition() { + return GetRuleContext(0); + } + public ITerminalNode NEWLINE() { return GetToken(LGFileParser.NEWLINE, 0); } + public ITerminalNode Eof() { return GetToken(LGFileParser.Eof, 0); } + public ParagraphContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_paragraph; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterParagraph(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitParagraph(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitParagraph(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ParagraphContext paragraph() { + ParagraphContext _localctx = new ParagraphContext(Context, State); + EnterRule(_localctx, 2, RULE_paragraph); + try { + State = 34; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case TEMPLATE_NAME_LINE: + EnterOuterAlt(_localctx, 1); + { + State = 27; templateDefinition(); + } + break; + case IMPORT: + EnterOuterAlt(_localctx, 2); + { + State = 28; importDefinition(); + } + break; + case OPTION: + EnterOuterAlt(_localctx, 3); + { + State = 29; optionDefinition(); + } + break; + case INVALID_LINE: + EnterOuterAlt(_localctx, 4); + { + State = 30; errorDefinition(); + } + break; + case COMMENT: + EnterOuterAlt(_localctx, 5); + { + State = 31; commentDefinition(); + } + break; + case NEWLINE: + EnterOuterAlt(_localctx, 6); + { + State = 32; Match(NEWLINE); + } + break; + case Eof: + EnterOuterAlt(_localctx, 7); + { + State = 33; Match(Eof); + } + 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 CommentDefinitionContext : ParserRuleContext { + public ITerminalNode COMMENT() { return GetToken(LGFileParser.COMMENT, 0); } + public ITerminalNode NEWLINE() { return GetToken(LGFileParser.NEWLINE, 0); } + public CommentDefinitionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_commentDefinition; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterCommentDefinition(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitCommentDefinition(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitCommentDefinition(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CommentDefinitionContext commentDefinition() { + CommentDefinitionContext _localctx = new CommentDefinitionContext(Context, State); + EnterRule(_localctx, 4, RULE_commentDefinition); + try { + EnterOuterAlt(_localctx, 1); + { + State = 36; Match(COMMENT); + State = 38; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,2,Context) ) { + case 1: + { + State = 37; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ImportDefinitionContext : ParserRuleContext { + public ITerminalNode IMPORT() { return GetToken(LGFileParser.IMPORT, 0); } + public ITerminalNode NEWLINE() { return GetToken(LGFileParser.NEWLINE, 0); } + public ImportDefinitionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_importDefinition; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterImportDefinition(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitImportDefinition(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitImportDefinition(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ImportDefinitionContext importDefinition() { + ImportDefinitionContext _localctx = new ImportDefinitionContext(Context, State); + EnterRule(_localctx, 6, RULE_importDefinition); + try { + EnterOuterAlt(_localctx, 1); + { + State = 40; Match(IMPORT); + State = 42; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,3,Context) ) { + case 1: + { + State = 41; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OptionDefinitionContext : ParserRuleContext { + public ITerminalNode OPTION() { return GetToken(LGFileParser.OPTION, 0); } + public ITerminalNode NEWLINE() { return GetToken(LGFileParser.NEWLINE, 0); } + public OptionDefinitionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_optionDefinition; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterOptionDefinition(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitOptionDefinition(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitOptionDefinition(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public OptionDefinitionContext optionDefinition() { + OptionDefinitionContext _localctx = new OptionDefinitionContext(Context, State); + EnterRule(_localctx, 8, RULE_optionDefinition); + try { + EnterOuterAlt(_localctx, 1); + { + State = 44; Match(OPTION); + State = 46; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,4,Context) ) { + case 1: + { + State = 45; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ErrorDefinitionContext : ParserRuleContext { + public ITerminalNode INVALID_LINE() { return GetToken(LGFileParser.INVALID_LINE, 0); } + public ITerminalNode NEWLINE() { return GetToken(LGFileParser.NEWLINE, 0); } + public ErrorDefinitionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_errorDefinition; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterErrorDefinition(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitErrorDefinition(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitErrorDefinition(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ErrorDefinitionContext errorDefinition() { + ErrorDefinitionContext _localctx = new ErrorDefinitionContext(Context, State); + EnterRule(_localctx, 10, RULE_errorDefinition); + try { + EnterOuterAlt(_localctx, 1); + { + State = 48; Match(INVALID_LINE); + State = 50; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,5,Context) ) { + case 1: + { + State = 49; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TemplateDefinitionContext : ParserRuleContext { + public TemplateNameLineContext templateNameLine() { + return GetRuleContext(0); + } + public TemplateBodyContext templateBody() { + return GetRuleContext(0); + } + public TemplateDefinitionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_templateDefinition; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterTemplateDefinition(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitTemplateDefinition(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitTemplateDefinition(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TemplateDefinitionContext templateDefinition() { + TemplateDefinitionContext _localctx = new TemplateDefinitionContext(Context, State); + EnterRule(_localctx, 12, RULE_templateDefinition); + try { + EnterOuterAlt(_localctx, 1); + { + State = 52; templateNameLine(); + State = 53; templateBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TemplateNameLineContext : ParserRuleContext { + public ITerminalNode TEMPLATE_NAME_LINE() { return GetToken(LGFileParser.TEMPLATE_NAME_LINE, 0); } + public ITerminalNode NEWLINE() { return GetToken(LGFileParser.NEWLINE, 0); } + public TemplateNameLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_templateNameLine; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterTemplateNameLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitTemplateNameLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitTemplateNameLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TemplateNameLineContext templateNameLine() { + TemplateNameLineContext _localctx = new TemplateNameLineContext(Context, State); + EnterRule(_localctx, 14, RULE_templateNameLine); + try { + EnterOuterAlt(_localctx, 1); + { + State = 55; Match(TEMPLATE_NAME_LINE); + State = 57; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,6,Context) ) { + case 1: + { + State = 56; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TemplateBodyContext : ParserRuleContext { + public TemplateBodyLineContext[] templateBodyLine() { + return GetRuleContexts(); + } + public TemplateBodyLineContext templateBodyLine(int i) { + return GetRuleContext(i); + } + public TemplateBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_templateBody; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterTemplateBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitTemplateBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitTemplateBody(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TemplateBodyContext templateBody() { + TemplateBodyContext _localctx = new TemplateBodyContext(Context, State); + EnterRule(_localctx, 16, RULE_templateBody); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 62; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,7,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 59; templateBodyLine(); + } + } + } + State = 64; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,7,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TemplateBodyLineContext : ParserRuleContext { + public ITerminalNode TEMPLATE_BODY() { return GetToken(LGFileParser.TEMPLATE_BODY, 0); } + public ITerminalNode INLINE_MULTILINE() { return GetToken(LGFileParser.INLINE_MULTILINE, 0); } + public ITerminalNode NEWLINE() { return GetToken(LGFileParser.NEWLINE, 0); } + public ITerminalNode MULTILINE_PREFIX() { return GetToken(LGFileParser.MULTILINE_PREFIX, 0); } + public ITerminalNode MULTILINE_SUFFIX() { return GetToken(LGFileParser.MULTILINE_SUFFIX, 0); } + public ITerminalNode[] MULTILINE_TEXT() { return GetTokens(LGFileParser.MULTILINE_TEXT); } + public ITerminalNode MULTILINE_TEXT(int i) { + return GetToken(LGFileParser.MULTILINE_TEXT, i); + } + public ITerminalNode[] ESCAPE_CHARACTER() { return GetTokens(LGFileParser.ESCAPE_CHARACTER); } + public ITerminalNode ESCAPE_CHARACTER(int i) { + return GetToken(LGFileParser.ESCAPE_CHARACTER, i); + } + public TemplateBodyLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_templateBodyLine; } } + public override void EnterRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.EnterTemplateBodyLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGFileParserListener typedListener = listener as ILGFileParserListener; + if (typedListener != null) typedListener.ExitTemplateBodyLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGFileParserVisitor typedVisitor = visitor as ILGFileParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitTemplateBodyLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TemplateBodyLineContext templateBodyLine() { + TemplateBodyLineContext _localctx = new TemplateBodyLineContext(Context, State); + EnterRule(_localctx, 18, RULE_templateBodyLine); + int _la; + try { + State = 82; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case INLINE_MULTILINE: + case MULTILINE_PREFIX: + case TEMPLATE_BODY: + EnterOuterAlt(_localctx, 1); + { + { + State = 76; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case TEMPLATE_BODY: + { + State = 65; Match(TEMPLATE_BODY); + } + break; + case INLINE_MULTILINE: + { + State = 66; Match(INLINE_MULTILINE); + } + break; + case MULTILINE_PREFIX: + { + { + State = 67; Match(MULTILINE_PREFIX); + State = 69; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 68; + _la = TokenStream.LA(1); + if ( !(_la==ESCAPE_CHARACTER || _la==MULTILINE_TEXT) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 71; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==ESCAPE_CHARACTER || _la==MULTILINE_TEXT ); + State = 74; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==MULTILINE_SUFFIX) { + { + State = 73; Match(MULTILINE_SUFFIX); + } + } + + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 79; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,11,Context) ) { + case 1: + { + State = 78; Match(NEWLINE); + } + break; + } + } + } + break; + case NEWLINE: + EnterOuterAlt(_localctx, 2); + { + State = 81; Match(NEWLINE); + } + break; + default: + throw new NoViableAltException(this); + } + } + 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', '\xE', 'W', '\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', + '\x3', '\x2', '\x6', '\x2', '\x18', '\n', '\x2', '\r', '\x2', '\xE', '\x2', + '\x19', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x5', + '\x3', '%', '\n', '\x3', '\x3', '\x4', '\x3', '\x4', '\x5', '\x4', ')', + '\n', '\x4', '\x3', '\x5', '\x3', '\x5', '\x5', '\x5', '-', '\n', '\x5', + '\x3', '\x6', '\x3', '\x6', '\x5', '\x6', '\x31', '\n', '\x6', '\x3', + '\a', '\x3', '\a', '\x5', '\a', '\x35', '\n', '\a', '\x3', '\b', '\x3', + '\b', '\x3', '\b', '\x3', '\t', '\x3', '\t', '\x5', '\t', '<', '\n', '\t', + '\x3', '\n', '\a', '\n', '?', '\n', '\n', '\f', '\n', '\xE', '\n', '\x42', + '\v', '\n', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x6', + '\v', 'H', '\n', '\v', '\r', '\v', '\xE', '\v', 'I', '\x3', '\v', '\x5', + '\v', 'M', '\n', '\v', '\x5', '\v', 'O', '\n', '\v', '\x3', '\v', '\x5', + '\v', 'R', '\n', '\v', '\x3', '\v', '\x5', '\v', 'U', '\n', '\v', '\x3', + '\v', '\x3', '\x19', '\x2', '\f', '\x2', '\x4', '\x6', '\b', '\n', '\f', + '\xE', '\x10', '\x12', '\x14', '\x2', '\x3', '\x3', '\x2', '\r', '\xE', + '\x2', '_', '\x2', '\x17', '\x3', '\x2', '\x2', '\x2', '\x4', '$', '\x3', + '\x2', '\x2', '\x2', '\x6', '&', '\x3', '\x2', '\x2', '\x2', '\b', '*', + '\x3', '\x2', '\x2', '\x2', '\n', '.', '\x3', '\x2', '\x2', '\x2', '\f', + '\x32', '\x3', '\x2', '\x2', '\x2', '\xE', '\x36', '\x3', '\x2', '\x2', + '\x2', '\x10', '\x39', '\x3', '\x2', '\x2', '\x2', '\x12', '@', '\x3', + '\x2', '\x2', '\x2', '\x14', 'T', '\x3', '\x2', '\x2', '\x2', '\x16', + '\x18', '\x5', '\x4', '\x3', '\x2', '\x17', '\x16', '\x3', '\x2', '\x2', + '\x2', '\x18', '\x19', '\x3', '\x2', '\x2', '\x2', '\x19', '\x1A', '\x3', + '\x2', '\x2', '\x2', '\x19', '\x17', '\x3', '\x2', '\x2', '\x2', '\x1A', + '\x1B', '\x3', '\x2', '\x2', '\x2', '\x1B', '\x1C', '\a', '\x2', '\x2', + '\x3', '\x1C', '\x3', '\x3', '\x2', '\x2', '\x2', '\x1D', '%', '\x5', + '\xE', '\b', '\x2', '\x1E', '%', '\x5', '\b', '\x5', '\x2', '\x1F', '%', + '\x5', '\n', '\x6', '\x2', ' ', '%', '\x5', '\f', '\a', '\x2', '!', '%', + '\x5', '\x6', '\x4', '\x2', '\"', '%', '\a', '\x3', '\x2', '\x2', '#', + '%', '\a', '\x2', '\x2', '\x3', '$', '\x1D', '\x3', '\x2', '\x2', '\x2', + '$', '\x1E', '\x3', '\x2', '\x2', '\x2', '$', '\x1F', '\x3', '\x2', '\x2', + '\x2', '$', ' ', '\x3', '\x2', '\x2', '\x2', '$', '!', '\x3', '\x2', '\x2', + '\x2', '$', '\"', '\x3', '\x2', '\x2', '\x2', '$', '#', '\x3', '\x2', + '\x2', '\x2', '%', '\x5', '\x3', '\x2', '\x2', '\x2', '&', '(', '\a', + '\x5', '\x2', '\x2', '\'', ')', '\a', '\x3', '\x2', '\x2', '(', '\'', + '\x3', '\x2', '\x2', '\x2', '(', ')', '\x3', '\x2', '\x2', '\x2', ')', + '\a', '\x3', '\x2', '\x2', '\x2', '*', ',', '\a', '\x6', '\x2', '\x2', + '+', '-', '\a', '\x3', '\x2', '\x2', ',', '+', '\x3', '\x2', '\x2', '\x2', + ',', '-', '\x3', '\x2', '\x2', '\x2', '-', '\t', '\x3', '\x2', '\x2', + '\x2', '.', '\x30', '\a', '\x4', '\x2', '\x2', '/', '\x31', '\a', '\x3', + '\x2', '\x2', '\x30', '/', '\x3', '\x2', '\x2', '\x2', '\x30', '\x31', + '\x3', '\x2', '\x2', '\x2', '\x31', '\v', '\x3', '\x2', '\x2', '\x2', + '\x32', '\x34', '\a', '\v', '\x2', '\x2', '\x33', '\x35', '\a', '\x3', + '\x2', '\x2', '\x34', '\x33', '\x3', '\x2', '\x2', '\x2', '\x34', '\x35', + '\x3', '\x2', '\x2', '\x2', '\x35', '\r', '\x3', '\x2', '\x2', '\x2', + '\x36', '\x37', '\x5', '\x10', '\t', '\x2', '\x37', '\x38', '\x5', '\x12', + '\n', '\x2', '\x38', '\xF', '\x3', '\x2', '\x2', '\x2', '\x39', ';', '\a', + '\a', '\x2', '\x2', ':', '<', '\a', '\x3', '\x2', '\x2', ';', ':', '\x3', + '\x2', '\x2', '\x2', ';', '<', '\x3', '\x2', '\x2', '\x2', '<', '\x11', + '\x3', '\x2', '\x2', '\x2', '=', '?', '\x5', '\x14', '\v', '\x2', '>', + '=', '\x3', '\x2', '\x2', '\x2', '?', '\x42', '\x3', '\x2', '\x2', '\x2', + '@', '>', '\x3', '\x2', '\x2', '\x2', '@', '\x41', '\x3', '\x2', '\x2', + '\x2', '\x41', '\x13', '\x3', '\x2', '\x2', '\x2', '\x42', '@', '\x3', + '\x2', '\x2', '\x2', '\x43', 'O', '\a', '\n', '\x2', '\x2', '\x44', 'O', + '\a', '\b', '\x2', '\x2', '\x45', 'G', '\a', '\t', '\x2', '\x2', '\x46', + 'H', '\t', '\x2', '\x2', '\x2', 'G', '\x46', '\x3', '\x2', '\x2', '\x2', + 'H', 'I', '\x3', '\x2', '\x2', '\x2', 'I', 'G', '\x3', '\x2', '\x2', '\x2', + 'I', 'J', '\x3', '\x2', '\x2', '\x2', 'J', 'L', '\x3', '\x2', '\x2', '\x2', + 'K', 'M', '\a', '\f', '\x2', '\x2', 'L', 'K', '\x3', '\x2', '\x2', '\x2', + 'L', 'M', '\x3', '\x2', '\x2', '\x2', 'M', 'O', '\x3', '\x2', '\x2', '\x2', + 'N', '\x43', '\x3', '\x2', '\x2', '\x2', 'N', '\x44', '\x3', '\x2', '\x2', + '\x2', 'N', '\x45', '\x3', '\x2', '\x2', '\x2', 'O', 'Q', '\x3', '\x2', + '\x2', '\x2', 'P', 'R', '\a', '\x3', '\x2', '\x2', 'Q', 'P', '\x3', '\x2', + '\x2', '\x2', 'Q', 'R', '\x3', '\x2', '\x2', '\x2', 'R', 'U', '\x3', '\x2', + '\x2', '\x2', 'S', 'U', '\a', '\x3', '\x2', '\x2', 'T', 'N', '\x3', '\x2', + '\x2', '\x2', 'T', 'S', '\x3', '\x2', '\x2', '\x2', 'U', '\x15', '\x3', + '\x2', '\x2', '\x2', '\xF', '\x19', '$', '(', ',', '\x30', '\x34', ';', + '@', 'I', 'L', 'N', 'Q', 'T', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserBaseListener.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserBaseListener.cs new file mode 100644 index 0000000000..683c0ffe2c --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserBaseListener.cs @@ -0,0 +1,171 @@ +//------------------------------------------------------------------------------ +// +// 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 LGFileParser.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 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 LGFileParserBaseListener : ILGFileParserListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFile([NotNull] LGFileParser.FileContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFile([NotNull] LGFileParser.FileContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterParagraph([NotNull] LGFileParser.ParagraphContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitParagraph([NotNull] LGFileParser.ParagraphContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCommentDefinition([NotNull] LGFileParser.CommentDefinitionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCommentDefinition([NotNull] LGFileParser.CommentDefinitionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterImportDefinition([NotNull] LGFileParser.ImportDefinitionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitImportDefinition([NotNull] LGFileParser.ImportDefinitionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionDefinition([NotNull] LGFileParser.OptionDefinitionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionDefinition([NotNull] LGFileParser.OptionDefinitionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterErrorDefinition([NotNull] LGFileParser.ErrorDefinitionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitErrorDefinition([NotNull] LGFileParser.ErrorDefinitionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTemplateDefinition([NotNull] LGFileParser.TemplateDefinitionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTemplateDefinition([NotNull] LGFileParser.TemplateDefinitionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTemplateNameLine([NotNull] LGFileParser.TemplateNameLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTemplateNameLine([NotNull] LGFileParser.TemplateNameLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTemplateBody([NotNull] LGFileParser.TemplateBodyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTemplateBody([NotNull] LGFileParser.TemplateBodyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTemplateBodyLine([NotNull] LGFileParser.TemplateBodyLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTemplateBodyLine([NotNull] LGFileParser.TemplateBodyLineContext 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/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserBaseVisitor.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserBaseVisitor.cs new file mode 100644 index 0000000000..331b86d21b --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserBaseVisitor.cs @@ -0,0 +1,137 @@ +//------------------------------------------------------------------------------ +// +// 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 LGFileParser.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 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 LGFileParserBaseVisitor : AbstractParseTreeVisitor, ILGFileParserVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFile([NotNull] LGFileParser.FileContext 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 VisitParagraph([NotNull] LGFileParser.ParagraphContext 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 VisitCommentDefinition([NotNull] LGFileParser.CommentDefinitionContext 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 VisitImportDefinition([NotNull] LGFileParser.ImportDefinitionContext 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 VisitOptionDefinition([NotNull] LGFileParser.OptionDefinitionContext 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 VisitErrorDefinition([NotNull] LGFileParser.ErrorDefinitionContext 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 VisitTemplateDefinition([NotNull] LGFileParser.TemplateDefinitionContext 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 VisitTemplateNameLine([NotNull] LGFileParser.TemplateNameLineContext 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 VisitTemplateBody([NotNull] LGFileParser.TemplateBodyContext 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 VisitTemplateBodyLine([NotNull] LGFileParser.TemplateBodyLineContext context) { return VisitChildren(context); } +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserListener.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserListener.cs new file mode 100644 index 0000000000..356bd6a5ff --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserListener.cs @@ -0,0 +1,134 @@ +//------------------------------------------------------------------------------ +// +// 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 LGFileParser.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 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 ILGFileParserListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFile([NotNull] LGFileParser.FileContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFile([NotNull] LGFileParser.FileContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterParagraph([NotNull] LGFileParser.ParagraphContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitParagraph([NotNull] LGFileParser.ParagraphContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCommentDefinition([NotNull] LGFileParser.CommentDefinitionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCommentDefinition([NotNull] LGFileParser.CommentDefinitionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterImportDefinition([NotNull] LGFileParser.ImportDefinitionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitImportDefinition([NotNull] LGFileParser.ImportDefinitionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOptionDefinition([NotNull] LGFileParser.OptionDefinitionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOptionDefinition([NotNull] LGFileParser.OptionDefinitionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterErrorDefinition([NotNull] LGFileParser.ErrorDefinitionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitErrorDefinition([NotNull] LGFileParser.ErrorDefinitionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTemplateDefinition([NotNull] LGFileParser.TemplateDefinitionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTemplateDefinition([NotNull] LGFileParser.TemplateDefinitionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTemplateNameLine([NotNull] LGFileParser.TemplateNameLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTemplateNameLine([NotNull] LGFileParser.TemplateNameLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTemplateBody([NotNull] LGFileParser.TemplateBodyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTemplateBody([NotNull] LGFileParser.TemplateBodyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTemplateBodyLine([NotNull] LGFileParser.TemplateBodyLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTemplateBodyLine([NotNull] LGFileParser.TemplateBodyLineContext context); +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserVisitor.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserVisitor.cs new file mode 100644 index 0000000000..9566dbdca4 --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGFileParserVisitor.cs @@ -0,0 +1,95 @@ +//------------------------------------------------------------------------------ +// +// 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 LGFileParser.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 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 ILGFileParserVisitor : IParseTreeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitFile([NotNull] LGFileParser.FileContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitParagraph([NotNull] LGFileParser.ParagraphContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCommentDefinition([NotNull] LGFileParser.CommentDefinitionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitImportDefinition([NotNull] LGFileParser.ImportDefinitionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitOptionDefinition([NotNull] LGFileParser.OptionDefinitionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitErrorDefinition([NotNull] LGFileParser.ErrorDefinitionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTemplateDefinition([NotNull] LGFileParser.TemplateDefinitionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTemplateNameLine([NotNull] LGFileParser.TemplateNameLineContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTemplateBody([NotNull] LGFileParser.TemplateBodyContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTemplateBodyLine([NotNull] LGFileParser.TemplateBodyLineContext context); +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateLexer.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateLexer.cs new file mode 100644 index 0000000000..ec6a8271b1 --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateLexer.cs @@ -0,0 +1,880 @@ +//------------------------------------------------------------------------------ +// +// 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 LGTemplateLexer.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 LGTemplateLexer : Lexer { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + WS=1, NEWLINE=2, COMMENTS=3, DASH=4, LEFT_SQUARE_BRACKET=5, INVALID_TOKEN=6, + WS_IN_BODY=7, MULTILINE_PREFIX=8, NEWLINE_IN_BODY=9, IF=10, ELSEIF=11, + ELSE=12, SWITCH=13, CASE=14, DEFAULT=15, ESCAPE_CHARACTER=16, EXPRESSION=17, + TEXT=18, MULTILINE_SUFFIX=19, WS_IN_STRUCTURE_NAME=20, NEWLINE_IN_STRUCTURE_NAME=21, + STRUCTURE_NAME=22, TEXT_IN_STRUCTURE_NAME=23, STRUCTURED_COMMENTS=24, + WS_IN_STRUCTURE_BODY=25, STRUCTURED_NEWLINE=26, STRUCTURED_BODY_END=27, + STRUCTURE_IDENTIFIER=28, STRUCTURE_EQUALS=29, STRUCTURE_OR_MARK=30, ESCAPE_CHARACTER_IN_STRUCTURE_BODY=31, + EXPRESSION_IN_STRUCTURE_BODY=32, TEXT_IN_STRUCTURE_BODY=33; + public const int + NORMAL_TEMPLATE_BODY_MODE=1, MULTILINE_MODE=2, STRUCTURE_NAME_MODE=3, + STRUCTURE_BODY_MODE=4; + public static string[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static string[] modeNames = { + "DEFAULT_MODE", "NORMAL_TEMPLATE_BODY_MODE", "MULTILINE_MODE", "STRUCTURE_NAME_MODE", + "STRUCTURE_BODY_MODE" + }; + + public static readonly string[] ruleNames = { + "A", "C", "D", "E", "F", "H", "I", "L", "S", "T", "U", "W", "LETTER", + "NUMBER", "WHITESPACE", "STRING_LITERAL", "STRING_INTERPOLATION", "ESCAPE_CHARACTER_FRAGMENT", + "IDENTIFIER", "OBJECT_DEFINITION", "EXPRESSION_FRAGMENT", "WS", "NEWLINE", + "COMMENTS", "DASH", "LEFT_SQUARE_BRACKET", "INVALID_TOKEN", "WS_IN_BODY", + "MULTILINE_PREFIX", "NEWLINE_IN_BODY", "IF", "ELSEIF", "ELSE", "SWITCH", + "CASE", "DEFAULT", "ESCAPE_CHARACTER", "EXPRESSION", "TEXT", "MULTILINE_SUFFIX", + "MULTILINE_ESCAPE_CHARACTER", "MULTILINE_EXPRESSION", "MULTILINE_TEXT", + "WS_IN_STRUCTURE_NAME", "NEWLINE_IN_STRUCTURE_NAME", "STRUCTURE_NAME", + "TEXT_IN_STRUCTURE_NAME", "STRUCTURED_COMMENTS", "WS_IN_STRUCTURE_BODY", + "STRUCTURED_NEWLINE", "STRUCTURED_BODY_END", "STRUCTURE_IDENTIFIER", "STRUCTURE_EQUALS", + "STRUCTURE_OR_MARK", "ESCAPE_CHARACTER_IN_STRUCTURE_BODY", "EXPRESSION_IN_STRUCTURE_BODY", + "TEXT_IN_STRUCTURE_BODY" + }; + + + bool ignoreWS = true; // usually we ignore whitespace, but inside template, whitespace is significant + bool beginOfTemplateBody = true; // whether we are at the begining of template body + bool inMultiline = false; // whether we are in multiline + bool beginOfTemplateLine = false;// weather we are at the begining of template string + bool inStructuredValue = false; // weather we are in the structure value + bool beginOfStructureProperty = false; // weather we are at the begining of structure property + + + public LGTemplateLexer(ICharStream input) + : this(input, Console.Out, Console.Error) { } + + public LGTemplateLexer(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, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "'|'" + }; + private static readonly string[] _SymbolicNames = { + null, "WS", "NEWLINE", "COMMENTS", "DASH", "LEFT_SQUARE_BRACKET", "INVALID_TOKEN", + "WS_IN_BODY", "MULTILINE_PREFIX", "NEWLINE_IN_BODY", "IF", "ELSEIF", "ELSE", + "SWITCH", "CASE", "DEFAULT", "ESCAPE_CHARACTER", "EXPRESSION", "TEXT", + "MULTILINE_SUFFIX", "WS_IN_STRUCTURE_NAME", "NEWLINE_IN_STRUCTURE_NAME", + "STRUCTURE_NAME", "TEXT_IN_STRUCTURE_NAME", "STRUCTURED_COMMENTS", "WS_IN_STRUCTURE_BODY", + "STRUCTURED_NEWLINE", "STRUCTURED_BODY_END", "STRUCTURE_IDENTIFIER", "STRUCTURE_EQUALS", + "STRUCTURE_OR_MARK", "ESCAPE_CHARACTER_IN_STRUCTURE_BODY", "EXPRESSION_IN_STRUCTURE_BODY", + "TEXT_IN_STRUCTURE_BODY" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "LGTemplateLexer.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 LGTemplateLexer() { + 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 24 : DASH_action(_localctx, actionIndex); break; + case 25 : LEFT_SQUARE_BRACKET_action(_localctx, actionIndex); break; + case 26 : INVALID_TOKEN_action(_localctx, actionIndex); break; + case 28 : MULTILINE_PREFIX_action(_localctx, actionIndex); break; + case 29 : NEWLINE_IN_BODY_action(_localctx, actionIndex); break; + case 30 : IF_action(_localctx, actionIndex); break; + case 31 : ELSEIF_action(_localctx, actionIndex); break; + case 32 : ELSE_action(_localctx, actionIndex); break; + case 33 : SWITCH_action(_localctx, actionIndex); break; + case 34 : CASE_action(_localctx, actionIndex); break; + case 35 : DEFAULT_action(_localctx, actionIndex); break; + case 36 : ESCAPE_CHARACTER_action(_localctx, actionIndex); break; + case 37 : EXPRESSION_action(_localctx, actionIndex); break; + case 38 : TEXT_action(_localctx, actionIndex); break; + case 39 : MULTILINE_SUFFIX_action(_localctx, actionIndex); break; + case 44 : NEWLINE_IN_STRUCTURE_NAME_action(_localctx, actionIndex); break; + case 49 : STRUCTURED_NEWLINE_action(_localctx, actionIndex); break; + case 51 : STRUCTURE_IDENTIFIER_action(_localctx, actionIndex); break; + case 52 : STRUCTURE_EQUALS_action(_localctx, actionIndex); break; + case 53 : STRUCTURE_OR_MARK_action(_localctx, actionIndex); break; + case 54 : ESCAPE_CHARACTER_IN_STRUCTURE_BODY_action(_localctx, actionIndex); break; + case 55 : EXPRESSION_IN_STRUCTURE_BODY_action(_localctx, actionIndex); break; + case 56 : TEXT_IN_STRUCTURE_BODY_action(_localctx, actionIndex); break; + } + } + private void DASH_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 0: beginOfTemplateLine = true; beginOfTemplateBody = false; break; + } + } + private void LEFT_SQUARE_BRACKET_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 1: beginOfTemplateBody = false; break; + } + } + private void INVALID_TOKEN_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 2: beginOfTemplateBody = false; break; + } + } + private void MULTILINE_PREFIX_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 3: inMultiline = true; beginOfTemplateLine = false; break; + } + } + private void NEWLINE_IN_BODY_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 4: ignoreWS = true; break; + } + } + private void IF_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 5: ignoreWS = true; beginOfTemplateLine = false; break; + } + } + private void ELSEIF_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 6: ignoreWS = true; beginOfTemplateLine = false; break; + } + } + private void ELSE_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 7: ignoreWS = true; beginOfTemplateLine = false; break; + } + } + private void SWITCH_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 8: ignoreWS = true; beginOfTemplateLine = false; break; + } + } + private void CASE_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 9: ignoreWS = true; beginOfTemplateLine = false; break; + } + } + private void DEFAULT_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 10: ignoreWS = true; beginOfTemplateLine = false; break; + } + } + private void ESCAPE_CHARACTER_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 11: ignoreWS = false; beginOfTemplateLine = false; break; + } + } + private void EXPRESSION_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 12: ignoreWS = false; beginOfTemplateLine = false; break; + } + } + private void TEXT_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 13: ignoreWS = false; beginOfTemplateLine = false; break; + } + } + private void MULTILINE_SUFFIX_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 14: inMultiline = false; break; + } + } + private void NEWLINE_IN_STRUCTURE_NAME_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 15: ignoreWS = true; break; + case 16: beginOfStructureProperty = true; break; + } + } + private void STRUCTURED_NEWLINE_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 17: ignoreWS = true; inStructuredValue = false; beginOfStructureProperty = true; break; + } + } + private void STRUCTURE_IDENTIFIER_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 18: beginOfStructureProperty = false; break; + } + } + private void STRUCTURE_EQUALS_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 19: inStructuredValue = true; break; + } + } + private void STRUCTURE_OR_MARK_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 20: ignoreWS = true; break; + } + } + private void ESCAPE_CHARACTER_IN_STRUCTURE_BODY_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 21: ignoreWS = false; break; + } + } + private void EXPRESSION_IN_STRUCTURE_BODY_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 22: ignoreWS = false; break; + } + } + private void TEXT_IN_STRUCTURE_BODY_action(RuleContext _localctx, int actionIndex) { + switch (actionIndex) { + case 23: ignoreWS = false; beginOfStructureProperty = false; break; + } + } + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 25 : return LEFT_SQUARE_BRACKET_sempred(_localctx, predIndex); + case 27 : return WS_IN_BODY_sempred(_localctx, predIndex); + case 28 : return MULTILINE_PREFIX_sempred(_localctx, predIndex); + case 30 : return IF_sempred(_localctx, predIndex); + case 31 : return ELSEIF_sempred(_localctx, predIndex); + case 32 : return ELSE_sempred(_localctx, predIndex); + case 33 : return SWITCH_sempred(_localctx, predIndex); + case 34 : return CASE_sempred(_localctx, predIndex); + case 35 : return DEFAULT_sempred(_localctx, predIndex); + case 47 : return STRUCTURED_COMMENTS_sempred(_localctx, predIndex); + case 48 : return WS_IN_STRUCTURE_BODY_sempred(_localctx, predIndex); + case 50 : return STRUCTURED_BODY_END_sempred(_localctx, predIndex); + case 51 : return STRUCTURE_IDENTIFIER_sempred(_localctx, predIndex); + case 52 : return STRUCTURE_EQUALS_sempred(_localctx, predIndex); + } + return true; + } + private bool LEFT_SQUARE_BRACKET_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 0: return beginOfTemplateBody ; + } + return true; + } + private bool WS_IN_BODY_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 1: return ignoreWS; + } + return true; + } + private bool MULTILINE_PREFIX_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 2: return !inMultiline && beginOfTemplateLine ; + } + return true; + } + private bool IF_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 3: return beginOfTemplateLine; + } + return true; + } + private bool ELSEIF_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 4: return beginOfTemplateLine; + } + return true; + } + private bool ELSE_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 5: return beginOfTemplateLine; + } + return true; + } + private bool SWITCH_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 6: return beginOfTemplateLine; + } + return true; + } + private bool CASE_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 7: return beginOfTemplateLine; + } + return true; + } + private bool DEFAULT_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 8: return beginOfTemplateLine; + } + return true; + } + private bool STRUCTURED_COMMENTS_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 9: return !inStructuredValue && beginOfStructureProperty; + } + return true; + } + private bool WS_IN_STRUCTURE_BODY_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 10: return ignoreWS; + } + return true; + } + private bool STRUCTURED_BODY_END_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 11: return !inStructuredValue; + } + return true; + } + private bool STRUCTURE_IDENTIFIER_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 12: return !inStructuredValue && beginOfStructureProperty; + } + return true; + } + private bool STRUCTURE_EQUALS_sempred(RuleContext _localctx, int predIndex) { + switch (predIndex) { + case 13: return !inStructuredValue; + } + return true; + } + + private static char[] _serializedATN = { + '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', + '\x5964', '\x2', '#', '\x21D', '\b', '\x1', '\b', '\x1', '\b', '\x1', + '\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', '+', '\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', ':', '\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x4', '\x3', '\x4', '\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', '\xE', '\x3', + '\xE', '\x3', '\xF', '\x3', '\xF', '\x3', '\x10', '\x3', '\x10', '\x3', + '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\a', '\x11', '\x9C', + '\n', '\x11', '\f', '\x11', '\xE', '\x11', '\x9F', '\v', '\x11', '\x3', + '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\a', + '\x11', '\xA6', '\n', '\x11', '\f', '\x11', '\xE', '\x11', '\xA9', '\v', + '\x11', '\x3', '\x11', '\x5', '\x11', '\xAC', '\n', '\x11', '\x3', '\x12', + '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\a', '\x12', '\xB2', '\n', + '\x12', '\f', '\x12', '\xE', '\x12', '\xB5', '\v', '\x12', '\x3', '\x12', + '\x3', '\x12', '\x3', '\x13', '\x3', '\x13', '\x5', '\x13', '\xBB', '\n', + '\x13', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x5', '\x14', '\xC0', + '\n', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\a', '\x14', + '\xC5', '\n', '\x14', '\f', '\x14', '\xE', '\x14', '\xC8', '\v', '\x14', + '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x5', '\x15', + '\xCE', '\n', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', + '\x15', '\x6', '\x15', '\xD4', '\n', '\x15', '\r', '\x15', '\xE', '\x15', + '\xD5', '\a', '\x15', '\xD8', '\n', '\x15', '\f', '\x15', '\xE', '\x15', + '\xDB', '\v', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x16', '\x3', + '\x16', '\x3', '\x16', '\x3', '\x16', '\x3', '\x16', '\x3', '\x16', '\x6', + '\x16', '\xE5', '\n', '\x16', '\r', '\x16', '\xE', '\x16', '\xE6', '\x3', + '\x16', '\x5', '\x16', '\xEA', '\n', '\x16', '\x3', '\x17', '\x6', '\x17', + '\xED', '\n', '\x17', '\r', '\x17', '\xE', '\x17', '\xEE', '\x3', '\x17', + '\x3', '\x17', '\x3', '\x18', '\x5', '\x18', '\xF4', '\n', '\x18', '\x3', + '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', + '\x19', '\a', '\x19', '\xFC', '\n', '\x19', '\f', '\x19', '\xE', '\x19', + '\xFF', '\v', '\x19', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A', '\x3', + '\x1A', '\x3', '\x1A', '\x3', '\x1A', '\x3', '\x1A', '\x3', '\x1B', '\x3', + '\x1B', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1B', '\x3', + '\x1C', '\x3', '\x1C', '\x3', '\x1C', '\x3', '\x1D', '\x6', '\x1D', '\x112', + '\n', '\x1D', '\r', '\x1D', '\xE', '\x1D', '\x113', '\x3', '\x1D', '\x3', + '\x1D', '\x3', '\x1D', '\x3', '\x1D', '\x3', '\x1E', '\x3', '\x1E', '\x3', + '\x1E', '\x3', '\x1E', '\x3', '\x1E', '\x3', '\x1E', '\x3', '\x1E', '\x3', + '\x1E', '\x3', '\x1E', '\x3', '\x1F', '\x5', '\x1F', '\x124', '\n', '\x1F', + '\x3', '\x1F', '\x3', '\x1F', '\x3', '\x1F', '\x3', '\x1F', '\x3', '\x1F', + '\x3', '\x1F', '\x3', ' ', '\x3', ' ', '\x3', ' ', '\a', ' ', '\x12F', + '\n', ' ', '\f', ' ', '\xE', ' ', '\x132', '\v', ' ', '\x3', ' ', '\x3', + ' ', '\x3', ' ', '\x3', ' ', '\x3', '!', '\x3', '!', '\x3', '!', '\x3', + '!', '\x3', '!', '\a', '!', '\x13D', '\n', '!', '\f', '!', '\xE', '!', + '\x140', '\v', '!', '\x3', '!', '\x3', '!', '\x3', '!', '\a', '!', '\x145', + '\n', '!', '\f', '!', '\xE', '!', '\x148', '\v', '!', '\x3', '!', '\x3', + '!', '\x3', '!', '\x3', '!', '\x3', '\"', '\x3', '\"', '\x3', '\"', '\x3', + '\"', '\x3', '\"', '\a', '\"', '\x153', '\n', '\"', '\f', '\"', '\xE', + '\"', '\x156', '\v', '\"', '\x3', '\"', '\x3', '\"', '\x3', '\"', '\x3', + '\"', '\x3', '#', '\x3', '#', '\x3', '#', '\x3', '#', '\x3', '#', '\x3', + '#', '\x3', '#', '\a', '#', '\x163', '\n', '#', '\f', '#', '\xE', '#', + '\x166', '\v', '#', '\x3', '#', '\x3', '#', '\x3', '#', '\x3', '#', '\x3', + '$', '\x3', '$', '\x3', '$', '\x3', '$', '\x3', '$', '\a', '$', '\x171', + '\n', '$', '\f', '$', '\xE', '$', '\x174', '\v', '$', '\x3', '$', '\x3', + '$', '\x3', '$', '\x3', '$', '\x3', '%', '\x3', '%', '\x3', '%', '\x3', + '%', '\x3', '%', '\x3', '%', '\x3', '%', '\x3', '%', '\a', '%', '\x182', + '\n', '%', '\f', '%', '\xE', '%', '\x185', '\v', '%', '\x3', '%', '\x3', + '%', '\x3', '%', '\x3', '%', '\x3', '&', '\x3', '&', '\x3', '&', '\x3', + '\'', '\x3', '\'', '\x3', '\'', '\x3', '(', '\x6', '(', '\x192', '\n', + '(', '\r', '(', '\xE', '(', '\x193', '\x3', '(', '\x3', '(', '\x3', ')', + '\x3', ')', '\x3', ')', '\x3', ')', '\x3', ')', '\x3', ')', '\x3', ')', + '\x3', ')', '\x3', '*', '\x3', '*', '\x3', '*', '\x3', '*', '\x3', '+', + '\x3', '+', '\x3', '+', '\x3', '+', '\x3', ',', '\x5', ',', '\x1A9', '\n', + ',', '\x3', ',', '\x3', ',', '\x6', ',', '\x1AD', '\n', ',', '\r', ',', + '\xE', ',', '\x1AE', '\x3', ',', '\x3', ',', '\x3', '-', '\x6', '-', '\x1B4', + '\n', '-', '\r', '-', '\xE', '-', '\x1B5', '\x3', '-', '\x3', '-', '\x3', + '.', '\x5', '.', '\x1BB', '\n', '.', '\x3', '.', '\x3', '.', '\x3', '.', + '\x3', '.', '\x3', '.', '\x3', '.', '\x3', '.', '\x3', '/', '\x3', '/', + '\x3', '/', '\x5', '/', '\x1C7', '\n', '/', '\x3', '/', '\x3', '/', '\x3', + '/', '\a', '/', '\x1CC', '\n', '/', '\f', '/', '\xE', '/', '\x1CF', '\v', + '/', '\x3', '\x30', '\x6', '\x30', '\x1D2', '\n', '\x30', '\r', '\x30', + '\xE', '\x30', '\x1D3', '\x3', '\x31', '\x3', '\x31', '\a', '\x31', '\x1D8', + '\n', '\x31', '\f', '\x31', '\xE', '\x31', '\x1DB', '\v', '\x31', '\x3', + '\x31', '\x5', '\x31', '\x1DE', '\n', '\x31', '\x3', '\x31', '\x3', '\x31', + '\x3', '\x31', '\x3', '\x31', '\x3', '\x31', '\x3', '\x32', '\x6', '\x32', + '\x1E6', '\n', '\x32', '\r', '\x32', '\xE', '\x32', '\x1E7', '\x3', '\x32', + '\x3', '\x32', '\x3', '\x32', '\x3', '\x32', '\x3', '\x33', '\x5', '\x33', + '\x1EF', '\n', '\x33', '\x3', '\x33', '\x3', '\x33', '\x3', '\x33', '\x3', + '\x34', '\x3', '\x34', '\x3', '\x34', '\x3', '\x34', '\x3', '\x34', '\x3', + '\x34', '\x3', '\x35', '\x3', '\x35', '\x3', '\x35', '\x5', '\x35', '\x1FD', + '\n', '\x35', '\x3', '\x35', '\x3', '\x35', '\x3', '\x35', '\a', '\x35', + '\x202', '\n', '\x35', '\f', '\x35', '\xE', '\x35', '\x205', '\v', '\x35', + '\x3', '\x35', '\x3', '\x35', '\x3', '\x35', '\x3', '\x36', '\x3', '\x36', + '\x3', '\x36', '\x3', '\x36', '\x3', '\x37', '\x3', '\x37', '\x3', '\x37', + '\x3', '\x38', '\x3', '\x38', '\x3', '\x38', '\x3', '\x39', '\x3', '\x39', + '\x3', '\x39', '\x3', ':', '\x6', ':', '\x218', '\n', ':', '\r', ':', + '\xE', ':', '\x219', '\x3', ':', '\x3', ':', '\t', '\x9D', '\xA7', '\xB3', + '\x193', '\x1AE', '\x1D3', '\x219', '\x2', ';', '\a', '\x2', '\t', '\x2', + '\v', '\x2', '\r', '\x2', '\xF', '\x2', '\x11', '\x2', '\x13', '\x2', + '\x15', '\x2', '\x17', '\x2', '\x19', '\x2', '\x1B', '\x2', '\x1D', '\x2', + '\x1F', '\x2', '!', '\x2', '#', '\x2', '%', '\x2', '\'', '\x2', ')', '\x2', + '+', '\x2', '-', '\x2', '/', '\x2', '\x31', '\x3', '\x33', '\x4', '\x35', + '\x5', '\x37', '\x6', '\x39', '\a', ';', '\b', '=', '\t', '?', '\n', '\x41', + '\v', '\x43', '\f', '\x45', '\r', 'G', '\xE', 'I', '\xF', 'K', '\x10', + 'M', '\x11', 'O', '\x12', 'Q', '\x13', 'S', '\x14', 'U', '\x15', 'W', + '\x2', 'Y', '\x2', '[', '\x2', ']', '\x16', '_', '\x17', '\x61', '\x18', + '\x63', '\x19', '\x65', '\x1A', 'g', '\x1B', 'i', '\x1C', 'k', '\x1D', + 'm', '\x1E', 'o', '\x1F', 'q', ' ', 's', '!', 'u', '\"', 'w', '#', '\a', + '\x2', '\x3', '\x4', '\x5', '\x6', '\x1A', '\x4', '\x2', '\x43', '\x43', + '\x63', '\x63', '\x4', '\x2', '\x45', '\x45', '\x65', '\x65', '\x4', '\x2', + '\x46', '\x46', '\x66', '\x66', '\x4', '\x2', 'G', 'G', 'g', 'g', '\x4', + '\x2', 'H', 'H', 'h', 'h', '\x4', '\x2', 'J', 'J', 'j', 'j', '\x4', '\x2', + 'K', 'K', 'k', 'k', '\x4', '\x2', 'N', 'N', 'n', 'n', '\x4', '\x2', 'U', + 'U', 'u', 'u', '\x4', '\x2', 'V', 'V', 'v', 'v', '\x4', '\x2', 'W', 'W', + 'w', 'w', '\x4', '\x2', 'Y', 'Y', 'y', 'y', '\x4', '\x2', '\x43', '\\', + '\x63', '|', '\x6', '\x2', '\v', '\v', '\"', '\"', '\xA2', '\xA2', '\xFF01', + '\xFF01', '\x4', '\x2', ')', ')', '^', '^', '\x3', '\x2', ')', ')', '\x4', + '\x2', '$', '$', '^', '^', '\x3', '\x2', '$', '$', '\x4', '\x2', '^', + '^', '\x62', '\x62', '\x3', '\x2', '\x62', '\x62', '\x4', '\x2', '\f', + '\f', '\xF', '\xF', '\a', '\x2', '$', '$', ')', ')', '\x62', '\x62', '}', + '}', '\x7F', '\x7F', '\x6', '\x2', '$', '$', ')', ')', '\x62', '\x62', + '\x7F', '\x7F', '\x4', '\x2', '/', '\x30', '\x61', '\x61', '\x2', '\x23D', + '\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', '\x3', '=', '\x3', '\x2', '\x2', + '\x2', '\x3', '?', '\x3', '\x2', '\x2', '\x2', '\x3', '\x41', '\x3', '\x2', + '\x2', '\x2', '\x3', '\x43', '\x3', '\x2', '\x2', '\x2', '\x3', '\x45', + '\x3', '\x2', '\x2', '\x2', '\x3', 'G', '\x3', '\x2', '\x2', '\x2', '\x3', + 'I', '\x3', '\x2', '\x2', '\x2', '\x3', 'K', '\x3', '\x2', '\x2', '\x2', + '\x3', 'M', '\x3', '\x2', '\x2', '\x2', '\x3', 'O', '\x3', '\x2', '\x2', + '\x2', '\x3', 'Q', '\x3', '\x2', '\x2', '\x2', '\x3', 'S', '\x3', '\x2', + '\x2', '\x2', '\x4', 'U', '\x3', '\x2', '\x2', '\x2', '\x4', 'W', '\x3', + '\x2', '\x2', '\x2', '\x4', 'Y', '\x3', '\x2', '\x2', '\x2', '\x4', '[', + '\x3', '\x2', '\x2', '\x2', '\x5', ']', '\x3', '\x2', '\x2', '\x2', '\x5', + '_', '\x3', '\x2', '\x2', '\x2', '\x5', '\x61', '\x3', '\x2', '\x2', '\x2', + '\x5', '\x63', '\x3', '\x2', '\x2', '\x2', '\x6', '\x65', '\x3', '\x2', + '\x2', '\x2', '\x6', 'g', '\x3', '\x2', '\x2', '\x2', '\x6', 'i', '\x3', + '\x2', '\x2', '\x2', '\x6', 'k', '\x3', '\x2', '\x2', '\x2', '\x6', 'm', + '\x3', '\x2', '\x2', '\x2', '\x6', 'o', '\x3', '\x2', '\x2', '\x2', '\x6', + 'q', '\x3', '\x2', '\x2', '\x2', '\x6', 's', '\x3', '\x2', '\x2', '\x2', + '\x6', 'u', '\x3', '\x2', '\x2', '\x2', '\x6', 'w', '\x3', '\x2', '\x2', + '\x2', '\a', 'y', '\x3', '\x2', '\x2', '\x2', '\t', '{', '\x3', '\x2', + '\x2', '\x2', '\v', '}', '\x3', '\x2', '\x2', '\x2', '\r', '\x7F', '\x3', + '\x2', '\x2', '\x2', '\xF', '\x81', '\x3', '\x2', '\x2', '\x2', '\x11', + '\x83', '\x3', '\x2', '\x2', '\x2', '\x13', '\x85', '\x3', '\x2', '\x2', + '\x2', '\x15', '\x87', '\x3', '\x2', '\x2', '\x2', '\x17', '\x89', '\x3', + '\x2', '\x2', '\x2', '\x19', '\x8B', '\x3', '\x2', '\x2', '\x2', '\x1B', + '\x8D', '\x3', '\x2', '\x2', '\x2', '\x1D', '\x8F', '\x3', '\x2', '\x2', + '\x2', '\x1F', '\x91', '\x3', '\x2', '\x2', '\x2', '!', '\x93', '\x3', + '\x2', '\x2', '\x2', '#', '\x95', '\x3', '\x2', '\x2', '\x2', '%', '\xAB', + '\x3', '\x2', '\x2', '\x2', '\'', '\xAD', '\x3', '\x2', '\x2', '\x2', + ')', '\xB8', '\x3', '\x2', '\x2', '\x2', '+', '\xBF', '\x3', '\x2', '\x2', + '\x2', '-', '\xC9', '\x3', '\x2', '\x2', '\x2', '/', '\xDE', '\x3', '\x2', + '\x2', '\x2', '\x31', '\xEC', '\x3', '\x2', '\x2', '\x2', '\x33', '\xF3', + '\x3', '\x2', '\x2', '\x2', '\x35', '\xF9', '\x3', '\x2', '\x2', '\x2', + '\x37', '\x102', '\x3', '\x2', '\x2', '\x2', '\x39', '\x107', '\x3', '\x2', + '\x2', '\x2', ';', '\x10D', '\x3', '\x2', '\x2', '\x2', '=', '\x111', + '\x3', '\x2', '\x2', '\x2', '?', '\x119', '\x3', '\x2', '\x2', '\x2', + '\x41', '\x123', '\x3', '\x2', '\x2', '\x2', '\x43', '\x12B', '\x3', '\x2', + '\x2', '\x2', '\x45', '\x137', '\x3', '\x2', '\x2', '\x2', 'G', '\x14D', + '\x3', '\x2', '\x2', '\x2', 'I', '\x15B', '\x3', '\x2', '\x2', '\x2', + 'K', '\x16B', '\x3', '\x2', '\x2', '\x2', 'M', '\x179', '\x3', '\x2', + '\x2', '\x2', 'O', '\x18A', '\x3', '\x2', '\x2', '\x2', 'Q', '\x18D', + '\x3', '\x2', '\x2', '\x2', 'S', '\x191', '\x3', '\x2', '\x2', '\x2', + 'U', '\x197', '\x3', '\x2', '\x2', '\x2', 'W', '\x19F', '\x3', '\x2', + '\x2', '\x2', 'Y', '\x1A3', '\x3', '\x2', '\x2', '\x2', '[', '\x1AC', + '\x3', '\x2', '\x2', '\x2', ']', '\x1B3', '\x3', '\x2', '\x2', '\x2', + '_', '\x1BA', '\x3', '\x2', '\x2', '\x2', '\x61', '\x1C6', '\x3', '\x2', + '\x2', '\x2', '\x63', '\x1D1', '\x3', '\x2', '\x2', '\x2', '\x65', '\x1D5', + '\x3', '\x2', '\x2', '\x2', 'g', '\x1E5', '\x3', '\x2', '\x2', '\x2', + 'i', '\x1EE', '\x3', '\x2', '\x2', '\x2', 'k', '\x1F3', '\x3', '\x2', + '\x2', '\x2', 'm', '\x1FC', '\x3', '\x2', '\x2', '\x2', 'o', '\x209', + '\x3', '\x2', '\x2', '\x2', 'q', '\x20D', '\x3', '\x2', '\x2', '\x2', + 's', '\x210', '\x3', '\x2', '\x2', '\x2', 'u', '\x213', '\x3', '\x2', + '\x2', '\x2', 'w', '\x217', '\x3', '\x2', '\x2', '\x2', 'y', 'z', '\t', + '\x2', '\x2', '\x2', 'z', '\b', '\x3', '\x2', '\x2', '\x2', '{', '|', + '\t', '\x3', '\x2', '\x2', '|', '\n', '\x3', '\x2', '\x2', '\x2', '}', + '~', '\t', '\x4', '\x2', '\x2', '~', '\f', '\x3', '\x2', '\x2', '\x2', + '\x7F', '\x80', '\t', '\x5', '\x2', '\x2', '\x80', '\xE', '\x3', '\x2', + '\x2', '\x2', '\x81', '\x82', '\t', '\x6', '\x2', '\x2', '\x82', '\x10', + '\x3', '\x2', '\x2', '\x2', '\x83', '\x84', '\t', '\a', '\x2', '\x2', + '\x84', '\x12', '\x3', '\x2', '\x2', '\x2', '\x85', '\x86', '\t', '\b', + '\x2', '\x2', '\x86', '\x14', '\x3', '\x2', '\x2', '\x2', '\x87', '\x88', + '\t', '\t', '\x2', '\x2', '\x88', '\x16', '\x3', '\x2', '\x2', '\x2', + '\x89', '\x8A', '\t', '\n', '\x2', '\x2', '\x8A', '\x18', '\x3', '\x2', + '\x2', '\x2', '\x8B', '\x8C', '\t', '\v', '\x2', '\x2', '\x8C', '\x1A', + '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8E', '\t', '\f', '\x2', '\x2', + '\x8E', '\x1C', '\x3', '\x2', '\x2', '\x2', '\x8F', '\x90', '\t', '\r', + '\x2', '\x2', '\x90', '\x1E', '\x3', '\x2', '\x2', '\x2', '\x91', '\x92', + '\t', '\xE', '\x2', '\x2', '\x92', ' ', '\x3', '\x2', '\x2', '\x2', '\x93', + '\x94', '\x4', '\x32', ';', '\x2', '\x94', '\"', '\x3', '\x2', '\x2', + '\x2', '\x95', '\x96', '\t', '\xF', '\x2', '\x2', '\x96', '$', '\x3', + '\x2', '\x2', '\x2', '\x97', '\x9D', '\a', ')', '\x2', '\x2', '\x98', + '\x99', '\a', '^', '\x2', '\x2', '\x99', '\x9C', '\t', '\x10', '\x2', + '\x2', '\x9A', '\x9C', '\n', '\x11', '\x2', '\x2', '\x9B', '\x98', '\x3', + '\x2', '\x2', '\x2', '\x9B', '\x9A', '\x3', '\x2', '\x2', '\x2', '\x9C', + '\x9F', '\x3', '\x2', '\x2', '\x2', '\x9D', '\x9E', '\x3', '\x2', '\x2', + '\x2', '\x9D', '\x9B', '\x3', '\x2', '\x2', '\x2', '\x9E', '\xA0', '\x3', + '\x2', '\x2', '\x2', '\x9F', '\x9D', '\x3', '\x2', '\x2', '\x2', '\xA0', + '\xAC', '\a', ')', '\x2', '\x2', '\xA1', '\xA7', '\a', '$', '\x2', '\x2', + '\xA2', '\xA3', '\a', '^', '\x2', '\x2', '\xA3', '\xA6', '\t', '\x12', + '\x2', '\x2', '\xA4', '\xA6', '\n', '\x13', '\x2', '\x2', '\xA5', '\xA2', + '\x3', '\x2', '\x2', '\x2', '\xA5', '\xA4', '\x3', '\x2', '\x2', '\x2', + '\xA6', '\xA9', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA8', '\x3', '\x2', + '\x2', '\x2', '\xA7', '\xA5', '\x3', '\x2', '\x2', '\x2', '\xA8', '\xAA', + '\x3', '\x2', '\x2', '\x2', '\xA9', '\xA7', '\x3', '\x2', '\x2', '\x2', + '\xAA', '\xAC', '\a', '$', '\x2', '\x2', '\xAB', '\x97', '\x3', '\x2', + '\x2', '\x2', '\xAB', '\xA1', '\x3', '\x2', '\x2', '\x2', '\xAC', '&', + '\x3', '\x2', '\x2', '\x2', '\xAD', '\xB3', '\a', '\x62', '\x2', '\x2', + '\xAE', '\xAF', '\a', '^', '\x2', '\x2', '\xAF', '\xB2', '\t', '\x14', + '\x2', '\x2', '\xB0', '\xB2', '\n', '\x15', '\x2', '\x2', '\xB1', '\xAE', + '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB0', '\x3', '\x2', '\x2', '\x2', + '\xB2', '\xB5', '\x3', '\x2', '\x2', '\x2', '\xB3', '\xB4', '\x3', '\x2', + '\x2', '\x2', '\xB3', '\xB1', '\x3', '\x2', '\x2', '\x2', '\xB4', '\xB6', + '\x3', '\x2', '\x2', '\x2', '\xB5', '\xB3', '\x3', '\x2', '\x2', '\x2', + '\xB6', '\xB7', '\a', '\x62', '\x2', '\x2', '\xB7', '(', '\x3', '\x2', + '\x2', '\x2', '\xB8', '\xBA', '\a', '^', '\x2', '\x2', '\xB9', '\xBB', + '\n', '\x16', '\x2', '\x2', '\xBA', '\xB9', '\x3', '\x2', '\x2', '\x2', + '\xBA', '\xBB', '\x3', '\x2', '\x2', '\x2', '\xBB', '*', '\x3', '\x2', + '\x2', '\x2', '\xBC', '\xC0', '\x5', '\x1F', '\xE', '\x2', '\xBD', '\xC0', + '\x5', '!', '\xF', '\x2', '\xBE', '\xC0', '\a', '\x61', '\x2', '\x2', + '\xBF', '\xBC', '\x3', '\x2', '\x2', '\x2', '\xBF', '\xBD', '\x3', '\x2', + '\x2', '\x2', '\xBF', '\xBE', '\x3', '\x2', '\x2', '\x2', '\xC0', '\xC6', + '\x3', '\x2', '\x2', '\x2', '\xC1', '\xC5', '\x5', '\x1F', '\xE', '\x2', + '\xC2', '\xC5', '\x5', '!', '\xF', '\x2', '\xC3', '\xC5', '\a', '\x61', + '\x2', '\x2', '\xC4', '\xC1', '\x3', '\x2', '\x2', '\x2', '\xC4', '\xC2', + '\x3', '\x2', '\x2', '\x2', '\xC4', '\xC3', '\x3', '\x2', '\x2', '\x2', + '\xC5', '\xC8', '\x3', '\x2', '\x2', '\x2', '\xC6', '\xC4', '\x3', '\x2', + '\x2', '\x2', '\xC6', '\xC7', '\x3', '\x2', '\x2', '\x2', '\xC7', ',', + '\x3', '\x2', '\x2', '\x2', '\xC8', '\xC6', '\x3', '\x2', '\x2', '\x2', + '\xC9', '\xD9', '\a', '}', '\x2', '\x2', '\xCA', '\xD8', '\x5', '#', '\x10', + '\x2', '\xCB', '\xCE', '\x5', '+', '\x14', '\x2', '\xCC', '\xCE', '\x5', + '%', '\x11', '\x2', '\xCD', '\xCB', '\x3', '\x2', '\x2', '\x2', '\xCD', + '\xCC', '\x3', '\x2', '\x2', '\x2', '\xCE', '\xCF', '\x3', '\x2', '\x2', + '\x2', '\xCF', '\xD3', '\a', '<', '\x2', '\x2', '\xD0', '\xD4', '\x5', + '%', '\x11', '\x2', '\xD1', '\xD4', '\n', '\x17', '\x2', '\x2', '\xD2', + '\xD4', '\x5', '-', '\x15', '\x2', '\xD3', '\xD0', '\x3', '\x2', '\x2', + '\x2', '\xD3', '\xD1', '\x3', '\x2', '\x2', '\x2', '\xD3', '\xD2', '\x3', + '\x2', '\x2', '\x2', '\xD4', '\xD5', '\x3', '\x2', '\x2', '\x2', '\xD5', + '\xD3', '\x3', '\x2', '\x2', '\x2', '\xD5', '\xD6', '\x3', '\x2', '\x2', + '\x2', '\xD6', '\xD8', '\x3', '\x2', '\x2', '\x2', '\xD7', '\xCA', '\x3', + '\x2', '\x2', '\x2', '\xD7', '\xCD', '\x3', '\x2', '\x2', '\x2', '\xD8', + '\xDB', '\x3', '\x2', '\x2', '\x2', '\xD9', '\xD7', '\x3', '\x2', '\x2', + '\x2', '\xD9', '\xDA', '\x3', '\x2', '\x2', '\x2', '\xDA', '\xDC', '\x3', + '\x2', '\x2', '\x2', '\xDB', '\xD9', '\x3', '\x2', '\x2', '\x2', '\xDC', + '\xDD', '\a', '\x7F', '\x2', '\x2', '\xDD', '.', '\x3', '\x2', '\x2', + '\x2', '\xDE', '\xDF', '\a', '&', '\x2', '\x2', '\xDF', '\xE4', '\a', + '}', '\x2', '\x2', '\xE0', '\xE5', '\x5', '%', '\x11', '\x2', '\xE1', + '\xE5', '\x5', '\'', '\x12', '\x2', '\xE2', '\xE5', '\x5', '-', '\x15', + '\x2', '\xE3', '\xE5', '\n', '\x18', '\x2', '\x2', '\xE4', '\xE0', '\x3', + '\x2', '\x2', '\x2', '\xE4', '\xE1', '\x3', '\x2', '\x2', '\x2', '\xE4', + '\xE2', '\x3', '\x2', '\x2', '\x2', '\xE4', '\xE3', '\x3', '\x2', '\x2', + '\x2', '\xE5', '\xE6', '\x3', '\x2', '\x2', '\x2', '\xE6', '\xE4', '\x3', + '\x2', '\x2', '\x2', '\xE6', '\xE7', '\x3', '\x2', '\x2', '\x2', '\xE7', + '\xE9', '\x3', '\x2', '\x2', '\x2', '\xE8', '\xEA', '\a', '\x7F', '\x2', + '\x2', '\xE9', '\xE8', '\x3', '\x2', '\x2', '\x2', '\xE9', '\xEA', '\x3', + '\x2', '\x2', '\x2', '\xEA', '\x30', '\x3', '\x2', '\x2', '\x2', '\xEB', + '\xED', '\x5', '#', '\x10', '\x2', '\xEC', '\xEB', '\x3', '\x2', '\x2', + '\x2', '\xED', '\xEE', '\x3', '\x2', '\x2', '\x2', '\xEE', '\xEC', '\x3', + '\x2', '\x2', '\x2', '\xEE', '\xEF', '\x3', '\x2', '\x2', '\x2', '\xEF', + '\xF0', '\x3', '\x2', '\x2', '\x2', '\xF0', '\xF1', '\b', '\x17', '\x2', + '\x2', '\xF1', '\x32', '\x3', '\x2', '\x2', '\x2', '\xF2', '\xF4', '\a', + '\xF', '\x2', '\x2', '\xF3', '\xF2', '\x3', '\x2', '\x2', '\x2', '\xF3', + '\xF4', '\x3', '\x2', '\x2', '\x2', '\xF4', '\xF5', '\x3', '\x2', '\x2', + '\x2', '\xF5', '\xF6', '\a', '\f', '\x2', '\x2', '\xF6', '\xF7', '\x3', + '\x2', '\x2', '\x2', '\xF7', '\xF8', '\b', '\x18', '\x2', '\x2', '\xF8', + '\x34', '\x3', '\x2', '\x2', '\x2', '\xF9', '\xFD', '\a', '@', '\x2', + '\x2', '\xFA', '\xFC', '\n', '\x16', '\x2', '\x2', '\xFB', '\xFA', '\x3', + '\x2', '\x2', '\x2', '\xFC', '\xFF', '\x3', '\x2', '\x2', '\x2', '\xFD', + '\xFB', '\x3', '\x2', '\x2', '\x2', '\xFD', '\xFE', '\x3', '\x2', '\x2', + '\x2', '\xFE', '\x100', '\x3', '\x2', '\x2', '\x2', '\xFF', '\xFD', '\x3', + '\x2', '\x2', '\x2', '\x100', '\x101', '\b', '\x19', '\x2', '\x2', '\x101', + '\x36', '\x3', '\x2', '\x2', '\x2', '\x102', '\x103', '\a', '/', '\x2', + '\x2', '\x103', '\x104', '\b', '\x1A', '\x3', '\x2', '\x104', '\x105', + '\x3', '\x2', '\x2', '\x2', '\x105', '\x106', '\b', '\x1A', '\x4', '\x2', + '\x106', '\x38', '\x3', '\x2', '\x2', '\x2', '\x107', '\x108', '\a', ']', + '\x2', '\x2', '\x108', '\x109', '\x6', '\x1B', '\x2', '\x2', '\x109', + '\x10A', '\b', '\x1B', '\x5', '\x2', '\x10A', '\x10B', '\x3', '\x2', '\x2', + '\x2', '\x10B', '\x10C', '\b', '\x1B', '\x6', '\x2', '\x10C', ':', '\x3', + '\x2', '\x2', '\x2', '\x10D', '\x10E', '\v', '\x2', '\x2', '\x2', '\x10E', + '\x10F', '\b', '\x1C', '\a', '\x2', '\x10F', '<', '\x3', '\x2', '\x2', + '\x2', '\x110', '\x112', '\x5', '#', '\x10', '\x2', '\x111', '\x110', + '\x3', '\x2', '\x2', '\x2', '\x112', '\x113', '\x3', '\x2', '\x2', '\x2', + '\x113', '\x111', '\x3', '\x2', '\x2', '\x2', '\x113', '\x114', '\x3', + '\x2', '\x2', '\x2', '\x114', '\x115', '\x3', '\x2', '\x2', '\x2', '\x115', + '\x116', '\x6', '\x1D', '\x3', '\x2', '\x116', '\x117', '\x3', '\x2', + '\x2', '\x2', '\x117', '\x118', '\b', '\x1D', '\x2', '\x2', '\x118', '>', + '\x3', '\x2', '\x2', '\x2', '\x119', '\x11A', '\a', '\x62', '\x2', '\x2', + '\x11A', '\x11B', '\a', '\x62', '\x2', '\x2', '\x11B', '\x11C', '\a', + '\x62', '\x2', '\x2', '\x11C', '\x11D', '\x3', '\x2', '\x2', '\x2', '\x11D', + '\x11E', '\x6', '\x1E', '\x4', '\x2', '\x11E', '\x11F', '\b', '\x1E', + '\b', '\x2', '\x11F', '\x120', '\x3', '\x2', '\x2', '\x2', '\x120', '\x121', + '\b', '\x1E', '\t', '\x2', '\x121', '@', '\x3', '\x2', '\x2', '\x2', '\x122', + '\x124', '\a', '\xF', '\x2', '\x2', '\x123', '\x122', '\x3', '\x2', '\x2', + '\x2', '\x123', '\x124', '\x3', '\x2', '\x2', '\x2', '\x124', '\x125', + '\x3', '\x2', '\x2', '\x2', '\x125', '\x126', '\a', '\f', '\x2', '\x2', + '\x126', '\x127', '\b', '\x1F', '\n', '\x2', '\x127', '\x128', '\x3', + '\x2', '\x2', '\x2', '\x128', '\x129', '\b', '\x1F', '\x2', '\x2', '\x129', + '\x12A', '\b', '\x1F', '\v', '\x2', '\x12A', '\x42', '\x3', '\x2', '\x2', + '\x2', '\x12B', '\x12C', '\x5', '\x13', '\b', '\x2', '\x12C', '\x130', + '\x5', '\xF', '\x6', '\x2', '\x12D', '\x12F', '\x5', '#', '\x10', '\x2', + '\x12E', '\x12D', '\x3', '\x2', '\x2', '\x2', '\x12F', '\x132', '\x3', + '\x2', '\x2', '\x2', '\x130', '\x12E', '\x3', '\x2', '\x2', '\x2', '\x130', + '\x131', '\x3', '\x2', '\x2', '\x2', '\x131', '\x133', '\x3', '\x2', '\x2', + '\x2', '\x132', '\x130', '\x3', '\x2', '\x2', '\x2', '\x133', '\x134', + '\a', '<', '\x2', '\x2', '\x134', '\x135', '\x6', ' ', '\x5', '\x2', '\x135', + '\x136', '\b', ' ', '\f', '\x2', '\x136', '\x44', '\x3', '\x2', '\x2', + '\x2', '\x137', '\x138', '\x5', '\r', '\x5', '\x2', '\x138', '\x139', + '\x5', '\x15', '\t', '\x2', '\x139', '\x13A', '\x5', '\x17', '\n', '\x2', + '\x13A', '\x13E', '\x5', '\r', '\x5', '\x2', '\x13B', '\x13D', '\x5', + '#', '\x10', '\x2', '\x13C', '\x13B', '\x3', '\x2', '\x2', '\x2', '\x13D', + '\x140', '\x3', '\x2', '\x2', '\x2', '\x13E', '\x13C', '\x3', '\x2', '\x2', + '\x2', '\x13E', '\x13F', '\x3', '\x2', '\x2', '\x2', '\x13F', '\x141', + '\x3', '\x2', '\x2', '\x2', '\x140', '\x13E', '\x3', '\x2', '\x2', '\x2', + '\x141', '\x142', '\x5', '\x13', '\b', '\x2', '\x142', '\x146', '\x5', + '\xF', '\x6', '\x2', '\x143', '\x145', '\x5', '#', '\x10', '\x2', '\x144', + '\x143', '\x3', '\x2', '\x2', '\x2', '\x145', '\x148', '\x3', '\x2', '\x2', + '\x2', '\x146', '\x144', '\x3', '\x2', '\x2', '\x2', '\x146', '\x147', + '\x3', '\x2', '\x2', '\x2', '\x147', '\x149', '\x3', '\x2', '\x2', '\x2', + '\x148', '\x146', '\x3', '\x2', '\x2', '\x2', '\x149', '\x14A', '\a', + '<', '\x2', '\x2', '\x14A', '\x14B', '\x6', '!', '\x6', '\x2', '\x14B', + '\x14C', '\b', '!', '\r', '\x2', '\x14C', '\x46', '\x3', '\x2', '\x2', + '\x2', '\x14D', '\x14E', '\x5', '\r', '\x5', '\x2', '\x14E', '\x14F', + '\x5', '\x15', '\t', '\x2', '\x14F', '\x150', '\x5', '\x17', '\n', '\x2', + '\x150', '\x154', '\x5', '\r', '\x5', '\x2', '\x151', '\x153', '\x5', + '#', '\x10', '\x2', '\x152', '\x151', '\x3', '\x2', '\x2', '\x2', '\x153', + '\x156', '\x3', '\x2', '\x2', '\x2', '\x154', '\x152', '\x3', '\x2', '\x2', + '\x2', '\x154', '\x155', '\x3', '\x2', '\x2', '\x2', '\x155', '\x157', + '\x3', '\x2', '\x2', '\x2', '\x156', '\x154', '\x3', '\x2', '\x2', '\x2', + '\x157', '\x158', '\a', '<', '\x2', '\x2', '\x158', '\x159', '\x6', '\"', + '\a', '\x2', '\x159', '\x15A', '\b', '\"', '\xE', '\x2', '\x15A', 'H', + '\x3', '\x2', '\x2', '\x2', '\x15B', '\x15C', '\x5', '\x17', '\n', '\x2', + '\x15C', '\x15D', '\x5', '\x1D', '\r', '\x2', '\x15D', '\x15E', '\x5', + '\x13', '\b', '\x2', '\x15E', '\x15F', '\x5', '\x19', '\v', '\x2', '\x15F', + '\x160', '\x5', '\t', '\x3', '\x2', '\x160', '\x164', '\x5', '\x11', '\a', + '\x2', '\x161', '\x163', '\x5', '#', '\x10', '\x2', '\x162', '\x161', + '\x3', '\x2', '\x2', '\x2', '\x163', '\x166', '\x3', '\x2', '\x2', '\x2', + '\x164', '\x162', '\x3', '\x2', '\x2', '\x2', '\x164', '\x165', '\x3', + '\x2', '\x2', '\x2', '\x165', '\x167', '\x3', '\x2', '\x2', '\x2', '\x166', + '\x164', '\x3', '\x2', '\x2', '\x2', '\x167', '\x168', '\a', '<', '\x2', + '\x2', '\x168', '\x169', '\x6', '#', '\b', '\x2', '\x169', '\x16A', '\b', + '#', '\xF', '\x2', '\x16A', 'J', '\x3', '\x2', '\x2', '\x2', '\x16B', + '\x16C', '\x5', '\t', '\x3', '\x2', '\x16C', '\x16D', '\x5', '\a', '\x2', + '\x2', '\x16D', '\x16E', '\x5', '\x17', '\n', '\x2', '\x16E', '\x172', + '\x5', '\r', '\x5', '\x2', '\x16F', '\x171', '\x5', '#', '\x10', '\x2', + '\x170', '\x16F', '\x3', '\x2', '\x2', '\x2', '\x171', '\x174', '\x3', + '\x2', '\x2', '\x2', '\x172', '\x170', '\x3', '\x2', '\x2', '\x2', '\x172', + '\x173', '\x3', '\x2', '\x2', '\x2', '\x173', '\x175', '\x3', '\x2', '\x2', + '\x2', '\x174', '\x172', '\x3', '\x2', '\x2', '\x2', '\x175', '\x176', + '\a', '<', '\x2', '\x2', '\x176', '\x177', '\x6', '$', '\t', '\x2', '\x177', + '\x178', '\b', '$', '\x10', '\x2', '\x178', 'L', '\x3', '\x2', '\x2', + '\x2', '\x179', '\x17A', '\x5', '\v', '\x4', '\x2', '\x17A', '\x17B', + '\x5', '\r', '\x5', '\x2', '\x17B', '\x17C', '\x5', '\xF', '\x6', '\x2', + '\x17C', '\x17D', '\x5', '\a', '\x2', '\x2', '\x17D', '\x17E', '\x5', + '\x1B', '\f', '\x2', '\x17E', '\x17F', '\x5', '\x15', '\t', '\x2', '\x17F', + '\x183', '\x5', '\x19', '\v', '\x2', '\x180', '\x182', '\x5', '#', '\x10', + '\x2', '\x181', '\x180', '\x3', '\x2', '\x2', '\x2', '\x182', '\x185', + '\x3', '\x2', '\x2', '\x2', '\x183', '\x181', '\x3', '\x2', '\x2', '\x2', + '\x183', '\x184', '\x3', '\x2', '\x2', '\x2', '\x184', '\x186', '\x3', + '\x2', '\x2', '\x2', '\x185', '\x183', '\x3', '\x2', '\x2', '\x2', '\x186', + '\x187', '\a', '<', '\x2', '\x2', '\x187', '\x188', '\x6', '%', '\n', + '\x2', '\x188', '\x189', '\b', '%', '\x11', '\x2', '\x189', 'N', '\x3', + '\x2', '\x2', '\x2', '\x18A', '\x18B', '\x5', ')', '\x13', '\x2', '\x18B', + '\x18C', '\b', '&', '\x12', '\x2', '\x18C', 'P', '\x3', '\x2', '\x2', + '\x2', '\x18D', '\x18E', '\x5', '/', '\x16', '\x2', '\x18E', '\x18F', + '\b', '\'', '\x13', '\x2', '\x18F', 'R', '\x3', '\x2', '\x2', '\x2', '\x190', + '\x192', '\n', '\x16', '\x2', '\x2', '\x191', '\x190', '\x3', '\x2', '\x2', + '\x2', '\x192', '\x193', '\x3', '\x2', '\x2', '\x2', '\x193', '\x194', + '\x3', '\x2', '\x2', '\x2', '\x193', '\x191', '\x3', '\x2', '\x2', '\x2', + '\x194', '\x195', '\x3', '\x2', '\x2', '\x2', '\x195', '\x196', '\b', + '(', '\x14', '\x2', '\x196', 'T', '\x3', '\x2', '\x2', '\x2', '\x197', + '\x198', '\a', '\x62', '\x2', '\x2', '\x198', '\x199', '\a', '\x62', '\x2', + '\x2', '\x199', '\x19A', '\a', '\x62', '\x2', '\x2', '\x19A', '\x19B', + '\x3', '\x2', '\x2', '\x2', '\x19B', '\x19C', '\b', ')', '\x15', '\x2', + '\x19C', '\x19D', '\x3', '\x2', '\x2', '\x2', '\x19D', '\x19E', '\b', + ')', '\v', '\x2', '\x19E', 'V', '\x3', '\x2', '\x2', '\x2', '\x19F', '\x1A0', + '\x5', ')', '\x13', '\x2', '\x1A0', '\x1A1', '\x3', '\x2', '\x2', '\x2', + '\x1A1', '\x1A2', '\b', '*', '\x16', '\x2', '\x1A2', 'X', '\x3', '\x2', + '\x2', '\x2', '\x1A3', '\x1A4', '\x5', '/', '\x16', '\x2', '\x1A4', '\x1A5', + '\x3', '\x2', '\x2', '\x2', '\x1A5', '\x1A6', '\b', '+', '\x17', '\x2', + '\x1A6', 'Z', '\x3', '\x2', '\x2', '\x2', '\x1A7', '\x1A9', '\a', '\xF', + '\x2', '\x2', '\x1A8', '\x1A7', '\x3', '\x2', '\x2', '\x2', '\x1A8', '\x1A9', + '\x3', '\x2', '\x2', '\x2', '\x1A9', '\x1AA', '\x3', '\x2', '\x2', '\x2', + '\x1AA', '\x1AD', '\a', '\f', '\x2', '\x2', '\x1AB', '\x1AD', '\n', '\x16', + '\x2', '\x2', '\x1AC', '\x1A8', '\x3', '\x2', '\x2', '\x2', '\x1AC', '\x1AB', + '\x3', '\x2', '\x2', '\x2', '\x1AD', '\x1AE', '\x3', '\x2', '\x2', '\x2', + '\x1AE', '\x1AF', '\x3', '\x2', '\x2', '\x2', '\x1AE', '\x1AC', '\x3', + '\x2', '\x2', '\x2', '\x1AF', '\x1B0', '\x3', '\x2', '\x2', '\x2', '\x1B0', + '\x1B1', '\b', ',', '\x18', '\x2', '\x1B1', '\\', '\x3', '\x2', '\x2', + '\x2', '\x1B2', '\x1B4', '\x5', '#', '\x10', '\x2', '\x1B3', '\x1B2', + '\x3', '\x2', '\x2', '\x2', '\x1B4', '\x1B5', '\x3', '\x2', '\x2', '\x2', + '\x1B5', '\x1B3', '\x3', '\x2', '\x2', '\x2', '\x1B5', '\x1B6', '\x3', + '\x2', '\x2', '\x2', '\x1B6', '\x1B7', '\x3', '\x2', '\x2', '\x2', '\x1B7', + '\x1B8', '\b', '-', '\x2', '\x2', '\x1B8', '^', '\x3', '\x2', '\x2', '\x2', + '\x1B9', '\x1BB', '\a', '\xF', '\x2', '\x2', '\x1BA', '\x1B9', '\x3', + '\x2', '\x2', '\x2', '\x1BA', '\x1BB', '\x3', '\x2', '\x2', '\x2', '\x1BB', + '\x1BC', '\x3', '\x2', '\x2', '\x2', '\x1BC', '\x1BD', '\a', '\f', '\x2', + '\x2', '\x1BD', '\x1BE', '\b', '.', '\x19', '\x2', '\x1BE', '\x1BF', '\b', + '.', '\x1A', '\x2', '\x1BF', '\x1C0', '\x3', '\x2', '\x2', '\x2', '\x1C0', + '\x1C1', '\b', '.', '\x2', '\x2', '\x1C1', '\x1C2', '\b', '.', '\x1B', + '\x2', '\x1C2', '`', '\x3', '\x2', '\x2', '\x2', '\x1C3', '\x1C7', '\x5', + '\x1F', '\xE', '\x2', '\x1C4', '\x1C7', '\x5', '!', '\xF', '\x2', '\x1C5', + '\x1C7', '\a', '\x61', '\x2', '\x2', '\x1C6', '\x1C3', '\x3', '\x2', '\x2', + '\x2', '\x1C6', '\x1C4', '\x3', '\x2', '\x2', '\x2', '\x1C6', '\x1C5', + '\x3', '\x2', '\x2', '\x2', '\x1C7', '\x1CD', '\x3', '\x2', '\x2', '\x2', + '\x1C8', '\x1CC', '\x5', '\x1F', '\xE', '\x2', '\x1C9', '\x1CC', '\x5', + '!', '\xF', '\x2', '\x1CA', '\x1CC', '\t', '\x19', '\x2', '\x2', '\x1CB', + '\x1C8', '\x3', '\x2', '\x2', '\x2', '\x1CB', '\x1C9', '\x3', '\x2', '\x2', + '\x2', '\x1CB', '\x1CA', '\x3', '\x2', '\x2', '\x2', '\x1CC', '\x1CF', + '\x3', '\x2', '\x2', '\x2', '\x1CD', '\x1CB', '\x3', '\x2', '\x2', '\x2', + '\x1CD', '\x1CE', '\x3', '\x2', '\x2', '\x2', '\x1CE', '\x62', '\x3', + '\x2', '\x2', '\x2', '\x1CF', '\x1CD', '\x3', '\x2', '\x2', '\x2', '\x1D0', + '\x1D2', '\n', '\x16', '\x2', '\x2', '\x1D1', '\x1D0', '\x3', '\x2', '\x2', + '\x2', '\x1D2', '\x1D3', '\x3', '\x2', '\x2', '\x2', '\x1D3', '\x1D4', + '\x3', '\x2', '\x2', '\x2', '\x1D3', '\x1D1', '\x3', '\x2', '\x2', '\x2', + '\x1D4', '\x64', '\x3', '\x2', '\x2', '\x2', '\x1D5', '\x1D9', '\a', '@', + '\x2', '\x2', '\x1D6', '\x1D8', '\n', '\x16', '\x2', '\x2', '\x1D7', '\x1D6', + '\x3', '\x2', '\x2', '\x2', '\x1D8', '\x1DB', '\x3', '\x2', '\x2', '\x2', + '\x1D9', '\x1D7', '\x3', '\x2', '\x2', '\x2', '\x1D9', '\x1DA', '\x3', + '\x2', '\x2', '\x2', '\x1DA', '\x1DD', '\x3', '\x2', '\x2', '\x2', '\x1DB', + '\x1D9', '\x3', '\x2', '\x2', '\x2', '\x1DC', '\x1DE', '\a', '\xF', '\x2', + '\x2', '\x1DD', '\x1DC', '\x3', '\x2', '\x2', '\x2', '\x1DD', '\x1DE', + '\x3', '\x2', '\x2', '\x2', '\x1DE', '\x1DF', '\x3', '\x2', '\x2', '\x2', + '\x1DF', '\x1E0', '\a', '\f', '\x2', '\x2', '\x1E0', '\x1E1', '\x6', '\x31', + '\v', '\x2', '\x1E1', '\x1E2', '\x3', '\x2', '\x2', '\x2', '\x1E2', '\x1E3', + '\b', '\x31', '\x2', '\x2', '\x1E3', '\x66', '\x3', '\x2', '\x2', '\x2', + '\x1E4', '\x1E6', '\x5', '#', '\x10', '\x2', '\x1E5', '\x1E4', '\x3', + '\x2', '\x2', '\x2', '\x1E6', '\x1E7', '\x3', '\x2', '\x2', '\x2', '\x1E7', + '\x1E5', '\x3', '\x2', '\x2', '\x2', '\x1E7', '\x1E8', '\x3', '\x2', '\x2', + '\x2', '\x1E8', '\x1E9', '\x3', '\x2', '\x2', '\x2', '\x1E9', '\x1EA', + '\x6', '\x32', '\f', '\x2', '\x1EA', '\x1EB', '\x3', '\x2', '\x2', '\x2', + '\x1EB', '\x1EC', '\b', '\x32', '\x2', '\x2', '\x1EC', 'h', '\x3', '\x2', + '\x2', '\x2', '\x1ED', '\x1EF', '\a', '\xF', '\x2', '\x2', '\x1EE', '\x1ED', + '\x3', '\x2', '\x2', '\x2', '\x1EE', '\x1EF', '\x3', '\x2', '\x2', '\x2', + '\x1EF', '\x1F0', '\x3', '\x2', '\x2', '\x2', '\x1F0', '\x1F1', '\a', + '\f', '\x2', '\x2', '\x1F1', '\x1F2', '\b', '\x33', '\x1C', '\x2', '\x1F2', + 'j', '\x3', '\x2', '\x2', '\x2', '\x1F3', '\x1F4', '\a', '_', '\x2', '\x2', + '\x1F4', '\x1F5', '\x6', '\x34', '\r', '\x2', '\x1F5', '\x1F6', '\x3', + '\x2', '\x2', '\x2', '\x1F6', '\x1F7', '\b', '\x34', '\v', '\x2', '\x1F7', + '\x1F8', '\b', '\x34', '\v', '\x2', '\x1F8', 'l', '\x3', '\x2', '\x2', + '\x2', '\x1F9', '\x1FD', '\x5', '\x1F', '\xE', '\x2', '\x1FA', '\x1FD', + '\x5', '!', '\xF', '\x2', '\x1FB', '\x1FD', '\a', '\x61', '\x2', '\x2', + '\x1FC', '\x1F9', '\x3', '\x2', '\x2', '\x2', '\x1FC', '\x1FA', '\x3', + '\x2', '\x2', '\x2', '\x1FC', '\x1FB', '\x3', '\x2', '\x2', '\x2', '\x1FD', + '\x203', '\x3', '\x2', '\x2', '\x2', '\x1FE', '\x202', '\x5', '\x1F', + '\xE', '\x2', '\x1FF', '\x202', '\x5', '!', '\xF', '\x2', '\x200', '\x202', + '\t', '\x19', '\x2', '\x2', '\x201', '\x1FE', '\x3', '\x2', '\x2', '\x2', + '\x201', '\x1FF', '\x3', '\x2', '\x2', '\x2', '\x201', '\x200', '\x3', + '\x2', '\x2', '\x2', '\x202', '\x205', '\x3', '\x2', '\x2', '\x2', '\x203', + '\x201', '\x3', '\x2', '\x2', '\x2', '\x203', '\x204', '\x3', '\x2', '\x2', + '\x2', '\x204', '\x206', '\x3', '\x2', '\x2', '\x2', '\x205', '\x203', + '\x3', '\x2', '\x2', '\x2', '\x206', '\x207', '\x6', '\x35', '\xE', '\x2', + '\x207', '\x208', '\b', '\x35', '\x1D', '\x2', '\x208', 'n', '\x3', '\x2', + '\x2', '\x2', '\x209', '\x20A', '\a', '?', '\x2', '\x2', '\x20A', '\x20B', + '\x6', '\x36', '\xF', '\x2', '\x20B', '\x20C', '\b', '\x36', '\x1E', '\x2', + '\x20C', 'p', '\x3', '\x2', '\x2', '\x2', '\x20D', '\x20E', '\a', '~', + '\x2', '\x2', '\x20E', '\x20F', '\b', '\x37', '\x1F', '\x2', '\x20F', + 'r', '\x3', '\x2', '\x2', '\x2', '\x210', '\x211', '\x5', ')', '\x13', + '\x2', '\x211', '\x212', '\b', '\x38', ' ', '\x2', '\x212', 't', '\x3', + '\x2', '\x2', '\x2', '\x213', '\x214', '\x5', '/', '\x16', '\x2', '\x214', + '\x215', '\b', '\x39', '!', '\x2', '\x215', 'v', '\x3', '\x2', '\x2', + '\x2', '\x216', '\x218', '\n', '\x16', '\x2', '\x2', '\x217', '\x216', + '\x3', '\x2', '\x2', '\x2', '\x218', '\x219', '\x3', '\x2', '\x2', '\x2', + '\x219', '\x21A', '\x3', '\x2', '\x2', '\x2', '\x219', '\x217', '\x3', + '\x2', '\x2', '\x2', '\x21A', '\x21B', '\x3', '\x2', '\x2', '\x2', '\x21B', + '\x21C', '\b', ':', '\"', '\x2', '\x21C', 'x', '\x3', '\x2', '\x2', '\x2', + '\x38', '\x2', '\x3', '\x4', '\x5', '\x6', '\x9B', '\x9D', '\xA5', '\xA7', + '\xAB', '\xB1', '\xB3', '\xBA', '\xBF', '\xC4', '\xC6', '\xCD', '\xD3', + '\xD5', '\xD7', '\xD9', '\xE4', '\xE6', '\xE9', '\xEE', '\xF3', '\xFD', + '\x113', '\x123', '\x130', '\x13E', '\x146', '\x154', '\x164', '\x172', + '\x183', '\x193', '\x1A8', '\x1AC', '\x1AE', '\x1B5', '\x1BA', '\x1C6', + '\x1CB', '\x1CD', '\x1D3', '\x1D9', '\x1DD', '\x1E7', '\x1EE', '\x1FC', + '\x201', '\x203', '\x219', '#', '\b', '\x2', '\x2', '\x3', '\x1A', '\x2', + '\a', '\x3', '\x2', '\x3', '\x1B', '\x3', '\a', '\x5', '\x2', '\x3', '\x1C', + '\x4', '\x3', '\x1E', '\x5', '\a', '\x4', '\x2', '\x3', '\x1F', '\x6', + '\x6', '\x2', '\x2', '\x3', ' ', '\a', '\x3', '!', '\b', '\x3', '\"', + '\t', '\x3', '#', '\n', '\x3', '$', '\v', '\x3', '%', '\f', '\x3', '&', + '\r', '\x3', '\'', '\xE', '\x3', '(', '\xF', '\x3', ')', '\x10', '\t', + '\x12', '\x2', '\t', '\x13', '\x2', '\t', '\x14', '\x2', '\x3', '.', '\x11', + '\x3', '.', '\x12', '\a', '\x6', '\x2', '\x3', '\x33', '\x13', '\x3', + '\x35', '\x14', '\x3', '\x36', '\x15', '\x3', '\x37', '\x16', '\x3', '\x38', + '\x17', '\x3', '\x39', '\x18', '\x3', ':', '\x19', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParser.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParser.cs new file mode 100644 index 0000000000..6ba15a528b --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParser.cs @@ -0,0 +1,1922 @@ +//------------------------------------------------------------------------------ +// +// 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 LGTemplateParser.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 LGTemplateParser : Parser { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + WS=1, NEWLINE=2, COMMENTS=3, DASH=4, LEFT_SQUARE_BRACKET=5, INVALID_TOKEN=6, + WS_IN_BODY=7, MULTILINE_PREFIX=8, NEWLINE_IN_BODY=9, IF=10, ELSEIF=11, + ELSE=12, SWITCH=13, CASE=14, DEFAULT=15, ESCAPE_CHARACTER=16, EXPRESSION=17, + TEXT=18, MULTILINE_SUFFIX=19, WS_IN_STRUCTURE_NAME=20, NEWLINE_IN_STRUCTURE_NAME=21, + STRUCTURE_NAME=22, TEXT_IN_STRUCTURE_NAME=23, STRUCTURED_COMMENTS=24, + WS_IN_STRUCTURE_BODY=25, STRUCTURED_NEWLINE=26, STRUCTURED_BODY_END=27, + STRUCTURE_IDENTIFIER=28, STRUCTURE_EQUALS=29, STRUCTURE_OR_MARK=30, ESCAPE_CHARACTER_IN_STRUCTURE_BODY=31, + EXPRESSION_IN_STRUCTURE_BODY=32, TEXT_IN_STRUCTURE_BODY=33; + public const int + RULE_context = 0, RULE_body = 1, RULE_structuredTemplateBody = 2, RULE_structuredBodyNameLine = 3, + RULE_errorStructuredName = 4, RULE_structuredBodyContentLine = 5, RULE_errorStructureLine = 6, + RULE_keyValueStructureLine = 7, RULE_keyValueStructureValue = 8, RULE_structuredBodyEndLine = 9, + RULE_normalTemplateBody = 10, RULE_templateString = 11, RULE_normalTemplateString = 12, + RULE_errorTemplateString = 13, RULE_ifElseTemplateBody = 14, RULE_ifConditionRule = 15, + RULE_ifCondition = 16, RULE_switchCaseTemplateBody = 17, RULE_switchCaseRule = 18, + RULE_switchCaseStat = 19, RULE_expression = 20, RULE_expressionInStructure = 21; + public static readonly string[] ruleNames = { + "context", "body", "structuredTemplateBody", "structuredBodyNameLine", + "errorStructuredName", "structuredBodyContentLine", "errorStructureLine", + "keyValueStructureLine", "keyValueStructureValue", "structuredBodyEndLine", + "normalTemplateBody", "templateString", "normalTemplateString", "errorTemplateString", + "ifElseTemplateBody", "ifConditionRule", "ifCondition", "switchCaseTemplateBody", + "switchCaseRule", "switchCaseStat", "expression", "expressionInStructure" + }; + + private static readonly string[] _LiteralNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "'|'" + }; + private static readonly string[] _SymbolicNames = { + null, "WS", "NEWLINE", "COMMENTS", "DASH", "LEFT_SQUARE_BRACKET", "INVALID_TOKEN", + "WS_IN_BODY", "MULTILINE_PREFIX", "NEWLINE_IN_BODY", "IF", "ELSEIF", "ELSE", + "SWITCH", "CASE", "DEFAULT", "ESCAPE_CHARACTER", "EXPRESSION", "TEXT", + "MULTILINE_SUFFIX", "WS_IN_STRUCTURE_NAME", "NEWLINE_IN_STRUCTURE_NAME", + "STRUCTURE_NAME", "TEXT_IN_STRUCTURE_NAME", "STRUCTURED_COMMENTS", "WS_IN_STRUCTURE_BODY", + "STRUCTURED_NEWLINE", "STRUCTURED_BODY_END", "STRUCTURE_IDENTIFIER", "STRUCTURE_EQUALS", + "STRUCTURE_OR_MARK", "ESCAPE_CHARACTER_IN_STRUCTURE_BODY", "EXPRESSION_IN_STRUCTURE_BODY", + "TEXT_IN_STRUCTURE_BODY" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "LGTemplateParser.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return new string(_serializedATN); } } + + static LGTemplateParser() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + + public LGTemplateParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } + + public LGTemplateParser(ITokenStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + public partial class ContextContext : ParserRuleContext { + public BodyContext body() { + return GetRuleContext(0); + } + public ITerminalNode Eof() { return GetToken(LGTemplateParser.Eof, 0); } + public ContextContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_context; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterContext(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitContext(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitContext(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ContextContext context() { + ContextContext _localctx = new ContextContext(Context, State); + EnterRule(_localctx, 0, RULE_context); + try { + EnterOuterAlt(_localctx, 1); + { + State = 44; body(); + State = 45; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BodyContext : ParserRuleContext { + public BodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_body; } } + + public BodyContext() { } + public virtual void CopyFrom(BodyContext context) { + base.CopyFrom(context); + } + } + public partial class SwitchCaseBodyContext : BodyContext { + public SwitchCaseTemplateBodyContext switchCaseTemplateBody() { + return GetRuleContext(0); + } + public SwitchCaseBodyContext(BodyContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterSwitchCaseBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitSwitchCaseBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitSwitchCaseBody(this); + else return visitor.VisitChildren(this); + } + } + public partial class NormalBodyContext : BodyContext { + public NormalTemplateBodyContext normalTemplateBody() { + return GetRuleContext(0); + } + public NormalBodyContext(BodyContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterNormalBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitNormalBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitNormalBody(this); + else return visitor.VisitChildren(this); + } + } + public partial class StructuredBodyContext : BodyContext { + public StructuredTemplateBodyContext structuredTemplateBody() { + return GetRuleContext(0); + } + public StructuredBodyContext(BodyContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterStructuredBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitStructuredBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitStructuredBody(this); + else return visitor.VisitChildren(this); + } + } + public partial class IfElseBodyContext : BodyContext { + public IfElseTemplateBodyContext ifElseTemplateBody() { + return GetRuleContext(0); + } + public IfElseBodyContext(BodyContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterIfElseBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitIfElseBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfElseBody(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public BodyContext body() { + BodyContext _localctx = new BodyContext(Context, State); + EnterRule(_localctx, 2, RULE_body); + try { + State = 51; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,0,Context) ) { + case 1: + _localctx = new NormalBodyContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 47; normalTemplateBody(); + } + break; + case 2: + _localctx = new IfElseBodyContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 48; ifElseTemplateBody(); + } + break; + case 3: + _localctx = new SwitchCaseBodyContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 49; switchCaseTemplateBody(); + } + break; + case 4: + _localctx = new StructuredBodyContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 50; structuredTemplateBody(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class StructuredTemplateBodyContext : ParserRuleContext { + public StructuredBodyNameLineContext structuredBodyNameLine() { + return GetRuleContext(0); + } + public StructuredBodyEndLineContext structuredBodyEndLine() { + return GetRuleContext(0); + } + public ErrorStructureLineContext[] errorStructureLine() { + return GetRuleContexts(); + } + public ErrorStructureLineContext errorStructureLine(int i) { + return GetRuleContext(i); + } + public ITerminalNode[] STRUCTURED_NEWLINE() { return GetTokens(LGTemplateParser.STRUCTURED_NEWLINE); } + public ITerminalNode STRUCTURED_NEWLINE(int i) { + return GetToken(LGTemplateParser.STRUCTURED_NEWLINE, i); + } + public StructuredBodyContentLineContext[] structuredBodyContentLine() { + return GetRuleContexts(); + } + public StructuredBodyContentLineContext structuredBodyContentLine(int i) { + return GetRuleContext(i); + } + public StructuredTemplateBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_structuredTemplateBody; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterStructuredTemplateBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitStructuredTemplateBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitStructuredTemplateBody(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StructuredTemplateBodyContext structuredTemplateBody() { + StructuredTemplateBodyContext _localctx = new StructuredTemplateBodyContext(Context, State); + EnterRule(_localctx, 4, RULE_structuredTemplateBody); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 53; structuredBodyNameLine(); + State = 63; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << STRUCTURED_NEWLINE) | (1L << STRUCTURE_IDENTIFIER) | (1L << STRUCTURE_EQUALS) | (1L << STRUCTURE_OR_MARK) | (1L << ESCAPE_CHARACTER_IN_STRUCTURE_BODY) | (1L << EXPRESSION_IN_STRUCTURE_BODY) | (1L << TEXT_IN_STRUCTURE_BODY))) != 0)) { + { + State = 59; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + State = 59; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,2,Context) ) { + case 1: + { + { + State = 55; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STRUCTURE_IDENTIFIER || _la==EXPRESSION_IN_STRUCTURE_BODY) { + { + State = 54; structuredBodyContentLine(); + } + } + + State = 57; Match(STRUCTURED_NEWLINE); + } + } + break; + case 2: + { + State = 58; errorStructureLine(); + } + break; + } + } + State = 61; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << STRUCTURED_NEWLINE) | (1L << STRUCTURE_IDENTIFIER) | (1L << STRUCTURE_EQUALS) | (1L << STRUCTURE_OR_MARK) | (1L << ESCAPE_CHARACTER_IN_STRUCTURE_BODY) | (1L << EXPRESSION_IN_STRUCTURE_BODY) | (1L << TEXT_IN_STRUCTURE_BODY))) != 0) ); + } + } + + State = 66; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STRUCTURED_BODY_END) { + { + State = 65; structuredBodyEndLine(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class StructuredBodyNameLineContext : ParserRuleContext { + public ITerminalNode LEFT_SQUARE_BRACKET() { return GetToken(LGTemplateParser.LEFT_SQUARE_BRACKET, 0); } + public ITerminalNode STRUCTURE_NAME() { return GetToken(LGTemplateParser.STRUCTURE_NAME, 0); } + public ErrorStructuredNameContext errorStructuredName() { + return GetRuleContext(0); + } + public StructuredBodyNameLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_structuredBodyNameLine; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterStructuredBodyNameLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitStructuredBodyNameLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitStructuredBodyNameLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StructuredBodyNameLineContext structuredBodyNameLine() { + StructuredBodyNameLineContext _localctx = new StructuredBodyNameLineContext(Context, State); + EnterRule(_localctx, 6, RULE_structuredBodyNameLine); + try { + EnterOuterAlt(_localctx, 1); + { + State = 68; Match(LEFT_SQUARE_BRACKET); + State = 71; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,6,Context) ) { + case 1: + { + State = 69; Match(STRUCTURE_NAME); + } + break; + case 2: + { + State = 70; errorStructuredName(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ErrorStructuredNameContext : ParserRuleContext { + public ITerminalNode[] STRUCTURE_NAME() { return GetTokens(LGTemplateParser.STRUCTURE_NAME); } + public ITerminalNode STRUCTURE_NAME(int i) { + return GetToken(LGTemplateParser.STRUCTURE_NAME, i); + } + public ITerminalNode[] TEXT_IN_STRUCTURE_NAME() { return GetTokens(LGTemplateParser.TEXT_IN_STRUCTURE_NAME); } + public ITerminalNode TEXT_IN_STRUCTURE_NAME(int i) { + return GetToken(LGTemplateParser.TEXT_IN_STRUCTURE_NAME, i); + } + public ErrorStructuredNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_errorStructuredName; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterErrorStructuredName(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitErrorStructuredName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitErrorStructuredName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ErrorStructuredNameContext errorStructuredName() { + ErrorStructuredNameContext _localctx = new ErrorStructuredNameContext(Context, State); + EnterRule(_localctx, 8, RULE_errorStructuredName); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 76; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==STRUCTURE_NAME || _la==TEXT_IN_STRUCTURE_NAME) { + { + { + State = 73; + _la = TokenStream.LA(1); + if ( !(_la==STRUCTURE_NAME || _la==TEXT_IN_STRUCTURE_NAME) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 78; + 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 StructuredBodyContentLineContext : ParserRuleContext { + public KeyValueStructureLineContext keyValueStructureLine() { + return GetRuleContext(0); + } + public ExpressionInStructureContext expressionInStructure() { + return GetRuleContext(0); + } + public StructuredBodyContentLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_structuredBodyContentLine; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterStructuredBodyContentLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitStructuredBodyContentLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitStructuredBodyContentLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StructuredBodyContentLineContext structuredBodyContentLine() { + StructuredBodyContentLineContext _localctx = new StructuredBodyContentLineContext(Context, State); + EnterRule(_localctx, 10, RULE_structuredBodyContentLine); + try { + State = 81; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case STRUCTURE_IDENTIFIER: + EnterOuterAlt(_localctx, 1); + { + State = 79; keyValueStructureLine(); + } + break; + case EXPRESSION_IN_STRUCTURE_BODY: + EnterOuterAlt(_localctx, 2); + { + State = 80; expressionInStructure(); + } + 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 ErrorStructureLineContext : ParserRuleContext { + public ITerminalNode[] STRUCTURE_IDENTIFIER() { return GetTokens(LGTemplateParser.STRUCTURE_IDENTIFIER); } + public ITerminalNode STRUCTURE_IDENTIFIER(int i) { + return GetToken(LGTemplateParser.STRUCTURE_IDENTIFIER, i); + } + public ITerminalNode[] STRUCTURE_EQUALS() { return GetTokens(LGTemplateParser.STRUCTURE_EQUALS); } + public ITerminalNode STRUCTURE_EQUALS(int i) { + return GetToken(LGTemplateParser.STRUCTURE_EQUALS, i); + } + public ITerminalNode[] STRUCTURE_OR_MARK() { return GetTokens(LGTemplateParser.STRUCTURE_OR_MARK); } + public ITerminalNode STRUCTURE_OR_MARK(int i) { + return GetToken(LGTemplateParser.STRUCTURE_OR_MARK, i); + } + public ITerminalNode[] TEXT_IN_STRUCTURE_BODY() { return GetTokens(LGTemplateParser.TEXT_IN_STRUCTURE_BODY); } + public ITerminalNode TEXT_IN_STRUCTURE_BODY(int i) { + return GetToken(LGTemplateParser.TEXT_IN_STRUCTURE_BODY, i); + } + public ExpressionInStructureContext[] expressionInStructure() { + return GetRuleContexts(); + } + public ExpressionInStructureContext expressionInStructure(int i) { + return GetRuleContext(i); + } + public ITerminalNode[] ESCAPE_CHARACTER_IN_STRUCTURE_BODY() { return GetTokens(LGTemplateParser.ESCAPE_CHARACTER_IN_STRUCTURE_BODY); } + public ITerminalNode ESCAPE_CHARACTER_IN_STRUCTURE_BODY(int i) { + return GetToken(LGTemplateParser.ESCAPE_CHARACTER_IN_STRUCTURE_BODY, i); + } + public ErrorStructureLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_errorStructureLine; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterErrorStructureLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitErrorStructureLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitErrorStructureLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ErrorStructureLineContext errorStructureLine() { + ErrorStructureLineContext _localctx = new ErrorStructureLineContext(Context, State); + EnterRule(_localctx, 12, RULE_errorStructureLine); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 89; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 89; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case STRUCTURE_IDENTIFIER: + { + State = 83; Match(STRUCTURE_IDENTIFIER); + } + break; + case STRUCTURE_EQUALS: + { + State = 84; Match(STRUCTURE_EQUALS); + } + break; + case STRUCTURE_OR_MARK: + { + State = 85; Match(STRUCTURE_OR_MARK); + } + break; + case TEXT_IN_STRUCTURE_BODY: + { + State = 86; Match(TEXT_IN_STRUCTURE_BODY); + } + break; + case EXPRESSION_IN_STRUCTURE_BODY: + { + State = 87; expressionInStructure(); + } + break; + case ESCAPE_CHARACTER_IN_STRUCTURE_BODY: + { + State = 88; Match(ESCAPE_CHARACTER_IN_STRUCTURE_BODY); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 91; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,10,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 KeyValueStructureLineContext : ParserRuleContext { + public ITerminalNode STRUCTURE_IDENTIFIER() { return GetToken(LGTemplateParser.STRUCTURE_IDENTIFIER, 0); } + public ITerminalNode STRUCTURE_EQUALS() { return GetToken(LGTemplateParser.STRUCTURE_EQUALS, 0); } + public KeyValueStructureValueContext[] keyValueStructureValue() { + return GetRuleContexts(); + } + public KeyValueStructureValueContext keyValueStructureValue(int i) { + return GetRuleContext(i); + } + public ITerminalNode[] STRUCTURE_OR_MARK() { return GetTokens(LGTemplateParser.STRUCTURE_OR_MARK); } + public ITerminalNode STRUCTURE_OR_MARK(int i) { + return GetToken(LGTemplateParser.STRUCTURE_OR_MARK, i); + } + public KeyValueStructureLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_keyValueStructureLine; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterKeyValueStructureLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitKeyValueStructureLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitKeyValueStructureLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public KeyValueStructureLineContext keyValueStructureLine() { + KeyValueStructureLineContext _localctx = new KeyValueStructureLineContext(Context, State); + EnterRule(_localctx, 14, RULE_keyValueStructureLine); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 93; Match(STRUCTURE_IDENTIFIER); + State = 94; Match(STRUCTURE_EQUALS); + State = 95; keyValueStructureValue(); + State = 100; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==STRUCTURE_OR_MARK) { + { + { + State = 96; Match(STRUCTURE_OR_MARK); + State = 97; keyValueStructureValue(); + } + } + State = 102; + 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 KeyValueStructureValueContext : ParserRuleContext { + public ITerminalNode[] TEXT_IN_STRUCTURE_BODY() { return GetTokens(LGTemplateParser.TEXT_IN_STRUCTURE_BODY); } + public ITerminalNode TEXT_IN_STRUCTURE_BODY(int i) { + return GetToken(LGTemplateParser.TEXT_IN_STRUCTURE_BODY, i); + } + public ExpressionInStructureContext[] expressionInStructure() { + return GetRuleContexts(); + } + public ExpressionInStructureContext expressionInStructure(int i) { + return GetRuleContext(i); + } + public ITerminalNode[] ESCAPE_CHARACTER_IN_STRUCTURE_BODY() { return GetTokens(LGTemplateParser.ESCAPE_CHARACTER_IN_STRUCTURE_BODY); } + public ITerminalNode ESCAPE_CHARACTER_IN_STRUCTURE_BODY(int i) { + return GetToken(LGTemplateParser.ESCAPE_CHARACTER_IN_STRUCTURE_BODY, i); + } + public KeyValueStructureValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_keyValueStructureValue; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterKeyValueStructureValue(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitKeyValueStructureValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitKeyValueStructureValue(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public KeyValueStructureValueContext keyValueStructureValue() { + KeyValueStructureValueContext _localctx = new KeyValueStructureValueContext(Context, State); + EnterRule(_localctx, 16, RULE_keyValueStructureValue); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 106; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + State = 106; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case TEXT_IN_STRUCTURE_BODY: + { + State = 103; Match(TEXT_IN_STRUCTURE_BODY); + } + break; + case EXPRESSION_IN_STRUCTURE_BODY: + { + State = 104; expressionInStructure(); + } + break; + case ESCAPE_CHARACTER_IN_STRUCTURE_BODY: + { + State = 105; Match(ESCAPE_CHARACTER_IN_STRUCTURE_BODY); + } + break; + default: + throw new NoViableAltException(this); + } + } + State = 108; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ESCAPE_CHARACTER_IN_STRUCTURE_BODY) | (1L << EXPRESSION_IN_STRUCTURE_BODY) | (1L << TEXT_IN_STRUCTURE_BODY))) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class StructuredBodyEndLineContext : ParserRuleContext { + public ITerminalNode STRUCTURED_BODY_END() { return GetToken(LGTemplateParser.STRUCTURED_BODY_END, 0); } + public StructuredBodyEndLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_structuredBodyEndLine; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterStructuredBodyEndLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitStructuredBodyEndLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitStructuredBodyEndLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StructuredBodyEndLineContext structuredBodyEndLine() { + StructuredBodyEndLineContext _localctx = new StructuredBodyEndLineContext(Context, State); + EnterRule(_localctx, 18, RULE_structuredBodyEndLine); + try { + EnterOuterAlt(_localctx, 1); + { + State = 110; Match(STRUCTURED_BODY_END); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NormalTemplateBodyContext : ParserRuleContext { + public TemplateStringContext[] templateString() { + return GetRuleContexts(); + } + public TemplateStringContext templateString(int i) { + return GetRuleContext(i); + } + public NormalTemplateBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_normalTemplateBody; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterNormalTemplateBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitNormalTemplateBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitNormalTemplateBody(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public NormalTemplateBodyContext normalTemplateBody() { + NormalTemplateBodyContext _localctx = new NormalTemplateBodyContext(Context, State); + EnterRule(_localctx, 20, RULE_normalTemplateBody); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 113; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 112; templateString(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 115; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,14,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 TemplateStringContext : ParserRuleContext { + public NormalTemplateStringContext normalTemplateString() { + return GetRuleContext(0); + } + public ErrorTemplateStringContext errorTemplateString() { + return GetRuleContext(0); + } + public TemplateStringContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_templateString; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterTemplateString(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitTemplateString(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitTemplateString(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TemplateStringContext templateString() { + TemplateStringContext _localctx = new TemplateStringContext(Context, State); + EnterRule(_localctx, 22, RULE_templateString); + try { + State = 119; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case DASH: + EnterOuterAlt(_localctx, 1); + { + State = 117; normalTemplateString(); + } + break; + case INVALID_TOKEN: + EnterOuterAlt(_localctx, 2); + { + State = 118; errorTemplateString(); + } + 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 NormalTemplateStringContext : ParserRuleContext { + public ITerminalNode DASH() { return GetToken(LGTemplateParser.DASH, 0); } + public ITerminalNode MULTILINE_PREFIX() { return GetToken(LGTemplateParser.MULTILINE_PREFIX, 0); } + public ITerminalNode[] TEXT() { return GetTokens(LGTemplateParser.TEXT); } + public ITerminalNode TEXT(int i) { + return GetToken(LGTemplateParser.TEXT, i); + } + public ExpressionContext[] expression() { + return GetRuleContexts(); + } + public ExpressionContext expression(int i) { + return GetRuleContext(i); + } + public ITerminalNode[] ESCAPE_CHARACTER() { return GetTokens(LGTemplateParser.ESCAPE_CHARACTER); } + public ITerminalNode ESCAPE_CHARACTER(int i) { + return GetToken(LGTemplateParser.ESCAPE_CHARACTER, i); + } + public ITerminalNode MULTILINE_SUFFIX() { return GetToken(LGTemplateParser.MULTILINE_SUFFIX, 0); } + public NormalTemplateStringContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_normalTemplateString; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterNormalTemplateString(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitNormalTemplateString(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitNormalTemplateString(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public NormalTemplateStringContext normalTemplateString() { + NormalTemplateStringContext _localctx = new NormalTemplateStringContext(Context, State); + EnterRule(_localctx, 24, RULE_normalTemplateString); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 121; Match(DASH); + State = 123; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==MULTILINE_PREFIX) { + { + State = 122; Match(MULTILINE_PREFIX); + } + } + + State = 130; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ESCAPE_CHARACTER) | (1L << EXPRESSION) | (1L << TEXT))) != 0)) { + { + State = 128; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case TEXT: + { + State = 125; Match(TEXT); + } + break; + case EXPRESSION: + { + State = 126; expression(); + } + break; + case ESCAPE_CHARACTER: + { + State = 127; Match(ESCAPE_CHARACTER); + } + break; + default: + throw new NoViableAltException(this); + } + } + State = 132; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 134; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==MULTILINE_SUFFIX) { + { + State = 133; Match(MULTILINE_SUFFIX); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ErrorTemplateStringContext : ParserRuleContext { + public ITerminalNode[] INVALID_TOKEN() { return GetTokens(LGTemplateParser.INVALID_TOKEN); } + public ITerminalNode INVALID_TOKEN(int i) { + return GetToken(LGTemplateParser.INVALID_TOKEN, i); + } + public ErrorTemplateStringContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_errorTemplateString; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterErrorTemplateString(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitErrorTemplateString(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitErrorTemplateString(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ErrorTemplateStringContext errorTemplateString() { + ErrorTemplateStringContext _localctx = new ErrorTemplateStringContext(Context, State); + EnterRule(_localctx, 26, RULE_errorTemplateString); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 137; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 136; Match(INVALID_TOKEN); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 139; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,20,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 IfElseTemplateBodyContext : ParserRuleContext { + public IfConditionRuleContext[] ifConditionRule() { + return GetRuleContexts(); + } + public IfConditionRuleContext ifConditionRule(int i) { + return GetRuleContext(i); + } + public IfElseTemplateBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifElseTemplateBody; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterIfElseTemplateBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitIfElseTemplateBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfElseTemplateBody(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfElseTemplateBodyContext ifElseTemplateBody() { + IfElseTemplateBodyContext _localctx = new IfElseTemplateBodyContext(Context, State); + EnterRule(_localctx, 28, RULE_ifElseTemplateBody); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 142; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 141; ifConditionRule(); + } + } + State = 144; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==DASH ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfConditionRuleContext : ParserRuleContext { + public IfConditionContext ifCondition() { + return GetRuleContext(0); + } + public NormalTemplateBodyContext normalTemplateBody() { + return GetRuleContext(0); + } + public IfConditionRuleContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifConditionRule; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterIfConditionRule(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitIfConditionRule(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfConditionRule(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfConditionRuleContext ifConditionRule() { + IfConditionRuleContext _localctx = new IfConditionRuleContext(Context, State); + EnterRule(_localctx, 30, RULE_ifConditionRule); + try { + EnterOuterAlt(_localctx, 1); + { + State = 146; ifCondition(); + State = 148; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,22,Context) ) { + case 1: + { + State = 147; normalTemplateBody(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfConditionContext : ParserRuleContext { + public ITerminalNode DASH() { return GetToken(LGTemplateParser.DASH, 0); } + public ITerminalNode IF() { return GetToken(LGTemplateParser.IF, 0); } + public ITerminalNode ELSE() { return GetToken(LGTemplateParser.ELSE, 0); } + public ITerminalNode ELSEIF() { return GetToken(LGTemplateParser.ELSEIF, 0); } + public ITerminalNode[] WS() { return GetTokens(LGTemplateParser.WS); } + public ITerminalNode WS(int i) { + return GetToken(LGTemplateParser.WS, i); + } + public ITerminalNode[] TEXT() { return GetTokens(LGTemplateParser.TEXT); } + public ITerminalNode TEXT(int i) { + return GetToken(LGTemplateParser.TEXT, i); + } + public ExpressionContext[] expression() { + return GetRuleContexts(); + } + public ExpressionContext expression(int i) { + return GetRuleContext(i); + } + public IfConditionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifCondition; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterIfCondition(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitIfCondition(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfCondition(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfConditionContext ifCondition() { + IfConditionContext _localctx = new IfConditionContext(Context, State); + EnterRule(_localctx, 32, RULE_ifCondition); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 150; Match(DASH); + State = 151; + _la = TokenStream.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << IF) | (1L << ELSEIF) | (1L << ELSE))) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 157; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WS) | (1L << EXPRESSION) | (1L << TEXT))) != 0)) { + { + State = 155; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case WS: + { + State = 152; Match(WS); + } + break; + case TEXT: + { + State = 153; Match(TEXT); + } + break; + case EXPRESSION: + { + State = 154; expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + State = 159; + 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 SwitchCaseTemplateBodyContext : ParserRuleContext { + public SwitchCaseRuleContext[] switchCaseRule() { + return GetRuleContexts(); + } + public SwitchCaseRuleContext switchCaseRule(int i) { + return GetRuleContext(i); + } + public SwitchCaseTemplateBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_switchCaseTemplateBody; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterSwitchCaseTemplateBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitSwitchCaseTemplateBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitSwitchCaseTemplateBody(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SwitchCaseTemplateBodyContext switchCaseTemplateBody() { + SwitchCaseTemplateBodyContext _localctx = new SwitchCaseTemplateBodyContext(Context, State); + EnterRule(_localctx, 34, RULE_switchCaseTemplateBody); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 161; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 160; switchCaseRule(); + } + } + State = 163; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==DASH ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SwitchCaseRuleContext : ParserRuleContext { + public SwitchCaseStatContext switchCaseStat() { + return GetRuleContext(0); + } + public NormalTemplateBodyContext normalTemplateBody() { + return GetRuleContext(0); + } + public SwitchCaseRuleContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_switchCaseRule; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterSwitchCaseRule(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitSwitchCaseRule(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitSwitchCaseRule(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SwitchCaseRuleContext switchCaseRule() { + SwitchCaseRuleContext _localctx = new SwitchCaseRuleContext(Context, State); + EnterRule(_localctx, 36, RULE_switchCaseRule); + try { + EnterOuterAlt(_localctx, 1); + { + State = 165; switchCaseStat(); + State = 167; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,26,Context) ) { + case 1: + { + State = 166; normalTemplateBody(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SwitchCaseStatContext : ParserRuleContext { + public ITerminalNode DASH() { return GetToken(LGTemplateParser.DASH, 0); } + public ITerminalNode SWITCH() { return GetToken(LGTemplateParser.SWITCH, 0); } + public ITerminalNode CASE() { return GetToken(LGTemplateParser.CASE, 0); } + public ITerminalNode DEFAULT() { return GetToken(LGTemplateParser.DEFAULT, 0); } + public ITerminalNode[] WS() { return GetTokens(LGTemplateParser.WS); } + public ITerminalNode WS(int i) { + return GetToken(LGTemplateParser.WS, i); + } + public ITerminalNode[] TEXT() { return GetTokens(LGTemplateParser.TEXT); } + public ITerminalNode TEXT(int i) { + return GetToken(LGTemplateParser.TEXT, i); + } + public ExpressionContext[] expression() { + return GetRuleContexts(); + } + public ExpressionContext expression(int i) { + return GetRuleContext(i); + } + public SwitchCaseStatContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_switchCaseStat; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterSwitchCaseStat(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitSwitchCaseStat(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitSwitchCaseStat(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SwitchCaseStatContext switchCaseStat() { + SwitchCaseStatContext _localctx = new SwitchCaseStatContext(Context, State); + EnterRule(_localctx, 38, RULE_switchCaseStat); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 169; Match(DASH); + State = 170; + _la = TokenStream.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << SWITCH) | (1L << CASE) | (1L << DEFAULT))) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 176; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << WS) | (1L << EXPRESSION) | (1L << TEXT))) != 0)) { + { + State = 174; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case WS: + { + State = 171; Match(WS); + } + break; + case TEXT: + { + State = 172; Match(TEXT); + } + break; + case EXPRESSION: + { + State = 173; expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + State = 178; + 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 ExpressionContext : ParserRuleContext { + public ITerminalNode EXPRESSION() { return GetToken(LGTemplateParser.EXPRESSION, 0); } + public ExpressionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_expression; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterExpression(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitExpression(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitExpression(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ExpressionContext expression() { + ExpressionContext _localctx = new ExpressionContext(Context, State); + EnterRule(_localctx, 40, RULE_expression); + try { + EnterOuterAlt(_localctx, 1); + { + State = 179; Match(EXPRESSION); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ExpressionInStructureContext : ParserRuleContext { + public ITerminalNode EXPRESSION_IN_STRUCTURE_BODY() { return GetToken(LGTemplateParser.EXPRESSION_IN_STRUCTURE_BODY, 0); } + public ExpressionInStructureContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_expressionInStructure; } } + public override void EnterRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.EnterExpressionInStructure(this); + } + public override void ExitRule(IParseTreeListener listener) { + ILGTemplateParserListener typedListener = listener as ILGTemplateParserListener; + if (typedListener != null) typedListener.ExitExpressionInStructure(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + ILGTemplateParserVisitor typedVisitor = visitor as ILGTemplateParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitExpressionInStructure(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ExpressionInStructureContext expressionInStructure() { + ExpressionInStructureContext _localctx = new ExpressionInStructureContext(Context, State); + EnterRule(_localctx, 42, RULE_expressionInStructure); + try { + EnterOuterAlt(_localctx, 1); + { + State = 181; Match(EXPRESSION_IN_STRUCTURE_BODY); + } + } + 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', '#', '\xBA', '\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', '\x3', '\x2', '\x3', + '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', '\x3', + '\x3', '\x5', '\x3', '\x36', '\n', '\x3', '\x3', '\x4', '\x3', '\x4', + '\x5', '\x4', ':', '\n', '\x4', '\x3', '\x4', '\x3', '\x4', '\x6', '\x4', + '>', '\n', '\x4', '\r', '\x4', '\xE', '\x4', '?', '\x5', '\x4', '\x42', + '\n', '\x4', '\x3', '\x4', '\x5', '\x4', '\x45', '\n', '\x4', '\x3', '\x5', + '\x3', '\x5', '\x3', '\x5', '\x5', '\x5', 'J', '\n', '\x5', '\x3', '\x6', + '\a', '\x6', 'M', '\n', '\x6', '\f', '\x6', '\xE', '\x6', 'P', '\v', '\x6', + '\x3', '\a', '\x3', '\a', '\x5', '\a', 'T', '\n', '\a', '\x3', '\b', '\x3', + '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x6', '\b', + '\\', '\n', '\b', '\r', '\b', '\xE', '\b', ']', '\x3', '\t', '\x3', '\t', + '\x3', '\t', '\x3', '\t', '\x3', '\t', '\a', '\t', '\x65', '\n', '\t', + '\f', '\t', '\xE', '\t', 'h', '\v', '\t', '\x3', '\n', '\x3', '\n', '\x3', + '\n', '\x6', '\n', 'm', '\n', '\n', '\r', '\n', '\xE', '\n', 'n', '\x3', + '\v', '\x3', '\v', '\x3', '\f', '\x6', '\f', 't', '\n', '\f', '\r', '\f', + '\xE', '\f', 'u', '\x3', '\r', '\x3', '\r', '\x5', '\r', 'z', '\n', '\r', + '\x3', '\xE', '\x3', '\xE', '\x5', '\xE', '~', '\n', '\xE', '\x3', '\xE', + '\x3', '\xE', '\x3', '\xE', '\a', '\xE', '\x83', '\n', '\xE', '\f', '\xE', + '\xE', '\xE', '\x86', '\v', '\xE', '\x3', '\xE', '\x5', '\xE', '\x89', + '\n', '\xE', '\x3', '\xF', '\x6', '\xF', '\x8C', '\n', '\xF', '\r', '\xF', + '\xE', '\xF', '\x8D', '\x3', '\x10', '\x6', '\x10', '\x91', '\n', '\x10', + '\r', '\x10', '\xE', '\x10', '\x92', '\x3', '\x11', '\x3', '\x11', '\x5', + '\x11', '\x97', '\n', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', + '\x3', '\x12', '\x3', '\x12', '\a', '\x12', '\x9E', '\n', '\x12', '\f', + '\x12', '\xE', '\x12', '\xA1', '\v', '\x12', '\x3', '\x13', '\x6', '\x13', + '\xA4', '\n', '\x13', '\r', '\x13', '\xE', '\x13', '\xA5', '\x3', '\x14', + '\x3', '\x14', '\x5', '\x14', '\xAA', '\n', '\x14', '\x3', '\x15', '\x3', + '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\a', '\x15', '\xB1', + '\n', '\x15', '\f', '\x15', '\xE', '\x15', '\xB4', '\v', '\x15', '\x3', + '\x16', '\x3', '\x16', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x2', + '\x2', '\x18', '\x2', '\x4', '\x6', '\b', '\n', '\f', '\xE', '\x10', '\x12', + '\x14', '\x16', '\x18', '\x1A', '\x1C', '\x1E', ' ', '\"', '$', '&', '(', + '*', ',', '\x2', '\x5', '\x3', '\x2', '\x18', '\x19', '\x3', '\x2', '\f', + '\xE', '\x3', '\x2', '\xF', '\x11', '\x2', '\xCA', '\x2', '.', '\x3', + '\x2', '\x2', '\x2', '\x4', '\x35', '\x3', '\x2', '\x2', '\x2', '\x6', + '\x37', '\x3', '\x2', '\x2', '\x2', '\b', '\x46', '\x3', '\x2', '\x2', + '\x2', '\n', 'N', '\x3', '\x2', '\x2', '\x2', '\f', 'S', '\x3', '\x2', + '\x2', '\x2', '\xE', '[', '\x3', '\x2', '\x2', '\x2', '\x10', '_', '\x3', + '\x2', '\x2', '\x2', '\x12', 'l', '\x3', '\x2', '\x2', '\x2', '\x14', + 'p', '\x3', '\x2', '\x2', '\x2', '\x16', 's', '\x3', '\x2', '\x2', '\x2', + '\x18', 'y', '\x3', '\x2', '\x2', '\x2', '\x1A', '{', '\x3', '\x2', '\x2', + '\x2', '\x1C', '\x8B', '\x3', '\x2', '\x2', '\x2', '\x1E', '\x90', '\x3', + '\x2', '\x2', '\x2', ' ', '\x94', '\x3', '\x2', '\x2', '\x2', '\"', '\x98', + '\x3', '\x2', '\x2', '\x2', '$', '\xA3', '\x3', '\x2', '\x2', '\x2', '&', + '\xA7', '\x3', '\x2', '\x2', '\x2', '(', '\xAB', '\x3', '\x2', '\x2', + '\x2', '*', '\xB5', '\x3', '\x2', '\x2', '\x2', ',', '\xB7', '\x3', '\x2', + '\x2', '\x2', '.', '/', '\x5', '\x4', '\x3', '\x2', '/', '\x30', '\a', + '\x2', '\x2', '\x3', '\x30', '\x3', '\x3', '\x2', '\x2', '\x2', '\x31', + '\x36', '\x5', '\x16', '\f', '\x2', '\x32', '\x36', '\x5', '\x1E', '\x10', + '\x2', '\x33', '\x36', '\x5', '$', '\x13', '\x2', '\x34', '\x36', '\x5', + '\x6', '\x4', '\x2', '\x35', '\x31', '\x3', '\x2', '\x2', '\x2', '\x35', + '\x32', '\x3', '\x2', '\x2', '\x2', '\x35', '\x33', '\x3', '\x2', '\x2', + '\x2', '\x35', '\x34', '\x3', '\x2', '\x2', '\x2', '\x36', '\x5', '\x3', + '\x2', '\x2', '\x2', '\x37', '\x41', '\x5', '\b', '\x5', '\x2', '\x38', + ':', '\x5', '\f', '\a', '\x2', '\x39', '\x38', '\x3', '\x2', '\x2', '\x2', + '\x39', ':', '\x3', '\x2', '\x2', '\x2', ':', ';', '\x3', '\x2', '\x2', + '\x2', ';', '>', '\a', '\x1C', '\x2', '\x2', '<', '>', '\x5', '\xE', '\b', + '\x2', '=', '\x39', '\x3', '\x2', '\x2', '\x2', '=', '<', '\x3', '\x2', + '\x2', '\x2', '>', '?', '\x3', '\x2', '\x2', '\x2', '?', '=', '\x3', '\x2', + '\x2', '\x2', '?', '@', '\x3', '\x2', '\x2', '\x2', '@', '\x42', '\x3', + '\x2', '\x2', '\x2', '\x41', '=', '\x3', '\x2', '\x2', '\x2', '\x41', + '\x42', '\x3', '\x2', '\x2', '\x2', '\x42', '\x44', '\x3', '\x2', '\x2', + '\x2', '\x43', '\x45', '\x5', '\x14', '\v', '\x2', '\x44', '\x43', '\x3', + '\x2', '\x2', '\x2', '\x44', '\x45', '\x3', '\x2', '\x2', '\x2', '\x45', + '\a', '\x3', '\x2', '\x2', '\x2', '\x46', 'I', '\a', '\a', '\x2', '\x2', + 'G', 'J', '\a', '\x18', '\x2', '\x2', 'H', 'J', '\x5', '\n', '\x6', '\x2', + 'I', 'G', '\x3', '\x2', '\x2', '\x2', 'I', 'H', '\x3', '\x2', '\x2', '\x2', + 'J', '\t', '\x3', '\x2', '\x2', '\x2', 'K', 'M', '\t', '\x2', '\x2', '\x2', + 'L', 'K', '\x3', '\x2', '\x2', '\x2', 'M', 'P', '\x3', '\x2', '\x2', '\x2', + 'N', 'L', '\x3', '\x2', '\x2', '\x2', 'N', 'O', '\x3', '\x2', '\x2', '\x2', + 'O', '\v', '\x3', '\x2', '\x2', '\x2', 'P', 'N', '\x3', '\x2', '\x2', + '\x2', 'Q', 'T', '\x5', '\x10', '\t', '\x2', 'R', 'T', '\x5', ',', '\x17', + '\x2', 'S', 'Q', '\x3', '\x2', '\x2', '\x2', 'S', 'R', '\x3', '\x2', '\x2', + '\x2', 'T', '\r', '\x3', '\x2', '\x2', '\x2', 'U', '\\', '\a', '\x1E', + '\x2', '\x2', 'V', '\\', '\a', '\x1F', '\x2', '\x2', 'W', '\\', '\a', + ' ', '\x2', '\x2', 'X', '\\', '\a', '#', '\x2', '\x2', 'Y', '\\', '\x5', + ',', '\x17', '\x2', 'Z', '\\', '\a', '!', '\x2', '\x2', '[', 'U', '\x3', + '\x2', '\x2', '\x2', '[', 'V', '\x3', '\x2', '\x2', '\x2', '[', 'W', '\x3', + '\x2', '\x2', '\x2', '[', 'X', '\x3', '\x2', '\x2', '\x2', '[', 'Y', '\x3', + '\x2', '\x2', '\x2', '[', 'Z', '\x3', '\x2', '\x2', '\x2', '\\', ']', + '\x3', '\x2', '\x2', '\x2', ']', '[', '\x3', '\x2', '\x2', '\x2', ']', + '^', '\x3', '\x2', '\x2', '\x2', '^', '\xF', '\x3', '\x2', '\x2', '\x2', + '_', '`', '\a', '\x1E', '\x2', '\x2', '`', '\x61', '\a', '\x1F', '\x2', + '\x2', '\x61', '\x66', '\x5', '\x12', '\n', '\x2', '\x62', '\x63', '\a', + ' ', '\x2', '\x2', '\x63', '\x65', '\x5', '\x12', '\n', '\x2', '\x64', + '\x62', '\x3', '\x2', '\x2', '\x2', '\x65', 'h', '\x3', '\x2', '\x2', + '\x2', '\x66', '\x64', '\x3', '\x2', '\x2', '\x2', '\x66', 'g', '\x3', + '\x2', '\x2', '\x2', 'g', '\x11', '\x3', '\x2', '\x2', '\x2', 'h', '\x66', + '\x3', '\x2', '\x2', '\x2', 'i', 'm', '\a', '#', '\x2', '\x2', 'j', 'm', + '\x5', ',', '\x17', '\x2', 'k', 'm', '\a', '!', '\x2', '\x2', 'l', 'i', + '\x3', '\x2', '\x2', '\x2', 'l', 'j', '\x3', '\x2', '\x2', '\x2', 'l', + 'k', '\x3', '\x2', '\x2', '\x2', 'm', 'n', '\x3', '\x2', '\x2', '\x2', + 'n', 'l', '\x3', '\x2', '\x2', '\x2', 'n', 'o', '\x3', '\x2', '\x2', '\x2', + 'o', '\x13', '\x3', '\x2', '\x2', '\x2', 'p', 'q', '\a', '\x1D', '\x2', + '\x2', 'q', '\x15', '\x3', '\x2', '\x2', '\x2', 'r', 't', '\x5', '\x18', + '\r', '\x2', 's', 'r', '\x3', '\x2', '\x2', '\x2', 't', 'u', '\x3', '\x2', + '\x2', '\x2', 'u', 's', '\x3', '\x2', '\x2', '\x2', 'u', 'v', '\x3', '\x2', + '\x2', '\x2', 'v', '\x17', '\x3', '\x2', '\x2', '\x2', 'w', 'z', '\x5', + '\x1A', '\xE', '\x2', 'x', 'z', '\x5', '\x1C', '\xF', '\x2', 'y', 'w', + '\x3', '\x2', '\x2', '\x2', 'y', 'x', '\x3', '\x2', '\x2', '\x2', 'z', + '\x19', '\x3', '\x2', '\x2', '\x2', '{', '}', '\a', '\x6', '\x2', '\x2', + '|', '~', '\a', '\n', '\x2', '\x2', '}', '|', '\x3', '\x2', '\x2', '\x2', + '}', '~', '\x3', '\x2', '\x2', '\x2', '~', '\x84', '\x3', '\x2', '\x2', + '\x2', '\x7F', '\x83', '\a', '\x14', '\x2', '\x2', '\x80', '\x83', '\x5', + '*', '\x16', '\x2', '\x81', '\x83', '\a', '\x12', '\x2', '\x2', '\x82', + '\x7F', '\x3', '\x2', '\x2', '\x2', '\x82', '\x80', '\x3', '\x2', '\x2', + '\x2', '\x82', '\x81', '\x3', '\x2', '\x2', '\x2', '\x83', '\x86', '\x3', + '\x2', '\x2', '\x2', '\x84', '\x82', '\x3', '\x2', '\x2', '\x2', '\x84', + '\x85', '\x3', '\x2', '\x2', '\x2', '\x85', '\x88', '\x3', '\x2', '\x2', + '\x2', '\x86', '\x84', '\x3', '\x2', '\x2', '\x2', '\x87', '\x89', '\a', + '\x15', '\x2', '\x2', '\x88', '\x87', '\x3', '\x2', '\x2', '\x2', '\x88', + '\x89', '\x3', '\x2', '\x2', '\x2', '\x89', '\x1B', '\x3', '\x2', '\x2', + '\x2', '\x8A', '\x8C', '\a', '\b', '\x2', '\x2', '\x8B', '\x8A', '\x3', + '\x2', '\x2', '\x2', '\x8C', '\x8D', '\x3', '\x2', '\x2', '\x2', '\x8D', + '\x8B', '\x3', '\x2', '\x2', '\x2', '\x8D', '\x8E', '\x3', '\x2', '\x2', + '\x2', '\x8E', '\x1D', '\x3', '\x2', '\x2', '\x2', '\x8F', '\x91', '\x5', + ' ', '\x11', '\x2', '\x90', '\x8F', '\x3', '\x2', '\x2', '\x2', '\x91', + '\x92', '\x3', '\x2', '\x2', '\x2', '\x92', '\x90', '\x3', '\x2', '\x2', + '\x2', '\x92', '\x93', '\x3', '\x2', '\x2', '\x2', '\x93', '\x1F', '\x3', + '\x2', '\x2', '\x2', '\x94', '\x96', '\x5', '\"', '\x12', '\x2', '\x95', + '\x97', '\x5', '\x16', '\f', '\x2', '\x96', '\x95', '\x3', '\x2', '\x2', + '\x2', '\x96', '\x97', '\x3', '\x2', '\x2', '\x2', '\x97', '!', '\x3', + '\x2', '\x2', '\x2', '\x98', '\x99', '\a', '\x6', '\x2', '\x2', '\x99', + '\x9F', '\t', '\x3', '\x2', '\x2', '\x9A', '\x9E', '\a', '\x3', '\x2', + '\x2', '\x9B', '\x9E', '\a', '\x14', '\x2', '\x2', '\x9C', '\x9E', '\x5', + '*', '\x16', '\x2', '\x9D', '\x9A', '\x3', '\x2', '\x2', '\x2', '\x9D', + '\x9B', '\x3', '\x2', '\x2', '\x2', '\x9D', '\x9C', '\x3', '\x2', '\x2', + '\x2', '\x9E', '\xA1', '\x3', '\x2', '\x2', '\x2', '\x9F', '\x9D', '\x3', + '\x2', '\x2', '\x2', '\x9F', '\xA0', '\x3', '\x2', '\x2', '\x2', '\xA0', + '#', '\x3', '\x2', '\x2', '\x2', '\xA1', '\x9F', '\x3', '\x2', '\x2', + '\x2', '\xA2', '\xA4', '\x5', '&', '\x14', '\x2', '\xA3', '\xA2', '\x3', + '\x2', '\x2', '\x2', '\xA4', '\xA5', '\x3', '\x2', '\x2', '\x2', '\xA5', + '\xA3', '\x3', '\x2', '\x2', '\x2', '\xA5', '\xA6', '\x3', '\x2', '\x2', + '\x2', '\xA6', '%', '\x3', '\x2', '\x2', '\x2', '\xA7', '\xA9', '\x5', + '(', '\x15', '\x2', '\xA8', '\xAA', '\x5', '\x16', '\f', '\x2', '\xA9', + '\xA8', '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAA', '\x3', '\x2', '\x2', + '\x2', '\xAA', '\'', '\x3', '\x2', '\x2', '\x2', '\xAB', '\xAC', '\a', + '\x6', '\x2', '\x2', '\xAC', '\xB2', '\t', '\x4', '\x2', '\x2', '\xAD', + '\xB1', '\a', '\x3', '\x2', '\x2', '\xAE', '\xB1', '\a', '\x14', '\x2', + '\x2', '\xAF', '\xB1', '\x5', '*', '\x16', '\x2', '\xB0', '\xAD', '\x3', + '\x2', '\x2', '\x2', '\xB0', '\xAE', '\x3', '\x2', '\x2', '\x2', '\xB0', + '\xAF', '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB4', '\x3', '\x2', '\x2', + '\x2', '\xB2', '\xB0', '\x3', '\x2', '\x2', '\x2', '\xB2', '\xB3', '\x3', + '\x2', '\x2', '\x2', '\xB3', ')', '\x3', '\x2', '\x2', '\x2', '\xB4', + '\xB2', '\x3', '\x2', '\x2', '\x2', '\xB5', '\xB6', '\a', '\x13', '\x2', + '\x2', '\xB6', '+', '\x3', '\x2', '\x2', '\x2', '\xB7', '\xB8', '\a', + '\"', '\x2', '\x2', '\xB8', '-', '\x3', '\x2', '\x2', '\x2', '\x1F', '\x35', + '\x39', '=', '?', '\x41', '\x44', 'I', 'N', 'S', '[', ']', '\x66', 'l', + 'n', 'u', 'y', '}', '\x82', '\x84', '\x88', '\x8D', '\x92', '\x96', '\x9D', + '\x9F', '\xA5', '\xA9', '\xB0', '\xB2', + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserBaseListener.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserBaseListener.cs new file mode 100644 index 0000000000..8cbecc9f3d --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserBaseListener.cs @@ -0,0 +1,359 @@ +//------------------------------------------------------------------------------ +// +// 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 LGTemplateParser.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 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 LGTemplateParserBaseListener : ILGTemplateParserListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterContext([NotNull] LGTemplateParser.ContextContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitContext([NotNull] LGTemplateParser.ContextContext context) { } + /// + /// Enter a parse tree produced by the normalBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNormalBody([NotNull] LGTemplateParser.NormalBodyContext context) { } + /// + /// Exit a parse tree produced by the normalBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNormalBody([NotNull] LGTemplateParser.NormalBodyContext context) { } + /// + /// Enter a parse tree produced by the ifElseBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfElseBody([NotNull] LGTemplateParser.IfElseBodyContext context) { } + /// + /// Exit a parse tree produced by the ifElseBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfElseBody([NotNull] LGTemplateParser.IfElseBodyContext context) { } + /// + /// Enter a parse tree produced by the switchCaseBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSwitchCaseBody([NotNull] LGTemplateParser.SwitchCaseBodyContext context) { } + /// + /// Exit a parse tree produced by the switchCaseBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSwitchCaseBody([NotNull] LGTemplateParser.SwitchCaseBodyContext context) { } + /// + /// Enter a parse tree produced by the structuredBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStructuredBody([NotNull] LGTemplateParser.StructuredBodyContext context) { } + /// + /// Exit a parse tree produced by the structuredBody + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStructuredBody([NotNull] LGTemplateParser.StructuredBodyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStructuredBodyNameLine([NotNull] LGTemplateParser.StructuredBodyNameLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStructuredBodyNameLine([NotNull] LGTemplateParser.StructuredBodyNameLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterErrorStructuredName([NotNull] LGTemplateParser.ErrorStructuredNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitErrorStructuredName([NotNull] LGTemplateParser.ErrorStructuredNameContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStructuredBodyContentLine([NotNull] LGTemplateParser.StructuredBodyContentLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStructuredBodyContentLine([NotNull] LGTemplateParser.StructuredBodyContentLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterErrorStructureLine([NotNull] LGTemplateParser.ErrorStructureLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitErrorStructureLine([NotNull] LGTemplateParser.ErrorStructureLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterKeyValueStructureLine([NotNull] LGTemplateParser.KeyValueStructureLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitKeyValueStructureLine([NotNull] LGTemplateParser.KeyValueStructureLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStructuredBodyEndLine([NotNull] LGTemplateParser.StructuredBodyEndLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStructuredBodyEndLine([NotNull] LGTemplateParser.StructuredBodyEndLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNormalTemplateBody([NotNull] LGTemplateParser.NormalTemplateBodyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNormalTemplateBody([NotNull] LGTemplateParser.NormalTemplateBodyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTemplateString([NotNull] LGTemplateParser.TemplateStringContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTemplateString([NotNull] LGTemplateParser.TemplateStringContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNormalTemplateString([NotNull] LGTemplateParser.NormalTemplateStringContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNormalTemplateString([NotNull] LGTemplateParser.NormalTemplateStringContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterErrorTemplateString([NotNull] LGTemplateParser.ErrorTemplateStringContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitErrorTemplateString([NotNull] LGTemplateParser.ErrorTemplateStringContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfElseTemplateBody([NotNull] LGTemplateParser.IfElseTemplateBodyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfElseTemplateBody([NotNull] LGTemplateParser.IfElseTemplateBodyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfConditionRule([NotNull] LGTemplateParser.IfConditionRuleContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfConditionRule([NotNull] LGTemplateParser.IfConditionRuleContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfCondition([NotNull] LGTemplateParser.IfConditionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfCondition([NotNull] LGTemplateParser.IfConditionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSwitchCaseTemplateBody([NotNull] LGTemplateParser.SwitchCaseTemplateBodyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSwitchCaseTemplateBody([NotNull] LGTemplateParser.SwitchCaseTemplateBodyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSwitchCaseRule([NotNull] LGTemplateParser.SwitchCaseRuleContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSwitchCaseRule([NotNull] LGTemplateParser.SwitchCaseRuleContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSwitchCaseStat([NotNull] LGTemplateParser.SwitchCaseStatContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSwitchCaseStat([NotNull] LGTemplateParser.SwitchCaseStatContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExpression([NotNull] LGTemplateParser.ExpressionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExpression([NotNull] LGTemplateParser.ExpressionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExpressionInStructure([NotNull] LGTemplateParser.ExpressionInStructureContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExpressionInStructure([NotNull] LGTemplateParser.ExpressionInStructureContext 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/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserBaseVisitor.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserBaseVisitor.cs new file mode 100644 index 0000000000..9fd4e7babc --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserBaseVisitor.cs @@ -0,0 +1,291 @@ +//------------------------------------------------------------------------------ +// +// 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 LGTemplateParser.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 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 LGTemplateParserBaseVisitor : AbstractParseTreeVisitor, ILGTemplateParserVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitContext([NotNull] LGTemplateParser.ContextContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the normalBody + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitNormalBody([NotNull] LGTemplateParser.NormalBodyContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the ifElseBody + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIfElseBody([NotNull] LGTemplateParser.IfElseBodyContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the switchCaseBody + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSwitchCaseBody([NotNull] LGTemplateParser.SwitchCaseBodyContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by the structuredBody + /// labeled alternative in . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitStructuredBody([NotNull] LGTemplateParser.StructuredBodyContext 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 VisitStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext 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 VisitStructuredBodyNameLine([NotNull] LGTemplateParser.StructuredBodyNameLineContext 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 VisitErrorStructuredName([NotNull] LGTemplateParser.ErrorStructuredNameContext 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 VisitStructuredBodyContentLine([NotNull] LGTemplateParser.StructuredBodyContentLineContext 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 VisitErrorStructureLine([NotNull] LGTemplateParser.ErrorStructureLineContext 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 VisitKeyValueStructureLine([NotNull] LGTemplateParser.KeyValueStructureLineContext 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 VisitKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext 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 VisitStructuredBodyEndLine([NotNull] LGTemplateParser.StructuredBodyEndLineContext 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 VisitNormalTemplateBody([NotNull] LGTemplateParser.NormalTemplateBodyContext 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 VisitTemplateString([NotNull] LGTemplateParser.TemplateStringContext 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 VisitNormalTemplateString([NotNull] LGTemplateParser.NormalTemplateStringContext 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 VisitErrorTemplateString([NotNull] LGTemplateParser.ErrorTemplateStringContext 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 VisitIfElseTemplateBody([NotNull] LGTemplateParser.IfElseTemplateBodyContext 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 VisitIfConditionRule([NotNull] LGTemplateParser.IfConditionRuleContext 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 VisitIfCondition([NotNull] LGTemplateParser.IfConditionContext 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 VisitSwitchCaseTemplateBody([NotNull] LGTemplateParser.SwitchCaseTemplateBodyContext 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 VisitSwitchCaseRule([NotNull] LGTemplateParser.SwitchCaseRuleContext 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 VisitSwitchCaseStat([NotNull] LGTemplateParser.SwitchCaseStatContext 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 VisitExpression([NotNull] LGTemplateParser.ExpressionContext 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 VisitExpressionInStructure([NotNull] LGTemplateParser.ExpressionInStructureContext context) { return VisitChildren(context); } +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserListener.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserListener.cs new file mode 100644 index 0000000000..df7e9ecb5e --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserListener.cs @@ -0,0 +1,292 @@ +//------------------------------------------------------------------------------ +// +// 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 LGTemplateParser.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 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 ILGTemplateParserListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterContext([NotNull] LGTemplateParser.ContextContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitContext([NotNull] LGTemplateParser.ContextContext context); + /// + /// Enter a parse tree produced by the normalBody + /// labeled alternative in . + /// + /// The parse tree. + void EnterNormalBody([NotNull] LGTemplateParser.NormalBodyContext context); + /// + /// Exit a parse tree produced by the normalBody + /// labeled alternative in . + /// + /// The parse tree. + void ExitNormalBody([NotNull] LGTemplateParser.NormalBodyContext context); + /// + /// Enter a parse tree produced by the ifElseBody + /// labeled alternative in . + /// + /// The parse tree. + void EnterIfElseBody([NotNull] LGTemplateParser.IfElseBodyContext context); + /// + /// Exit a parse tree produced by the ifElseBody + /// labeled alternative in . + /// + /// The parse tree. + void ExitIfElseBody([NotNull] LGTemplateParser.IfElseBodyContext context); + /// + /// Enter a parse tree produced by the switchCaseBody + /// labeled alternative in . + /// + /// The parse tree. + void EnterSwitchCaseBody([NotNull] LGTemplateParser.SwitchCaseBodyContext context); + /// + /// Exit a parse tree produced by the switchCaseBody + /// labeled alternative in . + /// + /// The parse tree. + void ExitSwitchCaseBody([NotNull] LGTemplateParser.SwitchCaseBodyContext context); + /// + /// Enter a parse tree produced by the structuredBody + /// labeled alternative in . + /// + /// The parse tree. + void EnterStructuredBody([NotNull] LGTemplateParser.StructuredBodyContext context); + /// + /// Exit a parse tree produced by the structuredBody + /// labeled alternative in . + /// + /// The parse tree. + void ExitStructuredBody([NotNull] LGTemplateParser.StructuredBodyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStructuredBodyNameLine([NotNull] LGTemplateParser.StructuredBodyNameLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStructuredBodyNameLine([NotNull] LGTemplateParser.StructuredBodyNameLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterErrorStructuredName([NotNull] LGTemplateParser.ErrorStructuredNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitErrorStructuredName([NotNull] LGTemplateParser.ErrorStructuredNameContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStructuredBodyContentLine([NotNull] LGTemplateParser.StructuredBodyContentLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStructuredBodyContentLine([NotNull] LGTemplateParser.StructuredBodyContentLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterErrorStructureLine([NotNull] LGTemplateParser.ErrorStructureLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitErrorStructureLine([NotNull] LGTemplateParser.ErrorStructureLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterKeyValueStructureLine([NotNull] LGTemplateParser.KeyValueStructureLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitKeyValueStructureLine([NotNull] LGTemplateParser.KeyValueStructureLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStructuredBodyEndLine([NotNull] LGTemplateParser.StructuredBodyEndLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStructuredBodyEndLine([NotNull] LGTemplateParser.StructuredBodyEndLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNormalTemplateBody([NotNull] LGTemplateParser.NormalTemplateBodyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNormalTemplateBody([NotNull] LGTemplateParser.NormalTemplateBodyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTemplateString([NotNull] LGTemplateParser.TemplateStringContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTemplateString([NotNull] LGTemplateParser.TemplateStringContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNormalTemplateString([NotNull] LGTemplateParser.NormalTemplateStringContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNormalTemplateString([NotNull] LGTemplateParser.NormalTemplateStringContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterErrorTemplateString([NotNull] LGTemplateParser.ErrorTemplateStringContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitErrorTemplateString([NotNull] LGTemplateParser.ErrorTemplateStringContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfElseTemplateBody([NotNull] LGTemplateParser.IfElseTemplateBodyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfElseTemplateBody([NotNull] LGTemplateParser.IfElseTemplateBodyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfConditionRule([NotNull] LGTemplateParser.IfConditionRuleContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfConditionRule([NotNull] LGTemplateParser.IfConditionRuleContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfCondition([NotNull] LGTemplateParser.IfConditionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfCondition([NotNull] LGTemplateParser.IfConditionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSwitchCaseTemplateBody([NotNull] LGTemplateParser.SwitchCaseTemplateBodyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSwitchCaseTemplateBody([NotNull] LGTemplateParser.SwitchCaseTemplateBodyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSwitchCaseRule([NotNull] LGTemplateParser.SwitchCaseRuleContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSwitchCaseRule([NotNull] LGTemplateParser.SwitchCaseRuleContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSwitchCaseStat([NotNull] LGTemplateParser.SwitchCaseStatContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSwitchCaseStat([NotNull] LGTemplateParser.SwitchCaseStatContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExpression([NotNull] LGTemplateParser.ExpressionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExpression([NotNull] LGTemplateParser.ExpressionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExpressionInStructure([NotNull] LGTemplateParser.ExpressionInStructureContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExpressionInStructure([NotNull] LGTemplateParser.ExpressionInStructureContext context); +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserVisitor.cs b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserVisitor.cs new file mode 100644 index 0000000000..b948d76956 --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Generated/LGTemplateParserVisitor.cs @@ -0,0 +1,189 @@ +//------------------------------------------------------------------------------ +// +// 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 LGTemplateParser.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 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 ILGTemplateParserVisitor : IParseTreeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitContext([NotNull] LGTemplateParser.ContextContext context); + /// + /// Visit a parse tree produced by the normalBody + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitNormalBody([NotNull] LGTemplateParser.NormalBodyContext context); + /// + /// Visit a parse tree produced by the ifElseBody + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfElseBody([NotNull] LGTemplateParser.IfElseBodyContext context); + /// + /// Visit a parse tree produced by the switchCaseBody + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitSwitchCaseBody([NotNull] LGTemplateParser.SwitchCaseBodyContext context); + /// + /// Visit a parse tree produced by the structuredBody + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitStructuredBody([NotNull] LGTemplateParser.StructuredBodyContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStructuredTemplateBody([NotNull] LGTemplateParser.StructuredTemplateBodyContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStructuredBodyNameLine([NotNull] LGTemplateParser.StructuredBodyNameLineContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitErrorStructuredName([NotNull] LGTemplateParser.ErrorStructuredNameContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStructuredBodyContentLine([NotNull] LGTemplateParser.StructuredBodyContentLineContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitErrorStructureLine([NotNull] LGTemplateParser.ErrorStructureLineContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitKeyValueStructureLine([NotNull] LGTemplateParser.KeyValueStructureLineContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitKeyValueStructureValue([NotNull] LGTemplateParser.KeyValueStructureValueContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStructuredBodyEndLine([NotNull] LGTemplateParser.StructuredBodyEndLineContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitNormalTemplateBody([NotNull] LGTemplateParser.NormalTemplateBodyContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTemplateString([NotNull] LGTemplateParser.TemplateStringContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitNormalTemplateString([NotNull] LGTemplateParser.NormalTemplateStringContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitErrorTemplateString([NotNull] LGTemplateParser.ErrorTemplateStringContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfElseTemplateBody([NotNull] LGTemplateParser.IfElseTemplateBodyContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfConditionRule([NotNull] LGTemplateParser.IfConditionRuleContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfCondition([NotNull] LGTemplateParser.IfConditionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSwitchCaseTemplateBody([NotNull] LGTemplateParser.SwitchCaseTemplateBodyContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSwitchCaseRule([NotNull] LGTemplateParser.SwitchCaseRuleContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSwitchCaseStat([NotNull] LGTemplateParser.SwitchCaseStatContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitExpression([NotNull] LGTemplateParser.ExpressionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitExpressionInStructure([NotNull] LGTemplateParser.ExpressionInStructureContext context); +} diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/LGFileLexer.g4 b/libraries/Microsoft.Bot.Builder.LanguageGeneration/LGFileLexer.g4 index 0373b1c0a7..da3caa1495 100644 --- a/libraries/Microsoft.Bot.Builder.LanguageGeneration/LGFileLexer.g4 +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/LGFileLexer.g4 @@ -17,11 +17,11 @@ COMMENT : WHITESPACE* '>' ~('\r'|'\n')* { !startTemplate }?; IMPORT : WHITESPACE* '[' ~[\r\n[\]]*? ']' '(' ~[\r\n()]*? ')' WHITESPACE* { !startTemplate }?; -TEMPLATE_NAME_LINE : WHITESPACE* '#' ~('\r'|'\n')* { _tokenStartCharPositionInLine == 0}? { startTemplate = true; }; +TEMPLATE_NAME_LINE : WHITESPACE* '#' ~('\r'|'\n')* { TokenStartColumn == 0}? { startTemplate = true; }; -INLINE_MULTILINE: WHITESPACE* '-' WHITESPACE* '```' ~('\r'|'\n')* '```' WHITESPACE* { startTemplate && _tokenStartCharPositionInLine == 0 }?; +INLINE_MULTILINE: WHITESPACE* '-' WHITESPACE* '```' ~('\r'|'\n')* '```' WHITESPACE* { startTemplate && TokenStartColumn == 0 }?; -MULTILINE_PREFIX: WHITESPACE* '-' WHITESPACE* '```' ~('\r'|'\n')* { startTemplate && _tokenStartCharPositionInLine == 0 }? -> pushMode(MULTILINE_MODE); +MULTILINE_PREFIX: WHITESPACE* '-' WHITESPACE* '```' ~('\r'|'\n')* { startTemplate && TokenStartColumn == 0 }? -> pushMode(MULTILINE_MODE); TEMPLATE_BODY : ~('\r'|'\n')+ { startTemplate }?; diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj index e82b219a23..196c5a1106 100644 --- a/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/Microsoft.Bot.Builder.LanguageGeneration.csproj @@ -23,11 +23,7 @@ - - all - runtime; build; native; contentfiles; analyzers - - + @@ -45,4 +41,8 @@ MSBuild:Compile + + + + \ No newline at end of file diff --git a/libraries/Microsoft.Bot.Builder.LanguageGeneration/README.md b/libraries/Microsoft.Bot.Builder.LanguageGeneration/README.md new file mode 100644 index 0000000000..72737e05b3 --- /dev/null +++ b/libraries/Microsoft.Bot.Builder.LanguageGeneration/README.md @@ -0,0 +1,131 @@ +# Language Generation ***_[PREVIEW]_*** + +Learning from our customers experiences and bringing together capabilities first implemented by Cortana and Cognition teams, we are introducing Language Generation; which allows the developer to extract the embedded strings from their code and resource files and manage them through a Language Generation runtime and file format. Language Generation enable customers to define multiple variations on a phrase, execute simple expressions based on context, refer to conversational memory, and over time will enable us to bring additional capabilities all leading to a more natural conversational experience. + +At the core of language generation lies template expansion and entity substitution. You can provide one-of variation for expansion as well as conditionally expand a template. The output from language generation can be a simple text string or multi-line response or a complex object payload that a layer above language generation will use to construct a full blown [activity][1]. + +Language generation is achieved through: + +- markdown based .lg file that describes the templates and their composition. See [here][3] for the .lg file format. +- full access to current bots memory so you can data bind language to the state of memory. +- parser and runtime libraries that help achieve runtime resolution. See [here][2] for API-reference. + +```markdown +# greetingTemplate +- Hello ${user.name}, how are you? +- Good morning ${user.name}. It's nice to see you again. +- Good day ${user.name}. What can I do for you today? +``` + +You can use language generation to: + +- achieve a coherent personality, tone of voice for your bot +- separate business logic from presentation +- include variations and sophisticated composition based resolution for any of your bot's replies +- structured LG + + +## structured LG +The type of LG output could be string or object, string is by default. But LG could generate a json object by Structured LG feature. + +Example here: + +```markdown + # HeroCardTemplate(buttonsCollection) + [Herocard + title=${TitleText())} + subtitle=${SubText())} + text=${DescriptionText())} + images=${CardImages())} + buttons=${buttonsCollection} + ] + + # TitleText + - Here are some ${TitleSuffix()} + + # TitleSuffix + - cool photos + - pictures + - nice snaps + + # SubText + - What is your favorite? + - Don't they all look great? + - sorry, some of them are repeats + + # DescriptionText + - This is description for the hero card + + # CardImages + - https://picsum.photos/200/200?image=100 + - https://picsum.photos/300/200?image=200 + - https://picsum.photos/200/200?image=400 +``` + +the result could be: +```json +{ + "lgType": "Herocard", + "title": "Here are some pictures", + "text": "This is description for the hero card", + "images": "https://picsum.photos/200/200?image=100", + "buttons": [ + "click to see", + "back" + ] +} +``` +the structured name would be placed into property 'lgType'. +See more tests here : [structured LG test][4] + +By this, You can use the `ActivityFactory.fromObject(lgResult)` method to transform the lg output into a Bot Framework activity to post back to the user. + +see more samples here: [Structured LG to Activity][5] + +## Language Generation in action + +When building a bot, you can use language generation in several different ways. To start with, examine your current bot's code (or the new bot you plan to write) and create [.lg file][3] to cover all possible scenarios where you would like to use the language generation sub-system with your bot's replies to user. + +Then make sure you include the platform specific language generation library. + +For C#, add Microsoft.Bot.Builder.LanguageGeneration. +For NodeJS, add botbuilder-lg + +Load the template manager with your .lg file + +```typescript + let templates = new Templates.parseFile(filePath, importResolver?, expressionParser?); +``` + +When you need template expansion, call the templates and pass in the relevant template name + +```typescript + await turnContext.sendActivity(templates.evaluate("", entitiesCollection)); +``` + +If your template needs specific entity values to be passed for resolution/ expansion, you can pass them in on the call to `evaluateTemplate` + +```typescript + await turnContext.sendActivity(templates.evaluate("WordGameReply", { GameName = "MarcoPolo" } )); +``` + +## Generated folder + +If you changed the g4 file, please follow the instruction [here](https://github.com/antlr/antlr4/tree/master/runtime/CSharp#step-4-generate-the-c-code) to generate the new Lexer and Parser file. +The specific command is: +``` + java -jar antlr4-4.8.jar -Dlanguage=CSharp LGFileLexer.g4 + java -jar antlr4-4.8.jar -Dlanguage=CSharp LGFileParser.g4 -visitor + java -jar antlr4-4.8.jar -Dlanguage=CSharp LGTemplateLexer.g4 + java -jar antlr4-4.8.jar -Dlanguage=CSharp LGTemplateParser.g4 -visitor +``` +`antlr4-4.8.jar` presents the path of antlr jar. +`xx.g4` presents the path of corresponding g4 file. + +By the way, You will need to have a modern version of Java (>= JRE 1.6) to use it. + +[1]:https://github.com/Microsoft/BotBuilder/blob/main/specs/botframework-activity/botframework-activity.md +[2]:https://docs.microsoft.com/en-us/azure/bot-service/language-generation/language-generation-api-reference?view=azure-bot-service-4.0 +[3]:https://docs.microsoft.com/en-us/azure/bot-service/file-format/bot-builder-lg-file-format?view=azure-bot-service-4.0 +[4]:https://github.com/microsoft/botbuilder-js/blob/main/libraries/botbuilder-lg/tests/testData/examples/StructuredTemplate.lg +[5]:https://github.com/microsoft/botbuilder-js/blob/main/libraries/botbuilder-lg/tests/testData/examples/NormalStructuredLG.lg diff --git a/tests/AdaptiveExpressions.Tests/AdaptiveExpressions.Tests.csproj b/tests/AdaptiveExpressions.Tests/AdaptiveExpressions.Tests.csproj index cdf292c3ba..7d75d91126 100644 --- a/tests/AdaptiveExpressions.Tests/AdaptiveExpressions.Tests.csproj +++ b/tests/AdaptiveExpressions.Tests/AdaptiveExpressions.Tests.csproj @@ -11,12 +11,8 @@ + - - all - runtime; build; native; contentfiles; analyzers - - all runtime; build; native; contentfiles; analyzers diff --git a/tests/Microsoft.Bot.Builder.LanguageGeneration.Tests/TemplatesParseTreeTest.cs b/tests/Microsoft.Bot.Builder.LanguageGeneration.Tests/TemplatesParseTreeTest.cs index f6c5dfb0cd..035a2cd343 100644 --- a/tests/Microsoft.Bot.Builder.LanguageGeneration.Tests/TemplatesParseTreeTest.cs +++ b/tests/Microsoft.Bot.Builder.LanguageGeneration.Tests/TemplatesParseTreeTest.cs @@ -1,7 +1,7 @@ using System; using System.IO; using Xunit; -using static Microsoft.Bot.Builder.LanguageGeneration.LGTemplateParser; +using static LGTemplateParser; namespace Microsoft.Bot.Builder.LanguageGeneration.Tests {