diff --git a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateLexer.cs b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateLexer.cs index 8be25b1..8e3d1e0 100644 --- a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateLexer.cs +++ b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateLexer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -// Generated from GoTextTemplateLexer.g4 by ANTLR 4.9.2 +// Generated from src/TextTemplate/GoTextTemplateLexer.g4 by ANTLR 4.9.2 // Unreachable code detected #pragma warning disable 0162 diff --git a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.cs b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.cs index d688cca..2e4ee74 100644 --- a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.cs +++ b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -// Generated from GoTextTemplateParser.g4 by ANTLR 4.9.2 +// Generated from src/TextTemplate/GoTextTemplateParser.g4 by ANTLR 4.9.2 // Unreachable code detected #pragma warning disable 0162 @@ -110,16 +110,6 @@ public TemplateContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_template; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterTemplate(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitTemplate(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitTemplate(this); @@ -164,16 +154,6 @@ public ContentContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_content; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterContent(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitContent(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitContent(this); @@ -250,16 +230,6 @@ public PartContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_part; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterPart(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitPart(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitPart(this); @@ -367,16 +337,6 @@ public PlaceholderContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_placeholder; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterPlaceholder(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitPlaceholder(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitPlaceholder(this); @@ -417,26 +377,21 @@ [System.Diagnostics.DebuggerNonUserCode] public CommandContext[] command() { [System.Diagnostics.DebuggerNonUserCode] public CommandContext command(int i) { return GetRuleContext(i); } + [System.Diagnostics.DebuggerNonUserCode] public VarListContext varList() { + return GetRuleContext(0); + } [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] PIPE() { return GetTokens(GoTextTemplateParser.PIPE); } [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PIPE(int i) { return GetToken(GoTextTemplateParser.PIPE, i); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ASSIGN() { return GetToken(GoTextTemplateParser.ASSIGN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COLONEQ() { return GetToken(GoTextTemplateParser.COLONEQ, 0); } public PipelineContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } public override int RuleIndex { get { return RULE_pipeline; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterPipeline(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitPipeline(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitPipeline(this); @@ -452,21 +407,40 @@ public PipelineContext pipeline() { try { EnterOuterAlt(_localctx, 1); { - State = 72; - command(); + State = 75; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,2,Context) ) { + case 1: + { + State = 72; + varList(); + State = 73; + _la = TokenStream.LA(1); + if ( !(_la==COLONEQ || _la==ASSIGN) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + break; + } State = 77; + command(); + State = 82; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while (_la==PIPE) { { { - State = 73; + State = 78; Match(PIPE); - State = 74; + State = 79; command(); } } - State = 79; + State = 84; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } @@ -494,22 +468,15 @@ [System.Diagnostics.DebuggerNonUserCode] public ArgumentContext[] argument() { [System.Diagnostics.DebuggerNonUserCode] public ArgumentContext argument(int i) { return GetRuleContext(i); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NUMBER() { return GetToken(GoTextTemplateParser.NUMBER, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING() { return GetToken(GoTextTemplateParser.STRING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BOOLEAN() { return GetToken(GoTextTemplateParser.BOOLEAN, 0); } public CommandContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } public override int RuleIndex { get { return RULE_command; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterCommand(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitCommand(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitCommand(this); @@ -523,37 +490,58 @@ public CommandContext command() { EnterRule(_localctx, 10, RULE_command); int _la; try { - State = 88; + State = 96; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,4,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,5,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 80; + State = 85; path(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 81; + State = 86; Match(IDENT); - State = 85; + State = 90; ErrorHandler.Sync(this); _la = TokenStream.LA(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DOLLAR) | (1L << NUMBER) | (1L << STRING) | (1L << BOOLEAN) | (1L << DOT) | (1L << PATH) | (1L << IDENT))) != 0)) { { { - State = 82; + State = 87; argument(); } } - State = 87; + State = 92; ErrorHandler.Sync(this); _la = TokenStream.LA(1); } } break; + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 93; + Match(NUMBER); + } + break; + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 94; + Match(STRING); + } + break; + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 95; + Match(BOOLEAN); + } + break; } } catch (RecognitionException re) { @@ -580,16 +568,6 @@ public ArgumentContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_argument; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterArgument(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitArgument(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitArgument(this); @@ -602,7 +580,7 @@ public ArgumentContext argument() { ArgumentContext _localctx = new ArgumentContext(Context, State); EnterRule(_localctx, 12, RULE_argument); try { - State = 94; + State = 102; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case DOLLAR: @@ -611,28 +589,28 @@ public ArgumentContext argument() { case IDENT: EnterOuterAlt(_localctx, 1); { - State = 90; + State = 98; path(); } break; case NUMBER: EnterOuterAlt(_localctx, 2); { - State = 91; + State = 99; Match(NUMBER); } break; case STRING: EnterOuterAlt(_localctx, 3); { - State = 92; + State = 100; Match(STRING); } break; case BOOLEAN: EnterOuterAlt(_localctx, 4); { - State = 93; + State = 101; Match(BOOLEAN); } break; @@ -662,16 +640,6 @@ public PathContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_path; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterPath(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitPath(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitPath(this); @@ -687,17 +655,17 @@ public PathContext path() { try { EnterOuterAlt(_localctx, 1); { - State = 97; + State = 105; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==DOLLAR) { { - State = 96; + State = 104; Match(DOLLAR); } } - State = 99; + State = 107; _la = TokenStream.LA(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DOT) | (1L << PATH) | (1L << IDENT))) != 0)) ) { ErrorHandler.RecoverInline(this); @@ -750,16 +718,6 @@ public ExprContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_expr; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterExpr(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitExpr(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitExpr(this); @@ -773,7 +731,7 @@ public ExprContext expr() { EnterRule(_localctx, 16, RULE_expr); try { int _alt; - State = 142; + State = 150; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case DOLLAR: @@ -782,84 +740,84 @@ public ExprContext expr() { case IDENT: EnterOuterAlt(_localctx, 1); { - State = 101; + State = 109; path(); } break; case EQ: EnterOuterAlt(_localctx, 2); { - State = 102; + State = 110; Match(EQ); - State = 103; + State = 111; value(); - State = 104; + State = 112; value(); } break; case NE: EnterOuterAlt(_localctx, 3); { - State = 106; + State = 114; Match(NE); - State = 107; + State = 115; value(); - State = 108; + State = 116; value(); } break; case LT: EnterOuterAlt(_localctx, 4); { - State = 110; + State = 118; Match(LT); - State = 111; + State = 119; value(); - State = 112; + State = 120; value(); } break; case LE: EnterOuterAlt(_localctx, 5); { - State = 114; + State = 122; Match(LE); - State = 115; + State = 123; value(); - State = 116; + State = 124; value(); } break; case GT: EnterOuterAlt(_localctx, 6); { - State = 118; + State = 126; Match(GT); - State = 119; + State = 127; value(); - State = 120; + State = 128; value(); } break; case GE: EnterOuterAlt(_localctx, 7); { - State = 122; + State = 130; Match(GE); - State = 123; + State = 131; value(); - State = 124; + State = 132; value(); } break; case AND: EnterOuterAlt(_localctx, 8); { - State = 126; + State = 134; Match(AND); - State = 127; + State = 135; expr(); - State = 129; + State = 137; ErrorHandler.Sync(this); _alt = 1; do { @@ -867,7 +825,7 @@ public ExprContext expr() { case 1: { { - State = 128; + State = 136; expr(); } } @@ -875,20 +833,20 @@ public ExprContext expr() { default: throw new NoViableAltException(this); } - State = 131; + State = 139; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,7,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,8,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } break; case OR: EnterOuterAlt(_localctx, 9); { - State = 133; + State = 141; Match(OR); - State = 134; + State = 142; expr(); - State = 136; + State = 144; ErrorHandler.Sync(this); _alt = 1; do { @@ -896,7 +854,7 @@ public ExprContext expr() { case 1: { { - State = 135; + State = 143; expr(); } } @@ -904,18 +862,18 @@ public ExprContext expr() { default: throw new NoViableAltException(this); } - State = 138; + State = 146; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,8,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,9,Context); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); } break; case NOT: EnterOuterAlt(_localctx, 10); { - State = 140; + State = 148; Match(NOT); - State = 141; + State = 149; expr(); } break; @@ -947,16 +905,6 @@ public ValueContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_value; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterValue(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitValue(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitValue(this); @@ -969,7 +917,7 @@ public ValueContext value() { ValueContext _localctx = new ValueContext(Context, State); EnterRule(_localctx, 18, RULE_value); try { - State = 148; + State = 156; ErrorHandler.Sync(this); switch (TokenStream.LA(1)) { case DOLLAR: @@ -978,28 +926,28 @@ public ValueContext value() { case IDENT: EnterOuterAlt(_localctx, 1); { - State = 144; + State = 152; path(); } break; case NUMBER: EnterOuterAlt(_localctx, 2); { - State = 145; + State = 153; Match(NUMBER); } break; case STRING: EnterOuterAlt(_localctx, 3); { - State = 146; + State = 154; Match(STRING); } break; case BOOLEAN: EnterOuterAlt(_localctx, 4); { - State = 147; + State = 155; Match(BOOLEAN); } break; @@ -1054,16 +1002,6 @@ public IfBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_ifBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterIfBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitIfBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitIfBlock(this); @@ -1079,47 +1017,47 @@ public IfBlockContext ifBlock() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 150; + State = 158; open(); - State = 151; + State = 159; Match(IF); - State = 152; + State = 160; expr(); - State = 153; + State = 161; close(); - State = 154; + State = 162; content(); - State = 158; + State = 166; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,11,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,12,Context); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { { { - State = 155; + State = 163; elseIfBlock(); } } } - State = 160; + State = 168; ErrorHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(TokenStream,11,Context); + _alt = Interpreter.AdaptivePredict(TokenStream,12,Context); } - State = 162; + State = 170; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,12,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) { case 1: { - State = 161; + State = 169; elseBlock(); } break; } - State = 164; + State = 172; open(); - State = 165; + State = 173; Match(END); - State = 166; + State = 174; close(); } } @@ -1155,16 +1093,6 @@ public ElseIfBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_elseIfBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterElseIfBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitElseIfBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitElseIfBlock(this); @@ -1179,17 +1107,17 @@ public ElseIfBlockContext elseIfBlock() { try { EnterOuterAlt(_localctx, 1); { - State = 168; + State = 176; open(); - State = 169; + State = 177; Match(ELSE); - State = 170; + State = 178; Match(IF); - State = 171; + State = 179; expr(); - State = 172; + State = 180; close(); - State = 173; + State = 181; content(); } } @@ -1221,16 +1149,6 @@ public ElseBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_elseBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterElseBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitElseBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitElseBlock(this); @@ -1245,13 +1163,13 @@ public ElseBlockContext elseBlock() { try { EnterOuterAlt(_localctx, 1); { - State = 175; + State = 183; open(); - State = 176; + State = 184; Match(ELSE); - State = 177; + State = 185; close(); - State = 178; + State = 186; content(); } } @@ -1298,16 +1216,6 @@ public ForBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_forBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterForBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitForBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitForBlock(this); @@ -1322,35 +1230,35 @@ public ForBlockContext forBlock() { try { EnterOuterAlt(_localctx, 1); { - State = 180; + State = 188; open(); - State = 181; + State = 189; Match(FOR); - State = 182; + State = 190; Match(IDENT); - State = 183; + State = 191; Match(IN); - State = 184; + State = 192; path(); - State = 185; + State = 193; close(); - State = 186; + State = 194; content(); - State = 188; + State = 196; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,14,Context) ) { case 1: { - State = 187; + State = 195; elseBlock(); } break; } - State = 190; + State = 198; open(); - State = 191; + State = 199; Match(END); - State = 192; + State = 200; close(); } } @@ -1395,16 +1303,6 @@ public RangeBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_rangeBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterRangeBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitRangeBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitRangeBlock(this); @@ -1419,31 +1317,31 @@ public RangeBlockContext rangeBlock() { try { EnterOuterAlt(_localctx, 1); { - State = 194; + State = 202; open(); - State = 195; + State = 203; Match(RANGE); - State = 196; + State = 204; rangeClause(); - State = 197; + State = 205; close(); - State = 198; + State = 206; content(); - State = 200; + State = 208; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,14,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,15,Context) ) { case 1: { - State = 199; + State = 207; elseBlock(); } break; } - State = 202; + State = 210; open(); - State = 203; + State = 211; Match(END); - State = 204; + State = 212; close(); } } @@ -1488,16 +1386,6 @@ public WithBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_withBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterWithBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitWithBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitWithBlock(this); @@ -1512,31 +1400,31 @@ public WithBlockContext withBlock() { try { EnterOuterAlt(_localctx, 1); { - State = 206; + State = 214; open(); - State = 207; + State = 215; Match(WITH); - State = 208; + State = 216; pipeline(); - State = 209; + State = 217; close(); - State = 210; + State = 218; content(); - State = 212; + State = 220; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,15,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,16,Context) ) { case 1: { - State = 211; + State = 219; elseBlock(); } break; } - State = 214; + State = 222; open(); - State = 215; + State = 223; Match(END); - State = 216; + State = 224; close(); } } @@ -1576,16 +1464,6 @@ public DefineBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_defineBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterDefineBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitDefineBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitDefineBlock(this); @@ -1600,21 +1478,21 @@ public DefineBlockContext defineBlock() { try { EnterOuterAlt(_localctx, 1); { - State = 218; + State = 226; open(); - State = 219; + State = 227; Match(DEFINE); - State = 220; + State = 228; Match(STRING); - State = 221; + State = 229; close(); - State = 222; + State = 230; content(); - State = 223; + State = 231; open(); - State = 224; + State = 232; Match(END); - State = 225; + State = 233; close(); } } @@ -1647,16 +1525,6 @@ public TemplateCallContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_templateCall; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterTemplateCall(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitTemplateCall(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitTemplateCall(this); @@ -1672,23 +1540,23 @@ public TemplateCallContext templateCall() { try { EnterOuterAlt(_localctx, 1); { - State = 227; + State = 235; open(); - State = 228; + State = 236; Match(TEMPLATE); - State = 229; + State = 237; Match(STRING); - State = 231; + State = 239; ErrorHandler.Sync(this); _la = TokenStream.LA(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DOLLAR) | (1L << DOT) | (1L << PATH) | (1L << IDENT))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DOLLAR) | (1L << NUMBER) | (1L << STRING) | (1L << BOOLEAN) | (1L << DOT) | (1L << PATH) | (1L << IDENT))) != 0)) { { - State = 230; + State = 238; pipeline(); } } - State = 233; + State = 241; close(); } } @@ -1731,16 +1599,6 @@ public BlockBlockContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_blockBlock; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterBlockBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitBlockBlock(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitBlockBlock(this); @@ -1755,23 +1613,23 @@ public BlockBlockContext blockBlock() { try { EnterOuterAlt(_localctx, 1); { - State = 235; + State = 243; open(); - State = 236; + State = 244; Match(BLOCK); - State = 237; + State = 245; Match(STRING); - State = 238; + State = 246; pipeline(); - State = 239; + State = 247; close(); - State = 240; + State = 248; content(); - State = 241; + State = 249; open(); - State = 242; + State = 250; Match(END); - State = 243; + State = 251; close(); } } @@ -1800,16 +1658,6 @@ public RangeClauseContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_rangeClause; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterRangeClause(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitRangeClause(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitRangeClause(this); @@ -1822,24 +1670,24 @@ public RangeClauseContext rangeClause() { RangeClauseContext _localctx = new RangeClauseContext(Context, State); EnterRule(_localctx, 38, RULE_rangeClause); try { - State = 250; + State = 258; ErrorHandler.Sync(this); - switch ( Interpreter.AdaptivePredict(TokenStream,17,Context) ) { + switch ( Interpreter.AdaptivePredict(TokenStream,18,Context) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 245; + State = 253; path(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 246; + State = 254; varList(); - State = 247; + State = 255; Match(COLONEQ); - State = 248; + State = 256; path(); } break; @@ -1870,16 +1718,6 @@ public VarListContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_varList; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterVarList(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitVarList(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitVarList(this); @@ -1895,16 +1733,16 @@ public VarListContext varList() { try { EnterOuterAlt(_localctx, 1); { - State = 252; + State = 260; varName(); - State = 255; + State = 263; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==COMMA) { { - State = 253; + State = 261; Match(COMMA); - State = 254; + State = 262; varName(); } } @@ -1931,16 +1769,6 @@ public VarNameContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_varName; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterVarName(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitVarName(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitVarName(this); @@ -1956,17 +1784,17 @@ public VarNameContext varName() { try { EnterOuterAlt(_localctx, 1); { - State = 258; + State = 266; ErrorHandler.Sync(this); _la = TokenStream.LA(1); if (_la==DOLLAR) { { - State = 257; + State = 265; Match(DOLLAR); } } - State = 260; + State = 268; Match(IDENT); } } @@ -1990,16 +1818,6 @@ public OpenContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_open; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterOpen(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitOpen(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitOpen(this); @@ -2015,7 +1833,7 @@ public OpenContext open() { try { EnterOuterAlt(_localctx, 1); { - State = 262; + State = 270; _la = TokenStream.LA(1); if ( !(_la==OPEN_TRIM || _la==OPEN) ) { ErrorHandler.RecoverInline(this); @@ -2046,16 +1864,6 @@ public CloseContext(ParserRuleContext parent, int invokingState) } public override int RuleIndex { get { return RULE_close; } } [System.Diagnostics.DebuggerNonUserCode] - public override void EnterRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.EnterClose(this); - } - [System.Diagnostics.DebuggerNonUserCode] - public override void ExitRule(IParseTreeListener listener) { - IGoTextTemplateParserListener typedListener = listener as IGoTextTemplateParserListener; - if (typedListener != null) typedListener.ExitClose(this); - } - [System.Diagnostics.DebuggerNonUserCode] public override TResult Accept(IParseTreeVisitor visitor) { IGoTextTemplateParserVisitor typedVisitor = visitor as IGoTextTemplateParserVisitor; if (typedVisitor != null) return typedVisitor.VisitClose(this); @@ -2071,7 +1879,7 @@ public CloseContext close() { try { EnterOuterAlt(_localctx, 1); { - State = 264; + State = 272; _la = TokenStream.LA(1); if ( !(_la==CLOSE_TRIM || _la==CLOSE) ) { ErrorHandler.RecoverInline(this); @@ -2095,7 +1903,7 @@ public CloseContext close() { private static char[] _serializedATN = { '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', - '\x5964', '\x3', '\'', '\x10D', '\x4', '\x2', '\t', '\x2', '\x4', '\x3', + '\x5964', '\x3', '\'', '\x115', '\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', @@ -2110,214 +1918,224 @@ public CloseContext close() { '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4', '\x5', '\x4', '\x45', '\n', '\x4', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', - '\a', '\x6', 'N', '\n', '\x6', '\f', '\x6', '\xE', '\x6', 'Q', '\v', '\x6', - '\x3', '\a', '\x3', '\a', '\x3', '\a', '\a', '\a', 'V', '\n', '\a', '\f', - '\a', '\xE', '\a', 'Y', '\v', '\a', '\x5', '\a', '[', '\n', '\a', '\x3', - '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x5', '\b', '\x61', '\n', - '\b', '\x3', '\t', '\x5', '\t', '\x64', '\n', '\t', '\x3', '\t', '\x3', - '\t', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', - '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', + '\x5', '\x6', 'N', '\n', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', + '\a', '\x6', 'S', '\n', '\x6', '\f', '\x6', '\xE', '\x6', 'V', '\v', '\x6', + '\x3', '\a', '\x3', '\a', '\x3', '\a', '\a', '\a', '[', '\n', '\a', '\f', + '\a', '\xE', '\a', '^', '\v', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', + '\x5', '\a', '\x63', '\n', '\a', '\x3', '\b', '\x3', '\b', '\x3', '\b', + '\x3', '\b', '\x5', '\b', 'i', '\n', '\b', '\x3', '\t', '\x5', '\t', 'l', + '\n', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', - '\x3', '\n', '\x6', '\n', '\x84', '\n', '\n', '\r', '\n', '\xE', '\n', - '\x85', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x6', '\n', '\x8B', '\n', - '\n', '\r', '\n', '\xE', '\n', '\x8C', '\x3', '\n', '\x3', '\n', '\x5', - '\n', '\x91', '\n', '\n', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', - '\v', '\x5', '\v', '\x97', '\n', '\v', '\x3', '\f', '\x3', '\f', '\x3', - '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\a', '\f', '\x9F', '\n', - '\f', '\f', '\f', '\xE', '\f', '\xA2', '\v', '\f', '\x3', '\f', '\x5', - '\f', '\xA5', '\n', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', - '\f', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', - '\x3', '\r', '\x3', '\r', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', - '\xE', '\x3', '\xE', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', - '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x5', - '\xF', '\xBF', '\n', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', - '\x3', '\xF', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', - '\x3', '\x10', '\x3', '\x10', '\x5', '\x10', '\xCB', '\n', '\x10', '\x3', - '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x11', '\x3', - '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x5', - '\x11', '\xD7', '\n', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', - '\x3', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', - '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', - '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x5', '\x13', - '\xEA', '\n', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x14', '\x3', - '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', - '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x15', '\x3', - '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x5', '\x15', '\xFD', - '\n', '\x15', '\x3', '\x16', '\x3', '\x16', '\x3', '\x16', '\x5', '\x16', - '\x102', '\n', '\x16', '\x3', '\x17', '\x5', '\x17', '\x105', '\n', '\x17', - '\x3', '\x17', '\x3', '\x17', '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', - '\x3', '\x19', '\x3', '\x19', '\x2', '\x2', '\x1A', '\x2', '\x4', '\x6', - '\b', '\n', '\f', '\xE', '\x10', '\x12', '\x14', '\x16', '\x18', '\x1A', - '\x1C', '\x1E', ' ', '\"', '$', '&', '(', '*', ',', '.', '\x30', '\x2', - '\x5', '\x3', '\x2', '#', '%', '\x3', '\x2', '\x3', '\x4', '\x3', '\x2', - '\x6', '\a', '\x2', '\x11B', '\x2', '\x32', '\x3', '\x2', '\x2', '\x2', - '\x4', '\x38', '\x3', '\x2', '\x2', '\x2', '\x6', '\x44', '\x3', '\x2', - '\x2', '\x2', '\b', '\x46', '\x3', '\x2', '\x2', '\x2', '\n', 'J', '\x3', - '\x2', '\x2', '\x2', '\f', 'Z', '\x3', '\x2', '\x2', '\x2', '\xE', '`', - '\x3', '\x2', '\x2', '\x2', '\x10', '\x63', '\x3', '\x2', '\x2', '\x2', - '\x12', '\x90', '\x3', '\x2', '\x2', '\x2', '\x14', '\x96', '\x3', '\x2', - '\x2', '\x2', '\x16', '\x98', '\x3', '\x2', '\x2', '\x2', '\x18', '\xAA', - '\x3', '\x2', '\x2', '\x2', '\x1A', '\xB1', '\x3', '\x2', '\x2', '\x2', - '\x1C', '\xB6', '\x3', '\x2', '\x2', '\x2', '\x1E', '\xC4', '\x3', '\x2', - '\x2', '\x2', ' ', '\xD0', '\x3', '\x2', '\x2', '\x2', '\"', '\xDC', '\x3', - '\x2', '\x2', '\x2', '$', '\xE5', '\x3', '\x2', '\x2', '\x2', '&', '\xED', - '\x3', '\x2', '\x2', '\x2', '(', '\xFC', '\x3', '\x2', '\x2', '\x2', '*', - '\xFE', '\x3', '\x2', '\x2', '\x2', ',', '\x104', '\x3', '\x2', '\x2', - '\x2', '.', '\x108', '\x3', '\x2', '\x2', '\x2', '\x30', '\x10A', '\x3', - '\x2', '\x2', '\x2', '\x32', '\x33', '\x5', '\x4', '\x3', '\x2', '\x33', - '\x34', '\a', '\x2', '\x2', '\x3', '\x34', '\x3', '\x3', '\x2', '\x2', - '\x2', '\x35', '\x37', '\x5', '\x6', '\x4', '\x2', '\x36', '\x35', '\x3', - '\x2', '\x2', '\x2', '\x37', ':', '\x3', '\x2', '\x2', '\x2', '\x38', - '\x36', '\x3', '\x2', '\x2', '\x2', '\x38', '\x39', '\x3', '\x2', '\x2', - '\x2', '\x39', '\x5', '\x3', '\x2', '\x2', '\x2', ':', '\x38', '\x3', - '\x2', '\x2', '\x2', ';', '\x45', '\a', '\x5', '\x2', '\x2', '<', '\x45', - '\x5', '\b', '\x5', '\x2', '=', '\x45', '\x5', '\x16', '\f', '\x2', '>', - '\x45', '\x5', '\x1C', '\xF', '\x2', '?', '\x45', '\x5', '\x1E', '\x10', - '\x2', '@', '\x45', '\x5', ' ', '\x11', '\x2', '\x41', '\x45', '\x5', - '\"', '\x12', '\x2', '\x42', '\x45', '\x5', '$', '\x13', '\x2', '\x43', - '\x45', '\x5', '&', '\x14', '\x2', '\x44', ';', '\x3', '\x2', '\x2', '\x2', - '\x44', '<', '\x3', '\x2', '\x2', '\x2', '\x44', '=', '\x3', '\x2', '\x2', - '\x2', '\x44', '>', '\x3', '\x2', '\x2', '\x2', '\x44', '?', '\x3', '\x2', - '\x2', '\x2', '\x44', '@', '\x3', '\x2', '\x2', '\x2', '\x44', '\x41', - '\x3', '\x2', '\x2', '\x2', '\x44', '\x42', '\x3', '\x2', '\x2', '\x2', - '\x44', '\x43', '\x3', '\x2', '\x2', '\x2', '\x45', '\a', '\x3', '\x2', - '\x2', '\x2', '\x46', 'G', '\x5', '.', '\x18', '\x2', 'G', 'H', '\x5', - '\n', '\x6', '\x2', 'H', 'I', '\x5', '\x30', '\x19', '\x2', 'I', '\t', - '\x3', '\x2', '\x2', '\x2', 'J', 'O', '\x5', '\f', '\a', '\x2', 'K', 'L', - '\a', '\"', '\x2', '\x2', 'L', 'N', '\x5', '\f', '\a', '\x2', 'M', 'K', - '\x3', '\x2', '\x2', '\x2', 'N', 'Q', '\x3', '\x2', '\x2', '\x2', 'O', - 'M', '\x3', '\x2', '\x2', '\x2', 'O', 'P', '\x3', '\x2', '\x2', '\x2', - 'P', '\v', '\x3', '\x2', '\x2', '\x2', 'Q', 'O', '\x3', '\x2', '\x2', - '\x2', 'R', '[', '\x5', '\x10', '\t', '\x2', 'S', 'W', '\a', '%', '\x2', - '\x2', 'T', 'V', '\x5', '\xE', '\b', '\x2', 'U', 'T', '\x3', '\x2', '\x2', - '\x2', 'V', 'Y', '\x3', '\x2', '\x2', '\x2', 'W', 'U', '\x3', '\x2', '\x2', - '\x2', 'W', 'X', '\x3', '\x2', '\x2', '\x2', 'X', '[', '\x3', '\x2', '\x2', - '\x2', 'Y', 'W', '\x3', '\x2', '\x2', '\x2', 'Z', 'R', '\x3', '\x2', '\x2', - '\x2', 'Z', 'S', '\x3', '\x2', '\x2', '\x2', '[', '\r', '\x3', '\x2', - '\x2', '\x2', '\\', '\x61', '\x5', '\x10', '\t', '\x2', ']', '\x61', '\a', - '\x12', '\x2', '\x2', '^', '\x61', '\a', '\x13', '\x2', '\x2', '_', '\x61', - '\a', '\x14', '\x2', '\x2', '`', '\\', '\x3', '\x2', '\x2', '\x2', '`', - ']', '\x3', '\x2', '\x2', '\x2', '`', '^', '\x3', '\x2', '\x2', '\x2', - '`', '_', '\x3', '\x2', '\x2', '\x2', '\x61', '\xF', '\x3', '\x2', '\x2', - '\x2', '\x62', '\x64', '\a', '\x11', '\x2', '\x2', '\x63', '\x62', '\x3', - '\x2', '\x2', '\x2', '\x63', '\x64', '\x3', '\x2', '\x2', '\x2', '\x64', - '\x65', '\x3', '\x2', '\x2', '\x2', '\x65', '\x66', '\t', '\x2', '\x2', - '\x2', '\x66', '\x11', '\x3', '\x2', '\x2', '\x2', 'g', '\x91', '\x5', - '\x10', '\t', '\x2', 'h', 'i', '\a', '\x15', '\x2', '\x2', 'i', 'j', '\x5', - '\x14', '\v', '\x2', 'j', 'k', '\x5', '\x14', '\v', '\x2', 'k', '\x91', - '\x3', '\x2', '\x2', '\x2', 'l', 'm', '\a', '\x16', '\x2', '\x2', 'm', - 'n', '\x5', '\x14', '\v', '\x2', 'n', 'o', '\x5', '\x14', '\v', '\x2', - 'o', '\x91', '\x3', '\x2', '\x2', '\x2', 'p', 'q', '\a', '\x17', '\x2', + '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', + '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x6', '\n', '\x8C', '\n', + '\n', '\r', '\n', '\xE', '\n', '\x8D', '\x3', '\n', '\x3', '\n', '\x3', + '\n', '\x6', '\n', '\x93', '\n', '\n', '\r', '\n', '\xE', '\n', '\x94', + '\x3', '\n', '\x3', '\n', '\x5', '\n', '\x99', '\n', '\n', '\x3', '\v', + '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x5', '\v', '\x9F', '\n', '\v', + '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', + '\f', '\a', '\f', '\xA7', '\n', '\f', '\f', '\f', '\xE', '\f', '\xAA', + '\v', '\f', '\x3', '\f', '\x5', '\f', '\xAD', '\n', '\f', '\x3', '\f', + '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\r', '\x3', '\r', '\x3', + '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\xE', + '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xF', + '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', + '\x3', '\xF', '\x3', '\xF', '\x5', '\xF', '\xC7', '\n', '\xF', '\x3', + '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\x10', '\x3', + '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x5', + '\x10', '\xD3', '\n', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', + '\x3', '\x10', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', + '\x3', '\x11', '\x3', '\x11', '\x5', '\x11', '\xDF', '\n', '\x11', '\x3', + '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x12', '\x3', + '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', + '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x13', '\x3', '\x13', '\x3', + '\x13', '\x3', '\x13', '\x5', '\x13', '\xF2', '\n', '\x13', '\x3', '\x13', + '\x3', '\x13', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', + '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', + '\x3', '\x14', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', + '\x3', '\x15', '\x5', '\x15', '\x105', '\n', '\x15', '\x3', '\x16', '\x3', + '\x16', '\x3', '\x16', '\x5', '\x16', '\x10A', '\n', '\x16', '\x3', '\x17', + '\x5', '\x17', '\x10D', '\n', '\x17', '\x3', '\x17', '\x3', '\x17', '\x3', + '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x19', '\x2', + '\x2', '\x1A', '\x2', '\x4', '\x6', '\b', '\n', '\f', '\xE', '\x10', '\x12', + '\x14', '\x16', '\x18', '\x1A', '\x1C', '\x1E', ' ', '\"', '$', '&', '(', + '*', ',', '.', '\x30', '\x2', '\x6', '\x3', '\x2', '\xE', '\xF', '\x3', + '\x2', '#', '%', '\x3', '\x2', '\x3', '\x4', '\x3', '\x2', '\x6', '\a', + '\x2', '\x127', '\x2', '\x32', '\x3', '\x2', '\x2', '\x2', '\x4', '\x38', + '\x3', '\x2', '\x2', '\x2', '\x6', '\x44', '\x3', '\x2', '\x2', '\x2', + '\b', '\x46', '\x3', '\x2', '\x2', '\x2', '\n', 'M', '\x3', '\x2', '\x2', + '\x2', '\f', '\x62', '\x3', '\x2', '\x2', '\x2', '\xE', 'h', '\x3', '\x2', + '\x2', '\x2', '\x10', 'k', '\x3', '\x2', '\x2', '\x2', '\x12', '\x98', + '\x3', '\x2', '\x2', '\x2', '\x14', '\x9E', '\x3', '\x2', '\x2', '\x2', + '\x16', '\xA0', '\x3', '\x2', '\x2', '\x2', '\x18', '\xB2', '\x3', '\x2', + '\x2', '\x2', '\x1A', '\xB9', '\x3', '\x2', '\x2', '\x2', '\x1C', '\xBE', + '\x3', '\x2', '\x2', '\x2', '\x1E', '\xCC', '\x3', '\x2', '\x2', '\x2', + ' ', '\xD8', '\x3', '\x2', '\x2', '\x2', '\"', '\xE4', '\x3', '\x2', '\x2', + '\x2', '$', '\xED', '\x3', '\x2', '\x2', '\x2', '&', '\xF5', '\x3', '\x2', + '\x2', '\x2', '(', '\x104', '\x3', '\x2', '\x2', '\x2', '*', '\x106', + '\x3', '\x2', '\x2', '\x2', ',', '\x10C', '\x3', '\x2', '\x2', '\x2', + '.', '\x110', '\x3', '\x2', '\x2', '\x2', '\x30', '\x112', '\x3', '\x2', + '\x2', '\x2', '\x32', '\x33', '\x5', '\x4', '\x3', '\x2', '\x33', '\x34', + '\a', '\x2', '\x2', '\x3', '\x34', '\x3', '\x3', '\x2', '\x2', '\x2', + '\x35', '\x37', '\x5', '\x6', '\x4', '\x2', '\x36', '\x35', '\x3', '\x2', + '\x2', '\x2', '\x37', ':', '\x3', '\x2', '\x2', '\x2', '\x38', '\x36', + '\x3', '\x2', '\x2', '\x2', '\x38', '\x39', '\x3', '\x2', '\x2', '\x2', + '\x39', '\x5', '\x3', '\x2', '\x2', '\x2', ':', '\x38', '\x3', '\x2', + '\x2', '\x2', ';', '\x45', '\a', '\x5', '\x2', '\x2', '<', '\x45', '\x5', + '\b', '\x5', '\x2', '=', '\x45', '\x5', '\x16', '\f', '\x2', '>', '\x45', + '\x5', '\x1C', '\xF', '\x2', '?', '\x45', '\x5', '\x1E', '\x10', '\x2', + '@', '\x45', '\x5', ' ', '\x11', '\x2', '\x41', '\x45', '\x5', '\"', '\x12', + '\x2', '\x42', '\x45', '\x5', '$', '\x13', '\x2', '\x43', '\x45', '\x5', + '&', '\x14', '\x2', '\x44', ';', '\x3', '\x2', '\x2', '\x2', '\x44', '<', + '\x3', '\x2', '\x2', '\x2', '\x44', '=', '\x3', '\x2', '\x2', '\x2', '\x44', + '>', '\x3', '\x2', '\x2', '\x2', '\x44', '?', '\x3', '\x2', '\x2', '\x2', + '\x44', '@', '\x3', '\x2', '\x2', '\x2', '\x44', '\x41', '\x3', '\x2', + '\x2', '\x2', '\x44', '\x42', '\x3', '\x2', '\x2', '\x2', '\x44', '\x43', + '\x3', '\x2', '\x2', '\x2', '\x45', '\a', '\x3', '\x2', '\x2', '\x2', + '\x46', 'G', '\x5', '.', '\x18', '\x2', 'G', 'H', '\x5', '\n', '\x6', + '\x2', 'H', 'I', '\x5', '\x30', '\x19', '\x2', 'I', '\t', '\x3', '\x2', + '\x2', '\x2', 'J', 'K', '\x5', '*', '\x16', '\x2', 'K', 'L', '\t', '\x2', + '\x2', '\x2', 'L', 'N', '\x3', '\x2', '\x2', '\x2', 'M', 'J', '\x3', '\x2', + '\x2', '\x2', 'M', 'N', '\x3', '\x2', '\x2', '\x2', 'N', 'O', '\x3', '\x2', + '\x2', '\x2', 'O', 'T', '\x5', '\f', '\a', '\x2', 'P', 'Q', '\a', '\"', + '\x2', '\x2', 'Q', 'S', '\x5', '\f', '\a', '\x2', 'R', 'P', '\x3', '\x2', + '\x2', '\x2', 'S', 'V', '\x3', '\x2', '\x2', '\x2', 'T', 'R', '\x3', '\x2', + '\x2', '\x2', 'T', 'U', '\x3', '\x2', '\x2', '\x2', 'U', '\v', '\x3', + '\x2', '\x2', '\x2', 'V', 'T', '\x3', '\x2', '\x2', '\x2', 'W', '\x63', + '\x5', '\x10', '\t', '\x2', 'X', '\\', '\a', '%', '\x2', '\x2', 'Y', '[', + '\x5', '\xE', '\b', '\x2', 'Z', 'Y', '\x3', '\x2', '\x2', '\x2', '[', + '^', '\x3', '\x2', '\x2', '\x2', '\\', 'Z', '\x3', '\x2', '\x2', '\x2', + '\\', ']', '\x3', '\x2', '\x2', '\x2', ']', '\x63', '\x3', '\x2', '\x2', + '\x2', '^', '\\', '\x3', '\x2', '\x2', '\x2', '_', '\x63', '\a', '\x12', + '\x2', '\x2', '`', '\x63', '\a', '\x13', '\x2', '\x2', '\x61', '\x63', + '\a', '\x14', '\x2', '\x2', '\x62', 'W', '\x3', '\x2', '\x2', '\x2', '\x62', + 'X', '\x3', '\x2', '\x2', '\x2', '\x62', '_', '\x3', '\x2', '\x2', '\x2', + '\x62', '`', '\x3', '\x2', '\x2', '\x2', '\x62', '\x61', '\x3', '\x2', + '\x2', '\x2', '\x63', '\r', '\x3', '\x2', '\x2', '\x2', '\x64', 'i', '\x5', + '\x10', '\t', '\x2', '\x65', 'i', '\a', '\x12', '\x2', '\x2', '\x66', + 'i', '\a', '\x13', '\x2', '\x2', 'g', 'i', '\a', '\x14', '\x2', '\x2', + 'h', '\x64', '\x3', '\x2', '\x2', '\x2', 'h', '\x65', '\x3', '\x2', '\x2', + '\x2', 'h', '\x66', '\x3', '\x2', '\x2', '\x2', 'h', 'g', '\x3', '\x2', + '\x2', '\x2', 'i', '\xF', '\x3', '\x2', '\x2', '\x2', 'j', 'l', '\a', + '\x11', '\x2', '\x2', 'k', 'j', '\x3', '\x2', '\x2', '\x2', 'k', 'l', + '\x3', '\x2', '\x2', '\x2', 'l', 'm', '\x3', '\x2', '\x2', '\x2', 'm', + 'n', '\t', '\x3', '\x2', '\x2', 'n', '\x11', '\x3', '\x2', '\x2', '\x2', + 'o', '\x99', '\x5', '\x10', '\t', '\x2', 'p', 'q', '\a', '\x15', '\x2', '\x2', 'q', 'r', '\x5', '\x14', '\v', '\x2', 'r', 's', '\x5', '\x14', - '\v', '\x2', 's', '\x91', '\x3', '\x2', '\x2', '\x2', 't', 'u', '\a', - '\x18', '\x2', '\x2', 'u', 'v', '\x5', '\x14', '\v', '\x2', 'v', 'w', - '\x5', '\x14', '\v', '\x2', 'w', '\x91', '\x3', '\x2', '\x2', '\x2', 'x', - 'y', '\a', '\x19', '\x2', '\x2', 'y', 'z', '\x5', '\x14', '\v', '\x2', - 'z', '{', '\x5', '\x14', '\v', '\x2', '{', '\x91', '\x3', '\x2', '\x2', - '\x2', '|', '}', '\a', '\x1A', '\x2', '\x2', '}', '~', '\x5', '\x14', - '\v', '\x2', '~', '\x7F', '\x5', '\x14', '\v', '\x2', '\x7F', '\x91', - '\x3', '\x2', '\x2', '\x2', '\x80', '\x81', '\a', '\x1B', '\x2', '\x2', - '\x81', '\x83', '\x5', '\x12', '\n', '\x2', '\x82', '\x84', '\x5', '\x12', - '\n', '\x2', '\x83', '\x82', '\x3', '\x2', '\x2', '\x2', '\x84', '\x85', - '\x3', '\x2', '\x2', '\x2', '\x85', '\x83', '\x3', '\x2', '\x2', '\x2', - '\x85', '\x86', '\x3', '\x2', '\x2', '\x2', '\x86', '\x91', '\x3', '\x2', - '\x2', '\x2', '\x87', '\x88', '\a', '\x1C', '\x2', '\x2', '\x88', '\x8A', - '\x5', '\x12', '\n', '\x2', '\x89', '\x8B', '\x5', '\x12', '\n', '\x2', - '\x8A', '\x89', '\x3', '\x2', '\x2', '\x2', '\x8B', '\x8C', '\x3', '\x2', - '\x2', '\x2', '\x8C', '\x8A', '\x3', '\x2', '\x2', '\x2', '\x8C', '\x8D', - '\x3', '\x2', '\x2', '\x2', '\x8D', '\x91', '\x3', '\x2', '\x2', '\x2', - '\x8E', '\x8F', '\a', '\x1D', '\x2', '\x2', '\x8F', '\x91', '\x5', '\x12', - '\n', '\x2', '\x90', 'g', '\x3', '\x2', '\x2', '\x2', '\x90', 'h', '\x3', - '\x2', '\x2', '\x2', '\x90', 'l', '\x3', '\x2', '\x2', '\x2', '\x90', - 'p', '\x3', '\x2', '\x2', '\x2', '\x90', 't', '\x3', '\x2', '\x2', '\x2', - '\x90', 'x', '\x3', '\x2', '\x2', '\x2', '\x90', '|', '\x3', '\x2', '\x2', - '\x2', '\x90', '\x80', '\x3', '\x2', '\x2', '\x2', '\x90', '\x87', '\x3', - '\x2', '\x2', '\x2', '\x90', '\x8E', '\x3', '\x2', '\x2', '\x2', '\x91', - '\x13', '\x3', '\x2', '\x2', '\x2', '\x92', '\x97', '\x5', '\x10', '\t', - '\x2', '\x93', '\x97', '\a', '\x12', '\x2', '\x2', '\x94', '\x97', '\a', - '\x13', '\x2', '\x2', '\x95', '\x97', '\a', '\x14', '\x2', '\x2', '\x96', - '\x92', '\x3', '\x2', '\x2', '\x2', '\x96', '\x93', '\x3', '\x2', '\x2', - '\x2', '\x96', '\x94', '\x3', '\x2', '\x2', '\x2', '\x96', '\x95', '\x3', - '\x2', '\x2', '\x2', '\x97', '\x15', '\x3', '\x2', '\x2', '\x2', '\x98', - '\x99', '\x5', '.', '\x18', '\x2', '\x99', '\x9A', '\a', '\b', '\x2', - '\x2', '\x9A', '\x9B', '\x5', '\x12', '\n', '\x2', '\x9B', '\x9C', '\x5', - '\x30', '\x19', '\x2', '\x9C', '\xA0', '\x5', '\x4', '\x3', '\x2', '\x9D', - '\x9F', '\x5', '\x18', '\r', '\x2', '\x9E', '\x9D', '\x3', '\x2', '\x2', - '\x2', '\x9F', '\xA2', '\x3', '\x2', '\x2', '\x2', '\xA0', '\x9E', '\x3', - '\x2', '\x2', '\x2', '\xA0', '\xA1', '\x3', '\x2', '\x2', '\x2', '\xA1', - '\xA4', '\x3', '\x2', '\x2', '\x2', '\xA2', '\xA0', '\x3', '\x2', '\x2', - '\x2', '\xA3', '\xA5', '\x5', '\x1A', '\xE', '\x2', '\xA4', '\xA3', '\x3', - '\x2', '\x2', '\x2', '\xA4', '\xA5', '\x3', '\x2', '\x2', '\x2', '\xA5', - '\xA6', '\x3', '\x2', '\x2', '\x2', '\xA6', '\xA7', '\x5', '.', '\x18', - '\x2', '\xA7', '\xA8', '\a', '\n', '\x2', '\x2', '\xA8', '\xA9', '\x5', - '\x30', '\x19', '\x2', '\xA9', '\x17', '\x3', '\x2', '\x2', '\x2', '\xAA', - '\xAB', '\x5', '.', '\x18', '\x2', '\xAB', '\xAC', '\a', '\t', '\x2', - '\x2', '\xAC', '\xAD', '\a', '\b', '\x2', '\x2', '\xAD', '\xAE', '\x5', - '\x12', '\n', '\x2', '\xAE', '\xAF', '\x5', '\x30', '\x19', '\x2', '\xAF', - '\xB0', '\x5', '\x4', '\x3', '\x2', '\xB0', '\x19', '\x3', '\x2', '\x2', - '\x2', '\xB1', '\xB2', '\x5', '.', '\x18', '\x2', '\xB2', '\xB3', '\a', - '\t', '\x2', '\x2', '\xB3', '\xB4', '\x5', '\x30', '\x19', '\x2', '\xB4', - '\xB5', '\x5', '\x4', '\x3', '\x2', '\xB5', '\x1B', '\x3', '\x2', '\x2', - '\x2', '\xB6', '\xB7', '\x5', '.', '\x18', '\x2', '\xB7', '\xB8', '\a', - '\v', '\x2', '\x2', '\xB8', '\xB9', '\a', '%', '\x2', '\x2', '\xB9', '\xBA', - '\a', '\r', '\x2', '\x2', '\xBA', '\xBB', '\x5', '\x10', '\t', '\x2', - '\xBB', '\xBC', '\x5', '\x30', '\x19', '\x2', '\xBC', '\xBE', '\x5', '\x4', - '\x3', '\x2', '\xBD', '\xBF', '\x5', '\x1A', '\xE', '\x2', '\xBE', '\xBD', - '\x3', '\x2', '\x2', '\x2', '\xBE', '\xBF', '\x3', '\x2', '\x2', '\x2', - '\xBF', '\xC0', '\x3', '\x2', '\x2', '\x2', '\xC0', '\xC1', '\x5', '.', - '\x18', '\x2', '\xC1', '\xC2', '\a', '\n', '\x2', '\x2', '\xC2', '\xC3', - '\x5', '\x30', '\x19', '\x2', '\xC3', '\x1D', '\x3', '\x2', '\x2', '\x2', - '\xC4', '\xC5', '\x5', '.', '\x18', '\x2', '\xC5', '\xC6', '\a', '\f', - '\x2', '\x2', '\xC6', '\xC7', '\x5', '(', '\x15', '\x2', '\xC7', '\xC8', - '\x5', '\x30', '\x19', '\x2', '\xC8', '\xCA', '\x5', '\x4', '\x3', '\x2', - '\xC9', '\xCB', '\x5', '\x1A', '\xE', '\x2', '\xCA', '\xC9', '\x3', '\x2', - '\x2', '\x2', '\xCA', '\xCB', '\x3', '\x2', '\x2', '\x2', '\xCB', '\xCC', - '\x3', '\x2', '\x2', '\x2', '\xCC', '\xCD', '\x5', '.', '\x18', '\x2', - '\xCD', '\xCE', '\a', '\n', '\x2', '\x2', '\xCE', '\xCF', '\x5', '\x30', - '\x19', '\x2', '\xCF', '\x1F', '\x3', '\x2', '\x2', '\x2', '\xD0', '\xD1', - '\x5', '.', '\x18', '\x2', '\xD1', '\xD2', '\a', '\x1E', '\x2', '\x2', - '\xD2', '\xD3', '\x5', '\n', '\x6', '\x2', '\xD3', '\xD4', '\x5', '\x30', - '\x19', '\x2', '\xD4', '\xD6', '\x5', '\x4', '\x3', '\x2', '\xD5', '\xD7', - '\x5', '\x1A', '\xE', '\x2', '\xD6', '\xD5', '\x3', '\x2', '\x2', '\x2', - '\xD6', '\xD7', '\x3', '\x2', '\x2', '\x2', '\xD7', '\xD8', '\x3', '\x2', - '\x2', '\x2', '\xD8', '\xD9', '\x5', '.', '\x18', '\x2', '\xD9', '\xDA', - '\a', '\n', '\x2', '\x2', '\xDA', '\xDB', '\x5', '\x30', '\x19', '\x2', - '\xDB', '!', '\x3', '\x2', '\x2', '\x2', '\xDC', '\xDD', '\x5', '.', '\x18', - '\x2', '\xDD', '\xDE', '\a', '\x1F', '\x2', '\x2', '\xDE', '\xDF', '\a', - '\x13', '\x2', '\x2', '\xDF', '\xE0', '\x5', '\x30', '\x19', '\x2', '\xE0', - '\xE1', '\x5', '\x4', '\x3', '\x2', '\xE1', '\xE2', '\x5', '.', '\x18', - '\x2', '\xE2', '\xE3', '\a', '\n', '\x2', '\x2', '\xE3', '\xE4', '\x5', - '\x30', '\x19', '\x2', '\xE4', '#', '\x3', '\x2', '\x2', '\x2', '\xE5', - '\xE6', '\x5', '.', '\x18', '\x2', '\xE6', '\xE7', '\a', ' ', '\x2', '\x2', - '\xE7', '\xE9', '\a', '\x13', '\x2', '\x2', '\xE8', '\xEA', '\x5', '\n', - '\x6', '\x2', '\xE9', '\xE8', '\x3', '\x2', '\x2', '\x2', '\xE9', '\xEA', - '\x3', '\x2', '\x2', '\x2', '\xEA', '\xEB', '\x3', '\x2', '\x2', '\x2', - '\xEB', '\xEC', '\x5', '\x30', '\x19', '\x2', '\xEC', '%', '\x3', '\x2', - '\x2', '\x2', '\xED', '\xEE', '\x5', '.', '\x18', '\x2', '\xEE', '\xEF', - '\a', '!', '\x2', '\x2', '\xEF', '\xF0', '\a', '\x13', '\x2', '\x2', '\xF0', - '\xF1', '\x5', '\n', '\x6', '\x2', '\xF1', '\xF2', '\x5', '\x30', '\x19', - '\x2', '\xF2', '\xF3', '\x5', '\x4', '\x3', '\x2', '\xF3', '\xF4', '\x5', - '.', '\x18', '\x2', '\xF4', '\xF5', '\a', '\n', '\x2', '\x2', '\xF5', - '\xF6', '\x5', '\x30', '\x19', '\x2', '\xF6', '\'', '\x3', '\x2', '\x2', - '\x2', '\xF7', '\xFD', '\x5', '\x10', '\t', '\x2', '\xF8', '\xF9', '\x5', - '*', '\x16', '\x2', '\xF9', '\xFA', '\a', '\xE', '\x2', '\x2', '\xFA', - '\xFB', '\x5', '\x10', '\t', '\x2', '\xFB', '\xFD', '\x3', '\x2', '\x2', - '\x2', '\xFC', '\xF7', '\x3', '\x2', '\x2', '\x2', '\xFC', '\xF8', '\x3', - '\x2', '\x2', '\x2', '\xFD', ')', '\x3', '\x2', '\x2', '\x2', '\xFE', - '\x101', '\x5', ',', '\x17', '\x2', '\xFF', '\x100', '\a', '\x10', '\x2', - '\x2', '\x100', '\x102', '\x5', ',', '\x17', '\x2', '\x101', '\xFF', '\x3', - '\x2', '\x2', '\x2', '\x101', '\x102', '\x3', '\x2', '\x2', '\x2', '\x102', - '+', '\x3', '\x2', '\x2', '\x2', '\x103', '\x105', '\a', '\x11', '\x2', - '\x2', '\x104', '\x103', '\x3', '\x2', '\x2', '\x2', '\x104', '\x105', - '\x3', '\x2', '\x2', '\x2', '\x105', '\x106', '\x3', '\x2', '\x2', '\x2', - '\x106', '\x107', '\a', '%', '\x2', '\x2', '\x107', '-', '\x3', '\x2', - '\x2', '\x2', '\x108', '\x109', '\t', '\x3', '\x2', '\x2', '\x109', '/', - '\x3', '\x2', '\x2', '\x2', '\x10A', '\x10B', '\t', '\x4', '\x2', '\x2', - '\x10B', '\x31', '\x3', '\x2', '\x2', '\x2', '\x16', '\x38', '\x44', 'O', - 'W', 'Z', '`', '\x63', '\x85', '\x8C', '\x90', '\x96', '\xA0', '\xA4', - '\xBE', '\xCA', '\xD6', '\xE9', '\xFC', '\x101', '\x104', + '\v', '\x2', 's', '\x99', '\x3', '\x2', '\x2', '\x2', 't', 'u', '\a', + '\x16', '\x2', '\x2', 'u', 'v', '\x5', '\x14', '\v', '\x2', 'v', 'w', + '\x5', '\x14', '\v', '\x2', 'w', '\x99', '\x3', '\x2', '\x2', '\x2', 'x', + 'y', '\a', '\x17', '\x2', '\x2', 'y', 'z', '\x5', '\x14', '\v', '\x2', + 'z', '{', '\x5', '\x14', '\v', '\x2', '{', '\x99', '\x3', '\x2', '\x2', + '\x2', '|', '}', '\a', '\x18', '\x2', '\x2', '}', '~', '\x5', '\x14', + '\v', '\x2', '~', '\x7F', '\x5', '\x14', '\v', '\x2', '\x7F', '\x99', + '\x3', '\x2', '\x2', '\x2', '\x80', '\x81', '\a', '\x19', '\x2', '\x2', + '\x81', '\x82', '\x5', '\x14', '\v', '\x2', '\x82', '\x83', '\x5', '\x14', + '\v', '\x2', '\x83', '\x99', '\x3', '\x2', '\x2', '\x2', '\x84', '\x85', + '\a', '\x1A', '\x2', '\x2', '\x85', '\x86', '\x5', '\x14', '\v', '\x2', + '\x86', '\x87', '\x5', '\x14', '\v', '\x2', '\x87', '\x99', '\x3', '\x2', + '\x2', '\x2', '\x88', '\x89', '\a', '\x1B', '\x2', '\x2', '\x89', '\x8B', + '\x5', '\x12', '\n', '\x2', '\x8A', '\x8C', '\x5', '\x12', '\n', '\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', '\x99', '\x3', '\x2', '\x2', '\x2', + '\x8F', '\x90', '\a', '\x1C', '\x2', '\x2', '\x90', '\x92', '\x5', '\x12', + '\n', '\x2', '\x91', '\x93', '\x5', '\x12', '\n', '\x2', '\x92', '\x91', + '\x3', '\x2', '\x2', '\x2', '\x93', '\x94', '\x3', '\x2', '\x2', '\x2', + '\x94', '\x92', '\x3', '\x2', '\x2', '\x2', '\x94', '\x95', '\x3', '\x2', + '\x2', '\x2', '\x95', '\x99', '\x3', '\x2', '\x2', '\x2', '\x96', '\x97', + '\a', '\x1D', '\x2', '\x2', '\x97', '\x99', '\x5', '\x12', '\n', '\x2', + '\x98', 'o', '\x3', '\x2', '\x2', '\x2', '\x98', 'p', '\x3', '\x2', '\x2', + '\x2', '\x98', 't', '\x3', '\x2', '\x2', '\x2', '\x98', 'x', '\x3', '\x2', + '\x2', '\x2', '\x98', '|', '\x3', '\x2', '\x2', '\x2', '\x98', '\x80', + '\x3', '\x2', '\x2', '\x2', '\x98', '\x84', '\x3', '\x2', '\x2', '\x2', + '\x98', '\x88', '\x3', '\x2', '\x2', '\x2', '\x98', '\x8F', '\x3', '\x2', + '\x2', '\x2', '\x98', '\x96', '\x3', '\x2', '\x2', '\x2', '\x99', '\x13', + '\x3', '\x2', '\x2', '\x2', '\x9A', '\x9F', '\x5', '\x10', '\t', '\x2', + '\x9B', '\x9F', '\a', '\x12', '\x2', '\x2', '\x9C', '\x9F', '\a', '\x13', + '\x2', '\x2', '\x9D', '\x9F', '\a', '\x14', '\x2', '\x2', '\x9E', '\x9A', + '\x3', '\x2', '\x2', '\x2', '\x9E', '\x9B', '\x3', '\x2', '\x2', '\x2', + '\x9E', '\x9C', '\x3', '\x2', '\x2', '\x2', '\x9E', '\x9D', '\x3', '\x2', + '\x2', '\x2', '\x9F', '\x15', '\x3', '\x2', '\x2', '\x2', '\xA0', '\xA1', + '\x5', '.', '\x18', '\x2', '\xA1', '\xA2', '\a', '\b', '\x2', '\x2', '\xA2', + '\xA3', '\x5', '\x12', '\n', '\x2', '\xA3', '\xA4', '\x5', '\x30', '\x19', + '\x2', '\xA4', '\xA8', '\x5', '\x4', '\x3', '\x2', '\xA5', '\xA7', '\x5', + '\x18', '\r', '\x2', '\xA6', '\xA5', '\x3', '\x2', '\x2', '\x2', '\xA7', + '\xAA', '\x3', '\x2', '\x2', '\x2', '\xA8', '\xA6', '\x3', '\x2', '\x2', + '\x2', '\xA8', '\xA9', '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAC', '\x3', + '\x2', '\x2', '\x2', '\xAA', '\xA8', '\x3', '\x2', '\x2', '\x2', '\xAB', + '\xAD', '\x5', '\x1A', '\xE', '\x2', '\xAC', '\xAB', '\x3', '\x2', '\x2', + '\x2', '\xAC', '\xAD', '\x3', '\x2', '\x2', '\x2', '\xAD', '\xAE', '\x3', + '\x2', '\x2', '\x2', '\xAE', '\xAF', '\x5', '.', '\x18', '\x2', '\xAF', + '\xB0', '\a', '\n', '\x2', '\x2', '\xB0', '\xB1', '\x5', '\x30', '\x19', + '\x2', '\xB1', '\x17', '\x3', '\x2', '\x2', '\x2', '\xB2', '\xB3', '\x5', + '.', '\x18', '\x2', '\xB3', '\xB4', '\a', '\t', '\x2', '\x2', '\xB4', + '\xB5', '\a', '\b', '\x2', '\x2', '\xB5', '\xB6', '\x5', '\x12', '\n', + '\x2', '\xB6', '\xB7', '\x5', '\x30', '\x19', '\x2', '\xB7', '\xB8', '\x5', + '\x4', '\x3', '\x2', '\xB8', '\x19', '\x3', '\x2', '\x2', '\x2', '\xB9', + '\xBA', '\x5', '.', '\x18', '\x2', '\xBA', '\xBB', '\a', '\t', '\x2', + '\x2', '\xBB', '\xBC', '\x5', '\x30', '\x19', '\x2', '\xBC', '\xBD', '\x5', + '\x4', '\x3', '\x2', '\xBD', '\x1B', '\x3', '\x2', '\x2', '\x2', '\xBE', + '\xBF', '\x5', '.', '\x18', '\x2', '\xBF', '\xC0', '\a', '\v', '\x2', + '\x2', '\xC0', '\xC1', '\a', '%', '\x2', '\x2', '\xC1', '\xC2', '\a', + '\r', '\x2', '\x2', '\xC2', '\xC3', '\x5', '\x10', '\t', '\x2', '\xC3', + '\xC4', '\x5', '\x30', '\x19', '\x2', '\xC4', '\xC6', '\x5', '\x4', '\x3', + '\x2', '\xC5', '\xC7', '\x5', '\x1A', '\xE', '\x2', '\xC6', '\xC5', '\x3', + '\x2', '\x2', '\x2', '\xC6', '\xC7', '\x3', '\x2', '\x2', '\x2', '\xC7', + '\xC8', '\x3', '\x2', '\x2', '\x2', '\xC8', '\xC9', '\x5', '.', '\x18', + '\x2', '\xC9', '\xCA', '\a', '\n', '\x2', '\x2', '\xCA', '\xCB', '\x5', + '\x30', '\x19', '\x2', '\xCB', '\x1D', '\x3', '\x2', '\x2', '\x2', '\xCC', + '\xCD', '\x5', '.', '\x18', '\x2', '\xCD', '\xCE', '\a', '\f', '\x2', + '\x2', '\xCE', '\xCF', '\x5', '(', '\x15', '\x2', '\xCF', '\xD0', '\x5', + '\x30', '\x19', '\x2', '\xD0', '\xD2', '\x5', '\x4', '\x3', '\x2', '\xD1', + '\xD3', '\x5', '\x1A', '\xE', '\x2', '\xD2', '\xD1', '\x3', '\x2', '\x2', + '\x2', '\xD2', '\xD3', '\x3', '\x2', '\x2', '\x2', '\xD3', '\xD4', '\x3', + '\x2', '\x2', '\x2', '\xD4', '\xD5', '\x5', '.', '\x18', '\x2', '\xD5', + '\xD6', '\a', '\n', '\x2', '\x2', '\xD6', '\xD7', '\x5', '\x30', '\x19', + '\x2', '\xD7', '\x1F', '\x3', '\x2', '\x2', '\x2', '\xD8', '\xD9', '\x5', + '.', '\x18', '\x2', '\xD9', '\xDA', '\a', '\x1E', '\x2', '\x2', '\xDA', + '\xDB', '\x5', '\n', '\x6', '\x2', '\xDB', '\xDC', '\x5', '\x30', '\x19', + '\x2', '\xDC', '\xDE', '\x5', '\x4', '\x3', '\x2', '\xDD', '\xDF', '\x5', + '\x1A', '\xE', '\x2', '\xDE', '\xDD', '\x3', '\x2', '\x2', '\x2', '\xDE', + '\xDF', '\x3', '\x2', '\x2', '\x2', '\xDF', '\xE0', '\x3', '\x2', '\x2', + '\x2', '\xE0', '\xE1', '\x5', '.', '\x18', '\x2', '\xE1', '\xE2', '\a', + '\n', '\x2', '\x2', '\xE2', '\xE3', '\x5', '\x30', '\x19', '\x2', '\xE3', + '!', '\x3', '\x2', '\x2', '\x2', '\xE4', '\xE5', '\x5', '.', '\x18', '\x2', + '\xE5', '\xE6', '\a', '\x1F', '\x2', '\x2', '\xE6', '\xE7', '\a', '\x13', + '\x2', '\x2', '\xE7', '\xE8', '\x5', '\x30', '\x19', '\x2', '\xE8', '\xE9', + '\x5', '\x4', '\x3', '\x2', '\xE9', '\xEA', '\x5', '.', '\x18', '\x2', + '\xEA', '\xEB', '\a', '\n', '\x2', '\x2', '\xEB', '\xEC', '\x5', '\x30', + '\x19', '\x2', '\xEC', '#', '\x3', '\x2', '\x2', '\x2', '\xED', '\xEE', + '\x5', '.', '\x18', '\x2', '\xEE', '\xEF', '\a', ' ', '\x2', '\x2', '\xEF', + '\xF1', '\a', '\x13', '\x2', '\x2', '\xF0', '\xF2', '\x5', '\n', '\x6', + '\x2', '\xF1', '\xF0', '\x3', '\x2', '\x2', '\x2', '\xF1', '\xF2', '\x3', + '\x2', '\x2', '\x2', '\xF2', '\xF3', '\x3', '\x2', '\x2', '\x2', '\xF3', + '\xF4', '\x5', '\x30', '\x19', '\x2', '\xF4', '%', '\x3', '\x2', '\x2', + '\x2', '\xF5', '\xF6', '\x5', '.', '\x18', '\x2', '\xF6', '\xF7', '\a', + '!', '\x2', '\x2', '\xF7', '\xF8', '\a', '\x13', '\x2', '\x2', '\xF8', + '\xF9', '\x5', '\n', '\x6', '\x2', '\xF9', '\xFA', '\x5', '\x30', '\x19', + '\x2', '\xFA', '\xFB', '\x5', '\x4', '\x3', '\x2', '\xFB', '\xFC', '\x5', + '.', '\x18', '\x2', '\xFC', '\xFD', '\a', '\n', '\x2', '\x2', '\xFD', + '\xFE', '\x5', '\x30', '\x19', '\x2', '\xFE', '\'', '\x3', '\x2', '\x2', + '\x2', '\xFF', '\x105', '\x5', '\x10', '\t', '\x2', '\x100', '\x101', + '\x5', '*', '\x16', '\x2', '\x101', '\x102', '\a', '\xE', '\x2', '\x2', + '\x102', '\x103', '\x5', '\x10', '\t', '\x2', '\x103', '\x105', '\x3', + '\x2', '\x2', '\x2', '\x104', '\xFF', '\x3', '\x2', '\x2', '\x2', '\x104', + '\x100', '\x3', '\x2', '\x2', '\x2', '\x105', ')', '\x3', '\x2', '\x2', + '\x2', '\x106', '\x109', '\x5', ',', '\x17', '\x2', '\x107', '\x108', + '\a', '\x10', '\x2', '\x2', '\x108', '\x10A', '\x5', ',', '\x17', '\x2', + '\x109', '\x107', '\x3', '\x2', '\x2', '\x2', '\x109', '\x10A', '\x3', + '\x2', '\x2', '\x2', '\x10A', '+', '\x3', '\x2', '\x2', '\x2', '\x10B', + '\x10D', '\a', '\x11', '\x2', '\x2', '\x10C', '\x10B', '\x3', '\x2', '\x2', + '\x2', '\x10C', '\x10D', '\x3', '\x2', '\x2', '\x2', '\x10D', '\x10E', + '\x3', '\x2', '\x2', '\x2', '\x10E', '\x10F', '\a', '%', '\x2', '\x2', + '\x10F', '-', '\x3', '\x2', '\x2', '\x2', '\x110', '\x111', '\t', '\x4', + '\x2', '\x2', '\x111', '/', '\x3', '\x2', '\x2', '\x2', '\x112', '\x113', + '\t', '\x5', '\x2', '\x2', '\x113', '\x31', '\x3', '\x2', '\x2', '\x2', + '\x17', '\x38', '\x44', 'M', 'T', '\\', '\x62', 'h', 'k', '\x8D', '\x94', + '\x98', '\x9E', '\xA8', '\xAC', '\xC6', '\xD2', '\xDE', '\xF1', '\x104', + '\x109', '\x10C', }; public static readonly ATN _ATN = diff --git a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.interp b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.interp index b1ff97a..ea602c6 100644 --- a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.interp +++ b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParser.interp @@ -106,4 +106,4 @@ close atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 39, 269, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 3, 2, 3, 2, 3, 2, 3, 3, 7, 3, 55, 10, 3, 12, 3, 14, 3, 58, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 69, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 7, 6, 78, 10, 6, 12, 6, 14, 6, 81, 11, 6, 3, 7, 3, 7, 3, 7, 7, 7, 86, 10, 7, 12, 7, 14, 7, 89, 11, 7, 5, 7, 91, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 97, 10, 8, 3, 9, 5, 9, 100, 10, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 6, 10, 132, 10, 10, 13, 10, 14, 10, 133, 3, 10, 3, 10, 3, 10, 6, 10, 139, 10, 10, 13, 10, 14, 10, 140, 3, 10, 3, 10, 5, 10, 145, 10, 10, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 151, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 159, 10, 12, 12, 12, 14, 12, 162, 11, 12, 3, 12, 5, 12, 165, 10, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 191, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 203, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 215, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 234, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 253, 10, 21, 3, 22, 3, 22, 3, 22, 5, 22, 258, 10, 22, 3, 23, 5, 23, 261, 10, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 2, 2, 26, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 2, 5, 3, 2, 35, 37, 3, 2, 3, 4, 3, 2, 6, 7, 2, 283, 2, 50, 3, 2, 2, 2, 4, 56, 3, 2, 2, 2, 6, 68, 3, 2, 2, 2, 8, 70, 3, 2, 2, 2, 10, 74, 3, 2, 2, 2, 12, 90, 3, 2, 2, 2, 14, 96, 3, 2, 2, 2, 16, 99, 3, 2, 2, 2, 18, 144, 3, 2, 2, 2, 20, 150, 3, 2, 2, 2, 22, 152, 3, 2, 2, 2, 24, 170, 3, 2, 2, 2, 26, 177, 3, 2, 2, 2, 28, 182, 3, 2, 2, 2, 30, 196, 3, 2, 2, 2, 32, 208, 3, 2, 2, 2, 34, 220, 3, 2, 2, 2, 36, 229, 3, 2, 2, 2, 38, 237, 3, 2, 2, 2, 40, 252, 3, 2, 2, 2, 42, 254, 3, 2, 2, 2, 44, 260, 3, 2, 2, 2, 46, 264, 3, 2, 2, 2, 48, 266, 3, 2, 2, 2, 50, 51, 5, 4, 3, 2, 51, 52, 7, 2, 2, 3, 52, 3, 3, 2, 2, 2, 53, 55, 5, 6, 4, 2, 54, 53, 3, 2, 2, 2, 55, 58, 3, 2, 2, 2, 56, 54, 3, 2, 2, 2, 56, 57, 3, 2, 2, 2, 57, 5, 3, 2, 2, 2, 58, 56, 3, 2, 2, 2, 59, 69, 7, 5, 2, 2, 60, 69, 5, 8, 5, 2, 61, 69, 5, 22, 12, 2, 62, 69, 5, 28, 15, 2, 63, 69, 5, 30, 16, 2, 64, 69, 5, 32, 17, 2, 65, 69, 5, 34, 18, 2, 66, 69, 5, 36, 19, 2, 67, 69, 5, 38, 20, 2, 68, 59, 3, 2, 2, 2, 68, 60, 3, 2, 2, 2, 68, 61, 3, 2, 2, 2, 68, 62, 3, 2, 2, 2, 68, 63, 3, 2, 2, 2, 68, 64, 3, 2, 2, 2, 68, 65, 3, 2, 2, 2, 68, 66, 3, 2, 2, 2, 68, 67, 3, 2, 2, 2, 69, 7, 3, 2, 2, 2, 70, 71, 5, 46, 24, 2, 71, 72, 5, 10, 6, 2, 72, 73, 5, 48, 25, 2, 73, 9, 3, 2, 2, 2, 74, 79, 5, 12, 7, 2, 75, 76, 7, 34, 2, 2, 76, 78, 5, 12, 7, 2, 77, 75, 3, 2, 2, 2, 78, 81, 3, 2, 2, 2, 79, 77, 3, 2, 2, 2, 79, 80, 3, 2, 2, 2, 80, 11, 3, 2, 2, 2, 81, 79, 3, 2, 2, 2, 82, 91, 5, 16, 9, 2, 83, 87, 7, 37, 2, 2, 84, 86, 5, 14, 8, 2, 85, 84, 3, 2, 2, 2, 86, 89, 3, 2, 2, 2, 87, 85, 3, 2, 2, 2, 87, 88, 3, 2, 2, 2, 88, 91, 3, 2, 2, 2, 89, 87, 3, 2, 2, 2, 90, 82, 3, 2, 2, 2, 90, 83, 3, 2, 2, 2, 91, 13, 3, 2, 2, 2, 92, 97, 5, 16, 9, 2, 93, 97, 7, 18, 2, 2, 94, 97, 7, 19, 2, 2, 95, 97, 7, 20, 2, 2, 96, 92, 3, 2, 2, 2, 96, 93, 3, 2, 2, 2, 96, 94, 3, 2, 2, 2, 96, 95, 3, 2, 2, 2, 97, 15, 3, 2, 2, 2, 98, 100, 7, 17, 2, 2, 99, 98, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 101, 3, 2, 2, 2, 101, 102, 9, 2, 2, 2, 102, 17, 3, 2, 2, 2, 103, 145, 5, 16, 9, 2, 104, 105, 7, 21, 2, 2, 105, 106, 5, 20, 11, 2, 106, 107, 5, 20, 11, 2, 107, 145, 3, 2, 2, 2, 108, 109, 7, 22, 2, 2, 109, 110, 5, 20, 11, 2, 110, 111, 5, 20, 11, 2, 111, 145, 3, 2, 2, 2, 112, 113, 7, 23, 2, 2, 113, 114, 5, 20, 11, 2, 114, 115, 5, 20, 11, 2, 115, 145, 3, 2, 2, 2, 116, 117, 7, 24, 2, 2, 117, 118, 5, 20, 11, 2, 118, 119, 5, 20, 11, 2, 119, 145, 3, 2, 2, 2, 120, 121, 7, 25, 2, 2, 121, 122, 5, 20, 11, 2, 122, 123, 5, 20, 11, 2, 123, 145, 3, 2, 2, 2, 124, 125, 7, 26, 2, 2, 125, 126, 5, 20, 11, 2, 126, 127, 5, 20, 11, 2, 127, 145, 3, 2, 2, 2, 128, 129, 7, 27, 2, 2, 129, 131, 5, 18, 10, 2, 130, 132, 5, 18, 10, 2, 131, 130, 3, 2, 2, 2, 132, 133, 3, 2, 2, 2, 133, 131, 3, 2, 2, 2, 133, 134, 3, 2, 2, 2, 134, 145, 3, 2, 2, 2, 135, 136, 7, 28, 2, 2, 136, 138, 5, 18, 10, 2, 137, 139, 5, 18, 10, 2, 138, 137, 3, 2, 2, 2, 139, 140, 3, 2, 2, 2, 140, 138, 3, 2, 2, 2, 140, 141, 3, 2, 2, 2, 141, 145, 3, 2, 2, 2, 142, 143, 7, 29, 2, 2, 143, 145, 5, 18, 10, 2, 144, 103, 3, 2, 2, 2, 144, 104, 3, 2, 2, 2, 144, 108, 3, 2, 2, 2, 144, 112, 3, 2, 2, 2, 144, 116, 3, 2, 2, 2, 144, 120, 3, 2, 2, 2, 144, 124, 3, 2, 2, 2, 144, 128, 3, 2, 2, 2, 144, 135, 3, 2, 2, 2, 144, 142, 3, 2, 2, 2, 145, 19, 3, 2, 2, 2, 146, 151, 5, 16, 9, 2, 147, 151, 7, 18, 2, 2, 148, 151, 7, 19, 2, 2, 149, 151, 7, 20, 2, 2, 150, 146, 3, 2, 2, 2, 150, 147, 3, 2, 2, 2, 150, 148, 3, 2, 2, 2, 150, 149, 3, 2, 2, 2, 151, 21, 3, 2, 2, 2, 152, 153, 5, 46, 24, 2, 153, 154, 7, 8, 2, 2, 154, 155, 5, 18, 10, 2, 155, 156, 5, 48, 25, 2, 156, 160, 5, 4, 3, 2, 157, 159, 5, 24, 13, 2, 158, 157, 3, 2, 2, 2, 159, 162, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 160, 161, 3, 2, 2, 2, 161, 164, 3, 2, 2, 2, 162, 160, 3, 2, 2, 2, 163, 165, 5, 26, 14, 2, 164, 163, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 166, 3, 2, 2, 2, 166, 167, 5, 46, 24, 2, 167, 168, 7, 10, 2, 2, 168, 169, 5, 48, 25, 2, 169, 23, 3, 2, 2, 2, 170, 171, 5, 46, 24, 2, 171, 172, 7, 9, 2, 2, 172, 173, 7, 8, 2, 2, 173, 174, 5, 18, 10, 2, 174, 175, 5, 48, 25, 2, 175, 176, 5, 4, 3, 2, 176, 25, 3, 2, 2, 2, 177, 178, 5, 46, 24, 2, 178, 179, 7, 9, 2, 2, 179, 180, 5, 48, 25, 2, 180, 181, 5, 4, 3, 2, 181, 27, 3, 2, 2, 2, 182, 183, 5, 46, 24, 2, 183, 184, 7, 11, 2, 2, 184, 185, 7, 37, 2, 2, 185, 186, 7, 13, 2, 2, 186, 187, 5, 16, 9, 2, 187, 188, 5, 48, 25, 2, 188, 190, 5, 4, 3, 2, 189, 191, 5, 26, 14, 2, 190, 189, 3, 2, 2, 2, 190, 191, 3, 2, 2, 2, 191, 192, 3, 2, 2, 2, 192, 193, 5, 46, 24, 2, 193, 194, 7, 10, 2, 2, 194, 195, 5, 48, 25, 2, 195, 29, 3, 2, 2, 2, 196, 197, 5, 46, 24, 2, 197, 198, 7, 12, 2, 2, 198, 199, 5, 40, 21, 2, 199, 200, 5, 48, 25, 2, 200, 202, 5, 4, 3, 2, 201, 203, 5, 26, 14, 2, 202, 201, 3, 2, 2, 2, 202, 203, 3, 2, 2, 2, 203, 204, 3, 2, 2, 2, 204, 205, 5, 46, 24, 2, 205, 206, 7, 10, 2, 2, 206, 207, 5, 48, 25, 2, 207, 31, 3, 2, 2, 2, 208, 209, 5, 46, 24, 2, 209, 210, 7, 30, 2, 2, 210, 211, 5, 10, 6, 2, 211, 212, 5, 48, 25, 2, 212, 214, 5, 4, 3, 2, 213, 215, 5, 26, 14, 2, 214, 213, 3, 2, 2, 2, 214, 215, 3, 2, 2, 2, 215, 216, 3, 2, 2, 2, 216, 217, 5, 46, 24, 2, 217, 218, 7, 10, 2, 2, 218, 219, 5, 48, 25, 2, 219, 33, 3, 2, 2, 2, 220, 221, 5, 46, 24, 2, 221, 222, 7, 31, 2, 2, 222, 223, 7, 19, 2, 2, 223, 224, 5, 48, 25, 2, 224, 225, 5, 4, 3, 2, 225, 226, 5, 46, 24, 2, 226, 227, 7, 10, 2, 2, 227, 228, 5, 48, 25, 2, 228, 35, 3, 2, 2, 2, 229, 230, 5, 46, 24, 2, 230, 231, 7, 32, 2, 2, 231, 233, 7, 19, 2, 2, 232, 234, 5, 10, 6, 2, 233, 232, 3, 2, 2, 2, 233, 234, 3, 2, 2, 2, 234, 235, 3, 2, 2, 2, 235, 236, 5, 48, 25, 2, 236, 37, 3, 2, 2, 2, 237, 238, 5, 46, 24, 2, 238, 239, 7, 33, 2, 2, 239, 240, 7, 19, 2, 2, 240, 241, 5, 10, 6, 2, 241, 242, 5, 48, 25, 2, 242, 243, 5, 4, 3, 2, 243, 244, 5, 46, 24, 2, 244, 245, 7, 10, 2, 2, 245, 246, 5, 48, 25, 2, 246, 39, 3, 2, 2, 2, 247, 253, 5, 16, 9, 2, 248, 249, 5, 42, 22, 2, 249, 250, 7, 14, 2, 2, 250, 251, 5, 16, 9, 2, 251, 253, 3, 2, 2, 2, 252, 247, 3, 2, 2, 2, 252, 248, 3, 2, 2, 2, 253, 41, 3, 2, 2, 2, 254, 257, 5, 44, 23, 2, 255, 256, 7, 16, 2, 2, 256, 258, 5, 44, 23, 2, 257, 255, 3, 2, 2, 2, 257, 258, 3, 2, 2, 2, 258, 43, 3, 2, 2, 2, 259, 261, 7, 17, 2, 2, 260, 259, 3, 2, 2, 2, 260, 261, 3, 2, 2, 2, 261, 262, 3, 2, 2, 2, 262, 263, 7, 37, 2, 2, 263, 45, 3, 2, 2, 2, 264, 265, 9, 3, 2, 2, 265, 47, 3, 2, 2, 2, 266, 267, 9, 4, 2, 2, 267, 49, 3, 2, 2, 2, 22, 56, 68, 79, 87, 90, 96, 99, 133, 140, 144, 150, 160, 164, 190, 202, 214, 233, 252, 257, 260] +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 39, 277, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 3, 2, 3, 2, 3, 2, 3, 3, 7, 3, 55, 10, 3, 12, 3, 14, 3, 58, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 69, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 5, 6, 78, 10, 6, 3, 6, 3, 6, 3, 6, 7, 6, 83, 10, 6, 12, 6, 14, 6, 86, 11, 6, 3, 7, 3, 7, 3, 7, 7, 7, 91, 10, 7, 12, 7, 14, 7, 94, 11, 7, 3, 7, 3, 7, 3, 7, 5, 7, 99, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 105, 10, 8, 3, 9, 5, 9, 108, 10, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 6, 10, 140, 10, 10, 13, 10, 14, 10, 141, 3, 10, 3, 10, 3, 10, 6, 10, 147, 10, 10, 13, 10, 14, 10, 148, 3, 10, 3, 10, 5, 10, 153, 10, 10, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 159, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 167, 10, 12, 12, 12, 14, 12, 170, 11, 12, 3, 12, 5, 12, 173, 10, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 199, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 211, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 223, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 242, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 261, 10, 21, 3, 22, 3, 22, 3, 22, 5, 22, 266, 10, 22, 3, 23, 5, 23, 269, 10, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 2, 2, 26, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 2, 6, 3, 2, 14, 15, 3, 2, 35, 37, 3, 2, 3, 4, 3, 2, 6, 7, 2, 295, 2, 50, 3, 2, 2, 2, 4, 56, 3, 2, 2, 2, 6, 68, 3, 2, 2, 2, 8, 70, 3, 2, 2, 2, 10, 77, 3, 2, 2, 2, 12, 98, 3, 2, 2, 2, 14, 104, 3, 2, 2, 2, 16, 107, 3, 2, 2, 2, 18, 152, 3, 2, 2, 2, 20, 158, 3, 2, 2, 2, 22, 160, 3, 2, 2, 2, 24, 178, 3, 2, 2, 2, 26, 185, 3, 2, 2, 2, 28, 190, 3, 2, 2, 2, 30, 204, 3, 2, 2, 2, 32, 216, 3, 2, 2, 2, 34, 228, 3, 2, 2, 2, 36, 237, 3, 2, 2, 2, 38, 245, 3, 2, 2, 2, 40, 260, 3, 2, 2, 2, 42, 262, 3, 2, 2, 2, 44, 268, 3, 2, 2, 2, 46, 272, 3, 2, 2, 2, 48, 274, 3, 2, 2, 2, 50, 51, 5, 4, 3, 2, 51, 52, 7, 2, 2, 3, 52, 3, 3, 2, 2, 2, 53, 55, 5, 6, 4, 2, 54, 53, 3, 2, 2, 2, 55, 58, 3, 2, 2, 2, 56, 54, 3, 2, 2, 2, 56, 57, 3, 2, 2, 2, 57, 5, 3, 2, 2, 2, 58, 56, 3, 2, 2, 2, 59, 69, 7, 5, 2, 2, 60, 69, 5, 8, 5, 2, 61, 69, 5, 22, 12, 2, 62, 69, 5, 28, 15, 2, 63, 69, 5, 30, 16, 2, 64, 69, 5, 32, 17, 2, 65, 69, 5, 34, 18, 2, 66, 69, 5, 36, 19, 2, 67, 69, 5, 38, 20, 2, 68, 59, 3, 2, 2, 2, 68, 60, 3, 2, 2, 2, 68, 61, 3, 2, 2, 2, 68, 62, 3, 2, 2, 2, 68, 63, 3, 2, 2, 2, 68, 64, 3, 2, 2, 2, 68, 65, 3, 2, 2, 2, 68, 66, 3, 2, 2, 2, 68, 67, 3, 2, 2, 2, 69, 7, 3, 2, 2, 2, 70, 71, 5, 46, 24, 2, 71, 72, 5, 10, 6, 2, 72, 73, 5, 48, 25, 2, 73, 9, 3, 2, 2, 2, 74, 75, 5, 42, 22, 2, 75, 76, 9, 2, 2, 2, 76, 78, 3, 2, 2, 2, 77, 74, 3, 2, 2, 2, 77, 78, 3, 2, 2, 2, 78, 79, 3, 2, 2, 2, 79, 84, 5, 12, 7, 2, 80, 81, 7, 34, 2, 2, 81, 83, 5, 12, 7, 2, 82, 80, 3, 2, 2, 2, 83, 86, 3, 2, 2, 2, 84, 82, 3, 2, 2, 2, 84, 85, 3, 2, 2, 2, 85, 11, 3, 2, 2, 2, 86, 84, 3, 2, 2, 2, 87, 99, 5, 16, 9, 2, 88, 92, 7, 37, 2, 2, 89, 91, 5, 14, 8, 2, 90, 89, 3, 2, 2, 2, 91, 94, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 92, 93, 3, 2, 2, 2, 93, 99, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 95, 99, 7, 18, 2, 2, 96, 99, 7, 19, 2, 2, 97, 99, 7, 20, 2, 2, 98, 87, 3, 2, 2, 2, 98, 88, 3, 2, 2, 2, 98, 95, 3, 2, 2, 2, 98, 96, 3, 2, 2, 2, 98, 97, 3, 2, 2, 2, 99, 13, 3, 2, 2, 2, 100, 105, 5, 16, 9, 2, 101, 105, 7, 18, 2, 2, 102, 105, 7, 19, 2, 2, 103, 105, 7, 20, 2, 2, 104, 100, 3, 2, 2, 2, 104, 101, 3, 2, 2, 2, 104, 102, 3, 2, 2, 2, 104, 103, 3, 2, 2, 2, 105, 15, 3, 2, 2, 2, 106, 108, 7, 17, 2, 2, 107, 106, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 109, 3, 2, 2, 2, 109, 110, 9, 3, 2, 2, 110, 17, 3, 2, 2, 2, 111, 153, 5, 16, 9, 2, 112, 113, 7, 21, 2, 2, 113, 114, 5, 20, 11, 2, 114, 115, 5, 20, 11, 2, 115, 153, 3, 2, 2, 2, 116, 117, 7, 22, 2, 2, 117, 118, 5, 20, 11, 2, 118, 119, 5, 20, 11, 2, 119, 153, 3, 2, 2, 2, 120, 121, 7, 23, 2, 2, 121, 122, 5, 20, 11, 2, 122, 123, 5, 20, 11, 2, 123, 153, 3, 2, 2, 2, 124, 125, 7, 24, 2, 2, 125, 126, 5, 20, 11, 2, 126, 127, 5, 20, 11, 2, 127, 153, 3, 2, 2, 2, 128, 129, 7, 25, 2, 2, 129, 130, 5, 20, 11, 2, 130, 131, 5, 20, 11, 2, 131, 153, 3, 2, 2, 2, 132, 133, 7, 26, 2, 2, 133, 134, 5, 20, 11, 2, 134, 135, 5, 20, 11, 2, 135, 153, 3, 2, 2, 2, 136, 137, 7, 27, 2, 2, 137, 139, 5, 18, 10, 2, 138, 140, 5, 18, 10, 2, 139, 138, 3, 2, 2, 2, 140, 141, 3, 2, 2, 2, 141, 139, 3, 2, 2, 2, 141, 142, 3, 2, 2, 2, 142, 153, 3, 2, 2, 2, 143, 144, 7, 28, 2, 2, 144, 146, 5, 18, 10, 2, 145, 147, 5, 18, 10, 2, 146, 145, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 153, 3, 2, 2, 2, 150, 151, 7, 29, 2, 2, 151, 153, 5, 18, 10, 2, 152, 111, 3, 2, 2, 2, 152, 112, 3, 2, 2, 2, 152, 116, 3, 2, 2, 2, 152, 120, 3, 2, 2, 2, 152, 124, 3, 2, 2, 2, 152, 128, 3, 2, 2, 2, 152, 132, 3, 2, 2, 2, 152, 136, 3, 2, 2, 2, 152, 143, 3, 2, 2, 2, 152, 150, 3, 2, 2, 2, 153, 19, 3, 2, 2, 2, 154, 159, 5, 16, 9, 2, 155, 159, 7, 18, 2, 2, 156, 159, 7, 19, 2, 2, 157, 159, 7, 20, 2, 2, 158, 154, 3, 2, 2, 2, 158, 155, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 158, 157, 3, 2, 2, 2, 159, 21, 3, 2, 2, 2, 160, 161, 5, 46, 24, 2, 161, 162, 7, 8, 2, 2, 162, 163, 5, 18, 10, 2, 163, 164, 5, 48, 25, 2, 164, 168, 5, 4, 3, 2, 165, 167, 5, 24, 13, 2, 166, 165, 3, 2, 2, 2, 167, 170, 3, 2, 2, 2, 168, 166, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 172, 3, 2, 2, 2, 170, 168, 3, 2, 2, 2, 171, 173, 5, 26, 14, 2, 172, 171, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 174, 3, 2, 2, 2, 174, 175, 5, 46, 24, 2, 175, 176, 7, 10, 2, 2, 176, 177, 5, 48, 25, 2, 177, 23, 3, 2, 2, 2, 178, 179, 5, 46, 24, 2, 179, 180, 7, 9, 2, 2, 180, 181, 7, 8, 2, 2, 181, 182, 5, 18, 10, 2, 182, 183, 5, 48, 25, 2, 183, 184, 5, 4, 3, 2, 184, 25, 3, 2, 2, 2, 185, 186, 5, 46, 24, 2, 186, 187, 7, 9, 2, 2, 187, 188, 5, 48, 25, 2, 188, 189, 5, 4, 3, 2, 189, 27, 3, 2, 2, 2, 190, 191, 5, 46, 24, 2, 191, 192, 7, 11, 2, 2, 192, 193, 7, 37, 2, 2, 193, 194, 7, 13, 2, 2, 194, 195, 5, 16, 9, 2, 195, 196, 5, 48, 25, 2, 196, 198, 5, 4, 3, 2, 197, 199, 5, 26, 14, 2, 198, 197, 3, 2, 2, 2, 198, 199, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 201, 5, 46, 24, 2, 201, 202, 7, 10, 2, 2, 202, 203, 5, 48, 25, 2, 203, 29, 3, 2, 2, 2, 204, 205, 5, 46, 24, 2, 205, 206, 7, 12, 2, 2, 206, 207, 5, 40, 21, 2, 207, 208, 5, 48, 25, 2, 208, 210, 5, 4, 3, 2, 209, 211, 5, 26, 14, 2, 210, 209, 3, 2, 2, 2, 210, 211, 3, 2, 2, 2, 211, 212, 3, 2, 2, 2, 212, 213, 5, 46, 24, 2, 213, 214, 7, 10, 2, 2, 214, 215, 5, 48, 25, 2, 215, 31, 3, 2, 2, 2, 216, 217, 5, 46, 24, 2, 217, 218, 7, 30, 2, 2, 218, 219, 5, 10, 6, 2, 219, 220, 5, 48, 25, 2, 220, 222, 5, 4, 3, 2, 221, 223, 5, 26, 14, 2, 222, 221, 3, 2, 2, 2, 222, 223, 3, 2, 2, 2, 223, 224, 3, 2, 2, 2, 224, 225, 5, 46, 24, 2, 225, 226, 7, 10, 2, 2, 226, 227, 5, 48, 25, 2, 227, 33, 3, 2, 2, 2, 228, 229, 5, 46, 24, 2, 229, 230, 7, 31, 2, 2, 230, 231, 7, 19, 2, 2, 231, 232, 5, 48, 25, 2, 232, 233, 5, 4, 3, 2, 233, 234, 5, 46, 24, 2, 234, 235, 7, 10, 2, 2, 235, 236, 5, 48, 25, 2, 236, 35, 3, 2, 2, 2, 237, 238, 5, 46, 24, 2, 238, 239, 7, 32, 2, 2, 239, 241, 7, 19, 2, 2, 240, 242, 5, 10, 6, 2, 241, 240, 3, 2, 2, 2, 241, 242, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 244, 5, 48, 25, 2, 244, 37, 3, 2, 2, 2, 245, 246, 5, 46, 24, 2, 246, 247, 7, 33, 2, 2, 247, 248, 7, 19, 2, 2, 248, 249, 5, 10, 6, 2, 249, 250, 5, 48, 25, 2, 250, 251, 5, 4, 3, 2, 251, 252, 5, 46, 24, 2, 252, 253, 7, 10, 2, 2, 253, 254, 5, 48, 25, 2, 254, 39, 3, 2, 2, 2, 255, 261, 5, 16, 9, 2, 256, 257, 5, 42, 22, 2, 257, 258, 7, 14, 2, 2, 258, 259, 5, 16, 9, 2, 259, 261, 3, 2, 2, 2, 260, 255, 3, 2, 2, 2, 260, 256, 3, 2, 2, 2, 261, 41, 3, 2, 2, 2, 262, 265, 5, 44, 23, 2, 263, 264, 7, 16, 2, 2, 264, 266, 5, 44, 23, 2, 265, 263, 3, 2, 2, 2, 265, 266, 3, 2, 2, 2, 266, 43, 3, 2, 2, 2, 267, 269, 7, 17, 2, 2, 268, 267, 3, 2, 2, 2, 268, 269, 3, 2, 2, 2, 269, 270, 3, 2, 2, 2, 270, 271, 7, 37, 2, 2, 271, 45, 3, 2, 2, 2, 272, 273, 9, 4, 2, 2, 273, 47, 3, 2, 2, 2, 274, 275, 9, 5, 2, 2, 275, 49, 3, 2, 2, 2, 23, 56, 68, 77, 84, 92, 98, 104, 107, 141, 148, 152, 158, 168, 172, 198, 210, 222, 241, 260, 265, 268] diff --git a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserBaseListener.cs b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserBaseListener.cs deleted file mode 100644 index 2fe8cc8..0000000 --- a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserBaseListener.cs +++ /dev/null @@ -1,339 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// ANTLR Version: 4.9.2 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// Generated from GoTextTemplateParser.g4 by ANTLR 4.9.2 - -// 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 - - -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.9.2")] -[System.Diagnostics.DebuggerNonUserCode] -[System.CLSCompliant(false)] -public partial class GoTextTemplateParserBaseListener : IGoTextTemplateParserListener { - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTemplate([NotNull] GoTextTemplateParser.TemplateContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTemplate([NotNull] GoTextTemplateParser.TemplateContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterContent([NotNull] GoTextTemplateParser.ContentContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitContent([NotNull] GoTextTemplateParser.ContentContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPart([NotNull] GoTextTemplateParser.PartContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPart([NotNull] GoTextTemplateParser.PartContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPlaceholder([NotNull] GoTextTemplateParser.PlaceholderContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPlaceholder([NotNull] GoTextTemplateParser.PlaceholderContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPipeline([NotNull] GoTextTemplateParser.PipelineContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPipeline([NotNull] GoTextTemplateParser.PipelineContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCommand([NotNull] GoTextTemplateParser.CommandContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCommand([NotNull] GoTextTemplateParser.CommandContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterArgument([NotNull] GoTextTemplateParser.ArgumentContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitArgument([NotNull] GoTextTemplateParser.ArgumentContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPath([NotNull] GoTextTemplateParser.PathContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPath([NotNull] GoTextTemplateParser.PathContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterExpr([NotNull] GoTextTemplateParser.ExprContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitExpr([NotNull] GoTextTemplateParser.ExprContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterValue([NotNull] GoTextTemplateParser.ValueContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitValue([NotNull] GoTextTemplateParser.ValueContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterIfBlock([NotNull] GoTextTemplateParser.IfBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitIfBlock([NotNull] GoTextTemplateParser.IfBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterElseIfBlock([NotNull] GoTextTemplateParser.ElseIfBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitElseIfBlock([NotNull] GoTextTemplateParser.ElseIfBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterElseBlock([NotNull] GoTextTemplateParser.ElseBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitElseBlock([NotNull] GoTextTemplateParser.ElseBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterForBlock([NotNull] GoTextTemplateParser.ForBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitForBlock([NotNull] GoTextTemplateParser.ForBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRangeBlock([NotNull] GoTextTemplateParser.RangeBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRangeBlock([NotNull] GoTextTemplateParser.RangeBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterWithBlock([NotNull] GoTextTemplateParser.WithBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitWithBlock([NotNull] GoTextTemplateParser.WithBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDefineBlock([NotNull] GoTextTemplateParser.DefineBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDefineBlock([NotNull] GoTextTemplateParser.DefineBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTemplateCall([NotNull] GoTextTemplateParser.TemplateCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTemplateCall([NotNull] GoTextTemplateParser.TemplateCallContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterBlockBlock([NotNull] GoTextTemplateParser.BlockBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitBlockBlock([NotNull] GoTextTemplateParser.BlockBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRangeClause([NotNull] GoTextTemplateParser.RangeClauseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRangeClause([NotNull] GoTextTemplateParser.RangeClauseContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVarList([NotNull] GoTextTemplateParser.VarListContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVarList([NotNull] GoTextTemplateParser.VarListContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVarName([NotNull] GoTextTemplateParser.VarNameContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVarName([NotNull] GoTextTemplateParser.VarNameContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOpen([NotNull] GoTextTemplateParser.OpenContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOpen([NotNull] GoTextTemplateParser.OpenContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterClose([NotNull] GoTextTemplateParser.CloseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitClose([NotNull] GoTextTemplateParser.CloseContext 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/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserBaseVisitor.cs b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserBaseVisitor.cs index 3a1a093..c185b6b 100644 --- a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserBaseVisitor.cs +++ b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserBaseVisitor.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -// Generated from GoTextTemplateParser.g4 by ANTLR 4.9.2 +// Generated from src/TextTemplate/GoTextTemplateParser.g4 by ANTLR 4.9.2 // Unreachable code detected #pragma warning disable 0162 diff --git a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserListener.cs b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserListener.cs deleted file mode 100644 index a32a804..0000000 --- a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserListener.cs +++ /dev/null @@ -1,273 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// ANTLR Version: 4.9.2 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// Generated from GoTextTemplateParser.g4 by ANTLR 4.9.2 - -// 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 - -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.9.2")] -[System.CLSCompliant(false)] -public interface IGoTextTemplateParserListener : IParseTreeListener { - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTemplate([NotNull] GoTextTemplateParser.TemplateContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTemplate([NotNull] GoTextTemplateParser.TemplateContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterContent([NotNull] GoTextTemplateParser.ContentContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitContent([NotNull] GoTextTemplateParser.ContentContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPart([NotNull] GoTextTemplateParser.PartContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPart([NotNull] GoTextTemplateParser.PartContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPlaceholder([NotNull] GoTextTemplateParser.PlaceholderContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPlaceholder([NotNull] GoTextTemplateParser.PlaceholderContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPipeline([NotNull] GoTextTemplateParser.PipelineContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPipeline([NotNull] GoTextTemplateParser.PipelineContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCommand([NotNull] GoTextTemplateParser.CommandContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCommand([NotNull] GoTextTemplateParser.CommandContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterArgument([NotNull] GoTextTemplateParser.ArgumentContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitArgument([NotNull] GoTextTemplateParser.ArgumentContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPath([NotNull] GoTextTemplateParser.PathContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPath([NotNull] GoTextTemplateParser.PathContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterExpr([NotNull] GoTextTemplateParser.ExprContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitExpr([NotNull] GoTextTemplateParser.ExprContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterValue([NotNull] GoTextTemplateParser.ValueContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitValue([NotNull] GoTextTemplateParser.ValueContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterIfBlock([NotNull] GoTextTemplateParser.IfBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitIfBlock([NotNull] GoTextTemplateParser.IfBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterElseIfBlock([NotNull] GoTextTemplateParser.ElseIfBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitElseIfBlock([NotNull] GoTextTemplateParser.ElseIfBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterElseBlock([NotNull] GoTextTemplateParser.ElseBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitElseBlock([NotNull] GoTextTemplateParser.ElseBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterForBlock([NotNull] GoTextTemplateParser.ForBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitForBlock([NotNull] GoTextTemplateParser.ForBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRangeBlock([NotNull] GoTextTemplateParser.RangeBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRangeBlock([NotNull] GoTextTemplateParser.RangeBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterWithBlock([NotNull] GoTextTemplateParser.WithBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitWithBlock([NotNull] GoTextTemplateParser.WithBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDefineBlock([NotNull] GoTextTemplateParser.DefineBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDefineBlock([NotNull] GoTextTemplateParser.DefineBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTemplateCall([NotNull] GoTextTemplateParser.TemplateCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTemplateCall([NotNull] GoTextTemplateParser.TemplateCallContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterBlockBlock([NotNull] GoTextTemplateParser.BlockBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitBlockBlock([NotNull] GoTextTemplateParser.BlockBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRangeClause([NotNull] GoTextTemplateParser.RangeClauseContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRangeClause([NotNull] GoTextTemplateParser.RangeClauseContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterVarList([NotNull] GoTextTemplateParser.VarListContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitVarList([NotNull] GoTextTemplateParser.VarListContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterVarName([NotNull] GoTextTemplateParser.VarNameContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitVarName([NotNull] GoTextTemplateParser.VarNameContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterOpen([NotNull] GoTextTemplateParser.OpenContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitOpen([NotNull] GoTextTemplateParser.OpenContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterClose([NotNull] GoTextTemplateParser.CloseContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitClose([NotNull] GoTextTemplateParser.CloseContext context); -} diff --git a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserVisitor.cs b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserVisitor.cs index e932074..dc14d4a 100644 --- a/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserVisitor.cs +++ b/src/TextTemplate/GoTemplateGenerated/GoTextTemplateParserVisitor.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -// Generated from GoTextTemplateParser.g4 by ANTLR 4.9.2 +// Generated from src/TextTemplate/GoTextTemplateParser.g4 by ANTLR 4.9.2 // Unreachable code detected #pragma warning disable 0162 diff --git a/src/TextTemplate/GoTextTemplateParser.g4 b/src/TextTemplate/GoTextTemplateParser.g4 index 7038c9f..1299819 100644 --- a/src/TextTemplate/GoTextTemplateParser.g4 +++ b/src/TextTemplate/GoTextTemplateParser.g4 @@ -16,12 +16,15 @@ part : TEXT placeholder : open pipeline close; pipeline - : command (PIPE command)* + : (varList (ASSIGN | COLONEQ))? command (PIPE command)* ; command : path | IDENT argument* + | NUMBER + | STRING + | BOOLEAN ; argument diff --git a/src/TextTemplate/TemplateEngine.cs b/src/TextTemplate/TemplateEngine.cs index cb6e895..11d2cf0 100644 --- a/src/TextTemplate/TemplateEngine.cs +++ b/src/TextTemplate/TemplateEngine.cs @@ -744,6 +744,26 @@ public override string VisitBlockBlock(GoTextTemplateParser.BlockBlockContext co return ApplyPipelineFunction(name, args.ToArray()); } + if (context.STRING() != null) + { + string s = context.STRING().GetText(); + s = s.Substring(1, s.Length - 2); + s = Regex.Unescape(s); + return s; + } + + if (context.NUMBER() != null) + { + if (int.TryParse(context.NUMBER().GetText(), out int i)) + return i; + return context.NUMBER().GetText(); + } + + if (context.BOOLEAN() != null) + { + return bool.Parse(context.BOOLEAN().GetText()); + } + return input; } diff --git a/tests/TextTemplate.Tests/TemplateEngineTests.cs b/tests/TextTemplate.Tests/TemplateEngineTests.cs index 3fd8f22..eba5a81 100644 --- a/tests/TextTemplate.Tests/TemplateEngineTests.cs +++ b/tests/TextTemplate.Tests/TemplateEngineTests.cs @@ -670,4 +670,23 @@ public void Range_DotAndRootAccess() }); result.ShouldBe("- a root;- b root;"); } + + [Fact] + public void Variable_Assignment_And_Usage() + { + const string tmpl = "{{ $greeting := \"Hi there\" }}{{ $greeting }}"; + var result = TemplateEngine.Process(tmpl, new Dictionary()); + result.ShouldBe("Hi there"); + } + + [Fact] + public void Range_With_DollarVariables() + { + const string tmpl = "{{ range $index, $item := .Items }}{{ $index }}: {{ $item }};{{ end }}"; + var result = TemplateEngine.Process(tmpl, new Dictionary + { + ["Items"] = new[] { "a", "b" } + }); + result.ShouldBe("0: a;1: b;"); + } }