From 651dce813cf3e1f939c5fdc2fd10ebdfa99e88be Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Mon, 29 Feb 2016 22:21:55 +0100 Subject: [PATCH 01/17] first preprocessor (interpreter approach) (#1132) --- .../Preprocessing/BoolLetCoercion.cs | 50 + .../Preprocessing/ByteLetCoercion.cs | 32 + .../Preprocessing/DateLetCoercion.cs | 37 + .../Preprocessing/DecimalLetCoercion.cs | 32 + .../Preprocessing/EmptyLetCoercion.cs | 35 + .../Preprocessing/ILetCoercion.cs | 13 + .../Preprocessing/StringLetCoercion.cs | 56 + .../Preprocessing/SymbolTable.cs | 28 + .../VBAConditionalCompilation.g4 | 181 ++ .../VBAConditionalCompilationBaseListener.cs | 322 +++ .../VBAConditionalCompilationBaseVisitor.cs | 266 ++ .../VBAConditionalCompilationLexer.cs | 468 ++++ .../VBAConditionalCompilationListener.cs | 263 ++ .../VBAConditionalCompilationParser.cs | 2462 +++++++++++++++++ .../VBAConditionalCompilationVisitor.cs | 180 ++ Rubberduck.Parsing/Preprocessing/VBADate.g4 | 56 + .../Preprocessing/VBADateBaseListener.cs | 205 ++ .../Preprocessing/VBADateBaseVisitor.cs | 167 ++ .../Preprocessing/VBADateConstants.cs | 9 + .../Preprocessing/VBADateLexer.cs | 123 + .../Preprocessing/VBADateListener.cs | 164 ++ .../Preprocessing/VBADateParser.cs | 1285 +++++++++ .../Preprocessing/VBADateVisitor.cs | 117 + .../Preprocessing/VBAEmptyValue.cs | 11 + .../Preprocessing/VBAExpressionEvaluator.cs | 1205 ++++++++ Rubberduck.Parsing/Preprocessing/VBALike.g4 | 18 + .../Preprocessing/VBALikeBaseListener.cs | 127 + .../Preprocessing/VBALikeBaseVisitor.cs | 101 + .../Preprocessing/VBALikeLexer.cs | 80 + .../Preprocessing/VBALikeListener.cs | 98 + .../Preprocessing/VBALikeParser.cs | 472 ++++ .../Preprocessing/VBALikeVisitor.cs | 75 + .../VBAPredefinedCompilationConstants.cs | 73 + .../Preprocessing/VBAPreprocessor.cs | 37 + .../Preprocessing/VBAPreprocessorException.cs | 13 + .../Preprocessing/VBAPreprocessorVisitor.cs | 129 + Rubberduck.Parsing/Rubberduck.Parsing.csproj | 36 + Rubberduck.Parsing/VBA/RubberduckParser.cs | 17 +- .../VBAPreprocessorVisitorTests.cs | 1089 ++++++++ RubberduckTests/RubberduckTests.csproj | 1 + 40 files changed, 10130 insertions(+), 3 deletions(-) create mode 100644 Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ILetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/SymbolTable.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 create mode 100644 Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBADate.g4 create mode 100644 Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBADateConstants.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBADateLexer.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBADateListener.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBADateParser.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBALike.g4 create mode 100644 Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBALikeListener.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBALikeParser.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAPreprocessorException.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs create mode 100644 RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs diff --git a/Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs new file mode 100644 index 0000000000..c547e46c60 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs @@ -0,0 +1,50 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class BoolLetCoercion : ILetCoercion + { + public bool ToBool(object value) + { + return (bool)value; + } + + public byte ToByte(object value) + { + if ((bool)value) + { + return 255; + } + return 0; + } + + public DateTime ToDate(object value) + { + return new DecimalLetCoercion().ToDate(ToDecimal(value)); + } + + public decimal ToDecimal(object value) + { + if ((bool)value) + { + return -1; + } + else + { + return 0; + } + } + + public string ToString(object value) + { + if ((bool)value) + { + return "True"; + } + else + { + return "False"; + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs new file mode 100644 index 0000000000..aa1ce885ee --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs @@ -0,0 +1,32 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ByteLetCoercion : ILetCoercion + { + public bool ToBool(object value) + { + return (byte)value != 0; + } + + public byte ToByte(object value) + { + return (byte)value; + } + + public DateTime ToDate(object value) + { + return DateTime.FromOADate(Convert.ToDouble(value)); + } + + public decimal ToDecimal(object value) + { + return Convert.ToDecimal((byte)value); + } + + public string ToString(object value) + { + return value.ToString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs new file mode 100644 index 0000000000..81895bf562 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs @@ -0,0 +1,37 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class DateLetCoercion : ILetCoercion + { + public bool ToBool(object value) + { + return new DecimalLetCoercion().ToBool(ToDecimal(value)); + } + + public byte ToByte(object value) + { + return new DecimalLetCoercion().ToByte(ToDecimal(value)); + } + + public DateTime ToDate(object value) + { + return (DateTime)value; + } + + public decimal ToDecimal(object value) + { + return (decimal)((DateTime)value).ToOADate(); + } + + public string ToString(object value) + { + DateTime date = (DateTime)value; + if (date.Date == VBADateConstants.EPOCH_START.Date) + { + return date.ToLongTimeString(); + } + return date.ToShortDateString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs new file mode 100644 index 0000000000..e1a535d94a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs @@ -0,0 +1,32 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class DecimalLetCoercion : ILetCoercion + { + public bool ToBool(object value) + { + return (decimal)value != 0; + } + + public byte ToByte(object value) + { + return Convert.ToByte(value); + } + + public DateTime ToDate(object value) + { + return DateTime.FromOADate(Convert.ToDouble(value)); + } + + public decimal ToDecimal(object value) + { + return (decimal)value; + } + + public string ToString(object value) + { + return value.ToString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs new file mode 100644 index 0000000000..23eedc8d16 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs @@ -0,0 +1,35 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + /// + /// Defines the neutral element for each type. + /// + public sealed class EmptyLetCoercion : ILetCoercion + { + public bool ToBool(object value) + { + return false; + } + + public byte ToByte(object value) + { + return 0; + } + + public DateTime ToDate(object value) + { + return new DateTime(1899, 12, 30); + } + + public decimal ToDecimal(object value) + { + return 0; + } + + public string ToString(object value) + { + return string.Empty; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ILetCoercion.cs b/Rubberduck.Parsing/Preprocessing/ILetCoercion.cs new file mode 100644 index 0000000000..945a0d8859 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ILetCoercion.cs @@ -0,0 +1,13 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public interface ILetCoercion + { + bool ToBool(object value); + byte ToByte(object value); + decimal ToDecimal(object value); + DateTime ToDate(object value); + string ToString(object value); + } +} diff --git a/Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs new file mode 100644 index 0000000000..11be923d75 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs @@ -0,0 +1,56 @@ +using System; +using System.Globalization; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class StringLetCoercion : ILetCoercion + { + public bool ToBool(object value) + { + if (value == null) + { + return false; + } + var str = (string)value; + if (str.ToLower() == "true" || str == "#TRUE#") + { + return true; + } + else if (str.ToLower() == "false" || str == "#FALSE#") + { + return false; + } + else + { + decimal number = ToDecimal(value); + return new DecimalLetCoercion().ToBool(number); + } + } + + public byte ToByte(object value) + { + return byte.Parse((string)value, NumberStyles.Float); + } + + public DateTime ToDate(object value) + { + DateTime date; + if (DateTime.TryParse((string)value, out date)) + { + return date; + } + decimal number = ToDecimal(value); + return new DecimalLetCoercion().ToDate(number); + } + + public decimal ToDecimal(object value) + { + return decimal.Parse((string)value, NumberStyles.Float); + } + + public string ToString(object value) + { + return (string)value; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/SymbolTable.cs b/Rubberduck.Parsing/Preprocessing/SymbolTable.cs new file mode 100644 index 0000000000..04c392a8f3 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/SymbolTable.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class SymbolTable + { + private readonly Dictionary _table; + + public SymbolTable() + { + _table = new Dictionary(); + } + + public void Add(string name, object value) + { + _table[name] = value; + } + + public object Get(string name) + { + if (_table.ContainsKey(name)) + { + return _table[name]; + } + return null; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 new file mode 100644 index 0000000000..874504ab85 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 @@ -0,0 +1,181 @@ +grammar VBAConditionalCompilation; + +compilationUnit : ccBlock EOF; + +ccBlock : (ccConst | ccIfBlock | logicalLine)*; + +ccConst : WS* HASHCONST WS+ ccVarLhs WS+ EQ WS+ ccExpression ccEol; + +logicalLine : extendedLine+; + +extendedLine : (lineContinuation | ~(HASHCONST | HASHIF | HASHELSEIF | HASHELSE | HASHENDIF))+ NEWLINE?; + +lineContinuation : WS* UNDERSCORE WS* NEWLINE; + +ccVarLhs : name; + +ccExpression : + L_PAREN WS* ccExpression WS* R_PAREN + | ccExpression WS* POW WS* ccExpression + | MINUS WS* ccExpression + | ccExpression WS* (MULT | DIV) WS* ccExpression + | ccExpression WS* INTDIV WS* ccExpression + | ccExpression WS* MOD WS* ccExpression + | ccExpression WS* (PLUS | MINUS) WS* ccExpression + | ccExpression WS* AMPERSAND WS* ccExpression + | ccExpression WS* (EQ | NEQ | LT | GT | LEQ | GEQ | LIKE | IS) WS* ccExpression + | NOT WS* ccExpression + | ccExpression WS* AND WS* ccExpression + | ccExpression WS* OR WS* ccExpression + | ccExpression WS* XOR WS* ccExpression + | ccExpression WS* EQV WS* ccExpression + | ccExpression WS* IMP WS* ccExpression + | intrinsicFunction + | literal + | name; + +ccIfBlock : ccIf ccBlock ccElseIfBlock* ccElseBlock? ccEndIf; + +ccIf : WS* HASHIF WS+ ccExpression WS+ THEN ccEol; + +ccElseIfBlock : ccElseIf ccBlock; + +ccElseIf : WS* HASHELSEIF WS+ ccExpression WS+ THEN ccEol; + +ccElseBlock : ccElse ccBlock; + +ccElse : WS* HASHELSE ccEol; + +ccEndIf : WS* HASHENDIF ccEol; + +ccEol : (SINGLEQUOTE ~NEWLINE*)? NEWLINE?; + +intrinsicFunction : intrinsicFunctionName L_PAREN WS* ccExpression WS* R_PAREN; + +intrinsicFunctionName : (INT | FIX | ABS | SGN | LEN | LENB | CBOOL | CBYTE | CCUR | CDATE | CDBL | CINT | CLNG | CLNGLNG | CLNGPTR | CSNG | CSTR | CVAR); + +name : IDENTIFIER typeSuffix?; + +typeSuffix : AMPERSAND | PERCENT | HASH | EXCLAMATIONMARK | AT | DOLLAR; + +literal : HEXLITERAL | OCTLITERAL | DATELITERAL | DOUBLELITERAL | INTEGERLITERAL | SHORTLITERAL | STRINGLITERAL | TRUE | FALSE | NOTHING | NULL | EMPTY; + +// literals +STRINGLITERAL : '"' (~["\r\n] | '""')* '"'; +OCTLITERAL : '&O' [0-8]+ '&'?; +HEXLITERAL : '&H' [0-9A-F]+ '&'?; +SHORTLITERAL : (PLUS|MINUS)? DIGIT+ ('#' | '&' | '@')?; +INTEGERLITERAL : SHORTLITERAL (E SHORTLITERAL)?; +DOUBLELITERAL : (PLUS|MINUS)? DIGIT* '.' DIGIT+ (E SHORTLITERAL)?; + +DATELITERAL : '#' DATEORTIME '#'; +fragment DATEORTIME : DATEVALUE WS? TIMEVALUE | DATEVALUE | TIMEVALUE; +fragment DATEVALUE : DATEVALUEPART DATESEPARATOR DATEVALUEPART (DATESEPARATOR DATEVALUEPART)?; +fragment DATEVALUEPART : DIGIT+ | MONTHNAME; +fragment DATESEPARATOR : WS? [/,-]? WS?; +fragment MONTHNAME : ENGLISHMONTHNAME | ENGLISHMONTHABBREVIATION; +fragment ENGLISHMONTHNAME : J A N U A R Y | F E B R U A R Y | M A R C H | A P R I L | M A Y | J U N E | A U G U S T | S E P T E M B E R | O C T O B E R | N O V E M B E R | D E C E M B E R; +fragment ENGLISHMONTHABBREVIATION : J A N | F E B | M A R | A P R | J U N | J U L | A U G | S E P | O C T | N O V | D E C; +fragment TIMEVALUE : (DIGIT+ AMPM) | (DIGIT+ TIMESEPARATOR DIGIT+ (TIMESEPARATOR DIGIT+)? AMPM?); +fragment TIMESEPARATOR : WS? (':' | '.') WS?; +fragment AMPM : WS? (A M | P M | A | P); + +NOT : N O T; +TRUE : T R U E; +FALSE : F A L S E; +NOTHING : N O T H I N G; +NULL : N U L L; +EMPTY : E M P T Y; +HASHCONST : WS* HASH CONST; +HASHIF : WS* HASH I F; +THEN : T H E N; +HASHELSEIF : WS* HASH E L S E I F; +HASHELSE : WS* HASH E L S E; +HASHENDIF : WS* HASH E N D WS* I F; +INT : I N T; +FIX : F I X; +ABS : A B S; +SGN : S G N; +LEN : L E N; +LENB : L E N B; +CBOOL : C B O O L; +CBYTE : C B Y T E; +CCUR : C C U R; +CDATE : C D A T E; +CDBL : C D B L; +CINT : C I N T; +CLNG : C L N G; +CLNGLNG : C L N G L N G; +CLNGPTR : C L N G P T R; +CSNG : C S N G; +CSTR : C S T R; +CVAR : C V A R; +IS : I S; +LIKE : L I K E; +MOD : M O D; +AND : A N D; +OR : O R; +XOR : X O R; +EQV : E Q V; +IMP : I M P; +CONST : C O N S T; +HASH : '#'; +AMPERSAND : '&'; +PERCENT : '%'; +EXCLAMATIONMARK : '!'; +AT : '@'; +DOLLAR : '$'; +L_PAREN : '('; +R_PAREN : ')'; +L_SQUARE_BRACKET : '['; +R_SQUARE_BRACKET : ']'; +UNDERSCORE : '_'; +EQ : '='; +DIV : '/'; +INTDIV : '\\'; +GEQ : '>='; +GT : '>'; +LEQ : '<='; +LT : '<'; +MINUS : '-'; +MULT : '*'; +NEQ : '<>'; +PLUS : '+'; +POW : '^'; +SINGLEQUOTE : '\''; +DOT : '.'; +COMMA : ','; + +NEWLINE : '\r' '\n' | [\r\n\u2028\u2029]; +WS : [ \t]; +IDENTIFIER : ~[\[\]\(\)\r\n\t.,'"|!@#$%^&*-+:=; 0-9-/\\] ~[\[\]\(\)\r\n\t.,'"|!@#$%^&*-+:=; ]* | L_SQUARE_BRACKET (~[!\]\r\n])+ R_SQUARE_BRACKET; +fragment DIGIT : [0-9]; + +ANYCHAR : .; + +fragment A:('a'|'A'); +fragment B:('b'|'B'); +fragment C:('c'|'C'); +fragment D:('d'|'D'); +fragment E:('e'|'E'); +fragment F:('f'|'F'); +fragment G:('g'|'G'); +fragment H:('h'|'H'); +fragment I:('i'|'I'); +fragment J:('j'|'J'); +fragment K:('k'|'K'); +fragment L:('l'|'L'); +fragment M:('m'|'M'); +fragment N:('n'|'N'); +fragment O:('o'|'O'); +fragment P:('p'|'P'); +fragment Q:('q'|'Q'); +fragment R:('r'|'R'); +fragment S:('s'|'S'); +fragment T:('t'|'T'); +fragment U:('u'|'U'); +fragment V:('v'|'V'); +fragment W:('w'|'W'); +fragment X:('x'|'X'); +fragment Y:('y'|'Y'); +fragment Z:('z'|'Z'); \ No newline at end of file diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs new file mode 100644 index 0000000000..648a52d474 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs @@ -0,0 +1,322 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBAConditionalCompilation.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Preprocessing { + +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.3")] +[System.CLSCompliant(false)] +public partial class VBAConditionalCompilationBaseListener : IVBAConditionalCompilationListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterName([NotNull] VBAConditionalCompilationParser.NameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitName([NotNull] VBAConditionalCompilationParser.NameContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext 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) { } +} +} // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs new file mode 100644 index 0000000000..276eca677a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs @@ -0,0 +1,266 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBAConditionalCompilation.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Preprocessing { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// +/// This class provides an empty implementation of , +/// which can be extended to create a visitor which only needs to handle a subset +/// of the available methods. +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBAConditionalCompilationBaseVisitor : AbstractParseTreeVisitor, IVBAConditionalCompilationVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitName([NotNull] VBAConditionalCompilationParser.NameContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { return VisitChildren(context); } +} +} // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs new file mode 100644 index 0000000000..06cb69545a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs @@ -0,0 +1,468 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBAConditionalCompilation.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Preprocessing { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBAConditionalCompilationLexer : Lexer { + public const int + STRINGLITERAL=1, OCTLITERAL=2, HEXLITERAL=3, SHORTLITERAL=4, INTEGERLITERAL=5, + DOUBLELITERAL=6, DATELITERAL=7, NOT=8, TRUE=9, FALSE=10, NOTHING=11, NULL=12, + EMPTY=13, HASHCONST=14, HASHIF=15, THEN=16, HASHELSEIF=17, HASHELSE=18, + HASHENDIF=19, INT=20, FIX=21, ABS=22, SGN=23, LEN=24, LENB=25, CBOOL=26, + CBYTE=27, CCUR=28, CDATE=29, CDBL=30, CINT=31, CLNG=32, CLNGLNG=33, CLNGPTR=34, + CSNG=35, CSTR=36, CVAR=37, IS=38, LIKE=39, MOD=40, AND=41, OR=42, XOR=43, + EQV=44, IMP=45, CONST=46, HASH=47, AMPERSAND=48, PERCENT=49, EXCLAMATIONMARK=50, + AT=51, DOLLAR=52, L_PAREN=53, R_PAREN=54, L_SQUARE_BRACKET=55, R_SQUARE_BRACKET=56, + UNDERSCORE=57, EQ=58, DIV=59, INTDIV=60, GEQ=61, GT=62, LEQ=63, LT=64, + MINUS=65, MULT=66, NEQ=67, PLUS=68, POW=69, SINGLEQUOTE=70, DOT=71, COMMA=72, + NEWLINE=73, WS=74, IDENTIFIER=75, ANYCHAR=76; + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] tokenNames = { + "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", + "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'", + "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'", + "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'", + "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'", + "'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''", + "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'", + "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "':'", "';'", + "'<'", "'='", "'>'", "'?'", "'@'", "'A'", "'B'", "'C'", "'D'", "'E'", + "'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'" + }; + public static readonly string[] ruleNames = { + "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", + "DOUBLELITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", "DATEVALUEPART", + "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", + "TIMEVALUE", "TIMESEPARATOR", "AMPM", "NOT", "TRUE", "FALSE", "NOTHING", + "NULL", "EMPTY", "HASHCONST", "HASHIF", "THEN", "HASHELSEIF", "HASHELSE", + "HASHENDIF", "INT", "FIX", "ABS", "SGN", "LEN", "LENB", "CBOOL", "CBYTE", + "CCUR", "CDATE", "CDBL", "CINT", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", + "CSTR", "CVAR", "IS", "LIKE", "MOD", "AND", "OR", "XOR", "EQV", "IMP", + "CONST", "HASH", "AMPERSAND", "PERCENT", "EXCLAMATIONMARK", "AT", "DOLLAR", + "L_PAREN", "R_PAREN", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "UNDERSCORE", + "EQ", "DIV", "INTDIV", "GEQ", "GT", "LEQ", "LT", "MINUS", "MULT", "NEQ", + "PLUS", "POW", "SINGLEQUOTE", "DOT", "COMMA", "NEWLINE", "WS", "IDENTIFIER", + "DIGIT", "ANYCHAR", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", + "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", + "Y", "Z" + }; + + + public VBAConditionalCompilationLexer(ICharStream input) + : base(input) + { + _interp = new LexerATNSimulator(this,_ATN); + } + + public override string GrammarFileName { get { return "VBAConditionalCompilation.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2N\x37D\b\x1\x4\x2"+ + "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ + "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ + "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ + "\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A\x4\x1B"+ + "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!"+ + "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t)\x4*\t"+ + "*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31\x4\x32"+ + "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37\t\x37"+ + "\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x4>\t>\x4?\t?\x4"+ + "@\t@\x4\x41\t\x41\x4\x42\t\x42\x4\x43\t\x43\x4\x44\t\x44\x4\x45\t\x45"+ + "\x4\x46\t\x46\x4G\tG\x4H\tH\x4I\tI\x4J\tJ\x4K\tK\x4L\tL\x4M\tM\x4N\tN"+ + "\x4O\tO\x4P\tP\x4Q\tQ\x4R\tR\x4S\tS\x4T\tT\x4U\tU\x4V\tV\x4W\tW\x4X\t"+ + "X\x4Y\tY\x4Z\tZ\x4[\t[\x4\\\t\\\x4]\t]\x4^\t^\x4_\t_\x4`\t`\x4\x61\t\x61"+ + "\x4\x62\t\x62\x4\x63\t\x63\x4\x64\t\x64\x4\x65\t\x65\x4\x66\t\x66\x4g"+ + "\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\tp\x4"+ + "q\tq\x4r\tr\x3\x2\x3\x2\x3\x2\x3\x2\a\x2\xEA\n\x2\f\x2\xE\x2\xED\v\x2"+ + "\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\x3\x3\x6\x3\xF5\n\x3\r\x3\xE\x3\xF6\x3"+ + "\x3\x5\x3\xFA\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x6\x4\x100\n\x4\r\x4\xE\x4"+ + "\x101\x3\x4\x5\x4\x105\n\x4\x3\x5\x3\x5\x5\x5\x109\n\x5\x3\x5\x6\x5\x10C"+ + "\n\x5\r\x5\xE\x5\x10D\x3\x5\x5\x5\x111\n\x5\x3\x6\x3\x6\x3\x6\x3\x6\x5"+ + "\x6\x117\n\x6\x3\a\x3\a\x5\a\x11B\n\a\x3\a\a\a\x11E\n\a\f\a\xE\a\x121"+ + "\v\a\x3\a\x3\a\x6\a\x125\n\a\r\a\xE\a\x126\x3\a\x3\a\x3\a\x5\a\x12C\n"+ + "\a\x3\b\x3\b\x3\b\x3\b\x3\t\x3\t\x5\t\x134\n\t\x3\t\x3\t\x3\t\x3\t\x5"+ + "\t\x13A\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x142\n\n\x3\v\x6\v\x145"+ + "\n\v\r\v\xE\v\x146\x3\v\x5\v\x14A\n\v\x3\f\x5\f\x14D\n\f\x3\f\x5\f\x150"+ + "\n\f\x3\f\x5\f\x153\n\f\x3\r\x3\r\x5\r\x157\n\r\x3\xE\x3\xE\x3\xE\x3\xE"+ + "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3"+ + "\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE"+ + "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3"+ + "\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE"+ + "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3"+ + "\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE"+ + "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\x1AA\n\xE\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x1D8\n\xF\x3"+ + "\x10\x6\x10\x1DB\n\x10\r\x10\xE\x10\x1DC\x3\x10\x3\x10\x3\x10\x6\x10\x1E2"+ + "\n\x10\r\x10\xE\x10\x1E3\x3\x10\x3\x10\x6\x10\x1E8\n\x10\r\x10\xE\x10"+ + "\x1E9\x3\x10\x3\x10\x6\x10\x1EE\n\x10\r\x10\xE\x10\x1EF\x5\x10\x1F2\n"+ + "\x10\x3\x10\x5\x10\x1F5\n\x10\x5\x10\x1F7\n\x10\x3\x11\x5\x11\x1FA\n\x11"+ + "\x3\x11\x3\x11\x5\x11\x1FE\n\x11\x3\x12\x5\x12\x201\n\x12\x3\x12\x3\x12"+ + "\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x5\x12\x20B\n\x12\x3\x13\x3"+ + "\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3"+ + "\x16\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3"+ + "\x18\x3\x18\x3\x18\x3\x19\a\x19\x230\n\x19\f\x19\xE\x19\x233\v\x19\x3"+ + "\x19\x3\x19\x3\x19\x3\x1A\a\x1A\x239\n\x1A\f\x1A\xE\x1A\x23C\v\x1A\x3"+ + "\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\a"+ + "\x1C\x248\n\x1C\f\x1C\xE\x1C\x24B\v\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3"+ + "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\a\x1D\x256\n\x1D\f\x1D\xE\x1D\x259\v"+ + "\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1E\a\x1E\x262\n\x1E"+ + "\f\x1E\xE\x1E\x265\v\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\a\x1E\x26C"+ + "\n\x1E\f\x1E\xE\x1E\x26F\v\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F"+ + "\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"\x3#\x3#\x3"+ + "#\x3#\x3$\x3$\x3$\x3$\x3$\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&"+ + "\x3&\x3\'\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)"+ + "\x3)\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3,\x3,\x3,\x3,\x3,\x3,\x3"+ + ",\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3/\x3/\x3/"+ + "\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3\x31\x3\x31\x3\x32"+ + "\x3\x32\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3\x34\x3\x34"+ + "\x3\x34\x3\x34\x3\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x37"+ + "\x3\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39"+ + "\x3\x39\x3\x39\x3\x39\x3:\x3:\x3;\x3;\x3<\x3<\x3=\x3=\x3>\x3>\x3?\x3?"+ + "\x3@\x3@\x3\x41\x3\x41\x3\x42\x3\x42\x3\x43\x3\x43\x3\x44\x3\x44\x3\x45"+ + "\x3\x45\x3\x46\x3\x46\x3G\x3G\x3H\x3H\x3H\x3I\x3I\x3J\x3J\x3J\x3K\x3K"+ + "\x3L\x3L\x3M\x3M\x3N\x3N\x3N\x3O\x3O\x3P\x3P\x3Q\x3Q\x3R\x3R\x3S\x3S\x3"+ + "T\x3T\x3T\x5T\x331\nT\x3U\x3U\x3V\x3V\aV\x337\nV\fV\xEV\x33A\vV\x3V\x3"+ + "V\x6V\x33E\nV\rV\xEV\x33F\x3V\x3V\x5V\x344\nV\x3W\x3W\x3X\x3X\x3Y\x3Y"+ + "\x3Z\x3Z\x3[\x3[\x3\\\x3\\\x3]\x3]\x3^\x3^\x3_\x3_\x3`\x3`\x3\x61\x3\x61"+ + "\x3\x62\x3\x62\x3\x63\x3\x63\x3\x64\x3\x64\x3\x65\x3\x65\x3\x66\x3\x66"+ + "\x3g\x3g\x3h\x3h\x3i\x3i\x3j\x3j\x3k\x3k\x3l\x3l\x3m\x3m\x3n\x3n\x3o\x3"+ + "o\x3p\x3p\x3q\x3q\x3r\x3r\x2\x2\x2s\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6"+ + "\v\x2\a\r\x2\b\xF\x2\t\x11\x2\x2\x13\x2\x2\x15\x2\x2\x17\x2\x2\x19\x2"+ + "\x2\x1B\x2\x2\x1D\x2\x2\x1F\x2\x2!\x2\x2#\x2\x2%\x2\n\'\x2\v)\x2\f+\x2"+ + "\r-\x2\xE/\x2\xF\x31\x2\x10\x33\x2\x11\x35\x2\x12\x37\x2\x13\x39\x2\x14"+ + ";\x2\x15=\x2\x16?\x2\x17\x41\x2\x18\x43\x2\x19\x45\x2\x1AG\x2\x1BI\x2"+ + "\x1CK\x2\x1DM\x2\x1EO\x2\x1FQ\x2 S\x2!U\x2\"W\x2#Y\x2$[\x2%]\x2&_\x2\'"+ + "\x61\x2(\x63\x2)\x65\x2*g\x2+i\x2,k\x2-m\x2.o\x2/q\x2\x30s\x2\x31u\x2"+ + "\x32w\x2\x33y\x2\x34{\x2\x35}\x2\x36\x7F\x2\x37\x81\x2\x38\x83\x2\x39"+ + "\x85\x2:\x87\x2;\x89\x2<\x8B\x2=\x8D\x2>\x8F\x2?\x91\x2@\x93\x2\x41\x95"+ + "\x2\x42\x97\x2\x43\x99\x2\x44\x9B\x2\x45\x9D\x2\x46\x9F\x2G\xA1\x2H\xA3"+ + "\x2I\xA5\x2J\xA7\x2K\xA9\x2L\xAB\x2M\xAD\x2\x2\xAF\x2N\xB1\x2\x2\xB3\x2"+ + "\x2\xB5\x2\x2\xB7\x2\x2\xB9\x2\x2\xBB\x2\x2\xBD\x2\x2\xBF\x2\x2\xC1\x2"+ + "\x2\xC3\x2\x2\xC5\x2\x2\xC7\x2\x2\xC9\x2\x2\xCB\x2\x2\xCD\x2\x2\xCF\x2"+ + "\x2\xD1\x2\x2\xD3\x2\x2\xD5\x2\x2\xD7\x2\x2\xD9\x2\x2\xDB\x2\x2\xDD\x2"+ + "\x2\xDF\x2\x2\xE1\x2\x2\xE3\x2\x2\x3\x2(\x5\x2\f\f\xF\xF$$\x3\x2\x32:"+ + "\x4\x2\x32;\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x5"+ + "\x2\f\f\xF\xF\x202A\x202B\x4\x2\v\v\"\"\t\x2\v\f\xF\xF\"=??\x42\x42]`"+ + "~~\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\x3\x2"+ + "\x32;\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65"+ + "\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2K"+ + "Kkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2"+ + "RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2"+ + "YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x39C\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2"+ + "\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2"+ + "\x2\x2\xF\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2"+ + "\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2"+ + "\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2"+ + "\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2"+ + "\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2"+ + "\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3"+ + "\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2"+ + "\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2"+ + "\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2"+ + "\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3"+ + "\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2"+ + "\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3"+ + "\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2"+ + "\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2"+ + "\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3"+ + "\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2"+ + "\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2"+ + "\x2\x2\xAB\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x3\xE5\x3\x2\x2\x2\x5\xF0\x3"+ + "\x2\x2\x2\a\xFB\x3\x2\x2\x2\t\x108\x3\x2\x2\x2\v\x112\x3\x2\x2\x2\r\x11A"+ + "\x3\x2\x2\x2\xF\x12D\x3\x2\x2\x2\x11\x139\x3\x2\x2\x2\x13\x13B\x3\x2\x2"+ + "\x2\x15\x149\x3\x2\x2\x2\x17\x14C\x3\x2\x2\x2\x19\x156\x3\x2\x2\x2\x1B"+ + "\x1A9\x3\x2\x2\x2\x1D\x1D7\x3\x2\x2\x2\x1F\x1F6\x3\x2\x2\x2!\x1F9\x3\x2"+ + "\x2\x2#\x200\x3\x2\x2\x2%\x20C\x3\x2\x2\x2\'\x210\x3\x2\x2\x2)\x215\x3"+ + "\x2\x2\x2+\x21B\x3\x2\x2\x2-\x223\x3\x2\x2\x2/\x228\x3\x2\x2\x2\x31\x231"+ + "\x3\x2\x2\x2\x33\x23A\x3\x2\x2\x2\x35\x241\x3\x2\x2\x2\x37\x249\x3\x2"+ + "\x2\x2\x39\x257\x3\x2\x2\x2;\x263\x3\x2\x2\x2=\x273\x3\x2\x2\x2?\x277"+ + "\x3\x2\x2\x2\x41\x27B\x3\x2\x2\x2\x43\x27F\x3\x2\x2\x2\x45\x283\x3\x2"+ + "\x2\x2G\x287\x3\x2\x2\x2I\x28C\x3\x2\x2\x2K\x292\x3\x2\x2\x2M\x298\x3"+ + "\x2\x2\x2O\x29D\x3\x2\x2\x2Q\x2A3\x3\x2\x2\x2S\x2A8\x3\x2\x2\x2U\x2AD"+ + "\x3\x2\x2\x2W\x2B2\x3\x2\x2\x2Y\x2BA\x3\x2\x2\x2[\x2C2\x3\x2\x2\x2]\x2C7"+ + "\x3\x2\x2\x2_\x2CC\x3\x2\x2\x2\x61\x2D1\x3\x2\x2\x2\x63\x2D4\x3\x2\x2"+ + "\x2\x65\x2D9\x3\x2\x2\x2g\x2DD\x3\x2\x2\x2i\x2E1\x3\x2\x2\x2k\x2E4\x3"+ + "\x2\x2\x2m\x2E8\x3\x2\x2\x2o\x2EC\x3\x2\x2\x2q\x2F0\x3\x2\x2\x2s\x2F6"+ + "\x3\x2\x2\x2u\x2F8\x3\x2\x2\x2w\x2FA\x3\x2\x2\x2y\x2FC\x3\x2\x2\x2{\x2FE"+ + "\x3\x2\x2\x2}\x300\x3\x2\x2\x2\x7F\x302\x3\x2\x2\x2\x81\x304\x3\x2\x2"+ + "\x2\x83\x306\x3\x2\x2\x2\x85\x308\x3\x2\x2\x2\x87\x30A\x3\x2\x2\x2\x89"+ + "\x30C\x3\x2\x2\x2\x8B\x30E\x3\x2\x2\x2\x8D\x310\x3\x2\x2\x2\x8F\x312\x3"+ + "\x2\x2\x2\x91\x315\x3\x2\x2\x2\x93\x317\x3\x2\x2\x2\x95\x31A\x3\x2\x2"+ + "\x2\x97\x31C\x3\x2\x2\x2\x99\x31E\x3\x2\x2\x2\x9B\x320\x3\x2\x2\x2\x9D"+ + "\x323\x3\x2\x2\x2\x9F\x325\x3\x2\x2\x2\xA1\x327\x3\x2\x2\x2\xA3\x329\x3"+ + "\x2\x2\x2\xA5\x32B\x3\x2\x2\x2\xA7\x330\x3\x2\x2\x2\xA9\x332\x3\x2\x2"+ + "\x2\xAB\x343\x3\x2\x2\x2\xAD\x345\x3\x2\x2\x2\xAF\x347\x3\x2\x2\x2\xB1"+ + "\x349\x3\x2\x2\x2\xB3\x34B\x3\x2\x2\x2\xB5\x34D\x3\x2\x2\x2\xB7\x34F\x3"+ + "\x2\x2\x2\xB9\x351\x3\x2\x2\x2\xBB\x353\x3\x2\x2\x2\xBD\x355\x3\x2\x2"+ + "\x2\xBF\x357\x3\x2\x2\x2\xC1\x359\x3\x2\x2\x2\xC3\x35B\x3\x2\x2\x2\xC5"+ + "\x35D\x3\x2\x2\x2\xC7\x35F\x3\x2\x2\x2\xC9\x361\x3\x2\x2\x2\xCB\x363\x3"+ + "\x2\x2\x2\xCD\x365\x3\x2\x2\x2\xCF\x367\x3\x2\x2\x2\xD1\x369\x3\x2\x2"+ + "\x2\xD3\x36B\x3\x2\x2\x2\xD5\x36D\x3\x2\x2\x2\xD7\x36F\x3\x2\x2\x2\xD9"+ + "\x371\x3\x2\x2\x2\xDB\x373\x3\x2\x2\x2\xDD\x375\x3\x2\x2\x2\xDF\x377\x3"+ + "\x2\x2\x2\xE1\x379\x3\x2\x2\x2\xE3\x37B\x3\x2\x2\x2\xE5\xEB\a$\x2\x2\xE6"+ + "\xEA\n\x2\x2\x2\xE7\xE8\a$\x2\x2\xE8\xEA\a$\x2\x2\xE9\xE6\x3\x2\x2\x2"+ + "\xE9\xE7\x3\x2\x2\x2\xEA\xED\x3\x2\x2\x2\xEB\xE9\x3\x2\x2\x2\xEB\xEC\x3"+ + "\x2\x2\x2\xEC\xEE\x3\x2\x2\x2\xED\xEB\x3\x2\x2\x2\xEE\xEF\a$\x2\x2\xEF"+ + "\x4\x3\x2\x2\x2\xF0\xF1\a(\x2\x2\xF1\xF2\aQ\x2\x2\xF2\xF4\x3\x2\x2\x2"+ + "\xF3\xF5\t\x3\x2\x2\xF4\xF3\x3\x2\x2\x2\xF5\xF6\x3\x2\x2\x2\xF6\xF4\x3"+ + "\x2\x2\x2\xF6\xF7\x3\x2\x2\x2\xF7\xF9\x3\x2\x2\x2\xF8\xFA\a(\x2\x2\xF9"+ + "\xF8\x3\x2\x2\x2\xF9\xFA\x3\x2\x2\x2\xFA\x6\x3\x2\x2\x2\xFB\xFC\a(\x2"+ + "\x2\xFC\xFD\aJ\x2\x2\xFD\xFF\x3\x2\x2\x2\xFE\x100\t\x4\x2\x2\xFF\xFE\x3"+ + "\x2\x2\x2\x100\x101\x3\x2\x2\x2\x101\xFF\x3\x2\x2\x2\x101\x102\x3\x2\x2"+ + "\x2\x102\x104\x3\x2\x2\x2\x103\x105\a(\x2\x2\x104\x103\x3\x2\x2\x2\x104"+ + "\x105\x3\x2\x2\x2\x105\b\x3\x2\x2\x2\x106\x109\x5\x9DO\x2\x107\x109\x5"+ + "\x97L\x2\x108\x106\x3\x2\x2\x2\x108\x107\x3\x2\x2\x2\x108\x109\x3\x2\x2"+ + "\x2\x109\x10B\x3\x2\x2\x2\x10A\x10C\x5\xADW\x2\x10B\x10A\x3\x2\x2\x2\x10C"+ + "\x10D\x3\x2\x2\x2\x10D\x10B\x3\x2\x2\x2\x10D\x10E\x3\x2\x2\x2\x10E\x110"+ + "\x3\x2\x2\x2\x10F\x111\t\x5\x2\x2\x110\x10F\x3\x2\x2\x2\x110\x111\x3\x2"+ + "\x2\x2\x111\n\x3\x2\x2\x2\x112\x116\x5\t\x5\x2\x113\x114\x5\xB9]\x2\x114"+ + "\x115\x5\t\x5\x2\x115\x117\x3\x2\x2\x2\x116\x113\x3\x2\x2\x2\x116\x117"+ + "\x3\x2\x2\x2\x117\f\x3\x2\x2\x2\x118\x11B\x5\x9DO\x2\x119\x11B\x5\x97"+ + "L\x2\x11A\x118\x3\x2\x2\x2\x11A\x119\x3\x2\x2\x2\x11A\x11B\x3\x2\x2\x2"+ + "\x11B\x11F\x3\x2\x2\x2\x11C\x11E\x5\xADW\x2\x11D\x11C\x3\x2\x2\x2\x11E"+ + "\x121\x3\x2\x2\x2\x11F\x11D\x3\x2\x2\x2\x11F\x120\x3\x2\x2\x2\x120\x122"+ + "\x3\x2\x2\x2\x121\x11F\x3\x2\x2\x2\x122\x124\a\x30\x2\x2\x123\x125\x5"+ + "\xADW\x2\x124\x123\x3\x2\x2\x2\x125\x126\x3\x2\x2\x2\x126\x124\x3\x2\x2"+ + "\x2\x126\x127\x3\x2\x2\x2\x127\x12B\x3\x2\x2\x2\x128\x129\x5\xB9]\x2\x129"+ + "\x12A\x5\t\x5\x2\x12A\x12C\x3\x2\x2\x2\x12B\x128\x3\x2\x2\x2\x12B\x12C"+ + "\x3\x2\x2\x2\x12C\xE\x3\x2\x2\x2\x12D\x12E\a%\x2\x2\x12E\x12F\x5\x11\t"+ + "\x2\x12F\x130\a%\x2\x2\x130\x10\x3\x2\x2\x2\x131\x133\x5\x13\n\x2\x132"+ + "\x134\x5\xA9U\x2\x133\x132\x3\x2\x2\x2\x133\x134\x3\x2\x2\x2\x134\x135"+ + "\x3\x2\x2\x2\x135\x136\x5\x1F\x10\x2\x136\x13A\x3\x2\x2\x2\x137\x13A\x5"+ + "\x13\n\x2\x138\x13A\x5\x1F\x10\x2\x139\x131\x3\x2\x2\x2\x139\x137\x3\x2"+ + "\x2\x2\x139\x138\x3\x2\x2\x2\x13A\x12\x3\x2\x2\x2\x13B\x13C\x5\x15\v\x2"+ + "\x13C\x13D\x5\x17\f\x2\x13D\x141\x5\x15\v\x2\x13E\x13F\x5\x17\f\x2\x13F"+ + "\x140\x5\x15\v\x2\x140\x142\x3\x2\x2\x2\x141\x13E\x3\x2\x2\x2\x141\x142"+ + "\x3\x2\x2\x2\x142\x14\x3\x2\x2\x2\x143\x145\x5\xADW\x2\x144\x143\x3\x2"+ + "\x2\x2\x145\x146\x3\x2\x2\x2\x146\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2"+ + "\x2\x147\x14A\x3\x2\x2\x2\x148\x14A\x5\x19\r\x2\x149\x144\x3\x2\x2\x2"+ + "\x149\x148\x3\x2\x2\x2\x14A\x16\x3\x2\x2\x2\x14B\x14D\x5\xA9U\x2\x14C"+ + "\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14F\x3\x2\x2\x2\x14E\x150"+ + "\t\x6\x2\x2\x14F\x14E\x3\x2\x2\x2\x14F\x150\x3\x2\x2\x2\x150\x152\x3\x2"+ + "\x2\x2\x151\x153\x5\xA9U\x2\x152\x151\x3\x2\x2\x2\x152\x153\x3\x2\x2\x2"+ + "\x153\x18\x3\x2\x2\x2\x154\x157\x5\x1B\xE\x2\x155\x157\x5\x1D\xF\x2\x156"+ + "\x154\x3\x2\x2\x2\x156\x155\x3\x2\x2\x2\x157\x1A\x3\x2\x2\x2\x158\x159"+ + "\x5\xC3\x62\x2\x159\x15A\x5\xB1Y\x2\x15A\x15B\x5\xCB\x66\x2\x15B\x15C"+ + "\x5\xD9m\x2\x15C\x15D\x5\xB1Y\x2\x15D\x15E\x5\xD3j\x2\x15E\x15F\x5\xE1"+ + "q\x2\x15F\x1AA\x3\x2\x2\x2\x160\x161\x5\xBB^\x2\x161\x162\x5\xB9]\x2\x162"+ + "\x163\x5\xB3Z\x2\x163\x164\x5\xD3j\x2\x164\x165\x5\xD9m\x2\x165\x166\x5"+ + "\xB1Y\x2\x166\x167\x5\xD3j\x2\x167\x168\x5\xE1q\x2\x168\x1AA\x3\x2\x2"+ + "\x2\x169\x16A\x5\xC9\x65\x2\x16A\x16B\x5\xB1Y\x2\x16B\x16C\x5\xD3j\x2"+ + "\x16C\x16D\x5\xB5[\x2\x16D\x16E\x5\xBF`\x2\x16E\x1AA\x3\x2\x2\x2\x16F"+ + "\x170\x5\xB1Y\x2\x170\x171\x5\xCFh\x2\x171\x172\x5\xD3j\x2\x172\x173\x5"+ + "\xC1\x61\x2\x173\x174\x5\xC7\x64\x2\x174\x1AA\x3\x2\x2\x2\x175\x176\x5"+ + "\xC9\x65\x2\x176\x177\x5\xB1Y\x2\x177\x178\x5\xE1q\x2\x178\x1AA\x3\x2"+ + "\x2\x2\x179\x17A\x5\xC3\x62\x2\x17A\x17B\x5\xD9m\x2\x17B\x17C\x5\xCB\x66"+ + "\x2\x17C\x17D\x5\xB9]\x2\x17D\x1AA\x3\x2\x2\x2\x17E\x17F\x5\xB1Y\x2\x17F"+ + "\x180\x5\xD9m\x2\x180\x181\x5\xBD_\x2\x181\x182\x5\xD9m\x2\x182\x183\x5"+ + "\xD5k\x2\x183\x184\x5\xD7l\x2\x184\x1AA\x3\x2\x2\x2\x185\x186\x5\xD5k"+ + "\x2\x186\x187\x5\xB9]\x2\x187\x188\x5\xCFh\x2\x188\x189\x5\xD7l\x2\x189"+ + "\x18A\x5\xB9]\x2\x18A\x18B\x5\xC9\x65\x2\x18B\x18C\x5\xB3Z\x2\x18C\x18D"+ + "\x5\xB9]\x2\x18D\x18E\x5\xD3j\x2\x18E\x1AA\x3\x2\x2\x2\x18F\x190\x5\xCD"+ + "g\x2\x190\x191\x5\xB5[\x2\x191\x192\x5\xD7l\x2\x192\x193\x5\xCDg\x2\x193"+ + "\x194\x5\xB3Z\x2\x194\x195\x5\xB9]\x2\x195\x196\x5\xD3j\x2\x196\x1AA\x3"+ + "\x2\x2\x2\x197\x198\x5\xCB\x66\x2\x198\x199\x5\xCDg\x2\x199\x19A\x5\xDB"+ + "n\x2\x19A\x19B\x5\xB9]\x2\x19B\x19C\x5\xC9\x65\x2\x19C\x19D\x5\xB3Z\x2"+ + "\x19D\x19E\x5\xB9]\x2\x19E\x19F\x5\xD3j\x2\x19F\x1AA\x3\x2\x2\x2\x1A0"+ + "\x1A1\x5\xB7\\\x2\x1A1\x1A2\x5\xB9]\x2\x1A2\x1A3\x5\xB5[\x2\x1A3\x1A4"+ + "\x5\xB9]\x2\x1A4\x1A5\x5\xC9\x65\x2\x1A5\x1A6\x5\xB3Z\x2\x1A6\x1A7\x5"+ + "\xB9]\x2\x1A7\x1A8\x5\xD3j\x2\x1A8\x1AA\x3\x2\x2\x2\x1A9\x158\x3\x2\x2"+ + "\x2\x1A9\x160\x3\x2\x2\x2\x1A9\x169\x3\x2\x2\x2\x1A9\x16F\x3\x2\x2\x2"+ + "\x1A9\x175\x3\x2\x2\x2\x1A9\x179\x3\x2\x2\x2\x1A9\x17E\x3\x2\x2\x2\x1A9"+ + "\x185\x3\x2\x2\x2\x1A9\x18F\x3\x2\x2\x2\x1A9\x197\x3\x2\x2\x2\x1A9\x1A0"+ + "\x3\x2\x2\x2\x1AA\x1C\x3\x2\x2\x2\x1AB\x1AC\x5\xC3\x62\x2\x1AC\x1AD\x5"+ + "\xB1Y\x2\x1AD\x1AE\x5\xCB\x66\x2\x1AE\x1D8\x3\x2\x2\x2\x1AF\x1B0\x5\xBB"+ + "^\x2\x1B0\x1B1\x5\xB9]\x2\x1B1\x1B2\x5\xB3Z\x2\x1B2\x1D8\x3\x2\x2\x2\x1B3"+ + "\x1B4\x5\xC9\x65\x2\x1B4\x1B5\x5\xB1Y\x2\x1B5\x1B6\x5\xD3j\x2\x1B6\x1D8"+ + "\x3\x2\x2\x2\x1B7\x1B8\x5\xB1Y\x2\x1B8\x1B9\x5\xCFh\x2\x1B9\x1BA\x5\xD3"+ + "j\x2\x1BA\x1D8\x3\x2\x2\x2\x1BB\x1BC\x5\xC3\x62\x2\x1BC\x1BD\x5\xD9m\x2"+ + "\x1BD\x1BE\x5\xCB\x66\x2\x1BE\x1D8\x3\x2\x2\x2\x1BF\x1C0\x5\xC3\x62\x2"+ + "\x1C0\x1C1\x5\xD9m\x2\x1C1\x1C2\x5\xC7\x64\x2\x1C2\x1D8\x3\x2\x2\x2\x1C3"+ + "\x1C4\x5\xB1Y\x2\x1C4\x1C5\x5\xD9m\x2\x1C5\x1C6\x5\xBD_\x2\x1C6\x1D8\x3"+ + "\x2\x2\x2\x1C7\x1C8\x5\xD5k\x2\x1C8\x1C9\x5\xB9]\x2\x1C9\x1CA\x5\xCFh"+ + "\x2\x1CA\x1D8\x3\x2\x2\x2\x1CB\x1CC\x5\xCDg\x2\x1CC\x1CD\x5\xB5[\x2\x1CD"+ + "\x1CE\x5\xD7l\x2\x1CE\x1D8\x3\x2\x2\x2\x1CF\x1D0\x5\xCB\x66\x2\x1D0\x1D1"+ + "\x5\xCDg\x2\x1D1\x1D2\x5\xDBn\x2\x1D2\x1D8\x3\x2\x2\x2\x1D3\x1D4\x5\xB7"+ + "\\\x2\x1D4\x1D5\x5\xB9]\x2\x1D5\x1D6\x5\xB5[\x2\x1D6\x1D8\x3\x2\x2\x2"+ + "\x1D7\x1AB\x3\x2\x2\x2\x1D7\x1AF\x3\x2\x2\x2\x1D7\x1B3\x3\x2\x2\x2\x1D7"+ + "\x1B7\x3\x2\x2\x2\x1D7\x1BB\x3\x2\x2\x2\x1D7\x1BF\x3\x2\x2\x2\x1D7\x1C3"+ + "\x3\x2\x2\x2\x1D7\x1C7\x3\x2\x2\x2\x1D7\x1CB\x3\x2\x2\x2\x1D7\x1CF\x3"+ + "\x2\x2\x2\x1D7\x1D3\x3\x2\x2\x2\x1D8\x1E\x3\x2\x2\x2\x1D9\x1DB\x5\xAD"+ + "W\x2\x1DA\x1D9\x3\x2\x2\x2\x1DB\x1DC\x3\x2\x2\x2\x1DC\x1DA\x3\x2\x2\x2"+ + "\x1DC\x1DD\x3\x2\x2\x2\x1DD\x1DE\x3\x2\x2\x2\x1DE\x1DF\x5#\x12\x2\x1DF"+ + "\x1F7\x3\x2\x2\x2\x1E0\x1E2\x5\xADW\x2\x1E1\x1E0\x3\x2\x2\x2\x1E2\x1E3"+ + "\x3\x2\x2\x2\x1E3\x1E1\x3\x2\x2\x2\x1E3\x1E4\x3\x2\x2\x2\x1E4\x1E5\x3"+ + "\x2\x2\x2\x1E5\x1E7\x5!\x11\x2\x1E6\x1E8\x5\xADW\x2\x1E7\x1E6\x3\x2\x2"+ + "\x2\x1E8\x1E9\x3\x2\x2\x2\x1E9\x1E7\x3\x2\x2\x2\x1E9\x1EA\x3\x2\x2\x2"+ + "\x1EA\x1F1\x3\x2\x2\x2\x1EB\x1ED\x5!\x11\x2\x1EC\x1EE\x5\xADW\x2\x1ED"+ + "\x1EC\x3\x2\x2\x2\x1EE\x1EF\x3\x2\x2\x2\x1EF\x1ED\x3\x2\x2\x2\x1EF\x1F0"+ + "\x3\x2\x2\x2\x1F0\x1F2\x3\x2\x2\x2\x1F1\x1EB\x3\x2\x2\x2\x1F1\x1F2\x3"+ + "\x2\x2\x2\x1F2\x1F4\x3\x2\x2\x2\x1F3\x1F5\x5#\x12\x2\x1F4\x1F3\x3\x2\x2"+ + "\x2\x1F4\x1F5\x3\x2\x2\x2\x1F5\x1F7\x3\x2\x2\x2\x1F6\x1DA\x3\x2\x2\x2"+ + "\x1F6\x1E1\x3\x2\x2\x2\x1F7 \x3\x2\x2\x2\x1F8\x1FA\x5\xA9U\x2\x1F9\x1F8"+ + "\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\x3\x2\x2\x2\x1FB\x1FD\t\a"+ + "\x2\x2\x1FC\x1FE\x5\xA9U\x2\x1FD\x1FC\x3\x2\x2\x2\x1FD\x1FE\x3\x2\x2\x2"+ + "\x1FE\"\x3\x2\x2\x2\x1FF\x201\x5\xA9U\x2\x200\x1FF\x3\x2\x2\x2\x200\x201"+ + "\x3\x2\x2\x2\x201\x20A\x3\x2\x2\x2\x202\x203\x5\xB1Y\x2\x203\x204\x5\xC9"+ + "\x65\x2\x204\x20B\x3\x2\x2\x2\x205\x206\x5\xCFh\x2\x206\x207\x5\xC9\x65"+ + "\x2\x207\x20B\x3\x2\x2\x2\x208\x20B\x5\xB1Y\x2\x209\x20B\x5\xCFh\x2\x20A"+ + "\x202\x3\x2\x2\x2\x20A\x205\x3\x2\x2\x2\x20A\x208\x3\x2\x2\x2\x20A\x209"+ + "\x3\x2\x2\x2\x20B$\x3\x2\x2\x2\x20C\x20D\x5\xCB\x66\x2\x20D\x20E\x5\xCD"+ + "g\x2\x20E\x20F\x5\xD7l\x2\x20F&\x3\x2\x2\x2\x210\x211\x5\xD7l\x2\x211"+ + "\x212\x5\xD3j\x2\x212\x213\x5\xD9m\x2\x213\x214\x5\xB9]\x2\x214(\x3\x2"+ + "\x2\x2\x215\x216\x5\xBB^\x2\x216\x217\x5\xB1Y\x2\x217\x218\x5\xC7\x64"+ + "\x2\x218\x219\x5\xD5k\x2\x219\x21A\x5\xB9]\x2\x21A*\x3\x2\x2\x2\x21B\x21C"+ + "\x5\xCB\x66\x2\x21C\x21D\x5\xCDg\x2\x21D\x21E\x5\xD7l\x2\x21E\x21F\x5"+ + "\xBF`\x2\x21F\x220\x5\xC1\x61\x2\x220\x221\x5\xCB\x66\x2\x221\x222\x5"+ + "\xBD_\x2\x222,\x3\x2\x2\x2\x223\x224\x5\xCB\x66\x2\x224\x225\x5\xD9m\x2"+ + "\x225\x226\x5\xC7\x64\x2\x226\x227\x5\xC7\x64\x2\x227.\x3\x2\x2\x2\x228"+ + "\x229\x5\xB9]\x2\x229\x22A\x5\xC9\x65\x2\x22A\x22B\x5\xCFh\x2\x22B\x22C"+ + "\x5\xD7l\x2\x22C\x22D\x5\xE1q\x2\x22D\x30\x3\x2\x2\x2\x22E\x230\x5\xA9"+ + "U\x2\x22F\x22E\x3\x2\x2\x2\x230\x233\x3\x2\x2\x2\x231\x22F\x3\x2\x2\x2"+ + "\x231\x232\x3\x2\x2\x2\x232\x234\x3\x2\x2\x2\x233\x231\x3\x2\x2\x2\x234"+ + "\x235\x5s:\x2\x235\x236\x5q\x39\x2\x236\x32\x3\x2\x2\x2\x237\x239\x5\xA9"+ + "U\x2\x238\x237\x3\x2\x2\x2\x239\x23C\x3\x2\x2\x2\x23A\x238\x3\x2\x2\x2"+ + "\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x3\x2\x2\x2\x23C\x23A\x3\x2\x2\x2\x23D"+ + "\x23E\x5s:\x2\x23E\x23F\x5\xC1\x61\x2\x23F\x240\x5\xBB^\x2\x240\x34\x3"+ + "\x2\x2\x2\x241\x242\x5\xD7l\x2\x242\x243\x5\xBF`\x2\x243\x244\x5\xB9]"+ + "\x2\x244\x245\x5\xCB\x66\x2\x245\x36\x3\x2\x2\x2\x246\x248\x5\xA9U\x2"+ + "\x247\x246\x3\x2\x2\x2\x248\x24B\x3\x2\x2\x2\x249\x247\x3\x2\x2\x2\x249"+ + "\x24A\x3\x2\x2\x2\x24A\x24C\x3\x2\x2\x2\x24B\x249\x3\x2\x2\x2\x24C\x24D"+ + "\x5s:\x2\x24D\x24E\x5\xB9]\x2\x24E\x24F\x5\xC7\x64\x2\x24F\x250\x5\xD5"+ + "k\x2\x250\x251\x5\xB9]\x2\x251\x252\x5\xC1\x61\x2\x252\x253\x5\xBB^\x2"+ + "\x253\x38\x3\x2\x2\x2\x254\x256\x5\xA9U\x2\x255\x254\x3\x2\x2\x2\x256"+ + "\x259\x3\x2\x2\x2\x257\x255\x3\x2\x2\x2\x257\x258\x3\x2\x2\x2\x258\x25A"+ + "\x3\x2\x2\x2\x259\x257\x3\x2\x2\x2\x25A\x25B\x5s:\x2\x25B\x25C\x5\xB9"+ + "]\x2\x25C\x25D\x5\xC7\x64\x2\x25D\x25E\x5\xD5k\x2\x25E\x25F\x5\xB9]\x2"+ + "\x25F:\x3\x2\x2\x2\x260\x262\x5\xA9U\x2\x261\x260\x3\x2\x2\x2\x262\x265"+ + "\x3\x2\x2\x2\x263\x261\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x266\x3"+ + "\x2\x2\x2\x265\x263\x3\x2\x2\x2\x266\x267\x5s:\x2\x267\x268\x5\xB9]\x2"+ + "\x268\x269\x5\xCB\x66\x2\x269\x26D\x5\xB7\\\x2\x26A\x26C\x5\xA9U\x2\x26B"+ + "\x26A\x3\x2\x2\x2\x26C\x26F\x3\x2\x2\x2\x26D\x26B\x3\x2\x2\x2\x26D\x26E"+ + "\x3\x2\x2\x2\x26E\x270\x3\x2\x2\x2\x26F\x26D\x3\x2\x2\x2\x270\x271\x5"+ + "\xC1\x61\x2\x271\x272\x5\xBB^\x2\x272<\x3\x2\x2\x2\x273\x274\x5\xC1\x61"+ + "\x2\x274\x275\x5\xCB\x66\x2\x275\x276\x5\xD7l\x2\x276>\x3\x2\x2\x2\x277"+ + "\x278\x5\xBB^\x2\x278\x279\x5\xC1\x61\x2\x279\x27A\x5\xDFp\x2\x27A@\x3"+ + "\x2\x2\x2\x27B\x27C\x5\xB1Y\x2\x27C\x27D\x5\xB3Z\x2\x27D\x27E\x5\xD5k"+ + "\x2\x27E\x42\x3\x2\x2\x2\x27F\x280\x5\xD5k\x2\x280\x281\x5\xBD_\x2\x281"+ + "\x282\x5\xCB\x66\x2\x282\x44\x3\x2\x2\x2\x283\x284\x5\xC7\x64\x2\x284"+ + "\x285\x5\xB9]\x2\x285\x286\x5\xCB\x66\x2\x286\x46\x3\x2\x2\x2\x287\x288"+ + "\x5\xC7\x64\x2\x288\x289\x5\xB9]\x2\x289\x28A\x5\xCB\x66\x2\x28A\x28B"+ + "\x5\xB3Z\x2\x28BH\x3\x2\x2\x2\x28C\x28D\x5\xB5[\x2\x28D\x28E\x5\xB3Z\x2"+ + "\x28E\x28F\x5\xCDg\x2\x28F\x290\x5\xCDg\x2\x290\x291\x5\xC7\x64\x2\x291"+ + "J\x3\x2\x2\x2\x292\x293\x5\xB5[\x2\x293\x294\x5\xB3Z\x2\x294\x295\x5\xE1"+ + "q\x2\x295\x296\x5\xD7l\x2\x296\x297\x5\xB9]\x2\x297L\x3\x2\x2\x2\x298"+ + "\x299\x5\xB5[\x2\x299\x29A\x5\xB5[\x2\x29A\x29B\x5\xD9m\x2\x29B\x29C\x5"+ + "\xD3j\x2\x29CN\x3\x2\x2\x2\x29D\x29E\x5\xB5[\x2\x29E\x29F\x5\xB7\\\x2"+ + "\x29F\x2A0\x5\xB1Y\x2\x2A0\x2A1\x5\xD7l\x2\x2A1\x2A2\x5\xB9]\x2\x2A2P"+ + "\x3\x2\x2\x2\x2A3\x2A4\x5\xB5[\x2\x2A4\x2A5\x5\xB7\\\x2\x2A5\x2A6\x5\xB3"+ + "Z\x2\x2A6\x2A7\x5\xC7\x64\x2\x2A7R\x3\x2\x2\x2\x2A8\x2A9\x5\xB5[\x2\x2A9"+ + "\x2AA\x5\xC1\x61\x2\x2AA\x2AB\x5\xCB\x66\x2\x2AB\x2AC\x5\xD7l\x2\x2AC"+ + "T\x3\x2\x2\x2\x2AD\x2AE\x5\xB5[\x2\x2AE\x2AF\x5\xC7\x64\x2\x2AF\x2B0\x5"+ + "\xCB\x66\x2\x2B0\x2B1\x5\xBD_\x2\x2B1V\x3\x2\x2\x2\x2B2\x2B3\x5\xB5[\x2"+ + "\x2B3\x2B4\x5\xC7\x64\x2\x2B4\x2B5\x5\xCB\x66\x2\x2B5\x2B6\x5\xBD_\x2"+ + "\x2B6\x2B7\x5\xC7\x64\x2\x2B7\x2B8\x5\xCB\x66\x2\x2B8\x2B9\x5\xBD_\x2"+ + "\x2B9X\x3\x2\x2\x2\x2BA\x2BB\x5\xB5[\x2\x2BB\x2BC\x5\xC7\x64\x2\x2BC\x2BD"+ + "\x5\xCB\x66\x2\x2BD\x2BE\x5\xBD_\x2\x2BE\x2BF\x5\xCFh\x2\x2BF\x2C0\x5"+ + "\xD7l\x2\x2C0\x2C1\x5\xD3j\x2\x2C1Z\x3\x2\x2\x2\x2C2\x2C3\x5\xB5[\x2\x2C3"+ + "\x2C4\x5\xD5k\x2\x2C4\x2C5\x5\xCB\x66\x2\x2C5\x2C6\x5\xBD_\x2\x2C6\\\x3"+ + "\x2\x2\x2\x2C7\x2C8\x5\xB5[\x2\x2C8\x2C9\x5\xD5k\x2\x2C9\x2CA\x5\xD7l"+ + "\x2\x2CA\x2CB\x5\xD3j\x2\x2CB^\x3\x2\x2\x2\x2CC\x2CD\x5\xB5[\x2\x2CD\x2CE"+ + "\x5\xDBn\x2\x2CE\x2CF\x5\xB1Y\x2\x2CF\x2D0\x5\xD3j\x2\x2D0`\x3\x2\x2\x2"+ + "\x2D1\x2D2\x5\xC1\x61\x2\x2D2\x2D3\x5\xD5k\x2\x2D3\x62\x3\x2\x2\x2\x2D4"+ + "\x2D5\x5\xC7\x64\x2\x2D5\x2D6\x5\xC1\x61\x2\x2D6\x2D7\x5\xC5\x63\x2\x2D7"+ + "\x2D8\x5\xB9]\x2\x2D8\x64\x3\x2\x2\x2\x2D9\x2DA\x5\xC9\x65\x2\x2DA\x2DB"+ + "\x5\xCDg\x2\x2DB\x2DC\x5\xB7\\\x2\x2DC\x66\x3\x2\x2\x2\x2DD\x2DE\x5\xB1"+ + "Y\x2\x2DE\x2DF\x5\xCB\x66\x2\x2DF\x2E0\x5\xB7\\\x2\x2E0h\x3\x2\x2\x2\x2E1"+ + "\x2E2\x5\xCDg\x2\x2E2\x2E3\x5\xD3j\x2\x2E3j\x3\x2\x2\x2\x2E4\x2E5\x5\xDF"+ + "p\x2\x2E5\x2E6\x5\xCDg\x2\x2E6\x2E7\x5\xD3j\x2\x2E7l\x3\x2\x2\x2\x2E8"+ + "\x2E9\x5\xB9]\x2\x2E9\x2EA\x5\xD1i\x2\x2EA\x2EB\x5\xDBn\x2\x2EBn\x3\x2"+ + "\x2\x2\x2EC\x2ED\x5\xC1\x61\x2\x2ED\x2EE\x5\xC9\x65\x2\x2EE\x2EF\x5\xCF"+ + "h\x2\x2EFp\x3\x2\x2\x2\x2F0\x2F1\x5\xB5[\x2\x2F1\x2F2\x5\xCDg\x2\x2F2"+ + "\x2F3\x5\xCB\x66\x2\x2F3\x2F4\x5\xD5k\x2\x2F4\x2F5\x5\xD7l\x2\x2F5r\x3"+ + "\x2\x2\x2\x2F6\x2F7\a%\x2\x2\x2F7t\x3\x2\x2\x2\x2F8\x2F9\a(\x2\x2\x2F9"+ + "v\x3\x2\x2\x2\x2FA\x2FB\a\'\x2\x2\x2FBx\x3\x2\x2\x2\x2FC\x2FD\a#\x2\x2"+ + "\x2FDz\x3\x2\x2\x2\x2FE\x2FF\a\x42\x2\x2\x2FF|\x3\x2\x2\x2\x300\x301\a"+ + "&\x2\x2\x301~\x3\x2\x2\x2\x302\x303\a*\x2\x2\x303\x80\x3\x2\x2\x2\x304"+ + "\x305\a+\x2\x2\x305\x82\x3\x2\x2\x2\x306\x307\a]\x2\x2\x307\x84\x3\x2"+ + "\x2\x2\x308\x309\a_\x2\x2\x309\x86\x3\x2\x2\x2\x30A\x30B\a\x61\x2\x2\x30B"+ + "\x88\x3\x2\x2\x2\x30C\x30D\a?\x2\x2\x30D\x8A\x3\x2\x2\x2\x30E\x30F\a\x31"+ + "\x2\x2\x30F\x8C\x3\x2\x2\x2\x310\x311\a^\x2\x2\x311\x8E\x3\x2\x2\x2\x312"+ + "\x313\a@\x2\x2\x313\x314\a?\x2\x2\x314\x90\x3\x2\x2\x2\x315\x316\a@\x2"+ + "\x2\x316\x92\x3\x2\x2\x2\x317\x318\a>\x2\x2\x318\x319\a?\x2\x2\x319\x94"+ + "\x3\x2\x2\x2\x31A\x31B\a>\x2\x2\x31B\x96\x3\x2\x2\x2\x31C\x31D\a/\x2\x2"+ + "\x31D\x98\x3\x2\x2\x2\x31E\x31F\a,\x2\x2\x31F\x9A\x3\x2\x2\x2\x320\x321"+ + "\a>\x2\x2\x321\x322\a@\x2\x2\x322\x9C\x3\x2\x2\x2\x323\x324\a-\x2\x2\x324"+ + "\x9E\x3\x2\x2\x2\x325\x326\a`\x2\x2\x326\xA0\x3\x2\x2\x2\x327\x328\a)"+ + "\x2\x2\x328\xA2\x3\x2\x2\x2\x329\x32A\a\x30\x2\x2\x32A\xA4\x3\x2\x2\x2"+ + "\x32B\x32C\a.\x2\x2\x32C\xA6\x3\x2\x2\x2\x32D\x32E\a\xF\x2\x2\x32E\x331"+ + "\a\f\x2\x2\x32F\x331\t\b\x2\x2\x330\x32D\x3\x2\x2\x2\x330\x32F\x3\x2\x2"+ + "\x2\x331\xA8\x3\x2\x2\x2\x332\x333\t\t\x2\x2\x333\xAA\x3\x2\x2\x2\x334"+ + "\x338\n\n\x2\x2\x335\x337\n\v\x2\x2\x336\x335\x3\x2\x2\x2\x337\x33A\x3"+ + "\x2\x2\x2\x338\x336\x3\x2\x2\x2\x338\x339\x3\x2\x2\x2\x339\x344\x3\x2"+ + "\x2\x2\x33A\x338\x3\x2\x2\x2\x33B\x33D\x5\x83\x42\x2\x33C\x33E\n\f\x2"+ + "\x2\x33D\x33C\x3\x2\x2\x2\x33E\x33F\x3\x2\x2\x2\x33F\x33D\x3\x2\x2\x2"+ + "\x33F\x340\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x342\x5\x85\x43\x2\x342"+ + "\x344\x3\x2\x2\x2\x343\x334\x3\x2\x2\x2\x343\x33B\x3\x2\x2\x2\x344\xAC"+ + "\x3\x2\x2\x2\x345\x346\t\r\x2\x2\x346\xAE\x3\x2\x2\x2\x347\x348\v\x2\x2"+ + "\x2\x348\xB0\x3\x2\x2\x2\x349\x34A\t\xE\x2\x2\x34A\xB2\x3\x2\x2\x2\x34B"+ + "\x34C\t\xF\x2\x2\x34C\xB4\x3\x2\x2\x2\x34D\x34E\t\x10\x2\x2\x34E\xB6\x3"+ + "\x2\x2\x2\x34F\x350\t\x11\x2\x2\x350\xB8\x3\x2\x2\x2\x351\x352\t\x12\x2"+ + "\x2\x352\xBA\x3\x2\x2\x2\x353\x354\t\x13\x2\x2\x354\xBC\x3\x2\x2\x2\x355"+ + "\x356\t\x14\x2\x2\x356\xBE\x3\x2\x2\x2\x357\x358\t\x15\x2\x2\x358\xC0"+ + "\x3\x2\x2\x2\x359\x35A\t\x16\x2\x2\x35A\xC2\x3\x2\x2\x2\x35B\x35C\t\x17"+ + "\x2\x2\x35C\xC4\x3\x2\x2\x2\x35D\x35E\t\x18\x2\x2\x35E\xC6\x3\x2\x2\x2"+ + "\x35F\x360\t\x19\x2\x2\x360\xC8\x3\x2\x2\x2\x361\x362\t\x1A\x2\x2\x362"+ + "\xCA\x3\x2\x2\x2\x363\x364\t\x1B\x2\x2\x364\xCC\x3\x2\x2\x2\x365\x366"+ + "\t\x1C\x2\x2\x366\xCE\x3\x2\x2\x2\x367\x368\t\x1D\x2\x2\x368\xD0\x3\x2"+ + "\x2\x2\x369\x36A\t\x1E\x2\x2\x36A\xD2\x3\x2\x2\x2\x36B\x36C\t\x1F\x2\x2"+ + "\x36C\xD4\x3\x2\x2\x2\x36D\x36E\t \x2\x2\x36E\xD6\x3\x2\x2\x2\x36F\x370"+ + "\t!\x2\x2\x370\xD8\x3\x2\x2\x2\x371\x372\t\"\x2\x2\x372\xDA\x3\x2\x2\x2"+ + "\x373\x374\t#\x2\x2\x374\xDC\x3\x2\x2\x2\x375\x376\t$\x2\x2\x376\xDE\x3"+ + "\x2\x2\x2\x377\x378\t%\x2\x2\x378\xE0\x3\x2\x2\x2\x379\x37A\t&\x2\x2\x37A"+ + "\xE2\x3\x2\x2\x2\x37B\x37C\t\'\x2\x2\x37C\xE4\x3\x2\x2\x2\x31\x2\xE9\xEB"+ + "\xF6\xF9\x101\x104\x108\x10D\x110\x116\x11A\x11F\x126\x12B\x133\x139\x141"+ + "\x146\x149\x14C\x14F\x152\x156\x1A9\x1D7\x1DC\x1E3\x1E9\x1EF\x1F1\x1F4"+ + "\x1F6\x1F9\x1FD\x200\x20A\x231\x23A\x249\x257\x263\x26D\x330\x338\x33F"+ + "\x343\x2"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} +} // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs new file mode 100644 index 0000000000..62c0a7bdc3 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs @@ -0,0 +1,263 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBAConditionalCompilation.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Preprocessing { +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.3")] +[System.CLSCompliant(false)] +public interface IVBAConditionalCompilationListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterName([NotNull] VBAConditionalCompilationParser.NameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitName([NotNull] VBAConditionalCompilationParser.NameContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); +} +} // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs new file mode 100644 index 0000000000..bf6008574c --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs @@ -0,0 +1,2462 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBAConditionalCompilation.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Preprocessing { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using System.Collections.Generic; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBAConditionalCompilationParser : Parser { + public const int + STRINGLITERAL=1, OCTLITERAL=2, HEXLITERAL=3, SHORTLITERAL=4, INTEGERLITERAL=5, + DOUBLELITERAL=6, DATELITERAL=7, NOT=8, TRUE=9, FALSE=10, NOTHING=11, NULL=12, + EMPTY=13, HASHCONST=14, HASHIF=15, THEN=16, HASHELSEIF=17, HASHELSE=18, + HASHENDIF=19, INT=20, FIX=21, ABS=22, SGN=23, LEN=24, LENB=25, CBOOL=26, + CBYTE=27, CCUR=28, CDATE=29, CDBL=30, CINT=31, CLNG=32, CLNGLNG=33, CLNGPTR=34, + CSNG=35, CSTR=36, CVAR=37, IS=38, LIKE=39, MOD=40, AND=41, OR=42, XOR=43, + EQV=44, IMP=45, CONST=46, HASH=47, AMPERSAND=48, PERCENT=49, EXCLAMATIONMARK=50, + AT=51, DOLLAR=52, L_PAREN=53, R_PAREN=54, L_SQUARE_BRACKET=55, R_SQUARE_BRACKET=56, + UNDERSCORE=57, EQ=58, DIV=59, INTDIV=60, GEQ=61, GT=62, LEQ=63, LT=64, + MINUS=65, MULT=66, NEQ=67, PLUS=68, POW=69, SINGLEQUOTE=70, DOT=71, COMMA=72, + NEWLINE=73, WS=74, IDENTIFIER=75, ANYCHAR=76; + public static readonly string[] tokenNames = { + "", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", + "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", "NOT", "TRUE", "FALSE", + "NOTHING", "NULL", "EMPTY", "HASHCONST", "HASHIF", "THEN", "HASHELSEIF", + "HASHELSE", "HASHENDIF", "INT", "FIX", "ABS", "SGN", "LEN", "LENB", "CBOOL", + "CBYTE", "CCUR", "CDATE", "CDBL", "CINT", "CLNG", "CLNGLNG", "CLNGPTR", + "CSNG", "CSTR", "CVAR", "IS", "LIKE", "MOD", "AND", "OR", "XOR", "EQV", + "IMP", "CONST", "'#'", "'&'", "'%'", "'!'", "'@'", "'$'", "'('", "')'", + "'['", "']'", "'_'", "'='", "'/'", "'\\'", "'>='", "'>'", "'<='", "'<'", + "'-'", "'*'", "'<>'", "'+'", "'^'", "'''", "'.'", "','", "NEWLINE", "WS", + "IDENTIFIER", "ANYCHAR" + }; + public const int + RULE_compilationUnit = 0, RULE_ccBlock = 1, RULE_ccConst = 2, RULE_logicalLine = 3, + RULE_extendedLine = 4, RULE_lineContinuation = 5, RULE_ccVarLhs = 6, RULE_ccExpression = 7, + RULE_ccIfBlock = 8, RULE_ccIf = 9, RULE_ccElseIfBlock = 10, RULE_ccElseIf = 11, + RULE_ccElseBlock = 12, RULE_ccElse = 13, RULE_ccEndIf = 14, RULE_ccEol = 15, + RULE_intrinsicFunction = 16, RULE_intrinsicFunctionName = 17, RULE_name = 18, + RULE_typeSuffix = 19, RULE_literal = 20; + public static readonly string[] ruleNames = { + "compilationUnit", "ccBlock", "ccConst", "logicalLine", "extendedLine", + "lineContinuation", "ccVarLhs", "ccExpression", "ccIfBlock", "ccIf", "ccElseIfBlock", + "ccElseIf", "ccElseBlock", "ccElse", "ccEndIf", "ccEol", "intrinsicFunction", + "intrinsicFunctionName", "name", "typeSuffix", "literal" + }; + + public override string GrammarFileName { get { return "VBAConditionalCompilation.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public VBAConditionalCompilationParser(ITokenStream input) + : base(input) + { + _interp = new ParserATNSimulator(this,_ATN); + } + public partial class CompilationUnitContext : ParserRuleContext { + public CcBlockContext ccBlock() { + return GetRuleContext(0); + } + public ITerminalNode Eof() { return GetToken(VBAConditionalCompilationParser.Eof, 0); } + public CompilationUnitContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_compilationUnit; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCompilationUnit(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCompilationUnit(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCompilationUnit(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CompilationUnitContext compilationUnit() { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, State); + EnterRule(_localctx, 0, RULE_compilationUnit); + try { + EnterOuterAlt(_localctx, 1); + { + State = 42; ccBlock(); + State = 43; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcBlockContext : ParserRuleContext { + public CcIfBlockContext ccIfBlock(int i) { + return GetRuleContext(i); + } + public IReadOnlyList logicalLine() { + return GetRuleContexts(); + } + public IReadOnlyList ccIfBlock() { + return GetRuleContexts(); + } + public LogicalLineContext logicalLine(int i) { + return GetRuleContext(i); + } + public IReadOnlyList ccConst() { + return GetRuleContexts(); + } + public CcConstContext ccConst(int i) { + return GetRuleContext(i); + } + public CcBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccBlock; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcBlock(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcBlockContext ccBlock() { + CcBlockContext _localctx = new CcBlockContext(_ctx, State); + EnterRule(_localctx, 2, RULE_ccBlock); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 50; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,1,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + State = 48; + switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { + case 1: + { + State = 45; ccConst(); + } + break; + + case 2: + { + State = 46; ccIfBlock(); + } + break; + + case 3: + { + State = 47; logicalLine(); + } + break; + } + } + } + State = 52; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,1,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcConstContext : ParserRuleContext { + public CcVarLhsContext ccVarLhs() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode EQ() { return GetToken(VBAConditionalCompilationParser.EQ, 0); } + public ITerminalNode HASHCONST() { return GetToken(VBAConditionalCompilationParser.HASHCONST, 0); } + public CcEolContext ccEol() { + return GetRuleContext(0); + } + public CcExpressionContext ccExpression() { + return GetRuleContext(0); + } + public CcConstContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccConst; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcConst(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcConst(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcConst(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcConstContext ccConst() { + CcConstContext _localctx = new CcConstContext(_ctx, State); + EnterRule(_localctx, 4, RULE_ccConst); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 56; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 53; Match(WS); + } + } + State = 58; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 59; Match(HASHCONST); + State = 61; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 60; Match(WS); + } + } + State = 63; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 65; ccVarLhs(); + State = 67; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 66; Match(WS); + } + } + State = 69; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 71; Match(EQ); + State = 73; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 72; Match(WS); + } + } + State = 75; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 77; ccExpression(0); + State = 78; ccEol(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LogicalLineContext : ParserRuleContext { + public IReadOnlyList extendedLine() { + return GetRuleContexts(); + } + public ExtendedLineContext extendedLine(int i) { + return GetRuleContext(i); + } + public LogicalLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_logicalLine; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterLogicalLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitLogicalLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitLogicalLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LogicalLineContext logicalLine() { + LogicalLineContext _localctx = new LogicalLineContext(_ctx, State); + EnterRule(_localctx, 6, RULE_logicalLine); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 81; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 80; extendedLine(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 83; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,6,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ExtendedLineContext : ParserRuleContext { + public IReadOnlyList HASHIF() { return GetTokens(VBAConditionalCompilationParser.HASHIF); } + public IReadOnlyList HASHENDIF() { return GetTokens(VBAConditionalCompilationParser.HASHENDIF); } + public ITerminalNode HASHENDIF(int i) { + return GetToken(VBAConditionalCompilationParser.HASHENDIF, i); + } + public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } + public IReadOnlyList HASHELSE() { return GetTokens(VBAConditionalCompilationParser.HASHELSE); } + public IReadOnlyList HASHELSEIF() { return GetTokens(VBAConditionalCompilationParser.HASHELSEIF); } + public IReadOnlyList lineContinuation() { + return GetRuleContexts(); + } + public ITerminalNode HASHCONST(int i) { + return GetToken(VBAConditionalCompilationParser.HASHCONST, i); + } + public ITerminalNode HASHIF(int i) { + return GetToken(VBAConditionalCompilationParser.HASHIF, i); + } + public IReadOnlyList HASHCONST() { return GetTokens(VBAConditionalCompilationParser.HASHCONST); } + public ITerminalNode HASHELSEIF(int i) { + return GetToken(VBAConditionalCompilationParser.HASHELSEIF, i); + } + public LineContinuationContext lineContinuation(int i) { + return GetRuleContext(i); + } + public ITerminalNode HASHELSE(int i) { + return GetToken(VBAConditionalCompilationParser.HASHELSE, i); + } + public ExtendedLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_extendedLine; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterExtendedLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitExtendedLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitExtendedLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ExtendedLineContext extendedLine() { + ExtendedLineContext _localctx = new ExtendedLineContext(_ctx, State); + EnterRule(_localctx, 8, RULE_extendedLine); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 87; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 87; + switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { + case 1: + { + State = 85; lineContinuation(); + } + break; + + case 2: + { + State = 86; + _la = _input.La(1); + if ( _la <= 0 || ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << HASHCONST) | (1L << HASHIF) | (1L << HASHELSEIF) | (1L << HASHELSE) | (1L << HASHENDIF))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 89; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,8,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + State = 92; + switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { + case 1: + { + State = 91; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LineContinuationContext : ParserRuleContext { + public ITerminalNode UNDERSCORE() { return GetToken(VBAConditionalCompilationParser.UNDERSCORE, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } + public LineContinuationContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lineContinuation; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterLineContinuation(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitLineContinuation(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitLineContinuation(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LineContinuationContext lineContinuation() { + LineContinuationContext _localctx = new LineContinuationContext(_ctx, State); + EnterRule(_localctx, 10, RULE_lineContinuation); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 97; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 94; Match(WS); + } + } + State = 99; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 100; Match(UNDERSCORE); + State = 104; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 101; Match(WS); + } + } + State = 106; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 107; Match(NEWLINE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcVarLhsContext : ParserRuleContext { + public NameContext name() { + return GetRuleContext(0); + } + public CcVarLhsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccVarLhs; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcVarLhs(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcVarLhs(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcVarLhs(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcVarLhsContext ccVarLhs() { + CcVarLhsContext _localctx = new CcVarLhsContext(_ctx, State); + EnterRule(_localctx, 12, RULE_ccVarLhs); + try { + EnterOuterAlt(_localctx, 1); + { + State = 109; name(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcExpressionContext : ParserRuleContext { + public ITerminalNode R_PAREN() { return GetToken(VBAConditionalCompilationParser.R_PAREN, 0); } + public ITerminalNode XOR() { return GetToken(VBAConditionalCompilationParser.XOR, 0); } + public ITerminalNode EQV() { return GetToken(VBAConditionalCompilationParser.EQV, 0); } + public ITerminalNode AMPERSAND() { return GetToken(VBAConditionalCompilationParser.AMPERSAND, 0); } + public ITerminalNode L_PAREN() { return GetToken(VBAConditionalCompilationParser.L_PAREN, 0); } + public IReadOnlyList ccExpression() { + return GetRuleContexts(); + } + public ITerminalNode INTDIV() { return GetToken(VBAConditionalCompilationParser.INTDIV, 0); } + public ITerminalNode NOT() { return GetToken(VBAConditionalCompilationParser.NOT, 0); } + public ITerminalNode GEQ() { return GetToken(VBAConditionalCompilationParser.GEQ, 0); } + public ITerminalNode LEQ() { return GetToken(VBAConditionalCompilationParser.LEQ, 0); } + public LiteralContext literal() { + return GetRuleContext(0); + } + public ITerminalNode AND() { return GetToken(VBAConditionalCompilationParser.AND, 0); } + public NameContext name() { + return GetRuleContext(0); + } + public ITerminalNode IMP() { return GetToken(VBAConditionalCompilationParser.IMP, 0); } + public CcExpressionContext ccExpression(int i) { + return GetRuleContext(i); + } + public ITerminalNode POW() { return GetToken(VBAConditionalCompilationParser.POW, 0); } + public ITerminalNode DIV() { return GetToken(VBAConditionalCompilationParser.DIV, 0); } + public ITerminalNode NEQ() { return GetToken(VBAConditionalCompilationParser.NEQ, 0); } + public IntrinsicFunctionContext intrinsicFunction() { + return GetRuleContext(0); + } + public ITerminalNode MULT() { return GetToken(VBAConditionalCompilationParser.MULT, 0); } + public ITerminalNode LT() { return GetToken(VBAConditionalCompilationParser.LT, 0); } + public ITerminalNode GT() { return GetToken(VBAConditionalCompilationParser.GT, 0); } + public ITerminalNode MOD() { return GetToken(VBAConditionalCompilationParser.MOD, 0); } + public ITerminalNode OR() { return GetToken(VBAConditionalCompilationParser.OR, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public ITerminalNode IS() { return GetToken(VBAConditionalCompilationParser.IS, 0); } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode MINUS() { return GetToken(VBAConditionalCompilationParser.MINUS, 0); } + public ITerminalNode PLUS() { return GetToken(VBAConditionalCompilationParser.PLUS, 0); } + public ITerminalNode EQ() { return GetToken(VBAConditionalCompilationParser.EQ, 0); } + public ITerminalNode LIKE() { return GetToken(VBAConditionalCompilationParser.LIKE, 0); } + public CcExpressionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccExpression; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcExpression(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcExpression(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcExpression(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcExpressionContext ccExpression() { + return ccExpression(0); + } + + private CcExpressionContext ccExpression(int _p) { + ParserRuleContext _parentctx = _ctx; + int _parentState = State; + CcExpressionContext _localctx = new CcExpressionContext(_ctx, _parentState); + CcExpressionContext _prevctx = _localctx; + int _startState = 14; + EnterRecursionRule(_localctx, 14, RULE_ccExpression, _p); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 147; + switch (_input.La(1)) { + case MINUS: + { + State = 112; Match(MINUS); + State = 116; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 113; Match(WS); + } + } + State = 118; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 119; ccExpression(16); + } + break; + case NOT: + { + State = 120; Match(NOT); + State = 124; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 121; Match(WS); + } + } + State = 126; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 127; ccExpression(9); + } + break; + case L_PAREN: + { + State = 128; Match(L_PAREN); + State = 132; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 129; Match(WS); + } + } + State = 134; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 135; ccExpression(0); + State = 139; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 136; Match(WS); + } + } + State = 141; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 142; Match(R_PAREN); + } + break; + case INT: + case FIX: + case ABS: + case SGN: + case LEN: + case LENB: + case CBOOL: + case CBYTE: + case CCUR: + case CDATE: + case CDBL: + case CINT: + case CLNG: + case CLNGLNG: + case CLNGPTR: + case CSNG: + case CSTR: + case CVAR: + { + State = 144; intrinsicFunction(); + } + break; + case STRINGLITERAL: + case OCTLITERAL: + case HEXLITERAL: + case SHORTLITERAL: + case INTEGERLITERAL: + case DOUBLELITERAL: + case DATELITERAL: + case TRUE: + case FALSE: + case NOTHING: + case NULL: + case EMPTY: + { + State = 145; literal(); + } + break; + case IDENTIFIER: + { + State = 146; name(); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.Lt(-1); + State = 331; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,42,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) TriggerExitRuleEvent(); + _prevctx = _localctx; + { + State = 329; + switch ( Interpreter.AdaptivePredict(_input,41,_ctx) ) { + case 1: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 149; + if (!(Precpred(_ctx, 17))) throw new FailedPredicateException(this, "Precpred(_ctx, 17)"); + State = 153; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 150; Match(WS); + } + } + State = 155; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 156; Match(POW); + State = 160; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 157; Match(WS); + } + } + State = 162; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 163; ccExpression(18); + } + break; + + case 2: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 164; + if (!(Precpred(_ctx, 15))) throw new FailedPredicateException(this, "Precpred(_ctx, 15)"); + State = 168; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 165; Match(WS); + } + } + State = 170; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 171; + _la = _input.La(1); + if ( !(_la==DIV || _la==MULT) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 175; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 172; Match(WS); + } + } + State = 177; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 178; ccExpression(16); + } + break; + + case 3: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 179; + if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); + State = 183; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 180; Match(WS); + } + } + State = 185; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 186; Match(INTDIV); + State = 190; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 187; Match(WS); + } + } + State = 192; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 193; ccExpression(15); + } + break; + + case 4: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 194; + if (!(Precpred(_ctx, 13))) throw new FailedPredicateException(this, "Precpred(_ctx, 13)"); + State = 198; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 195; Match(WS); + } + } + State = 200; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 201; Match(MOD); + State = 205; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 202; Match(WS); + } + } + State = 207; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 208; ccExpression(14); + } + break; + + case 5: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 209; + if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); + State = 213; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 210; Match(WS); + } + } + State = 215; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 216; + _la = _input.La(1); + if ( !(_la==MINUS || _la==PLUS) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 220; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 217; Match(WS); + } + } + State = 222; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 223; ccExpression(13); + } + break; + + case 6: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 224; + if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); + State = 228; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 225; Match(WS); + } + } + State = 230; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 231; Match(AMPERSAND); + State = 235; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 232; Match(WS); + } + } + State = 237; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 238; ccExpression(12); + } + break; + + case 7: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 239; + if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); + State = 243; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 240; Match(WS); + } + } + State = 245; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 246; + _la = _input.La(1); + if ( !(((((_la - 38)) & ~0x3f) == 0 && ((1L << (_la - 38)) & ((1L << (IS - 38)) | (1L << (LIKE - 38)) | (1L << (EQ - 38)) | (1L << (GEQ - 38)) | (1L << (GT - 38)) | (1L << (LEQ - 38)) | (1L << (LT - 38)) | (1L << (NEQ - 38)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 250; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 247; Match(WS); + } + } + State = 252; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 253; ccExpression(11); + } + break; + + case 8: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 254; + if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); + State = 258; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 255; Match(WS); + } + } + State = 260; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 261; Match(AND); + State = 265; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 262; Match(WS); + } + } + State = 267; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 268; ccExpression(9); + } + break; + + case 9: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 269; + if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); + State = 273; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 270; Match(WS); + } + } + State = 275; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 276; Match(OR); + State = 280; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 277; Match(WS); + } + } + State = 282; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 283; ccExpression(8); + } + break; + + case 10: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 284; + if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); + State = 288; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 285; Match(WS); + } + } + State = 290; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 291; Match(XOR); + State = 295; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 292; Match(WS); + } + } + State = 297; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 298; ccExpression(7); + } + break; + + case 11: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 299; + if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); + State = 303; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 300; Match(WS); + } + } + State = 305; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 306; Match(EQV); + State = 310; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 307; Match(WS); + } + } + State = 312; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 313; ccExpression(6); + } + break; + + case 12: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 314; + if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); + State = 318; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 315; Match(WS); + } + } + State = 320; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 321; Match(IMP); + State = 325; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 322; Match(WS); + } + } + State = 327; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 328; ccExpression(5); + } + break; + } + } + } + State = 333; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,42,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + UnrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public partial class CcIfBlockContext : ParserRuleContext { + public CcIfContext ccIf() { + return GetRuleContext(0); + } + public CcBlockContext ccBlock() { + return GetRuleContext(0); + } + public CcElseIfBlockContext ccElseIfBlock(int i) { + return GetRuleContext(i); + } + public CcEndIfContext ccEndIf() { + return GetRuleContext(0); + } + public CcElseBlockContext ccElseBlock() { + return GetRuleContext(0); + } + public IReadOnlyList ccElseIfBlock() { + return GetRuleContexts(); + } + public CcIfBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccIfBlock; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcIfBlock(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcIfBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcIfBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcIfBlockContext ccIfBlock() { + CcIfBlockContext _localctx = new CcIfBlockContext(_ctx, State); + EnterRule(_localctx, 16, RULE_ccIfBlock); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 334; ccIf(); + State = 335; ccBlock(); + State = 339; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,43,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 336; ccElseIfBlock(); + } + } + } + State = 341; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,43,_ctx); + } + State = 343; + switch ( Interpreter.AdaptivePredict(_input,44,_ctx) ) { + case 1: + { + State = 342; ccElseBlock(); + } + break; + } + State = 345; ccEndIf(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcIfContext : ParserRuleContext { + public ITerminalNode HASHIF() { return GetToken(VBAConditionalCompilationParser.HASHIF, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode THEN() { return GetToken(VBAConditionalCompilationParser.THEN, 0); } + public CcEolContext ccEol() { + return GetRuleContext(0); + } + public CcExpressionContext ccExpression() { + return GetRuleContext(0); + } + public CcIfContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccIf; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcIf(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcIf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcIf(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcIfContext ccIf() { + CcIfContext _localctx = new CcIfContext(_ctx, State); + EnterRule(_localctx, 18, RULE_ccIf); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 350; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 347; Match(WS); + } + } + State = 352; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 353; Match(HASHIF); + State = 355; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 354; Match(WS); + } + } + State = 357; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 359; ccExpression(0); + State = 361; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 360; Match(WS); + } + } + State = 363; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 365; Match(THEN); + State = 366; ccEol(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseIfBlockContext : ParserRuleContext { + public CcBlockContext ccBlock() { + return GetRuleContext(0); + } + public CcElseIfContext ccElseIf() { + return GetRuleContext(0); + } + public CcElseIfBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElseIfBlock; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElseIfBlock(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElseIfBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElseIfBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseIfBlockContext ccElseIfBlock() { + CcElseIfBlockContext _localctx = new CcElseIfBlockContext(_ctx, State); + EnterRule(_localctx, 20, RULE_ccElseIfBlock); + try { + EnterOuterAlt(_localctx, 1); + { + State = 368; ccElseIf(); + State = 369; ccBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseIfContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode THEN() { return GetToken(VBAConditionalCompilationParser.THEN, 0); } + public CcEolContext ccEol() { + return GetRuleContext(0); + } + public ITerminalNode HASHELSEIF() { return GetToken(VBAConditionalCompilationParser.HASHELSEIF, 0); } + public CcExpressionContext ccExpression() { + return GetRuleContext(0); + } + public CcElseIfContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElseIf; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElseIf(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElseIf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElseIf(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseIfContext ccElseIf() { + CcElseIfContext _localctx = new CcElseIfContext(_ctx, State); + EnterRule(_localctx, 22, RULE_ccElseIf); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 374; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 371; Match(WS); + } + } + State = 376; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 377; Match(HASHELSEIF); + State = 379; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 378; Match(WS); + } + } + State = 381; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 383; ccExpression(0); + State = 385; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 384; Match(WS); + } + } + State = 387; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 389; Match(THEN); + State = 390; ccEol(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseBlockContext : ParserRuleContext { + public CcBlockContext ccBlock() { + return GetRuleContext(0); + } + public CcElseContext ccElse() { + return GetRuleContext(0); + } + public CcElseBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElseBlock; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElseBlock(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElseBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElseBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseBlockContext ccElseBlock() { + CcElseBlockContext _localctx = new CcElseBlockContext(_ctx, State); + EnterRule(_localctx, 24, RULE_ccElseBlock); + try { + EnterOuterAlt(_localctx, 1); + { + State = 392; ccElse(); + State = 393; ccBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode HASHELSE() { return GetToken(VBAConditionalCompilationParser.HASHELSE, 0); } + public CcEolContext ccEol() { + return GetRuleContext(0); + } + public CcElseContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElse; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElse(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElse(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElse(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseContext ccElse() { + CcElseContext _localctx = new CcElseContext(_ctx, State); + EnterRule(_localctx, 26, RULE_ccElse); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 398; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 395; Match(WS); + } + } + State = 400; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 401; Match(HASHELSE); + State = 402; ccEol(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcEndIfContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public ITerminalNode HASHENDIF() { return GetToken(VBAConditionalCompilationParser.HASHENDIF, 0); } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public CcEolContext ccEol() { + return GetRuleContext(0); + } + public CcEndIfContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccEndIf; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcEndIf(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcEndIf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcEndIf(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcEndIfContext ccEndIf() { + CcEndIfContext _localctx = new CcEndIfContext(_ctx, State); + EnterRule(_localctx, 28, RULE_ccEndIf); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 407; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 404; Match(WS); + } + } + State = 409; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 410; Match(HASHENDIF); + State = 411; ccEol(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CcEolContext : ParserRuleContext { + public ITerminalNode SINGLEQUOTE() { return GetToken(VBAConditionalCompilationParser.SINGLEQUOTE, 0); } + public IReadOnlyList NEWLINE() { return GetTokens(VBAConditionalCompilationParser.NEWLINE); } + public ITerminalNode NEWLINE(int i) { + return GetToken(VBAConditionalCompilationParser.NEWLINE, i); + } + public CcEolContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccEol; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcEol(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcEol(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcEol(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcEolContext ccEol() { + CcEolContext _localctx = new CcEolContext(_ctx, State); + EnterRule(_localctx, 30, RULE_ccEol); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 420; + switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { + case 1: + { + State = 413; Match(SINGLEQUOTE); + State = 417; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,53,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 414; + _la = _input.La(1); + if ( _la <= 0 || (_la==NEWLINE) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + } + State = 419; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,53,_ctx); + } + } + break; + } + State = 423; + switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { + case 1: + { + State = 422; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IntrinsicFunctionContext : ParserRuleContext { + public IntrinsicFunctionNameContext intrinsicFunctionName() { + return GetRuleContext(0); + } + public ITerminalNode R_PAREN() { return GetToken(VBAConditionalCompilationParser.R_PAREN, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode L_PAREN() { return GetToken(VBAConditionalCompilationParser.L_PAREN, 0); } + public CcExpressionContext ccExpression() { + return GetRuleContext(0); + } + public IntrinsicFunctionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_intrinsicFunction; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterIntrinsicFunction(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitIntrinsicFunction(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitIntrinsicFunction(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IntrinsicFunctionContext intrinsicFunction() { + IntrinsicFunctionContext _localctx = new IntrinsicFunctionContext(_ctx, State); + EnterRule(_localctx, 32, RULE_intrinsicFunction); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 425; intrinsicFunctionName(); + State = 426; Match(L_PAREN); + State = 430; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 427; Match(WS); + } + } + State = 432; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 433; ccExpression(0); + State = 437; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 434; Match(WS); + } + } + State = 439; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 440; Match(R_PAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IntrinsicFunctionNameContext : ParserRuleContext { + public ITerminalNode CSTR() { return GetToken(VBAConditionalCompilationParser.CSTR, 0); } + public ITerminalNode CLNGLNG() { return GetToken(VBAConditionalCompilationParser.CLNGLNG, 0); } + public ITerminalNode CDATE() { return GetToken(VBAConditionalCompilationParser.CDATE, 0); } + public ITerminalNode CINT() { return GetToken(VBAConditionalCompilationParser.CINT, 0); } + public ITerminalNode ABS() { return GetToken(VBAConditionalCompilationParser.ABS, 0); } + public ITerminalNode LEN() { return GetToken(VBAConditionalCompilationParser.LEN, 0); } + public ITerminalNode CSNG() { return GetToken(VBAConditionalCompilationParser.CSNG, 0); } + public ITerminalNode INT() { return GetToken(VBAConditionalCompilationParser.INT, 0); } + public ITerminalNode CCUR() { return GetToken(VBAConditionalCompilationParser.CCUR, 0); } + public ITerminalNode LENB() { return GetToken(VBAConditionalCompilationParser.LENB, 0); } + public ITerminalNode CBOOL() { return GetToken(VBAConditionalCompilationParser.CBOOL, 0); } + public ITerminalNode CLNGPTR() { return GetToken(VBAConditionalCompilationParser.CLNGPTR, 0); } + public ITerminalNode SGN() { return GetToken(VBAConditionalCompilationParser.SGN, 0); } + public ITerminalNode CBYTE() { return GetToken(VBAConditionalCompilationParser.CBYTE, 0); } + public ITerminalNode FIX() { return GetToken(VBAConditionalCompilationParser.FIX, 0); } + public ITerminalNode CDBL() { return GetToken(VBAConditionalCompilationParser.CDBL, 0); } + public ITerminalNode CVAR() { return GetToken(VBAConditionalCompilationParser.CVAR, 0); } + public ITerminalNode CLNG() { return GetToken(VBAConditionalCompilationParser.CLNG, 0); } + public IntrinsicFunctionNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_intrinsicFunctionName; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterIntrinsicFunctionName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitIntrinsicFunctionName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitIntrinsicFunctionName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IntrinsicFunctionNameContext intrinsicFunctionName() { + IntrinsicFunctionNameContext _localctx = new IntrinsicFunctionNameContext(_ctx, State); + EnterRule(_localctx, 34, RULE_intrinsicFunctionName); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 442; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << INT) | (1L << FIX) | (1L << ABS) | (1L << SGN) | (1L << LEN) | (1L << LENB) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CINT) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NameContext : ParserRuleContext { + public TypeSuffixContext typeSuffix() { + return GetRuleContext(0); + } + public ITerminalNode IDENTIFIER() { return GetToken(VBAConditionalCompilationParser.IDENTIFIER, 0); } + public NameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_name; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public NameContext name() { + NameContext _localctx = new NameContext(_ctx, State); + EnterRule(_localctx, 36, RULE_name); + try { + EnterOuterAlt(_localctx, 1); + { + State = 444; Match(IDENTIFIER); + State = 446; + switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { + case 1: + { + State = 445; typeSuffix(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeSuffixContext : ParserRuleContext { + public ITerminalNode AT() { return GetToken(VBAConditionalCompilationParser.AT, 0); } + public ITerminalNode EXCLAMATIONMARK() { return GetToken(VBAConditionalCompilationParser.EXCLAMATIONMARK, 0); } + public ITerminalNode DOLLAR() { return GetToken(VBAConditionalCompilationParser.DOLLAR, 0); } + public ITerminalNode AMPERSAND() { return GetToken(VBAConditionalCompilationParser.AMPERSAND, 0); } + public ITerminalNode PERCENT() { return GetToken(VBAConditionalCompilationParser.PERCENT, 0); } + public ITerminalNode HASH() { return GetToken(VBAConditionalCompilationParser.HASH, 0); } + public TypeSuffixContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeSuffix; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterTypeSuffix(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitTypeSuffix(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitTypeSuffix(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TypeSuffixContext typeSuffix() { + TypeSuffixContext _localctx = new TypeSuffixContext(_ctx, State); + EnterRule(_localctx, 38, RULE_typeSuffix); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 448; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << HASH) | (1L << AMPERSAND) | (1L << PERCENT) | (1L << EXCLAMATIONMARK) | (1L << AT) | (1L << DOLLAR))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LiteralContext : ParserRuleContext { + public ITerminalNode INTEGERLITERAL() { return GetToken(VBAConditionalCompilationParser.INTEGERLITERAL, 0); } + public ITerminalNode NULL() { return GetToken(VBAConditionalCompilationParser.NULL, 0); } + public ITerminalNode STRINGLITERAL() { return GetToken(VBAConditionalCompilationParser.STRINGLITERAL, 0); } + public ITerminalNode FALSE() { return GetToken(VBAConditionalCompilationParser.FALSE, 0); } + public ITerminalNode TRUE() { return GetToken(VBAConditionalCompilationParser.TRUE, 0); } + public ITerminalNode NOTHING() { return GetToken(VBAConditionalCompilationParser.NOTHING, 0); } + public ITerminalNode DATELITERAL() { return GetToken(VBAConditionalCompilationParser.DATELITERAL, 0); } + public ITerminalNode HEXLITERAL() { return GetToken(VBAConditionalCompilationParser.HEXLITERAL, 0); } + public ITerminalNode DOUBLELITERAL() { return GetToken(VBAConditionalCompilationParser.DOUBLELITERAL, 0); } + public ITerminalNode SHORTLITERAL() { return GetToken(VBAConditionalCompilationParser.SHORTLITERAL, 0); } + public ITerminalNode EMPTY() { return GetToken(VBAConditionalCompilationParser.EMPTY, 0); } + public ITerminalNode OCTLITERAL() { return GetToken(VBAConditionalCompilationParser.OCTLITERAL, 0); } + public LiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_literal; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterLiteral(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitLiteral(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitLiteral(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LiteralContext literal() { + LiteralContext _localctx = new LiteralContext(_ctx, State); + EnterRule(_localctx, 40, RULE_literal); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 450; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << STRINGLITERAL) | (1L << OCTLITERAL) | (1L << HEXLITERAL) | (1L << SHORTLITERAL) | (1L << INTEGERLITERAL) | (1L << DOUBLELITERAL) | (1L << DATELITERAL) | (1L << TRUE) | (1L << FALSE) | (1L << NOTHING) | (1L << NULL) | (1L << EMPTY))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 7: return ccExpression_sempred((CcExpressionContext)_localctx, predIndex); + } + return true; + } + private bool ccExpression_sempred(CcExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 0: return Precpred(_ctx, 17); + + case 1: return Precpred(_ctx, 15); + + case 2: return Precpred(_ctx, 14); + + case 3: return Precpred(_ctx, 13); + + case 4: return Precpred(_ctx, 12); + + case 5: return Precpred(_ctx, 11); + + case 6: return Precpred(_ctx, 10); + + case 7: return Precpred(_ctx, 8); + + case 8: return Precpred(_ctx, 7); + + case 9: return Precpred(_ctx, 6); + + case 10: return Precpred(_ctx, 5); + + case 11: return Precpred(_ctx, 4); + } + return true; + } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3N\x1C7\x4\x2\t\x2"+ + "\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4\t\t"+ + "\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10\t"+ + "\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ + "\x4\x16\t\x16\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\a\x3\x33\n\x3\f\x3\xE"+ + "\x3\x36\v\x3\x3\x4\a\x4\x39\n\x4\f\x4\xE\x4<\v\x4\x3\x4\x3\x4\x6\x4@\n"+ + "\x4\r\x4\xE\x4\x41\x3\x4\x3\x4\x6\x4\x46\n\x4\r\x4\xE\x4G\x3\x4\x3\x4"+ + "\x6\x4L\n\x4\r\x4\xE\x4M\x3\x4\x3\x4\x3\x4\x3\x5\x6\x5T\n\x5\r\x5\xE\x5"+ + "U\x3\x6\x3\x6\x6\x6Z\n\x6\r\x6\xE\x6[\x3\x6\x5\x6_\n\x6\x3\a\a\a\x62\n"+ + "\a\f\a\xE\a\x65\v\a\x3\a\x3\a\a\ai\n\a\f\a\xE\al\v\a\x3\a\x3\a\x3\b\x3"+ + "\b\x3\t\x3\t\x3\t\a\tu\n\t\f\t\xE\tx\v\t\x3\t\x3\t\x3\t\a\t}\n\t\f\t\xE"+ + "\t\x80\v\t\x3\t\x3\t\x3\t\a\t\x85\n\t\f\t\xE\t\x88\v\t\x3\t\x3\t\a\t\x8C"+ + "\n\t\f\t\xE\t\x8F\v\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x96\n\t\x3\t\x3\t"+ + "\a\t\x9A\n\t\f\t\xE\t\x9D\v\t\x3\t\x3\t\a\t\xA1\n\t\f\t\xE\t\xA4\v\t\x3"+ + "\t\x3\t\x3\t\a\t\xA9\n\t\f\t\xE\t\xAC\v\t\x3\t\x3\t\a\t\xB0\n\t\f\t\xE"+ + "\t\xB3\v\t\x3\t\x3\t\x3\t\a\t\xB8\n\t\f\t\xE\t\xBB\v\t\x3\t\x3\t\a\t\xBF"+ + "\n\t\f\t\xE\t\xC2\v\t\x3\t\x3\t\x3\t\a\t\xC7\n\t\f\t\xE\t\xCA\v\t\x3\t"+ + "\x3\t\a\t\xCE\n\t\f\t\xE\t\xD1\v\t\x3\t\x3\t\x3\t\a\t\xD6\n\t\f\t\xE\t"+ + "\xD9\v\t\x3\t\x3\t\a\t\xDD\n\t\f\t\xE\t\xE0\v\t\x3\t\x3\t\x3\t\a\t\xE5"+ + "\n\t\f\t\xE\t\xE8\v\t\x3\t\x3\t\a\t\xEC\n\t\f\t\xE\t\xEF\v\t\x3\t\x3\t"+ + "\x3\t\a\t\xF4\n\t\f\t\xE\t\xF7\v\t\x3\t\x3\t\a\t\xFB\n\t\f\t\xE\t\xFE"+ + "\v\t\x3\t\x3\t\x3\t\a\t\x103\n\t\f\t\xE\t\x106\v\t\x3\t\x3\t\a\t\x10A"+ + "\n\t\f\t\xE\t\x10D\v\t\x3\t\x3\t\x3\t\a\t\x112\n\t\f\t\xE\t\x115\v\t\x3"+ + "\t\x3\t\a\t\x119\n\t\f\t\xE\t\x11C\v\t\x3\t\x3\t\x3\t\a\t\x121\n\t\f\t"+ + "\xE\t\x124\v\t\x3\t\x3\t\a\t\x128\n\t\f\t\xE\t\x12B\v\t\x3\t\x3\t\x3\t"+ + "\a\t\x130\n\t\f\t\xE\t\x133\v\t\x3\t\x3\t\a\t\x137\n\t\f\t\xE\t\x13A\v"+ + "\t\x3\t\x3\t\x3\t\a\t\x13F\n\t\f\t\xE\t\x142\v\t\x3\t\x3\t\a\t\x146\n"+ + "\t\f\t\xE\t\x149\v\t\x3\t\a\t\x14C\n\t\f\t\xE\t\x14F\v\t\x3\n\x3\n\x3"+ + "\n\a\n\x154\n\n\f\n\xE\n\x157\v\n\x3\n\x5\n\x15A\n\n\x3\n\x3\n\x3\v\a"+ + "\v\x15F\n\v\f\v\xE\v\x162\v\v\x3\v\x3\v\x6\v\x166\n\v\r\v\xE\v\x167\x3"+ + "\v\x3\v\x6\v\x16C\n\v\r\v\xE\v\x16D\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\r"+ + "\a\r\x177\n\r\f\r\xE\r\x17A\v\r\x3\r\x3\r\x6\r\x17E\n\r\r\r\xE\r\x17F"+ + "\x3\r\x3\r\x6\r\x184\n\r\r\r\xE\r\x185\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE"+ + "\x3\xF\a\xF\x18F\n\xF\f\xF\xE\xF\x192\v\xF\x3\xF\x3\xF\x3\xF\x3\x10\a"+ + "\x10\x198\n\x10\f\x10\xE\x10\x19B\v\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3"+ + "\x11\a\x11\x1A2\n\x11\f\x11\xE\x11\x1A5\v\x11\x5\x11\x1A7\n\x11\x3\x11"+ + "\x5\x11\x1AA\n\x11\x3\x12\x3\x12\x3\x12\a\x12\x1AF\n\x12\f\x12\xE\x12"+ + "\x1B2\v\x12\x3\x12\x3\x12\a\x12\x1B6\n\x12\f\x12\xE\x12\x1B9\v\x12\x3"+ + "\x12\x3\x12\x3\x13\x3\x13\x3\x14\x3\x14\x5\x14\x1C1\n\x14\x3\x15\x3\x15"+ + "\x3\x16\x3\x16\x3\x16\x2\x2\x3\x10\x17\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2"+ + "\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2"+ + "$\x2&\x2(\x2*\x2\x2\n\x4\x2\x10\x11\x13\x15\x4\x2==\x44\x44\x4\x2\x43"+ + "\x43\x46\x46\x6\x2()<@\aL\x2\x2?>\x3\x2\x2\x2@\x41\x3\x2\x2\x2"+ + "\x41?\x3\x2\x2\x2\x41\x42\x3\x2\x2\x2\x42\x43\x3\x2\x2\x2\x43\x45\x5\xE"+ + "\b\x2\x44\x46\aL\x2\x2\x45\x44\x3\x2\x2\x2\x46G\x3\x2\x2\x2G\x45\x3\x2"+ + "\x2\x2GH\x3\x2\x2\x2HI\x3\x2\x2\x2IK\a<\x2\x2JL\aL\x2\x2KJ\x3\x2\x2\x2"+ + "LM\x3\x2\x2\x2MK\x3\x2\x2\x2MN\x3\x2\x2\x2NO\x3\x2\x2\x2OP\x5\x10\t\x2"+ + "PQ\x5 \x11\x2Q\a\x3\x2\x2\x2RT\x5\n\x6\x2SR\x3\x2\x2\x2TU\x3\x2\x2\x2"+ + "US\x3\x2\x2\x2UV\x3\x2\x2\x2V\t\x3\x2\x2\x2WZ\x5\f\a\x2XZ\n\x2\x2\x2Y"+ + "W\x3\x2\x2\x2YX\x3\x2\x2\x2Z[\x3\x2\x2\x2[Y\x3\x2\x2\x2[\\\x3\x2\x2\x2"+ + "\\^\x3\x2\x2\x2]_\aK\x2\x2^]\x3\x2\x2\x2^_\x3\x2\x2\x2_\v\x3\x2\x2\x2"+ + "`\x62\aL\x2\x2\x61`\x3\x2\x2\x2\x62\x65\x3\x2\x2\x2\x63\x61\x3\x2\x2\x2"+ + "\x63\x64\x3\x2\x2\x2\x64\x66\x3\x2\x2\x2\x65\x63\x3\x2\x2\x2\x66j\a;\x2"+ + "\x2gi\aL\x2\x2hg\x3\x2\x2\x2il\x3\x2\x2\x2jh\x3\x2\x2\x2jk\x3\x2\x2\x2"+ + "km\x3\x2\x2\x2lj\x3\x2\x2\x2mn\aK\x2\x2n\r\x3\x2\x2\x2op\x5&\x14\x2p\xF"+ + "\x3\x2\x2\x2qr\b\t\x1\x2rv\a\x43\x2\x2su\aL\x2\x2ts\x3\x2\x2\x2ux\x3\x2"+ + "\x2\x2vt\x3\x2\x2\x2vw\x3\x2\x2\x2wy\x3\x2\x2\x2xv\x3\x2\x2\x2y\x96\x5"+ + "\x10\t\x12z~\a\n\x2\x2{}\aL\x2\x2|{\x3\x2\x2\x2}\x80\x3\x2\x2\x2~|\x3"+ + "\x2\x2\x2~\x7F\x3\x2\x2\x2\x7F\x81\x3\x2\x2\x2\x80~\x3\x2\x2\x2\x81\x96"+ + "\x5\x10\t\v\x82\x86\a\x37\x2\x2\x83\x85\aL\x2\x2\x84\x83\x3\x2\x2\x2\x85"+ + "\x88\x3\x2\x2\x2\x86\x84\x3\x2\x2\x2\x86\x87\x3\x2\x2\x2\x87\x89\x3\x2"+ + "\x2\x2\x88\x86\x3\x2\x2\x2\x89\x8D\x5\x10\t\x2\x8A\x8C\aL\x2\x2\x8B\x8A"+ + "\x3\x2\x2\x2\x8C\x8F\x3\x2\x2\x2\x8D\x8B\x3\x2\x2\x2\x8D\x8E\x3\x2\x2"+ + "\x2\x8E\x90\x3\x2\x2\x2\x8F\x8D\x3\x2\x2\x2\x90\x91\a\x38\x2\x2\x91\x96"+ + "\x3\x2\x2\x2\x92\x96\x5\"\x12\x2\x93\x96\x5*\x16\x2\x94\x96\x5&\x14\x2"+ + "\x95q\x3\x2\x2\x2\x95z\x3\x2\x2\x2\x95\x82\x3\x2\x2\x2\x95\x92\x3\x2\x2"+ + "\x2\x95\x93\x3\x2\x2\x2\x95\x94\x3\x2\x2\x2\x96\x14D\x3\x2\x2\x2\x97\x9B"+ + "\f\x13\x2\x2\x98\x9A\aL\x2\x2\x99\x98\x3\x2\x2\x2\x9A\x9D\x3\x2\x2\x2"+ + "\x9B\x99\x3\x2\x2\x2\x9B\x9C\x3\x2\x2\x2\x9C\x9E\x3\x2\x2\x2\x9D\x9B\x3"+ + "\x2\x2\x2\x9E\xA2\aG\x2\x2\x9F\xA1\aL\x2\x2\xA0\x9F\x3\x2\x2\x2\xA1\xA4"+ + "\x3\x2\x2\x2\xA2\xA0\x3\x2\x2\x2\xA2\xA3\x3\x2\x2\x2\xA3\xA5\x3\x2\x2"+ + "\x2\xA4\xA2\x3\x2\x2\x2\xA5\x14C\x5\x10\t\x14\xA6\xAA\f\x11\x2\x2\xA7"+ + "\xA9\aL\x2\x2\xA8\xA7\x3\x2\x2\x2\xA9\xAC\x3\x2\x2\x2\xAA\xA8\x3\x2\x2"+ + "\x2\xAA\xAB\x3\x2\x2\x2\xAB\xAD\x3\x2\x2\x2\xAC\xAA\x3\x2\x2\x2\xAD\xB1"+ + "\t\x3\x2\x2\xAE\xB0\aL\x2\x2\xAF\xAE\x3\x2\x2\x2\xB0\xB3\x3\x2\x2\x2\xB1"+ + "\xAF\x3\x2\x2\x2\xB1\xB2\x3\x2\x2\x2\xB2\xB4\x3\x2\x2\x2\xB3\xB1\x3\x2"+ + "\x2\x2\xB4\x14C\x5\x10\t\x12\xB5\xB9\f\x10\x2\x2\xB6\xB8\aL\x2\x2\xB7"+ + "\xB6\x3\x2\x2\x2\xB8\xBB\x3\x2\x2\x2\xB9\xB7\x3\x2\x2\x2\xB9\xBA\x3\x2"+ + "\x2\x2\xBA\xBC\x3\x2\x2\x2\xBB\xB9\x3\x2\x2\x2\xBC\xC0\a>\x2\x2\xBD\xBF"+ + "\aL\x2\x2\xBE\xBD\x3\x2\x2\x2\xBF\xC2\x3\x2\x2\x2\xC0\xBE\x3\x2\x2\x2"+ + "\xC0\xC1\x3\x2\x2\x2\xC1\xC3\x3\x2\x2\x2\xC2\xC0\x3\x2\x2\x2\xC3\x14C"+ + "\x5\x10\t\x11\xC4\xC8\f\xF\x2\x2\xC5\xC7\aL\x2\x2\xC6\xC5\x3\x2\x2\x2"+ + "\xC7\xCA\x3\x2\x2\x2\xC8\xC6\x3\x2\x2\x2\xC8\xC9\x3\x2\x2\x2\xC9\xCB\x3"+ + "\x2\x2\x2\xCA\xC8\x3\x2\x2\x2\xCB\xCF\a*\x2\x2\xCC\xCE\aL\x2\x2\xCD\xCC"+ + "\x3\x2\x2\x2\xCE\xD1\x3\x2\x2\x2\xCF\xCD\x3\x2\x2\x2\xCF\xD0\x3\x2\x2"+ + "\x2\xD0\xD2\x3\x2\x2\x2\xD1\xCF\x3\x2\x2\x2\xD2\x14C\x5\x10\t\x10\xD3"+ + "\xD7\f\xE\x2\x2\xD4\xD6\aL\x2\x2\xD5\xD4\x3\x2\x2\x2\xD6\xD9\x3\x2\x2"+ + "\x2\xD7\xD5\x3\x2\x2\x2\xD7\xD8\x3\x2\x2\x2\xD8\xDA\x3\x2\x2\x2\xD9\xD7"+ + "\x3\x2\x2\x2\xDA\xDE\t\x4\x2\x2\xDB\xDD\aL\x2\x2\xDC\xDB\x3\x2\x2\x2\xDD"+ + "\xE0\x3\x2\x2\x2\xDE\xDC\x3\x2\x2\x2\xDE\xDF\x3\x2\x2\x2\xDF\xE1\x3\x2"+ + "\x2\x2\xE0\xDE\x3\x2\x2\x2\xE1\x14C\x5\x10\t\xF\xE2\xE6\f\r\x2\x2\xE3"+ + "\xE5\aL\x2\x2\xE4\xE3\x3\x2\x2\x2\xE5\xE8\x3\x2\x2\x2\xE6\xE4\x3\x2\x2"+ + "\x2\xE6\xE7\x3\x2\x2\x2\xE7\xE9\x3\x2\x2\x2\xE8\xE6\x3\x2\x2\x2\xE9\xED"+ + "\a\x32\x2\x2\xEA\xEC\aL\x2\x2\xEB\xEA\x3\x2\x2\x2\xEC\xEF\x3\x2\x2\x2"+ + "\xED\xEB\x3\x2\x2\x2\xED\xEE\x3\x2\x2\x2\xEE\xF0\x3\x2\x2\x2\xEF\xED\x3"+ + "\x2\x2\x2\xF0\x14C\x5\x10\t\xE\xF1\xF5\f\f\x2\x2\xF2\xF4\aL\x2\x2\xF3"+ + "\xF2\x3\x2\x2\x2\xF4\xF7\x3\x2\x2\x2\xF5\xF3\x3\x2\x2\x2\xF5\xF6\x3\x2"+ + "\x2\x2\xF6\xF8\x3\x2\x2\x2\xF7\xF5\x3\x2\x2\x2\xF8\xFC\t\x5\x2\x2\xF9"+ + "\xFB\aL\x2\x2\xFA\xF9\x3\x2\x2\x2\xFB\xFE\x3\x2\x2\x2\xFC\xFA\x3\x2\x2"+ + "\x2\xFC\xFD\x3\x2\x2\x2\xFD\xFF\x3\x2\x2\x2\xFE\xFC\x3\x2\x2\x2\xFF\x14C"+ + "\x5\x10\t\r\x100\x104\f\n\x2\x2\x101\x103\aL\x2\x2\x102\x101\x3\x2\x2"+ + "\x2\x103\x106\x3\x2\x2\x2\x104\x102\x3\x2\x2\x2\x104\x105\x3\x2\x2\x2"+ + "\x105\x107\x3\x2\x2\x2\x106\x104\x3\x2\x2\x2\x107\x10B\a+\x2\x2\x108\x10A"+ + "\aL\x2\x2\x109\x108\x3\x2\x2\x2\x10A\x10D\x3\x2\x2\x2\x10B\x109\x3\x2"+ + "\x2\x2\x10B\x10C\x3\x2\x2\x2\x10C\x10E\x3\x2\x2\x2\x10D\x10B\x3\x2\x2"+ + "\x2\x10E\x14C\x5\x10\t\v\x10F\x113\f\t\x2\x2\x110\x112\aL\x2\x2\x111\x110"+ + "\x3\x2\x2\x2\x112\x115\x3\x2\x2\x2\x113\x111\x3\x2\x2\x2\x113\x114\x3"+ + "\x2\x2\x2\x114\x116\x3\x2\x2\x2\x115\x113\x3\x2\x2\x2\x116\x11A\a,\x2"+ + "\x2\x117\x119\aL\x2\x2\x118\x117\x3\x2\x2\x2\x119\x11C\x3\x2\x2\x2\x11A"+ + "\x118\x3\x2\x2\x2\x11A\x11B\x3\x2\x2\x2\x11B\x11D\x3\x2\x2\x2\x11C\x11A"+ + "\x3\x2\x2\x2\x11D\x14C\x5\x10\t\n\x11E\x122\f\b\x2\x2\x11F\x121\aL\x2"+ + "\x2\x120\x11F\x3\x2\x2\x2\x121\x124\x3\x2\x2\x2\x122\x120\x3\x2\x2\x2"+ + "\x122\x123\x3\x2\x2\x2\x123\x125\x3\x2\x2\x2\x124\x122\x3\x2\x2\x2\x125"+ + "\x129\a-\x2\x2\x126\x128\aL\x2\x2\x127\x126\x3\x2\x2\x2\x128\x12B\x3\x2"+ + "\x2\x2\x129\x127\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x12C\x3\x2\x2"+ + "\x2\x12B\x129\x3\x2\x2\x2\x12C\x14C\x5\x10\t\t\x12D\x131\f\a\x2\x2\x12E"+ + "\x130\aL\x2\x2\x12F\x12E\x3\x2\x2\x2\x130\x133\x3\x2\x2\x2\x131\x12F\x3"+ + "\x2\x2\x2\x131\x132\x3\x2\x2\x2\x132\x134\x3\x2\x2\x2\x133\x131\x3\x2"+ + "\x2\x2\x134\x138\a.\x2\x2\x135\x137\aL\x2\x2\x136\x135\x3\x2\x2\x2\x137"+ + "\x13A\x3\x2\x2\x2\x138\x136\x3\x2\x2\x2\x138\x139\x3\x2\x2\x2\x139\x13B"+ + "\x3\x2\x2\x2\x13A\x138\x3\x2\x2\x2\x13B\x14C\x5\x10\t\b\x13C\x140\f\x6"+ + "\x2\x2\x13D\x13F\aL\x2\x2\x13E\x13D\x3\x2\x2\x2\x13F\x142\x3\x2\x2\x2"+ + "\x140\x13E\x3\x2\x2\x2\x140\x141\x3\x2\x2\x2\x141\x143\x3\x2\x2\x2\x142"+ + "\x140\x3\x2\x2\x2\x143\x147\a/\x2\x2\x144\x146\aL\x2\x2\x145\x144\x3\x2"+ + "\x2\x2\x146\x149\x3\x2\x2\x2\x147\x145\x3\x2\x2\x2\x147\x148\x3\x2\x2"+ + "\x2\x148\x14A\x3\x2\x2\x2\x149\x147\x3\x2\x2\x2\x14A\x14C\x5\x10\t\a\x14B"+ + "\x97\x3\x2\x2\x2\x14B\xA6\x3\x2\x2\x2\x14B\xB5\x3\x2\x2\x2\x14B\xC4\x3"+ + "\x2\x2\x2\x14B\xD3\x3\x2\x2\x2\x14B\xE2\x3\x2\x2\x2\x14B\xF1\x3\x2\x2"+ + "\x2\x14B\x100\x3\x2\x2\x2\x14B\x10F\x3\x2\x2\x2\x14B\x11E\x3\x2\x2\x2"+ + "\x14B\x12D\x3\x2\x2\x2\x14B\x13C\x3\x2\x2\x2\x14C\x14F\x3\x2\x2\x2\x14D"+ + "\x14B\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E\x11\x3\x2\x2\x2\x14F\x14D"+ + "\x3\x2\x2\x2\x150\x151\x5\x14\v\x2\x151\x155\x5\x4\x3\x2\x152\x154\x5"+ + "\x16\f\x2\x153\x152\x3\x2\x2\x2\x154\x157\x3\x2\x2\x2\x155\x153\x3\x2"+ + "\x2\x2\x155\x156\x3\x2\x2\x2\x156\x159\x3\x2\x2\x2\x157\x155\x3\x2\x2"+ + "\x2\x158\x15A\x5\x1A\xE\x2\x159\x158\x3\x2\x2\x2\x159\x15A\x3\x2\x2\x2"+ + "\x15A\x15B\x3\x2\x2\x2\x15B\x15C\x5\x1E\x10\x2\x15C\x13\x3\x2\x2\x2\x15D"+ + "\x15F\aL\x2\x2\x15E\x15D\x3\x2\x2\x2\x15F\x162\x3\x2\x2\x2\x160\x15E\x3"+ + "\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x163\x3\x2\x2\x2\x162\x160\x3\x2"+ + "\x2\x2\x163\x165\a\x11\x2\x2\x164\x166\aL\x2\x2\x165\x164\x3\x2\x2\x2"+ + "\x166\x167\x3\x2\x2\x2\x167\x165\x3\x2\x2\x2\x167\x168\x3\x2\x2\x2\x168"+ + "\x169\x3\x2\x2\x2\x169\x16B\x5\x10\t\x2\x16A\x16C\aL\x2\x2\x16B\x16A\x3"+ + "\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D\x16B\x3\x2\x2\x2\x16D\x16E\x3\x2"+ + "\x2\x2\x16E\x16F\x3\x2\x2\x2\x16F\x170\a\x12\x2\x2\x170\x171\x5 \x11\x2"+ + "\x171\x15\x3\x2\x2\x2\x172\x173\x5\x18\r\x2\x173\x174\x5\x4\x3\x2\x174"+ + "\x17\x3\x2\x2\x2\x175\x177\aL\x2\x2\x176\x175\x3\x2\x2\x2\x177\x17A\x3"+ + "\x2\x2\x2\x178\x176\x3\x2\x2\x2\x178\x179\x3\x2\x2\x2\x179\x17B\x3\x2"+ + "\x2\x2\x17A\x178\x3\x2\x2\x2\x17B\x17D\a\x13\x2\x2\x17C\x17E\aL\x2\x2"+ + "\x17D\x17C\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\x17D\x3\x2\x2\x2\x17F"+ + "\x180\x3\x2\x2\x2\x180\x181\x3\x2\x2\x2\x181\x183\x5\x10\t\x2\x182\x184"+ + "\aL\x2\x2\x183\x182\x3\x2\x2\x2\x184\x185\x3\x2\x2\x2\x185\x183\x3\x2"+ + "\x2\x2\x185\x186\x3\x2\x2\x2\x186\x187\x3\x2\x2\x2\x187\x188\a\x12\x2"+ + "\x2\x188\x189\x5 \x11\x2\x189\x19\x3\x2\x2\x2\x18A\x18B\x5\x1C\xF\x2\x18B"+ + "\x18C\x5\x4\x3\x2\x18C\x1B\x3\x2\x2\x2\x18D\x18F\aL\x2\x2\x18E\x18D\x3"+ + "\x2\x2\x2\x18F\x192\x3\x2\x2\x2\x190\x18E\x3\x2\x2\x2\x190\x191\x3\x2"+ + "\x2\x2\x191\x193\x3\x2\x2\x2\x192\x190\x3\x2\x2\x2\x193\x194\a\x14\x2"+ + "\x2\x194\x195\x5 \x11\x2\x195\x1D\x3\x2\x2\x2\x196\x198\aL\x2\x2\x197"+ + "\x196\x3\x2\x2\x2\x198\x19B\x3\x2\x2\x2\x199\x197\x3\x2\x2\x2\x199\x19A"+ + "\x3\x2\x2\x2\x19A\x19C\x3\x2\x2\x2\x19B\x199\x3\x2\x2\x2\x19C\x19D\a\x15"+ + "\x2\x2\x19D\x19E\x5 \x11\x2\x19E\x1F\x3\x2\x2\x2\x19F\x1A3\aH\x2\x2\x1A0"+ + "\x1A2\n\x6\x2\x2\x1A1\x1A0\x3\x2\x2\x2\x1A2\x1A5\x3\x2\x2\x2\x1A3\x1A1"+ + "\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x1A7\x3\x2\x2\x2\x1A5\x1A3\x3"+ + "\x2\x2\x2\x1A6\x19F\x3\x2\x2\x2\x1A6\x1A7\x3\x2\x2\x2\x1A7\x1A9\x3\x2"+ + "\x2\x2\x1A8\x1AA\aK\x2\x2\x1A9\x1A8\x3\x2\x2\x2\x1A9\x1AA\x3\x2\x2\x2"+ + "\x1AA!\x3\x2\x2\x2\x1AB\x1AC\x5$\x13\x2\x1AC\x1B0\a\x37\x2\x2\x1AD\x1AF"+ + "\aL\x2\x2\x1AE\x1AD\x3\x2\x2\x2\x1AF\x1B2\x3\x2\x2\x2\x1B0\x1AE\x3\x2"+ + "\x2\x2\x1B0\x1B1\x3\x2\x2\x2\x1B1\x1B3\x3\x2\x2\x2\x1B2\x1B0\x3\x2\x2"+ + "\x2\x1B3\x1B7\x5\x10\t\x2\x1B4\x1B6\aL\x2\x2\x1B5\x1B4\x3\x2\x2\x2\x1B6"+ + "\x1B9\x3\x2\x2\x2\x1B7\x1B5\x3\x2\x2\x2\x1B7\x1B8\x3\x2\x2\x2\x1B8\x1BA"+ + "\x3\x2\x2\x2\x1B9\x1B7\x3\x2\x2\x2\x1BA\x1BB\a\x38\x2\x2\x1BB#\x3\x2\x2"+ + "\x2\x1BC\x1BD\t\a\x2\x2\x1BD%\x3\x2\x2\x2\x1BE\x1C0\aM\x2\x2\x1BF\x1C1"+ + "\x5(\x15\x2\x1C0\x1BF\x3\x2\x2\x2\x1C0\x1C1\x3\x2\x2\x2\x1C1\'\x3\x2\x2"+ + "\x2\x1C2\x1C3\t\b\x2\x2\x1C3)\x3\x2\x2\x2\x1C4\x1C5\t\t\x2\x2\x1C5+\x3"+ + "\x2\x2\x2=\x32\x34:\x41GMUY[^\x63jv~\x86\x8D\x95\x9B\xA2\xAA\xB1\xB9\xC0"+ + "\xC8\xCF\xD7\xDE\xE6\xED\xF5\xFC\x104\x10B\x113\x11A\x122\x129\x131\x138"+ + "\x140\x147\x14B\x14D\x155\x159\x160\x167\x16D\x178\x17F\x185\x190\x199"+ + "\x1A3\x1A6\x1A9\x1B0\x1B7\x1C0"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} +} // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs new file mode 100644 index 0000000000..c64da17619 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs @@ -0,0 +1,180 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBAConditionalCompilation.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Preprocessing { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; + +/// +/// This interface defines a complete generic visitor for a parse tree produced +/// by . +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public interface IVBAConditionalCompilationVisitor : IParseTreeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitName([NotNull] VBAConditionalCompilationParser.NameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); +} +} // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBADate.g4 b/Rubberduck.Parsing/Preprocessing/VBADate.g4 new file mode 100644 index 0000000000..bcef7b561a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADate.g4 @@ -0,0 +1,56 @@ +grammar VBADate; + +compilationUnit : dateLiteral EOF; + +dateLiteral : HASH dateOrTime HASH; +dateOrTime : + dateValue + | timeValue + | dateValue WS+ timeValue; +dateValue : dateValuePart dateSeparator dateValuePart (dateSeparator dateValuePart)?; +dateValuePart : DIGIT+ | monthName; +dateSeparator : WS+ | (WS* (SLASH | COMMA | DASH) WS*); +monthName : englishMonthName | englishMonthAbbreviation; +englishMonthName : J A N U A R Y | F E B R U A R Y | M A R C H | A P R I L | M A Y | J U N E | A U G U S T | S E P T E M B E R | O C T O B E R | N O V E M B E R | D E C E M B E R; +englishMonthAbbreviation : J A N | F E B | M A R | A P R | J U N | J U L | A U G | S E P | O C T | N O V | D E C; +timeValue : (timeValuePart WS* AMPM) | (timeValuePart timeSeparator timeValuePart (timeSeparator timeValuePart)? (WS* AMPM)?); +timeValuePart : DIGIT+; +timeSeparator : WS* (COLON | DOT) WS*; +AMPM : AM | PM | A | P; + +AM : A M; +PM : P M; +HASH : '#'; +COMMA : ','; +DASH : '-'; +SLASH : '/'; +COLON : ':'; +DOT : '.'; +WS : [ \t]; +DIGIT : [0-9]; +fragment A:('a'|'A'); +fragment B:('b'|'B'); +fragment C:('c'|'C'); +fragment D:('d'|'D'); +fragment E:('e'|'E'); +fragment F:('f'|'F'); +fragment G:('g'|'G'); +fragment H:('h'|'H'); +fragment I:('i'|'I'); +fragment J:('j'|'J'); +fragment K:('k'|'K'); +fragment L:('l'|'L'); +fragment M:('m'|'M'); +fragment N:('n'|'N'); +fragment O:('o'|'O'); +fragment P:('p'|'P'); +fragment Q:('q'|'Q'); +fragment R:('r'|'R'); +fragment S:('s'|'S'); +fragment T:('t'|'T'); +fragment U:('u'|'U'); +fragment V:('v'|'V'); +fragment W:('w'|'W'); +fragment X:('x'|'X'); +fragment Y:('y'|'Y'); +fragment Z:('z'|'Z'); \ No newline at end of file diff --git a/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs b/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs new file mode 100644 index 0000000000..619bd0a81a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs @@ -0,0 +1,205 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBADate.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Date { + +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.3")] +[System.CLSCompliant(false)] +public partial class VBADateBaseListener : IVBADateListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateValue([NotNull] VBADateParser.DateValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateValue([NotNull] VBADateParser.DateValueContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMonthName([NotNull] VBADateParser.MonthNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMonthName([NotNull] VBADateParser.MonthNameContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeValue([NotNull] VBADateParser.TimeValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeValue([NotNull] VBADateParser.TimeValueContext 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) { } +} +} // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs new file mode 100644 index 0000000000..b2e2e2b672 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs @@ -0,0 +1,167 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBADate.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Date { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// +/// This class provides an empty implementation of , +/// which can be extended to create a visitor which only needs to handle a subset +/// of the available methods. +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBADateBaseVisitor : AbstractParseTreeVisitor, IVBADateVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateValue([NotNull] VBADateParser.DateValueContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMonthName([NotNull] VBADateParser.MonthNameContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTimeValue([NotNull] VBADateParser.TimeValueContext context) { return VisitChildren(context); } +} +} // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateConstants.cs b/Rubberduck.Parsing/Preprocessing/VBADateConstants.cs new file mode 100644 index 0000000000..0731aee5ef --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateConstants.cs @@ -0,0 +1,9 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public static class VBADateConstants + { + public static readonly DateTime EPOCH_START = new DateTime(1899, 12, 30); + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs b/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs new file mode 100644 index 0000000000..5a83eea1db --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBADate.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Date { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBADateLexer : Lexer { + public const int + AMPM=1, AM=2, PM=3, HASH=4, COMMA=5, DASH=6, SLASH=7, COLON=8, DOT=9, + WS=10, DIGIT=11; + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] tokenNames = { + "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", + "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'" + }; + public static readonly string[] ruleNames = { + "AMPM", "AM", "PM", "HASH", "COMMA", "DASH", "SLASH", "COLON", "DOT", + "WS", "DIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", + "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", + "Z" + }; + + + public VBADateLexer(ICharStream input) + : base(input) + { + _interp = new LexerATNSimulator(this,_ATN); + } + + public override string GrammarFileName { get { return "VBADate.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\r\x9D\b\x1\x4\x2"+ + "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ + "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ + "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ + "\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A\x4\x1B"+ + "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!"+ + "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x3\x2\x3\x2\x3\x2\x3\x2\x5\x2"+ + "R\n\x2\x3\x3\x3\x3\x3\x3\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3"+ + "\a\x3\a\x3\b\x3\b\x3\t\x3\t\x3\n\x3\n\x3\v\x3\v\x3\f\x3\f\x3\r\x3\r\x3"+ + "\xE\x3\xE\x3\xF\x3\xF\x3\x10\x3\x10\x3\x11\x3\x11\x3\x12\x3\x12\x3\x13"+ + "\x3\x13\x3\x14\x3\x14\x3\x15\x3\x15\x3\x16\x3\x16\x3\x17\x3\x17\x3\x18"+ + "\x3\x18\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1D"+ + "\x3\x1D\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3 \x3 \x3!\x3!\x3\"\x3\"\x3#\x3#"+ + "\x3$\x3$\x3%\x3%\x3&\x3&\x2\x2\x2\'\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6"+ + "\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\x2\x1B"+ + "\x2\x2\x1D\x2\x2\x1F\x2\x2!\x2\x2#\x2\x2%\x2\x2\'\x2\x2)\x2\x2+\x2\x2"+ + "-\x2\x2/\x2\x2\x31\x2\x2\x33\x2\x2\x35\x2\x2\x37\x2\x2\x39\x2\x2;\x2\x2"+ + "=\x2\x2?\x2\x2\x41\x2\x2\x43\x2\x2\x45\x2\x2G\x2\x2I\x2\x2K\x2\x2\x3\x2"+ + "\x1E\x4\x2\v\v\"\"\x3\x2\x32;\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64"+ + "\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4"+ + "\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4"+ + "\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4"+ + "\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x85\x2\x3"+ + "\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v"+ + "\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2"+ + "\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x3Q\x3\x2\x2\x2"+ + "\x5S\x3\x2\x2\x2\aV\x3\x2\x2\x2\tY\x3\x2\x2\x2\v[\x3\x2\x2\x2\r]\x3\x2"+ + "\x2\x2\xF_\x3\x2\x2\x2\x11\x61\x3\x2\x2\x2\x13\x63\x3\x2\x2\x2\x15\x65"+ + "\x3\x2\x2\x2\x17g\x3\x2\x2\x2\x19i\x3\x2\x2\x2\x1Bk\x3\x2\x2\x2\x1Dm\x3"+ + "\x2\x2\x2\x1Fo\x3\x2\x2\x2!q\x3\x2\x2\x2#s\x3\x2\x2\x2%u\x3\x2\x2\x2\'"+ + "w\x3\x2\x2\x2)y\x3\x2\x2\x2+{\x3\x2\x2\x2-}\x3\x2\x2\x2/\x7F\x3\x2\x2"+ + "\x2\x31\x81\x3\x2\x2\x2\x33\x83\x3\x2\x2\x2\x35\x85\x3\x2\x2\x2\x37\x87"+ + "\x3\x2\x2\x2\x39\x89\x3\x2\x2\x2;\x8B\x3\x2\x2\x2=\x8D\x3\x2\x2\x2?\x8F"+ + "\x3\x2\x2\x2\x41\x91\x3\x2\x2\x2\x43\x93\x3\x2\x2\x2\x45\x95\x3\x2\x2"+ + "\x2G\x97\x3\x2\x2\x2I\x99\x3\x2\x2\x2K\x9B\x3\x2\x2\x2MR\x5\x5\x3\x2N"+ + "R\x5\a\x4\x2OR\x5\x19\r\x2PR\x5\x37\x1C\x2QM\x3\x2\x2\x2QN\x3\x2\x2\x2"+ + "QO\x3\x2\x2\x2QP\x3\x2\x2\x2R\x4\x3\x2\x2\x2ST\x5\x19\r\x2TU\x5\x31\x19"+ + "\x2U\x6\x3\x2\x2\x2VW\x5\x37\x1C\x2WX\x5\x31\x19\x2X\b\x3\x2\x2\x2YZ\a"+ + "%\x2\x2Z\n\x3\x2\x2\x2[\\\a.\x2\x2\\\f\x3\x2\x2\x2]^\a/\x2\x2^\xE\x3\x2"+ + "\x2\x2_`\a\x31\x2\x2`\x10\x3\x2\x2\x2\x61\x62\a<\x2\x2\x62\x12\x3\x2\x2"+ + "\x2\x63\x64\a\x30\x2\x2\x64\x14\x3\x2\x2\x2\x65\x66\t\x2\x2\x2\x66\x16"+ + "\x3\x2\x2\x2gh\t\x3\x2\x2h\x18\x3\x2\x2\x2ij\t\x4\x2\x2j\x1A\x3\x2\x2"+ + "\x2kl\t\x5\x2\x2l\x1C\x3\x2\x2\x2mn\t\x6\x2\x2n\x1E\x3\x2\x2\x2op\t\a"+ + "\x2\x2p \x3\x2\x2\x2qr\t\b\x2\x2r\"\x3\x2\x2\x2st\t\t\x2\x2t$\x3\x2\x2"+ + "\x2uv\t\n\x2\x2v&\x3\x2\x2\x2wx\t\v\x2\x2x(\x3\x2\x2\x2yz\t\f\x2\x2z*"+ + "\x3\x2\x2\x2{|\t\r\x2\x2|,\x3\x2\x2\x2}~\t\xE\x2\x2~.\x3\x2\x2\x2\x7F"+ + "\x80\t\xF\x2\x2\x80\x30\x3\x2\x2\x2\x81\x82\t\x10\x2\x2\x82\x32\x3\x2"+ + "\x2\x2\x83\x84\t\x11\x2\x2\x84\x34\x3\x2\x2\x2\x85\x86\t\x12\x2\x2\x86"+ + "\x36\x3\x2\x2\x2\x87\x88\t\x13\x2\x2\x88\x38\x3\x2\x2\x2\x89\x8A\t\x14"+ + "\x2\x2\x8A:\x3\x2\x2\x2\x8B\x8C\t\x15\x2\x2\x8C<\x3\x2\x2\x2\x8D\x8E\t"+ + "\x16\x2\x2\x8E>\x3\x2\x2\x2\x8F\x90\t\x17\x2\x2\x90@\x3\x2\x2\x2\x91\x92"+ + "\t\x18\x2\x2\x92\x42\x3\x2\x2\x2\x93\x94\t\x19\x2\x2\x94\x44\x3\x2\x2"+ + "\x2\x95\x96\t\x1A\x2\x2\x96\x46\x3\x2\x2\x2\x97\x98\t\x1B\x2\x2\x98H\x3"+ + "\x2\x2\x2\x99\x9A\t\x1C\x2\x2\x9AJ\x3\x2\x2\x2\x9B\x9C\t\x1D\x2\x2\x9C"+ + "L\x3\x2\x2\x2\x4\x2Q\x2"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} +} // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateListener.cs b/Rubberduck.Parsing/Preprocessing/VBADateListener.cs new file mode 100644 index 0000000000..7b67dea826 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateListener.cs @@ -0,0 +1,164 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBADate.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Date { +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.3")] +[System.CLSCompliant(false)] +public interface IVBADateListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateValue([NotNull] VBADateParser.DateValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateValue([NotNull] VBADateParser.DateValueContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateValuePart([NotNull] VBADateParser.DateValuePartContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateValuePart([NotNull] VBADateParser.DateValuePartContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMonthName([NotNull] VBADateParser.MonthNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMonthName([NotNull] VBADateParser.MonthNameContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateLiteral([NotNull] VBADateParser.DateLiteralContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateLiteral([NotNull] VBADateParser.DateLiteralContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeValue([NotNull] VBADateParser.TimeValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeValue([NotNull] VBADateParser.TimeValueContext context); +} +} // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateParser.cs b/Rubberduck.Parsing/Preprocessing/VBADateParser.cs new file mode 100644 index 0000000000..bece4ca695 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateParser.cs @@ -0,0 +1,1285 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBADate.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Date { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using System.Collections.Generic; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBADateParser : Parser { + public const int + AMPM=1, AM=2, PM=3, HASH=4, COMMA=5, DASH=6, SLASH=7, COLON=8, DOT=9, + WS=10, DIGIT=11, J=12, A=13, N=14, U=15, R=16, Y=17, F=18, E=19, B=20, + M=21, C=22, H=23, P=24, I=25, L=26, G=27, S=28, T=29, O=30, V=31, D=32; + public static readonly string[] tokenNames = { + "", "AMPM", "AM", "PM", "'#'", "','", "'-'", "'/'", "':'", "'.'", + "WS", "DIGIT", "J", "A", "N", "U", "R", "Y", "F", "E", "B", "M", "C", + "H", "P", "I", "L", "G", "S", "T", "O", "V", "D" + }; + public const int + RULE_compilationUnit = 0, RULE_dateLiteral = 1, RULE_dateOrTime = 2, RULE_dateValue = 3, + RULE_dateValuePart = 4, RULE_dateSeparator = 5, RULE_monthName = 6, RULE_englishMonthName = 7, + RULE_englishMonthAbbreviation = 8, RULE_timeValue = 9, RULE_timeValuePart = 10, + RULE_timeSeparator = 11; + public static readonly string[] ruleNames = { + "compilationUnit", "dateLiteral", "dateOrTime", "dateValue", "dateValuePart", + "dateSeparator", "monthName", "englishMonthName", "englishMonthAbbreviation", + "timeValue", "timeValuePart", "timeSeparator" + }; + + public override string GrammarFileName { get { return "VBADate.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public VBADateParser(ITokenStream input) + : base(input) + { + _interp = new ParserATNSimulator(this,_ATN); + } + public partial class CompilationUnitContext : ParserRuleContext { + public ITerminalNode Eof() { return GetToken(VBADateParser.Eof, 0); } + public DateLiteralContext dateLiteral() { + return GetRuleContext(0); + } + public CompilationUnitContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_compilationUnit; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterCompilationUnit(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitCompilationUnit(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitCompilationUnit(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CompilationUnitContext compilationUnit() { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, State); + EnterRule(_localctx, 0, RULE_compilationUnit); + try { + EnterOuterAlt(_localctx, 1); + { + State = 24; dateLiteral(); + State = 25; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DateLiteralContext : ParserRuleContext { + public DateOrTimeContext dateOrTime() { + return GetRuleContext(0); + } + public ITerminalNode HASH(int i) { + return GetToken(VBADateParser.HASH, i); + } + public IReadOnlyList HASH() { return GetTokens(VBADateParser.HASH); } + public DateLiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateLiteral; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateLiteral(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateLiteral(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateLiteral(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DateLiteralContext dateLiteral() { + DateLiteralContext _localctx = new DateLiteralContext(_ctx, State); + EnterRule(_localctx, 2, RULE_dateLiteral); + try { + EnterOuterAlt(_localctx, 1); + { + State = 27; Match(HASH); + State = 28; dateOrTime(); + State = 29; Match(HASH); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DateOrTimeContext : ParserRuleContext { + public DateValueContext dateValue() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public TimeValueContext timeValue() { + return GetRuleContext(0); + } + public DateOrTimeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateOrTime; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateOrTime(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateOrTime(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateOrTime(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DateOrTimeContext dateOrTime() { + DateOrTimeContext _localctx = new DateOrTimeContext(_ctx, State); + EnterRule(_localctx, 4, RULE_dateOrTime); + int _la; + try { + State = 41; + switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 31; dateValue(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 32; timeValue(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 33; dateValue(); + State = 35; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 34; Match(WS); + } + } + State = 37; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + State = 39; timeValue(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DateValueContext : ParserRuleContext { + public IReadOnlyList dateSeparator() { + return GetRuleContexts(); + } + public IReadOnlyList dateValuePart() { + return GetRuleContexts(); + } + public DateSeparatorContext dateSeparator(int i) { + return GetRuleContext(i); + } + public DateValuePartContext dateValuePart(int i) { + return GetRuleContext(i); + } + public DateValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateValue; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateValue(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateValue(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DateValueContext dateValue() { + DateValueContext _localctx = new DateValueContext(_ctx, State); + EnterRule(_localctx, 6, RULE_dateValue); + try { + EnterOuterAlt(_localctx, 1); + { + State = 43; dateValuePart(); + State = 44; dateSeparator(); + State = 45; dateValuePart(); + State = 49; + switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { + case 1: + { + State = 46; dateSeparator(); + State = 47; dateValuePart(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DateValuePartContext : ParserRuleContext { + public ITerminalNode DIGIT(int i) { + return GetToken(VBADateParser.DIGIT, i); + } + public IReadOnlyList DIGIT() { return GetTokens(VBADateParser.DIGIT); } + public MonthNameContext monthName() { + return GetRuleContext(0); + } + public DateValuePartContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateValuePart; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateValuePart(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateValuePart(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateValuePart(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DateValuePartContext dateValuePart() { + DateValuePartContext _localctx = new DateValuePartContext(_ctx, State); + EnterRule(_localctx, 8, RULE_dateValuePart); + int _la; + try { + State = 57; + switch (_input.La(1)) { + case DIGIT: + EnterOuterAlt(_localctx, 1); + { + State = 52; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 51; Match(DIGIT); + } + } + State = 54; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==DIGIT ); + } + break; + case J: + case A: + case N: + case F: + case M: + case S: + case O: + case D: + EnterOuterAlt(_localctx, 2); + { + State = 56; monthName(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DateSeparatorContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public ITerminalNode SLASH() { return GetToken(VBADateParser.SLASH, 0); } + public ITerminalNode COMMA() { return GetToken(VBADateParser.COMMA, 0); } + public ITerminalNode DASH() { return GetToken(VBADateParser.DASH, 0); } + public DateSeparatorContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateSeparator; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateSeparator(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateSeparator(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateSeparator(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DateSeparatorContext dateSeparator() { + DateSeparatorContext _localctx = new DateSeparatorContext(_ctx, State); + EnterRule(_localctx, 10, RULE_dateSeparator); + int _la; + try { + State = 77; + switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 60; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 59; Match(WS); + } + } + State = 62; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==WS ); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + { + State = 67; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 64; Match(WS); + } + } + State = 69; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 70; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << COMMA) | (1L << DASH) | (1L << SLASH))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 74; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 71; Match(WS); + } + } + State = 76; + _errHandler.Sync(this); + _la = _input.La(1); + } + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MonthNameContext : ParserRuleContext { + public EnglishMonthAbbreviationContext englishMonthAbbreviation() { + return GetRuleContext(0); + } + public EnglishMonthNameContext englishMonthName() { + return GetRuleContext(0); + } + public MonthNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_monthName; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterMonthName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitMonthName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitMonthName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MonthNameContext monthName() { + MonthNameContext _localctx = new MonthNameContext(_ctx, State); + EnterRule(_localctx, 12, RULE_monthName); + try { + State = 81; + switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 79; englishMonthName(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 80; englishMonthAbbreviation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EnglishMonthNameContext : ParserRuleContext { + public ITerminalNode T() { return GetToken(VBADateParser.T, 0); } + public IReadOnlyList U() { return GetTokens(VBADateParser.U); } + public ITerminalNode J() { return GetToken(VBADateParser.J, 0); } + public ITerminalNode G() { return GetToken(VBADateParser.G, 0); } + public ITerminalNode S() { return GetToken(VBADateParser.S, 0); } + public IReadOnlyList O() { return GetTokens(VBADateParser.O); } + public ITerminalNode I() { return GetToken(VBADateParser.I, 0); } + public IReadOnlyList A() { return GetTokens(VBADateParser.A); } + public ITerminalNode P() { return GetToken(VBADateParser.P, 0); } + public ITerminalNode E(int i) { + return GetToken(VBADateParser.E, i); + } + public ITerminalNode U(int i) { + return GetToken(VBADateParser.U, i); + } + public ITerminalNode Y() { return GetToken(VBADateParser.Y, 0); } + public ITerminalNode H() { return GetToken(VBADateParser.H, 0); } + public ITerminalNode M() { return GetToken(VBADateParser.M, 0); } + public ITerminalNode V() { return GetToken(VBADateParser.V, 0); } + public ITerminalNode F() { return GetToken(VBADateParser.F, 0); } + public IReadOnlyList E() { return GetTokens(VBADateParser.E); } + public ITerminalNode D() { return GetToken(VBADateParser.D, 0); } + public IReadOnlyList R() { return GetTokens(VBADateParser.R); } + public ITerminalNode O(int i) { + return GetToken(VBADateParser.O, i); + } + public ITerminalNode N() { return GetToken(VBADateParser.N, 0); } + public ITerminalNode R(int i) { + return GetToken(VBADateParser.R, i); + } + public ITerminalNode A(int i) { + return GetToken(VBADateParser.A, i); + } + public ITerminalNode B() { return GetToken(VBADateParser.B, 0); } + public ITerminalNode C() { return GetToken(VBADateParser.C, 0); } + public ITerminalNode L() { return GetToken(VBADateParser.L, 0); } + public EnglishMonthNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_englishMonthName; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterEnglishMonthName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitEnglishMonthName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitEnglishMonthName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EnglishMonthNameContext englishMonthName() { + EnglishMonthNameContext _localctx = new EnglishMonthNameContext(_ctx, State); + EnterRule(_localctx, 14, RULE_englishMonthName); + try { + State = 153; + switch ( Interpreter.AdaptivePredict(_input,10,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 83; Match(J); + State = 84; Match(A); + State = 85; Match(N); + State = 86; Match(U); + State = 87; Match(A); + State = 88; Match(R); + State = 89; Match(Y); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 90; Match(F); + State = 91; Match(E); + State = 92; Match(B); + State = 93; Match(R); + State = 94; Match(U); + State = 95; Match(A); + State = 96; Match(R); + State = 97; Match(Y); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 98; Match(M); + State = 99; Match(A); + State = 100; Match(R); + State = 101; Match(C); + State = 102; Match(H); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 103; Match(A); + State = 104; Match(P); + State = 105; Match(R); + State = 106; Match(I); + State = 107; Match(L); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 108; Match(M); + State = 109; Match(A); + State = 110; Match(Y); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 111; Match(J); + State = 112; Match(U); + State = 113; Match(N); + State = 114; Match(E); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 115; Match(A); + State = 116; Match(U); + State = 117; Match(G); + State = 118; Match(U); + State = 119; Match(S); + State = 120; Match(T); + } + break; + + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 121; Match(S); + State = 122; Match(E); + State = 123; Match(P); + State = 124; Match(T); + State = 125; Match(E); + State = 126; Match(M); + State = 127; Match(B); + State = 128; Match(E); + State = 129; Match(R); + } + break; + + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 130; Match(O); + State = 131; Match(C); + State = 132; Match(T); + State = 133; Match(O); + State = 134; Match(B); + State = 135; Match(E); + State = 136; Match(R); + } + break; + + case 10: + EnterOuterAlt(_localctx, 10); + { + State = 137; Match(N); + State = 138; Match(O); + State = 139; Match(V); + State = 140; Match(E); + State = 141; Match(M); + State = 142; Match(B); + State = 143; Match(E); + State = 144; Match(R); + } + break; + + case 11: + EnterOuterAlt(_localctx, 11); + { + State = 145; Match(D); + State = 146; Match(E); + State = 147; Match(C); + State = 148; Match(E); + State = 149; Match(M); + State = 150; Match(B); + State = 151; Match(E); + State = 152; Match(R); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EnglishMonthAbbreviationContext : ParserRuleContext { + public ITerminalNode T() { return GetToken(VBADateParser.T, 0); } + public ITerminalNode M() { return GetToken(VBADateParser.M, 0); } + public ITerminalNode V() { return GetToken(VBADateParser.V, 0); } + public ITerminalNode F() { return GetToken(VBADateParser.F, 0); } + public ITerminalNode E() { return GetToken(VBADateParser.E, 0); } + public ITerminalNode D() { return GetToken(VBADateParser.D, 0); } + public ITerminalNode U() { return GetToken(VBADateParser.U, 0); } + public ITerminalNode R() { return GetToken(VBADateParser.R, 0); } + public ITerminalNode J() { return GetToken(VBADateParser.J, 0); } + public ITerminalNode G() { return GetToken(VBADateParser.G, 0); } + public ITerminalNode N() { return GetToken(VBADateParser.N, 0); } + public ITerminalNode S() { return GetToken(VBADateParser.S, 0); } + public ITerminalNode O() { return GetToken(VBADateParser.O, 0); } + public ITerminalNode B() { return GetToken(VBADateParser.B, 0); } + public ITerminalNode C() { return GetToken(VBADateParser.C, 0); } + public ITerminalNode A() { return GetToken(VBADateParser.A, 0); } + public ITerminalNode P() { return GetToken(VBADateParser.P, 0); } + public ITerminalNode L() { return GetToken(VBADateParser.L, 0); } + public EnglishMonthAbbreviationContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_englishMonthAbbreviation; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterEnglishMonthAbbreviation(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitEnglishMonthAbbreviation(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitEnglishMonthAbbreviation(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EnglishMonthAbbreviationContext englishMonthAbbreviation() { + EnglishMonthAbbreviationContext _localctx = new EnglishMonthAbbreviationContext(_ctx, State); + EnterRule(_localctx, 16, RULE_englishMonthAbbreviation); + try { + State = 188; + switch ( Interpreter.AdaptivePredict(_input,11,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 155; Match(J); + State = 156; Match(A); + State = 157; Match(N); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 158; Match(F); + State = 159; Match(E); + State = 160; Match(B); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 161; Match(M); + State = 162; Match(A); + State = 163; Match(R); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 164; Match(A); + State = 165; Match(P); + State = 166; Match(R); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 167; Match(J); + State = 168; Match(U); + State = 169; Match(N); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 170; Match(J); + State = 171; Match(U); + State = 172; Match(L); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 173; Match(A); + State = 174; Match(U); + State = 175; Match(G); + } + break; + + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 176; Match(S); + State = 177; Match(E); + State = 178; Match(P); + } + break; + + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 179; Match(O); + State = 180; Match(C); + State = 181; Match(T); + } + break; + + case 10: + EnterOuterAlt(_localctx, 10); + { + State = 182; Match(N); + State = 183; Match(O); + State = 184; Match(V); + } + break; + + case 11: + EnterOuterAlt(_localctx, 11); + { + State = 185; Match(D); + State = 186; Match(E); + State = 187; Match(C); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TimeValueContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList timeValuePart() { + return GetRuleContexts(); + } + public ITerminalNode AMPM() { return GetToken(VBADateParser.AMPM, 0); } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public IReadOnlyList timeSeparator() { + return GetRuleContexts(); + } + public TimeValuePartContext timeValuePart(int i) { + return GetRuleContext(i); + } + public TimeSeparatorContext timeSeparator(int i) { + return GetRuleContext(i); + } + public TimeValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeValue; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterTimeValue(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitTimeValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitTimeValue(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TimeValueContext timeValue() { + TimeValueContext _localctx = new TimeValueContext(_ctx, State); + EnterRule(_localctx, 18, RULE_timeValue); + int _la; + try { + State = 216; + switch ( Interpreter.AdaptivePredict(_input,16,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + { + State = 190; timeValuePart(); + State = 194; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 191; Match(WS); + } + } + State = 196; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 197; Match(AMPM); + } + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + { + State = 199; timeValuePart(); + State = 200; timeSeparator(); + State = 201; timeValuePart(); + State = 205; + switch ( Interpreter.AdaptivePredict(_input,13,_ctx) ) { + case 1: + { + State = 202; timeSeparator(); + State = 203; timeValuePart(); + } + break; + } + State = 214; + _la = _input.La(1); + if (_la==AMPM || _la==WS) { + { + State = 210; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 207; Match(WS); + } + } + State = 212; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 213; Match(AMPM); + } + } + + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TimeValuePartContext : ParserRuleContext { + public ITerminalNode DIGIT(int i) { + return GetToken(VBADateParser.DIGIT, i); + } + public IReadOnlyList DIGIT() { return GetTokens(VBADateParser.DIGIT); } + public TimeValuePartContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeValuePart; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterTimeValuePart(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitTimeValuePart(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitTimeValuePart(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TimeValuePartContext timeValuePart() { + TimeValuePartContext _localctx = new TimeValuePartContext(_ctx, State); + EnterRule(_localctx, 20, RULE_timeValuePart); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 219; + _errHandler.Sync(this); + _la = _input.La(1); + do { + { + { + State = 218; Match(DIGIT); + } + } + State = 221; + _errHandler.Sync(this); + _la = _input.La(1); + } while ( _la==DIGIT ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TimeSeparatorContext : ParserRuleContext { + public ITerminalNode DOT() { return GetToken(VBADateParser.DOT, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public ITerminalNode COLON() { return GetToken(VBADateParser.COLON, 0); } + public TimeSeparatorContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeSeparator; } } + public override void EnterRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterTimeSeparator(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitTimeSeparator(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitTimeSeparator(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TimeSeparatorContext timeSeparator() { + TimeSeparatorContext _localctx = new TimeSeparatorContext(_ctx, State); + EnterRule(_localctx, 22, RULE_timeSeparator); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 226; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 223; Match(WS); + } + } + State = 228; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 229; + _la = _input.La(1); + if ( !(_la==COLON || _la==DOT) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 233; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==WS) { + { + { + State = 230; Match(WS); + } + } + State = 235; + _errHandler.Sync(this); + _la = _input.La(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\"\xEF\x4\x2\t\x2"+ + "\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4\t\t"+ + "\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3"+ + "\x3\x3\x3\x3\x4\x3\x4\x3\x4\x3\x4\x6\x4&\n\x4\r\x4\xE\x4\'\x3\x4\x3\x4"+ + "\x5\x4,\n\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x34\n\x5\x3\x6"+ + "\x6\x6\x37\n\x6\r\x6\xE\x6\x38\x3\x6\x5\x6<\n\x6\x3\a\x6\a?\n\a\r\a\xE"+ + "\a@\x3\a\a\a\x44\n\a\f\a\xE\aG\v\a\x3\a\x3\a\a\aK\n\a\f\a\xE\aN\v\a\x5"+ + "\aP\n\a\x3\b\x3\b\x5\bT\n\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x9C\n\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"+ + "\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\x5\n"+ + "\xBF\n\n\x3\v\x3\v\a\v\xC3\n\v\f\v\xE\v\xC6\v\v\x3\v\x3\v\x3\v\x3\v\x3"+ + "\v\x3\v\x3\v\x3\v\x5\v\xD0\n\v\x3\v\a\v\xD3\n\v\f\v\xE\v\xD6\v\v\x3\v"+ + "\x5\v\xD9\n\v\x5\v\xDB\n\v\x3\f\x6\f\xDE\n\f\r\f\xE\f\xDF\x3\r\a\r\xE3"+ + "\n\r\f\r\xE\r\xE6\v\r\x3\r\x3\r\a\r\xEA\n\r\f\r\xE\r\xED\v\r\x3\r\x2\x2"+ + "\x2\xE\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16"+ + "\x2\x18\x2\x2\x4\x3\x2\a\t\x3\x2\n\v\x109\x2\x1A\x3\x2\x2\x2\x4\x1D\x3"+ + "\x2\x2\x2\x6+\x3\x2\x2\x2\b-\x3\x2\x2\x2\n;\x3\x2\x2\x2\fO\x3\x2\x2\x2"+ + "\xES\x3\x2\x2\x2\x10\x9B\x3\x2\x2\x2\x12\xBE\x3\x2\x2\x2\x14\xDA\x3\x2"+ + "\x2\x2\x16\xDD\x3\x2\x2\x2\x18\xE4\x3\x2\x2\x2\x1A\x1B\x5\x4\x3\x2\x1B"+ + "\x1C\a\x2\x2\x3\x1C\x3\x3\x2\x2\x2\x1D\x1E\a\x6\x2\x2\x1E\x1F\x5\x6\x4"+ + "\x2\x1F \a\x6\x2\x2 \x5\x3\x2\x2\x2!,\x5\b\x5\x2\",\x5\x14\v\x2#%\x5\b"+ + "\x5\x2$&\a\f\x2\x2%$\x3\x2\x2\x2&\'\x3\x2\x2\x2\'%\x3\x2\x2\x2\'(\x3\x2"+ + "\x2\x2()\x3\x2\x2\x2)*\x5\x14\v\x2*,\x3\x2\x2\x2+!\x3\x2\x2\x2+\"\x3\x2"+ + "\x2\x2+#\x3\x2\x2\x2,\a\x3\x2\x2\x2-.\x5\n\x6\x2./\x5\f\a\x2/\x33\x5\n"+ + "\x6\x2\x30\x31\x5\f\a\x2\x31\x32\x5\n\x6\x2\x32\x34\x3\x2\x2\x2\x33\x30"+ + "\x3\x2\x2\x2\x33\x34\x3\x2\x2\x2\x34\t\x3\x2\x2\x2\x35\x37\a\r\x2\x2\x36"+ + "\x35\x3\x2\x2\x2\x37\x38\x3\x2\x2\x2\x38\x36\x3\x2\x2\x2\x38\x39\x3\x2"+ + "\x2\x2\x39<\x3\x2\x2\x2:<\x5\xE\b\x2;\x36\x3\x2\x2\x2;:\x3\x2\x2\x2<\v"+ + "\x3\x2\x2\x2=?\a\f\x2\x2>=\x3\x2\x2\x2?@\x3\x2\x2\x2@>\x3\x2\x2\x2@\x41"+ + "\x3\x2\x2\x2\x41P\x3\x2\x2\x2\x42\x44\a\f\x2\x2\x43\x42\x3\x2\x2\x2\x44"+ + "G\x3\x2\x2\x2\x45\x43\x3\x2\x2\x2\x45\x46\x3\x2\x2\x2\x46H\x3\x2\x2\x2"+ + "G\x45\x3\x2\x2\x2HL\t\x2\x2\x2IK\a\f\x2\x2JI\x3\x2\x2\x2KN\x3\x2\x2\x2"+ + "LJ\x3\x2\x2\x2LM\x3\x2\x2\x2MP\x3\x2\x2\x2NL\x3\x2\x2\x2O>\x3\x2\x2\x2"+ + "O\x45\x3\x2\x2\x2P\r\x3\x2\x2\x2QT\x5\x10\t\x2RT\x5\x12\n\x2SQ\x3\x2\x2"+ + "\x2SR\x3\x2\x2\x2T\xF\x3\x2\x2\x2UV\a\xE\x2\x2VW\a\xF\x2\x2WX\a\x10\x2"+ + "\x2XY\a\x11\x2\x2YZ\a\xF\x2\x2Z[\a\x12\x2\x2[\x9C\a\x13\x2\x2\\]\a\x14"+ + "\x2\x2]^\a\x15\x2\x2^_\a\x16\x2\x2_`\a\x12\x2\x2`\x61\a\x11\x2\x2\x61"+ + "\x62\a\xF\x2\x2\x62\x63\a\x12\x2\x2\x63\x9C\a\x13\x2\x2\x64\x65\a\x17"+ + "\x2\x2\x65\x66\a\xF\x2\x2\x66g\a\x12\x2\x2gh\a\x18\x2\x2h\x9C\a\x19\x2"+ + "\x2ij\a\xF\x2\x2jk\a\x1A\x2\x2kl\a\x12\x2\x2lm\a\x1B\x2\x2m\x9C\a\x1C"+ + "\x2\x2no\a\x17\x2\x2op\a\xF\x2\x2p\x9C\a\x13\x2\x2qr\a\xE\x2\x2rs\a\x11"+ + "\x2\x2st\a\x10\x2\x2t\x9C\a\x15\x2\x2uv\a\xF\x2\x2vw\a\x11\x2\x2wx\a\x1D"+ + "\x2\x2xy\a\x11\x2\x2yz\a\x1E\x2\x2z\x9C\a\x1F\x2\x2{|\a\x1E\x2\x2|}\a"+ + "\x15\x2\x2}~\a\x1A\x2\x2~\x7F\a\x1F\x2\x2\x7F\x80\a\x15\x2\x2\x80\x81"+ + "\a\x17\x2\x2\x81\x82\a\x16\x2\x2\x82\x83\a\x15\x2\x2\x83\x9C\a\x12\x2"+ + "\x2\x84\x85\a \x2\x2\x85\x86\a\x18\x2\x2\x86\x87\a\x1F\x2\x2\x87\x88\a"+ + " \x2\x2\x88\x89\a\x16\x2\x2\x89\x8A\a\x15\x2\x2\x8A\x9C\a\x12\x2\x2\x8B"+ + "\x8C\a\x10\x2\x2\x8C\x8D\a \x2\x2\x8D\x8E\a!\x2\x2\x8E\x8F\a\x15\x2\x2"+ + "\x8F\x90\a\x17\x2\x2\x90\x91\a\x16\x2\x2\x91\x92\a\x15\x2\x2\x92\x9C\a"+ + "\x12\x2\x2\x93\x94\a\"\x2\x2\x94\x95\a\x15\x2\x2\x95\x96\a\x18\x2\x2\x96"+ + "\x97\a\x15\x2\x2\x97\x98\a\x17\x2\x2\x98\x99\a\x16\x2\x2\x99\x9A\a\x15"+ + "\x2\x2\x9A\x9C\a\x12\x2\x2\x9BU\x3\x2\x2\x2\x9B\\\x3\x2\x2\x2\x9B\x64"+ + "\x3\x2\x2\x2\x9Bi\x3\x2\x2\x2\x9Bn\x3\x2\x2\x2\x9Bq\x3\x2\x2\x2\x9Bu\x3"+ + "\x2\x2\x2\x9B{\x3\x2\x2\x2\x9B\x84\x3\x2\x2\x2\x9B\x8B\x3\x2\x2\x2\x9B"+ + "\x93\x3\x2\x2\x2\x9C\x11\x3\x2\x2\x2\x9D\x9E\a\xE\x2\x2\x9E\x9F\a\xF\x2"+ + "\x2\x9F\xBF\a\x10\x2\x2\xA0\xA1\a\x14\x2\x2\xA1\xA2\a\x15\x2\x2\xA2\xBF"+ + "\a\x16\x2\x2\xA3\xA4\a\x17\x2\x2\xA4\xA5\a\xF\x2\x2\xA5\xBF\a\x12\x2\x2"+ + "\xA6\xA7\a\xF\x2\x2\xA7\xA8\a\x1A\x2\x2\xA8\xBF\a\x12\x2\x2\xA9\xAA\a"+ + "\xE\x2\x2\xAA\xAB\a\x11\x2\x2\xAB\xBF\a\x10\x2\x2\xAC\xAD\a\xE\x2\x2\xAD"+ + "\xAE\a\x11\x2\x2\xAE\xBF\a\x1C\x2\x2\xAF\xB0\a\xF\x2\x2\xB0\xB1\a\x11"+ + "\x2\x2\xB1\xBF\a\x1D\x2\x2\xB2\xB3\a\x1E\x2\x2\xB3\xB4\a\x15\x2\x2\xB4"+ + "\xBF\a\x1A\x2\x2\xB5\xB6\a \x2\x2\xB6\xB7\a\x18\x2\x2\xB7\xBF\a\x1F\x2"+ + "\x2\xB8\xB9\a\x10\x2\x2\xB9\xBA\a \x2\x2\xBA\xBF\a!\x2\x2\xBB\xBC\a\""+ + "\x2\x2\xBC\xBD\a\x15\x2\x2\xBD\xBF\a\x18\x2\x2\xBE\x9D\x3\x2\x2\x2\xBE"+ + "\xA0\x3\x2\x2\x2\xBE\xA3\x3\x2\x2\x2\xBE\xA6\x3\x2\x2\x2\xBE\xA9\x3\x2"+ + "\x2\x2\xBE\xAC\x3\x2\x2\x2\xBE\xAF\x3\x2\x2\x2\xBE\xB2\x3\x2\x2\x2\xBE"+ + "\xB5\x3\x2\x2\x2\xBE\xB8\x3\x2\x2\x2\xBE\xBB\x3\x2\x2\x2\xBF\x13\x3\x2"+ + "\x2\x2\xC0\xC4\x5\x16\f\x2\xC1\xC3\a\f\x2\x2\xC2\xC1\x3\x2\x2\x2\xC3\xC6"+ + "\x3\x2\x2\x2\xC4\xC2\x3\x2\x2\x2\xC4\xC5\x3\x2\x2\x2\xC5\xC7\x3\x2\x2"+ + "\x2\xC6\xC4\x3\x2\x2\x2\xC7\xC8\a\x3\x2\x2\xC8\xDB\x3\x2\x2\x2\xC9\xCA"+ + "\x5\x16\f\x2\xCA\xCB\x5\x18\r\x2\xCB\xCF\x5\x16\f\x2\xCC\xCD\x5\x18\r"+ + "\x2\xCD\xCE\x5\x16\f\x2\xCE\xD0\x3\x2\x2\x2\xCF\xCC\x3\x2\x2\x2\xCF\xD0"+ + "\x3\x2\x2\x2\xD0\xD8\x3\x2\x2\x2\xD1\xD3\a\f\x2\x2\xD2\xD1\x3\x2\x2\x2"+ + "\xD3\xD6\x3\x2\x2\x2\xD4\xD2\x3\x2\x2\x2\xD4\xD5\x3\x2\x2\x2\xD5\xD7\x3"+ + "\x2\x2\x2\xD6\xD4\x3\x2\x2\x2\xD7\xD9\a\x3\x2\x2\xD8\xD4\x3\x2\x2\x2\xD8"+ + "\xD9\x3\x2\x2\x2\xD9\xDB\x3\x2\x2\x2\xDA\xC0\x3\x2\x2\x2\xDA\xC9\x3\x2"+ + "\x2\x2\xDB\x15\x3\x2\x2\x2\xDC\xDE\a\r\x2\x2\xDD\xDC\x3\x2\x2\x2\xDE\xDF"+ + "\x3\x2\x2\x2\xDF\xDD\x3\x2\x2\x2\xDF\xE0\x3\x2\x2\x2\xE0\x17\x3\x2\x2"+ + "\x2\xE1\xE3\a\f\x2\x2\xE2\xE1\x3\x2\x2\x2\xE3\xE6\x3\x2\x2\x2\xE4\xE2"+ + "\x3\x2\x2\x2\xE4\xE5\x3\x2\x2\x2\xE5\xE7\x3\x2\x2\x2\xE6\xE4\x3\x2\x2"+ + "\x2\xE7\xEB\t\x3\x2\x2\xE8\xEA\a\f\x2\x2\xE9\xE8\x3\x2\x2\x2\xEA\xED\x3"+ + "\x2\x2\x2\xEB\xE9\x3\x2\x2\x2\xEB\xEC\x3\x2\x2\x2\xEC\x19\x3\x2\x2\x2"+ + "\xED\xEB\x3\x2\x2\x2\x16\'+\x33\x38;@\x45LOS\x9B\xBE\xC4\xCF\xD4\xD8\xDA"+ + "\xDF\xE4\xEB"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} +} // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs new file mode 100644 index 0000000000..3cb5e8a91a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs @@ -0,0 +1,117 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBADate.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Date { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; + +/// +/// This interface defines a complete generic visitor for a parse tree produced +/// by . +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public interface IVBADateVisitor : IParseTreeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateValue([NotNull] VBADateParser.DateValueContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateValuePart([NotNull] VBADateParser.DateValuePartContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMonthName([NotNull] VBADateParser.MonthNameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateLiteral([NotNull] VBADateParser.DateLiteralContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTimeValue([NotNull] VBADateParser.TimeValueContext context); +} +} // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs b/Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs new file mode 100644 index 0000000000..950add6764 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs @@ -0,0 +1,11 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAEmptyValue + { + public static readonly VBAEmptyValue Value = new VBAEmptyValue(); + + private VBAEmptyValue() + { + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs new file mode 100644 index 0000000000..9a08ddfc75 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs @@ -0,0 +1,1205 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Date; +using Rubberduck.Parsing.Like; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAExpressionEvaluator + { + private SymbolTable _symbolTable; + private readonly Dictionary _letCoercions = new Dictionary() + { + { typeof(bool), new BoolLetCoercion() }, + { typeof(byte), new ByteLetCoercion() }, + { typeof(decimal), new DecimalLetCoercion() }, + { typeof(DateTime), new DateLetCoercion() }, + { typeof(string), new StringLetCoercion() }, + { typeof(VBAEmptyValue), new EmptyLetCoercion() } + }; + + public VBAExpressionEvaluator() + : this(new SymbolTable()) + { + } + + public VBAExpressionEvaluator(SymbolTable symbolTable) + { + _symbolTable = symbolTable; + } + + public void AddConstant(string name, object value) + { + _symbolTable.Add(name, value); + } + + public void EvaluateConstant(string name, VBAConditionalCompilationParser.CcExpressionContext expression) + { + AddConstant(name, Evaluate(expression)); + } + + public bool EvaluateCondition(VBAConditionalCompilationParser.CcExpressionContext expression) + { + object condition = Evaluate(expression); + if (condition == null) + { + return false; + } + return _letCoercions[condition.GetType()].ToBool(condition); + } + + private object Evaluate(VBAConditionalCompilationParser.CcExpressionContext expression) + { + return Visit(expression); + } + + private object Visit(VBAConditionalCompilationParser.NameContext context) + { + var identifier = context.GetText(); + return _symbolTable.Get(identifier); + } + + private object VisitUnaryMinus(VBAConditionalCompilationParser.CcExpressionContext context) + { + var operand = Visit(context.ccExpression()[0]); + if (operand == null) + { + return null; + } + else if (operand is DateTime) + { + var value = _letCoercions[typeof(DateTime)].ToDecimal(operand); + value = -value; + try + { + return _letCoercions[typeof(decimal)].ToDate(value); + } + catch + { + // 5.6.9.3.1: If overflow occurs during the coercion to Date, and the operand has a + // declared type of Variant, the result is the Double value. + // We don't care about it being a Variant because if it's not a Variant it won't compile/run. + // We catch everything because the only case where the code is valid is that if this is an overflow. + return value; + } + } + else + { + var value = _letCoercions[operand.GetType()].ToDecimal(operand); + return -value; + } + } + + private object VisitUnaryNot(VBAConditionalCompilationParser.CcExpressionContext context) + { + var operand = Visit(context.ccExpression()[0]); + if (operand == null) + { + return null; + } + else if (operand is bool) + { + return !(bool)operand; + } + else + { + var coerced = _letCoercions[operand.GetType()].ToDecimal(operand); + return (decimal)~Convert.ToInt64(coerced); + } + } + + private object VisitPlus(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + if (left is string) + { + return (string)left + (string)right; + } + else if (left is DateTime) + { + decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); + decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); + decimal sum = leftValue + rightValue; + try + { + return _letCoercions[sum.GetType()].ToDate(sum); + } + catch + { + return sum; + } + } + else + { + var leftNumber = _letCoercions[left.GetType()].ToDecimal(left); + var rightNumber = _letCoercions[right.GetType()].ToDecimal(right); + return leftNumber + rightNumber; + } + } + + private object VisitMinus(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + if (left is DateTime) + { + decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); + decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); + decimal difference = leftValue - rightValue; + // 5.6.9.3.3 Should actually return date if no overflow. + // At least Excel always seems to return the double value (instead of date) + return difference; + //try + //{ + // return _letCoercions[typeof(decimal)].ToDate(difference); + //} + //catch + //{ + // return difference; + //} + } + else + { + var leftNumber = _letCoercions[left.GetType()].ToDecimal(left); + var rightNumber = _letCoercions[right.GetType()].ToDecimal(right); + return leftNumber - rightNumber; + } + } + + private object Visit(VBAConditionalCompilationParser.CcExpressionContext context) + { + if (context.literal() != null) + { + return Visit(context.literal()); + } + else if (context.name() != null) + { + return Visit(context.name()); + } + else if (context.L_PAREN() != null) + { + return Visit(context.ccExpression()[0]); + } + else if (context.MINUS() != null && context.ccExpression().Count == 1) + { + return VisitUnaryMinus(context); + } + else if (context.NOT() != null) + { + return VisitUnaryNot(context); + } + else if (context.PLUS() != null) + { + return VisitPlus(context); + } + else if (context.MINUS() != null && context.ccExpression().Count == 2) + { + return VisitMinus(context); + } + else if (context.MULT() != null) + { + return VisitMult(context); + } + else if (context.DIV() != null) + { + return VisitDiv(context); + } + else if (context.INTDIV() != null) + { + return VisitIntDiv(context); + } + else if (context.MOD() != null) + { + return VisitMod(context); + } + else if (context.POW() != null) + { + return VisitPow(context); + } + else if (context.AMPERSAND() != null) + { + return VisitConcat(context); + } + else if (context.EQ() != null) + { + return VisitEq(context); + } + else if (context.NEQ() != null) + { + return VisitNeq(context); + } + else if (context.LT() != null) + { + return VisitLt(context); + } + else if (context.GT() != null) + { + return VisitGt(context); + } + else if (context.LEQ() != null) + { + return VisitLeq(context); + } + else if (context.GEQ() != null) + { + return VisitGeq(context); + } + else if (context.AND() != null) + { + return VisitAnd(context); + } + else if (context.OR() != null) + { + return VisitOr(context); + } + else if (context.XOR() != null) + { + return VisitXor(context); + } + else if (context.EQV() != null) + { + return VisitEqv(context); + } + else if (context.IMP() != null) + { + return VisitImp(context); + } + else if (context.IS() != null) + { + return VisitIs(context); + } + else if (context.LIKE() != null) + { + return VisitLike(context); + } + else + { + return VisitIntrinsicFunction(context); + } + } + + private object VisitIntrinsicFunction(VBAConditionalCompilationParser.CcExpressionContext context) + { + var intrinsicFunction = context.intrinsicFunction(); + var name = intrinsicFunction.intrinsicFunctionName().GetText().ToUpper(); + var expr = Visit(intrinsicFunction.ccExpression()); + if (expr == null) + { + return null; + } + switch (name) + { + case "INT": + case "FIX": + return VisitIntFixFunction(expr); + case "ABS": + return VisitAbsFunction(expr); + case "SGN": + return VisitSgnFunction(expr); + case "LEN": + return VisitLenFunction(expr); + case "LENB": + return VisitLenBFunction(expr); + case "CBOOL": + return VisitCBoolFunction(expr); + case "CBYTE": + return VisitCByteFunction(expr); + case "CCUR": + return VisitCCurFunction(expr); + case "CDATE": + return VisitCDateFunction(expr); + case "CDBL": + return VisitCDblFunction(expr); + case "CINT": + return VisitCIntFunction(expr); + case "CLNG": + return VisitCLngFunction(expr); + case "CLNGLNG": + return VisitCLngLngFunction(expr); + case "CLNGPTR": + return VisitLngPtrFunction(expr); + case "CSNG": + return VisitCSngFunction(expr); + case "CSTR": + return VisitCStrFunction(expr); + case "CVAR": + return VisitCVarFunction(expr); + default: + return null; + } + } + + private object VisitCVarFunction(object expr) + { + return expr; + } + + private object VisitCStrFunction(object expr) + { + return _letCoercions[expr.GetType()].ToString(expr); + } + + private object VisitCSngFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + + private object VisitLngPtrFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + + private object VisitCLngLngFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + + private object VisitCLngFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + + private object VisitCIntFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + + private object VisitCDblFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + + private object VisitCDateFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDate(expr); + } + + private object VisitCCurFunction(object expr) + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + + private object VisitCByteFunction(object expr) + { + return _letCoercions[expr.GetType()].ToByte(expr); + } + + private object VisitCBoolFunction(object expr) + { + return _letCoercions[expr.GetType()].ToBool(expr); + } + + private object VisitLenBFunction(object expr) + { + return (decimal)_letCoercions[expr.GetType()].ToString(expr).Length * sizeof(Char); + } + + private object VisitLenFunction(object expr) + { + return (decimal)_letCoercions[expr.GetType()].ToString(expr).Length; + } + + private object VisitSgnFunction(object expr) + { + return (decimal)Math.Sign(_letCoercions[expr.GetType()].ToDecimal(expr)); + } + + private object VisitAbsFunction(object expr) + { + if (expr is DateTime) + { + decimal exprValue = _letCoercions[typeof(DateTime)].ToDecimal(expr); + exprValue = Math.Abs(exprValue); + try + { + return _letCoercions[typeof(decimal)].ToDate(exprValue); + } + catch + { + return exprValue; + } + } + else + { + return Math.Abs(_letCoercions[expr.GetType()].ToDecimal(expr)); + } + } + + private object VisitIntFixFunction(object expr) + { + if (expr is decimal) + { + return Math.Truncate((decimal)expr); + } + else if (expr is string) + { + return Math.Truncate(_letCoercions[typeof(string)].ToDecimal(expr)); + } + else if (expr is DateTime) + { + return _letCoercions[typeof(decimal)].ToDate(Math.Truncate(_letCoercions[typeof(DateTime)].ToDecimal(expr))); + } + else + { + return _letCoercions[expr.GetType()].ToDecimal(expr); + } + } + + private object VisitLike(VBAConditionalCompilationParser.CcExpressionContext context) + { + var expr = Visit(context.ccExpression()[0]); + var pattern = Visit(context.ccExpression()[1]); + if (expr == null || pattern == null) + { + return null; + } + var exprStr = _letCoercions[expr.GetType()].ToString(expr); + var patternStr = _letCoercions[pattern.GetType()].ToString(pattern); + var stream = new AntlrInputStream(patternStr); + var lexer = new VBALikeLexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBALikeParser(tokens); + var likePattern = parser.likePatternString(); + StringBuilder regexStr = new StringBuilder(); + foreach (var element in likePattern.likePatternElement()) + { + if (element.NORMALCHAR() != null) + { + regexStr.Append(element.NORMALCHAR().GetText()); + } + else if (element.QUESTIONMARK() != null) + { + regexStr.Append("."); + } + else if (element.HASH() != null) + { + regexStr.Append(@"\d"); + } + else if (element.STAR() != null) + { + regexStr.Append(@".*?"); + } + else + { + var charlist = element.likePatternCharlist().GetText(); + var cleaned = charlist.Replace("[!", "[^"); + regexStr.Append(cleaned); + } + } + // Full string match, e.g. "abcd" should NOT match "a.c" + var regex = "^" + regexStr.ToString() + "$"; + return Regex.IsMatch(exprStr, regex); + } + + private object VisitIs(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return left == null && right == null; + } + + private object VisitImp(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null && right == null) + { + return null; + } + else if (left != null && left is bool && right != null && right is bool) + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + var result = (decimal)(~leftNumber | rightNumber); + return _letCoercions[result.GetType()].ToBool(result); + } + else if (left == null && _letCoercions[right.GetType()].ToDecimal(right) == 0) + { + return null; + } + else if (left == null) + { + return right; + } + else if (_letCoercions[left.GetType()].ToDecimal(left) == -1) + { + return null; + } + else if (right == null) + { + return (decimal)(~Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)) | 0); + } + else + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + return (decimal)(~leftNumber | rightNumber); + } + } + + private object VisitEqv(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + else if (left is bool && right is bool) + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + var result = (decimal)~(leftNumber ^ rightNumber); + return _letCoercions[result.GetType()].ToBool(result); + } + else + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + return (decimal)~(leftNumber ^ rightNumber); + } + } + + private object VisitXor(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + else if (left is bool && right is bool) + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + var result = (decimal)(leftNumber ^ rightNumber); + return _letCoercions[result.GetType()].ToBool(result); + } + else + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + return (decimal)(leftNumber ^ rightNumber); + } + } + + private object VisitOr(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null && right == null) + { + return null; + } + else if (left == null) + { + return right; + } + else if (right == null) + { + return left; + } + else if (left is bool && right is bool) + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + var result = (decimal)(leftNumber | rightNumber); + return _letCoercions[result.GetType()].ToBool(result); + } + else + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + return (decimal)(leftNumber | rightNumber); + } + } + + private object VisitAnd(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left != null && _letCoercions[left.GetType()].ToDecimal(left) == 0 && right == null) + { + return 0; + } + else if (right != null && _letCoercions[right.GetType()].ToDecimal(right) == 0 && left == null) + { + return 0; + } + else if (left == null || right == null) + { + return null; + } + else if (left is bool && right is bool) + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + var result = (decimal)(leftNumber & rightNumber); + return _letCoercions[result.GetType()].ToBool(result); + } + else + { + var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + return (decimal)(leftNumber & rightNumber); + } + } + + private object VisitGeq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + return !EvaluateLt(left, right); + } + + private object VisitLeq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + return EvaluateLt(left, right) || EvaluateEq(left, right); + } + + private object VisitGt(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + return !EvaluateLt(left, right) && !EvaluateEq(left, right); + } + + private object VisitLt(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + return EvaluateLt(left, right); + } + + private object VisitNeq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + return !EvaluateEq(left, right); + } + + private object VisitEq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + return EvaluateEq(left, right); + } + + private bool EvaluateLt(object left, object right) + { + if (left is string && right is string) + { + var leftValue = _letCoercions[left.GetType()].ToString(left); + var rightValue = _letCoercions[right.GetType()].ToString(right); + return string.CompareOrdinal(leftValue, rightValue) < 0; + } + else if (left is string && right is VBAEmptyValue) + { + return string.CompareOrdinal((string)left, _letCoercions[right.GetType()].ToString(right)) < 0; + } + else if (right is string && left is VBAEmptyValue) + { + return string.CompareOrdinal((string)right, _letCoercions[left.GetType()].ToString(left)) < 0; + } + else + { + var leftValue = _letCoercions[left.GetType()].ToDecimal(left); + var rightValue = _letCoercions[right.GetType()].ToDecimal(right); + return leftValue < rightValue; + } + } + + private bool EvaluateEq(object left, object right) + { + if (left is string && right is string) + { + var leftValue = _letCoercions[left.GetType()].ToString(left); + var rightValue = _letCoercions[right.GetType()].ToString(right); + return leftValue == rightValue; + } + else if (left is string && right is VBAEmptyValue) + { + return (string)left == _letCoercions[right.GetType()].ToString(right); + } + else if (right is string && left is VBAEmptyValue) + { + return (string)right == _letCoercions[left.GetType()].ToString(left); + } + else + { + var leftValue = _letCoercions[left.GetType()].ToDecimal(left); + var rightValue = _letCoercions[right.GetType()].ToDecimal(right); + return leftValue == rightValue; + } + } + + private object VisitConcat(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null && right == null) + { + return null; + } + string leftValue = string.Empty; + if (left != null) + { + leftValue = _letCoercions[left.GetType()].ToString(left); + } + string rightValue = string.Empty; + if (right != null) + { + rightValue = _letCoercions[right.GetType()].ToString(right); + } + return leftValue + rightValue; + } + + private object VisitPow(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + var leftValue = _letCoercions[left.GetType()].ToDecimal(left); + var rightValue = _letCoercions[right.GetType()].ToDecimal(right); + return (decimal)Math.Pow(Convert.ToDouble(leftValue), Convert.ToDouble(rightValue)); + } + + private object VisitMod(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + var leftValue = _letCoercions[left.GetType()].ToDecimal(left); + var rightValue = _letCoercions[right.GetType()].ToDecimal(right); + return leftValue % rightValue; + } + + private object VisitIntDiv(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + var leftValue = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); + var rightValue = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); + return Math.Truncate((decimal)leftValue / rightValue); + } + + private object VisitMult(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + var leftValue = _letCoercions[left.GetType()].ToDecimal(left); + var rightValue = _letCoercions[right.GetType()].ToDecimal(right); + return leftValue * rightValue; + } + + private object VisitDiv(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + if (left == null || right == null) + { + return null; + } + var leftValue = _letCoercions[left.GetType()].ToDecimal(left); + var rightValue = _letCoercions[right.GetType()].ToDecimal(right); + return leftValue / rightValue; + } + + private object Visit(VBAConditionalCompilationParser.LiteralContext context) + { + if (context.HEXLITERAL() != null) + { + return VisitHexLiteral(context); + } + else if (context.OCTLITERAL() != null) + { + return VisitOctLiteral(context); + } + else if (context.DATELITERAL() != null) + { + return VisitDateLiteral(context); + } + else if (context.DOUBLELITERAL() != null) + { + return VisitDoubleLiteral(context); + } + else if (context.INTEGERLITERAL() != null) + { + return VisitIntegerLiteral(context); + } + else if (context.SHORTLITERAL() != null) + { + return VisitShortLiteral(context); + } + else if (context.STRINGLITERAL() != null) + { + return VisitStringLiteral(context); + } + else if (context.TRUE() != null) + { + return true; + } + else if (context.FALSE() != null) + { + return false; + } + else if (context.NOTHING() != null || context.NULL() != null) + { + return null; + } + else if (context.EMPTY() != null) + { + return VBAEmptyValue.Value; + } + throw new Exception(string.Format("Unexpected literal encountered: {0}", context.GetText())); + } + + private object VisitStringLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + var str = context.STRINGLITERAL().GetText(); + // Remove quotes + return str.Substring(1, str.Length - 2); + } + + private object VisitShortLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + string literal = context.SHORTLITERAL().GetText(); + return decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", "")); + } + + private object VisitIntegerLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + string literal = context.INTEGERLITERAL().GetText(); + return decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float); + } + + private object VisitDoubleLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + string literal = context.DOUBLELITERAL().GetText(); + return decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float); + } + + private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + string literal = context.DATELITERAL().GetText(); + var stream = new AntlrInputStream(literal); + var lexer = new VBADateLexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBADateParser(tokens); + var dateLiteral = parser.dateLiteral(); + var dateOrTime = dateLiteral.dateOrTime(); + int year; + int month; + int day; + int hours; + int mins; + int seconds; + + Predicate legalMonth = (x) => x >= 0 && x <= 12; + Func legalDay = (m, d, y) => + { + bool legalYear = y >= 0 && y <= 32767; + bool legalM = legalMonth(m); + bool legalD = false; + if (legalYear && legalM) + { + int daysInMonth = DateTime.DaysInMonth(y, m); + legalD = d >= 1 && d <= daysInMonth; + } + return legalYear && legalM && legalD; + }; + + Func yearFunc = (x) => + { + if (x >= 0 && x <= 29) + { + return x + 2000; + } + else if (x >= 30 && x <= 99) + { + return x + 1900; + } + else + { + return x; + } + }; + + int CY = DateTime.Now.Year; + + if (dateOrTime.dateValue() == null) + { + year = 1899; + month = 12; + day = 30; + } + else + { + var dateValue = dateOrTime.dateValue(); + var L = dateValue.dateValuePart()[0]; + var M = dateValue.dateValuePart()[1]; + VBADateParser.DateValuePartContext R = null; + if (dateValue.dateValuePart().Count == 3) + { + R = dateValue.dateValuePart()[2]; + } + if (L.DIGIT() != null && M.DIGIT() != null && R == null) + { + var LNumber = int.Parse(L.GetText()); + var MNumber = int.Parse(M.GetText()); + if (legalMonth(LNumber) && legalDay(LNumber, MNumber, CY)) + { + month = LNumber; + day = MNumber; + year = CY; + } + else if ((legalMonth(MNumber) && legalDay(MNumber, LNumber, CY))) + { + month = MNumber; + day = LNumber; + year = CY; + } + else if (legalMonth(LNumber)) + { + month = LNumber; + day = 1; + year = MNumber; + } + else if (legalMonth(MNumber)) + { + month = MNumber; + day = 1; + year = LNumber; + } + else + { + throw new Exception("Invalid date: " + dateLiteral.GetText()); + } + } + else if ((L.DIGIT() != null && M.DIGIT() != null && R != null) && R.DIGIT() != null) + { + var LNumber = int.Parse(L.GetText()); + var MNumber = int.Parse(M.GetText()); + var RNumber = int.Parse(R.GetText()); + if (legalMonth(LNumber) && legalDay(LNumber, MNumber, yearFunc(RNumber))) + { + month = LNumber; + day = MNumber; + year = yearFunc(RNumber); + } + else if (legalMonth(MNumber) && legalDay(MNumber, RNumber, yearFunc(LNumber))) + { + month = MNumber; + day = RNumber; + year = yearFunc(LNumber); + } + else if (legalMonth(MNumber) && legalDay(MNumber, LNumber, yearFunc(RNumber))) + { + month = MNumber; + day = LNumber; + year = yearFunc(RNumber); + } + else + { + throw new Exception("Invalid date: " + dateLiteral.GetText()); + } + } + else if ((L.DIGIT() == null || M.DIGIT() == null) && R == null) + { + int N; + string monthName; + if (L.DIGIT() != null) + { + N = int.Parse(L.GetText()); + monthName = M.GetText(); + } + else + { + N = int.Parse(M.GetText()); + monthName = L.GetText(); + } + int monthNameNumber; + if (monthName.Length == 3) + { + monthNameNumber = DateTime.ParseExact(monthName, "MMM", CultureInfo.InvariantCulture).Month; + } + else + { + monthNameNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.InvariantCulture).Month; + } + if (legalDay(monthNameNumber, N, CY)) + { + month = monthNameNumber; + day = N; + year = CY; + } + else + { + month = monthNameNumber; + day = 1; + year = CY; + } + } + else + { + int N1; + int N2; + string monthName; + if (L.DIGIT() == null) + { + monthName = L.GetText(); + N1 = int.Parse(M.GetText()); + N2 = int.Parse(R.GetText()); + } + else if (M.DIGIT() == null) + { + monthName = M.GetText(); + N1 = int.Parse(L.GetText()); + N2 = int.Parse(R.GetText()); + } + else + { + monthName = R.GetText(); + N1 = int.Parse(L.GetText()); + N2 = int.Parse(M.GetText()); + } + int monthNameNumber; + if (monthName.Length == 3) + { + monthNameNumber = DateTime.ParseExact(monthName, "MMM", CultureInfo.InvariantCulture).Month; + } + else + { + monthNameNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.InvariantCulture).Month; + } + if (legalDay(monthNameNumber, N1, yearFunc(N2))) + { + month = monthNameNumber; + day = N1; + year = yearFunc(N2); + } + else if (legalDay(monthNameNumber, N2, yearFunc(N1))) + { + month = monthNameNumber; + day = N2; + year = yearFunc(N1); + } + else + { + throw new Exception("Invalid date: " + dateLiteral.GetText()); + } + } + } + + if (dateOrTime.timeValue() == null) + { + hours = 0; + mins = 0; + seconds = 0; + } + else + { + var timeValue = dateOrTime.timeValue(); + hours = int.Parse(timeValue.timeValuePart()[0].GetText()); + if (timeValue.timeValuePart().Count == 1) + { + mins = 0; + } + else + { + mins = int.Parse(timeValue.timeValuePart()[1].GetText()); + } + if (timeValue.timeValuePart().Count < 3) + { + seconds = 0; + } + else + { + seconds = int.Parse(timeValue.timeValuePart()[2].GetText()); + } + var amPm = timeValue.AMPM(); + if (amPm != null && (amPm.GetText().ToUpper() == "P" || amPm.GetText().ToUpper() == "PM") && hours >= 0 && hours <= 11) + { + hours += 12; + } + else if (amPm != null && (amPm.GetText().ToUpper() == "A" || amPm.GetText().ToUpper() == "AM") && hours == 12) + { + hours = 0; + } + } + + var text = dateLiteral.GetText(); + var date = new DateTime(year, month, day, hours, mins, seconds); + return date; + } + + private object VisitOctLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + string literal = context.OCTLITERAL().GetText(); + literal = literal.Replace("&O", "").Replace("&", ""); + return (decimal)Convert.ToInt32(literal, 8); + } + + private object VisitHexLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + string literal = context.HEXLITERAL().GetText(); + literal = literal.Replace("&H", "").Replace("&", ""); + return (decimal)int.Parse(literal, System.Globalization.NumberStyles.HexNumber); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBALike.g4 b/Rubberduck.Parsing/Preprocessing/VBALike.g4 new file mode 100644 index 0000000000..d2ef633dd4 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALike.g4 @@ -0,0 +1,18 @@ +grammar VBALike; + +compilationUnit : likePatternString EOF; + +likePatternString : likePatternElement*; +likePatternElement : NORMALCHAR | QUESTIONMARK | HASH | STAR | likePatternCharlist; +likePatternCharlist : L_SQUARE_BRACKET EXCLAMATION? DASH? likePatternCharlistElement* DASH? R_SQUARE_BRACKET; +likePatternCharlistElement : NORMALCHAR | likePatternCharlistRange; +likePatternCharlistRange : NORMALCHAR DASH NORMALCHAR; + +QUESTIONMARK : '?'; +HASH : '#'; +STAR : '*'; +L_SQUARE_BRACKET : '['; +R_SQUARE_BRACKET : ']'; +DASH : '-'; +EXCLAMATION : '!'; +NORMALCHAR : ~[?#*[\]-!]; \ No newline at end of file diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs b/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs new file mode 100644 index 0000000000..0ab3054f94 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs @@ -0,0 +1,127 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBALike.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Like { + +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.3")] +[System.CLSCompliant(false)] +public partial class VBALikeBaseListener : IVBALikeListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLikePatternString([NotNull] VBALikeParser.LikePatternStringContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLikePatternString([NotNull] VBALikeParser.LikePatternStringContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLikePatternCharlist([NotNull] VBALikeParser.LikePatternCharlistContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLikePatternCharlist([NotNull] VBALikeParser.LikePatternCharlistContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLikePatternCharlistElement([NotNull] VBALikeParser.LikePatternCharlistElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLikePatternCharlistElement([NotNull] VBALikeParser.LikePatternCharlistElementContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLikePatternCharlistRange([NotNull] VBALikeParser.LikePatternCharlistRangeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLikePatternCharlistRange([NotNull] VBALikeParser.LikePatternCharlistRangeContext 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) { } +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs new file mode 100644 index 0000000000..9411cc514f --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs @@ -0,0 +1,101 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBALike.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Like { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// +/// This class provides an empty implementation of , +/// which can be extended to create a visitor which only needs to handle a subset +/// of the available methods. +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBALikeBaseVisitor : AbstractParseTreeVisitor, IVBALikeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLikePatternString([NotNull] VBALikeParser.LikePatternStringContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLikePatternCharlist([NotNull] VBALikeParser.LikePatternCharlistContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLikePatternCharlistElement([NotNull] VBALikeParser.LikePatternCharlistElementContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLikePatternCharlistRange([NotNull] VBALikeParser.LikePatternCharlistRangeContext context) { return VisitChildren(context); } +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs b/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs new file mode 100644 index 0000000000..bcad3d9ca7 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs @@ -0,0 +1,80 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBALike.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Like { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBALikeLexer : Lexer { + public const int + QUESTIONMARK=1, HASH=2, STAR=3, L_SQUARE_BRACKET=4, R_SQUARE_BRACKET=5, + DASH=6, EXCLAMATION=7, NORMALCHAR=8; + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] tokenNames = { + "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", + "'\\u0006'", "'\\u0007'", "'\b'" + }; + public static readonly string[] ruleNames = { + "QUESTIONMARK", "HASH", "STAR", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", + "DASH", "EXCLAMATION", "NORMALCHAR" + }; + + + public VBALikeLexer(ICharStream input) + : base(input) + { + _interp = new LexerATNSimulator(this,_ATN); + } + + public override string GrammarFileName { get { return "VBALike.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\n#\b\x1\x4\x2\t"+ + "\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4\t"+ + "\t\t\x3\x2\x3\x2\x3\x3\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a"+ + "\x3\a\x3\b\x3\b\x3\t\x3\t\x2\x2\x2\n\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6"+ + "\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x3\x2\x3\x6\x2%%,,\x41\x41]^\"\x2\x3\x3"+ + "\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3"+ + "\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x3\x13"+ + "\x3\x2\x2\x2\x5\x15\x3\x2\x2\x2\a\x17\x3\x2\x2\x2\t\x19\x3\x2\x2\x2\v"+ + "\x1B\x3\x2\x2\x2\r\x1D\x3\x2\x2\x2\xF\x1F\x3\x2\x2\x2\x11!\x3\x2\x2\x2"+ + "\x13\x14\a\x41\x2\x2\x14\x4\x3\x2\x2\x2\x15\x16\a%\x2\x2\x16\x6\x3\x2"+ + "\x2\x2\x17\x18\a,\x2\x2\x18\b\x3\x2\x2\x2\x19\x1A\a]\x2\x2\x1A\n\x3\x2"+ + "\x2\x2\x1B\x1C\a_\x2\x2\x1C\f\x3\x2\x2\x2\x1D\x1E\a/\x2\x2\x1E\xE\x3\x2"+ + "\x2\x2\x1F \a#\x2\x2 \x10\x3\x2\x2\x2!\"\n\x2\x2\x2\"\x12\x3\x2\x2\x2"+ + "\x3\x2\x2"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs b/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs new file mode 100644 index 0000000000..25101f3f82 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs @@ -0,0 +1,98 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBALike.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Like { +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.3")] +[System.CLSCompliant(false)] +public interface IVBALikeListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLikePatternString([NotNull] VBALikeParser.LikePatternStringContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLikePatternString([NotNull] VBALikeParser.LikePatternStringContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLikePatternCharlist([NotNull] VBALikeParser.LikePatternCharlistContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLikePatternCharlist([NotNull] VBALikeParser.LikePatternCharlistContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLikePatternCharlistElement([NotNull] VBALikeParser.LikePatternCharlistElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLikePatternCharlistElement([NotNull] VBALikeParser.LikePatternCharlistElementContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLikePatternCharlistRange([NotNull] VBALikeParser.LikePatternCharlistRangeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLikePatternCharlistRange([NotNull] VBALikeParser.LikePatternCharlistRangeContext context); +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs b/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs new file mode 100644 index 0000000000..7377df8a8b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs @@ -0,0 +1,472 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBALike.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Like { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using System.Collections.Generic; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBALikeParser : Parser { + public const int + QUESTIONMARK=1, HASH=2, STAR=3, L_SQUARE_BRACKET=4, R_SQUARE_BRACKET=5, + DASH=6, EXCLAMATION=7, NORMALCHAR=8; + public static readonly string[] tokenNames = { + "", "'?'", "'#'", "'*'", "'['", "']'", "'-'", "'!'", "NORMALCHAR" + }; + public const int + RULE_compilationUnit = 0, RULE_likePatternString = 1, RULE_likePatternElement = 2, + RULE_likePatternCharlist = 3, RULE_likePatternCharlistElement = 4, RULE_likePatternCharlistRange = 5; + public static readonly string[] ruleNames = { + "compilationUnit", "likePatternString", "likePatternElement", "likePatternCharlist", + "likePatternCharlistElement", "likePatternCharlistRange" + }; + + public override string GrammarFileName { get { return "VBALike.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public VBALikeParser(ITokenStream input) + : base(input) + { + _interp = new ParserATNSimulator(this,_ATN); + } + public partial class CompilationUnitContext : ParserRuleContext { + public ITerminalNode Eof() { return GetToken(VBALikeParser.Eof, 0); } + public LikePatternStringContext likePatternString() { + return GetRuleContext(0); + } + public CompilationUnitContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_compilationUnit; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterCompilationUnit(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitCompilationUnit(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitCompilationUnit(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CompilationUnitContext compilationUnit() { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, State); + EnterRule(_localctx, 0, RULE_compilationUnit); + try { + EnterOuterAlt(_localctx, 1); + { + State = 12; likePatternString(); + State = 13; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LikePatternStringContext : ParserRuleContext { + public IReadOnlyList likePatternElement() { + return GetRuleContexts(); + } + public LikePatternElementContext likePatternElement(int i) { + return GetRuleContext(i); + } + public LikePatternStringContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_likePatternString; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterLikePatternString(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitLikePatternString(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitLikePatternString(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LikePatternStringContext likePatternString() { + LikePatternStringContext _localctx = new LikePatternStringContext(_ctx, State); + EnterRule(_localctx, 2, RULE_likePatternString); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 18; + _errHandler.Sync(this); + _la = _input.La(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << QUESTIONMARK) | (1L << HASH) | (1L << STAR) | (1L << L_SQUARE_BRACKET) | (1L << NORMALCHAR))) != 0)) { + { + { + State = 15; likePatternElement(); + } + } + State = 20; + _errHandler.Sync(this); + _la = _input.La(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LikePatternElementContext : ParserRuleContext { + public ITerminalNode QUESTIONMARK() { return GetToken(VBALikeParser.QUESTIONMARK, 0); } + public ITerminalNode NORMALCHAR() { return GetToken(VBALikeParser.NORMALCHAR, 0); } + public ITerminalNode STAR() { return GetToken(VBALikeParser.STAR, 0); } + public LikePatternCharlistContext likePatternCharlist() { + return GetRuleContext(0); + } + public ITerminalNode HASH() { return GetToken(VBALikeParser.HASH, 0); } + public LikePatternElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_likePatternElement; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterLikePatternElement(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitLikePatternElement(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitLikePatternElement(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LikePatternElementContext likePatternElement() { + LikePatternElementContext _localctx = new LikePatternElementContext(_ctx, State); + EnterRule(_localctx, 4, RULE_likePatternElement); + try { + State = 26; + switch (_input.La(1)) { + case NORMALCHAR: + EnterOuterAlt(_localctx, 1); + { + State = 21; Match(NORMALCHAR); + } + break; + case QUESTIONMARK: + EnterOuterAlt(_localctx, 2); + { + State = 22; Match(QUESTIONMARK); + } + break; + case HASH: + EnterOuterAlt(_localctx, 3); + { + State = 23; Match(HASH); + } + break; + case STAR: + EnterOuterAlt(_localctx, 4); + { + State = 24; Match(STAR); + } + break; + case L_SQUARE_BRACKET: + EnterOuterAlt(_localctx, 5); + { + State = 25; likePatternCharlist(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LikePatternCharlistContext : ParserRuleContext { + public LikePatternCharlistElementContext likePatternCharlistElement(int i) { + return GetRuleContext(i); + } + public ITerminalNode EXCLAMATION() { return GetToken(VBALikeParser.EXCLAMATION, 0); } + public IReadOnlyList likePatternCharlistElement() { + return GetRuleContexts(); + } + public ITerminalNode L_SQUARE_BRACKET() { return GetToken(VBALikeParser.L_SQUARE_BRACKET, 0); } + public ITerminalNode DASH(int i) { + return GetToken(VBALikeParser.DASH, i); + } + public ITerminalNode R_SQUARE_BRACKET() { return GetToken(VBALikeParser.R_SQUARE_BRACKET, 0); } + public IReadOnlyList DASH() { return GetTokens(VBALikeParser.DASH); } + public LikePatternCharlistContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_likePatternCharlist; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterLikePatternCharlist(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitLikePatternCharlist(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitLikePatternCharlist(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LikePatternCharlistContext likePatternCharlist() { + LikePatternCharlistContext _localctx = new LikePatternCharlistContext(_ctx, State); + EnterRule(_localctx, 6, RULE_likePatternCharlist); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 28; Match(L_SQUARE_BRACKET); + State = 30; + _la = _input.La(1); + if (_la==EXCLAMATION) { + { + State = 29; Match(EXCLAMATION); + } + } + + State = 33; + switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { + case 1: + { + State = 32; Match(DASH); + } + break; + } + State = 38; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==NORMALCHAR) { + { + { + State = 35; likePatternCharlistElement(); + } + } + State = 40; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 42; + _la = _input.La(1); + if (_la==DASH) { + { + State = 41; Match(DASH); + } + } + + State = 44; Match(R_SQUARE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LikePatternCharlistElementContext : ParserRuleContext { + public ITerminalNode NORMALCHAR() { return GetToken(VBALikeParser.NORMALCHAR, 0); } + public LikePatternCharlistRangeContext likePatternCharlistRange() { + return GetRuleContext(0); + } + public LikePatternCharlistElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_likePatternCharlistElement; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterLikePatternCharlistElement(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitLikePatternCharlistElement(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitLikePatternCharlistElement(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LikePatternCharlistElementContext likePatternCharlistElement() { + LikePatternCharlistElementContext _localctx = new LikePatternCharlistElementContext(_ctx, State); + EnterRule(_localctx, 8, RULE_likePatternCharlistElement); + try { + State = 48; + switch ( Interpreter.AdaptivePredict(_input,6,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 46; Match(NORMALCHAR); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 47; likePatternCharlistRange(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LikePatternCharlistRangeContext : ParserRuleContext { + public ITerminalNode NORMALCHAR(int i) { + return GetToken(VBALikeParser.NORMALCHAR, i); + } + public IReadOnlyList NORMALCHAR() { return GetTokens(VBALikeParser.NORMALCHAR); } + public ITerminalNode DASH() { return GetToken(VBALikeParser.DASH, 0); } + public LikePatternCharlistRangeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_likePatternCharlistRange; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterLikePatternCharlistRange(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitLikePatternCharlistRange(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitLikePatternCharlistRange(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LikePatternCharlistRangeContext likePatternCharlistRange() { + LikePatternCharlistRangeContext _localctx = new LikePatternCharlistRangeContext(_ctx, State); + EnterRule(_localctx, 10, RULE_likePatternCharlistRange); + try { + EnterOuterAlt(_localctx, 1); + { + State = 50; Match(NORMALCHAR); + State = 51; Match(DASH); + State = 52; Match(NORMALCHAR); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\n\x39\x4\x2\t\x2"+ + "\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x3\x2\x3\x2\x3\x2"+ + "\x3\x3\a\x3\x13\n\x3\f\x3\xE\x3\x16\v\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4"+ + "\x5\x4\x1D\n\x4\x3\x5\x3\x5\x5\x5!\n\x5\x3\x5\x5\x5$\n\x5\x3\x5\a\x5\'"+ + "\n\x5\f\x5\xE\x5*\v\x5\x3\x5\x5\x5-\n\x5\x3\x5\x3\x5\x3\x6\x3\x6\x5\x6"+ + "\x33\n\x6\x3\a\x3\a\x3\a\x3\a\x3\a\x2\x2\x2\b\x2\x2\x4\x2\x6\x2\b\x2\n"+ + "\x2\f\x2\x2\x2<\x2\xE\x3\x2\x2\x2\x4\x14\x3\x2\x2\x2\x6\x1C\x3\x2\x2\x2"+ + "\b\x1E\x3\x2\x2\x2\n\x32\x3\x2\x2\x2\f\x34\x3\x2\x2\x2\xE\xF\x5\x4\x3"+ + "\x2\xF\x10\a\x2\x2\x3\x10\x3\x3\x2\x2\x2\x11\x13\x5\x6\x4\x2\x12\x11\x3"+ + "\x2\x2\x2\x13\x16\x3\x2\x2\x2\x14\x12\x3\x2\x2\x2\x14\x15\x3\x2\x2\x2"+ + "\x15\x5\x3\x2\x2\x2\x16\x14\x3\x2\x2\x2\x17\x1D\a\n\x2\x2\x18\x1D\a\x3"+ + "\x2\x2\x19\x1D\a\x4\x2\x2\x1A\x1D\a\x5\x2\x2\x1B\x1D\x5\b\x5\x2\x1C\x17"+ + "\x3\x2\x2\x2\x1C\x18\x3\x2\x2\x2\x1C\x19\x3\x2\x2\x2\x1C\x1A\x3\x2\x2"+ + "\x2\x1C\x1B\x3\x2\x2\x2\x1D\a\x3\x2\x2\x2\x1E \a\x6\x2\x2\x1F!\a\t\x2"+ + "\x2 \x1F\x3\x2\x2\x2 !\x3\x2\x2\x2!#\x3\x2\x2\x2\"$\a\b\x2\x2#\"\x3\x2"+ + "\x2\x2#$\x3\x2\x2\x2$(\x3\x2\x2\x2%\'\x5\n\x6\x2&%\x3\x2\x2\x2\'*\x3\x2"+ + "\x2\x2(&\x3\x2\x2\x2()\x3\x2\x2\x2),\x3\x2\x2\x2*(\x3\x2\x2\x2+-\a\b\x2"+ + "\x2,+\x3\x2\x2\x2,-\x3\x2\x2\x2-.\x3\x2\x2\x2./\a\a\x2\x2/\t\x3\x2\x2"+ + "\x2\x30\x33\a\n\x2\x2\x31\x33\x5\f\a\x2\x32\x30\x3\x2\x2\x2\x32\x31\x3"+ + "\x2\x2\x2\x33\v\x3\x2\x2\x2\x34\x35\a\n\x2\x2\x35\x36\a\b\x2\x2\x36\x37"+ + "\a\n\x2\x2\x37\r\x3\x2\x2\x2\t\x14\x1C #(,\x32"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs new file mode 100644 index 0000000000..308001a43c --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs @@ -0,0 +1,75 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.3 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from C:\Users\Splinter\Documents\Visual Studio 2015\Projects\TestProj\TestProj\VBALike.g4 by ANTLR 4.3 + +// 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 + +namespace Rubberduck.Parsing.Like { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; + +/// +/// This interface defines a complete generic visitor for a parse tree produced +/// by . +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public interface IVBALikeVisitor : IParseTreeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLikePatternString([NotNull] VBALikeParser.LikePatternStringContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLikePatternCharlist([NotNull] VBALikeParser.LikePatternCharlistContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLikePatternCharlistElement([NotNull] VBALikeParser.LikePatternCharlistElementContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLikePatternCharlistRange([NotNull] VBALikeParser.LikePatternCharlistRangeContext context); +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs b/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs new file mode 100644 index 0000000000..756d1c2007 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAPredefinedCompilationConstants + { + private readonly string _vbVersion; + + public VBAPredefinedCompilationConstants(string vbVersion) + { + _vbVersion = vbVersion; + } + + public const string VBA6_NAME = "VBA6"; + public const string VBA7_NAME = "VBA7"; + public const string WIN64_NAME = "Win64"; + public const string WIN32_NAME = "Win32"; + public const string WIN16_NAME = "Win16"; + public const string MAC_NAME = "Mac"; + + public bool VBA6 + { + get + { + return _vbVersion.StartsWith("6."); + } + } + + public bool VBA7 + { + get + { + return _vbVersion.StartsWith("7."); + } + } + + public bool Win64 + { + get + { + return Environment.Is64BitOperatingSystem; + } + } + + public bool Win32 + { + get + { + return true; + } + } + + public bool Win16 + { + get + { + return false; + } + } + + public bool Mac + { + get + { + return false; + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs new file mode 100644 index 0000000000..5990a53ff0 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs @@ -0,0 +1,37 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAPreprocessor + { + private readonly string _vbaVersion; + + public VBAPreprocessor(string vbaVersion) + { + _vbaVersion = vbaVersion; + } + + public string Process(string unprocessedCode) + { + try + { + SymbolTable symbolTable = new SymbolTable(); + var stream = new AntlrInputStream(unprocessedCode); + var lexer = new VBAConditionalCompilationLexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBAConditionalCompilationParser(tokens); + parser.AddErrorListener(new ExceptionErrorListener()); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion)); + var tree = parser.compilationUnit(); + var preprocessedModuleBody = (string)evaluator.Visit(tree); + return preprocessedModuleBody; + } + catch (Exception ex) + { + throw new VBAPreprocessorException("Exception encountered during preprocessing.", ex); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorException.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorException.cs new file mode 100644 index 0000000000..28ef62313b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorException.cs @@ -0,0 +1,13 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + [Serializable] + public class VBAPreprocessorException : Exception + { + public VBAPreprocessorException(string message, Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs new file mode 100644 index 0000000000..5c718ecb44 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs @@ -0,0 +1,129 @@ +using Antlr4.Runtime; +using Antlr4.Runtime.Misc; +using Rubberduck.Parsing.Date; +using Rubberduck.Parsing.Like; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAPreprocessorVisitor : VBAConditionalCompilationBaseVisitor + { + private readonly VBAExpressionEvaluator _evaluator; + + public VBAPreprocessorVisitor(SymbolTable symbolTable, VBAPredefinedCompilationConstants predefinedConstants) + { + _evaluator = new VBAExpressionEvaluator(symbolTable); + _evaluator.AddConstant(VBAPredefinedCompilationConstants.VBA6_NAME, predefinedConstants.VBA6); + _evaluator.AddConstant(VBAPredefinedCompilationConstants.VBA7_NAME, predefinedConstants.VBA7); + _evaluator.AddConstant(VBAPredefinedCompilationConstants.WIN64_NAME, predefinedConstants.Win64); + _evaluator.AddConstant(VBAPredefinedCompilationConstants.WIN32_NAME, predefinedConstants.Win32); + _evaluator.AddConstant(VBAPredefinedCompilationConstants.WIN16_NAME, predefinedConstants.Win16); + _evaluator.AddConstant(VBAPredefinedCompilationConstants.MAC_NAME, predefinedConstants.Mac); + } + + public override object VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) + { + return Visit(context.ccBlock()); + } + + public override object VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) + { + return context.GetText(); + } + + public override object VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) + { + var results = new List(); + if (context.children == null) + { + return string.Empty; + } + foreach (var child in context.children) + { + results.Add(Visit(child)); + } + return string.Join(string.Empty, results); + } + + public override object VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) + { + // 3.4.1: If is a with a , the is ignored. + var name = context.ccVarLhs().GetText(); + _evaluator.EvaluateConstant(name, context.ccExpression()); + return MarkLineAsDead(context.GetText()); + } + + public override object VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) + { + StringBuilder builder = new StringBuilder(); + List conditions = new List(); + builder.Append(MarkLineAsDead(context.ccIf().GetText())); + var ifIsAlive = _evaluator.EvaluateCondition(context.ccIf().ccExpression()); + conditions.Add(ifIsAlive); + var ifBlock = (string)Visit(context.ccBlock()); + builder.Append(EvaluateLiveliness(ifBlock, ifIsAlive)); + foreach (var elseIfBlock in context.ccElseIfBlock()) + { + builder.Append(MarkLineAsDead(elseIfBlock.ccElseIf().GetText())); + var elseIfIsAlive = _evaluator.EvaluateCondition(elseIfBlock.ccElseIf().ccExpression()); + conditions.Add(elseIfIsAlive); + var block = (string)Visit(elseIfBlock.ccBlock()); + builder.Append(EvaluateLiveliness(block, elseIfIsAlive)); + } + if (context.ccElseBlock() != null) + { + builder.Append(MarkLineAsDead(context.ccElseBlock().ccElse().GetText())); + var block = (string)Visit(context.ccElseBlock().ccBlock()); + var elseIsAlive = conditions.All(condition => !condition); + builder.Append(EvaluateLiveliness(block, elseIsAlive)); + } + builder.Append(MarkLineAsDead(context.ccEndIf().GetText())); + return builder.ToString(); + } + + private string EvaluateLiveliness(string code, bool isAlive) + { + if (isAlive) + { + return code; + } + else + { + return MarkAsDead(code); + } + } + + private string MarkAsDead(string code) + { + bool hasNewLine = false; + if (code.EndsWith(Environment.NewLine)) + { + hasNewLine = true; + } + // Remove parsed new line. + code = code.TrimEnd('\r', '\n'); + var lines = code.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); + var result = string.Join(Environment.NewLine, lines.Select(_ => string.Empty)); + if (hasNewLine) + { + result += Environment.NewLine; + } + return result; + } + + private string MarkLineAsDead(string line) + { + var result = string.Empty; + if (line.EndsWith(Environment.NewLine)) + { + result += Environment.NewLine; + } + return result; + } + } +} diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 3c877d29e2..9daf9c6dfc 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -69,6 +69,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -110,6 +143,9 @@ Rubberduck.Parsing.Grammar Always + + + diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index b051382066..7f6dd30318 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -16,6 +16,7 @@ using Rubberduck.Parsing.Symbols; using Rubberduck.VBEditor; using Rubberduck.VBEditor.Extensions; +using Rubberduck.Parsing.Preprocessing; namespace Rubberduck.Parsing.VBA { @@ -148,7 +149,7 @@ private void Parse(VBComponent vbComponent, CancellationToken token, TokenStream var code = rewriter == null ? string.Join(Environment.NewLine, vbComponent.CodeModule.GetSanitizedCode()) : rewriter.GetText(); - // note: removes everything ignored by the parser, e.g. line numbers and comments + // note: removes everything ignored by the parser, e.g. line numbers and comments ParseInternal(component, code, token); } @@ -221,8 +222,18 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok token.ThrowIfCancellationRequested(); + var preprocessor = new VBAPreprocessor(_vbe.Version); + string preprocessedModuleBody = code; + try + { + preprocessedModuleBody = preprocessor.Process(code); + } + catch (VBAPreprocessorException ex) + { + // Fall back to not doing any preprocessing at all. + } ITokenStream stream; - var tree = ParseInternal(code, listeners, out stream); + var tree = ParseInternal(preprocessedModuleBody, listeners, out stream); _state.AddTokenStream(vbComponent, stream); _state.AddParseTree(vbComponent, tree); @@ -277,7 +288,7 @@ private IParseTree ParseInternal(ICharStream stream, IEnumerable= 1 +#Const b = 1 >= 1 +#Const c = 0 >= 1 +#Const d = False >= True +#Const e = False >= False +#Const f = True >= False +#Const g = ""b"" >= ""a"" +#Const h = ""b"" >= ""b"" +#Const i = ""a"" >= ""b"" +#Const j = ""2"" >= 1 +#Const k = ""2"" >= 2 +#Const l = ""1"" >= 2 +#Const m = #01-01-2000# >= #01-01-1900# +#Const n = #01-01-2000# >= #01-01-2000# +#Const o = #01-01-1900# >= #01-01-2000# +#Const p = Null >= Null +#Const q = 1 >= Null +#Const r = Null >= 1 +#Const s = ""a"" >= Empty +#Const t = Empty >= Empty +"; + var result = Preprocess(code); + Assert.AreEqual(true, result.Item1.Get("a")); + Assert.AreEqual(true, result.Item1.Get("b")); + Assert.AreEqual(false, result.Item1.Get("c")); + Assert.AreEqual(true, result.Item1.Get("d")); + Assert.AreEqual(true, result.Item1.Get("e")); + Assert.AreEqual(false, result.Item1.Get("f")); + Assert.AreEqual(true, result.Item1.Get("g")); + Assert.AreEqual(true, result.Item1.Get("h")); + Assert.AreEqual(false, result.Item1.Get("i")); + Assert.AreEqual(true, result.Item1.Get("j")); + Assert.AreEqual(true, result.Item1.Get("k")); + Assert.AreEqual(false, result.Item1.Get("l")); + Assert.AreEqual(true, result.Item1.Get("m")); + Assert.AreEqual(true, result.Item1.Get("n")); + Assert.AreEqual(false, result.Item1.Get("o")); + Assert.AreEqual(null, result.Item1.Get("p")); + Assert.AreEqual(null, result.Item1.Get("q")); + Assert.AreEqual(null, result.Item1.Get("r")); + Assert.AreEqual(true, result.Item1.Get("s")); + Assert.AreEqual(true, result.Item1.Get("t")); + } + + [TestMethod] + public void TestGtOperator() + { + string code = @" +#Const a = 2 > 1 +#Const b = 1 > 1 +#Const c = 0 > 1 +#Const d = False > True +#Const e = False > False +#Const f = True > False +#Const g = ""b"" > ""a"" +#Const h = ""b"" > ""b"" +#Const i = ""a"" > ""b"" +#Const j = ""2"" > 1 +#Const k = ""2"" > 2 +#Const l = ""1"" > 2 +#Const m = #01-01-2000# > #01-01-1900# +#Const n = #01-01-2000# > #01-01-2000# +#Const o = #01-01-1900# > #01-01-2000# +#Const p = Null > Null +#Const q = 1 > Null +#Const r = Null > 1 +#Const s = ""a"" > Empty +#Const t = Empty > Empty +"; + var result = Preprocess(code); + Assert.AreEqual(true, result.Item1.Get("a")); + Assert.AreEqual(false, result.Item1.Get("b")); + Assert.AreEqual(false, result.Item1.Get("c")); + Assert.AreEqual(true, result.Item1.Get("d")); + Assert.AreEqual(false, result.Item1.Get("e")); + Assert.AreEqual(false, result.Item1.Get("f")); + Assert.AreEqual(true, result.Item1.Get("g")); + Assert.AreEqual(false, result.Item1.Get("h")); + Assert.AreEqual(false, result.Item1.Get("i")); + Assert.AreEqual(true, result.Item1.Get("j")); + Assert.AreEqual(false, result.Item1.Get("k")); + Assert.AreEqual(false, result.Item1.Get("l")); + Assert.AreEqual(true, result.Item1.Get("m")); + Assert.AreEqual(false, result.Item1.Get("n")); + Assert.AreEqual(false, result.Item1.Get("o")); + Assert.AreEqual(null, result.Item1.Get("p")); + Assert.AreEqual(null, result.Item1.Get("q")); + Assert.AreEqual(null, result.Item1.Get("r")); + Assert.AreEqual(true, result.Item1.Get("s")); + Assert.AreEqual(false, result.Item1.Get("t")); + } + + [TestMethod] + public void TestLeqOperator() + { + string code = @" +#Const a = 2 <= 1 +#Const b = 1 <= 1 +#Const c = 0 <= 1 +#Const d = False <= True +#Const e = False <= False +#Const f = True <= False +#Const g = ""b"" <= ""a"" +#Const h = ""b"" <= ""b"" +#Const i = ""a"" <= ""b"" +#Const j = ""2"" <= 1 +#Const k = ""2"" <= 2 +#Const l = ""1"" <= 2 +#Const m = #01-01-2000# <= #01-01-1900# +#Const n = #01-01-2000# <= #01-01-2000# +#Const o = #01-01-1900# <= #01-01-2000# +#Const p = Null <= Null +#Const q = 1 <= Null +#Const r = Null <= 1 +#Const s = ""a"" <= Empty +#Const t = Empty <= Empty +"; + var result = Preprocess(code); + Assert.AreEqual(false, result.Item1.Get("a")); + Assert.AreEqual(true, result.Item1.Get("b")); + Assert.AreEqual(true, result.Item1.Get("c")); + Assert.AreEqual(false, result.Item1.Get("d")); + Assert.AreEqual(true, result.Item1.Get("e")); + Assert.AreEqual(true, result.Item1.Get("f")); + Assert.AreEqual(false, result.Item1.Get("g")); + Assert.AreEqual(true, result.Item1.Get("h")); + Assert.AreEqual(true, result.Item1.Get("i")); + Assert.AreEqual(false, result.Item1.Get("j")); + Assert.AreEqual(true, result.Item1.Get("k")); + Assert.AreEqual(true, result.Item1.Get("l")); + Assert.AreEqual(false, result.Item1.Get("m")); + Assert.AreEqual(true, result.Item1.Get("n")); + Assert.AreEqual(true, result.Item1.Get("o")); + Assert.AreEqual(null, result.Item1.Get("p")); + Assert.AreEqual(null, result.Item1.Get("q")); + Assert.AreEqual(null, result.Item1.Get("r")); + Assert.AreEqual(false, result.Item1.Get("s")); + Assert.AreEqual(true, result.Item1.Get("t")); + } + + [TestMethod] + public void TestLtOperator() + { + string code = @" +#Const a = 2 < 1 +#Const b = 1 < 1 +#Const c = 0 < 1 +#Const d = False < True +#Const e = False < False +#Const f = True < False +#Const g = ""b"" < ""a"" +#Const h = ""b"" < ""b"" +#Const i = ""a"" < ""b"" +#Const j = ""2"" < 1 +#Const k = ""2"" < 2 +#Const l = ""1"" < 2 +#Const m = #01-01-2000# < #01-01-1900# +#Const n = #01-01-2000# < #01-01-2000# +#Const o = #01-01-1900# < #01-01-2000# +#Const p = Null < Null +#Const q = 1 < Null +#Const r = Null < 1 +#Const s = ""a"" < Empty +#Const t = Empty < Empty +"; + var result = Preprocess(code); + Assert.AreEqual(false, result.Item1.Get("a")); + Assert.AreEqual(false, result.Item1.Get("b")); + Assert.AreEqual(true, result.Item1.Get("c")); + Assert.AreEqual(false, result.Item1.Get("d")); + Assert.AreEqual(false, result.Item1.Get("e")); + Assert.AreEqual(true, result.Item1.Get("f")); + Assert.AreEqual(false, result.Item1.Get("g")); + Assert.AreEqual(false, result.Item1.Get("h")); + Assert.AreEqual(true, result.Item1.Get("i")); + Assert.AreEqual(false, result.Item1.Get("j")); + Assert.AreEqual(false, result.Item1.Get("k")); + Assert.AreEqual(true, result.Item1.Get("l")); + Assert.AreEqual(false, result.Item1.Get("m")); + Assert.AreEqual(false, result.Item1.Get("n")); + Assert.AreEqual(true, result.Item1.Get("o")); + Assert.AreEqual(null, result.Item1.Get("p")); + Assert.AreEqual(null, result.Item1.Get("q")); + Assert.AreEqual(null, result.Item1.Get("r")); + Assert.AreEqual(false, result.Item1.Get("s")); + Assert.AreEqual(false, result.Item1.Get("t")); + } + + [TestMethod] + public void TestEqOperator() + { + string code = @" +#Const a = 2 = 1 +#Const b = 1 = 1 +#Const c = False = True +#Const d = False = False +#Const e = ""b"" = ""a"" +#Const f = ""b"" = ""b"" +#Const g = ""2"" = 1 +#Const h = ""2"" = 2 +#Const i = #01-01-2000# = #01-01-1900# +#Const j = #01-01-2000# = #01-01-2000# +#Const k = Null = Null +#Const l = 1 = Null +#Const m = Null = 1 +#Const n = ""a"" = Empty +#Const o = Empty = Empty +"; + var result = Preprocess(code); + Assert.AreEqual(false, result.Item1.Get("a")); + Assert.AreEqual(true, result.Item1.Get("b")); + Assert.AreEqual(false, result.Item1.Get("c")); + Assert.AreEqual(true, result.Item1.Get("d")); + Assert.AreEqual(false, result.Item1.Get("e")); + Assert.AreEqual(true, result.Item1.Get("f")); + Assert.AreEqual(false, result.Item1.Get("g")); + Assert.AreEqual(true, result.Item1.Get("h")); + Assert.AreEqual(false, result.Item1.Get("i")); + Assert.AreEqual(true, result.Item1.Get("j")); + Assert.AreEqual(null, result.Item1.Get("k")); + Assert.AreEqual(null, result.Item1.Get("l")); + Assert.AreEqual(null, result.Item1.Get("m")); + Assert.AreEqual(false, result.Item1.Get("n")); + Assert.AreEqual(true, result.Item1.Get("o")); + } + + [TestMethod] + public void TestNeqOperator() + { + string code = @" +#Const a = 2 <> 1 +#Const b = 1 <> 1 +#Const c = False <> True +#Const d = False <> False +#Const e = ""b"" <> ""a"" +#Const f = ""b"" <> ""b"" +#Const g = ""2"" <> 1 +#Const h = ""2"" <> 2 +#Const i = #01-01-2000# <> #01-01-1900# +#Const j = #01-01-2000# <> #01-01-2000# +#Const k = Null <> Null +#Const l = 1 <> Null +#Const m = Null <> 1 +#Const n = ""a"" <> Empty +#Const o = Empty <> Empty +"; + var result = Preprocess(code); + Assert.AreEqual(true, result.Item1.Get("a")); + Assert.AreEqual(false, result.Item1.Get("b")); + Assert.AreEqual(true, result.Item1.Get("c")); + Assert.AreEqual(false, result.Item1.Get("d")); + Assert.AreEqual(true, result.Item1.Get("e")); + Assert.AreEqual(false, result.Item1.Get("f")); + Assert.AreEqual(true, result.Item1.Get("g")); + Assert.AreEqual(false, result.Item1.Get("h")); + Assert.AreEqual(true, result.Item1.Get("i")); + Assert.AreEqual(false, result.Item1.Get("j")); + Assert.AreEqual(null, result.Item1.Get("k")); + Assert.AreEqual(null, result.Item1.Get("l")); + Assert.AreEqual(null, result.Item1.Get("m")); + Assert.AreEqual(true, result.Item1.Get("n")); + Assert.AreEqual(false, result.Item1.Get("o")); + } + + [TestMethod] + public void TestConcatOperator() + { + string code = @" +#Const a = True & ""a"" +#Const b = Null & Null +#Const c = 1 & Null +#Const d = Null & 1 +#Const e = #01-01-1900# & 1 +#Const f = 1 & Empty +#Const g = Empty & 1 +#Const h = Empty & Empty +"; + var result = Preprocess(code); + Assert.AreEqual("Truea", result.Item1.Get("a")); + Assert.AreEqual(null, result.Item1.Get("b")); + Assert.AreEqual("1", result.Item1.Get("c")); + Assert.AreEqual("1", result.Item1.Get("d")); + Assert.AreEqual(new DateTime(1900, 1, 1).ToShortDateString() + "1", result.Item1.Get("e")); + Assert.AreEqual("1", result.Item1.Get("f")); + Assert.AreEqual("1", result.Item1.Get("g")); + Assert.AreEqual(string.Empty, result.Item1.Get("h")); + } + + [TestMethod] + public void TestPowOperator() + { + string code = @" +#Const a = 2 ^ 3 +#Const b = Empty ^ False +#Const c = 0 ^ #30-12-1899# +#Const d = Null ^ 3 +#Const e = 2 ^ Null +#Const f = Null ^ Null +"; + var result = Preprocess(code); + Assert.AreEqual(8m, result.Item1.Get("a")); + Assert.AreEqual(1m, result.Item1.Get("b")); + Assert.AreEqual(1m, result.Item1.Get("c")); + Assert.AreEqual(null, result.Item1.Get("d")); + Assert.AreEqual(null, result.Item1.Get("e")); + Assert.AreEqual(null, result.Item1.Get("f")); + } + + [TestMethod] + public void TestModOperator() + { + string code = @" +#Const a = 2 Mod True +#Const b = 10 Mod 3 +#Const c = 3 Mod #1/1/1900# +#Const d = Null Mod 3 +#Const e = 2 Mod Null +#Const f = Null Mod Null +"; + var result = Preprocess(code); + Assert.AreEqual(0m, result.Item1.Get("a")); + Assert.AreEqual(1m, result.Item1.Get("b")); + Assert.AreEqual(1m, result.Item1.Get("c")); + Assert.AreEqual(null, result.Item1.Get("d")); + Assert.AreEqual(null, result.Item1.Get("e")); + Assert.AreEqual(null, result.Item1.Get("f")); + } + + [TestMethod] + public void TestIntDivOperator() + { + string code = @" +#Const a = 5 \ 2 +#Const b = 5.1 \ 2 +#Const c = 4.9 \ 2 +#Const d = -5 \ 2 +#Const e = -5.1 \ 2 +#Const f = -4.9 \ 2 +#Const g = Null \ 3 +#Const h = 2 \ Null +#Const i = Null \ Null +"; + var result = Preprocess(code); + Assert.AreEqual(2m, result.Item1.Get("a")); + Assert.AreEqual(2m, result.Item1.Get("b")); + Assert.AreEqual(2m, result.Item1.Get("c")); + Assert.AreEqual(-2m, result.Item1.Get("d")); + Assert.AreEqual(-2m, result.Item1.Get("e")); + Assert.AreEqual(-2m, result.Item1.Get("f")); + Assert.AreEqual(null, result.Item1.Get("g")); + Assert.AreEqual(null, result.Item1.Get("h")); + Assert.AreEqual(null, result.Item1.Get("i")); + } + + [TestMethod] + public void TestMultOperator() + { + string code = @" +#Const a = 5.5 * 2 +#Const b = 5.5 * True +#Const c = Null * 3 +#Const d = 2 * Null +#Const e = Null * Null +"; + var result = Preprocess(code); + Assert.AreEqual(11m, result.Item1.Get("a")); + Assert.AreEqual(-5.5m, result.Item1.Get("b")); + Assert.AreEqual(null, result.Item1.Get("c")); + Assert.AreEqual(null, result.Item1.Get("d")); + Assert.AreEqual(null, result.Item1.Get("e")); + } + + [TestMethod] + public void TestDivOperator() + { + string code = @" +#Const a = 5.5 / 2 +#Const b = 5.5 / True +#Const c = Null / 3 +#Const d = 2 / Null +#Const e = Null / Null +"; + var result = Preprocess(code); + Assert.AreEqual(2.75m, result.Item1.Get("a")); + Assert.AreEqual(-5.5m, result.Item1.Get("b")); + Assert.AreEqual(null, result.Item1.Get("c")); + Assert.AreEqual(null, result.Item1.Get("d")); + Assert.AreEqual(null, result.Item1.Get("e")); + } + + [TestMethod] + public void TestStringLiteral() + { + string code = @" +#Const a = ""abc"" +#Const b = ""a""""b"" +"; + var result = Preprocess(code); + Assert.AreEqual("abc", result.Item1.Get("a")); + Assert.AreEqual("a\"\"b", result.Item1.Get("b")); + } + + [TestMethod] + public void TestNumberLiteral() + { + string code = @" +#Const a = &HAF$ 175 +#Const b = &O423# 275 +#Const c = -50.323e5 +"; + var result = Preprocess(code); + Assert.AreEqual(175m, result.Item1.Get("a")); + Assert.AreEqual(275m, result.Item1.Get("b")); + Assert.AreEqual(-5032300m, result.Item1.Get("c")); + } + + [TestMethod] + public void TestDateLiteral() + { + string code = @" +#Const a = #30-12-1900# +#Const b = #12-30-1900# +#Const c = #12-30# +#Const d = #12:00# +"; + var result = Preprocess(code); + Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("a")); + Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("b")); + Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 30), result.Item1.Get("c")); + Assert.AreEqual(new DateTime(1899, 12, 30, 12, 0, 0), result.Item1.Get("d")); + } + + [TestMethod] + public void TestKeywordLiterals() + { + string code = @" +#Const a = true +#Const b = false +#Const c = Nothing +#Const d = Null +#Const e = Empty +"; + var result = Preprocess(code); + Assert.AreEqual(true, result.Item1.Get("a")); + Assert.AreEqual(false, result.Item1.Get("b")); + Assert.AreEqual(null, result.Item1.Get("c")); + Assert.AreEqual(null, result.Item1.Get("d")); + Assert.AreEqual(VBAEmptyValue.Value, result.Item1.Get("e")); + } + + [TestMethod] + public void TestPreprocessingLiveDeadCode() + { + string code = @" +#Const a = 2 + 5 + +#If a = 7 Then + Public Sub Alive() + #If True Then + Debug.Print 2 + #ElseIf 1 = 2 Then + Debug.Print 4 + #End If + End Sub +#Else + Public Sub Dead() + Debug.Print 3 + End Sub +#End If +"; + + string evaluated = @" + + + + Public Sub Alive() + + Debug.Print 2 + + + + End Sub + + + + + +"; + var result = Preprocess(code); + Assert.AreEqual(evaluated, result.Item2); + } + + [TestMethod] + public void TestPreprocessingNoConditionalCompilation() + { + string code = @" +Public Sub Unchanged() + Debug.Print 3 +a: + Debug.Print 5 +End Sub +"; + + string evaluated = @" +Public Sub Unchanged() + Debug.Print 3 +a: + Debug.Print 5 +End Sub +"; + var result = Preprocess(code); + Assert.AreEqual(evaluated, result.Item2); + } + + private Tuple Preprocess(string code) + { + SymbolTable symbolTable = new SymbolTable(); + var stream = new AntlrInputStream(code); + var lexer = new VBAConditionalCompilationLexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBAConditionalCompilationParser(tokens); + parser.AddErrorListener(new ExceptionErrorListener()); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants("7.01")); + var tree = parser.compilationUnit(); + return Tuple.Create(symbolTable, evaluator.Visit(tree)); + } + } +} diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index c00f8aad32..9ab82a83dd 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -114,6 +114,7 @@ + From 67510c13ccc77de53b2a9d4bba4cc75ab6e8c86a Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Tue, 1 Mar 2016 21:05:16 +0100 Subject: [PATCH 02/17] bug fixes and minor cleanups (#1132) Changes: 1. fix expression date - date = double (not date as wrongly assumed before) 2. remove useless code 3. make fallback to unprocessed code clearer --- .../Preprocessing/VBAExpressionEvaluator.cs | 32 +++++++++-------- .../VBAPredefinedCompilationConstants.cs | 16 ++++----- .../Preprocessing/VBAPreprocessor.cs | 4 +-- Rubberduck.Parsing/VBA/RubberduckParser.cs | 5 +-- .../VBAPreprocessorVisitorTests.cs | 34 +++++++++++++++++-- 5 files changed, 60 insertions(+), 31 deletions(-) diff --git a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs index 9a08ddfc75..c30f3d08a0 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs @@ -126,7 +126,7 @@ private object VisitPlus(VBAConditionalCompilationParser.CcExpressionContext con { return (string)left + (string)right; } - else if (left is DateTime) + else if (left is DateTime || right is DateTime) { decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); @@ -156,22 +156,28 @@ private object VisitMinus(VBAConditionalCompilationParser.CcExpressionContext co { return null; } - if (left is DateTime) + else if (left is DateTime && right is DateTime) { + // 5.6.9.3.3 - Effective value type exception. + // If left + right are both Date then effective value type is double. decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); decimal difference = leftValue - rightValue; - // 5.6.9.3.3 Should actually return date if no overflow. - // At least Excel always seems to return the double value (instead of date) return difference; - //try - //{ - // return _letCoercions[typeof(decimal)].ToDate(difference); - //} - //catch - //{ - // return difference; - //} + } + else if (left is DateTime || right is DateTime) + { + decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); + decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); + decimal difference = leftValue - rightValue; + try + { + return _letCoercions[typeof(decimal)].ToDate(difference); + } + catch + { + return difference; + } } else { @@ -1182,8 +1188,6 @@ private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext c hours = 0; } } - - var text = dateLiteral.GetText(); var date = new DateTime(year, month, day, hours, mins, seconds); return date; } diff --git a/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs b/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs index 756d1c2007..ad19998953 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs @@ -1,16 +1,12 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Rubberduck.Parsing.Preprocessing { public sealed class VBAPredefinedCompilationConstants { - private readonly string _vbVersion; + private readonly double _vbVersion; - public VBAPredefinedCompilationConstants(string vbVersion) + public VBAPredefinedCompilationConstants(double vbVersion) { _vbVersion = vbVersion; } @@ -22,19 +18,19 @@ public VBAPredefinedCompilationConstants(string vbVersion) public const string WIN16_NAME = "Win16"; public const string MAC_NAME = "Mac"; - public bool VBA6 + public bool VBA7 { get { - return _vbVersion.StartsWith("6."); + return _vbVersion < 8; } } - public bool VBA7 + public bool VBA6 { get { - return _vbVersion.StartsWith("7."); + return _vbVersion < 7; } } diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs index 5990a53ff0..79263c418e 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs @@ -6,9 +6,9 @@ namespace Rubberduck.Parsing.Preprocessing { public sealed class VBAPreprocessor { - private readonly string _vbaVersion; + private readonly double _vbaVersion; - public VBAPreprocessor(string vbaVersion) + public VBAPreprocessor(double vbaVersion) { _vbaVersion = vbaVersion; } diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index 538ced20e2..ddadf4daac 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -225,8 +225,8 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok token.ThrowIfCancellationRequested(); - var preprocessor = new VBAPreprocessor(_vbe.Version); - string preprocessedModuleBody = code; + var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version)); + string preprocessedModuleBody; try { preprocessedModuleBody = preprocessor.Process(code); @@ -234,6 +234,7 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok catch (VBAPreprocessorException ex) { // Fall back to not doing any preprocessing at all. + preprocessedModuleBody = code; } ITokenStream stream; var tree = ParseInternal(preprocessedModuleBody, listeners, out stream); diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index bc2cb8b32d..6fb41b585a 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -91,6 +91,8 @@ public void TestMinusOperator() #Const c = False - True - True #Const d = Nothing #Const e = ""3"" - ""1"" +#Const f = #1/1/2351# - 2 +#Const g = #1/1/2400# - #1/1/1800# - #1/1/1800# "; var result = Preprocess(code); Assert.AreEqual(2m, result.Item1.Get("a")); @@ -98,6 +100,8 @@ public void TestMinusOperator() Assert.AreEqual(2m, result.Item1.Get("c")); Assert.AreEqual(null, result.Item1.Get("d")); Assert.AreEqual(2m, result.Item1.Get("e")); + Assert.AreEqual(new DateTime(2350, 12, 30), result.Item1.Get("f")); + Assert.AreEqual(new DateTime(2599, 12, 27), result.Item1.Get("g")); } [TestMethod] @@ -965,8 +969,8 @@ public void TestStringLiteral() public void TestNumberLiteral() { string code = @" -#Const a = &HAF$ 175 -#Const b = &O423# 275 +#Const a = &HAF$ +#Const b = &O423# #Const c = -50.323e5 "; var result = Preprocess(code); @@ -1009,6 +1013,30 @@ public void TestKeywordLiterals() Assert.AreEqual(VBAEmptyValue.Value, result.Item1.Get("e")); } + [TestMethod] + public void TestComplexExpressions() + { + string code = @" +#Const a = 23 +#Const b = 500 +#Const c = a >= b Or True ^ #1/1/1900# +#Const d = True + #1/1/1800# - (4 * Empty Mod (Abs(-5))) +"; + var result = Preprocess(code); + Assert.AreEqual(1m, result.Item1.Get("c")); + Assert.AreEqual(new DateTime(1799, 12, 31), result.Item1.Get("d")); + } + + [TestMethod] + public void TestOperatorPrecedence() + { + string code = @" +#Const a = 2 ^ 3 + -5 * 40 / 2 \ 4 Mod 2 + 3 - (2 * 4) Xor 4 Eqv 5 Imp 6 Or 2 And True +"; + var result = Preprocess(code); + Assert.AreEqual(7m, result.Item1.Get("a")); + } + [TestMethod] public void TestPreprocessingLiveDeadCode() { @@ -1081,7 +1109,7 @@ private Tuple Preprocess(string code) var tokens = new CommonTokenStream(lexer); var parser = new VBAConditionalCompilationParser(tokens); parser.AddErrorListener(new ExceptionErrorListener()); - var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants("7.01")); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(7.01)); var tree = parser.compilationUnit(); return Tuple.Create(symbolTable, evaluator.Visit(tree)); } From 90915bd79344dc6c5ba3bf9f2588a3a48fedf702 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Tue, 1 Mar 2016 21:32:56 +0100 Subject: [PATCH 03/17] fix name evaluation bugs (#1132) Fixed: 1. Type suffix should be ignored when looking up name 2. If name isn't defined, should return Empty --- Rubberduck.Parsing/Preprocessing/SymbolTable.cs | 5 +++++ .../Preprocessing/VBAExpressionEvaluator.cs | 9 ++++++++- .../Preprocessing/VBAPreprocessorVisitor.cs | 4 ++-- .../Preprocessing/VBAPreprocessorVisitorTests.cs | 6 ++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Rubberduck.Parsing/Preprocessing/SymbolTable.cs b/Rubberduck.Parsing/Preprocessing/SymbolTable.cs index 04c392a8f3..f772d35e3d 100644 --- a/Rubberduck.Parsing/Preprocessing/SymbolTable.cs +++ b/Rubberduck.Parsing/Preprocessing/SymbolTable.cs @@ -16,6 +16,11 @@ public void Add(string name, object value) _table[name] = value; } + public bool HasSymbol(string name) + { + return _table.ContainsKey(name); + } + public object Get(string name) { if (_table.ContainsKey(name)) diff --git a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs index c30f3d08a0..0b840fd19c 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs @@ -61,7 +61,14 @@ private object Evaluate(VBAConditionalCompilationParser.CcExpressionContext expr private object Visit(VBAConditionalCompilationParser.NameContext context) { - var identifier = context.GetText(); + var identifier = context.IDENTIFIER().GetText(); + // Special case, identifier that does not exist is VBAEmpty. + // Could add them to the symbol table, but since they are all constants + // they never change anyway. + if (!_symbolTable.HasSymbol(identifier)) + { + return VBAEmptyValue.Value; + } return _symbolTable.Get(identifier); } diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs index 5c718ecb44..97910f8367 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs @@ -53,8 +53,8 @@ public override object VisitCcBlock([NotNull] VBAConditionalCompilationParser.Cc public override object VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { // 3.4.1: If is a with a , the is ignored. - var name = context.ccVarLhs().GetText(); - _evaluator.EvaluateConstant(name, context.ccExpression()); + var identifier = context.ccVarLhs().name().IDENTIFIER().GetText(); + _evaluator.EvaluateConstant(identifier, context.ccExpression()); return MarkLineAsDead(context.GetText()); } diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index 6fb41b585a..29139de408 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -15,9 +15,15 @@ public void TestName() string code = @" #Const a = 5 #Const b = a +#Const c = doesNotExist +#Const d& = 1 +#Const e = d% "; var result = Preprocess(code); Assert.AreEqual(result.Item1.Get("b"), result.Item1.Get("a")); + Assert.AreEqual(VBAEmptyValue.Value, result.Item1.Get("c")); + Assert.AreEqual(1m, result.Item1.Get("d")); + Assert.AreEqual(1m, result.Item1.Get("e")); } [TestMethod] From 6d7545734dc6ea9240eab48c994c7097bb667c61 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Tue, 1 Mar 2016 23:16:09 +0100 Subject: [PATCH 04/17] fix date literal bugs + add more date literal tests (#1132) Changes: 1. Case handled incorrectly when L/M is month name and other L/M is year 2. JULY was missing 3. Problem with creating single letter tokens 4. Introduced dateValueNumber in order to make null checks instead of .Count > 0 possible for testing whether the date part is a number or name --- Rubberduck.Parsing/Grammar/VBA.g4 | 28 +- Rubberduck.Parsing/Grammar/VBALexer.cs | 1943 +++--- Rubberduck.Parsing/Grammar/VBAParser.cs | 713 +-- .../VBAConditionalCompilation.g4 | 27 +- .../VBAConditionalCompilationBaseListener.cs | 560 +- .../VBAConditionalCompilationBaseVisitor.cs | 452 +- .../VBAConditionalCompilationLexer.cs | 917 +-- .../VBAConditionalCompilationListener.cs | 446 +- .../VBAConditionalCompilationParser.cs | 5191 +++++++++-------- .../VBAConditionalCompilationVisitor.cs | 322 +- Rubberduck.Parsing/Preprocessing/VBADate.g4 | 31 +- .../Preprocessing/VBADateBaseListener.cs | 385 +- .../Preprocessing/VBADateBaseVisitor.cs | 307 +- .../Preprocessing/VBADateLexer.cs | 263 +- .../Preprocessing/VBADateListener.cs | 301 +- .../Preprocessing/VBADateParser.cs | 2400 ++++---- .../Preprocessing/VBADateVisitor.cs | 203 +- .../Preprocessing/VBAExpressionEvaluator.cs | 22 +- .../VBAPreprocessorVisitorTests.cs | 21 + 19 files changed, 7563 insertions(+), 6969 deletions(-) diff --git a/Rubberduck.Parsing/Grammar/VBA.g4 b/Rubberduck.Parsing/Grammar/VBA.g4 index b89679e676..66e751839b 100644 --- a/Rubberduck.Parsing/Grammar/VBA.g4 +++ b/Rubberduck.Parsing/Grammar/VBA.g4 @@ -845,12 +845,36 @@ fragment DATEVALUE : DATEVALUEPART DATESEPARATOR DATEVALUEPART (DATESEPARATOR DA fragment DATEVALUEPART : DIGIT+ | MONTHNAME; fragment DATESEPARATOR : WS? [/,-]? WS?; fragment MONTHNAME : ENGLISHMONTHNAME | ENGLISHMONTHABBREVIATION; -fragment ENGLISHMONTHNAME : J A N U A R Y | F E B R U A R Y | M A R C H | A P R I L | M A Y | J U N E | A U G U S T | S E P T E M B E R | O C T O B E R | N O V E M B E R | D E C E M B E R; -fragment ENGLISHMONTHABBREVIATION : J A N | F E B | M A R | A P R | J U N | J U L | A U G | S E P | O C T | N O V | D E C; +fragment ENGLISHMONTHNAME : JANUARY | FEBRUARY | MARCH | APRIL | MAY | JUNE | JULY | AUGUST | SEPTEMBER | OCTOBER | NOVEMBER | DECEMBER; +fragment ENGLISHMONTHABBREVIATION : JAN | FEB | MAR | APR | JUN | JUL | AUG | SEP | OCT | NOV | DEC; fragment TIMEVALUE : DIGIT+ AMPM | DIGIT+ TIMESEPARATOR DIGIT+ (TIMESEPARATOR DIGIT+)? AMPM?; fragment TIMESEPARATOR : WS? (':' | '.') WS?; fragment AMPM : WS? (A M | P M | A | P); +JANUARY : J A N U A R Y; +FEBRUARY : F E B R U A R Y; +MARCH : M A R C H; +APRIL : A P R I L; +MAY : M A Y; +JUNE : J U N E; +JULY : J U L Y; +AUGUST : A U G U S T; +SEPTEMBER : S E P T E M B E R; +OCTOBER : O C T O B E R; +NOVEMBER : N O V E M B E R; +DECEMBER : D E C E M B E R; +JAN : J A N; +FEB : F E B; +MAR: M A R; +APR : A P R; +JUN : J U N; +JUL: J U L; +AUG : A U G; +SEP : S E P; +OCT : O C T; +NOV : N O V; +DEC : D E C; + // whitespace, line breaks, comments, ... LINE_CONTINUATION : [ \t]+ UNDERSCORE '\r'? '\n' -> skip; NEWLINE : [\r\n\u2028\u2029]+; diff --git a/Rubberduck.Parsing/Grammar/VBALexer.cs b/Rubberduck.Parsing/Grammar/VBALexer.cs index be77698f90..9c71dbdbce 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -61,9 +61,12 @@ public const int LEQ = 193, LPAREN = 194, LT = 195, MINUS = 196, MULT = 197, NEQ = 198, PLUS = 199, POW = 200, RPAREN = 201, L_SQUARE_BRACKET = 202, R_SQUARE_BRACKET = 203, STRINGLITERAL = 204, OCTLITERAL = 205, HEXLITERAL = 206, SHORTLITERAL = 207, INTEGERLITERAL = 208, - DOUBLELITERAL = 209, DATELITERAL = 210, LINE_CONTINUATION = 211, NEWLINE = 212, - REMCOMMENT = 213, COMMENT = 214, SINGLEQUOTE = 215, COLON = 216, UNDERSCORE = 217, - WS = 218, IDENTIFIER = 219; + DOUBLELITERAL = 209, DATELITERAL = 210, JANUARY = 211, FEBRUARY = 212, MARCH = 213, + APRIL = 214, MAY = 215, JUNE = 216, JULY = 217, AUGUST = 218, SEPTEMBER = 219, OCTOBER = 220, + NOVEMBER = 221, DECEMBER = 222, JAN = 223, FEB = 224, MAR = 225, APR = 226, JUN = 227, + JUL = 228, AUG = 229, SEP = 230, OCT = 231, NOV = 232, DEC = 233, LINE_CONTINUATION = 234, + NEWLINE = 235, REMCOMMENT = 236, COMMENT = 237, SINGLEQUOTE = 238, COLON = 239, + UNDERSCORE = 240, WS = 241, IDENTIFIER = 242; public static string[] modeNames = { "DEFAULT_MODE" }; @@ -99,7 +102,10 @@ public const int "'\\u00C9'", "'\\u00CA'", "'\\u00CB'", "'\\u00CC'", "'\\u00CD'", "'\\u00CE'", "'\\u00CF'", "'\\u00D0'", "'\\u00D1'", "'\\u00D2'", "'\\u00D3'", "'\\u00D4'", "'\\u00D5'", "'\\u00D6'", "'\\u00D7'", "'\\u00D8'", "'\\u00D9'", "'\\u00DA'", - "'\\u00DB'" + "'\\u00DB'", "'\\u00DC'", "'\\u00DD'", "'\\u00DE'", "'\\u00DF'", "'\\u00E0'", + "'\\u00E1'", "'\\u00E2'", "'\\u00E3'", "'\\u00E4'", "'\\u00E5'", "'\\u00E6'", + "'\\u00E7'", "'\\u00E8'", "'\\u00E9'", "'\\u00EA'", "'\\u00EB'", "'\\u00EC'", + "'\\u00ED'", "'\\u00EE'", "'\\u00EF'", "'\\u00F0'", "'\\u00F1'", "'\\u00F2'" }; public static readonly string[] ruleNames = { "T__7", "T__6", "T__5", "T__4", "T__3", "T__2", "T__1", "T__0", "ACCESS", @@ -132,11 +138,14 @@ public const int "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", "DATEVALUEPART", "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", - "TIMEVALUE", "TIMESEPARATOR", "AMPM", "LINE_CONTINUATION", "NEWLINE", - "REMCOMMENT", "COMMENT", "SINGLEQUOTE", "COLON", "UNDERSCORE", "WS", "IDENTIFIER", - "LETTER", "DIGIT", "LETTERORDIGIT", "A", "B", "C", "D", "E", "F", "G", - "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", - "V", "W", "X", "Y", "Z" + "TIMEVALUE", "TIMESEPARATOR", "AMPM", "JANUARY", "FEBRUARY", "MARCH", + "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", + "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", + "NOV", "DEC", "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", + "SINGLEQUOTE", "COLON", "UNDERSCORE", "WS", "IDENTIFIER", "LETTER", "DIGIT", + "LETTERORDIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", + "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", + "Z" }; @@ -157,7 +166,7 @@ public VBALexer(ICharStream input) public override string SerializedAtn { get { return _serializedATN; } } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xDD\x8CD\b\x1\x4" + + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF4\x917\b\x1\x4" + "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b" + "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4" + "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15" + @@ -198,175 +207,183 @@ public VBALexer(ICharStream input) "\x4\xF0\t\xF0\x4\xF1\t\xF1\x4\xF2\t\xF2\x4\xF3\t\xF3\x4\xF4\t\xF4\x4\xF5" + "\t\xF5\x4\xF6\t\xF6\x4\xF7\t\xF7\x4\xF8\t\xF8\x4\xF9\t\xF9\x4\xFA\t\xFA" + "\x4\xFB\t\xFB\x4\xFC\t\xFC\x4\xFD\t\xFD\x4\xFE\t\xFE\x4\xFF\t\xFF\x4\x100" + - "\t\x100\x4\x101\t\x101\x4\x102\t\x102\x4\x103\t\x103\x3\x2\x3\x2\x3\x3" + - "\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3" + - "\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3" + - "\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3" + - "\xE\x3\xE\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3" + - "\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3" + - "\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3" + - "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3" + - "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3" + - "\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3" + - "\x18\x3\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3" + - "\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3" + - "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3" + - "\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3" + - "\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3" + - " \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"" + - "\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$" + - "\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'" + - "\x3\'\x3\'\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3" + - ")\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+" + - "\x3+\x3,\x3,\x3,\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3" + - ".\x3.\x3.\x3.\x3.\x3/\x3/\x3/\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3" + - "\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3" + - "\x30\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3" + - "\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3" + - "\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3" + - "\x36\x3\x36\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3" + - "\x37\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3" + - "\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3" + - "\x39\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3" + - ";\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=" + - "\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3?\x3" + - "?\x3?\x3?\x3@\x3@\x3@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x42\x3\x42" + - "\x3\x42\x3\x42\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43" + - "\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45" + - "\x3\x45\x3\x45\x3\x45\x3\x45\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46" + - "\x3\x46\x3\x46\x3\x46\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G" + - "\x3G\x3G\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3I\x3" + - "I\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3J\x3J\x3J\x3J\x3J\x3J\x3K\x3K\x3K\x3K" + - "\x3K\x3K\x3K\x3K\x3K\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x3N\x3" + - "N\x3N\x3N\x3N\x3N\x3N\x3N\x3N\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P" + - "\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3T\x3T\x3" + - "T\x3T\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3V\x3V\x3V\x3W\x3W" + - "\x3W\x3W\x3W\x3W\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Z\x3Z\x3" + - "Z\x3Z\x3Z\x3[\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3" + - "]\x3]\x3^\x3^\x3^\x3^\x3^\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3\x61\x3\x61" + - "\x3\x61\x3\x61\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63" + - "\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x64\x3\x64" + - "\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65" + - "\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x66" + + "\t\x100\x4\x101\t\x101\x4\x102\t\x102\x4\x103\t\x103\x4\x104\t\x104\x4" + + "\x105\t\x105\x4\x106\t\x106\x4\x107\t\x107\x4\x108\t\x108\x4\x109\t\x109" + + "\x4\x10A\t\x10A\x4\x10B\t\x10B\x4\x10C\t\x10C\x4\x10D\t\x10D\x4\x10E\t" + + "\x10E\x4\x10F\t\x10F\x4\x110\t\x110\x4\x111\t\x111\x4\x112\t\x112\x4\x113" + + "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x4\x116\t\x116\x4\x117\t\x117\x4" + + "\x118\t\x118\x4\x119\t\x119\x4\x11A\t\x11A\x3\x2\x3\x2\x3\x3\x3\x3\x3" + + "\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3\t\x3\n\x3" + + "\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3" + + "\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\xE\x3\xE" + + "\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10" + + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12" + + "\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14" + + "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15" + + "\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x17" + + "\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18" + + "\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A" + + "\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x3\x1C" + + "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D" + + "\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3\x1F" + + "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3 " + + "\x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"\x3\"\x3#" + + "\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3%\x3%\x3" + + "%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'\x3\'\x3\'\x3" + + "\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3)\x3)" + + "\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3,\x3,\x3" + + ",\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3." + + "\x3.\x3/\x3/\x3/\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3" + + "\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3" + + "\x31\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3" + + "\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3" + + "\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3" + + "\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x38\x3" + + "\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3" + + "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3:\x3:\x3" + + ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3;\x3;\x3;\x3;" + + "\x3;\x3;\x3;\x3;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3=\x3" + + "=\x3=\x3=\x3=\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3@" + + "\x3@\x3@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x3\x42" + + "\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x44\x3\x44" + + "\x3\x44\x3\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45" + + "\x3\x45\x3\x45\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46" + + "\x3\x46\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3H\x3" + + "H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3I\x3I\x3I\x3I\x3I" + + "\x3I\x3I\x3I\x3I\x3J\x3J\x3J\x3J\x3J\x3J\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3" + + "K\x3K\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x3N\x3N\x3N\x3N\x3N" + + "\x3N\x3N\x3N\x3N\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x3Q\x3Q\x3" + + "Q\x3Q\x3Q\x3Q\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3T\x3T\x3T\x3T\x3U\x3U" + + "\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3V\x3V\x3V\x3W\x3W\x3W\x3W\x3W\x3" + + "W\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Z\x3Z\x3Z\x3Z\x3Z\x3[" + + "\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3^\x3^" + + "\x3^\x3^\x3^\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3\x61\x3\x61\x3\x61\x3\x61" + + "\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63" + + "\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x64\x3\x64\x3\x64\x3\x64" + + "\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65" + + "\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66" + "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66" + - "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3h\x3h\x3h\x3" + - "h\x3h\x3h\x3h\x3i\x3i\x3i\x3i\x3j\x3j\x3j\x3j\x3j\x3j\x3j\x3j\x3k\x3k" + - "\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3l\x5l\x4CD\nl\x3l\x3l\x3l\x3m\x3m\x3" + - "m\x3n\x3n\x3n\x3n\x3o\x3o\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3q\x3q\x3q" + - "\x3q\x3q\x3r\x3r\x3r\x3r\x3r\x3s\x3s\x3s\x3s\x3t\x3t\x3t\x3t\x3u\x3u\x3" + - "u\x3u\x3u\x3u\x3u\x3u\x3v\x3v\x3v\x3v\x3v\x3w\x3w\x3w\x3x\x3x\x3x\x3x" + - "\x3x\x3x\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3" + - "y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3|" + - "\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3" + - "}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~" + - "\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F" + + "\x3\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3h\x3h\x3h\x3h\x3h\x3h\x3h" + + "\x3i\x3i\x3i\x3i\x3j\x3j\x3j\x3j\x3j\x3j\x3j\x3j\x3k\x3k\x3k\x3k\x3k\x3" + + "k\x3l\x3l\x3l\x3l\x3l\x5l\x4FB\nl\x3l\x3l\x3l\x3m\x3m\x3m\x3n\x3n\x3n" + + "\x3n\x3o\x3o\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3q\x3r\x3" + + "r\x3r\x3r\x3r\x3s\x3s\x3s\x3s\x3t\x3t\x3t\x3t\x3u\x3u\x3u\x3u\x3u\x3u" + + "\x3u\x3u\x3v\x3v\x3v\x3v\x3v\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3" + + "x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3z" + + "\x3z\x3z\x3z\x3z\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3|\x3|\x3|\x3|\x3" + + "|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}" + + "\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3" + + "~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F" + "\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F" + - "\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x81" + - "\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\x3\x82" + - "\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x83\x3\x83\x3\x83" + - "\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84" + - "\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85" + + "\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81" + + "\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82" + + "\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83" + + "\x3\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84" + + "\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86" + "\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86" + - "\x3\x86\x3\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87" + - "\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88" + - "\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x89" + - "\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A" + - "\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C" + - "\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D" + - "\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E" + - "\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x3\x8F\x3\x8F" + - "\x3\x8F\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90" + - "\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92" + - "\x3\x92\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x94\x3\x94" + - "\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95" + - "\x3\x95\x3\x95\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97" + - "\x3\x97\x3\x97\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98" + - "\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99" + - "\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A\x3\x9A" + - "\x3\x9A\x3\x9A\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C" + - "\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9D\x3\x9D" + - "\x3\x9D\x3\x9D\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E" + - "\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3\xA0" + - "\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA2\x3\xA2" + - "\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3" + - "\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5" + - "\x3\xA5\x3\xA5\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7" + - "\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9" + - "\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC" + - "\x3\xAC\x3\xAC\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE" + - "\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF" + - "\x3\xAF\x3\xAF\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1" + - "\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2" + - "\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3" + - "\x3\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5" + - "\x3\xB5\x3\xB5\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB7\x3\xB7" + - "\x3\xB7\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8" + - "\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9" + - "\x3\xBA\x3\xBA\x3\xBA\x3\xBA\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBD" + - "\x3\xBD\x3\xBE\x3\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC0\x3\xC1\x3\xC1" + - "\x3\xC2\x3\xC2\x3\xC2\x3\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6" + - "\x3\xC6\x3\xC7\x3\xC7\x3\xC7\x3\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xCA\x3\xCA" + - "\x3\xCB\x3\xCB\x3\xCC\x3\xCC\x3\xCD\x3\xCD\x3\xCD\x3\xCD\a\xCD\x730\n" + - "\xCD\f\xCD\xE\xCD\x733\v\xCD\x3\xCD\x3\xCD\x3\xCE\x3\xCE\x3\xCE\x3\xCE" + - "\x6\xCE\x73B\n\xCE\r\xCE\xE\xCE\x73C\x3\xCE\x5\xCE\x740\n\xCE\x3\xCF\x3" + - "\xCF\x3\xCF\x3\xCF\x6\xCF\x746\n\xCF\r\xCF\xE\xCF\x747\x3\xCF\x5\xCF\x74B" + - "\n\xCF\x3\xD0\x3\xD0\x5\xD0\x74F\n\xD0\x3\xD0\x6\xD0\x752\n\xD0\r\xD0" + - "\xE\xD0\x753\x3\xD0\x5\xD0\x757\n\xD0\x3\xD1\x3\xD1\x3\xD1\x3\xD1\x5\xD1" + - "\x75D\n\xD1\x3\xD2\x3\xD2\x5\xD2\x761\n\xD2\x3\xD2\a\xD2\x764\n\xD2\f" + - "\xD2\xE\xD2\x767\v\xD2\x3\xD2\x3\xD2\x6\xD2\x76B\n\xD2\r\xD2\xE\xD2\x76C" + - "\x3\xD2\x3\xD2\x3\xD2\x5\xD2\x772\n\xD2\x3\xD3\x3\xD3\x3\xD3\x3\xD3\x3" + - "\xD4\x3\xD4\x5\xD4\x77A\n\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x5\xD4\x780" + - "\n\xD4\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x788\n\xD5\x3" + - "\xD6\x6\xD6\x78B\n\xD6\r\xD6\xE\xD6\x78C\x3\xD6\x5\xD6\x790\n\xD6\x3\xD7" + - "\x5\xD7\x793\n\xD7\x3\xD7\x5\xD7\x796\n\xD7\x3\xD7\x5\xD7\x799\n\xD7\x3" + - "\xD8\x3\xD8\x5\xD8\x79D\n\xD8\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x5\xD9\x7F0\n\xD9\x3\xDA\x3\xDA\x3" + - "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3" + - "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3" + - "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3" + - "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3" + - "\xDA\x3\xDA\x5\xDA\x81E\n\xDA\x3\xDB\x6\xDB\x821\n\xDB\r\xDB\xE\xDB\x822" + - "\x3\xDB\x3\xDB\x3\xDB\x6\xDB\x828\n\xDB\r\xDB\xE\xDB\x829\x3\xDB\x3\xDB" + - "\x6\xDB\x82E\n\xDB\r\xDB\xE\xDB\x82F\x3\xDB\x3\xDB\x6\xDB\x834\n\xDB\r" + - "\xDB\xE\xDB\x835\x5\xDB\x838\n\xDB\x3\xDB\x5\xDB\x83B\n\xDB\x5\xDB\x83D" + - "\n\xDB\x3\xDC\x5\xDC\x840\n\xDC\x3\xDC\x3\xDC\x5\xDC\x844\n\xDC\x3\xDD" + - "\x5\xDD\x847\n\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3" + - "\xDD\x5\xDD\x851\n\xDD\x3\xDE\x6\xDE\x854\n\xDE\r\xDE\xE\xDE\x855\x3\xDE" + - "\x3\xDE\x5\xDE\x85A\n\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDF\x6\xDF\x861" + - "\n\xDF\r\xDF\xE\xDF\x862\x3\xE0\x5\xE0\x866\n\xE0\x3\xE0\x3\xE0\x3\xE0" + - "\x3\xE0\a\xE0\x86C\n\xE0\f\xE0\xE\xE0\x86F\v\xE0\x3\xE1\x3\xE1\x3\xE1" + - "\a\xE1\x874\n\xE1\f\xE1\xE\xE1\x877\v\xE1\x3\xE2\x3\xE2\x3\xE3\x3\xE3" + - "\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x6\xE5\x881\n\xE5\r\xE5\xE\xE5\x882\x3\xE6" + - "\x6\xE6\x886\n\xE6\r\xE6\xE\xE6\x887\x3\xE6\x3\xE6\x6\xE6\x88C\n\xE6\r" + - "\xE6\xE\xE6\x88D\x3\xE6\x3\xE6\x5\xE6\x892\n\xE6\x3\xE7\x3\xE7\x3\xE8" + - "\x3\xE8\x3\xE9\x3\xE9\x3\xEA\x3\xEA\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xED" + - "\x3\xED\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x3\xF0\x3\xF0\x3\xF1\x3\xF1\x3\xF2" + - "\x3\xF2\x3\xF3\x3\xF3\x3\xF4\x3\xF4\x3\xF5\x3\xF5\x3\xF6\x3\xF6\x3\xF7" + - "\x3\xF7\x3\xF8\x3\xF8\x3\xF9\x3\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC" + - "\x3\xFC\x3\xFD\x3\xFD\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101" + - "\x3\x101\x3\x102\x3\x102\x3\x103\x3\x103\x2\x2\x2\x104\x3\x2\x3\x5\x2" + - "\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17" + - "\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14" + - "\'\x2\x15)\x2\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2" + - "\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$" + - "G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31" + - "\x61\x2\x32\x63\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2" + - "\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43" + - "\x85\x2\x44\x87\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93" + - "\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5" + - "\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\" + - "\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5" + - "\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k" + - "\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2" + - "t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7" + + "\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87" + + "\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88" + + "\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x89\x3\x89\x3\x89" + + "\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A" + + "\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8C\x3\x8C" + + "\x3\x8C\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D" + + "\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E" + + "\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90" + + "\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90" + + "\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x3\x92" + + "\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x94\x3\x94\x3\x94\x3\x94" + + "\x3\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95" + + "\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97" + + "\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98" + + "\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99" + + "\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A" + + "\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C" + + "\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D" + + "\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F" + + "\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0" + + "\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA2\x3\xA2\x3\xA2\x3\xA2" + + "\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4" + + "\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5" + + "\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8" + + "\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA" + + "\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC\x3\xAC\x3\xAC" + + "\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE" + + "\x3\xAE\x3\xAE\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF" + + "\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1" + + "\x3\xB1\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2" + + "\x3\xB2\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB4" + + "\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5" + + "\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB7\x3\xB7" + + "\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8" + + "\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xBA\x3\xBA" + + "\x3\xBA\x3\xBA\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBE" + + "\x3\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC0\x3\xC1\x3\xC1\x3\xC2\x3\xC2" + + "\x3\xC2\x3\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC7" + + "\x3\xC7\x3\xC7\x3\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xCA\x3\xCA\x3\xCB\x3\xCB" + + "\x3\xCC\x3\xCC\x3\xCD\x3\xCD\x3\xCD\x3\xCD\a\xCD\x75E\n\xCD\f\xCD\xE\xCD" + + "\x761\v\xCD\x3\xCD\x3\xCD\x3\xCE\x3\xCE\x3\xCE\x3\xCE\x6\xCE\x769\n\xCE" + + "\r\xCE\xE\xCE\x76A\x3\xCE\x5\xCE\x76E\n\xCE\x3\xCF\x3\xCF\x3\xCF\x3\xCF" + + "\x6\xCF\x774\n\xCF\r\xCF\xE\xCF\x775\x3\xCF\x5\xCF\x779\n\xCF\x3\xD0\x3" + + "\xD0\x5\xD0\x77D\n\xD0\x3\xD0\x6\xD0\x780\n\xD0\r\xD0\xE\xD0\x781\x3\xD0" + + "\x5\xD0\x785\n\xD0\x3\xD1\x3\xD1\x3\xD1\x3\xD1\x5\xD1\x78B\n\xD1\x3\xD2" + + "\x3\xD2\x5\xD2\x78F\n\xD2\x3\xD2\a\xD2\x792\n\xD2\f\xD2\xE\xD2\x795\v" + + "\xD2\x3\xD2\x3\xD2\x6\xD2\x799\n\xD2\r\xD2\xE\xD2\x79A\x3\xD2\x3\xD2\x3" + + "\xD2\x5\xD2\x7A0\n\xD2\x3\xD3\x3\xD3\x3\xD3\x3\xD3\x3\xD4\x3\xD4\x5\xD4" + + "\x7A8\n\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x5\xD4\x7AE\n\xD4\x3\xD5\x3\xD5" + + "\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x7B6\n\xD5\x3\xD6\x6\xD6\x7B9\n\xD6" + + "\r\xD6\xE\xD6\x7BA\x3\xD6\x5\xD6\x7BE\n\xD6\x3\xD7\x5\xD7\x7C1\n\xD7\x3" + + "\xD7\x5\xD7\x7C4\n\xD7\x3\xD7\x5\xD7\x7C7\n\xD7\x3\xD8\x3\xD8\x5\xD8\x7CB" + + "\n\xD8\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + + "\x3\xD9\x3\xD9\x3\xD9\x5\xD9\x7D9\n\xD9\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3" + + "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x5\xDA\x7E6\n\xDA\x3\xDB" + + "\x6\xDB\x7E9\n\xDB\r\xDB\xE\xDB\x7EA\x3\xDB\x3\xDB\x3\xDB\x6\xDB\x7F0" + + "\n\xDB\r\xDB\xE\xDB\x7F1\x3\xDB\x3\xDB\x6\xDB\x7F6\n\xDB\r\xDB\xE\xDB" + + "\x7F7\x3\xDB\x3\xDB\x6\xDB\x7FC\n\xDB\r\xDB\xE\xDB\x7FD\x5\xDB\x800\n" + + "\xDB\x3\xDB\x5\xDB\x803\n\xDB\x5\xDB\x805\n\xDB\x3\xDC\x5\xDC\x808\n\xDC" + + "\x3\xDC\x3\xDC\x5\xDC\x80C\n\xDC\x3\xDD\x5\xDD\x80F\n\xDD\x3\xDD\x3\xDD" + + "\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x5\xDD\x819\n\xDD\x3\xDE\x3" + + "\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xDF\x3" + + "\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3" + + "\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3" + + "\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4\x3" + + "\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3" + + "\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE7\x3" + + "\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3" + + "\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3" + + "\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEB\x3" + + "\xEB\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED\x3\xED\x3" + + "\xED\x3\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xF0\x3" + + "\xF0\x3\xF0\x3\xF0\x3\xF1\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x3\xF2\x3\xF2\x3" + + "\xF2\x3\xF3\x3\xF3\x3\xF3\x3\xF3\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF5\x6" + + "\xF5\x89E\n\xF5\r\xF5\xE\xF5\x89F\x3\xF5\x3\xF5\x5\xF5\x8A4\n\xF5\x3\xF5" + + "\x3\xF5\x3\xF5\x3\xF5\x3\xF6\x6\xF6\x8AB\n\xF6\r\xF6\xE\xF6\x8AC\x3\xF7" + + "\x5\xF7\x8B0\n\xF7\x3\xF7\x3\xF7\x3\xF7\x3\xF7\a\xF7\x8B6\n\xF7\f\xF7" + + "\xE\xF7\x8B9\v\xF7\x3\xF8\x3\xF8\x3\xF8\a\xF8\x8BE\n\xF8\f\xF8\xE\xF8" + + "\x8C1\v\xF8\x3\xF9\x3\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x6" + + "\xFC\x8CB\n\xFC\r\xFC\xE\xFC\x8CC\x3\xFD\x6\xFD\x8D0\n\xFD\r\xFD\xE\xFD" + + "\x8D1\x3\xFD\x3\xFD\x6\xFD\x8D6\n\xFD\r\xFD\xE\xFD\x8D7\x3\xFD\x3\xFD" + + "\x5\xFD\x8DC\n\xFD\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101" + + "\x3\x101\x3\x102\x3\x102\x3\x103\x3\x103\x3\x104\x3\x104\x3\x105\x3\x105" + + "\x3\x106\x3\x106\x3\x107\x3\x107\x3\x108\x3\x108\x3\x109\x3\x109\x3\x10A" + + "\x3\x10A\x3\x10B\x3\x10B\x3\x10C\x3\x10C\x3\x10D\x3\x10D\x3\x10E\x3\x10E" + + "\x3\x10F\x3\x10F\x3\x110\x3\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113" + + "\x3\x113\x3\x114\x3\x114\x3\x115\x3\x115\x3\x116\x3\x116\x3\x117\x3\x117" + + "\x3\x118\x3\x118\x3\x119\x3\x119\x3\x11A\x3\x11A\x2\x2\x2\x11B\x3\x2\x3" + + "\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15" + + "\x2\f\x17\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13" + + "%\x2\x14\'\x2\x15)\x2\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B" + + "\x35\x2\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45" + + "\x2$G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_" + + "\x2\x31\x61\x2\x32\x63\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38" + + "o\x2\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83" + + "\x2\x43\x85\x2\x44\x87\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2" + + "J\x93\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3" + + "\x2S\xA5\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5" + + "\x2\\\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63" + + "\xC5\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3" + + "\x2k\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5" + + "\x2t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7" + "\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83" + "\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89" + "\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F" + @@ -384,771 +401,815 @@ public VBALexer(ICharStream input) "\x1A1\x2\xD2\x1A3\x2\xD3\x1A5\x2\xD4\x1A7\x2\x2\x1A9\x2\x2\x1AB\x2\x2" + "\x1AD\x2\x2\x1AF\x2\x2\x1B1\x2\x2\x1B3\x2\x2\x1B5\x2\x2\x1B7\x2\x2\x1B9" + "\x2\x2\x1BB\x2\xD5\x1BD\x2\xD6\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5" + - "\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC\x1CB\x2\xDD\x1CD\x2\x2\x1CF\x2\x2\x1D1" + - "\x2\x2\x1D3\x2\x2\x1D5\x2\x2\x1D7\x2\x2\x1D9\x2\x2\x1DB\x2\x2\x1DD\x2" + - "\x2\x1DF\x2\x2\x1E1\x2\x2\x1E3\x2\x2\x1E5\x2\x2\x1E7\x2\x2\x1E9\x2\x2" + - "\x1EB\x2\x2\x1ED\x2\x2\x1EF\x2\x2\x1F1\x2\x2\x1F3\x2\x2\x1F5\x2\x2\x1F7" + - "\x2\x2\x1F9\x2\x2\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2\x2\x203\x2" + - "\x2\x205\x2\x2\x3\x2)\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x5" + - "\x2%%((\x42\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\"\x5\x2\f" + - "\f\xF\xF\x202A\x202B\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f" + - "\f\xF\xF##^_\v\x2\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8" + - "\xF8\xFE\xFE\x3\x2\x32;\f\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE" + - "\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64" + - "\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2" + - "IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2" + - "PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2" + - "WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x8EE\x2\x3\x3" + - "\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3" + - "\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13" + - "\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2" + - "\x2\x1B\x3\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2" + - "\x2\x2#\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2" + - "+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33" + - "\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2" + - "\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2" + - "\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2" + - "K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2" + - "\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2" + - "\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2" + - "\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2" + - "m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2" + - "\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2" + - "\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2" + - "\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D" + - "\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2" + - "\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2" + - "\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3" + - "\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2" + - "\x2\xAB\x3\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2" + - "\x2\x2\x2\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9" + - "\x3\x2\x2\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2" + - "\x2\xC1\x3\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2" + - "\x2\x2\x2\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF" + - "\x3\x2\x2\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2" + - "\x2\xD7\x3\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2" + - "\x2\x2\x2\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5" + - "\x3\x2\x2\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2" + - "\x2\xED\x3\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2" + - "\x2\x2\x2\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB" + - "\x3\x2\x2\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2" + - "\x2\x103\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3" + - "\x2\x2\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2" + - "\x2\x111\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3" + - "\x2\x2\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2" + - "\x2\x11F\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3" + - "\x2\x2\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2" + - "\x2\x12D\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3" + - "\x2\x2\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2" + - "\x2\x13B\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3" + - "\x2\x2\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2" + - "\x2\x149\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3" + - "\x2\x2\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2" + - "\x2\x157\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3" + - "\x2\x2\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2" + - "\x2\x165\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3" + - "\x2\x2\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2" + - "\x2\x173\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3" + - "\x2\x2\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2" + - "\x2\x181\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3" + - "\x2\x2\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2" + - "\x2\x18F\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3" + - "\x2\x2\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2" + - "\x2\x19D\x3\x2\x2\x2\x2\x19F\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2\x1A3\x3" + - "\x2\x2\x2\x2\x1A5\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2" + - "\x2\x1BF\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3" + - "\x2\x2\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2" + - "\x3\x207\x3\x2\x2\x2\x5\x209\x3\x2\x2\x2\a\x20B\x3\x2\x2\x2\t\x20D\x3" + - "\x2\x2\x2\v\x20F\x3\x2\x2\x2\r\x211\x3\x2\x2\x2\xF\x213\x3\x2\x2\x2\x11" + - "\x215\x3\x2\x2\x2\x13\x217\x3\x2\x2\x2\x15\x21E\x3\x2\x2\x2\x17\x228\x3" + - "\x2\x2\x2\x19\x22E\x3\x2\x2\x2\x1B\x232\x3\x2\x2\x2\x1D\x23C\x3\x2\x2" + - "\x2\x1F\x248\x3\x2\x2\x2!\x24F\x3\x2\x2\x2#\x252\x3\x2\x2\x2%\x258\x3" + - "\x2\x2\x2\'\x25D\x3\x2\x2\x2)\x264\x3\x2\x2\x2+\x26C\x3\x2\x2\x2-\x272" + - "\x3\x2\x2\x2/\x278\x3\x2\x2\x2\x31\x27D\x3\x2\x2\x2\x33\x282\x3\x2\x2" + - "\x2\x35\x287\x3\x2\x2\x2\x37\x28D\x3\x2\x2\x2\x39\x295\x3\x2\x2\x2;\x29B" + - "\x3\x2\x2\x2=\x2A1\x3\x2\x2\x2?\x2AC\x3\x2\x2\x2\x41\x2B2\x3\x2\x2\x2" + - "\x43\x2BB\x3\x2\x2\x2\x45\x2C0\x3\x2\x2\x2G\x2C8\x3\x2\x2\x2I\x2D0\x3" + - "\x2\x2\x2K\x2D8\x3\x2\x2\x2M\x2E0\x3\x2\x2\x2O\x2E7\x3\x2\x2\x2Q\x2EE" + - "\x3\x2\x2\x2S\x2F5\x3\x2\x2\x2U\x2FC\x3\x2\x2\x2W\x303\x3\x2\x2\x2Y\x30A" + - "\x3\x2\x2\x2[\x311\x3\x2\x2\x2]\x318\x3\x2\x2\x2_\x31F\x3\x2\x2\x2\x61" + - "\x32D\x3\x2\x2\x2\x63\x331\x3\x2\x2\x2\x65\x334\x3\x2\x2\x2g\x33B\x3\x2" + - "\x2\x2i\x340\x3\x2\x2\x2k\x345\x3\x2\x2\x2m\x34C\x3\x2\x2\x2o\x355\x3" + - "\x2\x2\x2q\x362\x3\x2\x2\x2s\x369\x3\x2\x2\x2u\x376\x3\x2\x2\x2w\x381" + - "\x3\x2\x2\x2y\x389\x3\x2\x2\x2{\x392\x3\x2\x2\x2}\x39B\x3\x2\x2\x2\x7F" + - "\x39F\x3\x2\x2\x2\x81\x3A4\x3\x2\x2\x2\x83\x3A8\x3\x2\x2\x2\x85\x3AE\x3" + - "\x2\x2\x2\x87\x3B4\x3\x2\x2\x2\x89\x3BA\x3\x2\x2\x2\x8B\x3C2\x3\x2\x2" + - "\x2\x8D\x3CB\x3\x2\x2\x2\x8F\x3D9\x3\x2\x2\x2\x91\x3E7\x3\x2\x2\x2\x93" + - "\x3F0\x3\x2\x2\x2\x95\x3F6\x3\x2\x2\x2\x97\x3FF\x3\x2\x2\x2\x99\x406\x3" + - "\x2\x2\x2\x9B\x40A\x3\x2\x2\x2\x9D\x413\x3\x2\x2\x2\x9F\x417\x3\x2\x2" + - "\x2\xA1\x41E\x3\x2\x2\x2\xA3\x424\x3\x2\x2\x2\xA5\x429\x3\x2\x2\x2\xA7" + - "\x42C\x3\x2\x2\x2\xA9\x430\x3\x2\x2\x2\xAB\x43B\x3\x2\x2\x2\xAD\x43E\x3" + - "\x2\x2\x2\xAF\x444\x3\x2\x2\x2\xB1\x447\x3\x2\x2\x2\xB3\x44F\x3\x2\x2" + - "\x2\xB5\x454\x3\x2\x2\x2\xB7\x459\x3\x2\x2\x2\xB9\x45E\x3\x2\x2\x2\xBB" + - "\x463\x3\x2\x2\x2\xBD\x468\x3\x2\x2\x2\xBF\x46C\x3\x2\x2\x2\xC1\x470\x3" + - "\x2\x2\x2\xC3\x474\x3\x2\x2\x2\xC5\x479\x3\x2\x2\x2\xC7\x484\x3\x2\x2" + - "\x2\xC9\x48E\x3\x2\x2\x2\xCB\x499\x3\x2\x2\x2\xCD\x4A9\x3\x2\x2\x2\xCF" + - "\x4AE\x3\x2\x2\x2\xD1\x4B5\x3\x2\x2\x2\xD3\x4B9\x3\x2\x2\x2\xD5\x4C1\x3" + - "\x2\x2\x2\xD7\x4C7\x3\x2\x2\x2\xD9\x4D1\x3\x2\x2\x2\xDB\x4D4\x3\x2\x2" + - "\x2\xDD\x4D8\x3\x2\x2\x2\xDF\x4DE\x3\x2\x2\x2\xE1\x4E2\x3\x2\x2\x2\xE3" + - "\x4E7\x3\x2\x2\x2\xE5\x4EC\x3\x2\x2\x2\xE7\x4F0\x3\x2\x2\x2\xE9\x4F4\x3" + - "\x2\x2\x2\xEB\x4FC\x3\x2\x2\x2\xED\x501\x3\x2\x2\x2\xEF\x504\x3\x2\x2" + - "\x2\xF1\x50D\x3\x2\x2\x2\xF3\x51C\x3\x2\x2\x2\xF5\x521\x3\x2\x2\x2\xF7" + - "\x52A\x3\x2\x2\x2\xF9\x536\x3\x2\x2\x2\xFB\x546\x3\x2\x2\x2\xFD\x555\x3" + - "\x2\x2\x2\xFF\x56B\x3\x2\x2\x2\x101\x56E\x3\x2\x2\x2\x103\x575\x3\x2\x2" + - "\x2\x105\x580\x3\x2\x2\x2\x107\x589\x3\x2\x2\x2\x109\x58F\x3\x2\x2\x2" + - "\x10B\x597\x3\x2\x2\x2\x10D\x5A4\x3\x2\x2\x2\x10F\x5B1\x3\x2\x2\x2\x111" + - "\x5BE\x3\x2\x2\x2\x113\x5C6\x3\x2\x2\x2\x115\x5CD\x3\x2\x2\x2\x117\x5D1" + - "\x3\x2\x2\x2\x119\x5D8\x3\x2\x2\x2\x11B\x5E2\x3\x2\x2\x2\x11D\x5ED\x3" + - "\x2\x2\x2\x11F\x5F2\x3\x2\x2\x2\x121\x5FD\x3\x2\x2\x2\x123\x603\x3\x2" + - "\x2\x2\x125\x607\x3\x2\x2\x2\x127\x60D\x3\x2\x2\x2\x129\x614\x3\x2\x2" + - "\x2\x12B\x61B\x3\x2\x2\x2\x12D\x621\x3\x2\x2\x2\x12F\x626\x3\x2\x2\x2" + - "\x131\x632\x3\x2\x2\x2\x133\x63E\x3\x2\x2\x2\x135\x643\x3\x2\x2\x2\x137" + - "\x64A\x3\x2\x2\x2\x139\x653\x3\x2\x2\x2\x13B\x657\x3\x2\x2\x2\x13D\x65F" + - "\x3\x2\x2\x2\x13F\x666\x3\x2\x2\x2\x141\x66D\x3\x2\x2\x2\x143\x671\x3" + - "\x2\x2\x2\x145\x678\x3\x2\x2\x2\x147\x67D\x3\x2\x2\x2\x149\x682\x3\x2" + - "\x2\x2\x14B\x689\x3\x2\x2\x2\x14D\x68D\x3\x2\x2\x2\x14F\x691\x3\x2\x2" + - "\x2\x151\x696\x3\x2\x2\x2\x153\x69B\x3\x2\x2\x2\x155\x6A0\x3\x2\x2\x2" + - "\x157\x6A3\x3\x2\x2\x2\x159\x6A8\x3\x2\x2\x2\x15B\x6AD\x3\x2\x2\x2\x15D" + - "\x6B4\x3\x2\x2\x2\x15F\x6BB\x3\x2\x2\x2\x161\x6C2\x3\x2\x2\x2\x163\x6C8" + - "\x3\x2\x2\x2\x165\x6D0\x3\x2\x2\x2\x167\x6D8\x3\x2\x2\x2\x169\x6DD\x3" + - "\x2\x2\x2\x16B\x6E3\x3\x2\x2\x2\x16D\x6E9\x3\x2\x2\x2\x16F\x6EE\x3\x2" + - "\x2\x2\x171\x6F9\x3\x2\x2\x2\x173\x6FF\x3\x2\x2\x2\x175\x703\x3\x2\x2" + - "\x2\x177\x705\x3\x2\x2\x2\x179\x708\x3\x2\x2\x2\x17B\x70A\x3\x2\x2\x2" + - "\x17D\x70C\x3\x2\x2\x2\x17F\x70E\x3\x2\x2\x2\x181\x711\x3\x2\x2\x2\x183" + - "\x713\x3\x2\x2\x2\x185\x716\x3\x2\x2\x2\x187\x718\x3\x2\x2\x2\x189\x71A" + - "\x3\x2\x2\x2\x18B\x71C\x3\x2\x2\x2\x18D\x71E\x3\x2\x2\x2\x18F\x721\x3" + - "\x2\x2\x2\x191\x723\x3\x2\x2\x2\x193\x725\x3\x2\x2\x2\x195\x727\x3\x2" + - "\x2\x2\x197\x729\x3\x2\x2\x2\x199\x72B\x3\x2\x2\x2\x19B\x736\x3\x2\x2" + - "\x2\x19D\x741\x3\x2\x2\x2\x19F\x74E\x3\x2\x2\x2\x1A1\x758\x3\x2\x2\x2" + - "\x1A3\x760\x3\x2\x2\x2\x1A5\x773\x3\x2\x2\x2\x1A7\x77F\x3\x2\x2\x2\x1A9" + - "\x781\x3\x2\x2\x2\x1AB\x78F\x3\x2\x2\x2\x1AD\x792\x3\x2\x2\x2\x1AF\x79C" + - "\x3\x2\x2\x2\x1B1\x7EF\x3\x2\x2\x2\x1B3\x81D\x3\x2\x2\x2\x1B5\x83C\x3" + - "\x2\x2\x2\x1B7\x83F\x3\x2\x2\x2\x1B9\x846\x3\x2\x2\x2\x1BB\x853\x3\x2" + - "\x2\x2\x1BD\x860\x3\x2\x2\x2\x1BF\x865\x3\x2\x2\x2\x1C1\x870\x3\x2\x2" + - "\x2\x1C3\x878\x3\x2\x2\x2\x1C5\x87A\x3\x2\x2\x2\x1C7\x87C\x3\x2\x2\x2" + - "\x1C9\x880\x3\x2\x2\x2\x1CB\x891\x3\x2\x2\x2\x1CD\x893\x3\x2\x2\x2\x1CF" + - "\x895\x3\x2\x2\x2\x1D1\x897\x3\x2\x2\x2\x1D3\x899\x3\x2\x2\x2\x1D5\x89B" + - "\x3\x2\x2\x2\x1D7\x89D\x3\x2\x2\x2\x1D9\x89F\x3\x2\x2\x2\x1DB\x8A1\x3" + - "\x2\x2\x2\x1DD\x8A3\x3\x2\x2\x2\x1DF\x8A5\x3\x2\x2\x2\x1E1\x8A7\x3\x2" + - "\x2\x2\x1E3\x8A9\x3\x2\x2\x2\x1E5\x8AB\x3\x2\x2\x2\x1E7\x8AD\x3\x2\x2" + - "\x2\x1E9\x8AF\x3\x2\x2\x2\x1EB\x8B1\x3\x2\x2\x2\x1ED\x8B3\x3\x2\x2\x2" + - "\x1EF\x8B5\x3\x2\x2\x2\x1F1\x8B7\x3\x2\x2\x2\x1F3\x8B9\x3\x2\x2\x2\x1F5" + - "\x8BB\x3\x2\x2\x2\x1F7\x8BD\x3\x2\x2\x2\x1F9\x8BF\x3\x2\x2\x2\x1FB\x8C1" + - "\x3\x2\x2\x2\x1FD\x8C3\x3\x2\x2\x2\x1FF\x8C5\x3\x2\x2\x2\x201\x8C7\x3" + - "\x2\x2\x2\x203\x8C9\x3\x2\x2\x2\x205\x8CB\x3\x2\x2\x2\x207\x208\a\x42" + - "\x2\x2\x208\x4\x3\x2\x2\x2\x209\x20A\a#\x2\x2\x20A\x6\x3\x2\x2\x2\x20B" + - "\x20C\a%\x2\x2\x20C\b\x3\x2\x2\x2\x20D\x20E\a&\x2\x2\x20E\n\x3\x2\x2\x2" + - "\x20F\x210\a\'\x2\x2\x210\f\x3\x2\x2\x2\x211\x212\a=\x2\x2\x212\xE\x3" + - "\x2\x2\x2\x213\x214\a.\x2\x2\x214\x10\x3\x2\x2\x2\x215\x216\a\x30\x2\x2" + - "\x216\x12\x3\x2\x2\x2\x217\x218\x5\x1D3\xEA\x2\x218\x219\x5\x1D7\xEC\x2" + - "\x219\x21A\x5\x1D7\xEC\x2\x21A\x21B\x5\x1DB\xEE\x2\x21B\x21C\x5\x1F7\xFC" + - "\x2\x21C\x21D\x5\x1F7\xFC\x2\x21D\x14\x3\x2\x2\x2\x21E\x21F\x5\x1D3\xEA" + - "\x2\x21F\x220\x5\x1D9\xED\x2\x220\x221\x5\x1D9\xED\x2\x221\x222\x5\x1F5" + - "\xFB\x2\x222\x223\x5\x1DB\xEE\x2\x223\x224\x5\x1F7\xFC\x2\x224\x225\x5" + - "\x1F7\xFC\x2\x225\x226\x5\x1EF\xF8\x2\x226\x227\x5\x1DD\xEF\x2\x227\x16" + - "\x3\x2\x2\x2\x228\x229\x5\x1D3\xEA\x2\x229\x22A\x5\x1E9\xF5\x2\x22A\x22B" + - "\x5\x1E3\xF2\x2\x22B\x22C\x5\x1D3\xEA\x2\x22C\x22D\x5\x1F7\xFC\x2\x22D" + - "\x18\x3\x2\x2\x2\x22E\x22F\x5\x1D3\xEA\x2\x22F\x230\x5\x1ED\xF7\x2\x230" + - "\x231\x5\x1D9\xED\x2\x231\x1A\x3\x2\x2\x2\x232\x233\x5\x1D3\xEA\x2\x233" + - "\x234\x5\x1F9\xFD\x2\x234\x235\x5\x1F9\xFD\x2\x235\x236\x5\x1F5\xFB\x2" + - "\x236\x237\x5\x1E3\xF2\x2\x237\x238\x5\x1D5\xEB\x2\x238\x239\x5\x1FB\xFE" + - "\x2\x239\x23A\x5\x1F9\xFD\x2\x23A\x23B\x5\x1DB\xEE\x2\x23B\x1C\x3\x2\x2" + - "\x2\x23C\x23D\x5\x1D3\xEA\x2\x23D\x23E\x5\x1F1\xF9\x2\x23E\x23F\x5\x1F1" + - "\xF9\x2\x23F\x240\x5\x1D3\xEA\x2\x240\x241\x5\x1D7\xEC\x2\x241\x242\x5" + - "\x1F9\xFD\x2\x242\x243\x5\x1E3\xF2\x2\x243\x244\x5\x1FD\xFF\x2\x244\x245" + - "\x5\x1D3\xEA\x2\x245\x246\x5\x1F9\xFD\x2\x246\x247\x5\x1DB\xEE\x2\x247" + - "\x1E\x3\x2\x2\x2\x248\x249\x5\x1D3\xEA\x2\x249\x24A\x5\x1F1\xF9\x2\x24A" + - "\x24B\x5\x1F1\xF9\x2\x24B\x24C\x5\x1DB\xEE\x2\x24C\x24D\x5\x1ED\xF7\x2" + - "\x24D\x24E\x5\x1D9\xED\x2\x24E \x3\x2\x2\x2\x24F\x250\x5\x1D3\xEA\x2\x250" + - "\x251\x5\x1F7\xFC\x2\x251\"\x3\x2\x2\x2\x252\x253\x5\x1D5\xEB\x2\x253" + - "\x254\x5\x1DB\xEE\x2\x254\x255\x5\x1DF\xF0\x2\x255\x256\x5\x1E3\xF2\x2" + - "\x256\x257\x5\x1ED\xF7\x2\x257$\x3\x2\x2\x2\x258\x259\x5\x1D5\xEB\x2\x259" + - "\x25A\x5\x1DB\xEE\x2\x25A\x25B\x5\x1DB\xEE\x2\x25B\x25C\x5\x1F1\xF9\x2" + - "\x25C&\x3\x2\x2\x2\x25D\x25E\x5\x1D5\xEB\x2\x25E\x25F\x5\x1E3\xF2\x2\x25F" + - "\x260\x5\x1ED\xF7\x2\x260\x261\x5\x1D3\xEA\x2\x261\x262\x5\x1F5\xFB\x2" + - "\x262\x263\x5\x203\x102\x2\x263(\x3\x2\x2\x2\x264\x265\x5\x1D5\xEB\x2" + - "\x265\x266\x5\x1EF\xF8\x2\x266\x267\x5\x1EF\xF8\x2\x267\x268\x5\x1E9\xF5" + - "\x2\x268\x269\x5\x1DB\xEE\x2\x269\x26A\x5\x1D3\xEA\x2\x26A\x26B\x5\x1ED" + - "\xF7\x2\x26B*\x3\x2\x2\x2\x26C\x26D\x5\x1D5\xEB\x2\x26D\x26E\x5\x203\x102" + - "\x2\x26E\x26F\x5\x1FD\xFF\x2\x26F\x270\x5\x1D3\xEA\x2\x270\x271\x5\x1E9" + - "\xF5\x2\x271,\x3\x2\x2\x2\x272\x273\x5\x1D5\xEB\x2\x273\x274\x5\x203\x102" + - "\x2\x274\x275\x5\x1F5\xFB\x2\x275\x276\x5\x1DB\xEE\x2\x276\x277\x5\x1DD" + - "\xEF\x2\x277.\x3\x2\x2\x2\x278\x279\x5\x1D5\xEB\x2\x279\x27A\x5\x203\x102" + - "\x2\x27A\x27B\x5\x1F9\xFD\x2\x27B\x27C\x5\x1DB\xEE\x2\x27C\x30\x3\x2\x2" + - "\x2\x27D\x27E\x5\x1D7\xEC\x2\x27E\x27F\x5\x1D3\xEA\x2\x27F\x280\x5\x1E9" + - "\xF5\x2\x280\x281\x5\x1E9\xF5\x2\x281\x32\x3\x2\x2\x2\x282\x283\x5\x1D7" + - "\xEC\x2\x283\x284\x5\x1D3\xEA\x2\x284\x285\x5\x1F7\xFC\x2\x285\x286\x5" + - "\x1DB\xEE\x2\x286\x34\x3\x2\x2\x2\x287\x288\x5\x1D7\xEC\x2\x288\x289\x5" + - "\x1E1\xF1\x2\x289\x28A\x5\x1D9\xED\x2\x28A\x28B\x5\x1E3\xF2\x2\x28B\x28C" + - "\x5\x1F5\xFB\x2\x28C\x36\x3\x2\x2\x2\x28D\x28E\x5\x1D7\xEC\x2\x28E\x28F" + - "\x5\x1E1\xF1\x2\x28F\x290\x5\x1D9\xED\x2\x290\x291\x5\x1F5\xFB\x2\x291" + - "\x292\x5\x1E3\xF2\x2\x292\x293\x5\x1FD\xFF\x2\x293\x294\x5\x1DB\xEE\x2" + - "\x294\x38\x3\x2\x2\x2\x295\x296\x5\x1D7\xEC\x2\x296\x297\x5\x1E9\xF5\x2" + - "\x297\x298\x5\x1D3\xEA\x2\x298\x299\x5\x1F7\xFC\x2\x299\x29A\x5\x1F7\xFC" + - "\x2\x29A:\x3\x2\x2\x2\x29B\x29C\x5\x1D7\xEC\x2\x29C\x29D\x5\x1E9\xF5\x2" + - "\x29D\x29E\x5\x1EF\xF8\x2\x29E\x29F\x5\x1F7\xFC\x2\x29F\x2A0\x5\x1DB\xEE" + - "\x2\x2A0<\x3\x2\x2\x2\x2A1\x2A2\x5\x1D7\xEC\x2\x2A2\x2A3\x5\x1EF\xF8\x2" + - "\x2A3\x2A4\x5\x1E9\xF5\x2\x2A4\x2A5\x5\x1E9\xF5\x2\x2A5\x2A6\x5\x1DB\xEE" + - "\x2\x2A6\x2A7\x5\x1D7\xEC\x2\x2A7\x2A8\x5\x1F9\xFD\x2\x2A8\x2A9\x5\x1E3" + - "\xF2\x2\x2A9\x2AA\x5\x1EF\xF8\x2\x2AA\x2AB\x5\x1ED\xF7\x2\x2AB>\x3\x2" + - "\x2\x2\x2AC\x2AD\x5\x1D7\xEC\x2\x2AD\x2AE\x5\x1EF\xF8\x2\x2AE\x2AF\x5" + - "\x1ED\xF7\x2\x2AF\x2B0\x5\x1F7\xFC\x2\x2B0\x2B1\x5\x1F9\xFD\x2\x2B1@\x3" + - "\x2\x2\x2\x2B2\x2B3\x5\x1D9\xED\x2\x2B3\x2B4\x5\x1D3\xEA\x2\x2B4\x2B5" + - "\x5\x1F9\xFD\x2\x2B5\x2B6\x5\x1D3\xEA\x2\x2B6\x2B7\x5\x1D5\xEB\x2\x2B7" + - "\x2B8\x5\x1D3\xEA\x2\x2B8\x2B9\x5\x1F7\xFC\x2\x2B9\x2BA\x5\x1DB\xEE\x2" + - "\x2BA\x42\x3\x2\x2\x2\x2BB\x2BC\x5\x1D9\xED\x2\x2BC\x2BD\x5\x1D3\xEA\x2" + - "\x2BD\x2BE\x5\x1F9\xFD\x2\x2BE\x2BF\x5\x1DB\xEE\x2\x2BF\x44\x3\x2\x2\x2" + - "\x2C0\x2C1\x5\x1D9\xED\x2\x2C1\x2C2\x5\x1DB\xEE\x2\x2C2\x2C3\x5\x1D7\xEC" + - "\x2\x2C3\x2C4\x5\x1E9\xF5\x2\x2C4\x2C5\x5\x1D3\xEA\x2\x2C5\x2C6\x5\x1F5" + - "\xFB\x2\x2C6\x2C7\x5\x1DB\xEE\x2\x2C7\x46\x3\x2\x2\x2\x2C8\x2C9\x5\x1D9" + - "\xED\x2\x2C9\x2CA\x5\x1DB\xEE\x2\x2CA\x2CB\x5\x1DD\xEF\x2\x2CB\x2CC\x5" + - "\x1D5\xEB\x2\x2CC\x2CD\x5\x1EF\xF8\x2\x2CD\x2CE\x5\x1EF\xF8\x2\x2CE\x2CF" + - "\x5\x1E9\xF5\x2\x2CFH\x3\x2\x2\x2\x2D0\x2D1\x5\x1D9\xED\x2\x2D1\x2D2\x5" + - "\x1DB\xEE\x2\x2D2\x2D3\x5\x1DD\xEF\x2\x2D3\x2D4\x5\x1D5\xEB\x2\x2D4\x2D5" + - "\x5\x203\x102\x2\x2D5\x2D6\x5\x1F9\xFD\x2\x2D6\x2D7\x5\x1DB\xEE\x2\x2D7" + - "J\x3\x2\x2\x2\x2D8\x2D9\x5\x1D9\xED\x2\x2D9\x2DA\x5\x1DB\xEE\x2\x2DA\x2DB" + - "\x5\x1DD\xEF\x2\x2DB\x2DC\x5\x1D9\xED\x2\x2DC\x2DD\x5\x1D3\xEA\x2\x2DD" + - "\x2DE\x5\x1F9\xFD\x2\x2DE\x2DF\x5\x1DB\xEE\x2\x2DFL\x3\x2\x2\x2\x2E0\x2E1" + - "\x5\x1D9\xED\x2\x2E1\x2E2\x5\x1DB\xEE\x2\x2E2\x2E3\x5\x1DD\xEF\x2\x2E3" + - "\x2E4\x5\x1D9\xED\x2\x2E4\x2E5\x5\x1D5\xEB\x2\x2E5\x2E6\x5\x1E9\xF5\x2" + - "\x2E6N\x3\x2\x2\x2\x2E7\x2E8\x5\x1D9\xED\x2\x2E8\x2E9\x5\x1DB\xEE\x2\x2E9" + - "\x2EA\x5\x1DD\xEF\x2\x2EA\x2EB\x5\x1D9\xED\x2\x2EB\x2EC\x5\x1DB\xEE\x2" + - "\x2EC\x2ED\x5\x1D7\xEC\x2\x2EDP\x3\x2\x2\x2\x2EE\x2EF\x5\x1D9\xED\x2\x2EF" + - "\x2F0\x5\x1DB\xEE\x2\x2F0\x2F1\x5\x1DD\xEF\x2\x2F1\x2F2\x5\x1D7\xEC\x2" + - "\x2F2\x2F3\x5\x1FB\xFE\x2\x2F3\x2F4\x5\x1F5\xFB\x2\x2F4R\x3\x2\x2\x2\x2F5" + - "\x2F6\x5\x1D9\xED\x2\x2F6\x2F7\x5\x1DB\xEE\x2\x2F7\x2F8\x5\x1DD\xEF\x2" + - "\x2F8\x2F9\x5\x1E3\xF2\x2\x2F9\x2FA\x5\x1ED\xF7\x2\x2FA\x2FB\x5\x1F9\xFD" + - "\x2\x2FBT\x3\x2\x2\x2\x2FC\x2FD\x5\x1D9\xED\x2\x2FD\x2FE\x5\x1DB\xEE\x2" + - "\x2FE\x2FF\x5\x1DD\xEF\x2\x2FF\x300\x5\x1E9\xF5\x2\x300\x301\x5\x1ED\xF7" + - "\x2\x301\x302\x5\x1DF\xF0\x2\x302V\x3\x2\x2\x2\x303\x304\x5\x1D9\xED\x2" + - "\x304\x305\x5\x1DB\xEE\x2\x305\x306\x5\x1DD\xEF\x2\x306\x307\x5\x1EF\xF8" + - "\x2\x307\x308\x5\x1D5\xEB\x2\x308\x309\x5\x1E5\xF3\x2\x309X\x3\x2\x2\x2" + - "\x30A\x30B\x5\x1D9\xED\x2\x30B\x30C\x5\x1DB\xEE\x2\x30C\x30D\x5\x1DD\xEF" + - "\x2\x30D\x30E\x5\x1F7\xFC\x2\x30E\x30F\x5\x1ED\xF7\x2\x30F\x310\x5\x1DF" + - "\xF0\x2\x310Z\x3\x2\x2\x2\x311\x312\x5\x1D9\xED\x2\x312\x313\x5\x1DB\xEE" + - "\x2\x313\x314\x5\x1DD\xEF\x2\x314\x315\x5\x1F7\xFC\x2\x315\x316\x5\x1F9" + - "\xFD\x2\x316\x317\x5\x1F5\xFB\x2\x317\\\x3\x2\x2\x2\x318\x319\x5\x1D9" + - "\xED\x2\x319\x31A\x5\x1DB\xEE\x2\x31A\x31B\x5\x1DD\xEF\x2\x31B\x31C\x5" + - "\x1FD\xFF\x2\x31C\x31D\x5\x1D3\xEA\x2\x31D\x31E\x5\x1F5\xFB\x2\x31E^\x3" + - "\x2\x2\x2\x31F\x320\x5\x1D9\xED\x2\x320\x321\x5\x1DB\xEE\x2\x321\x322" + - "\x5\x1E9\xF5\x2\x322\x323\x5\x1DB\xEE\x2\x323\x324\x5\x1F9\xFD\x2\x324" + - "\x325\x5\x1DB\xEE\x2\x325\x326\x5\x1F7\xFC\x2\x326\x327\x5\x1DB\xEE\x2" + - "\x327\x328\x5\x1F9\xFD\x2\x328\x329\x5\x1F9\xFD\x2\x329\x32A\x5\x1E3\xF2" + - "\x2\x32A\x32B\x5\x1ED\xF7\x2\x32B\x32C\x5\x1DF\xF0\x2\x32C`\x3\x2\x2\x2" + - "\x32D\x32E\x5\x1D9\xED\x2\x32E\x32F\x5\x1E3\xF2\x2\x32F\x330\x5\x1EB\xF6" + - "\x2\x330\x62\x3\x2\x2\x2\x331\x332\x5\x1D9\xED\x2\x332\x333\x5\x1EF\xF8" + - "\x2\x333\x64\x3\x2\x2\x2\x334\x335\x5\x1D9\xED\x2\x335\x336\x5\x1EF\xF8" + - "\x2\x336\x337\x5\x1FB\xFE\x2\x337\x338\x5\x1D5\xEB\x2\x338\x339\x5\x1E9" + - "\xF5\x2\x339\x33A\x5\x1DB\xEE\x2\x33A\x66\x3\x2\x2\x2\x33B\x33C\x5\x1DB" + - "\xEE\x2\x33C\x33D\x5\x1D3\xEA\x2\x33D\x33E\x5\x1D7\xEC\x2\x33E\x33F\x5" + - "\x1E1\xF1\x2\x33Fh\x3\x2\x2\x2\x340\x341\x5\x1DB\xEE\x2\x341\x342\x5\x1E9" + - "\xF5\x2\x342\x343\x5\x1F7\xFC\x2\x343\x344\x5\x1DB\xEE\x2\x344j\x3\x2" + - "\x2\x2\x345\x346\x5\x1DB\xEE\x2\x346\x347\x5\x1E9\xF5\x2\x347\x348\x5" + - "\x1F7\xFC\x2\x348\x349\x5\x1DB\xEE\x2\x349\x34A\x5\x1E3\xF2\x2\x34A\x34B" + - "\x5\x1DD\xEF\x2\x34Bl\x3\x2\x2\x2\x34C\x34D\x5\x1DB\xEE\x2\x34D\x34E\x5" + - "\x1ED\xF7\x2\x34E\x34F\x5\x1D9\xED\x2\x34F\x350\x5\x1C9\xE5\x2\x350\x351" + - "\x5\x1DB\xEE\x2\x351\x352\x5\x1ED\xF7\x2\x352\x353\x5\x1FB\xFE\x2\x353" + - "\x354\x5\x1EB\xF6\x2\x354n\x3\x2\x2\x2\x355\x356\x5\x1DB\xEE\x2\x356\x357" + - "\x5\x1ED\xF7\x2\x357\x358\x5\x1D9\xED\x2\x358\x359\x5\x1C9\xE5\x2\x359" + - "\x35A\x5\x1DD\xEF\x2\x35A\x35B\x5\x1FB\xFE\x2\x35B\x35C\x5\x1ED\xF7\x2" + - "\x35C\x35D\x5\x1D7\xEC\x2\x35D\x35E\x5\x1F9\xFD\x2\x35E\x35F\x5\x1E3\xF2" + - "\x2\x35F\x360\x5\x1EF\xF8\x2\x360\x361\x5\x1ED\xF7\x2\x361p\x3\x2\x2\x2" + - "\x362\x363\x5\x1DB\xEE\x2\x363\x364\x5\x1ED\xF7\x2\x364\x365\x5\x1D9\xED" + - "\x2\x365\x366\x5\x1C9\xE5\x2\x366\x367\x5\x1E3\xF2\x2\x367\x368\x5\x1DD" + - "\xEF\x2\x368r\x3\x2\x2\x2\x369\x36A\x5\x1DB\xEE\x2\x36A\x36B\x5\x1ED\xF7" + - "\x2\x36B\x36C\x5\x1D9\xED\x2\x36C\x36D\x5\x1C9\xE5\x2\x36D\x36E\x5\x1F1" + - "\xF9\x2\x36E\x36F\x5\x1F5\xFB\x2\x36F\x370\x5\x1EF\xF8\x2\x370\x371\x5" + - "\x1F1\xF9\x2\x371\x372\x5\x1DB\xEE\x2\x372\x373\x5\x1F5\xFB\x2\x373\x374" + - "\x5\x1F9\xFD\x2\x374\x375\x5\x203\x102\x2\x375t\x3\x2\x2\x2\x376\x377" + - "\x5\x1DB\xEE\x2\x377\x378\x5\x1ED\xF7\x2\x378\x379\x5\x1D9\xED\x2\x379" + - "\x37A\x5\x1C9\xE5\x2\x37A\x37B\x5\x1F7\xFC\x2\x37B\x37C\x5\x1DB\xEE\x2" + - "\x37C\x37D\x5\x1E9\xF5\x2\x37D\x37E\x5\x1DB\xEE\x2\x37E\x37F\x5\x1D7\xEC" + - "\x2\x37F\x380\x5\x1F9\xFD\x2\x380v\x3\x2\x2\x2\x381\x382\x5\x1DB\xEE\x2" + - "\x382\x383\x5\x1ED\xF7\x2\x383\x384\x5\x1D9\xED\x2\x384\x385\x5\x1C9\xE5" + - "\x2\x385\x386\x5\x1F7\xFC\x2\x386\x387\x5\x1FB\xFE\x2\x387\x388\x5\x1D5" + - "\xEB\x2\x388x\x3\x2\x2\x2\x389\x38A\x5\x1DB\xEE\x2\x38A\x38B\x5\x1ED\xF7" + - "\x2\x38B\x38C\x5\x1D9\xED\x2\x38C\x38D\x5\x1C9\xE5\x2\x38D\x38E\x5\x1F9" + - "\xFD\x2\x38E\x38F\x5\x203\x102\x2\x38F\x390\x5\x1F1\xF9\x2\x390\x391\x5" + - "\x1DB\xEE\x2\x391z\x3\x2\x2\x2\x392\x393\x5\x1DB\xEE\x2\x393\x394\x5\x1ED" + - "\xF7\x2\x394\x395\x5\x1D9\xED\x2\x395\x396\x5\x1C9\xE5\x2\x396\x397\x5" + - "\x1FF\x100\x2\x397\x398\x5\x1E3\xF2\x2\x398\x399\x5\x1F9\xFD\x2\x399\x39A" + - "\x5\x1E1\xF1\x2\x39A|\x3\x2\x2\x2\x39B\x39C\x5\x1DB\xEE\x2\x39C\x39D\x5" + - "\x1ED\xF7\x2\x39D\x39E\x5\x1D9\xED\x2\x39E~\x3\x2\x2\x2\x39F\x3A0\x5\x1DB" + - "\xEE\x2\x3A0\x3A1\x5\x1ED\xF7\x2\x3A1\x3A2\x5\x1FB\xFE\x2\x3A2\x3A3\x5" + - "\x1EB\xF6\x2\x3A3\x80\x3\x2\x2\x2\x3A4\x3A5\x5\x1DB\xEE\x2\x3A5\x3A6\x5" + - "\x1F3\xFA\x2\x3A6\x3A7\x5\x1FD\xFF\x2\x3A7\x82\x3\x2\x2\x2\x3A8\x3A9\x5" + - "\x1DB\xEE\x2\x3A9\x3AA\x5\x1F5\xFB\x2\x3AA\x3AB\x5\x1D3\xEA\x2\x3AB\x3AC" + - "\x5\x1F7\xFC\x2\x3AC\x3AD\x5\x1DB\xEE\x2\x3AD\x84\x3\x2\x2\x2\x3AE\x3AF" + - "\x5\x1DB\xEE\x2\x3AF\x3B0\x5\x1F5\xFB\x2\x3B0\x3B1\x5\x1F5\xFB\x2\x3B1" + - "\x3B2\x5\x1EF\xF8\x2\x3B2\x3B3\x5\x1F5\xFB\x2\x3B3\x86\x3\x2\x2\x2\x3B4" + - "\x3B5\x5\x1DB\xEE\x2\x3B5\x3B6\x5\x1FD\xFF\x2\x3B6\x3B7\x5\x1DB\xEE\x2" + - "\x3B7\x3B8\x5\x1ED\xF7\x2\x3B8\x3B9\x5\x1F9\xFD\x2\x3B9\x88\x3\x2\x2\x2" + - "\x3BA\x3BB\x5\x1DB\xEE\x2\x3BB\x3BC\x5\x201\x101\x2\x3BC\x3BD\x5\x1E3" + - "\xF2\x2\x3BD\x3BE\x5\x1F9\xFD\x2\x3BE\x3BF\x5\x1C9\xE5\x2\x3BF\x3C0\x5" + - "\x1D9\xED\x2\x3C0\x3C1\x5\x1EF\xF8\x2\x3C1\x8A\x3\x2\x2\x2\x3C2\x3C3\x5" + - "\x1DB\xEE\x2\x3C3\x3C4\x5\x201\x101\x2\x3C4\x3C5\x5\x1E3\xF2\x2\x3C5\x3C6" + - "\x5\x1F9\xFD\x2\x3C6\x3C7\x5\x1C9\xE5\x2\x3C7\x3C8\x5\x1DD\xEF\x2\x3C8" + - "\x3C9\x5\x1EF\xF8\x2\x3C9\x3CA\x5\x1F5\xFB\x2\x3CA\x8C\x3\x2\x2\x2\x3CB" + - "\x3CC\x5\x1DB\xEE\x2\x3CC\x3CD\x5\x201\x101\x2\x3CD\x3CE\x5\x1E3\xF2\x2" + - "\x3CE\x3CF\x5\x1F9\xFD\x2\x3CF\x3D0\x5\x1C9\xE5\x2\x3D0\x3D1\x5\x1DD\xEF" + - "\x2\x3D1\x3D2\x5\x1FB\xFE\x2\x3D2\x3D3\x5\x1ED\xF7\x2\x3D3\x3D4\x5\x1D7" + - "\xEC\x2\x3D4\x3D5\x5\x1F9\xFD\x2\x3D5\x3D6\x5\x1E3\xF2\x2\x3D6\x3D7\x5" + - "\x1EF\xF8\x2\x3D7\x3D8\x5\x1ED\xF7\x2\x3D8\x8E\x3\x2\x2\x2\x3D9\x3DA\x5" + - "\x1DB\xEE\x2\x3DA\x3DB\x5\x201\x101\x2\x3DB\x3DC\x5\x1E3\xF2\x2\x3DC\x3DD" + - "\x5\x1F9\xFD\x2\x3DD\x3DE\x5\x1C9\xE5\x2\x3DE\x3DF\x5\x1F1\xF9\x2\x3DF" + - "\x3E0\x5\x1F5\xFB\x2\x3E0\x3E1\x5\x1EF\xF8\x2\x3E1\x3E2\x5\x1F1\xF9\x2" + - "\x3E2\x3E3\x5\x1DB\xEE\x2\x3E3\x3E4\x5\x1F5\xFB\x2\x3E4\x3E5\x5\x1F9\xFD" + - "\x2\x3E5\x3E6\x5\x203\x102\x2\x3E6\x90\x3\x2\x2\x2\x3E7\x3E8\x5\x1DB\xEE" + - "\x2\x3E8\x3E9\x5\x201\x101\x2\x3E9\x3EA\x5\x1E3\xF2\x2\x3EA\x3EB\x5\x1F9" + - "\xFD\x2\x3EB\x3EC\x5\x1C9\xE5\x2\x3EC\x3ED\x5\x1F7\xFC\x2\x3ED\x3EE\x5" + - "\x1FB\xFE\x2\x3EE\x3EF\x5\x1D5\xEB\x2\x3EF\x92\x3\x2\x2\x2\x3F0\x3F1\x5" + - "\x1DD\xEF\x2\x3F1\x3F2\x5\x1D3\xEA\x2\x3F2\x3F3\x5\x1E9\xF5\x2\x3F3\x3F4" + - "\x5\x1F7\xFC\x2\x3F4\x3F5\x5\x1DB\xEE\x2\x3F5\x94\x3\x2\x2\x2\x3F6\x3F7" + - "\x5\x1DD\xEF\x2\x3F7\x3F8\x5\x1E3\xF2\x2\x3F8\x3F9\x5\x1E9\xF5\x2\x3F9" + - "\x3FA\x5\x1DB\xEE\x2\x3FA\x3FB\x5\x1D7\xEC\x2\x3FB\x3FC\x5\x1EF\xF8\x2" + - "\x3FC\x3FD\x5\x1F1\xF9\x2\x3FD\x3FE\x5\x203\x102\x2\x3FE\x96\x3\x2\x2" + - "\x2\x3FF\x400\x5\x1DD\xEF\x2\x400\x401\x5\x1F5\xFB\x2\x401\x402\x5\x1E3" + - "\xF2\x2\x402\x403\x5\x1DB\xEE\x2\x403\x404\x5\x1ED\xF7\x2\x404\x405\x5" + - "\x1D9\xED\x2\x405\x98\x3\x2\x2\x2\x406\x407\x5\x1DD\xEF\x2\x407\x408\x5" + - "\x1EF\xF8\x2\x408\x409\x5\x1F5\xFB\x2\x409\x9A\x3\x2\x2\x2\x40A\x40B\x5" + - "\x1DD\xEF\x2\x40B\x40C\x5\x1FB\xFE\x2\x40C\x40D\x5\x1ED\xF7\x2\x40D\x40E" + - "\x5\x1D7\xEC\x2\x40E\x40F\x5\x1F9\xFD\x2\x40F\x410\x5\x1E3\xF2\x2\x410" + - "\x411\x5\x1EF\xF8\x2\x411\x412\x5\x1ED\xF7\x2\x412\x9C\x3\x2\x2\x2\x413" + - "\x414\x5\x1DF\xF0\x2\x414\x415\x5\x1DB\xEE\x2\x415\x416\x5\x1F9\xFD\x2" + - "\x416\x9E\x3\x2\x2\x2\x417\x418\x5\x1DF\xF0\x2\x418\x419\x5\x1E9\xF5\x2" + - "\x419\x41A\x5\x1EF\xF8\x2\x41A\x41B\x5\x1D5\xEB\x2\x41B\x41C\x5\x1D3\xEA" + - "\x2\x41C\x41D\x5\x1E9\xF5\x2\x41D\xA0\x3\x2\x2\x2\x41E\x41F\x5\x1DF\xF0" + - "\x2\x41F\x420\x5\x1EF\xF8\x2\x420\x421\x5\x1F7\xFC\x2\x421\x422\x5\x1FB" + - "\xFE\x2\x422\x423\x5\x1D5\xEB\x2\x423\xA2\x3\x2\x2\x2\x424\x425\x5\x1DF" + - "\xF0\x2\x425\x426\x5\x1EF\xF8\x2\x426\x427\x5\x1F9\xFD\x2\x427\x428\x5" + - "\x1EF\xF8\x2\x428\xA4\x3\x2\x2\x2\x429\x42A\x5\x1E3\xF2\x2\x42A\x42B\x5" + - "\x1DD\xEF\x2\x42B\xA6\x3\x2\x2\x2\x42C\x42D\x5\x1E3\xF2\x2\x42D\x42E\x5" + - "\x1EB\xF6\x2\x42E\x42F\x5\x1F1\xF9\x2\x42F\xA8\x3\x2\x2\x2\x430\x431\x5" + - "\x1E3\xF2\x2\x431\x432\x5\x1EB\xF6\x2\x432\x433\x5\x1F1\xF9\x2\x433\x434" + - "\x5\x1E9\xF5\x2\x434\x435\x5\x1DB\xEE\x2\x435\x436\x5\x1EB\xF6\x2\x436" + - "\x437\x5\x1DB\xEE\x2\x437\x438\x5\x1ED\xF7\x2\x438\x439\x5\x1F9\xFD\x2" + - "\x439\x43A\x5\x1F7\xFC\x2\x43A\xAA\x3\x2\x2\x2\x43B\x43C\x5\x1E3\xF2\x2" + - "\x43C\x43D\x5\x1ED\xF7\x2\x43D\xAC\x3\x2\x2\x2\x43E\x43F\x5\x1E3\xF2\x2" + - "\x43F\x440\x5\x1ED\xF7\x2\x440\x441\x5\x1F1\xF9\x2\x441\x442\x5\x1FB\xFE" + - "\x2\x442\x443\x5\x1F9\xFD\x2\x443\xAE\x3\x2\x2\x2\x444\x445\x5\x1E3\xF2" + - "\x2\x445\x446\x5\x1F7\xFC\x2\x446\xB0\x3\x2\x2\x2\x447\x448\x5\x1E3\xF2" + - "\x2\x448\x449\x5\x1ED\xF7\x2\x449\x44A\x5\x1F9\xFD\x2\x44A\x44B\x5\x1DB" + - "\xEE\x2\x44B\x44C\x5\x1DF\xF0\x2\x44C\x44D\x5\x1DB\xEE\x2\x44D\x44E\x5" + - "\x1F5\xFB\x2\x44E\xB2\x3\x2\x2\x2\x44F\x450\x5\x1E7\xF4\x2\x450\x451\x5" + - "\x1E3\xF2\x2\x451\x452\x5\x1E9\xF5\x2\x452\x453\x5\x1E9\xF5\x2\x453\xB4" + - "\x3\x2\x2\x2\x454\x455\x5\x1E9\xF5\x2\x455\x456\x5\x1EF\xF8\x2\x456\x457" + - "\x5\x1D3\xEA\x2\x457\x458\x5\x1D9\xED\x2\x458\xB6\x3\x2\x2\x2\x459\x45A" + - "\x5\x1E9\xF5\x2\x45A\x45B\x5\x1EF\xF8\x2\x45B\x45C\x5\x1D7\xEC\x2\x45C" + - "\x45D\x5\x1E7\xF4\x2\x45D\xB8\x3\x2\x2\x2\x45E\x45F\x5\x1E9\xF5\x2\x45F" + - "\x460\x5\x1EF\xF8\x2\x460\x461\x5\x1ED\xF7\x2\x461\x462\x5\x1DF\xF0\x2" + - "\x462\xBA\x3\x2\x2\x2\x463\x464\x5\x1E9\xF5\x2\x464\x465\x5\x1EF\xF8\x2" + - "\x465\x466\x5\x1EF\xF8\x2\x466\x467\x5\x1F1\xF9\x2\x467\xBC\x3\x2\x2\x2" + - "\x468\x469\x5\x1E9\xF5\x2\x469\x46A\x5\x1DB\xEE\x2\x46A\x46B\x5\x1ED\xF7" + - "\x2\x46B\xBE\x3\x2\x2\x2\x46C\x46D\x5\x1E9\xF5\x2\x46D\x46E\x5\x1DB\xEE" + - "\x2\x46E\x46F\x5\x1F9\xFD\x2\x46F\xC0\x3\x2\x2\x2\x470\x471\x5\x1E9\xF5" + - "\x2\x471\x472\x5\x1E3\xF2\x2\x472\x473\x5\x1D5\xEB\x2\x473\xC2\x3\x2\x2" + - "\x2\x474\x475\x5\x1E9\xF5\x2\x475\x476\x5\x1E3\xF2\x2\x476\x477\x5\x1E7" + - "\xF4\x2\x477\x478\x5\x1DB\xEE\x2\x478\xC4\x3\x2\x2\x2\x479\x47A\x5\x1E9" + - "\xF5\x2\x47A\x47B\x5\x1E3\xF2\x2\x47B\x47C\x5\x1ED\xF7\x2\x47C\x47D\x5" + - "\x1DB\xEE\x2\x47D\x47E\x5\x1C9\xE5\x2\x47E\x47F\x5\x1E3\xF2\x2\x47F\x480" + - "\x5\x1ED\xF7\x2\x480\x481\x5\x1F1\xF9\x2\x481\x482\x5\x1FB\xFE\x2\x482" + - "\x483\x5\x1F9\xFD\x2\x483\xC6\x3\x2\x2\x2\x484\x485\x5\x1E9\xF5\x2\x485" + - "\x486\x5\x1EF\xF8\x2\x486\x487\x5\x1D7\xEC\x2\x487\x488\x5\x1E7\xF4\x2" + - "\x488\x489\x5\x1C9\xE5\x2\x489\x48A\x5\x1F5\xFB\x2\x48A\x48B\x5\x1DB\xEE" + - "\x2\x48B\x48C\x5\x1D3\xEA\x2\x48C\x48D\x5\x1D9\xED\x2\x48D\xC8\x3\x2\x2" + - "\x2\x48E\x48F\x5\x1E9\xF5\x2\x48F\x490\x5\x1EF\xF8\x2\x490\x491\x5\x1D7" + - "\xEC\x2\x491\x492\x5\x1E7\xF4\x2\x492\x493\x5\x1C9\xE5\x2\x493\x494\x5" + - "\x1FF\x100\x2\x494\x495\x5\x1F5\xFB\x2\x495\x496\x5\x1E3\xF2\x2\x496\x497" + - "\x5\x1F9\xFD\x2\x497\x498\x5\x1DB\xEE\x2\x498\xCA\x3\x2\x2\x2\x499\x49A" + - "\x5\x1E9\xF5\x2\x49A\x49B\x5\x1EF\xF8\x2\x49B\x49C\x5\x1D7\xEC\x2\x49C" + - "\x49D\x5\x1E7\xF4\x2\x49D\x49E\x5\x1C9\xE5\x2\x49E\x49F\x5\x1F5\xFB\x2" + - "\x49F\x4A0\x5\x1DB\xEE\x2\x4A0\x4A1\x5\x1D3\xEA\x2\x4A1\x4A2\x5\x1D9\xED" + - "\x2\x4A2\x4A3\x5\x1C9\xE5\x2\x4A3\x4A4\x5\x1FF\x100\x2\x4A4\x4A5\x5\x1F5" + - "\xFB\x2\x4A5\x4A6\x5\x1E3\xF2\x2\x4A6\x4A7\x5\x1F9\xFD\x2\x4A7\x4A8\x5" + - "\x1DB\xEE\x2\x4A8\xCC\x3\x2\x2\x2\x4A9\x4AA\x5\x1E9\xF5\x2\x4AA\x4AB\x5" + - "\x1F7\xFC\x2\x4AB\x4AC\x5\x1DB\xEE\x2\x4AC\x4AD\x5\x1F9\xFD\x2\x4AD\xCE" + - "\x3\x2\x2\x2\x4AE\x4AF\a%\x2\x2\x4AF\x4B0\x5\x1D7\xEC\x2\x4B0\x4B1\x5" + - "\x1EF\xF8\x2\x4B1\x4B2\x5\x1ED\xF7\x2\x4B2\x4B3\x5\x1F7\xFC\x2\x4B3\x4B4" + - "\x5\x1F9\xFD\x2\x4B4\xD0\x3\x2\x2\x2\x4B5\x4B6\a%\x2\x2\x4B6\x4B7\x5\x1E3" + - "\xF2\x2\x4B7\x4B8\x5\x1DD\xEF\x2\x4B8\xD2\x3\x2\x2\x2\x4B9\x4BA\a%\x2" + - "\x2\x4BA\x4BB\x5\x1DB\xEE\x2\x4BB\x4BC\x5\x1E9\xF5\x2\x4BC\x4BD\x5\x1F7" + - "\xFC\x2\x4BD\x4BE\x5\x1DB\xEE\x2\x4BE\x4BF\x5\x1E3\xF2\x2\x4BF\x4C0\x5" + - "\x1DD\xEF\x2\x4C0\xD4\x3\x2\x2\x2\x4C1\x4C2\a%\x2\x2\x4C2\x4C3\x5\x1DB" + - "\xEE\x2\x4C3\x4C4\x5\x1E9\xF5\x2\x4C4\x4C5\x5\x1F7\xFC\x2\x4C5\x4C6\x5" + - "\x1DB\xEE\x2\x4C6\xD6\x3\x2\x2\x2\x4C7\x4C8\a%\x2\x2\x4C8\x4C9\x5\x1DB" + - "\xEE\x2\x4C9\x4CA\x5\x1ED\xF7\x2\x4CA\x4CC\x5\x1D9\xED\x2\x4CB\x4CD\x5" + - "\x1C9\xE5\x2\x4CC\x4CB\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CE\x3" + - "\x2\x2\x2\x4CE\x4CF\x5\x1E3\xF2\x2\x4CF\x4D0\x5\x1DD\xEF\x2\x4D0\xD8\x3" + - "\x2\x2\x2\x4D1\x4D2\x5\x1EB\xF6\x2\x4D2\x4D3\x5\x1DB\xEE\x2\x4D3\xDA\x3" + - "\x2\x2\x2\x4D4\x4D5\x5\x1EB\xF6\x2\x4D5\x4D6\x5\x1E3\xF2\x2\x4D6\x4D7" + - "\x5\x1D9\xED\x2\x4D7\xDC\x3\x2\x2\x2\x4D8\x4D9\x5\x1EB\xF6\x2\x4D9\x4DA" + - "\x5\x1E7\xF4\x2\x4DA\x4DB\x5\x1D9\xED\x2\x4DB\x4DC\x5\x1E3\xF2\x2\x4DC" + - "\x4DD\x5\x1F5\xFB\x2\x4DD\xDE\x3\x2\x2\x2\x4DE\x4DF\x5\x1EB\xF6\x2\x4DF" + - "\x4E0\x5\x1EF\xF8\x2\x4E0\x4E1\x5\x1D9\xED\x2\x4E1\xE0\x3\x2\x2\x2\x4E2" + - "\x4E3\x5\x1ED\xF7\x2\x4E3\x4E4\x5\x1D3\xEA\x2\x4E4\x4E5\x5\x1EB\xF6\x2" + - "\x4E5\x4E6\x5\x1DB\xEE\x2\x4E6\xE2\x3\x2\x2\x2\x4E7\x4E8\x5\x1ED\xF7\x2" + - "\x4E8\x4E9\x5\x1DB\xEE\x2\x4E9\x4EA\x5\x201\x101\x2\x4EA\x4EB\x5\x1F9" + - "\xFD\x2\x4EB\xE4\x3\x2\x2\x2\x4EC\x4ED\x5\x1ED\xF7\x2\x4ED\x4EE\x5\x1DB" + - "\xEE\x2\x4EE\x4EF\x5\x1FF\x100\x2\x4EF\xE6\x3\x2\x2\x2\x4F0\x4F1\x5\x1ED" + - "\xF7\x2\x4F1\x4F2\x5\x1EF\xF8\x2\x4F2\x4F3\x5\x1F9\xFD\x2\x4F3\xE8\x3" + - "\x2\x2\x2\x4F4\x4F5\x5\x1ED\xF7\x2\x4F5\x4F6\x5\x1EF\xF8\x2\x4F6\x4F7" + - "\x5\x1F9\xFD\x2\x4F7\x4F8\x5\x1E1\xF1\x2\x4F8\x4F9\x5\x1E3\xF2\x2\x4F9" + - "\x4FA\x5\x1ED\xF7\x2\x4FA\x4FB\x5\x1DF\xF0\x2\x4FB\xEA\x3\x2\x2\x2\x4FC" + - "\x4FD\x5\x1ED\xF7\x2\x4FD\x4FE\x5\x1FB\xFE\x2\x4FE\x4FF\x5\x1E9\xF5\x2" + - "\x4FF\x500\x5\x1E9\xF5\x2\x500\xEC\x3\x2\x2\x2\x501\x502\x5\x1EF\xF8\x2" + - "\x502\x503\x5\x1ED\xF7\x2\x503\xEE\x3\x2\x2\x2\x504\x505\x5\x1EF\xF8\x2" + - "\x505\x506\x5\x1ED\xF7\x2\x506\x507\x5\x1C9\xE5\x2\x507\x508\x5\x1DB\xEE" + - "\x2\x508\x509\x5\x1F5\xFB\x2\x509\x50A\x5\x1F5\xFB\x2\x50A\x50B\x5\x1EF" + - "\xF8\x2\x50B\x50C\x5\x1F5\xFB\x2\x50C\xF0\x3\x2\x2\x2\x50D\x50E\x5\x1EF" + - "\xF8\x2\x50E\x50F\x5\x1ED\xF7\x2\x50F\x510\x5\x1C9\xE5\x2\x510\x511\x5" + - "\x1E9\xF5\x2\x511\x512\x5\x1EF\xF8\x2\x512\x513\x5\x1D7\xEC\x2\x513\x514" + - "\x5\x1D3\xEA\x2\x514\x515\x5\x1E9\xF5\x2\x515\x516\x5\x1C9\xE5\x2\x516" + - "\x517\x5\x1DB\xEE\x2\x517\x518\x5\x1F5\xFB\x2\x518\x519\x5\x1F5\xFB\x2" + - "\x519\x51A\x5\x1EF\xF8\x2\x51A\x51B\x5\x1F5\xFB\x2\x51B\xF2\x3\x2\x2\x2" + - "\x51C\x51D\x5\x1EF\xF8\x2\x51D\x51E\x5\x1F1\xF9\x2\x51E\x51F\x5\x1DB\xEE" + - "\x2\x51F\x520\x5\x1ED\xF7\x2\x520\xF4\x3\x2\x2\x2\x521\x522\x5\x1EF\xF8" + - "\x2\x522\x523\x5\x1F1\xF9\x2\x523\x524\x5\x1F9\xFD\x2\x524\x525\x5\x1E3" + - "\xF2\x2\x525\x526\x5\x1EF\xF8\x2\x526\x527\x5\x1ED\xF7\x2\x527\x528\x5" + - "\x1D3\xEA\x2\x528\x529\x5\x1E9\xF5\x2\x529\xF6\x3\x2\x2\x2\x52A\x52B\x5" + - "\x1EF\xF8\x2\x52B\x52C\x5\x1F1\xF9\x2\x52C\x52D\x5\x1F9\xFD\x2\x52D\x52E" + - "\x5\x1E3\xF2\x2\x52E\x52F\x5\x1EF\xF8\x2\x52F\x530\x5\x1ED\xF7\x2\x530" + - "\x531\x5\x1C9\xE5\x2\x531\x532\x5\x1D5\xEB\x2\x532\x533\x5\x1D3\xEA\x2" + - "\x533\x534\x5\x1F7\xFC\x2\x534\x535\x5\x1DB\xEE\x2\x535\xF8\x3\x2\x2\x2" + - "\x536\x537\x5\x1EF\xF8\x2\x537\x538\x5\x1F1\xF9\x2\x538\x539\x5\x1F9\xFD" + - "\x2\x539\x53A\x5\x1E3\xF2\x2\x53A\x53B\x5\x1EF\xF8\x2\x53B\x53C\x5\x1ED" + - "\xF7\x2\x53C\x53D\x5\x1C9\xE5\x2\x53D\x53E\x5\x1DB\xEE\x2\x53E\x53F\x5" + - "\x201\x101\x2\x53F\x540\x5\x1F1\xF9\x2\x540\x541\x5\x1E9\xF5\x2\x541\x542" + - "\x5\x1E3\xF2\x2\x542\x543\x5\x1D7\xEC\x2\x543\x544\x5\x1E3\xF2\x2\x544" + - "\x545\x5\x1F9\xFD\x2\x545\xFA\x3\x2\x2\x2\x546\x547\x5\x1EF\xF8\x2\x547" + - "\x548\x5\x1F1\xF9\x2\x548\x549\x5\x1F9\xFD\x2\x549\x54A\x5\x1E3\xF2\x2" + - "\x54A\x54B\x5\x1EF\xF8\x2\x54B\x54C\x5\x1ED\xF7\x2\x54C\x54D\x5\x1C9\xE5" + - "\x2\x54D\x54E\x5\x1D7\xEC\x2\x54E\x54F\x5\x1EF\xF8\x2\x54F\x550\x5\x1EB" + - "\xF6\x2\x550\x551\x5\x1F1\xF9\x2\x551\x552\x5\x1D3\xEA\x2\x552\x553\x5" + - "\x1F5\xFB\x2\x553\x554\x5\x1DB\xEE\x2\x554\xFC\x3\x2\x2\x2\x555\x556\x5" + - "\x1EF\xF8\x2\x556\x557\x5\x1F1\xF9\x2\x557\x558\x5\x1F9\xFD\x2\x558\x559" + - "\x5\x1E3\xF2\x2\x559\x55A\x5\x1EF\xF8\x2\x55A\x55B\x5\x1ED\xF7\x2\x55B" + - "\x55C\x5\x1C9\xE5\x2\x55C\x55D\x5\x1F1\xF9\x2\x55D\x55E\x5\x1F5\xFB\x2" + - "\x55E\x55F\x5\x1E3\xF2\x2\x55F\x560\x5\x1FD\xFF\x2\x560\x561\x5\x1D3\xEA" + - "\x2\x561\x562\x5\x1F9\xFD\x2\x562\x563\x5\x1DB\xEE\x2\x563\x564\x5\x1C9" + - "\xE5\x2\x564\x565\x5\x1EB\xF6\x2\x565\x566\x5\x1EF\xF8\x2\x566\x567\x5" + - "\x1D9\xED\x2\x567\x568\x5\x1FB\xFE\x2\x568\x569\x5\x1E9\xF5\x2\x569\x56A" + - "\x5\x1DB\xEE\x2\x56A\xFE\x3\x2\x2\x2\x56B\x56C\x5\x1EF\xF8\x2\x56C\x56D" + - "\x5\x1F5\xFB\x2\x56D\x100\x3\x2\x2\x2\x56E\x56F\x5\x1EF\xF8\x2\x56F\x570" + - "\x5\x1FB\xFE\x2\x570\x571\x5\x1F9\xFD\x2\x571\x572\x5\x1F1\xF9\x2\x572" + - "\x573\x5\x1FB\xFE\x2\x573\x574\x5\x1F9\xFD\x2\x574\x102\x3\x2\x2\x2\x575" + - "\x576\x5\x1F1\xF9\x2\x576\x577\x5\x1D3\xEA\x2\x577\x578\x5\x1F5\xFB\x2" + - "\x578\x579\x5\x1D3\xEA\x2\x579\x57A\x5\x1EB\xF6\x2\x57A\x57B\x5\x1D3\xEA" + - "\x2\x57B\x57C\x5\x1F5\xFB\x2\x57C\x57D\x5\x1F5\xFB\x2\x57D\x57E\x5\x1D3" + - "\xEA\x2\x57E\x57F\x5\x203\x102\x2\x57F\x104\x3\x2\x2\x2\x580\x581\x5\x1F1" + - "\xF9\x2\x581\x582\x5\x1F5\xFB\x2\x582\x583\x5\x1DB\xEE\x2\x583\x584\x5" + - "\x1F7\xFC\x2\x584\x585\x5\x1DB\xEE\x2\x585\x586\x5\x1F5\xFB\x2\x586\x587" + - "\x5\x1FD\xFF\x2\x587\x588\x5\x1DB\xEE\x2\x588\x106\x3\x2\x2\x2\x589\x58A" + - "\x5\x1F1\xF9\x2\x58A\x58B\x5\x1F5\xFB\x2\x58B\x58C\x5\x1E3\xF2\x2\x58C" + - "\x58D\x5\x1ED\xF7\x2\x58D\x58E\x5\x1F9\xFD\x2\x58E\x108\x3\x2\x2\x2\x58F" + - "\x590\x5\x1F1\xF9\x2\x590\x591\x5\x1F5\xFB\x2\x591\x592\x5\x1E3\xF2\x2" + - "\x592\x593\x5\x1FD\xFF\x2\x593\x594\x5\x1D3\xEA\x2\x594\x595\x5\x1F9\xFD" + - "\x2\x595\x596\x5\x1DB\xEE\x2\x596\x10A\x3\x2\x2\x2\x597\x598\x5\x1F1\xF9" + - "\x2\x598\x599\x5\x1F5\xFB\x2\x599\x59A\x5\x1EF\xF8\x2\x59A\x59B\x5\x1F1" + - "\xF9\x2\x59B\x59C\x5\x1DB\xEE\x2\x59C\x59D\x5\x1F5\xFB\x2\x59D\x59E\x5" + - "\x1F9\xFD\x2\x59E\x59F\x5\x203\x102\x2\x59F\x5A0\x5\x1C9\xE5\x2\x5A0\x5A1" + - "\x5\x1DF\xF0\x2\x5A1\x5A2\x5\x1DB\xEE\x2\x5A2\x5A3\x5\x1F9\xFD\x2\x5A3" + - "\x10C\x3\x2\x2\x2\x5A4\x5A5\x5\x1F1\xF9\x2\x5A5\x5A6\x5\x1F5\xFB\x2\x5A6" + - "\x5A7\x5\x1EF\xF8\x2\x5A7\x5A8\x5\x1F1\xF9\x2\x5A8\x5A9\x5\x1DB\xEE\x2" + - "\x5A9\x5AA\x5\x1F5\xFB\x2\x5AA\x5AB\x5\x1F9\xFD\x2\x5AB\x5AC\x5\x203\x102" + - "\x2\x5AC\x5AD\x5\x1C9\xE5\x2\x5AD\x5AE\x5\x1E9\xF5\x2\x5AE\x5AF\x5\x1DB" + - "\xEE\x2\x5AF\x5B0\x5\x1F9\xFD\x2\x5B0\x10E\x3\x2\x2\x2\x5B1\x5B2\x5\x1F1" + - "\xF9\x2\x5B2\x5B3\x5\x1F5\xFB\x2\x5B3\x5B4\x5\x1EF\xF8\x2\x5B4\x5B5\x5" + - "\x1F1\xF9\x2\x5B5\x5B6\x5\x1DB\xEE\x2\x5B6\x5B7\x5\x1F5\xFB\x2\x5B7\x5B8" + - "\x5\x1F9\xFD\x2\x5B8\x5B9\x5\x203\x102\x2\x5B9\x5BA\x5\x1C9\xE5\x2\x5BA" + - "\x5BB\x5\x1F7\xFC\x2\x5BB\x5BC\x5\x1DB\xEE\x2\x5BC\x5BD\x5\x1F9\xFD\x2" + - "\x5BD\x110\x3\x2\x2\x2\x5BE\x5BF\x5\x1F1\xF9\x2\x5BF\x5C0\x5\x1F9\xFD" + - "\x2\x5C0\x5C1\x5\x1F5\xFB\x2\x5C1\x5C2\x5\x1F7\xFC\x2\x5C2\x5C3\x5\x1D3" + - "\xEA\x2\x5C3\x5C4\x5\x1DD\xEF\x2\x5C4\x5C5\x5\x1DB\xEE\x2\x5C5\x112\x3" + - "\x2\x2\x2\x5C6\x5C7\x5\x1F1\xF9\x2\x5C7\x5C8\x5\x1FB\xFE\x2\x5C8\x5C9" + - "\x5\x1D5\xEB\x2\x5C9\x5CA\x5\x1E9\xF5\x2\x5CA\x5CB\x5\x1E3\xF2\x2\x5CB" + - "\x5CC\x5\x1D7\xEC\x2\x5CC\x114\x3\x2\x2\x2\x5CD\x5CE\x5\x1F1\xF9\x2\x5CE" + - "\x5CF\x5\x1FB\xFE\x2\x5CF\x5D0\x5\x1F9\xFD\x2\x5D0\x116\x3\x2\x2\x2\x5D1" + - "\x5D2\x5\x1F5\xFB\x2\x5D2\x5D3\x5\x1D3\xEA\x2\x5D3\x5D4\x5\x1ED\xF7\x2" + - "\x5D4\x5D5\x5\x1D9\xED\x2\x5D5\x5D6\x5\x1EF\xF8\x2\x5D6\x5D7\x5\x1EB\xF6" + - "\x2\x5D7\x118\x3\x2\x2\x2\x5D8\x5D9\x5\x1F5\xFB\x2\x5D9\x5DA\x5\x1D3\xEA" + - "\x2\x5DA\x5DB\x5\x1ED\xF7\x2\x5DB\x5DC\x5\x1D9\xED\x2\x5DC\x5DD\x5\x1EF" + - "\xF8\x2\x5DD\x5DE\x5\x1EB\xF6\x2\x5DE\x5DF\x5\x1E3\xF2\x2\x5DF\x5E0\x5" + - "\x205\x103\x2\x5E0\x5E1\x5\x1DB\xEE\x2\x5E1\x11A\x3\x2\x2\x2\x5E2\x5E3" + - "\x5\x1F5\xFB\x2\x5E3\x5E4\x5\x1D3\xEA\x2\x5E4\x5E5\x5\x1E3\xF2\x2\x5E5" + - "\x5E6\x5\x1F7\xFC\x2\x5E6\x5E7\x5\x1DB\xEE\x2\x5E7\x5E8\x5\x1DB\xEE\x2" + - "\x5E8\x5E9\x5\x1FD\xFF\x2\x5E9\x5EA\x5\x1DB\xEE\x2\x5EA\x5EB\x5\x1ED\xF7" + - "\x2\x5EB\x5EC\x5\x1F9\xFD\x2\x5EC\x11C\x3\x2\x2\x2\x5ED\x5EE\x5\x1F5\xFB" + - "\x2\x5EE\x5EF\x5\x1DB\xEE\x2\x5EF\x5F0\x5\x1D3\xEA\x2\x5F0\x5F1\x5\x1D9" + - "\xED\x2\x5F1\x11E\x3\x2\x2\x2\x5F2\x5F3\x5\x1F5\xFB\x2\x5F3\x5F4\x5\x1DB" + - "\xEE\x2\x5F4\x5F5\x5\x1D3\xEA\x2\x5F5\x5F6\x5\x1D9\xED\x2\x5F6\x5F7\x5" + - "\x1C9\xE5\x2\x5F7\x5F8\x5\x1FF\x100\x2\x5F8\x5F9\x5\x1F5\xFB\x2\x5F9\x5FA" + - "\x5\x1E3\xF2\x2\x5FA\x5FB\x5\x1F9\xFD\x2\x5FB\x5FC\x5\x1DB\xEE\x2\x5FC" + - "\x120\x3\x2\x2\x2\x5FD\x5FE\x5\x1F5\xFB\x2\x5FE\x5FF\x5\x1DB\xEE\x2\x5FF" + - "\x600\x5\x1D9\xED\x2\x600\x601\x5\x1E3\xF2\x2\x601\x602\x5\x1EB\xF6\x2" + - "\x602\x122\x3\x2\x2\x2\x603\x604\x5\x1F5\xFB\x2\x604\x605\x5\x1DB\xEE" + - "\x2\x605\x606\x5\x1EB\xF6\x2\x606\x124\x3\x2\x2\x2\x607\x608\x5\x1F5\xFB" + - "\x2\x608\x609\x5\x1DB\xEE\x2\x609\x60A\x5\x1F7\xFC\x2\x60A\x60B\x5\x1DB" + - "\xEE\x2\x60B\x60C\x5\x1F9\xFD\x2\x60C\x126\x3\x2\x2\x2\x60D\x60E\x5\x1F5" + - "\xFB\x2\x60E\x60F\x5\x1DB\xEE\x2\x60F\x610\x5\x1F7\xFC\x2\x610\x611\x5" + - "\x1FB\xFE\x2\x611\x612\x5\x1EB\xF6\x2\x612\x613\x5\x1DB\xEE\x2\x613\x128" + - "\x3\x2\x2\x2\x614\x615\x5\x1F5\xFB\x2\x615\x616\x5\x1DB\xEE\x2\x616\x617" + - "\x5\x1F9\xFD\x2\x617\x618\x5\x1FB\xFE\x2\x618\x619\x5\x1F5\xFB\x2\x619" + - "\x61A\x5\x1ED\xF7\x2\x61A\x12A\x3\x2\x2\x2\x61B\x61C\x5\x1F5\xFB\x2\x61C" + - "\x61D\x5\x1EB\xF6\x2\x61D\x61E\x5\x1D9\xED\x2\x61E\x61F\x5\x1E3\xF2\x2" + - "\x61F\x620\x5\x1F5\xFB\x2\x620\x12C\x3\x2\x2\x2\x621\x622\x5\x1F5\xFB" + - "\x2\x622\x623\x5\x1F7\xFC\x2\x623\x624\x5\x1DB\xEE\x2\x624\x625\x5\x1F9" + - "\xFD\x2\x625\x12E\x3\x2\x2\x2\x626\x627\x5\x1F7\xFC\x2\x627\x628\x5\x1D3" + - "\xEA\x2\x628\x629\x5\x1FD\xFF\x2\x629\x62A\x5\x1DB\xEE\x2\x62A\x62B\x5" + - "\x1F1\xF9\x2\x62B\x62C\x5\x1E3\xF2\x2\x62C\x62D\x5\x1D7\xEC\x2\x62D\x62E" + - "\x5\x1F9\xFD\x2\x62E\x62F\x5\x1FB\xFE\x2\x62F\x630\x5\x1F5\xFB\x2\x630" + - "\x631\x5\x1DB\xEE\x2\x631\x130\x3\x2\x2\x2\x632\x633\x5\x1F7\xFC\x2\x633" + - "\x634\x5\x1D3\xEA\x2\x634\x635\x5\x1FD\xFF\x2\x635\x636\x5\x1DB\xEE\x2" + - "\x636\x637\x5\x1F7\xFC\x2\x637\x638\x5\x1DB\xEE\x2\x638\x639\x5\x1F9\xFD" + - "\x2\x639\x63A\x5\x1F9\xFD\x2\x63A\x63B\x5\x1E3\xF2\x2\x63B\x63C\x5\x1ED" + - "\xF7\x2\x63C\x63D\x5\x1DF\xF0\x2\x63D\x132\x3\x2\x2\x2\x63E\x63F\x5\x1F7" + - "\xFC\x2\x63F\x640\x5\x1DB\xEE\x2\x640\x641\x5\x1DB\xEE\x2\x641\x642\x5" + - "\x1E7\xF4\x2\x642\x134\x3\x2\x2\x2\x643\x644\x5\x1F7\xFC\x2\x644\x645" + - "\x5\x1DB\xEE\x2\x645\x646\x5\x1E9\xF5\x2\x646\x647\x5\x1DB\xEE\x2\x647" + - "\x648\x5\x1D7\xEC\x2\x648\x649\x5\x1F9\xFD\x2\x649\x136\x3\x2\x2\x2\x64A" + - "\x64B\x5\x1F7\xFC\x2\x64B\x64C\x5\x1DB\xEE\x2\x64C\x64D\x5\x1ED\xF7\x2" + - "\x64D\x64E\x5\x1D9\xED\x2\x64E\x64F\x5\x1E7\xF4\x2\x64F\x650\x5\x1DB\xEE" + - "\x2\x650\x651\x5\x203\x102\x2\x651\x652\x5\x1F7\xFC\x2\x652\x138\x3\x2" + - "\x2\x2\x653\x654\x5\x1F7\xFC\x2\x654\x655\x5\x1DB\xEE\x2\x655\x656\x5" + - "\x1F9\xFD\x2\x656\x13A\x3\x2\x2\x2\x657\x658\x5\x1F7\xFC\x2\x658\x659" + - "\x5\x1DB\xEE\x2\x659\x65A\x5\x1F9\xFD\x2\x65A\x65B\x5\x1D3\xEA\x2\x65B" + - "\x65C\x5\x1F9\xFD\x2\x65C\x65D\x5\x1F9\xFD\x2\x65D\x65E\x5\x1F5\xFB\x2" + - "\x65E\x13C\x3\x2\x2\x2\x65F\x660\x5\x1F7\xFC\x2\x660\x661\x5\x1E1\xF1" + - "\x2\x661\x662\x5\x1D3\xEA\x2\x662\x663\x5\x1F5\xFB\x2\x663\x664\x5\x1DB" + - "\xEE\x2\x664\x665\x5\x1D9\xED\x2\x665\x13E\x3\x2\x2\x2\x666\x667\x5\x1F7" + - "\xFC\x2\x667\x668\x5\x1E3\xF2\x2\x668\x669\x5\x1ED\xF7\x2\x669\x66A\x5" + - "\x1DF\xF0\x2\x66A\x66B\x5\x1E9\xF5\x2\x66B\x66C\x5\x1DB\xEE\x2\x66C\x140" + - "\x3\x2\x2\x2\x66D\x66E\x5\x1F7\xFC\x2\x66E\x66F\x5\x1F1\xF9\x2\x66F\x670" + - "\x5\x1D7\xEC\x2\x670\x142\x3\x2\x2\x2\x671\x672\x5\x1F7\xFC\x2\x672\x673" + - "\x5\x1F9\xFD\x2\x673\x674\x5\x1D3\xEA\x2\x674\x675\x5\x1F9\xFD\x2\x675" + - "\x676\x5\x1E3\xF2\x2\x676\x677\x5\x1D7\xEC\x2\x677\x144\x3\x2\x2\x2\x678" + - "\x679\x5\x1F7\xFC\x2\x679\x67A\x5\x1F9\xFD\x2\x67A\x67B\x5\x1DB\xEE\x2" + - "\x67B\x67C\x5\x1F1\xF9\x2\x67C\x146\x3\x2\x2\x2\x67D\x67E\x5\x1F7\xFC" + - "\x2\x67E\x67F\x5\x1F9\xFD\x2\x67F\x680\x5\x1EF\xF8\x2\x680\x681\x5\x1F1" + - "\xF9\x2\x681\x148\x3\x2\x2\x2\x682\x683\x5\x1F7\xFC\x2\x683\x684\x5\x1F9" + - "\xFD\x2\x684\x685\x5\x1F5\xFB\x2\x685\x686\x5\x1E3\xF2\x2\x686\x687\x5" + - "\x1ED\xF7\x2\x687\x688\x5\x1DF\xF0\x2\x688\x14A\x3\x2\x2\x2\x689\x68A" + - "\x5\x1F7\xFC\x2\x68A\x68B\x5\x1FB\xFE\x2\x68B\x68C\x5\x1D5\xEB\x2\x68C" + - "\x14C\x3\x2\x2\x2\x68D\x68E\x5\x1F9\xFD\x2\x68E\x68F\x5\x1D3\xEA\x2\x68F" + - "\x690\x5\x1D5\xEB\x2\x690\x14E\x3\x2\x2\x2\x691\x692\x5\x1F9\xFD\x2\x692" + - "\x693\x5\x1DB\xEE\x2\x693\x694\x5\x201\x101\x2\x694\x695\x5\x1F9\xFD\x2" + - "\x695\x150\x3\x2\x2\x2\x696\x697\x5\x1F9\xFD\x2\x697\x698\x5\x1E1\xF1" + - "\x2\x698\x699\x5\x1DB\xEE\x2\x699\x69A\x5\x1ED\xF7\x2\x69A\x152\x3\x2" + - "\x2\x2\x69B\x69C\x5\x1F9\xFD\x2\x69C\x69D\x5\x1E3\xF2\x2\x69D\x69E\x5" + - "\x1EB\xF6\x2\x69E\x69F\x5\x1DB\xEE\x2\x69F\x154\x3\x2\x2\x2\x6A0\x6A1" + - "\x5\x1F9\xFD\x2\x6A1\x6A2\x5\x1EF\xF8\x2\x6A2\x156\x3\x2\x2\x2\x6A3\x6A4" + - "\x5\x1F9\xFD\x2\x6A4\x6A5\x5\x1F5\xFB\x2\x6A5\x6A6\x5\x1FB\xFE\x2\x6A6" + - "\x6A7\x5\x1DB\xEE\x2\x6A7\x158\x3\x2\x2\x2\x6A8\x6A9\x5\x1F9\xFD\x2\x6A9" + - "\x6AA\x5\x203\x102\x2\x6AA\x6AB\x5\x1F1\xF9\x2\x6AB\x6AC\x5\x1DB\xEE\x2" + - "\x6AC\x15A\x3\x2\x2\x2\x6AD\x6AE\x5\x1F9\xFD\x2\x6AE\x6AF\x5\x203\x102" + - "\x2\x6AF\x6B0\x5\x1F1\xF9\x2\x6B0\x6B1\x5\x1DB\xEE\x2\x6B1\x6B2\x5\x1EF" + - "\xF8\x2\x6B2\x6B3\x5\x1DD\xEF\x2\x6B3\x15C\x3\x2\x2\x2\x6B4\x6B5\x5\x1FB" + - "\xFE\x2\x6B5\x6B6\x5\x1ED\xF7\x2\x6B6\x6B7\x5\x1E9\xF5\x2\x6B7\x6B8\x5" + - "\x1EF\xF8\x2\x6B8\x6B9\x5\x1D3\xEA\x2\x6B9\x6BA\x5\x1D9\xED\x2\x6BA\x15E" + - "\x3\x2\x2\x2\x6BB\x6BC\x5\x1FB\xFE\x2\x6BC\x6BD\x5\x1ED\xF7\x2\x6BD\x6BE" + - "\x5\x1E9\xF5\x2\x6BE\x6BF\x5\x1EF\xF8\x2\x6BF\x6C0\x5\x1D7\xEC\x2\x6C0" + - "\x6C1\x5\x1E7\xF4\x2\x6C1\x160\x3\x2\x2\x2\x6C2\x6C3\x5\x1FB\xFE\x2\x6C3" + - "\x6C4\x5\x1ED\xF7\x2\x6C4\x6C5\x5\x1F9\xFD\x2\x6C5\x6C6\x5\x1E3\xF2\x2" + - "\x6C6\x6C7\x5\x1E9\xF5\x2\x6C7\x162\x3\x2\x2\x2\x6C8\x6C9\x5\x1FD\xFF" + - "\x2\x6C9\x6CA\x5\x1D3\xEA\x2\x6CA\x6CB\x5\x1F5\xFB\x2\x6CB\x6CC\x5\x1E3" + - "\xF2\x2\x6CC\x6CD\x5\x1D3\xEA\x2\x6CD\x6CE\x5\x1ED\xF7\x2\x6CE\x6CF\x5" + - "\x1F9\xFD\x2\x6CF\x164\x3\x2\x2\x2\x6D0\x6D1\x5\x1FD\xFF\x2\x6D1\x6D2" + - "\x5\x1DB\xEE\x2\x6D2\x6D3\x5\x1F5\xFB\x2\x6D3\x6D4\x5\x1F7\xFC\x2\x6D4" + - "\x6D5\x5\x1E3\xF2\x2\x6D5\x6D6\x5\x1EF\xF8\x2\x6D6\x6D7\x5\x1ED\xF7\x2" + - "\x6D7\x166\x3\x2\x2\x2\x6D8\x6D9\x5\x1FF\x100\x2\x6D9\x6DA\x5\x1DB\xEE" + - "\x2\x6DA\x6DB\x5\x1ED\xF7\x2\x6DB\x6DC\x5\x1D9\xED\x2\x6DC\x168\x3\x2" + - "\x2\x2\x6DD\x6DE\x5\x1FF\x100\x2\x6DE\x6DF\x5\x1E1\xF1\x2\x6DF\x6E0\x5" + - "\x1E3\xF2\x2\x6E0\x6E1\x5\x1E9\xF5\x2\x6E1\x6E2\x5\x1DB\xEE\x2\x6E2\x16A" + - "\x3\x2\x2\x2\x6E3\x6E4\x5\x1FF\x100\x2\x6E4\x6E5\x5\x1E3\xF2\x2\x6E5\x6E6" + - "\x5\x1D9\xED\x2\x6E6\x6E7\x5\x1F9\xFD\x2\x6E7\x6E8\x5\x1E1\xF1\x2\x6E8" + - "\x16C\x3\x2\x2\x2\x6E9\x6EA\x5\x1FF\x100\x2\x6EA\x6EB\x5\x1E3\xF2\x2\x6EB" + - "\x6EC\x5\x1F9\xFD\x2\x6EC\x6ED\x5\x1E1\xF1\x2\x6ED\x16E\x3\x2\x2\x2\x6EE" + - "\x6EF\x5\x1FF\x100\x2\x6EF\x6F0\x5\x1E3\xF2\x2\x6F0\x6F1\x5\x1F9\xFD\x2" + - "\x6F1\x6F2\x5\x1E1\xF1\x2\x6F2\x6F3\x5\x1DB\xEE\x2\x6F3\x6F4\x5\x1FD\xFF" + - "\x2\x6F4\x6F5\x5\x1DB\xEE\x2\x6F5\x6F6\x5\x1ED\xF7\x2\x6F6\x6F7\x5\x1F9" + - "\xFD\x2\x6F7\x6F8\x5\x1F7\xFC\x2\x6F8\x170\x3\x2\x2\x2\x6F9\x6FA\x5\x1FF" + - "\x100\x2\x6FA\x6FB\x5\x1F5\xFB\x2\x6FB\x6FC\x5\x1E3\xF2\x2\x6FC\x6FD\x5" + - "\x1F9\xFD\x2\x6FD\x6FE\x5\x1DB\xEE\x2\x6FE\x172\x3\x2\x2\x2\x6FF\x700" + - "\x5\x201\x101\x2\x700\x701\x5\x1EF\xF8\x2\x701\x702\x5\x1F5\xFB\x2\x702" + - "\x174\x3\x2\x2\x2\x703\x704\a(\x2\x2\x704\x176\x3\x2\x2\x2\x705\x706\a" + - "<\x2\x2\x706\x707\a?\x2\x2\x707\x178\x3\x2\x2\x2\x708\x709\a\x31\x2\x2" + - "\x709\x17A\x3\x2\x2\x2\x70A\x70B\a^\x2\x2\x70B\x17C\x3\x2\x2\x2\x70C\x70D" + - "\a?\x2\x2\x70D\x17E\x3\x2\x2\x2\x70E\x70F\a@\x2\x2\x70F\x710\a?\x2\x2" + - "\x710\x180\x3\x2\x2\x2\x711\x712\a@\x2\x2\x712\x182\x3\x2\x2\x2\x713\x714" + - "\a>\x2\x2\x714\x715\a?\x2\x2\x715\x184\x3\x2\x2\x2\x716\x717\a*\x2\x2" + - "\x717\x186\x3\x2\x2\x2\x718\x719\a>\x2\x2\x719\x188\x3\x2\x2\x2\x71A\x71B" + - "\a/\x2\x2\x71B\x18A\x3\x2\x2\x2\x71C\x71D\a,\x2\x2\x71D\x18C\x3\x2\x2" + - "\x2\x71E\x71F\a>\x2\x2\x71F\x720\a@\x2\x2\x720\x18E\x3\x2\x2\x2\x721\x722" + - "\a-\x2\x2\x722\x190\x3\x2\x2\x2\x723\x724\a`\x2\x2\x724\x192\x3\x2\x2" + - "\x2\x725\x726\a+\x2\x2\x726\x194\x3\x2\x2\x2\x727\x728\a]\x2\x2\x728\x196" + - "\x3\x2\x2\x2\x729\x72A\a_\x2\x2\x72A\x198\x3\x2\x2\x2\x72B\x731\a$\x2" + - "\x2\x72C\x730\n\x2\x2\x2\x72D\x72E\a$\x2\x2\x72E\x730\a$\x2\x2\x72F\x72C" + - "\x3\x2\x2\x2\x72F\x72D\x3\x2\x2\x2\x730\x733\x3\x2\x2\x2\x731\x72F\x3" + - "\x2\x2\x2\x731\x732\x3\x2\x2\x2\x732\x734\x3\x2\x2\x2\x733\x731\x3\x2" + - "\x2\x2\x734\x735\a$\x2\x2\x735\x19A\x3\x2\x2\x2\x736\x737\a(\x2\x2\x737" + - "\x738\aQ\x2\x2\x738\x73A\x3\x2\x2\x2\x739\x73B\t\x3\x2\x2\x73A\x739\x3" + - "\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C\x73A\x3\x2\x2\x2\x73C\x73D\x3\x2" + - "\x2\x2\x73D\x73F\x3\x2\x2\x2\x73E\x740\a(\x2\x2\x73F\x73E\x3\x2\x2\x2" + - "\x73F\x740\x3\x2\x2\x2\x740\x19C\x3\x2\x2\x2\x741\x742\a(\x2\x2\x742\x743" + - "\aJ\x2\x2\x743\x745\x3\x2\x2\x2\x744\x746\t\x4\x2\x2\x745\x744\x3\x2\x2" + - "\x2\x746\x747\x3\x2\x2\x2\x747\x745\x3\x2\x2\x2\x747\x748\x3\x2\x2\x2" + - "\x748\x74A\x3\x2\x2\x2\x749\x74B\a(\x2\x2\x74A\x749\x3\x2\x2\x2\x74A\x74B" + - "\x3\x2\x2\x2\x74B\x19E\x3\x2\x2\x2\x74C\x74F\x5\x18F\xC8\x2\x74D\x74F" + - "\x5\x189\xC5\x2\x74E\x74C\x3\x2\x2\x2\x74E\x74D\x3\x2\x2\x2\x74E\x74F" + - "\x3\x2\x2\x2\x74F\x751\x3\x2\x2\x2\x750\x752\x5\x1CF\xE8\x2\x751\x750" + - "\x3\x2\x2\x2\x752\x753\x3\x2\x2\x2\x753\x751\x3\x2\x2\x2\x753\x754\x3" + - "\x2\x2\x2\x754\x756\x3\x2\x2\x2\x755\x757\t\x5\x2\x2\x756\x755\x3\x2\x2" + - "\x2\x756\x757\x3\x2\x2\x2\x757\x1A0\x3\x2\x2\x2\x758\x75C\x5\x19F\xD0" + - "\x2\x759\x75A\x5\x1DB\xEE\x2\x75A\x75B\x5\x19F\xD0\x2\x75B\x75D\x3\x2" + - "\x2\x2\x75C\x759\x3\x2\x2\x2\x75C\x75D\x3\x2\x2\x2\x75D\x1A2\x3\x2\x2" + - "\x2\x75E\x761\x5\x18F\xC8\x2\x75F\x761\x5\x189\xC5\x2\x760\x75E\x3\x2" + - "\x2\x2\x760\x75F\x3\x2\x2\x2\x760\x761\x3\x2\x2\x2\x761\x765\x3\x2\x2" + - "\x2\x762\x764\x5\x1CF\xE8\x2\x763\x762\x3\x2\x2\x2\x764\x767\x3\x2\x2" + - "\x2\x765\x763\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766\x768\x3\x2\x2\x2" + - "\x767\x765\x3\x2\x2\x2\x768\x76A\a\x30\x2\x2\x769\x76B\x5\x1CF\xE8\x2" + - "\x76A\x769\x3\x2\x2\x2\x76B\x76C\x3\x2\x2\x2\x76C\x76A\x3\x2\x2\x2\x76C" + - "\x76D\x3\x2\x2\x2\x76D\x771\x3\x2\x2\x2\x76E\x76F\x5\x1DB\xEE\x2\x76F" + - "\x770\x5\x19F\xD0\x2\x770\x772\x3\x2\x2\x2\x771\x76E\x3\x2\x2\x2\x771" + - "\x772\x3\x2\x2\x2\x772\x1A4\x3\x2\x2\x2\x773\x774\a%\x2\x2\x774\x775\x5" + - "\x1A7\xD4\x2\x775\x776\a%\x2\x2\x776\x1A6\x3\x2\x2\x2\x777\x779\x5\x1A9" + - "\xD5\x2\x778\x77A\x5\x1C9\xE5\x2\x779\x778\x3\x2\x2\x2\x779\x77A\x3\x2" + - "\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B\x77C\x5\x1B5\xDB\x2\x77C\x780\x3\x2" + - "\x2\x2\x77D\x780\x5\x1A9\xD5\x2\x77E\x780\x5\x1B5\xDB\x2\x77F\x777\x3" + - "\x2\x2\x2\x77F\x77D\x3\x2\x2\x2\x77F\x77E\x3\x2\x2\x2\x780\x1A8\x3\x2" + - "\x2\x2\x781\x782\x5\x1AB\xD6\x2\x782\x783\x5\x1AD\xD7\x2\x783\x787\x5" + - "\x1AB\xD6\x2\x784\x785\x5\x1AD\xD7\x2\x785\x786\x5\x1AB\xD6\x2\x786\x788" + - "\x3\x2\x2\x2\x787\x784\x3\x2\x2\x2\x787\x788\x3\x2\x2\x2\x788\x1AA\x3" + - "\x2\x2\x2\x789\x78B\x5\x1CF\xE8\x2\x78A\x789\x3\x2\x2\x2\x78B\x78C\x3" + - "\x2\x2\x2\x78C\x78A\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\x790\x3\x2" + - "\x2\x2\x78E\x790\x5\x1AF\xD8\x2\x78F\x78A\x3\x2\x2\x2\x78F\x78E\x3\x2" + - "\x2\x2\x790\x1AC\x3\x2\x2\x2\x791\x793\x5\x1C9\xE5\x2\x792\x791\x3\x2" + - "\x2\x2\x792\x793\x3\x2\x2\x2\x793\x795\x3\x2\x2\x2\x794\x796\t\x6\x2\x2" + - "\x795\x794\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796\x798\x3\x2\x2\x2\x797" + - "\x799\x5\x1C9\xE5\x2\x798\x797\x3\x2\x2\x2\x798\x799\x3\x2\x2\x2\x799" + - "\x1AE\x3\x2\x2\x2\x79A\x79D\x5\x1B1\xD9\x2\x79B\x79D\x5\x1B3\xDA\x2\x79C" + - "\x79A\x3\x2\x2\x2\x79C\x79B\x3\x2\x2\x2\x79D\x1B0\x3\x2\x2\x2\x79E\x79F" + - "\x5\x1E5\xF3\x2\x79F\x7A0\x5\x1D3\xEA\x2\x7A0\x7A1\x5\x1ED\xF7\x2\x7A1" + - "\x7A2\x5\x1FB\xFE\x2\x7A2\x7A3\x5\x1D3\xEA\x2\x7A3\x7A4\x5\x1F5\xFB\x2" + - "\x7A4\x7A5\x5\x203\x102\x2\x7A5\x7F0\x3\x2\x2\x2\x7A6\x7A7\x5\x1DD\xEF" + - "\x2\x7A7\x7A8\x5\x1DB\xEE\x2\x7A8\x7A9\x5\x1D5\xEB\x2\x7A9\x7AA\x5\x1F5" + - "\xFB\x2\x7AA\x7AB\x5\x1FB\xFE\x2\x7AB\x7AC\x5\x1D3\xEA\x2\x7AC\x7AD\x5" + - "\x1F5\xFB\x2\x7AD\x7AE\x5\x203\x102\x2\x7AE\x7F0\x3\x2\x2\x2\x7AF\x7B0" + - "\x5\x1EB\xF6\x2\x7B0\x7B1\x5\x1D3\xEA\x2\x7B1\x7B2\x5\x1F5\xFB\x2\x7B2" + - "\x7B3\x5\x1D7\xEC\x2\x7B3\x7B4\x5\x1E1\xF1\x2\x7B4\x7F0\x3\x2\x2\x2\x7B5" + - "\x7B6\x5\x1D3\xEA\x2\x7B6\x7B7\x5\x1F1\xF9\x2\x7B7\x7B8\x5\x1F5\xFB\x2" + - "\x7B8\x7B9\x5\x1E3\xF2\x2\x7B9\x7BA\x5\x1E9\xF5\x2\x7BA\x7F0\x3\x2\x2" + - "\x2\x7BB\x7BC\x5\x1EB\xF6\x2\x7BC\x7BD\x5\x1D3\xEA\x2\x7BD\x7BE\x5\x203" + - "\x102\x2\x7BE\x7F0\x3\x2\x2\x2\x7BF\x7C0\x5\x1E5\xF3\x2\x7C0\x7C1\x5\x1FB" + - "\xFE\x2\x7C1\x7C2\x5\x1ED\xF7\x2\x7C2\x7C3\x5\x1DB\xEE\x2\x7C3\x7F0\x3" + - "\x2\x2\x2\x7C4\x7C5\x5\x1D3\xEA\x2\x7C5\x7C6\x5\x1FB\xFE\x2\x7C6\x7C7" + - "\x5\x1DF\xF0\x2\x7C7\x7C8\x5\x1FB\xFE\x2\x7C8\x7C9\x5\x1F7\xFC\x2\x7C9" + - "\x7CA\x5\x1F9\xFD\x2\x7CA\x7F0\x3\x2\x2\x2\x7CB\x7CC\x5\x1F7\xFC\x2\x7CC" + - "\x7CD\x5\x1DB\xEE\x2\x7CD\x7CE\x5\x1F1\xF9\x2\x7CE\x7CF\x5\x1F9\xFD\x2" + - "\x7CF\x7D0\x5\x1DB\xEE\x2\x7D0\x7D1\x5\x1EB\xF6\x2\x7D1\x7D2\x5\x1D5\xEB" + - "\x2\x7D2\x7D3\x5\x1DB\xEE\x2\x7D3\x7D4\x5\x1F5\xFB\x2\x7D4\x7F0\x3\x2" + - "\x2\x2\x7D5\x7D6\x5\x1EF\xF8\x2\x7D6\x7D7\x5\x1D7\xEC\x2\x7D7\x7D8\x5" + - "\x1F9\xFD\x2\x7D8\x7D9\x5\x1EF\xF8\x2\x7D9\x7DA\x5\x1D5\xEB\x2\x7DA\x7DB" + - "\x5\x1DB\xEE\x2\x7DB\x7DC\x5\x1F5\xFB\x2\x7DC\x7F0\x3\x2\x2\x2\x7DD\x7DE" + - "\x5\x1ED\xF7\x2\x7DE\x7DF\x5\x1EF\xF8\x2\x7DF\x7E0\x5\x1FD\xFF\x2\x7E0" + - "\x7E1\x5\x1DB\xEE\x2\x7E1\x7E2\x5\x1EB\xF6\x2\x7E2\x7E3\x5\x1D5\xEB\x2" + - "\x7E3\x7E4\x5\x1DB\xEE\x2\x7E4\x7E5\x5\x1F5\xFB\x2\x7E5\x7F0\x3\x2\x2" + - "\x2\x7E6\x7E7\x5\x1D9\xED\x2\x7E7\x7E8\x5\x1DB\xEE\x2\x7E8\x7E9\x5\x1D7" + - "\xEC\x2\x7E9\x7EA\x5\x1DB\xEE\x2\x7EA\x7EB\x5\x1EB\xF6\x2\x7EB\x7EC\x5" + - "\x1D5\xEB\x2\x7EC\x7ED\x5\x1DB\xEE\x2\x7ED\x7EE\x5\x1F5\xFB\x2\x7EE\x7F0" + - "\x3\x2\x2\x2\x7EF\x79E\x3\x2\x2\x2\x7EF\x7A6\x3\x2\x2\x2\x7EF\x7AF\x3" + - "\x2\x2\x2\x7EF\x7B5\x3\x2\x2\x2\x7EF\x7BB\x3\x2\x2\x2\x7EF\x7BF\x3\x2" + - "\x2\x2\x7EF\x7C4\x3\x2\x2\x2\x7EF\x7CB\x3\x2\x2\x2\x7EF\x7D5\x3\x2\x2" + - "\x2\x7EF\x7DD\x3\x2\x2\x2\x7EF\x7E6\x3\x2\x2\x2\x7F0\x1B2\x3\x2\x2\x2" + - "\x7F1\x7F2\x5\x1E5\xF3\x2\x7F2\x7F3\x5\x1D3\xEA\x2\x7F3\x7F4\x5\x1ED\xF7" + - "\x2\x7F4\x81E\x3\x2\x2\x2\x7F5\x7F6\x5\x1DD\xEF\x2\x7F6\x7F7\x5\x1DB\xEE" + - "\x2\x7F7\x7F8\x5\x1D5\xEB\x2\x7F8\x81E\x3\x2\x2\x2\x7F9\x7FA\x5\x1EB\xF6" + - "\x2\x7FA\x7FB\x5\x1D3\xEA\x2\x7FB\x7FC\x5\x1F5\xFB\x2\x7FC\x81E\x3\x2" + - "\x2\x2\x7FD\x7FE\x5\x1D3\xEA\x2\x7FE\x7FF\x5\x1F1\xF9\x2\x7FF\x800\x5" + - "\x1F5\xFB\x2\x800\x81E\x3\x2\x2\x2\x801\x802\x5\x1E5\xF3\x2\x802\x803" + - "\x5\x1FB\xFE\x2\x803\x804\x5\x1ED\xF7\x2\x804\x81E\x3\x2\x2\x2\x805\x806" + - "\x5\x1E5\xF3\x2\x806\x807\x5\x1FB\xFE\x2\x807\x808\x5\x1E9\xF5\x2\x808" + - "\x81E\x3\x2\x2\x2\x809\x80A\x5\x1D3\xEA\x2\x80A\x80B\x5\x1FB\xFE\x2\x80B" + - "\x80C\x5\x1DF\xF0\x2\x80C\x81E\x3\x2\x2\x2\x80D\x80E\x5\x1F7\xFC\x2\x80E" + - "\x80F\x5\x1DB\xEE\x2\x80F\x810\x5\x1F1\xF9\x2\x810\x81E\x3\x2\x2\x2\x811" + - "\x812\x5\x1EF\xF8\x2\x812\x813\x5\x1D7\xEC\x2\x813\x814\x5\x1F9\xFD\x2" + - "\x814\x81E\x3\x2\x2\x2\x815\x816\x5\x1ED\xF7\x2\x816\x817\x5\x1EF\xF8" + - "\x2\x817\x818\x5\x1FD\xFF\x2\x818\x81E\x3\x2\x2\x2\x819\x81A\x5\x1D9\xED" + - "\x2\x81A\x81B\x5\x1DB\xEE\x2\x81B\x81C\x5\x1D7\xEC\x2\x81C\x81E\x3\x2" + - "\x2\x2\x81D\x7F1\x3\x2\x2\x2\x81D\x7F5\x3\x2\x2\x2\x81D\x7F9\x3\x2\x2" + - "\x2\x81D\x7FD\x3\x2\x2\x2\x81D\x801\x3\x2\x2\x2\x81D\x805\x3\x2\x2\x2" + - "\x81D\x809\x3\x2\x2\x2\x81D\x80D\x3\x2\x2\x2\x81D\x811\x3\x2\x2\x2\x81D" + - "\x815\x3\x2\x2\x2\x81D\x819\x3\x2\x2\x2\x81E\x1B4\x3\x2\x2\x2\x81F\x821" + - "\x5\x1CF\xE8\x2\x820\x81F\x3\x2\x2\x2\x821\x822\x3\x2\x2\x2\x822\x820" + - "\x3\x2\x2\x2\x822\x823\x3\x2\x2\x2\x823\x824\x3\x2\x2\x2\x824\x825\x5" + - "\x1B9\xDD\x2\x825\x83D\x3\x2\x2\x2\x826\x828\x5\x1CF\xE8\x2\x827\x826" + - "\x3\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x827\x3\x2\x2\x2\x829\x82A\x3" + - "\x2\x2\x2\x82A\x82B\x3\x2\x2\x2\x82B\x82D\x5\x1B7\xDC\x2\x82C\x82E\x5" + - "\x1CF\xE8\x2\x82D\x82C\x3\x2\x2\x2\x82E\x82F\x3\x2\x2\x2\x82F\x82D\x3" + - "\x2\x2\x2\x82F\x830\x3\x2\x2\x2\x830\x837\x3\x2\x2\x2\x831\x833\x5\x1B7" + - "\xDC\x2\x832\x834\x5\x1CF\xE8\x2\x833\x832\x3\x2\x2\x2\x834\x835\x3\x2" + - "\x2\x2\x835\x833\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836\x838\x3\x2\x2" + - "\x2\x837\x831\x3\x2\x2\x2\x837\x838\x3\x2\x2\x2\x838\x83A\x3\x2\x2\x2" + - "\x839\x83B\x5\x1B9\xDD\x2\x83A\x839\x3\x2\x2\x2\x83A\x83B\x3\x2\x2\x2" + - "\x83B\x83D\x3\x2\x2\x2\x83C\x820\x3\x2\x2\x2\x83C\x827\x3\x2\x2\x2\x83D" + - "\x1B6\x3\x2\x2\x2\x83E\x840\x5\x1C9\xE5\x2\x83F\x83E\x3\x2\x2\x2\x83F" + - "\x840\x3\x2\x2\x2\x840\x841\x3\x2\x2\x2\x841\x843\t\a\x2\x2\x842\x844" + - "\x5\x1C9\xE5\x2\x843\x842\x3\x2\x2\x2\x843\x844\x3\x2\x2\x2\x844\x1B8" + - "\x3\x2\x2\x2\x845\x847\x5\x1C9\xE5\x2\x846\x845\x3\x2\x2\x2\x846\x847" + - "\x3\x2\x2\x2\x847\x850\x3\x2\x2\x2\x848\x849\x5\x1D3\xEA\x2\x849\x84A" + - "\x5\x1EB\xF6\x2\x84A\x851\x3\x2\x2\x2\x84B\x84C\x5\x1F1\xF9\x2\x84C\x84D" + - "\x5\x1EB\xF6\x2\x84D\x851\x3\x2\x2\x2\x84E\x851\x5\x1D3\xEA\x2\x84F\x851" + - "\x5\x1F1\xF9\x2\x850\x848\x3\x2\x2\x2\x850\x84B\x3\x2\x2\x2\x850\x84E" + - "\x3\x2\x2\x2\x850\x84F\x3\x2\x2\x2\x851\x1BA\x3\x2\x2\x2\x852\x854\t\b" + - "\x2\x2\x853\x852\x3\x2\x2\x2\x854\x855\x3\x2\x2\x2\x855\x853\x3\x2\x2" + - "\x2\x855\x856\x3\x2\x2\x2\x856\x857\x3\x2\x2\x2\x857\x859\x5\x1C7\xE4" + - "\x2\x858\x85A\a\xF\x2\x2\x859\x858\x3\x2\x2\x2\x859\x85A\x3\x2\x2\x2\x85A" + - "\x85B\x3\x2\x2\x2\x85B\x85C\a\f\x2\x2\x85C\x85D\x3\x2\x2\x2\x85D\x85E" + - "\b\xDE\x2\x2\x85E\x1BC\x3\x2\x2\x2\x85F\x861\t\t\x2\x2\x860\x85F\x3\x2" + - "\x2\x2\x861\x862\x3\x2\x2\x2\x862\x860\x3\x2\x2\x2\x862\x863\x3\x2\x2" + - "\x2\x863\x1BE\x3\x2\x2\x2\x864\x866\x5\x1C5\xE3\x2\x865\x864\x3\x2\x2" + - "\x2\x865\x866\x3\x2\x2\x2\x866\x867\x3\x2\x2\x2\x867\x868\x5\x123\x92" + - "\x2\x868\x86D\x5\x1C9\xE5\x2\x869\x86C\x5\x1BB\xDE\x2\x86A\x86C\n\t\x2" + - "\x2\x86B\x869\x3\x2\x2\x2\x86B\x86A\x3\x2\x2\x2\x86C\x86F\x3\x2\x2\x2" + - "\x86D\x86B\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x1C0\x3\x2\x2\x2\x86F" + - "\x86D\x3\x2\x2\x2\x870\x875\x5\x1C3\xE2\x2\x871\x874\x5\x1BB\xDE\x2\x872" + - "\x874\n\t\x2\x2\x873\x871\x3\x2\x2\x2\x873\x872\x3\x2\x2\x2\x874\x877" + - "\x3\x2\x2\x2\x875\x873\x3\x2\x2\x2\x875\x876\x3\x2\x2\x2\x876\x1C2\x3" + - "\x2\x2\x2\x877\x875\x3\x2\x2\x2\x878\x879\a)\x2\x2\x879\x1C4\x3\x2\x2" + - "\x2\x87A\x87B\a<\x2\x2\x87B\x1C6\x3\x2\x2\x2\x87C\x87D\a\x61\x2\x2\x87D" + - "\x1C8\x3\x2\x2\x2\x87E\x881\t\b\x2\x2\x87F\x881\x5\x1BB\xDE\x2\x880\x87E" + - "\x3\x2\x2\x2\x880\x87F\x3\x2\x2\x2\x881\x882\x3\x2\x2\x2\x882\x880\x3" + - "\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x1CA\x3\x2\x2\x2\x884\x886\n\n\x2" + - "\x2\x885\x884\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x885\x3\x2\x2\x2" + - "\x887\x888\x3\x2\x2\x2\x888\x892\x3\x2\x2\x2\x889\x88B\x5\x195\xCB\x2" + - "\x88A\x88C\n\v\x2\x2\x88B\x88A\x3\x2\x2\x2\x88C\x88D\x3\x2\x2\x2\x88D" + - "\x88B\x3\x2\x2\x2\x88D\x88E\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x890" + - "\x5\x197\xCC\x2\x890\x892\x3\x2\x2\x2\x891\x885\x3\x2\x2\x2\x891\x889" + - "\x3\x2\x2\x2\x892\x1CC\x3\x2\x2\x2\x893\x894\t\f\x2\x2\x894\x1CE\x3\x2" + - "\x2\x2\x895\x896\t\r\x2\x2\x896\x1D0\x3\x2\x2\x2\x897\x898\t\xE\x2\x2" + - "\x898\x1D2\x3\x2\x2\x2\x899\x89A\t\xF\x2\x2\x89A\x1D4\x3\x2\x2\x2\x89B" + - "\x89C\t\x10\x2\x2\x89C\x1D6\x3\x2\x2\x2\x89D\x89E\t\x11\x2\x2\x89E\x1D8" + - "\x3\x2\x2\x2\x89F\x8A0\t\x12\x2\x2\x8A0\x1DA\x3\x2\x2\x2\x8A1\x8A2\t\x13" + - "\x2\x2\x8A2\x1DC\x3\x2\x2\x2\x8A3\x8A4\t\x14\x2\x2\x8A4\x1DE\x3\x2\x2" + - "\x2\x8A5\x8A6\t\x15\x2\x2\x8A6\x1E0\x3\x2\x2\x2\x8A7\x8A8\t\x16\x2\x2" + - "\x8A8\x1E2\x3\x2\x2\x2\x8A9\x8AA\t\x17\x2\x2\x8AA\x1E4\x3\x2\x2\x2\x8AB" + - "\x8AC\t\x18\x2\x2\x8AC\x1E6\x3\x2\x2\x2\x8AD\x8AE\t\x19\x2\x2\x8AE\x1E8" + - "\x3\x2\x2\x2\x8AF\x8B0\t\x1A\x2\x2\x8B0\x1EA\x3\x2\x2\x2\x8B1\x8B2\t\x1B" + - "\x2\x2\x8B2\x1EC\x3\x2\x2\x2\x8B3\x8B4\t\x1C\x2\x2\x8B4\x1EE\x3\x2\x2" + - "\x2\x8B5\x8B6\t\x1D\x2\x2\x8B6\x1F0\x3\x2\x2\x2\x8B7\x8B8\t\x1E\x2\x2" + - "\x8B8\x1F2\x3\x2\x2\x2\x8B9\x8BA\t\x1F\x2\x2\x8BA\x1F4\x3\x2\x2\x2\x8BB" + - "\x8BC\t \x2\x2\x8BC\x1F6\x3\x2\x2\x2\x8BD\x8BE\t!\x2\x2\x8BE\x1F8\x3\x2" + - "\x2\x2\x8BF\x8C0\t\"\x2\x2\x8C0\x1FA\x3\x2\x2\x2\x8C1\x8C2\t#\x2\x2\x8C2" + - "\x1FC\x3\x2\x2\x2\x8C3\x8C4\t$\x2\x2\x8C4\x1FE\x3\x2\x2\x2\x8C5\x8C6\t" + - "%\x2\x2\x8C6\x200\x3\x2\x2\x2\x8C7\x8C8\t&\x2\x2\x8C8\x202\x3\x2\x2\x2" + - "\x8C9\x8CA\t\'\x2\x2\x8CA\x204\x3\x2\x2\x2\x8CB\x8CC\t(\x2\x2\x8CC\x206" + - "\x3\x2\x2\x2\x35\x2\x4CC\x72F\x731\x73C\x73F\x747\x74A\x74E\x753\x756" + - "\x75C\x760\x765\x76C\x771\x779\x77F\x787\x78C\x78F\x792\x795\x798\x79C" + - "\x7EF\x81D\x822\x829\x82F\x835\x837\x83A\x83C\x83F\x843\x846\x850\x855" + - "\x859\x862\x865\x86B\x86D\x873\x875\x880\x882\x887\x88D\x891\x3\b\x2\x2"; + "\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1" + + "\x2\xE0\x1D3\x2\xE1\x1D5\x2\xE2\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD" + + "\x2\xE6\x1DF\x2\xE7\x1E1\x2\xE8\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9" + + "\x2\xEC\x1EB\x2\xED\x1ED\x2\xEE\x1EF\x2\xEF\x1F1\x2\xF0\x1F3\x2\xF1\x1F5" + + "\x2\xF2\x1F7\x2\xF3\x1F9\x2\xF4\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201" + + "\x2\x2\x203\x2\x2\x205\x2\x2\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2" + + "\x2\x20F\x2\x2\x211\x2\x2\x213\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2" + + "\x21B\x2\x2\x21D\x2\x2\x21F\x2\x2\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227" + + "\x2\x2\x229\x2\x2\x22B\x2\x2\x22D\x2\x2\x22F\x2\x2\x231\x2\x2\x233\x2" + + "\x2\x3\x2)\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x5\x2%%((\x42" + + "\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\"\x5\x2\f\f\xF\xF\x202A" + + "\x202B\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\v" + + "\x2\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE" + + "\x3\x2\x32;\f\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6" + + "\xF8\xF8\xFE\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45" + + "\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2" + + "JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2" + + "QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2" + + "XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x939\x2\x3\x3\x2\x2\x2" + + "\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2" + + "\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2" + + "\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3" + + "\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3" + + "\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2" + + "\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2" + + "\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2" + + "\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2" + + "\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2" + + "\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2" + + "U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2" + + "\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3" + + "\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2" + + "\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2" + + "w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3" + + "\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2" + + "\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2" + + "\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3" + + "\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2" + + "\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2" + + "\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3" + + "\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2" + + "\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2" + + "\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3" + + "\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2" + + "\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2" + + "\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3" + + "\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2" + + "\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2" + + "\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3" + + "\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2" + + "\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2" + + "\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103" + + "\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2" + + "\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111" + + "\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2" + + "\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F" + + "\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2" + + "\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D" + + "\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2" + + "\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B" + + "\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2" + + "\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149" + + "\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2" + + "\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157" + + "\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2" + + "\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165" + + "\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2" + + "\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173" + + "\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2" + + "\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181" + + "\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2" + + "\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F" + + "\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2" + + "\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x19D" + + "\x3\x2\x2\x2\x2\x19F\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2\x1A3\x3\x2\x2" + + "\x2\x2\x1A5\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF" + + "\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2" + + "\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2\x2\x1CD" + + "\x3\x2\x2\x2\x2\x1CF\x3\x2\x2\x2\x2\x1D1\x3\x2\x2\x2\x2\x1D3\x3\x2\x2" + + "\x2\x2\x1D5\x3\x2\x2\x2\x2\x1D7\x3\x2\x2\x2\x2\x1D9\x3\x2\x2\x2\x2\x1DB" + + "\x3\x2\x2\x2\x2\x1DD\x3\x2\x2\x2\x2\x1DF\x3\x2\x2\x2\x2\x1E1\x3\x2\x2" + + "\x2\x2\x1E3\x3\x2\x2\x2\x2\x1E5\x3\x2\x2\x2\x2\x1E7\x3\x2\x2\x2\x2\x1E9" + + "\x3\x2\x2\x2\x2\x1EB\x3\x2\x2\x2\x2\x1ED\x3\x2\x2\x2\x2\x1EF\x3\x2\x2" + + "\x2\x2\x1F1\x3\x2\x2\x2\x2\x1F3\x3\x2\x2\x2\x2\x1F5\x3\x2\x2\x2\x2\x1F7" + + "\x3\x2\x2\x2\x2\x1F9\x3\x2\x2\x2\x3\x235\x3\x2\x2\x2\x5\x237\x3\x2\x2" + + "\x2\a\x239\x3\x2\x2\x2\t\x23B\x3\x2\x2\x2\v\x23D\x3\x2\x2\x2\r\x23F\x3" + + "\x2\x2\x2\xF\x241\x3\x2\x2\x2\x11\x243\x3\x2\x2\x2\x13\x245\x3\x2\x2\x2" + + "\x15\x24C\x3\x2\x2\x2\x17\x256\x3\x2\x2\x2\x19\x25C\x3\x2\x2\x2\x1B\x260" + + "\x3\x2\x2\x2\x1D\x26A\x3\x2\x2\x2\x1F\x276\x3\x2\x2\x2!\x27D\x3\x2\x2" + + "\x2#\x280\x3\x2\x2\x2%\x286\x3\x2\x2\x2\'\x28B\x3\x2\x2\x2)\x292\x3\x2" + + "\x2\x2+\x29A\x3\x2\x2\x2-\x2A0\x3\x2\x2\x2/\x2A6\x3\x2\x2\x2\x31\x2AB" + + "\x3\x2\x2\x2\x33\x2B0\x3\x2\x2\x2\x35\x2B5\x3\x2\x2\x2\x37\x2BB\x3\x2" + + "\x2\x2\x39\x2C3\x3\x2\x2\x2;\x2C9\x3\x2\x2\x2=\x2CF\x3\x2\x2\x2?\x2DA" + + "\x3\x2\x2\x2\x41\x2E0\x3\x2\x2\x2\x43\x2E9\x3\x2\x2\x2\x45\x2EE\x3\x2" + + "\x2\x2G\x2F6\x3\x2\x2\x2I\x2FE\x3\x2\x2\x2K\x306\x3\x2\x2\x2M\x30E\x3" + + "\x2\x2\x2O\x315\x3\x2\x2\x2Q\x31C\x3\x2\x2\x2S\x323\x3\x2\x2\x2U\x32A" + + "\x3\x2\x2\x2W\x331\x3\x2\x2\x2Y\x338\x3\x2\x2\x2[\x33F\x3\x2\x2\x2]\x346" + + "\x3\x2\x2\x2_\x34D\x3\x2\x2\x2\x61\x35B\x3\x2\x2\x2\x63\x35F\x3\x2\x2" + + "\x2\x65\x362\x3\x2\x2\x2g\x369\x3\x2\x2\x2i\x36E\x3\x2\x2\x2k\x373\x3" + + "\x2\x2\x2m\x37A\x3\x2\x2\x2o\x383\x3\x2\x2\x2q\x390\x3\x2\x2\x2s\x397" + + "\x3\x2\x2\x2u\x3A4\x3\x2\x2\x2w\x3AF\x3\x2\x2\x2y\x3B7\x3\x2\x2\x2{\x3C0" + + "\x3\x2\x2\x2}\x3C9\x3\x2\x2\x2\x7F\x3CD\x3\x2\x2\x2\x81\x3D2\x3\x2\x2" + + "\x2\x83\x3D6\x3\x2\x2\x2\x85\x3DC\x3\x2\x2\x2\x87\x3E2\x3\x2\x2\x2\x89" + + "\x3E8\x3\x2\x2\x2\x8B\x3F0\x3\x2\x2\x2\x8D\x3F9\x3\x2\x2\x2\x8F\x407\x3" + + "\x2\x2\x2\x91\x415\x3\x2\x2\x2\x93\x41E\x3\x2\x2\x2\x95\x424\x3\x2\x2" + + "\x2\x97\x42D\x3\x2\x2\x2\x99\x434\x3\x2\x2\x2\x9B\x438\x3\x2\x2\x2\x9D" + + "\x441\x3\x2\x2\x2\x9F\x445\x3\x2\x2\x2\xA1\x44C\x3\x2\x2\x2\xA3\x452\x3" + + "\x2\x2\x2\xA5\x457\x3\x2\x2\x2\xA7\x45A\x3\x2\x2\x2\xA9\x45E\x3\x2\x2" + + "\x2\xAB\x469\x3\x2\x2\x2\xAD\x46C\x3\x2\x2\x2\xAF\x472\x3\x2\x2\x2\xB1" + + "\x475\x3\x2\x2\x2\xB3\x47D\x3\x2\x2\x2\xB5\x482\x3\x2\x2\x2\xB7\x487\x3" + + "\x2\x2\x2\xB9\x48C\x3\x2\x2\x2\xBB\x491\x3\x2\x2\x2\xBD\x496\x3\x2\x2" + + "\x2\xBF\x49A\x3\x2\x2\x2\xC1\x49E\x3\x2\x2\x2\xC3\x4A2\x3\x2\x2\x2\xC5" + + "\x4A7\x3\x2\x2\x2\xC7\x4B2\x3\x2\x2\x2\xC9\x4BC\x3\x2\x2\x2\xCB\x4C7\x3" + + "\x2\x2\x2\xCD\x4D7\x3\x2\x2\x2\xCF\x4DC\x3\x2\x2\x2\xD1\x4E3\x3\x2\x2" + + "\x2\xD3\x4E7\x3\x2\x2\x2\xD5\x4EF\x3\x2\x2\x2\xD7\x4F5\x3\x2\x2\x2\xD9" + + "\x4FF\x3\x2\x2\x2\xDB\x502\x3\x2\x2\x2\xDD\x506\x3\x2\x2\x2\xDF\x50C\x3" + + "\x2\x2\x2\xE1\x510\x3\x2\x2\x2\xE3\x515\x3\x2\x2\x2\xE5\x51A\x3\x2\x2" + + "\x2\xE7\x51E\x3\x2\x2\x2\xE9\x522\x3\x2\x2\x2\xEB\x52A\x3\x2\x2\x2\xED" + + "\x52F\x3\x2\x2\x2\xEF\x532\x3\x2\x2\x2\xF1\x53B\x3\x2\x2\x2\xF3\x54A\x3" + + "\x2\x2\x2\xF5\x54F\x3\x2\x2\x2\xF7\x558\x3\x2\x2\x2\xF9\x564\x3\x2\x2" + + "\x2\xFB\x574\x3\x2\x2\x2\xFD\x583\x3\x2\x2\x2\xFF\x599\x3\x2\x2\x2\x101" + + "\x59C\x3\x2\x2\x2\x103\x5A3\x3\x2\x2\x2\x105\x5AE\x3\x2\x2\x2\x107\x5B7" + + "\x3\x2\x2\x2\x109\x5BD\x3\x2\x2\x2\x10B\x5C5\x3\x2\x2\x2\x10D\x5D2\x3" + + "\x2\x2\x2\x10F\x5DF\x3\x2\x2\x2\x111\x5EC\x3\x2\x2\x2\x113\x5F4\x3\x2" + + "\x2\x2\x115\x5FB\x3\x2\x2\x2\x117\x5FF\x3\x2\x2\x2\x119\x606\x3\x2\x2" + + "\x2\x11B\x610\x3\x2\x2\x2\x11D\x61B\x3\x2\x2\x2\x11F\x620\x3\x2\x2\x2" + + "\x121\x62B\x3\x2\x2\x2\x123\x631\x3\x2\x2\x2\x125\x635\x3\x2\x2\x2\x127" + + "\x63B\x3\x2\x2\x2\x129\x642\x3\x2\x2\x2\x12B\x649\x3\x2\x2\x2\x12D\x64F" + + "\x3\x2\x2\x2\x12F\x654\x3\x2\x2\x2\x131\x660\x3\x2\x2\x2\x133\x66C\x3" + + "\x2\x2\x2\x135\x671\x3\x2\x2\x2\x137\x678\x3\x2\x2\x2\x139\x681\x3\x2" + + "\x2\x2\x13B\x685\x3\x2\x2\x2\x13D\x68D\x3\x2\x2\x2\x13F\x694\x3\x2\x2" + + "\x2\x141\x69B\x3\x2\x2\x2\x143\x69F\x3\x2\x2\x2\x145\x6A6\x3\x2\x2\x2" + + "\x147\x6AB\x3\x2\x2\x2\x149\x6B0\x3\x2\x2\x2\x14B\x6B7\x3\x2\x2\x2\x14D" + + "\x6BB\x3\x2\x2\x2\x14F\x6BF\x3\x2\x2\x2\x151\x6C4\x3\x2\x2\x2\x153\x6C9" + + "\x3\x2\x2\x2\x155\x6CE\x3\x2\x2\x2\x157\x6D1\x3\x2\x2\x2\x159\x6D6\x3" + + "\x2\x2\x2\x15B\x6DB\x3\x2\x2\x2\x15D\x6E2\x3\x2\x2\x2\x15F\x6E9\x3\x2" + + "\x2\x2\x161\x6F0\x3\x2\x2\x2\x163\x6F6\x3\x2\x2\x2\x165\x6FE\x3\x2\x2" + + "\x2\x167\x706\x3\x2\x2\x2\x169\x70B\x3\x2\x2\x2\x16B\x711\x3\x2\x2\x2" + + "\x16D\x717\x3\x2\x2\x2\x16F\x71C\x3\x2\x2\x2\x171\x727\x3\x2\x2\x2\x173" + + "\x72D\x3\x2\x2\x2\x175\x731\x3\x2\x2\x2\x177\x733\x3\x2\x2\x2\x179\x736" + + "\x3\x2\x2\x2\x17B\x738\x3\x2\x2\x2\x17D\x73A\x3\x2\x2\x2\x17F\x73C\x3" + + "\x2\x2\x2\x181\x73F\x3\x2\x2\x2\x183\x741\x3\x2\x2\x2\x185\x744\x3\x2" + + "\x2\x2\x187\x746\x3\x2\x2\x2\x189\x748\x3\x2\x2\x2\x18B\x74A\x3\x2\x2" + + "\x2\x18D\x74C\x3\x2\x2\x2\x18F\x74F\x3\x2\x2\x2\x191\x751\x3\x2\x2\x2" + + "\x193\x753\x3\x2\x2\x2\x195\x755\x3\x2\x2\x2\x197\x757\x3\x2\x2\x2\x199" + + "\x759\x3\x2\x2\x2\x19B\x764\x3\x2\x2\x2\x19D\x76F\x3\x2\x2\x2\x19F\x77C" + + "\x3\x2\x2\x2\x1A1\x786\x3\x2\x2\x2\x1A3\x78E\x3\x2\x2\x2\x1A5\x7A1\x3" + + "\x2\x2\x2\x1A7\x7AD\x3\x2\x2\x2\x1A9\x7AF\x3\x2\x2\x2\x1AB\x7BD\x3\x2" + + "\x2\x2\x1AD\x7C0\x3\x2\x2\x2\x1AF\x7CA\x3\x2\x2\x2\x1B1\x7D8\x3\x2\x2" + + "\x2\x1B3\x7E5\x3\x2\x2\x2\x1B5\x804\x3\x2\x2\x2\x1B7\x807\x3\x2\x2\x2" + + "\x1B9\x80E\x3\x2\x2\x2\x1BB\x81A\x3\x2\x2\x2\x1BD\x822\x3\x2\x2\x2\x1BF" + + "\x82B\x3\x2\x2\x2\x1C1\x831\x3\x2\x2\x2\x1C3\x837\x3\x2\x2\x2\x1C5\x83B" + + "\x3\x2\x2\x2\x1C7\x840\x3\x2\x2\x2\x1C9\x845\x3\x2\x2\x2\x1CB\x84C\x3" + + "\x2\x2\x2\x1CD\x856\x3\x2\x2\x2\x1CF\x85E\x3\x2\x2\x2\x1D1\x867\x3\x2" + + "\x2\x2\x1D3\x870\x3\x2\x2\x2\x1D5\x874\x3\x2\x2\x2\x1D7\x878\x3\x2\x2" + + "\x2\x1D9\x87C\x3\x2\x2\x2\x1DB\x880\x3\x2\x2\x2\x1DD\x884\x3\x2\x2\x2" + + "\x1DF\x888\x3\x2\x2\x2\x1E1\x88C\x3\x2\x2\x2\x1E3\x890\x3\x2\x2\x2\x1E5" + + "\x894\x3\x2\x2\x2\x1E7\x898\x3\x2\x2\x2\x1E9\x89D\x3\x2\x2\x2\x1EB\x8AA" + + "\x3\x2\x2\x2\x1ED\x8AF\x3\x2\x2\x2\x1EF\x8BA\x3\x2\x2\x2\x1F1\x8C2\x3" + + "\x2\x2\x2\x1F3\x8C4\x3\x2\x2\x2\x1F5\x8C6\x3\x2\x2\x2\x1F7\x8CA\x3\x2" + + "\x2\x2\x1F9\x8DB\x3\x2\x2\x2\x1FB\x8DD\x3\x2\x2\x2\x1FD\x8DF\x3\x2\x2" + + "\x2\x1FF\x8E1\x3\x2\x2\x2\x201\x8E3\x3\x2\x2\x2\x203\x8E5\x3\x2\x2\x2" + + "\x205\x8E7\x3\x2\x2\x2\x207\x8E9\x3\x2\x2\x2\x209\x8EB\x3\x2\x2\x2\x20B" + + "\x8ED\x3\x2\x2\x2\x20D\x8EF\x3\x2\x2\x2\x20F\x8F1\x3\x2\x2\x2\x211\x8F3" + + "\x3\x2\x2\x2\x213\x8F5\x3\x2\x2\x2\x215\x8F7\x3\x2\x2\x2\x217\x8F9\x3" + + "\x2\x2\x2\x219\x8FB\x3\x2\x2\x2\x21B\x8FD\x3\x2\x2\x2\x21D\x8FF\x3\x2" + + "\x2\x2\x21F\x901\x3\x2\x2\x2\x221\x903\x3\x2\x2\x2\x223\x905\x3\x2\x2" + + "\x2\x225\x907\x3\x2\x2\x2\x227\x909\x3\x2\x2\x2\x229\x90B\x3\x2\x2\x2" + + "\x22B\x90D\x3\x2\x2\x2\x22D\x90F\x3\x2\x2\x2\x22F\x911\x3\x2\x2\x2\x231" + + "\x913\x3\x2\x2\x2\x233\x915\x3\x2\x2\x2\x235\x236\a\x42\x2\x2\x236\x4" + + "\x3\x2\x2\x2\x237\x238\a#\x2\x2\x238\x6\x3\x2\x2\x2\x239\x23A\a%\x2\x2" + + "\x23A\b\x3\x2\x2\x2\x23B\x23C\a&\x2\x2\x23C\n\x3\x2\x2\x2\x23D\x23E\a" + + "\'\x2\x2\x23E\f\x3\x2\x2\x2\x23F\x240\a=\x2\x2\x240\xE\x3\x2\x2\x2\x241" + + "\x242\a.\x2\x2\x242\x10\x3\x2\x2\x2\x243\x244\a\x30\x2\x2\x244\x12\x3" + + "\x2\x2\x2\x245\x246\x5\x201\x101\x2\x246\x247\x5\x205\x103\x2\x247\x248" + + "\x5\x205\x103\x2\x248\x249\x5\x209\x105\x2\x249\x24A\x5\x225\x113\x2\x24A" + + "\x24B\x5\x225\x113\x2\x24B\x14\x3\x2\x2\x2\x24C\x24D\x5\x201\x101\x2\x24D" + + "\x24E\x5\x207\x104\x2\x24E\x24F\x5\x207\x104\x2\x24F\x250\x5\x223\x112" + + "\x2\x250\x251\x5\x209\x105\x2\x251\x252\x5\x225\x113\x2\x252\x253\x5\x225" + + "\x113\x2\x253\x254\x5\x21D\x10F\x2\x254\x255\x5\x20B\x106\x2\x255\x16" + + "\x3\x2\x2\x2\x256\x257\x5\x201\x101\x2\x257\x258\x5\x217\x10C\x2\x258" + + "\x259\x5\x211\x109\x2\x259\x25A\x5\x201\x101\x2\x25A\x25B\x5\x225\x113" + + "\x2\x25B\x18\x3\x2\x2\x2\x25C\x25D\x5\x201\x101\x2\x25D\x25E\x5\x21B\x10E" + + "\x2\x25E\x25F\x5\x207\x104\x2\x25F\x1A\x3\x2\x2\x2\x260\x261\x5\x201\x101" + + "\x2\x261\x262\x5\x227\x114\x2\x262\x263\x5\x227\x114\x2\x263\x264\x5\x223" + + "\x112\x2\x264\x265\x5\x211\x109\x2\x265\x266\x5\x203\x102\x2\x266\x267" + + "\x5\x229\x115\x2\x267\x268\x5\x227\x114\x2\x268\x269\x5\x209\x105\x2\x269" + + "\x1C\x3\x2\x2\x2\x26A\x26B\x5\x201\x101\x2\x26B\x26C\x5\x21F\x110\x2\x26C" + + "\x26D\x5\x21F\x110\x2\x26D\x26E\x5\x201\x101\x2\x26E\x26F\x5\x205\x103" + + "\x2\x26F\x270\x5\x227\x114\x2\x270\x271\x5\x211\x109\x2\x271\x272\x5\x22B" + + "\x116\x2\x272\x273\x5\x201\x101\x2\x273\x274\x5\x227\x114\x2\x274\x275" + + "\x5\x209\x105\x2\x275\x1E\x3\x2\x2\x2\x276\x277\x5\x201\x101\x2\x277\x278" + + "\x5\x21F\x110\x2\x278\x279\x5\x21F\x110\x2\x279\x27A\x5\x209\x105\x2\x27A" + + "\x27B\x5\x21B\x10E\x2\x27B\x27C\x5\x207\x104\x2\x27C \x3\x2\x2\x2\x27D" + + "\x27E\x5\x201\x101\x2\x27E\x27F\x5\x225\x113\x2\x27F\"\x3\x2\x2\x2\x280" + + "\x281\x5\x203\x102\x2\x281\x282\x5\x209\x105\x2\x282\x283\x5\x20D\x107" + + "\x2\x283\x284\x5\x211\x109\x2\x284\x285\x5\x21B\x10E\x2\x285$\x3\x2\x2" + + "\x2\x286\x287\x5\x203\x102\x2\x287\x288\x5\x209\x105\x2\x288\x289\x5\x209" + + "\x105\x2\x289\x28A\x5\x21F\x110\x2\x28A&\x3\x2\x2\x2\x28B\x28C\x5\x203" + + "\x102\x2\x28C\x28D\x5\x211\x109\x2\x28D\x28E\x5\x21B\x10E\x2\x28E\x28F" + + "\x5\x201\x101\x2\x28F\x290\x5\x223\x112\x2\x290\x291\x5\x231\x119\x2\x291" + + "(\x3\x2\x2\x2\x292\x293\x5\x203\x102\x2\x293\x294\x5\x21D\x10F\x2\x294" + + "\x295\x5\x21D\x10F\x2\x295\x296\x5\x217\x10C\x2\x296\x297\x5\x209\x105" + + "\x2\x297\x298\x5\x201\x101\x2\x298\x299\x5\x21B\x10E\x2\x299*\x3\x2\x2" + + "\x2\x29A\x29B\x5\x203\x102\x2\x29B\x29C\x5\x231\x119\x2\x29C\x29D\x5\x22B" + + "\x116\x2\x29D\x29E\x5\x201\x101\x2\x29E\x29F\x5\x217\x10C\x2\x29F,\x3" + + "\x2\x2\x2\x2A0\x2A1\x5\x203\x102\x2\x2A1\x2A2\x5\x231\x119\x2\x2A2\x2A3" + + "\x5\x223\x112\x2\x2A3\x2A4\x5\x209\x105\x2\x2A4\x2A5\x5\x20B\x106\x2\x2A5" + + ".\x3\x2\x2\x2\x2A6\x2A7\x5\x203\x102\x2\x2A7\x2A8\x5\x231\x119\x2\x2A8" + + "\x2A9\x5\x227\x114\x2\x2A9\x2AA\x5\x209\x105\x2\x2AA\x30\x3\x2\x2\x2\x2AB" + + "\x2AC\x5\x205\x103\x2\x2AC\x2AD\x5\x201\x101\x2\x2AD\x2AE\x5\x217\x10C" + + "\x2\x2AE\x2AF\x5\x217\x10C\x2\x2AF\x32\x3\x2\x2\x2\x2B0\x2B1\x5\x205\x103" + + "\x2\x2B1\x2B2\x5\x201\x101\x2\x2B2\x2B3\x5\x225\x113\x2\x2B3\x2B4\x5\x209" + + "\x105\x2\x2B4\x34\x3\x2\x2\x2\x2B5\x2B6\x5\x205\x103\x2\x2B6\x2B7\x5\x20F" + + "\x108\x2\x2B7\x2B8\x5\x207\x104\x2\x2B8\x2B9\x5\x211\x109\x2\x2B9\x2BA" + + "\x5\x223\x112\x2\x2BA\x36\x3\x2\x2\x2\x2BB\x2BC\x5\x205\x103\x2\x2BC\x2BD" + + "\x5\x20F\x108\x2\x2BD\x2BE\x5\x207\x104\x2\x2BE\x2BF\x5\x223\x112\x2\x2BF" + + "\x2C0\x5\x211\x109\x2\x2C0\x2C1\x5\x22B\x116\x2\x2C1\x2C2\x5\x209\x105" + + "\x2\x2C2\x38\x3\x2\x2\x2\x2C3\x2C4\x5\x205\x103\x2\x2C4\x2C5\x5\x217\x10C" + + "\x2\x2C5\x2C6\x5\x201\x101\x2\x2C6\x2C7\x5\x225\x113\x2\x2C7\x2C8\x5\x225" + + "\x113\x2\x2C8:\x3\x2\x2\x2\x2C9\x2CA\x5\x205\x103\x2\x2CA\x2CB\x5\x217" + + "\x10C\x2\x2CB\x2CC\x5\x21D\x10F\x2\x2CC\x2CD\x5\x225\x113\x2\x2CD\x2CE" + + "\x5\x209\x105\x2\x2CE<\x3\x2\x2\x2\x2CF\x2D0\x5\x205\x103\x2\x2D0\x2D1" + + "\x5\x21D\x10F\x2\x2D1\x2D2\x5\x217\x10C\x2\x2D2\x2D3\x5\x217\x10C\x2\x2D3" + + "\x2D4\x5\x209\x105\x2\x2D4\x2D5\x5\x205\x103\x2\x2D5\x2D6\x5\x227\x114" + + "\x2\x2D6\x2D7\x5\x211\x109\x2\x2D7\x2D8\x5\x21D\x10F\x2\x2D8\x2D9\x5\x21B" + + "\x10E\x2\x2D9>\x3\x2\x2\x2\x2DA\x2DB\x5\x205\x103\x2\x2DB\x2DC\x5\x21D" + + "\x10F\x2\x2DC\x2DD\x5\x21B\x10E\x2\x2DD\x2DE\x5\x225\x113\x2\x2DE\x2DF" + + "\x5\x227\x114\x2\x2DF@\x3\x2\x2\x2\x2E0\x2E1\x5\x207\x104\x2\x2E1\x2E2" + + "\x5\x201\x101\x2\x2E2\x2E3\x5\x227\x114\x2\x2E3\x2E4\x5\x201\x101\x2\x2E4" + + "\x2E5\x5\x203\x102\x2\x2E5\x2E6\x5\x201\x101\x2\x2E6\x2E7\x5\x225\x113" + + "\x2\x2E7\x2E8\x5\x209\x105\x2\x2E8\x42\x3\x2\x2\x2\x2E9\x2EA\x5\x207\x104" + + "\x2\x2EA\x2EB\x5\x201\x101\x2\x2EB\x2EC\x5\x227\x114\x2\x2EC\x2ED\x5\x209" + + "\x105\x2\x2ED\x44\x3\x2\x2\x2\x2EE\x2EF\x5\x207\x104\x2\x2EF\x2F0\x5\x209" + + "\x105\x2\x2F0\x2F1\x5\x205\x103\x2\x2F1\x2F2\x5\x217\x10C\x2\x2F2\x2F3" + + "\x5\x201\x101\x2\x2F3\x2F4\x5\x223\x112\x2\x2F4\x2F5\x5\x209\x105\x2\x2F5" + + "\x46\x3\x2\x2\x2\x2F6\x2F7\x5\x207\x104\x2\x2F7\x2F8\x5\x209\x105\x2\x2F8" + + "\x2F9\x5\x20B\x106\x2\x2F9\x2FA\x5\x203\x102\x2\x2FA\x2FB\x5\x21D\x10F" + + "\x2\x2FB\x2FC\x5\x21D\x10F\x2\x2FC\x2FD\x5\x217\x10C\x2\x2FDH\x3\x2\x2" + + "\x2\x2FE\x2FF\x5\x207\x104\x2\x2FF\x300\x5\x209\x105\x2\x300\x301\x5\x20B" + + "\x106\x2\x301\x302\x5\x203\x102\x2\x302\x303\x5\x231\x119\x2\x303\x304" + + "\x5\x227\x114\x2\x304\x305\x5\x209\x105\x2\x305J\x3\x2\x2\x2\x306\x307" + + "\x5\x207\x104\x2\x307\x308\x5\x209\x105\x2\x308\x309\x5\x20B\x106\x2\x309" + + "\x30A\x5\x207\x104\x2\x30A\x30B\x5\x201\x101\x2\x30B\x30C\x5\x227\x114" + + "\x2\x30C\x30D\x5\x209\x105\x2\x30DL\x3\x2\x2\x2\x30E\x30F\x5\x207\x104" + + "\x2\x30F\x310\x5\x209\x105\x2\x310\x311\x5\x20B\x106\x2\x311\x312\x5\x207" + + "\x104\x2\x312\x313\x5\x203\x102\x2\x313\x314\x5\x217\x10C\x2\x314N\x3" + + "\x2\x2\x2\x315\x316\x5\x207\x104\x2\x316\x317\x5\x209\x105\x2\x317\x318" + + "\x5\x20B\x106\x2\x318\x319\x5\x207\x104\x2\x319\x31A\x5\x209\x105\x2\x31A" + + "\x31B\x5\x205\x103\x2\x31BP\x3\x2\x2\x2\x31C\x31D\x5\x207\x104\x2\x31D" + + "\x31E\x5\x209\x105\x2\x31E\x31F\x5\x20B\x106\x2\x31F\x320\x5\x205\x103" + + "\x2\x320\x321\x5\x229\x115\x2\x321\x322\x5\x223\x112\x2\x322R\x3\x2\x2" + + "\x2\x323\x324\x5\x207\x104\x2\x324\x325\x5\x209\x105\x2\x325\x326\x5\x20B" + + "\x106\x2\x326\x327\x5\x211\x109\x2\x327\x328\x5\x21B\x10E\x2\x328\x329" + + "\x5\x227\x114\x2\x329T\x3\x2\x2\x2\x32A\x32B\x5\x207\x104\x2\x32B\x32C" + + "\x5\x209\x105\x2\x32C\x32D\x5\x20B\x106\x2\x32D\x32E\x5\x217\x10C\x2\x32E" + + "\x32F\x5\x21B\x10E\x2\x32F\x330\x5\x20D\x107\x2\x330V\x3\x2\x2\x2\x331" + + "\x332\x5\x207\x104\x2\x332\x333\x5\x209\x105\x2\x333\x334\x5\x20B\x106" + + "\x2\x334\x335\x5\x21D\x10F\x2\x335\x336\x5\x203\x102\x2\x336\x337\x5\x213" + + "\x10A\x2\x337X\x3\x2\x2\x2\x338\x339\x5\x207\x104\x2\x339\x33A\x5\x209" + + "\x105\x2\x33A\x33B\x5\x20B\x106\x2\x33B\x33C\x5\x225\x113\x2\x33C\x33D" + + "\x5\x21B\x10E\x2\x33D\x33E\x5\x20D\x107\x2\x33EZ\x3\x2\x2\x2\x33F\x340" + + "\x5\x207\x104\x2\x340\x341\x5\x209\x105\x2\x341\x342\x5\x20B\x106\x2\x342" + + "\x343\x5\x225\x113\x2\x343\x344\x5\x227\x114\x2\x344\x345\x5\x223\x112" + + "\x2\x345\\\x3\x2\x2\x2\x346\x347\x5\x207\x104\x2\x347\x348\x5\x209\x105" + + "\x2\x348\x349\x5\x20B\x106\x2\x349\x34A\x5\x22B\x116\x2\x34A\x34B\x5\x201" + + "\x101\x2\x34B\x34C\x5\x223\x112\x2\x34C^\x3\x2\x2\x2\x34D\x34E\x5\x207" + + "\x104\x2\x34E\x34F\x5\x209\x105\x2\x34F\x350\x5\x217\x10C\x2\x350\x351" + + "\x5\x209\x105\x2\x351\x352\x5\x227\x114\x2\x352\x353\x5\x209\x105\x2\x353" + + "\x354\x5\x225\x113\x2\x354\x355\x5\x209\x105\x2\x355\x356\x5\x227\x114" + + "\x2\x356\x357\x5\x227\x114\x2\x357\x358\x5\x211\x109\x2\x358\x359\x5\x21B" + + "\x10E\x2\x359\x35A\x5\x20D\x107\x2\x35A`\x3\x2\x2\x2\x35B\x35C\x5\x207" + + "\x104\x2\x35C\x35D\x5\x211\x109\x2\x35D\x35E\x5\x219\x10D\x2\x35E\x62" + + "\x3\x2\x2\x2\x35F\x360\x5\x207\x104\x2\x360\x361\x5\x21D\x10F\x2\x361" + + "\x64\x3\x2\x2\x2\x362\x363\x5\x207\x104\x2\x363\x364\x5\x21D\x10F\x2\x364" + + "\x365\x5\x229\x115\x2\x365\x366\x5\x203\x102\x2\x366\x367\x5\x217\x10C" + + "\x2\x367\x368\x5\x209\x105\x2\x368\x66\x3\x2\x2\x2\x369\x36A\x5\x209\x105" + + "\x2\x36A\x36B\x5\x201\x101\x2\x36B\x36C\x5\x205\x103\x2\x36C\x36D\x5\x20F" + + "\x108\x2\x36Dh\x3\x2\x2\x2\x36E\x36F\x5\x209\x105\x2\x36F\x370\x5\x217" + + "\x10C\x2\x370\x371\x5\x225\x113\x2\x371\x372\x5\x209\x105\x2\x372j\x3" + + "\x2\x2\x2\x373\x374\x5\x209\x105\x2\x374\x375\x5\x217\x10C\x2\x375\x376" + + "\x5\x225\x113\x2\x376\x377\x5\x209\x105\x2\x377\x378\x5\x211\x109\x2\x378" + + "\x379\x5\x20B\x106\x2\x379l\x3\x2\x2\x2\x37A\x37B\x5\x209\x105\x2\x37B" + + "\x37C\x5\x21B\x10E\x2\x37C\x37D\x5\x207\x104\x2\x37D\x37E\x5\x1F7\xFC" + + "\x2\x37E\x37F\x5\x209\x105\x2\x37F\x380\x5\x21B\x10E\x2\x380\x381\x5\x229" + + "\x115\x2\x381\x382\x5\x219\x10D\x2\x382n\x3\x2\x2\x2\x383\x384\x5\x209" + + "\x105\x2\x384\x385\x5\x21B\x10E\x2\x385\x386\x5\x207\x104\x2\x386\x387" + + "\x5\x1F7\xFC\x2\x387\x388\x5\x20B\x106\x2\x388\x389\x5\x229\x115\x2\x389" + + "\x38A\x5\x21B\x10E\x2\x38A\x38B\x5\x205\x103\x2\x38B\x38C\x5\x227\x114" + + "\x2\x38C\x38D\x5\x211\x109\x2\x38D\x38E\x5\x21D\x10F\x2\x38E\x38F\x5\x21B" + + "\x10E\x2\x38Fp\x3\x2\x2\x2\x390\x391\x5\x209\x105\x2\x391\x392\x5\x21B" + + "\x10E\x2\x392\x393\x5\x207\x104\x2\x393\x394\x5\x1F7\xFC\x2\x394\x395" + + "\x5\x211\x109\x2\x395\x396\x5\x20B\x106\x2\x396r\x3\x2\x2\x2\x397\x398" + + "\x5\x209\x105\x2\x398\x399\x5\x21B\x10E\x2\x399\x39A\x5\x207\x104\x2\x39A" + + "\x39B\x5\x1F7\xFC\x2\x39B\x39C\x5\x21F\x110\x2\x39C\x39D\x5\x223\x112" + + "\x2\x39D\x39E\x5\x21D\x10F\x2\x39E\x39F\x5\x21F\x110\x2\x39F\x3A0\x5\x209" + + "\x105\x2\x3A0\x3A1\x5\x223\x112\x2\x3A1\x3A2\x5\x227\x114\x2\x3A2\x3A3" + + "\x5\x231\x119\x2\x3A3t\x3\x2\x2\x2\x3A4\x3A5\x5\x209\x105\x2\x3A5\x3A6" + + "\x5\x21B\x10E\x2\x3A6\x3A7\x5\x207\x104\x2\x3A7\x3A8\x5\x1F7\xFC\x2\x3A8" + + "\x3A9\x5\x225\x113\x2\x3A9\x3AA\x5\x209\x105\x2\x3AA\x3AB\x5\x217\x10C" + + "\x2\x3AB\x3AC\x5\x209\x105\x2\x3AC\x3AD\x5\x205\x103\x2\x3AD\x3AE\x5\x227" + + "\x114\x2\x3AEv\x3\x2\x2\x2\x3AF\x3B0\x5\x209\x105\x2\x3B0\x3B1\x5\x21B" + + "\x10E\x2\x3B1\x3B2\x5\x207\x104\x2\x3B2\x3B3\x5\x1F7\xFC\x2\x3B3\x3B4" + + "\x5\x225\x113\x2\x3B4\x3B5\x5\x229\x115\x2\x3B5\x3B6\x5\x203\x102\x2\x3B6" + + "x\x3\x2\x2\x2\x3B7\x3B8\x5\x209\x105\x2\x3B8\x3B9\x5\x21B\x10E\x2\x3B9" + + "\x3BA\x5\x207\x104\x2\x3BA\x3BB\x5\x1F7\xFC\x2\x3BB\x3BC\x5\x227\x114" + + "\x2\x3BC\x3BD\x5\x231\x119\x2\x3BD\x3BE\x5\x21F\x110\x2\x3BE\x3BF\x5\x209" + + "\x105\x2\x3BFz\x3\x2\x2\x2\x3C0\x3C1\x5\x209\x105\x2\x3C1\x3C2\x5\x21B" + + "\x10E\x2\x3C2\x3C3\x5\x207\x104\x2\x3C3\x3C4\x5\x1F7\xFC\x2\x3C4\x3C5" + + "\x5\x22D\x117\x2\x3C5\x3C6\x5\x211\x109\x2\x3C6\x3C7\x5\x227\x114\x2\x3C7" + + "\x3C8\x5\x20F\x108\x2\x3C8|\x3\x2\x2\x2\x3C9\x3CA\x5\x209\x105\x2\x3CA" + + "\x3CB\x5\x21B\x10E\x2\x3CB\x3CC\x5\x207\x104\x2\x3CC~\x3\x2\x2\x2\x3CD" + + "\x3CE\x5\x209\x105\x2\x3CE\x3CF\x5\x21B\x10E\x2\x3CF\x3D0\x5\x229\x115" + + "\x2\x3D0\x3D1\x5\x219\x10D\x2\x3D1\x80\x3\x2\x2\x2\x3D2\x3D3\x5\x209\x105" + + "\x2\x3D3\x3D4\x5\x221\x111\x2\x3D4\x3D5\x5\x22B\x116\x2\x3D5\x82\x3\x2" + + "\x2\x2\x3D6\x3D7\x5\x209\x105\x2\x3D7\x3D8\x5\x223\x112\x2\x3D8\x3D9\x5" + + "\x201\x101\x2\x3D9\x3DA\x5\x225\x113\x2\x3DA\x3DB\x5\x209\x105\x2\x3DB" + + "\x84\x3\x2\x2\x2\x3DC\x3DD\x5\x209\x105\x2\x3DD\x3DE\x5\x223\x112\x2\x3DE" + + "\x3DF\x5\x223\x112\x2\x3DF\x3E0\x5\x21D\x10F\x2\x3E0\x3E1\x5\x223\x112" + + "\x2\x3E1\x86\x3\x2\x2\x2\x3E2\x3E3\x5\x209\x105\x2\x3E3\x3E4\x5\x22B\x116" + + "\x2\x3E4\x3E5\x5\x209\x105\x2\x3E5\x3E6\x5\x21B\x10E\x2\x3E6\x3E7\x5\x227" + + "\x114\x2\x3E7\x88\x3\x2\x2\x2\x3E8\x3E9\x5\x209\x105\x2\x3E9\x3EA\x5\x22F" + + "\x118\x2\x3EA\x3EB\x5\x211\x109\x2\x3EB\x3EC\x5\x227\x114\x2\x3EC\x3ED" + + "\x5\x1F7\xFC\x2\x3ED\x3EE\x5\x207\x104\x2\x3EE\x3EF\x5\x21D\x10F\x2\x3EF" + + "\x8A\x3\x2\x2\x2\x3F0\x3F1\x5\x209\x105\x2\x3F1\x3F2\x5\x22F\x118\x2\x3F2" + + "\x3F3\x5\x211\x109\x2\x3F3\x3F4\x5\x227\x114\x2\x3F4\x3F5\x5\x1F7\xFC" + + "\x2\x3F5\x3F6\x5\x20B\x106\x2\x3F6\x3F7\x5\x21D\x10F\x2\x3F7\x3F8\x5\x223" + + "\x112\x2\x3F8\x8C\x3\x2\x2\x2\x3F9\x3FA\x5\x209\x105\x2\x3FA\x3FB\x5\x22F" + + "\x118\x2\x3FB\x3FC\x5\x211\x109\x2\x3FC\x3FD\x5\x227\x114\x2\x3FD\x3FE" + + "\x5\x1F7\xFC\x2\x3FE\x3FF\x5\x20B\x106\x2\x3FF\x400\x5\x229\x115\x2\x400" + + "\x401\x5\x21B\x10E\x2\x401\x402\x5\x205\x103\x2\x402\x403\x5\x227\x114" + + "\x2\x403\x404\x5\x211\x109\x2\x404\x405\x5\x21D\x10F\x2\x405\x406\x5\x21B" + + "\x10E\x2\x406\x8E\x3\x2\x2\x2\x407\x408\x5\x209\x105\x2\x408\x409\x5\x22F" + + "\x118\x2\x409\x40A\x5\x211\x109\x2\x40A\x40B\x5\x227\x114\x2\x40B\x40C" + + "\x5\x1F7\xFC\x2\x40C\x40D\x5\x21F\x110\x2\x40D\x40E\x5\x223\x112\x2\x40E" + + "\x40F\x5\x21D\x10F\x2\x40F\x410\x5\x21F\x110\x2\x410\x411\x5\x209\x105" + + "\x2\x411\x412\x5\x223\x112\x2\x412\x413\x5\x227\x114\x2\x413\x414\x5\x231" + + "\x119\x2\x414\x90\x3\x2\x2\x2\x415\x416\x5\x209\x105\x2\x416\x417\x5\x22F" + + "\x118\x2\x417\x418\x5\x211\x109\x2\x418\x419\x5\x227\x114\x2\x419\x41A" + + "\x5\x1F7\xFC\x2\x41A\x41B\x5\x225\x113\x2\x41B\x41C\x5\x229\x115\x2\x41C" + + "\x41D\x5\x203\x102\x2\x41D\x92\x3\x2\x2\x2\x41E\x41F\x5\x20B\x106\x2\x41F" + + "\x420\x5\x201\x101\x2\x420\x421\x5\x217\x10C\x2\x421\x422\x5\x225\x113" + + "\x2\x422\x423\x5\x209\x105\x2\x423\x94\x3\x2\x2\x2\x424\x425\x5\x20B\x106" + + "\x2\x425\x426\x5\x211\x109\x2\x426\x427\x5\x217\x10C\x2\x427\x428\x5\x209" + + "\x105\x2\x428\x429\x5\x205\x103\x2\x429\x42A\x5\x21D\x10F\x2\x42A\x42B" + + "\x5\x21F\x110\x2\x42B\x42C\x5\x231\x119\x2\x42C\x96\x3\x2\x2\x2\x42D\x42E" + + "\x5\x20B\x106\x2\x42E\x42F\x5\x223\x112\x2\x42F\x430\x5\x211\x109\x2\x430" + + "\x431\x5\x209\x105\x2\x431\x432\x5\x21B\x10E\x2\x432\x433\x5\x207\x104" + + "\x2\x433\x98\x3\x2\x2\x2\x434\x435\x5\x20B\x106\x2\x435\x436\x5\x21D\x10F" + + "\x2\x436\x437\x5\x223\x112\x2\x437\x9A\x3\x2\x2\x2\x438\x439\x5\x20B\x106" + + "\x2\x439\x43A\x5\x229\x115\x2\x43A\x43B\x5\x21B\x10E\x2\x43B\x43C\x5\x205" + + "\x103\x2\x43C\x43D\x5\x227\x114\x2\x43D\x43E\x5\x211\x109\x2\x43E\x43F" + + "\x5\x21D\x10F\x2\x43F\x440\x5\x21B\x10E\x2\x440\x9C\x3\x2\x2\x2\x441\x442" + + "\x5\x20D\x107\x2\x442\x443\x5\x209\x105\x2\x443\x444\x5\x227\x114\x2\x444" + + "\x9E\x3\x2\x2\x2\x445\x446\x5\x20D\x107\x2\x446\x447\x5\x217\x10C\x2\x447" + + "\x448\x5\x21D\x10F\x2\x448\x449\x5\x203\x102\x2\x449\x44A\x5\x201\x101" + + "\x2\x44A\x44B\x5\x217\x10C\x2\x44B\xA0\x3\x2\x2\x2\x44C\x44D\x5\x20D\x107" + + "\x2\x44D\x44E\x5\x21D\x10F\x2\x44E\x44F\x5\x225\x113\x2\x44F\x450\x5\x229" + + "\x115\x2\x450\x451\x5\x203\x102\x2\x451\xA2\x3\x2\x2\x2\x452\x453\x5\x20D" + + "\x107\x2\x453\x454\x5\x21D\x10F\x2\x454\x455\x5\x227\x114\x2\x455\x456" + + "\x5\x21D\x10F\x2\x456\xA4\x3\x2\x2\x2\x457\x458\x5\x211\x109\x2\x458\x459" + + "\x5\x20B\x106\x2\x459\xA6\x3\x2\x2\x2\x45A\x45B\x5\x211\x109\x2\x45B\x45C" + + "\x5\x219\x10D\x2\x45C\x45D\x5\x21F\x110\x2\x45D\xA8\x3\x2\x2\x2\x45E\x45F" + + "\x5\x211\x109\x2\x45F\x460\x5\x219\x10D\x2\x460\x461\x5\x21F\x110\x2\x461" + + "\x462\x5\x217\x10C\x2\x462\x463\x5\x209\x105\x2\x463\x464\x5\x219\x10D" + + "\x2\x464\x465\x5\x209\x105\x2\x465\x466\x5\x21B\x10E\x2\x466\x467\x5\x227" + + "\x114\x2\x467\x468\x5\x225\x113\x2\x468\xAA\x3\x2\x2\x2\x469\x46A\x5\x211" + + "\x109\x2\x46A\x46B\x5\x21B\x10E\x2\x46B\xAC\x3\x2\x2\x2\x46C\x46D\x5\x211" + + "\x109\x2\x46D\x46E\x5\x21B\x10E\x2\x46E\x46F\x5\x21F\x110\x2\x46F\x470" + + "\x5\x229\x115\x2\x470\x471\x5\x227\x114\x2\x471\xAE\x3\x2\x2\x2\x472\x473" + + "\x5\x211\x109\x2\x473\x474\x5\x225\x113\x2\x474\xB0\x3\x2\x2\x2\x475\x476" + + "\x5\x211\x109\x2\x476\x477\x5\x21B\x10E\x2\x477\x478\x5\x227\x114\x2\x478" + + "\x479\x5\x209\x105\x2\x479\x47A\x5\x20D\x107\x2\x47A\x47B\x5\x209\x105" + + "\x2\x47B\x47C\x5\x223\x112\x2\x47C\xB2\x3\x2\x2\x2\x47D\x47E\x5\x215\x10B" + + "\x2\x47E\x47F\x5\x211\x109\x2\x47F\x480\x5\x217\x10C\x2\x480\x481\x5\x217" + + "\x10C\x2\x481\xB4\x3\x2\x2\x2\x482\x483\x5\x217\x10C\x2\x483\x484\x5\x21D" + + "\x10F\x2\x484\x485\x5\x201\x101\x2\x485\x486\x5\x207\x104\x2\x486\xB6" + + "\x3\x2\x2\x2\x487\x488\x5\x217\x10C\x2\x488\x489\x5\x21D\x10F\x2\x489" + + "\x48A\x5\x205\x103\x2\x48A\x48B\x5\x215\x10B\x2\x48B\xB8\x3\x2\x2\x2\x48C" + + "\x48D\x5\x217\x10C\x2\x48D\x48E\x5\x21D\x10F\x2\x48E\x48F\x5\x21B\x10E" + + "\x2\x48F\x490\x5\x20D\x107\x2\x490\xBA\x3\x2\x2\x2\x491\x492\x5\x217\x10C" + + "\x2\x492\x493\x5\x21D\x10F\x2\x493\x494\x5\x21D\x10F\x2\x494\x495\x5\x21F" + + "\x110\x2\x495\xBC\x3\x2\x2\x2\x496\x497\x5\x217\x10C\x2\x497\x498\x5\x209" + + "\x105\x2\x498\x499\x5\x21B\x10E\x2\x499\xBE\x3\x2\x2\x2\x49A\x49B\x5\x217" + + "\x10C\x2\x49B\x49C\x5\x209\x105\x2\x49C\x49D\x5\x227\x114\x2\x49D\xC0" + + "\x3\x2\x2\x2\x49E\x49F\x5\x217\x10C\x2\x49F\x4A0\x5\x211\x109\x2\x4A0" + + "\x4A1\x5\x203\x102\x2\x4A1\xC2\x3\x2\x2\x2\x4A2\x4A3\x5\x217\x10C\x2\x4A3" + + "\x4A4\x5\x211\x109\x2\x4A4\x4A5\x5\x215\x10B\x2\x4A5\x4A6\x5\x209\x105" + + "\x2\x4A6\xC4\x3\x2\x2\x2\x4A7\x4A8\x5\x217\x10C\x2\x4A8\x4A9\x5\x211\x109" + + "\x2\x4A9\x4AA\x5\x21B\x10E\x2\x4AA\x4AB\x5\x209\x105\x2\x4AB\x4AC\x5\x1F7" + + "\xFC\x2\x4AC\x4AD\x5\x211\x109\x2\x4AD\x4AE\x5\x21B\x10E\x2\x4AE\x4AF" + + "\x5\x21F\x110\x2\x4AF\x4B0\x5\x229\x115\x2\x4B0\x4B1\x5\x227\x114\x2\x4B1" + + "\xC6\x3\x2\x2\x2\x4B2\x4B3\x5\x217\x10C\x2\x4B3\x4B4\x5\x21D\x10F\x2\x4B4" + + "\x4B5\x5\x205\x103\x2\x4B5\x4B6\x5\x215\x10B\x2\x4B6\x4B7\x5\x1F7\xFC" + + "\x2\x4B7\x4B8\x5\x223\x112\x2\x4B8\x4B9\x5\x209\x105\x2\x4B9\x4BA\x5\x201" + + "\x101\x2\x4BA\x4BB\x5\x207\x104\x2\x4BB\xC8\x3\x2\x2\x2\x4BC\x4BD\x5\x217" + + "\x10C\x2\x4BD\x4BE\x5\x21D\x10F\x2\x4BE\x4BF\x5\x205\x103\x2\x4BF\x4C0" + + "\x5\x215\x10B\x2\x4C0\x4C1\x5\x1F7\xFC\x2\x4C1\x4C2\x5\x22D\x117\x2\x4C2" + + "\x4C3\x5\x223\x112\x2\x4C3\x4C4\x5\x211\x109\x2\x4C4\x4C5\x5\x227\x114" + + "\x2\x4C5\x4C6\x5\x209\x105\x2\x4C6\xCA\x3\x2\x2\x2\x4C7\x4C8\x5\x217\x10C" + + "\x2\x4C8\x4C9\x5\x21D\x10F\x2\x4C9\x4CA\x5\x205\x103\x2\x4CA\x4CB\x5\x215" + + "\x10B\x2\x4CB\x4CC\x5\x1F7\xFC\x2\x4CC\x4CD\x5\x223\x112\x2\x4CD\x4CE" + + "\x5\x209\x105\x2\x4CE\x4CF\x5\x201\x101\x2\x4CF\x4D0\x5\x207\x104\x2\x4D0" + + "\x4D1\x5\x1F7\xFC\x2\x4D1\x4D2\x5\x22D\x117\x2\x4D2\x4D3\x5\x223\x112" + + "\x2\x4D3\x4D4\x5\x211\x109\x2\x4D4\x4D5\x5\x227\x114\x2\x4D5\x4D6\x5\x209" + + "\x105\x2\x4D6\xCC\x3\x2\x2\x2\x4D7\x4D8\x5\x217\x10C\x2\x4D8\x4D9\x5\x225" + + "\x113\x2\x4D9\x4DA\x5\x209\x105\x2\x4DA\x4DB\x5\x227\x114\x2\x4DB\xCE" + + "\x3\x2\x2\x2\x4DC\x4DD\a%\x2\x2\x4DD\x4DE\x5\x205\x103\x2\x4DE\x4DF\x5" + + "\x21D\x10F\x2\x4DF\x4E0\x5\x21B\x10E\x2\x4E0\x4E1\x5\x225\x113\x2\x4E1" + + "\x4E2\x5\x227\x114\x2\x4E2\xD0\x3\x2\x2\x2\x4E3\x4E4\a%\x2\x2\x4E4\x4E5" + + "\x5\x211\x109\x2\x4E5\x4E6\x5\x20B\x106\x2\x4E6\xD2\x3\x2\x2\x2\x4E7\x4E8" + + "\a%\x2\x2\x4E8\x4E9\x5\x209\x105\x2\x4E9\x4EA\x5\x217\x10C\x2\x4EA\x4EB" + + "\x5\x225\x113\x2\x4EB\x4EC\x5\x209\x105\x2\x4EC\x4ED\x5\x211\x109\x2\x4ED" + + "\x4EE\x5\x20B\x106\x2\x4EE\xD4\x3\x2\x2\x2\x4EF\x4F0\a%\x2\x2\x4F0\x4F1" + + "\x5\x209\x105\x2\x4F1\x4F2\x5\x217\x10C\x2\x4F2\x4F3\x5\x225\x113\x2\x4F3" + + "\x4F4\x5\x209\x105\x2\x4F4\xD6\x3\x2\x2\x2\x4F5\x4F6\a%\x2\x2\x4F6\x4F7" + + "\x5\x209\x105\x2\x4F7\x4F8\x5\x21B\x10E\x2\x4F8\x4FA\x5\x207\x104\x2\x4F9" + + "\x4FB\x5\x1F7\xFC\x2\x4FA\x4F9\x3\x2\x2\x2\x4FA\x4FB\x3\x2\x2\x2\x4FB" + + "\x4FC\x3\x2\x2\x2\x4FC\x4FD\x5\x211\x109\x2\x4FD\x4FE\x5\x20B\x106\x2" + + "\x4FE\xD8\x3\x2\x2\x2\x4FF\x500\x5\x219\x10D\x2\x500\x501\x5\x209\x105" + + "\x2\x501\xDA\x3\x2\x2\x2\x502\x503\x5\x219\x10D\x2\x503\x504\x5\x211\x109" + + "\x2\x504\x505\x5\x207\x104\x2\x505\xDC\x3\x2\x2\x2\x506\x507\x5\x219\x10D" + + "\x2\x507\x508\x5\x215\x10B\x2\x508\x509\x5\x207\x104\x2\x509\x50A\x5\x211" + + "\x109\x2\x50A\x50B\x5\x223\x112\x2\x50B\xDE\x3\x2\x2\x2\x50C\x50D\x5\x219" + + "\x10D\x2\x50D\x50E\x5\x21D\x10F\x2\x50E\x50F\x5\x207\x104\x2\x50F\xE0" + + "\x3\x2\x2\x2\x510\x511\x5\x21B\x10E\x2\x511\x512\x5\x201\x101\x2\x512" + + "\x513\x5\x219\x10D\x2\x513\x514\x5\x209\x105\x2\x514\xE2\x3\x2\x2\x2\x515" + + "\x516\x5\x21B\x10E\x2\x516\x517\x5\x209\x105\x2\x517\x518\x5\x22F\x118" + + "\x2\x518\x519\x5\x227\x114\x2\x519\xE4\x3\x2\x2\x2\x51A\x51B\x5\x21B\x10E" + + "\x2\x51B\x51C\x5\x209\x105\x2\x51C\x51D\x5\x22D\x117\x2\x51D\xE6\x3\x2" + + "\x2\x2\x51E\x51F\x5\x21B\x10E\x2\x51F\x520\x5\x21D\x10F\x2\x520\x521\x5" + + "\x227\x114\x2\x521\xE8\x3\x2\x2\x2\x522\x523\x5\x21B\x10E\x2\x523\x524" + + "\x5\x21D\x10F\x2\x524\x525\x5\x227\x114\x2\x525\x526\x5\x20F\x108\x2\x526" + + "\x527\x5\x211\x109\x2\x527\x528\x5\x21B\x10E\x2\x528\x529\x5\x20D\x107" + + "\x2\x529\xEA\x3\x2\x2\x2\x52A\x52B\x5\x21B\x10E\x2\x52B\x52C\x5\x229\x115" + + "\x2\x52C\x52D\x5\x217\x10C\x2\x52D\x52E\x5\x217\x10C\x2\x52E\xEC\x3\x2" + + "\x2\x2\x52F\x530\x5\x21D\x10F\x2\x530\x531\x5\x21B\x10E\x2\x531\xEE\x3" + + "\x2\x2\x2\x532\x533\x5\x21D\x10F\x2\x533\x534\x5\x21B\x10E\x2\x534\x535" + + "\x5\x1F7\xFC\x2\x535\x536\x5\x209\x105\x2\x536\x537\x5\x223\x112\x2\x537" + + "\x538\x5\x223\x112\x2\x538\x539\x5\x21D\x10F\x2\x539\x53A\x5\x223\x112" + + "\x2\x53A\xF0\x3\x2\x2\x2\x53B\x53C\x5\x21D\x10F\x2\x53C\x53D\x5\x21B\x10E" + + "\x2\x53D\x53E\x5\x1F7\xFC\x2\x53E\x53F\x5\x217\x10C\x2\x53F\x540\x5\x21D" + + "\x10F\x2\x540\x541\x5\x205\x103\x2\x541\x542\x5\x201\x101\x2\x542\x543" + + "\x5\x217\x10C\x2\x543\x544\x5\x1F7\xFC\x2\x544\x545\x5\x209\x105\x2\x545" + + "\x546\x5\x223\x112\x2\x546\x547\x5\x223\x112\x2\x547\x548\x5\x21D\x10F" + + "\x2\x548\x549\x5\x223\x112\x2\x549\xF2\x3\x2\x2\x2\x54A\x54B\x5\x21D\x10F" + + "\x2\x54B\x54C\x5\x21F\x110\x2\x54C\x54D\x5\x209\x105\x2\x54D\x54E\x5\x21B" + + "\x10E\x2\x54E\xF4\x3\x2\x2\x2\x54F\x550\x5\x21D\x10F\x2\x550\x551\x5\x21F" + + "\x110\x2\x551\x552\x5\x227\x114\x2\x552\x553\x5\x211\x109\x2\x553\x554" + + "\x5\x21D\x10F\x2\x554\x555\x5\x21B\x10E\x2\x555\x556\x5\x201\x101\x2\x556" + + "\x557\x5\x217\x10C\x2\x557\xF6\x3\x2\x2\x2\x558\x559\x5\x21D\x10F\x2\x559" + + "\x55A\x5\x21F\x110\x2\x55A\x55B\x5\x227\x114\x2\x55B\x55C\x5\x211\x109" + + "\x2\x55C\x55D\x5\x21D\x10F\x2\x55D\x55E\x5\x21B\x10E\x2\x55E\x55F\x5\x1F7" + + "\xFC\x2\x55F\x560\x5\x203\x102\x2\x560\x561\x5\x201\x101\x2\x561\x562" + + "\x5\x225\x113\x2\x562\x563\x5\x209\x105\x2\x563\xF8\x3\x2\x2\x2\x564\x565" + + "\x5\x21D\x10F\x2\x565\x566\x5\x21F\x110\x2\x566\x567\x5\x227\x114\x2\x567" + + "\x568\x5\x211\x109\x2\x568\x569\x5\x21D\x10F\x2\x569\x56A\x5\x21B\x10E" + + "\x2\x56A\x56B\x5\x1F7\xFC\x2\x56B\x56C\x5\x209\x105\x2\x56C\x56D\x5\x22F" + + "\x118\x2\x56D\x56E\x5\x21F\x110\x2\x56E\x56F\x5\x217\x10C\x2\x56F\x570" + + "\x5\x211\x109\x2\x570\x571\x5\x205\x103\x2\x571\x572\x5\x211\x109\x2\x572" + + "\x573\x5\x227\x114\x2\x573\xFA\x3\x2\x2\x2\x574\x575\x5\x21D\x10F\x2\x575" + + "\x576\x5\x21F\x110\x2\x576\x577\x5\x227\x114\x2\x577\x578\x5\x211\x109" + + "\x2\x578\x579\x5\x21D\x10F\x2\x579\x57A\x5\x21B\x10E\x2\x57A\x57B\x5\x1F7" + + "\xFC\x2\x57B\x57C\x5\x205\x103\x2\x57C\x57D\x5\x21D\x10F\x2\x57D\x57E" + + "\x5\x219\x10D\x2\x57E\x57F\x5\x21F\x110\x2\x57F\x580\x5\x201\x101\x2\x580" + + "\x581\x5\x223\x112\x2\x581\x582\x5\x209\x105\x2\x582\xFC\x3\x2\x2\x2\x583" + + "\x584\x5\x21D\x10F\x2\x584\x585\x5\x21F\x110\x2\x585\x586\x5\x227\x114" + + "\x2\x586\x587\x5\x211\x109\x2\x587\x588\x5\x21D\x10F\x2\x588\x589\x5\x21B" + + "\x10E\x2\x589\x58A\x5\x1F7\xFC\x2\x58A\x58B\x5\x21F\x110\x2\x58B\x58C" + + "\x5\x223\x112\x2\x58C\x58D\x5\x211\x109\x2\x58D\x58E\x5\x22B\x116\x2\x58E" + + "\x58F\x5\x201\x101\x2\x58F\x590\x5\x227\x114\x2\x590\x591\x5\x209\x105" + + "\x2\x591\x592\x5\x1F7\xFC\x2\x592\x593\x5\x219\x10D\x2\x593\x594\x5\x21D" + + "\x10F\x2\x594\x595\x5\x207\x104\x2\x595\x596\x5\x229\x115\x2\x596\x597" + + "\x5\x217\x10C\x2\x597\x598\x5\x209\x105\x2\x598\xFE\x3\x2\x2\x2\x599\x59A" + + "\x5\x21D\x10F\x2\x59A\x59B\x5\x223\x112\x2\x59B\x100\x3\x2\x2\x2\x59C" + + "\x59D\x5\x21D\x10F\x2\x59D\x59E\x5\x229\x115\x2\x59E\x59F\x5\x227\x114" + + "\x2\x59F\x5A0\x5\x21F\x110\x2\x5A0\x5A1\x5\x229\x115\x2\x5A1\x5A2\x5\x227" + + "\x114\x2\x5A2\x102\x3\x2\x2\x2\x5A3\x5A4\x5\x21F\x110\x2\x5A4\x5A5\x5" + + "\x201\x101\x2\x5A5\x5A6\x5\x223\x112\x2\x5A6\x5A7\x5\x201\x101\x2\x5A7" + + "\x5A8\x5\x219\x10D\x2\x5A8\x5A9\x5\x201\x101\x2\x5A9\x5AA\x5\x223\x112" + + "\x2\x5AA\x5AB\x5\x223\x112\x2\x5AB\x5AC\x5\x201\x101\x2\x5AC\x5AD\x5\x231" + + "\x119\x2\x5AD\x104\x3\x2\x2\x2\x5AE\x5AF\x5\x21F\x110\x2\x5AF\x5B0\x5" + + "\x223\x112\x2\x5B0\x5B1\x5\x209\x105\x2\x5B1\x5B2\x5\x225\x113\x2\x5B2" + + "\x5B3\x5\x209\x105\x2\x5B3\x5B4\x5\x223\x112\x2\x5B4\x5B5\x5\x22B\x116" + + "\x2\x5B5\x5B6\x5\x209\x105\x2\x5B6\x106\x3\x2\x2\x2\x5B7\x5B8\x5\x21F" + + "\x110\x2\x5B8\x5B9\x5\x223\x112\x2\x5B9\x5BA\x5\x211\x109\x2\x5BA\x5BB" + + "\x5\x21B\x10E\x2\x5BB\x5BC\x5\x227\x114\x2\x5BC\x108\x3\x2\x2\x2\x5BD" + + "\x5BE\x5\x21F\x110\x2\x5BE\x5BF\x5\x223\x112\x2\x5BF\x5C0\x5\x211\x109" + + "\x2\x5C0\x5C1\x5\x22B\x116\x2\x5C1\x5C2\x5\x201\x101\x2\x5C2\x5C3\x5\x227" + + "\x114\x2\x5C3\x5C4\x5\x209\x105\x2\x5C4\x10A\x3\x2\x2\x2\x5C5\x5C6\x5" + + "\x21F\x110\x2\x5C6\x5C7\x5\x223\x112\x2\x5C7\x5C8\x5\x21D\x10F\x2\x5C8" + + "\x5C9\x5\x21F\x110\x2\x5C9\x5CA\x5\x209\x105\x2\x5CA\x5CB\x5\x223\x112" + + "\x2\x5CB\x5CC\x5\x227\x114\x2\x5CC\x5CD\x5\x231\x119\x2\x5CD\x5CE\x5\x1F7" + + "\xFC\x2\x5CE\x5CF\x5\x20D\x107\x2\x5CF\x5D0\x5\x209\x105\x2\x5D0\x5D1" + + "\x5\x227\x114\x2\x5D1\x10C\x3\x2\x2\x2\x5D2\x5D3\x5\x21F\x110\x2\x5D3" + + "\x5D4\x5\x223\x112\x2\x5D4\x5D5\x5\x21D\x10F\x2\x5D5\x5D6\x5\x21F\x110" + + "\x2\x5D6\x5D7\x5\x209\x105\x2\x5D7\x5D8\x5\x223\x112\x2\x5D8\x5D9\x5\x227" + + "\x114\x2\x5D9\x5DA\x5\x231\x119\x2\x5DA\x5DB\x5\x1F7\xFC\x2\x5DB\x5DC" + + "\x5\x217\x10C\x2\x5DC\x5DD\x5\x209\x105\x2\x5DD\x5DE\x5\x227\x114\x2\x5DE" + + "\x10E\x3\x2\x2\x2\x5DF\x5E0\x5\x21F\x110\x2\x5E0\x5E1\x5\x223\x112\x2" + + "\x5E1\x5E2\x5\x21D\x10F\x2\x5E2\x5E3\x5\x21F\x110\x2\x5E3\x5E4\x5\x209" + + "\x105\x2\x5E4\x5E5\x5\x223\x112\x2\x5E5\x5E6\x5\x227\x114\x2\x5E6\x5E7" + + "\x5\x231\x119\x2\x5E7\x5E8\x5\x1F7\xFC\x2\x5E8\x5E9\x5\x225\x113\x2\x5E9" + + "\x5EA\x5\x209\x105\x2\x5EA\x5EB\x5\x227\x114\x2\x5EB\x110\x3\x2\x2\x2" + + "\x5EC\x5ED\x5\x21F\x110\x2\x5ED\x5EE\x5\x227\x114\x2\x5EE\x5EF\x5\x223" + + "\x112\x2\x5EF\x5F0\x5\x225\x113\x2\x5F0\x5F1\x5\x201\x101\x2\x5F1\x5F2" + + "\x5\x20B\x106\x2\x5F2\x5F3\x5\x209\x105\x2\x5F3\x112\x3\x2\x2\x2\x5F4" + + "\x5F5\x5\x21F\x110\x2\x5F5\x5F6\x5\x229\x115\x2\x5F6\x5F7\x5\x203\x102" + + "\x2\x5F7\x5F8\x5\x217\x10C\x2\x5F8\x5F9\x5\x211\x109\x2\x5F9\x5FA\x5\x205" + + "\x103\x2\x5FA\x114\x3\x2\x2\x2\x5FB\x5FC\x5\x21F\x110\x2\x5FC\x5FD\x5" + + "\x229\x115\x2\x5FD\x5FE\x5\x227\x114\x2\x5FE\x116\x3\x2\x2\x2\x5FF\x600" + + "\x5\x223\x112\x2\x600\x601\x5\x201\x101\x2\x601\x602\x5\x21B\x10E\x2\x602" + + "\x603\x5\x207\x104\x2\x603\x604\x5\x21D\x10F\x2\x604\x605\x5\x219\x10D" + + "\x2\x605\x118\x3\x2\x2\x2\x606\x607\x5\x223\x112\x2\x607\x608\x5\x201" + + "\x101\x2\x608\x609\x5\x21B\x10E\x2\x609\x60A\x5\x207\x104\x2\x60A\x60B" + + "\x5\x21D\x10F\x2\x60B\x60C\x5\x219\x10D\x2\x60C\x60D\x5\x211\x109\x2\x60D" + + "\x60E\x5\x233\x11A\x2\x60E\x60F\x5\x209\x105\x2\x60F\x11A\x3\x2\x2\x2" + + "\x610\x611\x5\x223\x112\x2\x611\x612\x5\x201\x101\x2\x612\x613\x5\x211" + + "\x109\x2\x613\x614\x5\x225\x113\x2\x614\x615\x5\x209\x105\x2\x615\x616" + + "\x5\x209\x105\x2\x616\x617\x5\x22B\x116\x2\x617\x618\x5\x209\x105\x2\x618" + + "\x619\x5\x21B\x10E\x2\x619\x61A\x5\x227\x114\x2\x61A\x11C\x3\x2\x2\x2" + + "\x61B\x61C\x5\x223\x112\x2\x61C\x61D\x5\x209\x105\x2\x61D\x61E\x5\x201" + + "\x101\x2\x61E\x61F\x5\x207\x104\x2\x61F\x11E\x3\x2\x2\x2\x620\x621\x5" + + "\x223\x112\x2\x621\x622\x5\x209\x105\x2\x622\x623\x5\x201\x101\x2\x623" + + "\x624\x5\x207\x104\x2\x624\x625\x5\x1F7\xFC\x2\x625\x626\x5\x22D\x117" + + "\x2\x626\x627\x5\x223\x112\x2\x627\x628\x5\x211\x109\x2\x628\x629\x5\x227" + + "\x114\x2\x629\x62A\x5\x209\x105\x2\x62A\x120\x3\x2\x2\x2\x62B\x62C\x5" + + "\x223\x112\x2\x62C\x62D\x5\x209\x105\x2\x62D\x62E\x5\x207\x104\x2\x62E" + + "\x62F\x5\x211\x109\x2\x62F\x630\x5\x219\x10D\x2\x630\x122\x3\x2\x2\x2" + + "\x631\x632\x5\x223\x112\x2\x632\x633\x5\x209\x105\x2\x633\x634\x5\x219" + + "\x10D\x2\x634\x124\x3\x2\x2\x2\x635\x636\x5\x223\x112\x2\x636\x637\x5" + + "\x209\x105\x2\x637\x638\x5\x225\x113\x2\x638\x639\x5\x209\x105\x2\x639" + + "\x63A\x5\x227\x114\x2\x63A\x126\x3\x2\x2\x2\x63B\x63C\x5\x223\x112\x2" + + "\x63C\x63D\x5\x209\x105\x2\x63D\x63E\x5\x225\x113\x2\x63E\x63F\x5\x229" + + "\x115\x2\x63F\x640\x5\x219\x10D\x2\x640\x641\x5\x209\x105\x2\x641\x128" + + "\x3\x2\x2\x2\x642\x643\x5\x223\x112\x2\x643\x644\x5\x209\x105\x2\x644" + + "\x645\x5\x227\x114\x2\x645\x646\x5\x229\x115\x2\x646\x647\x5\x223\x112" + + "\x2\x647\x648\x5\x21B\x10E\x2\x648\x12A\x3\x2\x2\x2\x649\x64A\x5\x223" + + "\x112\x2\x64A\x64B\x5\x219\x10D\x2\x64B\x64C\x5\x207\x104\x2\x64C\x64D" + + "\x5\x211\x109\x2\x64D\x64E\x5\x223\x112\x2\x64E\x12C\x3\x2\x2\x2\x64F" + + "\x650\x5\x223\x112\x2\x650\x651\x5\x225\x113\x2\x651\x652\x5\x209\x105" + + "\x2\x652\x653\x5\x227\x114\x2\x653\x12E\x3\x2\x2\x2\x654\x655\x5\x225" + + "\x113\x2\x655\x656\x5\x201\x101\x2\x656\x657\x5\x22B\x116\x2\x657\x658" + + "\x5\x209\x105\x2\x658\x659\x5\x21F\x110\x2\x659\x65A\x5\x211\x109\x2\x65A" + + "\x65B\x5\x205\x103\x2\x65B\x65C\x5\x227\x114\x2\x65C\x65D\x5\x229\x115" + + "\x2\x65D\x65E\x5\x223\x112\x2\x65E\x65F\x5\x209\x105\x2\x65F\x130\x3\x2" + + "\x2\x2\x660\x661\x5\x225\x113\x2\x661\x662\x5\x201\x101\x2\x662\x663\x5" + + "\x22B\x116\x2\x663\x664\x5\x209\x105\x2\x664\x665\x5\x225\x113\x2\x665" + + "\x666\x5\x209\x105\x2\x666\x667\x5\x227\x114\x2\x667\x668\x5\x227\x114" + + "\x2\x668\x669\x5\x211\x109\x2\x669\x66A\x5\x21B\x10E\x2\x66A\x66B\x5\x20D" + + "\x107\x2\x66B\x132\x3\x2\x2\x2\x66C\x66D\x5\x225\x113\x2\x66D\x66E\x5" + + "\x209\x105\x2\x66E\x66F\x5\x209\x105\x2\x66F\x670\x5\x215\x10B\x2\x670" + + "\x134\x3\x2\x2\x2\x671\x672\x5\x225\x113\x2\x672\x673\x5\x209\x105\x2" + + "\x673\x674\x5\x217\x10C\x2\x674\x675\x5\x209\x105\x2\x675\x676\x5\x205" + + "\x103\x2\x676\x677\x5\x227\x114\x2\x677\x136\x3\x2\x2\x2\x678\x679\x5" + + "\x225\x113\x2\x679\x67A\x5\x209\x105\x2\x67A\x67B\x5\x21B\x10E\x2\x67B" + + "\x67C\x5\x207\x104\x2\x67C\x67D\x5\x215\x10B\x2\x67D\x67E\x5\x209\x105" + + "\x2\x67E\x67F\x5\x231\x119\x2\x67F\x680\x5\x225\x113\x2\x680\x138\x3\x2" + + "\x2\x2\x681\x682\x5\x225\x113\x2\x682\x683\x5\x209\x105\x2\x683\x684\x5" + + "\x227\x114\x2\x684\x13A\x3\x2\x2\x2\x685\x686\x5\x225\x113\x2\x686\x687" + + "\x5\x209\x105\x2\x687\x688\x5\x227\x114\x2\x688\x689\x5\x201\x101\x2\x689" + + "\x68A\x5\x227\x114\x2\x68A\x68B\x5\x227\x114\x2\x68B\x68C\x5\x223\x112" + + "\x2\x68C\x13C\x3\x2\x2\x2\x68D\x68E\x5\x225\x113\x2\x68E\x68F\x5\x20F" + + "\x108\x2\x68F\x690\x5\x201\x101\x2\x690\x691\x5\x223\x112\x2\x691\x692" + + "\x5\x209\x105\x2\x692\x693\x5\x207\x104\x2\x693\x13E\x3\x2\x2\x2\x694" + + "\x695\x5\x225\x113\x2\x695\x696\x5\x211\x109\x2\x696\x697\x5\x21B\x10E" + + "\x2\x697\x698\x5\x20D\x107\x2\x698\x699\x5\x217\x10C\x2\x699\x69A\x5\x209" + + "\x105\x2\x69A\x140\x3\x2\x2\x2\x69B\x69C\x5\x225\x113\x2\x69C\x69D\x5" + + "\x21F\x110\x2\x69D\x69E\x5\x205\x103\x2\x69E\x142\x3\x2\x2\x2\x69F\x6A0" + + "\x5\x225\x113\x2\x6A0\x6A1\x5\x227\x114\x2\x6A1\x6A2\x5\x201\x101\x2\x6A2" + + "\x6A3\x5\x227\x114\x2\x6A3\x6A4\x5\x211\x109\x2\x6A4\x6A5\x5\x205\x103" + + "\x2\x6A5\x144\x3\x2\x2\x2\x6A6\x6A7\x5\x225\x113\x2\x6A7\x6A8\x5\x227" + + "\x114\x2\x6A8\x6A9\x5\x209\x105\x2\x6A9\x6AA\x5\x21F\x110\x2\x6AA\x146" + + "\x3\x2\x2\x2\x6AB\x6AC\x5\x225\x113\x2\x6AC\x6AD\x5\x227\x114\x2\x6AD" + + "\x6AE\x5\x21D\x10F\x2\x6AE\x6AF\x5\x21F\x110\x2\x6AF\x148\x3\x2\x2\x2" + + "\x6B0\x6B1\x5\x225\x113\x2\x6B1\x6B2\x5\x227\x114\x2\x6B2\x6B3\x5\x223" + + "\x112\x2\x6B3\x6B4\x5\x211\x109\x2\x6B4\x6B5\x5\x21B\x10E\x2\x6B5\x6B6" + + "\x5\x20D\x107\x2\x6B6\x14A\x3\x2\x2\x2\x6B7\x6B8\x5\x225\x113\x2\x6B8" + + "\x6B9\x5\x229\x115\x2\x6B9\x6BA\x5\x203\x102\x2\x6BA\x14C\x3\x2\x2\x2" + + "\x6BB\x6BC\x5\x227\x114\x2\x6BC\x6BD\x5\x201\x101\x2\x6BD\x6BE\x5\x203" + + "\x102\x2\x6BE\x14E\x3\x2\x2\x2\x6BF\x6C0\x5\x227\x114\x2\x6C0\x6C1\x5" + + "\x209\x105\x2\x6C1\x6C2\x5\x22F\x118\x2\x6C2\x6C3\x5\x227\x114\x2\x6C3" + + "\x150\x3\x2\x2\x2\x6C4\x6C5\x5\x227\x114\x2\x6C5\x6C6\x5\x20F\x108\x2" + + "\x6C6\x6C7\x5\x209\x105\x2\x6C7\x6C8\x5\x21B\x10E\x2\x6C8\x152\x3\x2\x2" + + "\x2\x6C9\x6CA\x5\x227\x114\x2\x6CA\x6CB\x5\x211\x109\x2\x6CB\x6CC\x5\x219" + + "\x10D\x2\x6CC\x6CD\x5\x209\x105\x2\x6CD\x154\x3\x2\x2\x2\x6CE\x6CF\x5" + + "\x227\x114\x2\x6CF\x6D0\x5\x21D\x10F\x2\x6D0\x156\x3\x2\x2\x2\x6D1\x6D2" + + "\x5\x227\x114\x2\x6D2\x6D3\x5\x223\x112\x2\x6D3\x6D4\x5\x229\x115\x2\x6D4" + + "\x6D5\x5\x209\x105\x2\x6D5\x158\x3\x2\x2\x2\x6D6\x6D7\x5\x227\x114\x2" + + "\x6D7\x6D8\x5\x231\x119\x2\x6D8\x6D9\x5\x21F\x110\x2\x6D9\x6DA\x5\x209" + + "\x105\x2\x6DA\x15A\x3\x2\x2\x2\x6DB\x6DC\x5\x227\x114\x2\x6DC\x6DD\x5" + + "\x231\x119\x2\x6DD\x6DE\x5\x21F\x110\x2\x6DE\x6DF\x5\x209\x105\x2\x6DF" + + "\x6E0\x5\x21D\x10F\x2\x6E0\x6E1\x5\x20B\x106\x2\x6E1\x15C\x3\x2\x2\x2" + + "\x6E2\x6E3\x5\x229\x115\x2\x6E3\x6E4\x5\x21B\x10E\x2\x6E4\x6E5\x5\x217" + + "\x10C\x2\x6E5\x6E6\x5\x21D\x10F\x2\x6E6\x6E7\x5\x201\x101\x2\x6E7\x6E8" + + "\x5\x207\x104\x2\x6E8\x15E\x3\x2\x2\x2\x6E9\x6EA\x5\x229\x115\x2\x6EA" + + "\x6EB\x5\x21B\x10E\x2\x6EB\x6EC\x5\x217\x10C\x2\x6EC\x6ED\x5\x21D\x10F" + + "\x2\x6ED\x6EE\x5\x205\x103\x2\x6EE\x6EF\x5\x215\x10B\x2\x6EF\x160\x3\x2" + + "\x2\x2\x6F0\x6F1\x5\x229\x115\x2\x6F1\x6F2\x5\x21B\x10E\x2\x6F2\x6F3\x5" + + "\x227\x114\x2\x6F3\x6F4\x5\x211\x109\x2\x6F4\x6F5\x5\x217\x10C\x2\x6F5" + + "\x162\x3\x2\x2\x2\x6F6\x6F7\x5\x22B\x116\x2\x6F7\x6F8\x5\x201\x101\x2" + + "\x6F8\x6F9\x5\x223\x112\x2\x6F9\x6FA\x5\x211\x109\x2\x6FA\x6FB\x5\x201" + + "\x101\x2\x6FB\x6FC\x5\x21B\x10E\x2\x6FC\x6FD\x5\x227\x114\x2\x6FD\x164" + + "\x3\x2\x2\x2\x6FE\x6FF\x5\x22B\x116\x2\x6FF\x700\x5\x209\x105\x2\x700" + + "\x701\x5\x223\x112\x2\x701\x702\x5\x225\x113\x2\x702\x703\x5\x211\x109" + + "\x2\x703\x704\x5\x21D\x10F\x2\x704\x705\x5\x21B\x10E\x2\x705\x166\x3\x2" + + "\x2\x2\x706\x707\x5\x22D\x117\x2\x707\x708\x5\x209\x105\x2\x708\x709\x5" + + "\x21B\x10E\x2\x709\x70A\x5\x207\x104\x2\x70A\x168\x3\x2\x2\x2\x70B\x70C" + + "\x5\x22D\x117\x2\x70C\x70D\x5\x20F\x108\x2\x70D\x70E\x5\x211\x109\x2\x70E" + + "\x70F\x5\x217\x10C\x2\x70F\x710\x5\x209\x105\x2\x710\x16A\x3\x2\x2\x2" + + "\x711\x712\x5\x22D\x117\x2\x712\x713\x5\x211\x109\x2\x713\x714\x5\x207" + + "\x104\x2\x714\x715\x5\x227\x114\x2\x715\x716\x5\x20F\x108\x2\x716\x16C" + + "\x3\x2\x2\x2\x717\x718\x5\x22D\x117\x2\x718\x719\x5\x211\x109\x2\x719" + + "\x71A\x5\x227\x114\x2\x71A\x71B\x5\x20F\x108\x2\x71B\x16E\x3\x2\x2\x2" + + "\x71C\x71D\x5\x22D\x117\x2\x71D\x71E\x5\x211\x109\x2\x71E\x71F\x5\x227" + + "\x114\x2\x71F\x720\x5\x20F\x108\x2\x720\x721\x5\x209\x105\x2\x721\x722" + + "\x5\x22B\x116\x2\x722\x723\x5\x209\x105\x2\x723\x724\x5\x21B\x10E\x2\x724" + + "\x725\x5\x227\x114\x2\x725\x726\x5\x225\x113\x2\x726\x170\x3\x2\x2\x2" + + "\x727\x728\x5\x22D\x117\x2\x728\x729\x5\x223\x112\x2\x729\x72A\x5\x211" + + "\x109\x2\x72A\x72B\x5\x227\x114\x2\x72B\x72C\x5\x209\x105\x2\x72C\x172" + + "\x3\x2\x2\x2\x72D\x72E\x5\x22F\x118\x2\x72E\x72F\x5\x21D\x10F\x2\x72F" + + "\x730\x5\x223\x112\x2\x730\x174\x3\x2\x2\x2\x731\x732\a(\x2\x2\x732\x176" + + "\x3\x2\x2\x2\x733\x734\a<\x2\x2\x734\x735\a?\x2\x2\x735\x178\x3\x2\x2" + + "\x2\x736\x737\a\x31\x2\x2\x737\x17A\x3\x2\x2\x2\x738\x739\a^\x2\x2\x739" + + "\x17C\x3\x2\x2\x2\x73A\x73B\a?\x2\x2\x73B\x17E\x3\x2\x2\x2\x73C\x73D\a" + + "@\x2\x2\x73D\x73E\a?\x2\x2\x73E\x180\x3\x2\x2\x2\x73F\x740\a@\x2\x2\x740" + + "\x182\x3\x2\x2\x2\x741\x742\a>\x2\x2\x742\x743\a?\x2\x2\x743\x184\x3\x2" + + "\x2\x2\x744\x745\a*\x2\x2\x745\x186\x3\x2\x2\x2\x746\x747\a>\x2\x2\x747" + + "\x188\x3\x2\x2\x2\x748\x749\a/\x2\x2\x749\x18A\x3\x2\x2\x2\x74A\x74B\a" + + ",\x2\x2\x74B\x18C\x3\x2\x2\x2\x74C\x74D\a>\x2\x2\x74D\x74E\a@\x2\x2\x74E" + + "\x18E\x3\x2\x2\x2\x74F\x750\a-\x2\x2\x750\x190\x3\x2\x2\x2\x751\x752\a" + + "`\x2\x2\x752\x192\x3\x2\x2\x2\x753\x754\a+\x2\x2\x754\x194\x3\x2\x2\x2" + + "\x755\x756\a]\x2\x2\x756\x196\x3\x2\x2\x2\x757\x758\a_\x2\x2\x758\x198" + + "\x3\x2\x2\x2\x759\x75F\a$\x2\x2\x75A\x75E\n\x2\x2\x2\x75B\x75C\a$\x2\x2" + + "\x75C\x75E\a$\x2\x2\x75D\x75A\x3\x2\x2\x2\x75D\x75B\x3\x2\x2\x2\x75E\x761" + + "\x3\x2\x2\x2\x75F\x75D\x3\x2\x2\x2\x75F\x760\x3\x2\x2\x2\x760\x762\x3" + + "\x2\x2\x2\x761\x75F\x3\x2\x2\x2\x762\x763\a$\x2\x2\x763\x19A\x3\x2\x2" + + "\x2\x764\x765\a(\x2\x2\x765\x766\aQ\x2\x2\x766\x768\x3\x2\x2\x2\x767\x769" + + "\t\x3\x2\x2\x768\x767\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2\x76A\x768\x3\x2" + + "\x2\x2\x76A\x76B\x3\x2\x2\x2\x76B\x76D\x3\x2\x2\x2\x76C\x76E\a(\x2\x2" + + "\x76D\x76C\x3\x2\x2\x2\x76D\x76E\x3\x2\x2\x2\x76E\x19C\x3\x2\x2\x2\x76F" + + "\x770\a(\x2\x2\x770\x771\aJ\x2\x2\x771\x773\x3\x2\x2\x2\x772\x774\t\x4" + + "\x2\x2\x773\x772\x3\x2\x2\x2\x774\x775\x3\x2\x2\x2\x775\x773\x3\x2\x2" + + "\x2\x775\x776\x3\x2\x2\x2\x776\x778\x3\x2\x2\x2\x777\x779\a(\x2\x2\x778" + + "\x777\x3\x2\x2\x2\x778\x779\x3\x2\x2\x2\x779\x19E\x3\x2\x2\x2\x77A\x77D" + + "\x5\x18F\xC8\x2\x77B\x77D\x5\x189\xC5\x2\x77C\x77A\x3\x2\x2\x2\x77C\x77B" + + "\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\x77F\x3\x2\x2\x2\x77E\x780\x5" + + "\x1FD\xFF\x2\x77F\x77E\x3\x2\x2\x2\x780\x781\x3\x2\x2\x2\x781\x77F\x3" + + "\x2\x2\x2\x781\x782\x3\x2\x2\x2\x782\x784\x3\x2\x2\x2\x783\x785\t\x5\x2" + + "\x2\x784\x783\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\x1A0\x3\x2\x2\x2" + + "\x786\x78A\x5\x19F\xD0\x2\x787\x788\x5\x209\x105\x2\x788\x789\x5\x19F" + + "\xD0\x2\x789\x78B\x3\x2\x2\x2\x78A\x787\x3\x2\x2\x2\x78A\x78B\x3\x2\x2" + + "\x2\x78B\x1A2\x3\x2\x2\x2\x78C\x78F\x5\x18F\xC8\x2\x78D\x78F\x5\x189\xC5" + + "\x2\x78E\x78C\x3\x2\x2\x2\x78E\x78D\x3\x2\x2\x2\x78E\x78F\x3\x2\x2\x2" + + "\x78F\x793\x3\x2\x2\x2\x790\x792\x5\x1FD\xFF\x2\x791\x790\x3\x2\x2\x2" + + "\x792\x795\x3\x2\x2\x2\x793\x791\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794" + + "\x796\x3\x2\x2\x2\x795\x793\x3\x2\x2\x2\x796\x798\a\x30\x2\x2\x797\x799" + + "\x5\x1FD\xFF\x2\x798\x797\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2\x79A\x798" + + "\x3\x2\x2\x2\x79A\x79B\x3\x2\x2\x2\x79B\x79F\x3\x2\x2\x2\x79C\x79D\x5" + + "\x209\x105\x2\x79D\x79E\x5\x19F\xD0\x2\x79E\x7A0\x3\x2\x2\x2\x79F\x79C" + + "\x3\x2\x2\x2\x79F\x7A0\x3\x2\x2\x2\x7A0\x1A4\x3\x2\x2\x2\x7A1\x7A2\a%" + + "\x2\x2\x7A2\x7A3\x5\x1A7\xD4\x2\x7A3\x7A4\a%\x2\x2\x7A4\x1A6\x3\x2\x2" + + "\x2\x7A5\x7A7\x5\x1A9\xD5\x2\x7A6\x7A8\x5\x1F7\xFC\x2\x7A7\x7A6\x3\x2" + + "\x2\x2\x7A7\x7A8\x3\x2\x2\x2\x7A8\x7A9\x3\x2\x2\x2\x7A9\x7AA\x5\x1B5\xDB" + + "\x2\x7AA\x7AE\x3\x2\x2\x2\x7AB\x7AE\x5\x1A9\xD5\x2\x7AC\x7AE\x5\x1B5\xDB" + + "\x2\x7AD\x7A5\x3\x2\x2\x2\x7AD\x7AB\x3\x2\x2\x2\x7AD\x7AC\x3\x2\x2\x2" + + "\x7AE\x1A8\x3\x2\x2\x2\x7AF\x7B0\x5\x1AB\xD6\x2\x7B0\x7B1\x5\x1AD\xD7" + + "\x2\x7B1\x7B5\x5\x1AB\xD6\x2\x7B2\x7B3\x5\x1AD\xD7\x2\x7B3\x7B4\x5\x1AB" + + "\xD6\x2\x7B4\x7B6\x3\x2\x2\x2\x7B5\x7B2\x3\x2\x2\x2\x7B5\x7B6\x3\x2\x2" + + "\x2\x7B6\x1AA\x3\x2\x2\x2\x7B7\x7B9\x5\x1FD\xFF\x2\x7B8\x7B7\x3\x2\x2" + + "\x2\x7B9\x7BA\x3\x2\x2\x2\x7BA\x7B8\x3\x2\x2\x2\x7BA\x7BB\x3\x2\x2\x2" + + "\x7BB\x7BE\x3\x2\x2\x2\x7BC\x7BE\x5\x1AF\xD8\x2\x7BD\x7B8\x3\x2\x2\x2" + + "\x7BD\x7BC\x3\x2\x2\x2\x7BE\x1AC\x3\x2\x2\x2\x7BF\x7C1\x5\x1F7\xFC\x2" + + "\x7C0\x7BF\x3\x2\x2\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1\x7C3\x3\x2\x2\x2\x7C2" + + "\x7C4\t\x6\x2\x2\x7C3\x7C2\x3\x2\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C6" + + "\x3\x2\x2\x2\x7C5\x7C7\x5\x1F7\xFC\x2\x7C6\x7C5\x3\x2\x2\x2\x7C6\x7C7" + + "\x3\x2\x2\x2\x7C7\x1AE\x3\x2\x2\x2\x7C8\x7CB\x5\x1B1\xD9\x2\x7C9\x7CB" + + "\x5\x1B3\xDA\x2\x7CA\x7C8\x3\x2\x2\x2\x7CA\x7C9\x3\x2\x2\x2\x7CB\x1B0" + + "\x3\x2\x2\x2\x7CC\x7D9\x5\x1BB\xDE\x2\x7CD\x7D9\x5\x1BD\xDF\x2\x7CE\x7D9" + + "\x5\x1BF\xE0\x2\x7CF\x7D9\x5\x1C1\xE1\x2\x7D0\x7D9\x5\x1C3\xE2\x2\x7D1" + + "\x7D9\x5\x1C5\xE3\x2\x7D2\x7D9\x5\x1C7\xE4\x2\x7D3\x7D9\x5\x1C9\xE5\x2" + + "\x7D4\x7D9\x5\x1CB\xE6\x2\x7D5\x7D9\x5\x1CD\xE7\x2\x7D6\x7D9\x5\x1CF\xE8" + + "\x2\x7D7\x7D9\x5\x1D1\xE9\x2\x7D8\x7CC\x3\x2\x2\x2\x7D8\x7CD\x3\x2\x2" + + "\x2\x7D8\x7CE\x3\x2\x2\x2\x7D8\x7CF\x3\x2\x2\x2\x7D8\x7D0\x3\x2\x2\x2" + + "\x7D8\x7D1\x3\x2\x2\x2\x7D8\x7D2\x3\x2\x2\x2\x7D8\x7D3\x3\x2\x2\x2\x7D8" + + "\x7D4\x3\x2\x2\x2\x7D8\x7D5\x3\x2\x2\x2\x7D8\x7D6\x3\x2\x2\x2\x7D8\x7D7" + + "\x3\x2\x2\x2\x7D9\x1B2\x3\x2\x2\x2\x7DA\x7E6\x5\x1D3\xEA\x2\x7DB\x7E6" + + "\x5\x1D5\xEB\x2\x7DC\x7E6\x5\x1D7\xEC\x2\x7DD\x7E6\x5\x1D9\xED\x2\x7DE" + + "\x7E6\x5\x1DB\xEE\x2\x7DF\x7E6\x5\x1DD\xEF\x2\x7E0\x7E6\x5\x1DF\xF0\x2" + + "\x7E1\x7E6\x5\x1E1\xF1\x2\x7E2\x7E6\x5\x1E3\xF2\x2\x7E3\x7E6\x5\x1E5\xF3" + + "\x2\x7E4\x7E6\x5\x1E7\xF4\x2\x7E5\x7DA\x3\x2\x2\x2\x7E5\x7DB\x3\x2\x2" + + "\x2\x7E5\x7DC\x3\x2\x2\x2\x7E5\x7DD\x3\x2\x2\x2\x7E5\x7DE\x3\x2\x2\x2" + + "\x7E5\x7DF\x3\x2\x2\x2\x7E5\x7E0\x3\x2\x2\x2\x7E5\x7E1\x3\x2\x2\x2\x7E5" + + "\x7E2\x3\x2\x2\x2\x7E5\x7E3\x3\x2\x2\x2\x7E5\x7E4\x3\x2\x2\x2\x7E6\x1B4" + + "\x3\x2\x2\x2\x7E7\x7E9\x5\x1FD\xFF\x2\x7E8\x7E7\x3\x2\x2\x2\x7E9\x7EA" + + "\x3\x2\x2\x2\x7EA\x7E8\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2\x2\x7EB\x7EC\x3" + + "\x2\x2\x2\x7EC\x7ED\x5\x1B9\xDD\x2\x7ED\x805\x3\x2\x2\x2\x7EE\x7F0\x5" + + "\x1FD\xFF\x2\x7EF\x7EE\x3\x2\x2\x2\x7F0\x7F1\x3\x2\x2\x2\x7F1\x7EF\x3" + + "\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F5\x5\x1B7" + + "\xDC\x2\x7F4\x7F6\x5\x1FD\xFF\x2\x7F5\x7F4\x3\x2\x2\x2\x7F6\x7F7\x3\x2" + + "\x2\x2\x7F7\x7F5\x3\x2\x2\x2\x7F7\x7F8\x3\x2\x2\x2\x7F8\x7FF\x3\x2\x2" + + "\x2\x7F9\x7FB\x5\x1B7\xDC\x2\x7FA\x7FC\x5\x1FD\xFF\x2\x7FB\x7FA\x3\x2" + + "\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD\x7FB\x3\x2\x2\x2\x7FD\x7FE\x3\x2\x2" + + "\x2\x7FE\x800\x3\x2\x2\x2\x7FF\x7F9\x3\x2\x2\x2\x7FF\x800\x3\x2\x2\x2" + + "\x800\x802\x3\x2\x2\x2\x801\x803\x5\x1B9\xDD\x2\x802\x801\x3\x2\x2\x2" + + "\x802\x803\x3\x2\x2\x2\x803\x805\x3\x2\x2\x2\x804\x7E8\x3\x2\x2\x2\x804" + + "\x7EF\x3\x2\x2\x2\x805\x1B6\x3\x2\x2\x2\x806\x808\x5\x1F7\xFC\x2\x807" + + "\x806\x3\x2\x2\x2\x807\x808\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809\x80B" + + "\t\a\x2\x2\x80A\x80C\x5\x1F7\xFC\x2\x80B\x80A\x3\x2\x2\x2\x80B\x80C\x3" + + "\x2\x2\x2\x80C\x1B8\x3\x2\x2\x2\x80D\x80F\x5\x1F7\xFC\x2\x80E\x80D\x3" + + "\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x818\x3\x2\x2\x2\x810\x811\x5\x201" + + "\x101\x2\x811\x812\x5\x219\x10D\x2\x812\x819\x3\x2\x2\x2\x813\x814\x5" + + "\x21F\x110\x2\x814\x815\x5\x219\x10D\x2\x815\x819\x3\x2\x2\x2\x816\x819" + + "\x5\x201\x101\x2\x817\x819\x5\x21F\x110\x2\x818\x810\x3\x2\x2\x2\x818" + + "\x813\x3\x2\x2\x2\x818\x816\x3\x2\x2\x2\x818\x817\x3\x2\x2\x2\x819\x1BA" + + "\x3\x2\x2\x2\x81A\x81B\x5\x213\x10A\x2\x81B\x81C\x5\x201\x101\x2\x81C" + + "\x81D\x5\x21B\x10E\x2\x81D\x81E\x5\x229\x115\x2\x81E\x81F\x5\x201\x101" + + "\x2\x81F\x820\x5\x223\x112\x2\x820\x821\x5\x231\x119\x2\x821\x1BC\x3\x2" + + "\x2\x2\x822\x823\x5\x20B\x106\x2\x823\x824\x5\x209\x105\x2\x824\x825\x5" + + "\x203\x102\x2\x825\x826\x5\x223\x112\x2\x826\x827\x5\x229\x115\x2\x827" + + "\x828\x5\x201\x101\x2\x828\x829\x5\x223\x112\x2\x829\x82A\x5\x231\x119" + + "\x2\x82A\x1BE\x3\x2\x2\x2\x82B\x82C\x5\x219\x10D\x2\x82C\x82D\x5\x201" + + "\x101\x2\x82D\x82E\x5\x223\x112\x2\x82E\x82F\x5\x205\x103\x2\x82F\x830" + + "\x5\x20F\x108\x2\x830\x1C0\x3\x2\x2\x2\x831\x832\x5\x201\x101\x2\x832" + + "\x833\x5\x21F\x110\x2\x833\x834\x5\x223\x112\x2\x834\x835\x5\x211\x109" + + "\x2\x835\x836\x5\x217\x10C\x2\x836\x1C2\x3\x2\x2\x2\x837\x838\x5\x219" + + "\x10D\x2\x838\x839\x5\x201\x101\x2\x839\x83A\x5\x231\x119\x2\x83A\x1C4" + + "\x3\x2\x2\x2\x83B\x83C\x5\x213\x10A\x2\x83C\x83D\x5\x229\x115\x2\x83D" + + "\x83E\x5\x21B\x10E\x2\x83E\x83F\x5\x209\x105\x2\x83F\x1C6\x3\x2\x2\x2" + + "\x840\x841\x5\x213\x10A\x2\x841\x842\x5\x229\x115\x2\x842\x843\x5\x217" + + "\x10C\x2\x843\x844\x5\x231\x119\x2\x844\x1C8\x3\x2\x2\x2\x845\x846\x5" + + "\x201\x101\x2\x846\x847\x5\x229\x115\x2\x847\x848\x5\x20D\x107\x2\x848" + + "\x849\x5\x229\x115\x2\x849\x84A\x5\x225\x113\x2\x84A\x84B\x5\x227\x114" + + "\x2\x84B\x1CA\x3\x2\x2\x2\x84C\x84D\x5\x225\x113\x2\x84D\x84E\x5\x209" + + "\x105\x2\x84E\x84F\x5\x21F\x110\x2\x84F\x850\x5\x227\x114\x2\x850\x851" + + "\x5\x209\x105\x2\x851\x852\x5\x219\x10D\x2\x852\x853\x5\x203\x102\x2\x853" + + "\x854\x5\x209\x105\x2\x854\x855\x5\x223\x112\x2\x855\x1CC\x3\x2\x2\x2" + + "\x856\x857\x5\x21D\x10F\x2\x857\x858\x5\x205\x103\x2\x858\x859\x5\x227" + + "\x114\x2\x859\x85A\x5\x21D\x10F\x2\x85A\x85B\x5\x203\x102\x2\x85B\x85C" + + "\x5\x209\x105\x2\x85C\x85D\x5\x223\x112\x2\x85D\x1CE\x3\x2\x2\x2\x85E" + + "\x85F\x5\x21B\x10E\x2\x85F\x860\x5\x21D\x10F\x2\x860\x861\x5\x22B\x116" + + "\x2\x861\x862\x5\x209\x105\x2\x862\x863\x5\x219\x10D\x2\x863\x864\x5\x203" + + "\x102\x2\x864\x865\x5\x209\x105\x2\x865\x866\x5\x223\x112\x2\x866\x1D0" + + "\x3\x2\x2\x2\x867\x868\x5\x207\x104\x2\x868\x869\x5\x209\x105\x2\x869" + + "\x86A\x5\x205\x103\x2\x86A\x86B\x5\x209\x105\x2\x86B\x86C\x5\x219\x10D" + + "\x2\x86C\x86D\x5\x203\x102\x2\x86D\x86E\x5\x209\x105\x2\x86E\x86F\x5\x223" + + "\x112\x2\x86F\x1D2\x3\x2\x2\x2\x870\x871\x5\x213\x10A\x2\x871\x872\x5" + + "\x201\x101\x2\x872\x873\x5\x21B\x10E\x2\x873\x1D4\x3\x2\x2\x2\x874\x875" + + "\x5\x20B\x106\x2\x875\x876\x5\x209\x105\x2\x876\x877\x5\x203\x102\x2\x877" + + "\x1D6\x3\x2\x2\x2\x878\x879\x5\x219\x10D\x2\x879\x87A\x5\x201\x101\x2" + + "\x87A\x87B\x5\x223\x112\x2\x87B\x1D8\x3\x2\x2\x2\x87C\x87D\x5\x201\x101" + + "\x2\x87D\x87E\x5\x21F\x110\x2\x87E\x87F\x5\x223\x112\x2\x87F\x1DA\x3\x2" + + "\x2\x2\x880\x881\x5\x213\x10A\x2\x881\x882\x5\x229\x115\x2\x882\x883\x5" + + "\x21B\x10E\x2\x883\x1DC\x3\x2\x2\x2\x884\x885\x5\x213\x10A\x2\x885\x886" + + "\x5\x229\x115\x2\x886\x887\x5\x217\x10C\x2\x887\x1DE\x3\x2\x2\x2\x888" + + "\x889\x5\x201\x101\x2\x889\x88A\x5\x229\x115\x2\x88A\x88B\x5\x20D\x107" + + "\x2\x88B\x1E0\x3\x2\x2\x2\x88C\x88D\x5\x225\x113\x2\x88D\x88E\x5\x209" + + "\x105\x2\x88E\x88F\x5\x21F\x110\x2\x88F\x1E2\x3\x2\x2\x2\x890\x891\x5" + + "\x21D\x10F\x2\x891\x892\x5\x205\x103\x2\x892\x893\x5\x227\x114\x2\x893" + + "\x1E4\x3\x2\x2\x2\x894\x895\x5\x21B\x10E\x2\x895\x896\x5\x21D\x10F\x2" + + "\x896\x897\x5\x22B\x116\x2\x897\x1E6\x3\x2\x2\x2\x898\x899\x5\x207\x104" + + "\x2\x899\x89A\x5\x209\x105\x2\x89A\x89B\x5\x205\x103\x2\x89B\x1E8\x3\x2" + + "\x2\x2\x89C\x89E\t\b\x2\x2\x89D\x89C\x3\x2\x2\x2\x89E\x89F\x3\x2\x2\x2" + + "\x89F\x89D\x3\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1" + + "\x8A3\x5\x1F5\xFB\x2\x8A2\x8A4\a\xF\x2\x2\x8A3\x8A2\x3\x2\x2\x2\x8A3\x8A4" + + "\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8A6\a\f\x2\x2\x8A6\x8A7\x3\x2" + + "\x2\x2\x8A7\x8A8\b\xF5\x2\x2\x8A8\x1EA\x3\x2\x2\x2\x8A9\x8AB\t\t\x2\x2" + + "\x8AA\x8A9\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AA\x3\x2\x2\x2\x8AC" + + "\x8AD\x3\x2\x2\x2\x8AD\x1EC\x3\x2\x2\x2\x8AE\x8B0\x5\x1F3\xFA\x2\x8AF" + + "\x8AE\x3\x2\x2\x2\x8AF\x8B0\x3\x2\x2\x2\x8B0\x8B1\x3\x2\x2\x2\x8B1\x8B2" + + "\x5\x123\x92\x2\x8B2\x8B7\x5\x1F7\xFC\x2\x8B3\x8B6\x5\x1E9\xF5\x2\x8B4" + + "\x8B6\n\t\x2\x2\x8B5\x8B3\x3\x2\x2\x2\x8B5\x8B4\x3\x2\x2\x2\x8B6\x8B9" + + "\x3\x2\x2\x2\x8B7\x8B5\x3\x2\x2\x2\x8B7\x8B8\x3\x2\x2\x2\x8B8\x1EE\x3" + + "\x2\x2\x2\x8B9\x8B7\x3\x2\x2\x2\x8BA\x8BF\x5\x1F1\xF9\x2\x8BB\x8BE\x5" + + "\x1E9\xF5\x2\x8BC\x8BE\n\t\x2\x2\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2" + + "\x2\x2\x8BE\x8C1\x3\x2\x2\x2\x8BF\x8BD\x3\x2\x2\x2\x8BF\x8C0\x3\x2\x2" + + "\x2\x8C0\x1F0\x3\x2\x2\x2\x8C1\x8BF\x3\x2\x2\x2\x8C2\x8C3\a)\x2\x2\x8C3" + + "\x1F2\x3\x2\x2\x2\x8C4\x8C5\a<\x2\x2\x8C5\x1F4\x3\x2\x2\x2\x8C6\x8C7\a" + + "\x61\x2\x2\x8C7\x1F6\x3\x2\x2\x2\x8C8\x8CB\t\b\x2\x2\x8C9\x8CB\x5\x1E9" + + "\xF5\x2\x8CA\x8C8\x3\x2\x2\x2\x8CA\x8C9\x3\x2\x2\x2\x8CB\x8CC\x3\x2\x2" + + "\x2\x8CC\x8CA\x3\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x1F8\x3\x2\x2\x2" + + "\x8CE\x8D0\n\n\x2\x2\x8CF\x8CE\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2\x2\x8D1" + + "\x8CF\x3\x2\x2\x2\x8D1\x8D2\x3\x2\x2\x2\x8D2\x8DC\x3\x2\x2\x2\x8D3\x8D5" + + "\x5\x195\xCB\x2\x8D4\x8D6\n\v\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D6\x8D7\x3" + + "\x2\x2\x2\x8D7\x8D5\x3\x2\x2\x2\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8D9\x3\x2" + + "\x2\x2\x8D9\x8DA\x5\x197\xCC\x2\x8DA\x8DC\x3\x2\x2\x2\x8DB\x8CF\x3\x2" + + "\x2\x2\x8DB\x8D3\x3\x2\x2\x2\x8DC\x1FA\x3\x2\x2\x2\x8DD\x8DE\t\f\x2\x2" + + "\x8DE\x1FC\x3\x2\x2\x2\x8DF\x8E0\t\r\x2\x2\x8E0\x1FE\x3\x2\x2\x2\x8E1" + + "\x8E2\t\xE\x2\x2\x8E2\x200\x3\x2\x2\x2\x8E3\x8E4\t\xF\x2\x2\x8E4\x202" + + "\x3\x2\x2\x2\x8E5\x8E6\t\x10\x2\x2\x8E6\x204\x3\x2\x2\x2\x8E7\x8E8\t\x11" + + "\x2\x2\x8E8\x206\x3\x2\x2\x2\x8E9\x8EA\t\x12\x2\x2\x8EA\x208\x3\x2\x2" + + "\x2\x8EB\x8EC\t\x13\x2\x2\x8EC\x20A\x3\x2\x2\x2\x8ED\x8EE\t\x14\x2\x2" + + "\x8EE\x20C\x3\x2\x2\x2\x8EF\x8F0\t\x15\x2\x2\x8F0\x20E\x3\x2\x2\x2\x8F1" + + "\x8F2\t\x16\x2\x2\x8F2\x210\x3\x2\x2\x2\x8F3\x8F4\t\x17\x2\x2\x8F4\x212" + + "\x3\x2\x2\x2\x8F5\x8F6\t\x18\x2\x2\x8F6\x214\x3\x2\x2\x2\x8F7\x8F8\t\x19" + + "\x2\x2\x8F8\x216\x3\x2\x2\x2\x8F9\x8FA\t\x1A\x2\x2\x8FA\x218\x3\x2\x2" + + "\x2\x8FB\x8FC\t\x1B\x2\x2\x8FC\x21A\x3\x2\x2\x2\x8FD\x8FE\t\x1C\x2\x2" + + "\x8FE\x21C\x3\x2\x2\x2\x8FF\x900\t\x1D\x2\x2\x900\x21E\x3\x2\x2\x2\x901" + + "\x902\t\x1E\x2\x2\x902\x220\x3\x2\x2\x2\x903\x904\t\x1F\x2\x2\x904\x222" + + "\x3\x2\x2\x2\x905\x906\t \x2\x2\x906\x224\x3\x2\x2\x2\x907\x908\t!\x2" + + "\x2\x908\x226\x3\x2\x2\x2\x909\x90A\t\"\x2\x2\x90A\x228\x3\x2\x2\x2\x90B" + + "\x90C\t#\x2\x2\x90C\x22A\x3\x2\x2\x2\x90D\x90E\t$\x2\x2\x90E\x22C\x3\x2" + + "\x2\x2\x90F\x910\t%\x2\x2\x910\x22E\x3\x2\x2\x2\x911\x912\t&\x2\x2\x912" + + "\x230\x3\x2\x2\x2\x913\x914\t\'\x2\x2\x914\x232\x3\x2\x2\x2\x915\x916" + + "\t(\x2\x2\x916\x234\x3\x2\x2\x2\x35\x2\x4FA\x75D\x75F\x76A\x76D\x775\x778" + + "\x77C\x781\x784\x78A\x78E\x793\x79A\x79F\x7A7\x7AD\x7B5\x7BA\x7BD\x7C0" + + "\x7C3\x7C6\x7CA\x7D8\x7E5\x7EA\x7F1\x7F7\x7FD\x7FF\x802\x804\x807\x80B" + + "\x80E\x818\x89F\x8A3\x8AC\x8AF\x8B5\x8B7\x8BD\x8BF\x8CA\x8CC\x8D1\x8D7" + + "\x8DB\x3\b\x2\x2"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 0508a06385..704d03cd9e 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -63,9 +63,12 @@ public const int LEQ = 193, LPAREN = 194, LT = 195, MINUS = 196, MULT = 197, NEQ = 198, PLUS = 199, POW = 200, RPAREN = 201, L_SQUARE_BRACKET = 202, R_SQUARE_BRACKET = 203, STRINGLITERAL = 204, OCTLITERAL = 205, HEXLITERAL = 206, SHORTLITERAL = 207, INTEGERLITERAL = 208, - DOUBLELITERAL = 209, DATELITERAL = 210, LINE_CONTINUATION = 211, NEWLINE = 212, - REMCOMMENT = 213, COMMENT = 214, SINGLEQUOTE = 215, COLON = 216, UNDERSCORE = 217, - WS = 218, IDENTIFIER = 219; + DOUBLELITERAL = 209, DATELITERAL = 210, JANUARY = 211, FEBRUARY = 212, MARCH = 213, + APRIL = 214, MAY = 215, JUNE = 216, JULY = 217, AUGUST = 218, SEPTEMBER = 219, OCTOBER = 220, + NOVEMBER = 221, DECEMBER = 222, JAN = 223, FEB = 224, MAR = 225, APR = 226, JUN = 227, + JUL = 228, AUG = 229, SEP = 230, OCT = 231, NOV = 232, DEC = 233, LINE_CONTINUATION = 234, + NEWLINE = 235, REMCOMMENT = 236, COMMENT = 237, SINGLEQUOTE = 238, COLON = 239, + UNDERSCORE = 240, WS = 241, IDENTIFIER = 242; public static readonly string[] tokenNames = { "", "'@'", "'!'", "'#'", "'$'", "'%'", "';'", "','", "'.'", "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", @@ -95,8 +98,10 @@ public const int "':='", "'/'", "'\\'", "'='", "'>='", "'>'", "'<='", "'('", "'<'", "'-'", "'*'", "'<>'", "'+'", "'^'", "')'", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", - "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "':'", - "'_'", "WS", "IDENTIFIER" + "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", + "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", "MAR", "APR", + "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "LINE_CONTINUATION", + "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "':'", "'_'", "WS", "IDENTIFIER" }; public const int RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, @@ -6389,7 +6394,7 @@ public MacroIfBlockStmtContext macroIfBlockStmt() State = 1081; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 214)) & ~0x3f) == 0 && ((1L << (_la - 214)) & ((1L << (COMMENT - 214)) | (1L << (WS - 214)) | (1L << (IDENTIFIER - 214)))) != 0)) + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 237)) & ~0x3f) == 0 && ((1L << (_la - 237)) & ((1L << (COMMENT - 237)) | (1L << (WS - 237)) | (1L << (IDENTIFIER - 237)))) != 0)) { { State = 1079; @@ -6524,7 +6529,7 @@ public MacroElseIfBlockStmtContext macroElseIfBlockStmt() State = 1097; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 214)) & ~0x3f) == 0 && ((1L << (_la - 214)) & ((1L << (COMMENT - 214)) | (1L << (WS - 214)) | (1L << (IDENTIFIER - 214)))) != 0)) + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 237)) & ~0x3f) == 0 && ((1L << (_la - 237)) & ((1L << (COMMENT - 237)) | (1L << (WS - 237)) | (1L << (IDENTIFIER - 237)))) != 0)) { { State = 1095; @@ -6637,7 +6642,7 @@ public MacroElseBlockStmtContext macroElseBlockStmt() State = 1107; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 214)) & ~0x3f) == 0 && ((1L << (_la - 214)) & ((1L << (COMMENT - 214)) | (1L << (WS - 214)) | (1L << (IDENTIFIER - 214)))) != 0)) + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 237)) & ~0x3f) == 0 && ((1L << (_la - 237)) & ((1L << (COMMENT - 237)) | (1L << (WS - 237)) | (1L << (IDENTIFIER - 237)))) != 0)) { { State = 1105; @@ -17802,7 +17807,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xDD\x9CF\x4\x2" + + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF4\x9CF\x4\x2" + "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4" + "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10" + "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15" + @@ -18085,7 +18090,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x3\x2\x2\x2\x11A\x9AC\x3\x2\x2\x2\x11C\x9AE\x3\x2\x2\x2\x11E\x9B0\x3" + "\x2\x2\x2\x120\x9B2\x3\x2\x2\x2\x122\x9B4\x3\x2\x2\x2\x124\x9B7\x3\x2" + "\x2\x2\x126\x9CB\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2\x3" + - "\x12A\x3\x3\x2\x2\x2\x12B\x12D\a\xDC\x2\x2\x12C\x12B\x3\x2\x2\x2\x12C" + + "\x12A\x3\x3\x2\x2\x2\x12B\x12D\a\xF3\x2\x2\x12C\x12B\x3\x2\x2\x2\x12C" + "\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x126\x94\x2\x12F" + "\x130\x5\x6\x4\x2\x130\x131\x5\x126\x94\x2\x131\x133\x3\x2\x2\x2\x132" + "\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134\x136" + @@ -18095,15 +18100,15 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2\x2\x13E" + "\x13F\x3\x2\x2\x2\x13F\x141\x5\x126\x94\x2\x140\x142\x5\x16\f\x2\x141" + "\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x145" + - "\x5\x126\x94\x2\x144\x146\a\xDC\x2\x2\x145\x144\x3\x2\x2\x2\x145\x146" + - "\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xB4\x2\x2\x148\x149\a\xDC" + - "\x2\x2\x149\x14A\a\xD3\x2\x2\x14A\x14B\a\xDC\x2\x2\x14B\x14C\a\x1E\x2" + + "\x5\x126\x94\x2\x144\x146\a\xF3\x2\x2\x145\x144\x3\x2\x2\x2\x145\x146" + + "\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xB4\x2\x2\x148\x149\a\xF3" + + "\x2\x2\x149\x14A\a\xD3\x2\x2\x14A\x14B\a\xF3\x2\x2\x14B\x14C\a\x1E\x2" + "\x2\x14C\a\x3\x2\x2\x2\x14D\x14E\a\x13\x2\x2\x14E\x150\x5\x126\x94\x2" + "\x14F\x151\x5\n\x6\x2\x150\x14F\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152" + "\x150\x3\x2\x2\x2\x152\x153\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x155" + - "\a@\x2\x2\x155\t\x3\x2\x2\x2\x156\x158\x5\x104\x83\x2\x157\x159\a\xDC" + + "\a@\x2\x2\x155\t\x3\x2\x2\x2\x156\x158\x5\x104\x83\x2\x157\x159\a\xF3" + "\x2\x2\x158\x157\x3\x2\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15A\x3\x2\x2" + - "\x2\x15A\x15C\a\xC0\x2\x2\x15B\x15D\a\xDC\x2\x2\x15C\x15B\x3\x2\x2\x2" + + "\x2\x15A\x15C\a\xC0\x2\x2\x15B\x15D\a\xF3\x2\x2\x15C\x15B\x3\x2\x2\x2" + "\x15C\x15D\x3\x2\x2\x2\x15D\x15E\x3\x2\x2\x2\x15E\x15F\x5\x116\x8C\x2" + "\x15F\x160\x5\x126\x94\x2\x160\v\x3\x2\x2\x2\x161\x162\x5\x1A\xE\x2\x162" + "\x163\x5\x126\x94\x2\x163\x165\x3\x2\x2\x2\x164\x161\x3\x2\x2\x2\x165" + @@ -18112,8 +18117,8 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x12\n\x2\x16B\x16D\x3\x2\x2\x2\x16C\x169\x3\x2\x2\x2\x16D\x170\x3\x2" + "\x2\x2\x16E\x16C\x3\x2\x2\x2\x16E\x16F\x3\x2\x2\x2\x16F\x171\x3\x2\x2" + "\x2\x170\x16E\x3\x2\x2\x2\x171\x172\x5\x126\x94\x2\x172\xF\x3\x2\x2\x2" + - "\x173\x174\a}\x2\x2\x174\x175\a\xDC\x2\x2\x175\x17C\a\xD1\x2\x2\x176\x177" + - "\a\x7F\x2\x2\x177\x178\a\xDC\x2\x2\x178\x17C\t\x2\x2\x2\x179\x17C\a~\x2" + + "\x173\x174\a}\x2\x2\x174\x175\a\xF3\x2\x2\x175\x17C\a\xD1\x2\x2\x176\x177" + + "\a\x7F\x2\x2\x177\x178\a\xF3\x2\x2\x178\x17C\t\x2\x2\x2\x179\x17C\a~\x2" + "\x2\x17A\x17C\a\x80\x2\x2\x17B\x173\x3\x2\x2\x2\x17B\x176\x3\x2\x2\x2" + "\x17B\x179\x3\x2\x2\x2\x17B\x17A\x3\x2\x2\x2\x17C\x11\x3\x2\x2\x2\x17D" + "\x188\x5\x122\x92\x2\x17E\x188\x5\x30\x19\x2\x17F\x188\x5:\x1E\x2\x180" + @@ -18132,12 +18137,12 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x19F\x5\x90I\x2\x19C\x19F\x5\xBC_\x2\x19D\x19F\x5\x14\v\x2\x19E\x198" + "\x3\x2\x2\x2\x19E\x199\x3\x2\x2\x2\x19E\x19A\x3\x2\x2\x2\x19E\x19B\x3" + "\x2\x2\x2\x19E\x19C\x3\x2\x2\x2\x19E\x19D\x3\x2\x2\x2\x19F\x19\x3\x2\x2" + - "\x2\x1A0\x1A1\a\xF\x2\x2\x1A1\x1A2\a\xDC\x2\x2\x1A2\x1A4\x5\xE8u\x2\x1A3" + - "\x1A5\a\xDC\x2\x2\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A6" + - "\x3\x2\x2\x2\x1A6\x1A8\a\xC0\x2\x2\x1A7\x1A9\a\xDC\x2\x2\x1A8\x1A7\x3" + + "\x2\x1A0\x1A1\a\xF\x2\x2\x1A1\x1A2\a\xF3\x2\x2\x1A2\x1A4\x5\xE8u\x2\x1A3" + + "\x1A5\a\xF3\x2\x2\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A6" + + "\x3\x2\x2\x2\x1A6\x1A8\a\xC0\x2\x2\x1A7\x1A9\a\xF3\x2\x2\x1A8\x1A7\x3" + "\x2\x2\x2\x1A8\x1A9\x3\x2\x2\x2\x1A9\x1AA\x3\x2\x2\x2\x1AA\x1B5\x5\x116" + - "\x8C\x2\x1AB\x1AD\a\xDC\x2\x2\x1AC\x1AB\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2" + - "\x2\x1AD\x1AE\x3\x2\x2\x2\x1AE\x1B0\a\t\x2\x2\x1AF\x1B1\a\xDC\x2\x2\x1B0" + + "\x8C\x2\x1AB\x1AD\a\xF3\x2\x2\x1AC\x1AB\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2" + + "\x2\x1AD\x1AE\x3\x2\x2\x2\x1AE\x1B0\a\t\x2\x2\x1AF\x1B1\a\xF3\x2\x2\x1B0" + "\x1AF\x3\x2\x2\x2\x1B0\x1B1\x3\x2\x2\x2\x1B1\x1B2\x3\x2\x2\x2\x1B2\x1B4" + "\x5\x116\x8C\x2\x1B3\x1AC\x3\x2\x2\x2\x1B4\x1B7\x3\x2\x2\x2\x1B5\x1B3" + "\x3\x2\x2\x2\x1B5\x1B6\x3\x2\x2\x2\x1B6\x1B\x3\x2\x2\x2\x1B7\x1B5\x3\x2" + @@ -18187,215 +18192,215 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x2\x206\x1FF\x3\x2\x2\x2\x206\x200\x3\x2\x2\x2\x206\x201\x3\x2\x2\x2" + "\x206\x202\x3\x2\x2\x2\x206\x203\x3\x2\x2\x2\x206\x204\x3\x2\x2\x2\x206" + "\x205\x3\x2\x2\x2\x207\x1F\x3\x2\x2\x2\x208\x209\a\x10\x2\x2\x209\x20A" + - "\a\xDC\x2\x2\x20A\x213\x5\xCA\x66\x2\x20B\x20D\a\xDC\x2\x2\x20C\x20B\x3" + + "\a\xF3\x2\x2\x20A\x213\x5\xCA\x66\x2\x20B\x20D\a\xF3\x2\x2\x20C\x20B\x3" + "\x2\x2\x2\x20C\x20D\x3\x2\x2\x2\x20D\x20E\x3\x2\x2\x2\x20E\x210\a\t\x2" + - "\x2\x20F\x211\a\xDC\x2\x2\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2" + + "\x2\x20F\x211\a\xF3\x2\x2\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2" + "\x211\x212\x3\x2\x2\x2\x212\x214\x5\xCA\x66\x2\x213\x20C\x3\x2\x2\x2\x213" + "\x214\x3\x2\x2\x2\x214!\x3\x2\x2\x2\x215\x216\a\x14\x2\x2\x216#\x3\x2" + - "\x2\x2\x217\x218\a\x1C\x2\x2\x218\x219\a\xDC\x2\x2\x219\x21A\x5\xCA\x66" + - "\x2\x21A%\x3\x2\x2\x2\x21B\x21C\a\x1D\x2\x2\x21C\x21D\a\xDC\x2\x2\x21D" + + "\x2\x2\x217\x218\a\x1C\x2\x2\x218\x219\a\xF3\x2\x2\x219\x21A\x5\xCA\x66" + + "\x2\x21A%\x3\x2\x2\x2\x21B\x21C\a\x1D\x2\x2\x21C\x21D\a\xF3\x2\x2\x21D" + "\x21E\x5\xCA\x66\x2\x21E\'\x3\x2\x2\x2\x21F\x22F\a\x1F\x2\x2\x220\x221" + - "\a\xDC\x2\x2\x221\x22C\x5\xDAn\x2\x222\x224\a\xDC\x2\x2\x223\x222\x3\x2" + + "\a\xF3\x2\x2\x221\x22C\x5\xDAn\x2\x222\x224\a\xF3\x2\x2\x223\x222\x3\x2" + "\x2\x2\x223\x224\x3\x2\x2\x2\x224\x225\x3\x2\x2\x2\x225\x227\a\t\x2\x2" + - "\x226\x228\a\xDC\x2\x2\x227\x226\x3\x2\x2\x2\x227\x228\x3\x2\x2\x2\x228" + + "\x226\x228\a\xF3\x2\x2\x227\x226\x3\x2\x2\x2\x227\x228\x3\x2\x2\x2\x228" + "\x229\x3\x2\x2\x2\x229\x22B\x5\xDAn\x2\x22A\x223\x3\x2\x2\x2\x22B\x22E" + "\x3\x2\x2\x2\x22C\x22A\x3\x2\x2\x2\x22C\x22D\x3\x2\x2\x2\x22D\x230\x3" + "\x2\x2\x2\x22E\x22C\x3\x2\x2\x2\x22F\x220\x3\x2\x2\x2\x22F\x230\x3\x2" + - "\x2\x2\x230)\x3\x2\x2\x2\x231\x232\x5\x11C\x8F\x2\x232\x233\a\xDC\x2\x2" + + "\x2\x2\x230)\x3\x2\x2\x2\x231\x232\x5\x11C\x8F\x2\x232\x233\a\xF3\x2\x2" + "\x233\x235\x3\x2\x2\x2\x234\x231\x3\x2\x2\x2\x234\x235\x3\x2\x2\x2\x235" + - "\x236\x3\x2\x2\x2\x236\x237\a!\x2\x2\x237\x238\a\xDC\x2\x2\x238\x243\x5" + - ",\x17\x2\x239\x23B\a\xDC\x2\x2\x23A\x239\x3\x2\x2\x2\x23A\x23B\x3\x2\x2" + - "\x2\x23B\x23C\x3\x2\x2\x2\x23C\x23E\a\t\x2\x2\x23D\x23F\a\xDC\x2\x2\x23E" + + "\x236\x3\x2\x2\x2\x236\x237\a!\x2\x2\x237\x238\a\xF3\x2\x2\x238\x243\x5" + + ",\x17\x2\x239\x23B\a\xF3\x2\x2\x23A\x239\x3\x2\x2\x2\x23A\x23B\x3\x2\x2" + + "\x2\x23B\x23C\x3\x2\x2\x2\x23C\x23E\a\t\x2\x2\x23D\x23F\a\xF3\x2\x2\x23E" + "\x23D\x3\x2\x2\x2\x23E\x23F\x3\x2\x2\x2\x23F\x240\x3\x2\x2\x2\x240\x242" + "\x5,\x17\x2\x241\x23A\x3\x2\x2\x2\x242\x245\x3\x2\x2\x2\x243\x241\x3\x2" + "\x2\x2\x243\x244\x3\x2\x2\x2\x244+\x3\x2\x2\x2\x245\x243\x3\x2\x2\x2\x246" + "\x248\x5\x104\x83\x2\x247\x249\x5\x11A\x8E\x2\x248\x247\x3\x2\x2\x2\x248" + - "\x249\x3\x2\x2\x2\x249\x24C\x3\x2\x2\x2\x24A\x24B\a\xDC\x2\x2\x24B\x24D" + + "\x249\x3\x2\x2\x2\x249\x24C\x3\x2\x2\x2\x24A\x24B\a\xF3\x2\x2\x24B\x24D" + "\x5\x106\x84\x2\x24C\x24A\x3\x2\x2\x2\x24C\x24D\x3\x2\x2\x2\x24D\x24F" + - "\x3\x2\x2\x2\x24E\x250\a\xDC\x2\x2\x24F\x24E\x3\x2\x2\x2\x24F\x250\x3" + - "\x2\x2\x2\x250\x251\x3\x2\x2\x2\x251\x253\a\xC0\x2\x2\x252\x254\a\xDC" + + "\x3\x2\x2\x2\x24E\x250\a\xF3\x2\x2\x24F\x24E\x3\x2\x2\x2\x24F\x250\x3" + + "\x2\x2\x2\x250\x251\x3\x2\x2\x2\x251\x253\a\xC0\x2\x2\x252\x254\a\xF3" + "\x2\x2\x253\x252\x3\x2\x2\x2\x253\x254\x3\x2\x2\x2\x254\x255\x3\x2\x2" + "\x2\x255\x256\x5\xCA\x66\x2\x256-\x3\x2\x2\x2\x257\x259\a#\x2\x2\x258" + - "\x25A\a\xDC\x2\x2\x259\x258\x3\x2\x2\x2\x259\x25A\x3\x2\x2\x2\x25A\x25B" + - "\x3\x2\x2\x2\x25B\x25D\a\xC0\x2\x2\x25C\x25E\a\xDC\x2\x2\x25D\x25C\x3" + + "\x25A\a\xF3\x2\x2\x259\x258\x3\x2\x2\x2\x259\x25A\x3\x2\x2\x2\x25A\x25B" + + "\x3\x2\x2\x2\x25B\x25D\a\xC0\x2\x2\x25C\x25E\a\xF3\x2\x2\x25D\x25C\x3" + "\x2\x2\x2\x25D\x25E\x3\x2\x2\x2\x25E\x25F\x3\x2\x2\x2\x25F\x260\x5\xCA" + - "\x66\x2\x260/\x3\x2\x2\x2\x261\x262\x5\x11C\x8F\x2\x262\x263\a\xDC\x2" + + "\x66\x2\x260/\x3\x2\x2\x2\x261\x262\x5\x11C\x8F\x2\x262\x263\a\xF3\x2" + "\x2\x263\x265\x3\x2\x2\x2\x264\x261\x3\x2\x2\x2\x264\x265\x3\x2\x2\x2" + - "\x265\x266\x3\x2\x2\x2\x266\x267\a$\x2\x2\x267\x26A\a\xDC\x2\x2\x268\x269" + - "\a\x8A\x2\x2\x269\x26B\a\xDC\x2\x2\x26A\x268\x3\x2\x2\x2\x26A\x26B\x3" + + "\x265\x266\x3\x2\x2\x2\x266\x267\a$\x2\x2\x267\x26A\a\xF3\x2\x2\x268\x269" + + "\a\x8A\x2\x2\x269\x26B\a\xF3\x2\x2\x26A\x268\x3\x2\x2\x2\x26A\x26B\x3" + "\x2\x2\x2\x26B\x271\x3\x2\x2\x2\x26C\x26E\aO\x2\x2\x26D\x26F\x5\x11A\x8E" + "\x2\x26E\x26D\x3\x2\x2\x2\x26E\x26F\x3\x2\x2\x2\x26F\x272\x3\x2\x2\x2" + "\x270\x272\a\xA7\x2\x2\x271\x26C\x3\x2\x2\x2\x271\x270\x3\x2\x2\x2\x272" + - "\x273\x3\x2\x2\x2\x273\x274\a\xDC\x2\x2\x274\x276\x5\x104\x83\x2\x275" + + "\x273\x3\x2\x2\x2\x273\x274\a\xF3\x2\x2\x274\x276\x5\x104\x83\x2\x275" + "\x277\x5\x11A\x8E\x2\x276\x275\x3\x2\x2\x2\x276\x277\x3\x2\x2\x2\x277" + - "\x278\x3\x2\x2\x2\x278\x279\a\xDC\x2\x2\x279\x27A\a\x62\x2\x2\x27A\x27B" + - "\a\xDC\x2\x2\x27B\x280\a\xCE\x2\x2\x27C\x27D\a\xDC\x2\x2\x27D\x27E\a\r" + - "\x2\x2\x27E\x27F\a\xDC\x2\x2\x27F\x281\a\xCE\x2\x2\x280\x27C\x3\x2\x2" + - "\x2\x280\x281\x3\x2\x2\x2\x281\x286\x3\x2\x2\x2\x282\x284\a\xDC\x2\x2" + + "\x278\x3\x2\x2\x2\x278\x279\a\xF3\x2\x2\x279\x27A\a\x62\x2\x2\x27A\x27B" + + "\a\xF3\x2\x2\x27B\x280\a\xCE\x2\x2\x27C\x27D\a\xF3\x2\x2\x27D\x27E\a\r" + + "\x2\x2\x27E\x27F\a\xF3\x2\x2\x27F\x281\a\xCE\x2\x2\x280\x27C\x3\x2\x2" + + "\x2\x280\x281\x3\x2\x2\x2\x281\x286\x3\x2\x2\x2\x282\x284\a\xF3\x2\x2" + "\x283\x282\x3\x2\x2\x2\x283\x284\x3\x2\x2\x2\x284\x285\x3\x2\x2\x2\x285" + "\x287\x5\xFA~\x2\x286\x283\x3\x2\x2\x2\x286\x287\x3\x2\x2\x2\x287\x28A" + - "\x3\x2\x2\x2\x288\x289\a\xDC\x2\x2\x289\x28B\x5\x106\x84\x2\x28A\x288" + + "\x3\x2\x2\x2\x288\x289\a\xF3\x2\x2\x289\x28B\x5\x106\x84\x2\x28A\x288" + "\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x31\x3\x2\x2\x2\x28C\x28D\t\x3" + - "\x2\x2\x28D\x28E\a\xDC\x2\x2\x28E\x299\x5\x112\x8A\x2\x28F\x291\a\xDC" + + "\x2\x2\x28D\x28E\a\xF3\x2\x2\x28E\x299\x5\x112\x8A\x2\x28F\x291\a\xF3" + "\x2\x2\x290\x28F\x3\x2\x2\x2\x290\x291\x3\x2\x2\x2\x291\x292\x3\x2\x2" + - "\x2\x292\x294\a\t\x2\x2\x293\x295\a\xDC\x2\x2\x294\x293\x3\x2\x2\x2\x294" + + "\x2\x292\x294\a\t\x2\x2\x293\x295\a\xF3\x2\x2\x294\x293\x3\x2\x2\x2\x294" + "\x295\x3\x2\x2\x2\x295\x296\x3\x2\x2\x2\x296\x298\x5\x112\x8A\x2\x297" + "\x290\x3\x2\x2\x2\x298\x29B\x3\x2\x2\x2\x299\x297\x3\x2\x2\x2\x299\x29A" + "\x3\x2\x2\x2\x29A\x33\x3\x2\x2\x2\x29B\x299\x3\x2\x2\x2\x29C\x29D\a\x31" + - "\x2\x2\x29D\x29E\a\xDC\x2\x2\x29E\x2A0\x5\xCA\x66\x2\x29F\x2A1\a\xDC\x2" + + "\x2\x2\x29D\x29E\a\xF3\x2\x2\x29E\x2A0\x5\xCA\x66\x2\x29F\x2A1\a\xF3\x2" + "\x2\x2A0\x29F\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1\x2A2\x3\x2\x2\x2" + - "\x2A2\x2A4\a\t\x2\x2\x2A3\x2A5\a\xDC\x2\x2\x2A4\x2A3\x3\x2\x2\x2\x2A4" + + "\x2A2\x2A4\a\t\x2\x2\x2A3\x2A5\a\xF3\x2\x2\x2A4\x2A3\x3\x2\x2\x2\x2A4" + "\x2A5\x3\x2\x2\x2\x2A5\x2A6\x3\x2\x2\x2\x2A6\x2AF\x5\xCA\x66\x2\x2A7\x2A9" + - "\a\xDC\x2\x2\x2A8\x2A7\x3\x2\x2\x2\x2A8\x2A9\x3\x2\x2\x2\x2A9\x2AA\x3" + - "\x2\x2\x2\x2AA\x2AC\a\t\x2\x2\x2AB\x2AD\a\xDC\x2\x2\x2AC\x2AB\x3\x2\x2" + + "\a\xF3\x2\x2\x2A8\x2A7\x3\x2\x2\x2\x2A8\x2A9\x3\x2\x2\x2\x2A9\x2AA\x3" + + "\x2\x2\x2\x2AA\x2AC\a\t\x2\x2\x2AB\x2AD\a\xF3\x2\x2\x2AC\x2AB\x3\x2\x2" + "\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2\x2\x2AE\x2B0\x5\xCA\x66\x2" + "\x2AF\x2A8\x3\x2\x2\x2\x2AF\x2B0\x3\x2\x2\x2\x2B0\x35\x3\x2\x2\x2\x2B1" + "\x2B2\a\x33\x2\x2\x2B2\x2B4\x5\x126\x94\x2\x2B3\x2B5\x5\x1C\xF\x2\x2B4" + "\x2B3\x3\x2\x2\x2\x2B4\x2B5\x3\x2\x2\x2\x2B5\x2B6\x3\x2\x2\x2\x2B6\x2B7" + - "\a_\x2\x2\x2B7\x2CD\x3\x2\x2\x2\x2B8\x2B9\a\x33\x2\x2\x2B9\x2BA\a\xDC" + - "\x2\x2\x2BA\x2BB\t\x4\x2\x2\x2BB\x2BC\a\xDC\x2\x2\x2BC\x2BD\x5\xCA\x66" + + "\a_\x2\x2\x2B7\x2CD\x3\x2\x2\x2\x2B8\x2B9\a\x33\x2\x2\x2B9\x2BA\a\xF3" + + "\x2\x2\x2BA\x2BB\t\x4\x2\x2\x2BB\x2BC\a\xF3\x2\x2\x2BC\x2BD\x5\xCA\x66" + "\x2\x2BD\x2BF\x5\x126\x94\x2\x2BE\x2C0\x5\x1C\xF\x2\x2BF\x2BE\x3\x2\x2" + "\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2\a_\x2\x2\x2C2" + "\x2CD\x3\x2\x2\x2\x2C3\x2C4\a\x33\x2\x2\x2C4\x2C5\x5\x126\x94\x2\x2C5" + - "\x2C6\x5\x1C\xF\x2\x2C6\x2C7\a_\x2\x2\x2C7\x2C8\a\xDC\x2\x2\x2C8\x2C9" + - "\t\x4\x2\x2\x2C9\x2CA\a\xDC\x2\x2\x2CA\x2CB\x5\xCA\x66\x2\x2CB\x2CD\x3" + + "\x2C6\x5\x1C\xF\x2\x2C6\x2C7\a_\x2\x2\x2C7\x2C8\a\xF3\x2\x2\x2C8\x2C9" + + "\t\x4\x2\x2\x2C9\x2CA\a\xF3\x2\x2\x2CA\x2CB\x5\xCA\x66\x2\x2CB\x2CD\x3" + "\x2\x2\x2\x2CC\x2B1\x3\x2\x2\x2\x2CC\x2B8\x3\x2\x2\x2\x2CC\x2C3\x3\x2" + "\x2\x2\x2CD\x37\x3\x2\x2\x2\x2CE\x2CF\a@\x2\x2\x2CF\x39\x3\x2\x2\x2\x2D0" + - "\x2D1\x5\x11C\x8F\x2\x2D1\x2D2\a\xDC\x2\x2\x2D2\x2D4\x3\x2\x2\x2\x2D3" + + "\x2D1\x5\x11C\x8F\x2\x2D1\x2D2\a\xF3\x2\x2\x2D2\x2D4\x3\x2\x2\x2\x2D3" + "\x2D0\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6" + - "\a\x41\x2\x2\x2D6\x2D7\a\xDC\x2\x2\x2D7\x2D8\x5\x104\x83\x2\x2D8\x2DC" + + "\a\x41\x2\x2\x2D6\x2D7\a\xF3\x2\x2\x2D7\x2D8\x5\x104\x83\x2\x2D8\x2DC" + "\x5\x126\x94\x2\x2D9\x2DB\x5<\x1F\x2\x2DA\x2D9\x3\x2\x2\x2\x2DB\x2DE\x3" + "\x2\x2\x2\x2DC\x2DA\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2\x2DD\x2DF\x3\x2" + "\x2\x2\x2DE\x2DC\x3\x2\x2\x2\x2DF\x2E0\a\x38\x2\x2\x2E0;\x3\x2\x2\x2\x2E1" + - "\x2EA\x5\x104\x83\x2\x2E2\x2E4\a\xDC\x2\x2\x2E3\x2E2\x3\x2\x2\x2\x2E3" + + "\x2EA\x5\x104\x83\x2\x2E2\x2E4\a\xF3\x2\x2\x2E3\x2E2\x3\x2\x2\x2\x2E3" + "\x2E4\x3\x2\x2\x2\x2E4\x2E5\x3\x2\x2\x2\x2E5\x2E7\a\xC0\x2\x2\x2E6\x2E8" + - "\a\xDC\x2\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\x3" + + "\a\xF3\x2\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\x3" + "\x2\x2\x2\x2E9\x2EB\x5\xCA\x66\x2\x2EA\x2E3\x3\x2\x2\x2\x2EA\x2EB\x3\x2" + "\x2\x2\x2EB\x2EC\x3\x2\x2\x2\x2EC\x2ED\x5\x126\x94\x2\x2ED=\x3\x2\x2\x2" + - "\x2EE\x2EF\a\x43\x2\x2\x2EF\x2F0\a\xDC\x2\x2\x2F0\x2F1\x5\xCA\x66\x2\x2F1" + - "?\x3\x2\x2\x2\x2F2\x2F3\a\x44\x2\x2\x2F3\x2F4\a\xDC\x2\x2\x2F4\x2F5\x5" + + "\x2EE\x2EF\a\x43\x2\x2\x2EF\x2F0\a\xF3\x2\x2\x2F0\x2F1\x5\xCA\x66\x2\x2F1" + + "?\x3\x2\x2\x2\x2F2\x2F3\a\x44\x2\x2\x2F3\x2F4\a\xF3\x2\x2\x2F4\x2F5\x5" + "\xCA\x66\x2\x2F5\x41\x3\x2\x2\x2\x2F6\x2F7\x5\x11C\x8F\x2\x2F7\x2F8\a" + - "\xDC\x2\x2\x2F8\x2FA\x3\x2\x2\x2\x2F9\x2F6\x3\x2\x2\x2\x2F9\x2FA\x3\x2" + - "\x2\x2\x2FA\x2FB\x3\x2\x2\x2\x2FB\x2FC\a\x45\x2\x2\x2FC\x2FD\a\xDC\x2" + - "\x2\x2FD\x2FF\x5\x104\x83\x2\x2FE\x300\a\xDC\x2\x2\x2FF\x2FE\x3\x2\x2" + + "\xF3\x2\x2\x2F8\x2FA\x3\x2\x2\x2\x2F9\x2F6\x3\x2\x2\x2\x2F9\x2FA\x3\x2" + + "\x2\x2\x2FA\x2FB\x3\x2\x2\x2\x2FB\x2FC\a\x45\x2\x2\x2FC\x2FD\a\xF3\x2" + + "\x2\x2FD\x2FF\x5\x104\x83\x2\x2FE\x300\a\xF3\x2\x2\x2FF\x2FE\x3\x2\x2" + "\x2\x2FF\x300\x3\x2\x2\x2\x300\x301\x3\x2\x2\x2\x301\x302\x5\xFA~\x2\x302" + "\x43\x3\x2\x2\x2\x303\x304\t\x5\x2\x2\x304\x45\x3\x2\x2\x2\x305\x306\a" + - "L\x2\x2\x306\x307\a\xDC\x2\x2\x307\x309\x5\xCA\x66\x2\x308\x30A\a\xDC" + + "L\x2\x2\x306\x307\a\xF3\x2\x2\x307\x309\x5\xCA\x66\x2\x308\x30A\a\xF3" + "\x2\x2\x309\x308\x3\x2\x2\x2\x309\x30A\x3\x2\x2\x2\x30A\x30B\x3\x2\x2" + - "\x2\x30B\x30D\a\t\x2\x2\x30C\x30E\a\xDC\x2\x2\x30D\x30C\x3\x2\x2\x2\x30D" + + "\x2\x30B\x30D\a\t\x2\x2\x30C\x30E\a\xF3\x2\x2\x30D\x30C\x3\x2\x2\x2\x30D" + "\x30E\x3\x2\x2\x2\x30E\x30F\x3\x2\x2\x2\x30F\x310\x5\xCA\x66\x2\x310G" + - "\x3\x2\x2\x2\x311\x312\aN\x2\x2\x312\x313\a\xDC\x2\x2\x313\x314\a\x35" + - "\x2\x2\x314\x315\a\xDC\x2\x2\x315\x317\x5\x104\x83\x2\x316\x318\x5\x11A" + + "\x3\x2\x2\x2\x311\x312\aN\x2\x2\x312\x313\a\xF3\x2\x2\x313\x314\a\x35" + + "\x2\x2\x314\x315\a\xF3\x2\x2\x315\x317\x5\x104\x83\x2\x316\x318\x5\x11A" + "\x8E\x2\x317\x316\x3\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x319\x3\x2\x2" + - "\x2\x319\x31A\a\xDC\x2\x2\x31A\x31B\aW\x2\x2\x31B\x31C\a\xDC\x2\x2\x31C" + + "\x2\x319\x31A\a\xF3\x2\x2\x31A\x31B\aW\x2\x2\x31B\x31C\a\xF3\x2\x2\x31C" + "\x31D\x5\xCA\x66\x2\x31D\x31F\x5\x126\x94\x2\x31E\x320\x5\x1C\xF\x2\x31F" + "\x31E\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x321\x3\x2\x2\x2\x321\x324" + - "\as\x2\x2\x322\x323\a\xDC\x2\x2\x323\x325\x5\x104\x83\x2\x324\x322\x3" + + "\as\x2\x2\x322\x323\a\xF3\x2\x2\x323\x325\x5\x104\x83\x2\x324\x322\x3" + "\x2\x2\x2\x324\x325\x3\x2\x2\x2\x325I\x3\x2\x2\x2\x326\x327\aN\x2\x2\x327" + - "\x328\a\xDC\x2\x2\x328\x32A\x5\x104\x83\x2\x329\x32B\x5\x11A\x8E\x2\x32A" + + "\x328\a\xF3\x2\x2\x328\x32A\x5\x104\x83\x2\x329\x32B\x5\x11A\x8E\x2\x32A" + "\x329\x3\x2\x2\x2\x32A\x32B\x3\x2\x2\x2\x32B\x32E\x3\x2\x2\x2\x32C\x32D" + - "\a\xDC\x2\x2\x32D\x32F\x5\x106\x84\x2\x32E\x32C\x3\x2\x2\x2\x32E\x32F" + - "\x3\x2\x2\x2\x32F\x331\x3\x2\x2\x2\x330\x332\a\xDC\x2\x2\x331\x330\x3" + + "\a\xF3\x2\x2\x32D\x32F\x5\x106\x84\x2\x32E\x32C\x3\x2\x2\x2\x32E\x32F" + + "\x3\x2\x2\x2\x32F\x331\x3\x2\x2\x2\x330\x332\a\xF3\x2\x2\x331\x330\x3" + "\x2\x2\x2\x331\x332\x3\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x335\a\xC0" + - "\x2\x2\x334\x336\a\xDC\x2\x2\x335\x334\x3\x2\x2\x2\x335\x336\x3\x2\x2" + - "\x2\x336\x337\x3\x2\x2\x2\x337\x338\x5\xCA\x66\x2\x338\x339\a\xDC\x2\x2" + - "\x339\x33A\a\xAC\x2\x2\x33A\x33B\a\xDC\x2\x2\x33B\x340\x5\xCA\x66\x2\x33C" + - "\x33D\a\xDC\x2\x2\x33D\x33E\a\xA4\x2\x2\x33E\x33F\a\xDC\x2\x2\x33F\x341" + + "\x2\x2\x334\x336\a\xF3\x2\x2\x335\x334\x3\x2\x2\x2\x335\x336\x3\x2\x2" + + "\x2\x336\x337\x3\x2\x2\x2\x337\x338\x5\xCA\x66\x2\x338\x339\a\xF3\x2\x2" + + "\x339\x33A\a\xAC\x2\x2\x33A\x33B\a\xF3\x2\x2\x33B\x340\x5\xCA\x66\x2\x33C" + + "\x33D\a\xF3\x2\x2\x33D\x33E\a\xA4\x2\x2\x33E\x33F\a\xF3\x2\x2\x33F\x341" + "\x5\xCA\x66\x2\x340\x33C\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x342\x3" + "\x2\x2\x2\x342\x344\x5\x126\x94\x2\x343\x345\x5\x1C\xF\x2\x344\x343\x3" + "\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x346\x3\x2\x2\x2\x346\x349\as\x2" + - "\x2\x347\x348\a\xDC\x2\x2\x348\x34A\x5\x104\x83\x2\x349\x347\x3\x2\x2" + + "\x2\x347\x348\a\xF3\x2\x2\x348\x34A\x5\x104\x83\x2\x349\x347\x3\x2\x2" + "\x2\x349\x34A\x3\x2\x2\x2\x34AK\x3\x2\x2\x2\x34B\x34C\x5\x11C\x8F\x2\x34C" + - "\x34D\a\xDC\x2\x2\x34D\x34F\x3\x2\x2\x2\x34E\x34B\x3\x2\x2\x2\x34E\x34F" + - "\x3\x2\x2\x2\x34F\x352\x3\x2\x2\x2\x350\x351\a\xA3\x2\x2\x351\x353\a\xDC" + + "\x34D\a\xF3\x2\x2\x34D\x34F\x3\x2\x2\x2\x34E\x34B\x3\x2\x2\x2\x34E\x34F" + + "\x3\x2\x2\x2\x34F\x352\x3\x2\x2\x2\x350\x351\a\xA3\x2\x2\x351\x353\a\xF3" + "\x2\x2\x352\x350\x3\x2\x2\x2\x352\x353\x3\x2\x2\x2\x353\x354\x3\x2\x2" + - "\x2\x354\x356\aO\x2\x2\x355\x357\a\xDC\x2\x2\x356\x355\x3\x2\x2\x2\x356" + + "\x2\x354\x356\aO\x2\x2\x355\x357\a\xF3\x2\x2\x356\x355\x3\x2\x2\x2\x356" + "\x357\x3\x2\x2\x2\x357\x358\x3\x2\x2\x2\x358\x35A\x5\x104\x83\x2\x359" + "\x35B\x5\x11A\x8E\x2\x35A\x359\x3\x2\x2\x2\x35A\x35B\x3\x2\x2\x2\x35B" + - "\x360\x3\x2\x2\x2\x35C\x35E\a\xDC\x2\x2\x35D\x35C\x3\x2\x2\x2\x35D\x35E" + + "\x360\x3\x2\x2\x2\x35C\x35E\a\xF3\x2\x2\x35D\x35C\x3\x2\x2\x2\x35D\x35E" + "\x3\x2\x2\x2\x35E\x35F\x3\x2\x2\x2\x35F\x361\x5\xFA~\x2\x360\x35D\x3\x2" + - "\x2\x2\x360\x361\x3\x2\x2\x2\x361\x366\x3\x2\x2\x2\x362\x364\a\xDC\x2" + + "\x2\x2\x360\x361\x3\x2\x2\x2\x361\x366\x3\x2\x2\x2\x362\x364\a\xF3\x2" + "\x2\x363\x362\x3\x2\x2\x2\x363\x364\x3\x2\x2\x2\x364\x365\x3\x2\x2\x2" + "\x365\x367\x5\x106\x84\x2\x366\x363\x3\x2\x2\x2\x366\x367\x3\x2\x2\x2" + "\x367\x368\x3\x2\x2\x2\x368\x36A\x5\x126\x94\x2\x369\x36B\x5\x1C\xF\x2" + "\x36A\x369\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36C\x3\x2\x2\x2\x36C" + - "\x36D\a\x39\x2\x2\x36DM\x3\x2\x2\x2\x36E\x36F\aP\x2\x2\x36F\x370\a\xDC" + - "\x2\x2\x370\x372\x5\xDAn\x2\x371\x373\a\xDC\x2\x2\x372\x371\x3\x2\x2\x2" + + "\x36D\a\x39\x2\x2\x36DM\x3\x2\x2\x2\x36E\x36F\aP\x2\x2\x36F\x370\a\xF3" + + "\x2\x2\x370\x372\x5\xDAn\x2\x371\x373\a\xF3\x2\x2\x372\x371\x3\x2\x2\x2" + "\x372\x373\x3\x2\x2\x2\x373\x374\x3\x2\x2\x2\x374\x376\a\t\x2\x2\x375" + - "\x377\a\xDC\x2\x2\x376\x375\x3\x2\x2\x2\x376\x377\x3\x2\x2\x2\x377\x379" + + "\x377\a\xF3\x2\x2\x376\x375\x3\x2\x2\x2\x376\x377\x3\x2\x2\x2\x377\x379" + "\x3\x2\x2\x2\x378\x37A\x5\xCA\x66\x2\x379\x378\x3\x2\x2\x2\x379\x37A\x3" + - "\x2\x2\x2\x37A\x37C\x3\x2\x2\x2\x37B\x37D\a\xDC\x2\x2\x37C\x37B\x3\x2" + + "\x2\x2\x2\x37A\x37C\x3\x2\x2\x2\x37B\x37D\a\xF3\x2\x2\x37C\x37B\x3\x2" + "\x2\x2\x37C\x37D\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2\x37E\x380\a\t\x2\x2" + - "\x37F\x381\a\xDC\x2\x2\x380\x37F\x3\x2\x2\x2\x380\x381\x3\x2\x2\x2\x381" + + "\x37F\x381\a\xF3\x2\x2\x380\x37F\x3\x2\x2\x2\x380\x381\x3\x2\x2\x2\x381" + "\x382\x3\x2\x2\x2\x382\x383\x5\xCA\x66\x2\x383O\x3\x2\x2\x2\x384\x385" + - "\aR\x2\x2\x385\x386\a\xDC\x2\x2\x386\x387\x5\xCA\x66\x2\x387Q\x3\x2\x2" + - "\x2\x388\x389\aS\x2\x2\x389\x38A\a\xDC\x2\x2\x38A\x38B\x5\xCA\x66\x2\x38B" + - "S\x3\x2\x2\x2\x38C\x38D\aT\x2\x2\x38D\x38E\a\xDC\x2\x2\x38E\x38F\x5X-" + - "\x2\x38F\x390\a\xDC\x2\x2\x390\x391\a\xAA\x2\x2\x391\x392\a\xDC\x2\x2" + - "\x392\x397\x5\x1E\x10\x2\x393\x394\a\xDC\x2\x2\x394\x395\a\x36\x2\x2\x395" + - "\x396\a\xDC\x2\x2\x396\x398\x5\x1E\x10\x2\x397\x393\x3\x2\x2\x2\x397\x398" + + "\aR\x2\x2\x385\x386\a\xF3\x2\x2\x386\x387\x5\xCA\x66\x2\x387Q\x3\x2\x2" + + "\x2\x388\x389\aS\x2\x2\x389\x38A\a\xF3\x2\x2\x38A\x38B\x5\xCA\x66\x2\x38B" + + "S\x3\x2\x2\x2\x38C\x38D\aT\x2\x2\x38D\x38E\a\xF3\x2\x2\x38E\x38F\x5X-" + + "\x2\x38F\x390\a\xF3\x2\x2\x390\x391\a\xAA\x2\x2\x391\x392\a\xF3\x2\x2" + + "\x392\x397\x5\x1E\x10\x2\x393\x394\a\xF3\x2\x2\x394\x395\a\x36\x2\x2\x395" + + "\x396\a\xF3\x2\x2\x396\x398\x5\x1E\x10\x2\x397\x393\x3\x2\x2\x2\x397\x398" + "\x3\x2\x2\x2\x398\x3A6\x3\x2\x2\x2\x399\x39D\x5V,\x2\x39A\x39C\x5Z.\x2" + "\x39B\x39A\x3\x2\x2\x2\x39C\x39F\x3\x2\x2\x2\x39D\x39B\x3\x2\x2\x2\x39D" + "\x39E\x3\x2\x2\x2\x39E\x3A1\x3\x2\x2\x2\x39F\x39D\x3\x2\x2\x2\x3A0\x3A2" + "\x5\\/\x2\x3A1\x3A0\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2\x2\x3A2\x3A3\x3\x2" + "\x2\x2\x3A3\x3A4\a:\x2\x2\x3A4\x3A6\x3\x2\x2\x2\x3A5\x38C\x3\x2\x2\x2" + "\x3A5\x399\x3\x2\x2\x2\x3A6U\x3\x2\x2\x2\x3A7\x3A8\aT\x2\x2\x3A8\x3A9" + - "\a\xDC\x2\x2\x3A9\x3AA\x5X-\x2\x3AA\x3AB\a\xDC\x2\x2\x3AB\x3AC\a\xAA\x2" + + "\a\xF3\x2\x2\x3A9\x3AA\x5X-\x2\x3AA\x3AB\a\xF3\x2\x2\x3AB\x3AC\a\xAA\x2" + "\x2\x3AC\x3AE\x5\x126\x94\x2\x3AD\x3AF\x5\x1C\xF\x2\x3AE\x3AD\x3\x2\x2" + "\x2\x3AE\x3AF\x3\x2\x2\x2\x3AFW\x3\x2\x2\x2\x3B0\x3B1\x5\xCA\x66\x2\x3B1" + - "Y\x3\x2\x2\x2\x3B2\x3B3\a\x37\x2\x2\x3B3\x3B4\a\xDC\x2\x2\x3B4\x3B5\x5" + - "X-\x2\x3B5\x3B6\a\xDC\x2\x2\x3B6\x3B7\a\xAA\x2\x2\x3B7\x3B9\x5\x126\x94" + + "Y\x3\x2\x2\x2\x3B2\x3B3\a\x37\x2\x2\x3B3\x3B4\a\xF3\x2\x2\x3B4\x3B5\x5" + + "X-\x2\x3B5\x3B6\a\xF3\x2\x2\x3B6\x3B7\a\xAA\x2\x2\x3B7\x3B9\x5\x126\x94" + "\x2\x3B8\x3BA\x5\x1C\xF\x2\x3B9\x3B8\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2" + "\x3BA[\x3\x2\x2\x2\x3BB\x3BC\a\x36\x2\x2\x3BC\x3BE\x5\x126\x94\x2\x3BD" + "\x3BF\x5\x1C\xF\x2\x3BE\x3BD\x3\x2\x2\x2\x3BE\x3BF\x3\x2\x2\x2\x3BF]\x3" + - "\x2\x2\x2\x3C0\x3C1\aV\x2\x2\x3C1\x3C2\a\xDC\x2\x2\x3C2\x3C3\x5\x104\x83" + - "\x2\x3C3_\x3\x2\x2\x2\x3C4\x3C5\aX\x2\x2\x3C5\x3C6\a\xDC\x2\x2\x3C6\x3CF" + - "\x5\xDAn\x2\x3C7\x3C9\a\xDC\x2\x2\x3C8\x3C7\x3\x2\x2\x2\x3C8\x3C9\x3\x2" + - "\x2\x2\x3C9\x3CA\x3\x2\x2\x2\x3CA\x3CC\a\t\x2\x2\x3CB\x3CD\a\xDC\x2\x2" + + "\x2\x2\x2\x3C0\x3C1\aV\x2\x2\x3C1\x3C2\a\xF3\x2\x2\x3C2\x3C3\x5\x104\x83" + + "\x2\x3C3_\x3\x2\x2\x2\x3C4\x3C5\aX\x2\x2\x3C5\x3C6\a\xF3\x2\x2\x3C6\x3CF" + + "\x5\xDAn\x2\x3C7\x3C9\a\xF3\x2\x2\x3C8\x3C7\x3\x2\x2\x2\x3C8\x3C9\x3\x2" + + "\x2\x2\x3C9\x3CA\x3\x2\x2\x2\x3CA\x3CC\a\t\x2\x2\x3CB\x3CD\a\xF3\x2\x2" + "\x3CC\x3CB\x3\x2\x2\x2\x3CC\x3CD\x3\x2\x2\x2\x3CD\x3CE\x3\x2\x2\x2\x3CE" + "\x3D0\x5\xCA\x66\x2\x3CF\x3C8\x3\x2\x2\x2\x3D0\x3D1\x3\x2\x2\x2\x3D1\x3CF" + "\x3\x2\x2\x2\x3D1\x3D2\x3\x2\x2\x2\x3D2\x61\x3\x2\x2\x2\x3D3\x3D4\a[\x2" + - "\x2\x3D4\x3D5\a\xDC\x2\x2\x3D5\x3D6\x5\xCA\x66\x2\x3D6\x63\x3\x2\x2\x2" + - "\x3D7\x3D8\a\x61\x2\x2\x3D8\x3DA\a\xDC\x2\x2\x3D9\x3D7\x3\x2\x2\x2\x3D9" + + "\x2\x3D4\x3D5\a\xF3\x2\x2\x3D5\x3D6\x5\xCA\x66\x2\x3D6\x63\x3\x2\x2\x2" + + "\x3D7\x3D8\a\x61\x2\x2\x3D8\x3DA\a\xF3\x2\x2\x3D9\x3D7\x3\x2\x2\x2\x3D9" + "\x3DA\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DD\x5\xE8u\x2\x3DC\x3DE" + - "\a\xDC\x2\x2\x3DD\x3DC\x3\x2\x2\x2\x3DD\x3DE\x3\x2\x2\x2\x3DE\x3DF\x3" + - "\x2\x2\x2\x3DF\x3E1\a\xC0\x2\x2\x3E0\x3E2\a\xDC\x2\x2\x3E1\x3E0\x3\x2" + + "\a\xF3\x2\x2\x3DD\x3DC\x3\x2\x2\x2\x3DD\x3DE\x3\x2\x2\x2\x3DE\x3DF\x3" + + "\x2\x2\x2\x3DF\x3E1\a\xC0\x2\x2\x3E0\x3E2\a\xF3\x2\x2\x3E1\x3E0\x3\x2" + "\x2\x2\x3E1\x3E2\x3\x2\x2\x2\x3E2\x3E3\x3\x2\x2\x2\x3E3\x3E4\x5\xCA\x66" + - "\x2\x3E4\x65\x3\x2\x2\x2\x3E5\x3E6\a\x64\x2\x2\x3E6\x3E7\a\xDC\x2\x2\x3E7" + - "\x3E9\x5\xDAn\x2\x3E8\x3EA\a\xDC\x2\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA" + - "\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2\x2\x3EB\x3ED\a\t\x2\x2\x3EC\x3EE\a\xDC" + + "\x2\x3E4\x65\x3\x2\x2\x2\x3E5\x3E6\a\x64\x2\x2\x3E6\x3E7\a\xF3\x2\x2\x3E7" + + "\x3E9\x5\xDAn\x2\x3E8\x3EA\a\xF3\x2\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA" + + "\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2\x2\x3EB\x3ED\a\t\x2\x2\x3EC\x3EE\a\xF3" + "\x2\x2\x3ED\x3EC\x3\x2\x2\x2\x3ED\x3EE\x3\x2\x2\x2\x3EE\x3EF\x3\x2\x2" + "\x2\x3EF\x3F0\x5\xCA\x66\x2\x3F0g\x3\x2\x2\x2\x3F1\x3F2\a\\\x2\x2\x3F2" + - "\x3F3\a\xDC\x2\x2\x3F3\x3F4\x5\xCA\x66\x2\x3F4i\x3\x2\x2\x2\x3F5\x3F6" + - "\a]\x2\x2\x3F6\x3F7\a\xDC\x2\x2\x3F7\x406\x5\xCA\x66\x2\x3F8\x3FA\a\xDC" + + "\x3F3\a\xF3\x2\x2\x3F3\x3F4\x5\xCA\x66\x2\x3F4i\x3\x2\x2\x2\x3F5\x3F6" + + "\a]\x2\x2\x3F6\x3F7\a\xF3\x2\x2\x3F7\x406\x5\xCA\x66\x2\x3F8\x3FA\a\xF3" + "\x2\x2\x3F9\x3F8\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FB\x3\x2\x2" + - "\x2\x3FB\x3FD\a\t\x2\x2\x3FC\x3FE\a\xDC\x2\x2\x3FD\x3FC\x3\x2\x2\x2\x3FD" + + "\x2\x3FB\x3FD\a\t\x2\x2\x3FC\x3FE\a\xF3\x2\x2\x3FD\x3FC\x3\x2\x2\x2\x3FD" + "\x3FE\x3\x2\x2\x2\x3FE\x3FF\x3\x2\x2\x2\x3FF\x404\x5\xCA\x66\x2\x400\x401" + - "\a\xDC\x2\x2\x401\x402\a\xAC\x2\x2\x402\x403\a\xDC\x2\x2\x403\x405\x5" + + "\a\xF3\x2\x2\x401\x402\a\xAC\x2\x2\x402\x403\a\xF3\x2\x2\x403\x405\x5" + "\xCA\x66\x2\x404\x400\x3\x2\x2\x2\x404\x405\x3\x2\x2\x2\x405\x407\x3\x2" + "\x2\x2\x406\x3F9\x3\x2\x2\x2\x406\x407\x3\x2\x2\x2\x407k\x3\x2\x2\x2\x408" + - "\x409\ah\x2\x2\x409\x40A\a\xDC\x2\x2\x40A\x40C\x5\xE8u\x2\x40B\x40D\a" + - "\xDC\x2\x2\x40C\x40B\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40E\x3\x2" + - "\x2\x2\x40E\x410\a\xC0\x2\x2\x40F\x411\a\xDC\x2\x2\x410\x40F\x3\x2\x2" + + "\x409\ah\x2\x2\x409\x40A\a\xF3\x2\x2\x40A\x40C\x5\xE8u\x2\x40B\x40D\a" + + "\xF3\x2\x2\x40C\x40B\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40E\x3\x2" + + "\x2\x2\x40E\x410\a\xC0\x2\x2\x40F\x411\a\xF3\x2\x2\x410\x40F\x3\x2\x2" + "\x2\x410\x411\x3\x2\x2\x2\x411\x412\x3\x2\x2\x2\x412\x413\x5\xCA\x66\x2" + - "\x413m\x3\x2\x2\x2\x414\x416\ai\x2\x2\x415\x417\a\xDC\x2\x2\x416\x415" + + "\x413m\x3\x2\x2\x2\x414\x416\ai\x2\x2\x415\x417\a\xF3\x2\x2\x416\x415" + "\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x418\x3\x2\x2\x2\x418\x41A\x5" + - "\x104\x83\x2\x419\x41B\a\xDC\x2\x2\x41A\x419\x3\x2\x2\x2\x41A\x41B\x3" + - "\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E\a\xC0\x2\x2\x41D\x41F\a\xDC" + + "\x104\x83\x2\x419\x41B\a\xF3\x2\x2\x41A\x419\x3\x2\x2\x2\x41A\x41B\x3" + + "\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E\a\xC0\x2\x2\x41D\x41F\a\xF3" + "\x2\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F\x3\x2\x2\x2\x41F\x420\x3\x2\x2" + "\x2\x420\x421\x5\xCA\x66\x2\x421o\x3\x2\x2\x2\x422\x426\x5r:\x2\x423\x425" + "\x5t;\x2\x424\x423\x3\x2\x2\x2\x425\x428\x3\x2\x2\x2\x426\x424\x3\x2\x2" + "\x2\x426\x427\x3\x2\x2\x2\x427\x42A\x3\x2\x2\x2\x428\x426\x3\x2\x2\x2" + "\x429\x42B\x5v<\x2\x42A\x429\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42C" + "\x3\x2\x2\x2\x42C\x42D\am\x2\x2\x42Dq\x3\x2\x2\x2\x42E\x430\aj\x2\x2\x42F" + - "\x431\a\xDC\x2\x2\x430\x42F\x3\x2\x2\x2\x430\x431\x3\x2\x2\x2\x431\x432" + - "\x3\x2\x2\x2\x432\x433\x5X-\x2\x433\x434\a\xDC\x2\x2\x434\x435\a\xAA\x2" + + "\x431\a\xF3\x2\x2\x430\x42F\x3\x2\x2\x2\x430\x431\x3\x2\x2\x2\x431\x432" + + "\x3\x2\x2\x2\x432\x433\x5X-\x2\x433\x434\a\xF3\x2\x2\x434\x435\a\xAA\x2" + "\x2\x435\x43B\x5\x126\x94\x2\x436\x43A\x5\xE\b\x2\x437\x43A\x5\x16\f\x2" + "\x438\x43A\x5\x1C\xF\x2\x439\x436\x3\x2\x2\x2\x439\x437\x3\x2\x2\x2\x439" + "\x438\x3\x2\x2\x2\x43A\x43D\x3\x2\x2\x2\x43B\x439\x3\x2\x2\x2\x43B\x43C" + "\x3\x2\x2\x2\x43Cs\x3\x2\x2\x2\x43D\x43B\x3\x2\x2\x2\x43E\x440\ak\x2\x2" + - "\x43F\x441\a\xDC\x2\x2\x440\x43F\x3\x2\x2\x2\x440\x441\x3\x2\x2\x2\x441" + - "\x442\x3\x2\x2\x2\x442\x443\x5X-\x2\x443\x444\a\xDC\x2\x2\x444\x445\a" + + "\x43F\x441\a\xF3\x2\x2\x440\x43F\x3\x2\x2\x2\x440\x441\x3\x2\x2\x2\x441" + + "\x442\x3\x2\x2\x2\x442\x443\x5X-\x2\x443\x444\a\xF3\x2\x2\x444\x445\a" + "\xAA\x2\x2\x445\x44B\x5\x126\x94\x2\x446\x44A\x5\xE\b\x2\x447\x44A\x5" + "\x16\f\x2\x448\x44A\x5\x1C\xF\x2\x449\x446\x3\x2\x2\x2\x449\x447\x3\x2" + "\x2\x2\x449\x448\x3\x2\x2\x2\x44A\x44D\x3\x2\x2\x2\x44B\x449\x3\x2\x2" + @@ -18404,255 +18409,255 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x5\x16\f\x2\x452\x454\x5\x1C\xF\x2\x453\x450\x3\x2\x2\x2\x453\x451\x3" + "\x2\x2\x2\x453\x452\x3\x2\x2\x2\x454\x457\x3\x2\x2\x2\x455\x453\x3\x2" + "\x2\x2\x455\x456\x3\x2\x2\x2\x456w\x3\x2\x2\x2\x457\x455\x3\x2\x2\x2\x458" + - "\x45A\ao\x2\x2\x459\x45B\a\xDC\x2\x2\x45A\x459\x3\x2\x2\x2\x45A\x45B\x3" + - "\x2\x2\x2\x45B\x45C\x3\x2\x2\x2\x45C\x45E\a\xC4\x2\x2\x45D\x45F\a\xDC" + + "\x45A\ao\x2\x2\x459\x45B\a\xF3\x2\x2\x45A\x459\x3\x2\x2\x2\x45A\x45B\x3" + + "\x2\x2\x2\x45B\x45C\x3\x2\x2\x2\x45C\x45E\a\xC4\x2\x2\x45D\x45F\a\xF3" + "\x2\x2\x45E\x45D\x3\x2\x2\x2\x45E\x45F\x3\x2\x2\x2\x45F\x460\x3\x2\x2" + - "\x2\x460\x462\x5\xF4{\x2\x461\x463\a\xDC\x2\x2\x462\x461\x3\x2\x2\x2\x462" + + "\x2\x460\x462\x5\xF4{\x2\x461\x463\a\xF3\x2\x2\x462\x461\x3\x2\x2\x2\x462" + "\x463\x3\x2\x2\x2\x463\x464\x3\x2\x2\x2\x464\x465\a\xCB\x2\x2\x465y\x3" + - "\x2\x2\x2\x466\x467\ap\x2\x2\x467\x468\a\xDC\x2\x2\x468\x469\x5\xCA\x66" + - "\x2\x469{\x3\x2\x2\x2\x46A\x46B\ar\x2\x2\x46B\x46C\a\xDC\x2\x2\x46C\x46D" + - "\x5\xCA\x66\x2\x46D\x46E\a\xDC\x2\x2\x46E\x46F\a\x12\x2\x2\x46F\x470\a" + - "\xDC\x2\x2\x470\x471\x5\xCA\x66\x2\x471}\x3\x2\x2\x2\x472\x473\t\x6\x2" + - "\x2\x473\x47A\a\xDC\x2\x2\x474\x475\aS\x2\x2\x475\x476\a\xDC\x2\x2\x476" + - "\x47B\x5\xCA\x66\x2\x477\x478\a\x95\x2\x2\x478\x479\a\xDC\x2\x2\x479\x47B" + + "\x2\x2\x2\x466\x467\ap\x2\x2\x467\x468\a\xF3\x2\x2\x468\x469\x5\xCA\x66" + + "\x2\x469{\x3\x2\x2\x2\x46A\x46B\ar\x2\x2\x46B\x46C\a\xF3\x2\x2\x46C\x46D" + + "\x5\xCA\x66\x2\x46D\x46E\a\xF3\x2\x2\x46E\x46F\a\x12\x2\x2\x46F\x470\a" + + "\xF3\x2\x2\x470\x471\x5\xCA\x66\x2\x471}\x3\x2\x2\x2\x472\x473\t\x6\x2" + + "\x2\x473\x47A\a\xF3\x2\x2\x474\x475\aS\x2\x2\x475\x476\a\xF3\x2\x2\x476" + + "\x47B\x5\xCA\x66\x2\x477\x478\a\x95\x2\x2\x478\x479\a\xF3\x2\x2\x479\x47B" + "\as\x2\x2\x47A\x474\x3\x2\x2\x2\x47A\x477\x3\x2\x2\x2\x47B\x7F\x3\x2\x2" + - "\x2\x47C\x47D\ax\x2\x2\x47D\x47E\a\xDC\x2\x2\x47E\x47F\x5\xCA\x66\x2\x47F" + - "\x480\a\xDC\x2\x2\x480\x481\aS\x2\x2\x481\x482\a\xDC\x2\x2\x482\x48D\x5" + - "\xCA\x66\x2\x483\x485\a\xDC\x2\x2\x484\x483\x3\x2\x2\x2\x484\x485\x3\x2" + - "\x2\x2\x485\x486\x3\x2\x2\x2\x486\x488\a\t\x2\x2\x487\x489\a\xDC\x2\x2" + + "\x2\x47C\x47D\ax\x2\x2\x47D\x47E\a\xF3\x2\x2\x47E\x47F\x5\xCA\x66\x2\x47F" + + "\x480\a\xF3\x2\x2\x480\x481\aS\x2\x2\x481\x482\a\xF3\x2\x2\x482\x48D\x5" + + "\xCA\x66\x2\x483\x485\a\xF3\x2\x2\x484\x483\x3\x2\x2\x2\x484\x485\x3\x2" + + "\x2\x2\x485\x486\x3\x2\x2\x2\x486\x488\a\t\x2\x2\x487\x489\a\xF3\x2\x2" + "\x488\x487\x3\x2\x2\x2\x488\x489\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48A" + "\x48C\x5\xCA\x66\x2\x48B\x484\x3\x2\x2\x2\x48C\x48F\x3\x2\x2\x2\x48D\x48B" + "\x3\x2\x2\x2\x48D\x48E\x3\x2\x2\x2\x48E\x81\x3\x2\x2\x2\x48F\x48D\x3\x2" + - "\x2\x2\x490\x491\ax\x2\x2\x491\x492\a\xDC\x2\x2\x492\x493\x5\xCA\x66\x2" + - "\x493\x494\a\xDC\x2\x2\x494\x495\aR\x2\x2\x495\x496\a\xDC\x2\x2\x496\x4A1" + - "\x5\xCA\x66\x2\x497\x499\a\xDC\x2\x2\x498\x497\x3\x2\x2\x2\x498\x499\x3" + - "\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\a\t\x2\x2\x49B\x49D\a\xDC\x2" + + "\x2\x2\x490\x491\ax\x2\x2\x491\x492\a\xF3\x2\x2\x492\x493\x5\xCA\x66\x2" + + "\x493\x494\a\xF3\x2\x2\x494\x495\aR\x2\x2\x495\x496\a\xF3\x2\x2\x496\x4A1" + + "\x5\xCA\x66\x2\x497\x499\a\xF3\x2\x2\x498\x497\x3\x2\x2\x2\x498\x499\x3" + + "\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\a\t\x2\x2\x49B\x49D\a\xF3\x2" + "\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2\x49D\x49E\x3\x2\x2\x2" + "\x49E\x4A0\x5\xCA\x66\x2\x49F\x498\x3\x2\x2\x2\x4A0\x4A3\x3\x2\x2\x2\x4A1" + "\x49F\x3\x2\x2\x2\x4A1\x4A2\x3\x2\x2\x2\x4A2\x83\x3\x2\x2\x2\x4A3\x4A1" + - "\x3\x2\x2\x2\x4A4\x4A5\a{\x2\x2\x4A5\x4A6\a\xDC\x2\x2\x4A6\x4A7\x5\xCA" + - "\x66\x2\x4A7\x4A8\a\xDC\x2\x2\x4A8\x4A9\aN\x2\x2\x4A9\x4AA\a\xDC\x2\x2" + - "\x4AA\x4AF\t\a\x2\x2\x4AB\x4AC\a\xDC\x2\x2\x4AC\x4AD\a\v\x2\x2\x4AD\x4AE" + - "\a\xDC\x2\x2\x4AE\x4B0\t\b\x2\x2\x4AF\x4AB\x3\x2\x2\x2\x4AF\x4B0\x3\x2" + - "\x2\x2\x4B0\x4B3\x3\x2\x2\x2\x4B1\x4B2\a\xDC\x2\x2\x4B2\x4B4\t\t\x2\x2" + + "\x3\x2\x2\x2\x4A4\x4A5\a{\x2\x2\x4A5\x4A6\a\xF3\x2\x2\x4A6\x4A7\x5\xCA" + + "\x66\x2\x4A7\x4A8\a\xF3\x2\x2\x4A8\x4A9\aN\x2\x2\x4A9\x4AA\a\xF3\x2\x2" + + "\x4AA\x4AF\t\a\x2\x2\x4AB\x4AC\a\xF3\x2\x2\x4AC\x4AD\a\v\x2\x2\x4AD\x4AE" + + "\a\xF3\x2\x2\x4AE\x4B0\t\b\x2\x2\x4AF\x4AB\x3\x2\x2\x2\x4AF\x4B0\x3\x2" + + "\x2\x2\x4B0\x4B3\x3\x2\x2\x2\x4B1\x4B2\a\xF3\x2\x2\x4B2\x4B4\t\t\x2\x2" + "\x4B3\x4B1\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4\x4B5\x3\x2\x2\x2\x4B5" + - "\x4B6\a\xDC\x2\x2\x4B6\x4B7\a\x12\x2\x2\x4B7\x4B8\a\xDC\x2\x2\x4B8\x4C3" + - "\x5\xDAn\x2\x4B9\x4BA\a\xDC\x2\x2\x4BA\x4BC\a`\x2\x2\x4BB\x4BD\a\xDC\x2" + + "\x4B6\a\xF3\x2\x2\x4B6\x4B7\a\x12\x2\x2\x4B7\x4B8\a\xF3\x2\x2\x4B8\x4C3" + + "\x5\xDAn\x2\x4B9\x4BA\a\xF3\x2\x2\x4BA\x4BC\a`\x2\x2\x4BB\x4BD\a\xF3\x2" + "\x2\x4BC\x4BB\x3\x2\x2\x2\x4BC\x4BD\x3\x2\x2\x2\x4BD\x4BE\x3\x2\x2\x2" + - "\x4BE\x4C0\a\xC0\x2\x2\x4BF\x4C1\a\xDC\x2\x2\x4C0\x4BF\x3\x2\x2\x2\x4C0" + + "\x4BE\x4C0\a\xC0\x2\x2\x4BF\x4C1\a\xF3\x2\x2\x4C0\x4BF\x3\x2\x2\x2\x4C0" + "\x4C1\x3\x2\x2\x2\x4C1\x4C2\x3\x2\x2\x2\x4C2\x4C4\x5\xCA\x66\x2\x4C3\x4B9" + "\x3\x2\x2\x2\x4C3\x4C4\x3\x2\x2\x2\x4C4\x85\x3\x2\x2\x2\x4C5\x4D2\x5\x88" + - "\x45\x2\x4C6\x4C8\a\xDC\x2\x2\x4C7\x4C6\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2" + - "\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9\x4CB\t\n\x2\x2\x4CA\x4CC\a\xDC\x2\x2\x4CB" + + "\x45\x2\x4C6\x4C8\a\xF3\x2\x2\x4C7\x4C6\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2" + + "\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9\x4CB\t\n\x2\x2\x4CA\x4CC\a\xF3\x2\x2\x4CB" + "\x4CA\x3\x2\x2\x2\x4CB\x4CC\x3\x2\x2\x2\x4CC\x4CE\x3\x2\x2\x2\x4CD\x4CF" + "\x5\x88\x45\x2\x4CE\x4CD\x3\x2\x2\x2\x4CE\x4CF\x3\x2\x2\x2\x4CF\x4D1\x3" + "\x2\x2\x2\x4D0\x4C7\x3\x2\x2\x2\x4D1\x4D4\x3\x2\x2\x2\x4D2\x4D0\x3\x2" + "\x2\x2\x4D2\x4D3\x3\x2\x2\x2\x4D3\x4E7\x3\x2\x2\x2\x4D4\x4D2\x3\x2\x2" + "\x2\x4D5\x4D7\x5\x88\x45\x2\x4D6\x4D5\x3\x2\x2\x2\x4D6\x4D7\x3\x2\x2\x2" + - "\x4D7\x4E2\x3\x2\x2\x2\x4D8\x4DA\a\xDC\x2\x2\x4D9\x4D8\x3\x2\x2\x2\x4D9" + + "\x4D7\x4E2\x3\x2\x2\x2\x4D8\x4DA\a\xF3\x2\x2\x4D9\x4D8\x3\x2\x2\x2\x4D9" + "\x4DA\x3\x2\x2\x2\x4DA\x4DB\x3\x2\x2\x2\x4DB\x4DD\t\n\x2\x2\x4DC\x4DE" + - "\a\xDC\x2\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4E0\x3" + + "\a\xF3\x2\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4E0\x3" + "\x2\x2\x2\x4DF\x4E1\x5\x88\x45\x2\x4E0\x4DF\x3\x2\x2\x2\x4E0\x4E1\x3\x2" + "\x2\x2\x4E1\x4E3\x3\x2\x2\x2\x4E2\x4D9\x3\x2\x2\x2\x4E3\x4E4\x3\x2\x2" + "\x2\x4E4\x4E2\x3\x2\x2\x2\x4E4\x4E5\x3\x2\x2\x2\x4E5\x4E7\x3\x2\x2\x2" + "\x4E6\x4C5\x3\x2\x2\x2\x4E6\x4D6\x3\x2\x2\x2\x4E7\x87\x3\x2\x2\x2\x4E8" + - "\x4FA\x5\xCA\x66\x2\x4E9\x4F7\t\v\x2\x2\x4EA\x4EC\a\xDC\x2\x2\x4EB\x4EA" + + "\x4FA\x5\xCA\x66\x2\x4E9\x4F7\t\v\x2\x2\x4EA\x4EC\a\xF3\x2\x2\x4EB\x4EA" + "\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC\x4ED\x3\x2\x2\x2\x4ED\x4EF\a\xC4" + - "\x2\x2\x4EE\x4F0\a\xDC\x2\x2\x4EF\x4EE\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2" + - "\x2\x4F0\x4F1\x3\x2\x2\x2\x4F1\x4F3\x5\xF4{\x2\x4F2\x4F4\a\xDC\x2\x2\x4F3" + + "\x2\x2\x4EE\x4F0\a\xF3\x2\x2\x4EF\x4EE\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2" + + "\x2\x4F0\x4F1\x3\x2\x2\x2\x4F1\x4F3\x5\xF4{\x2\x4F2\x4F4\a\xF3\x2\x2\x4F3" + "\x4F2\x3\x2\x2\x2\x4F3\x4F4\x3\x2\x2\x2\x4F4\x4F5\x3\x2\x2\x2\x4F5\x4F6" + "\a\xCB\x2\x2\x4F6\x4F8\x3\x2\x2\x2\x4F7\x4EB\x3\x2\x2\x2\x4F7\x4F8\x3" + "\x2\x2\x2\x4F8\x4FA\x3\x2\x2\x2\x4F9\x4E8\x3\x2\x2\x2\x4F9\x4E9\x3\x2" + - "\x2\x2\x4FA\x89\x3\x2\x2\x2\x4FB\x4FC\a\x85\x2\x2\x4FC\x4FD\a\xDC\x2\x2" + - "\x4FD\x4FF\x5\xDAn\x2\x4FE\x500\a\xDC\x2\x2\x4FF\x4FE\x3\x2\x2\x2\x4FF" + + "\x2\x2\x4FA\x89\x3\x2\x2\x2\x4FB\x4FC\a\x85\x2\x2\x4FC\x4FD\a\xF3\x2\x2" + + "\x4FD\x4FF\x5\xDAn\x2\x4FE\x500\a\xF3\x2\x2\x4FF\x4FE\x3\x2\x2\x2\x4FF" + "\x500\x3\x2\x2\x2\x500\x501\x3\x2\x2\x2\x501\x506\a\t\x2\x2\x502\x504" + - "\a\xDC\x2\x2\x503\x502\x3\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x505\x3" + + "\a\xF3\x2\x2\x503\x502\x3\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x505\x3" + "\x2\x2\x2\x505\x507\x5\x86\x44\x2\x506\x503\x3\x2\x2\x2\x506\x507\x3\x2" + - "\x2\x2\x507\x8B\x3\x2\x2\x2\x508\x509\x5\x11C\x8F\x2\x509\x50A\a\xDC\x2" + + "\x2\x2\x507\x8B\x3\x2\x2\x2\x508\x509\x5\x11C\x8F\x2\x509\x50A\a\xF3\x2" + "\x2\x50A\x50C\x3\x2\x2\x2\x50B\x508\x3\x2\x2\x2\x50B\x50C\x3\x2\x2\x2" + - "\x50C\x50F\x3\x2\x2\x2\x50D\x50E\a\xA3\x2\x2\x50E\x510\a\xDC\x2\x2\x50F" + + "\x50C\x50F\x3\x2\x2\x2\x50D\x50E\a\xA3\x2\x2\x50E\x510\a\xF3\x2\x2\x50F" + "\x50D\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x511\x3\x2\x2\x2\x511\x512" + - "\a\x87\x2\x2\x512\x513\a\xDC\x2\x2\x513\x515\x5\x104\x83\x2\x514\x516" + + "\a\x87\x2\x2\x512\x513\a\xF3\x2\x2\x513\x515\x5\x104\x83\x2\x514\x516" + "\x5\x11A\x8E\x2\x515\x514\x3\x2\x2\x2\x515\x516\x3\x2\x2\x2\x516\x51B" + - "\x3\x2\x2\x2\x517\x519\a\xDC\x2\x2\x518\x517\x3\x2\x2\x2\x518\x519\x3" + + "\x3\x2\x2\x2\x517\x519\a\xF3\x2\x2\x518\x517\x3\x2\x2\x2\x518\x519\x3" + "\x2\x2\x2\x519\x51A\x3\x2\x2\x2\x51A\x51C\x5\xFA~\x2\x51B\x518\x3\x2\x2" + - "\x2\x51B\x51C\x3\x2\x2\x2\x51C\x51F\x3\x2\x2\x2\x51D\x51E\a\xDC\x2\x2" + + "\x2\x51B\x51C\x3\x2\x2\x2\x51C\x51F\x3\x2\x2\x2\x51D\x51E\a\xF3\x2\x2" + "\x51E\x520\x5\x106\x84\x2\x51F\x51D\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2" + "\x520\x521\x3\x2\x2\x2\x521\x523\x5\x126\x94\x2\x522\x524\x5\x1C\xF\x2" + "\x523\x522\x3\x2\x2\x2\x523\x524\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525" + "\x526\a;\x2\x2\x526\x8D\x3\x2\x2\x2\x527\x528\x5\x11C\x8F\x2\x528\x529" + - "\a\xDC\x2\x2\x529\x52B\x3\x2\x2\x2\x52A\x527\x3\x2\x2\x2\x52A\x52B\x3" + - "\x2\x2\x2\x52B\x52E\x3\x2\x2\x2\x52C\x52D\a\xA3\x2\x2\x52D\x52F\a\xDC" + + "\a\xF3\x2\x2\x529\x52B\x3\x2\x2\x2\x52A\x527\x3\x2\x2\x2\x52A\x52B\x3" + + "\x2\x2\x2\x52B\x52E\x3\x2\x2\x2\x52C\x52D\a\xA3\x2\x2\x52D\x52F\a\xF3" + "\x2\x2\x52E\x52C\x3\x2\x2\x2\x52E\x52F\x3\x2\x2\x2\x52F\x530\x3\x2\x2" + - "\x2\x530\x531\a\x89\x2\x2\x531\x532\a\xDC\x2\x2\x532\x537\x5\x104\x83" + - "\x2\x533\x535\a\xDC\x2\x2\x534\x533\x3\x2\x2\x2\x534\x535\x3\x2\x2\x2" + + "\x2\x530\x531\a\x89\x2\x2\x531\x532\a\xF3\x2\x2\x532\x537\x5\x104\x83" + + "\x2\x533\x535\a\xF3\x2\x2\x534\x533\x3\x2\x2\x2\x534\x535\x3\x2\x2\x2" + "\x535\x536\x3\x2\x2\x2\x536\x538\x5\xFA~\x2\x537\x534\x3\x2\x2\x2\x537" + "\x538\x3\x2\x2\x2\x538\x539\x3\x2\x2\x2\x539\x53B\x5\x126\x94\x2\x53A" + "\x53C\x5\x1C\xF\x2\x53B\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D" + "\x3\x2\x2\x2\x53D\x53E\a;\x2\x2\x53E\x8F\x3\x2\x2\x2\x53F\x540\x5\x11C" + - "\x8F\x2\x540\x541\a\xDC\x2\x2\x541\x543\x3\x2\x2\x2\x542\x53F\x3\x2\x2" + + "\x8F\x2\x540\x541\a\xF3\x2\x2\x541\x543\x3\x2\x2\x2\x542\x53F\x3\x2\x2" + "\x2\x542\x543\x3\x2\x2\x2\x543\x546\x3\x2\x2\x2\x544\x545\a\xA3\x2\x2" + - "\x545\x547\a\xDC\x2\x2\x546\x544\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547" + - "\x548\x3\x2\x2\x2\x548\x549\a\x88\x2\x2\x549\x54A\a\xDC\x2\x2\x54A\x54F" + - "\x5\x104\x83\x2\x54B\x54D\a\xDC\x2\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D" + + "\x545\x547\a\xF3\x2\x2\x546\x544\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547" + + "\x548\x3\x2\x2\x2\x548\x549\a\x88\x2\x2\x549\x54A\a\xF3\x2\x2\x54A\x54F" + + "\x5\x104\x83\x2\x54B\x54D\a\xF3\x2\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D" + "\x3\x2\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x550\x5\xFA~\x2\x54F\x54C\x3\x2" + "\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x551\x3\x2\x2\x2\x551\x553\x5\x126\x94" + "\x2\x552\x554\x5\x1C\xF\x2\x553\x552\x3\x2\x2\x2\x553\x554\x3\x2\x2\x2" + "\x554\x555\x3\x2\x2\x2\x555\x556\a;\x2\x2\x556\x91\x3\x2\x2\x2\x557\x558" + - "\a\x8C\x2\x2\x558\x559\a\xDC\x2\x2\x559\x55B\x5\xDAn\x2\x55A\x55C\a\xDC" + + "\a\x8C\x2\x2\x558\x559\a\xF3\x2\x2\x559\x55B\x5\xDAn\x2\x55A\x55C\a\xF3" + "\x2\x2\x55B\x55A\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x55D\x3\x2\x2" + - "\x2\x55D\x55F\a\t\x2\x2\x55E\x560\a\xDC\x2\x2\x55F\x55E\x3\x2\x2\x2\x55F" + + "\x2\x55D\x55F\a\t\x2\x2\x55E\x560\a\xF3\x2\x2\x55F\x55E\x3\x2\x2\x2\x55F" + "\x560\x3\x2\x2\x2\x560\x562\x3\x2\x2\x2\x561\x563\x5\xCA\x66\x2\x562\x561" + - "\x3\x2\x2\x2\x562\x563\x3\x2\x2\x2\x563\x565\x3\x2\x2\x2\x564\x566\a\xDC" + + "\x3\x2\x2\x2\x562\x563\x3\x2\x2\x2\x563\x565\x3\x2\x2\x2\x564\x566\a\xF3" + "\x2\x2\x565\x564\x3\x2\x2\x2\x565\x566\x3\x2\x2\x2\x566\x567\x3\x2\x2" + - "\x2\x567\x569\a\t\x2\x2\x568\x56A\a\xDC\x2\x2\x569\x568\x3\x2\x2\x2\x569" + + "\x2\x567\x569\a\t\x2\x2\x568\x56A\a\xF3\x2\x2\x569\x568\x3\x2\x2\x2\x569" + "\x56A\x3\x2\x2\x2\x56A\x56B\x3\x2\x2\x2\x56B\x56C\x5\xCA\x66\x2\x56C\x93" + - "\x3\x2\x2\x2\x56D\x56E\a\x8F\x2\x2\x56E\x56F\a\xDC\x2\x2\x56F\x57E\x5" + - "\x104\x83\x2\x570\x572\a\xDC\x2\x2\x571\x570\x3\x2\x2\x2\x571\x572\x3" + - "\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x575\a\xC4\x2\x2\x574\x576\a\xDC" + + "\x3\x2\x2\x2\x56D\x56E\a\x8F\x2\x2\x56E\x56F\a\xF3\x2\x2\x56F\x57E\x5" + + "\x104\x83\x2\x570\x572\a\xF3\x2\x2\x571\x570\x3\x2\x2\x2\x571\x572\x3" + + "\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x575\a\xC4\x2\x2\x574\x576\a\xF3" + "\x2\x2\x575\x574\x3\x2\x2\x2\x575\x576\x3\x2\x2\x2\x576\x57B\x3\x2\x2" + - "\x2\x577\x579\x5\xF4{\x2\x578\x57A\a\xDC\x2\x2\x579\x578\x3\x2\x2\x2\x579" + + "\x2\x577\x579\x5\xF4{\x2\x578\x57A\a\xF3\x2\x2\x579\x578\x3\x2\x2\x2\x579" + "\x57A\x3\x2\x2\x2\x57A\x57C\x3\x2\x2\x2\x57B\x577\x3\x2\x2\x2\x57B\x57C" + "\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2\x57D\x57F\a\xCB\x2\x2\x57E\x571\x3" + "\x2\x2\x2\x57E\x57F\x3\x2\x2\x2\x57F\x95\x3\x2\x2\x2\x580\x583\a\x8E\x2" + - "\x2\x581\x582\a\xDC\x2\x2\x582\x584\x5\xCA\x66\x2\x583\x581\x3\x2\x2\x2" + + "\x2\x581\x582\a\xF3\x2\x2\x582\x584\x5\xCA\x66\x2\x583\x581\x3\x2\x2\x2" + "\x583\x584\x3\x2\x2\x2\x584\x97\x3\x2\x2\x2\x585\x586\a\x92\x2\x2\x586" + - "\x589\a\xDC\x2\x2\x587\x588\a\x84\x2\x2\x588\x58A\a\xDC\x2\x2\x589\x587" + + "\x589\a\xF3\x2\x2\x587\x588\a\x84\x2\x2\x588\x58A\a\xF3\x2\x2\x589\x587" + "\x3\x2\x2\x2\x589\x58A\x3\x2\x2\x2\x58A\x58B\x3\x2\x2\x2\x58B\x596\x5" + - "\x9AN\x2\x58C\x58E\a\xDC\x2\x2\x58D\x58C\x3\x2\x2\x2\x58D\x58E\x3\x2\x2" + - "\x2\x58E\x58F\x3\x2\x2\x2\x58F\x591\a\t\x2\x2\x590\x592\a\xDC\x2\x2\x591" + + "\x9AN\x2\x58C\x58E\a\xF3\x2\x2\x58D\x58C\x3\x2\x2\x2\x58D\x58E\x3\x2\x2" + + "\x2\x58E\x58F\x3\x2\x2\x2\x58F\x591\a\t\x2\x2\x590\x592\a\xF3\x2\x2\x591" + "\x590\x3\x2\x2\x2\x591\x592\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x595" + "\x5\x9AN\x2\x594\x58D\x3\x2\x2\x2\x595\x598\x3\x2\x2\x2\x596\x594\x3\x2" + "\x2\x2\x596\x597\x3\x2\x2\x2\x597\x99\x3\x2\x2\x2\x598\x596\x3\x2\x2\x2" + - "\x599\x59B\x5\xE8u\x2\x59A\x59C\a\xDC\x2\x2\x59B\x59A\x3\x2\x2\x2\x59B" + + "\x599\x59B\x5\xE8u\x2\x59A\x59C\a\xF3\x2\x2\x59B\x59A\x3\x2\x2\x2\x59B" + "\x59C\x3\x2\x2\x2\x59C\x59D\x3\x2\x2\x2\x59D\x59F\a\xC4\x2\x2\x59E\x5A0" + - "\a\xDC\x2\x2\x59F\x59E\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3" + - "\x2\x2\x2\x5A1\x5A3\x5\x100\x81\x2\x5A2\x5A4\a\xDC\x2\x2\x5A3\x5A2\x3" + + "\a\xF3\x2\x2\x59F\x59E\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3" + + "\x2\x2\x2\x5A1\x5A3\x5\x100\x81\x2\x5A2\x5A4\a\xF3\x2\x2\x5A3\x5A2\x3" + "\x2\x2\x2\x5A3\x5A4\x3\x2\x2\x2\x5A4\x5A5\x3\x2\x2\x2\x5A5\x5A8\a\xCB" + - "\x2\x2\x5A6\x5A7\a\xDC\x2\x2\x5A7\x5A9\x5\x106\x84\x2\x5A8\x5A6\x3\x2" + + "\x2\x2\x5A6\x5A7\a\xF3\x2\x2\x5A7\x5A9\x5\x106\x84\x2\x5A8\x5A6\x3\x2" + "\x2\x2\x5A8\x5A9\x3\x2\x2\x2\x5A9\x9B\x3\x2\x2\x2\x5AA\x5AB\a\x94\x2\x2" + - "\x5AB\x9D\x3\x2\x2\x2\x5AC\x5B2\a\x95\x2\x2\x5AD\x5B0\a\xDC\x2\x2\x5AE" + + "\x5AB\x9D\x3\x2\x2\x2\x5AC\x5B2\a\x95\x2\x2\x5AD\x5B0\a\xF3\x2\x2\x5AE" + "\x5B1\as\x2\x2\x5AF\x5B1\x5\x104\x83\x2\x5B0\x5AE\x3\x2\x2\x2\x5B0\x5AF" + "\x3\x2\x2\x2\x5B1\x5B3\x3\x2\x2\x2\x5B2\x5AD\x3\x2\x2\x2\x5B2\x5B3\x3" + "\x2\x2\x2\x5B3\x9F\x3\x2\x2\x2\x5B4\x5B5\a\x96\x2\x2\x5B5\xA1\x3\x2\x2" + - "\x2\x5B6\x5B7\a\x97\x2\x2\x5B7\x5B8\a\xDC\x2\x2\x5B8\x5B9\x5\xCA\x66\x2" + - "\x5B9\xA3\x3\x2\x2\x2\x5BA\x5BB\a\x98\x2\x2\x5BB\x5BC\a\xDC\x2\x2\x5BC" + - "\x5BE\x5\xE8u\x2\x5BD\x5BF\a\xDC\x2\x2\x5BE\x5BD\x3\x2\x2\x2\x5BE\x5BF" + - "\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C2\a\xC0\x2\x2\x5C1\x5C3\a\xDC" + + "\x2\x5B6\x5B7\a\x97\x2\x2\x5B7\x5B8\a\xF3\x2\x2\x5B8\x5B9\x5\xCA\x66\x2" + + "\x5B9\xA3\x3\x2\x2\x2\x5BA\x5BB\a\x98\x2\x2\x5BB\x5BC\a\xF3\x2\x2\x5BC" + + "\x5BE\x5\xE8u\x2\x5BD\x5BF\a\xF3\x2\x2\x5BE\x5BD\x3\x2\x2\x2\x5BE\x5BF" + + "\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C2\a\xC0\x2\x2\x5C1\x5C3\a\xF3" + "\x2\x2\x5C2\x5C1\x3\x2\x2\x2\x5C2\x5C3\x3\x2\x2\x2\x5C3\x5C4\x3\x2\x2" + "\x2\x5C4\x5C5\x5\xCA\x66\x2\x5C5\xA5\x3\x2\x2\x2\x5C6\x5C7\a\x99\x2\x2" + - "\x5C7\x5C8\a\xDC\x2\x2\x5C8\x5CA\x5\xCA\x66\x2\x5C9\x5CB\a\xDC\x2\x2\x5CA" + + "\x5C7\x5C8\a\xF3\x2\x2\x5C8\x5CA\x5\xCA\x66\x2\x5C9\x5CB\a\xF3\x2\x2\x5CA" + "\x5C9\x3\x2\x2\x2\x5CA\x5CB\x3\x2\x2\x2\x5CB\x5CC\x3\x2\x2\x2\x5CC\x5CE" + - "\a\t\x2\x2\x5CD\x5CF\a\xDC\x2\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2" + + "\a\t\x2\x2\x5CD\x5CF\a\xF3\x2\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2" + "\x2\x2\x5CF\x5D0\x3\x2\x2\x2\x5D0\x5D1\x5\xCA\x66\x2\x5D1\xA7\x3\x2\x2" + - "\x2\x5D2\x5D3\a\x9A\x2\x2\x5D3\x5D4\a\xDC\x2\x2\x5D4\x5D6\x5\xCA\x66\x2" + - "\x5D5\x5D7\a\xDC\x2\x2\x5D6\x5D5\x3\x2\x2\x2\x5D6\x5D7\x3\x2\x2\x2\x5D7" + - "\x5D8\x3\x2\x2\x2\x5D8\x5DA\a\t\x2\x2\x5D9\x5DB\a\xDC\x2\x2\x5DA\x5D9" + + "\x2\x5D2\x5D3\a\x9A\x2\x2\x5D3\x5D4\a\xF3\x2\x2\x5D4\x5D6\x5\xCA\x66\x2" + + "\x5D5\x5D7\a\xF3\x2\x2\x5D6\x5D5\x3\x2\x2\x2\x5D6\x5D7\x3\x2\x2\x2\x5D7" + + "\x5D8\x3\x2\x2\x2\x5D8\x5DA\a\t\x2\x2\x5D9\x5DB\a\xF3\x2\x2\x5DA\x5D9" + "\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2\x5DB\x5DC\x3\x2\x2\x2\x5DC\x5DE\x5" + - "\xCA\x66\x2\x5DD\x5DF\a\xDC\x2\x2\x5DE\x5DD\x3\x2\x2\x2\x5DE\x5DF\x3\x2" + - "\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E2\a\t\x2\x2\x5E1\x5E3\a\xDC\x2\x2" + + "\xCA\x66\x2\x5DD\x5DF\a\xF3\x2\x2\x5DE\x5DD\x3\x2\x2\x2\x5DE\x5DF\x3\x2" + + "\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E2\a\t\x2\x2\x5E1\x5E3\a\xF3\x2\x2" + "\x5E2\x5E1\x3\x2\x2\x2\x5E2\x5E3\x3\x2\x2\x2\x5E3\x5E4\x3\x2\x2\x2\x5E4" + - "\x5E6\x5\xCA\x66\x2\x5E5\x5E7\a\xDC\x2\x2\x5E6\x5E5\x3\x2\x2\x2\x5E6\x5E7" + - "\x3\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5EA\a\t\x2\x2\x5E9\x5EB\a\xDC" + + "\x5E6\x5\xCA\x66\x2\x5E5\x5E7\a\xF3\x2\x2\x5E6\x5E5\x3\x2\x2\x2\x5E6\x5E7" + + "\x3\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5EA\a\t\x2\x2\x5E9\x5EB\a\xF3" + "\x2\x2\x5EA\x5E9\x3\x2\x2\x2\x5EA\x5EB\x3\x2\x2\x2\x5EB\x5EC\x3\x2\x2" + "\x2\x5EC\x5ED\x5\xCA\x66\x2\x5ED\xA9\x3\x2\x2\x2\x5EE\x5EF\a\x9B\x2\x2" + - "\x5EF\x5F0\a\xDC\x2\x2\x5F0\x5F2\x5\xDAn\x2\x5F1\x5F3\a\xDC\x2\x2\x5F2" + + "\x5EF\x5F0\a\xF3\x2\x2\x5F0\x5F2\x5\xDAn\x2\x5F1\x5F3\a\xF3\x2\x2\x5F2" + "\x5F1\x3\x2\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F4\x3\x2\x2\x2\x5F4\x5F6" + - "\a\t\x2\x2\x5F5\x5F7\a\xDC\x2\x2\x5F6\x5F5\x3\x2\x2\x2\x5F6\x5F7\x3\x2" + + "\a\t\x2\x2\x5F5\x5F7\a\xF3\x2\x2\x5F6\x5F5\x3\x2\x2\x2\x5F6\x5F7\x3\x2" + "\x2\x2\x5F7\x5F8\x3\x2\x2\x2\x5F8\x5F9\x5\xCA\x66\x2\x5F9\xAB\x3\x2\x2" + - "\x2\x5FA\x5FB\a\x9C\x2\x2\x5FB\x5FC\a\xDC\x2\x2\x5FC\x5FD\a\x1B\x2\x2" + - "\x5FD\x5FE\a\xDC\x2\x2\x5FE\x5FF\x5\xCA\x66\x2\x5FF\x603\x5\x126\x94\x2" + + "\x2\x5FA\x5FB\a\x9C\x2\x2\x5FB\x5FC\a\xF3\x2\x2\x5FC\x5FD\a\x1B\x2\x2" + + "\x5FD\x5FE\a\xF3\x2\x2\x5FE\x5FF\x5\xCA\x66\x2\x5FF\x603\x5\x126\x94\x2" + "\x600\x602\x5\xB0Y\x2\x601\x600\x3\x2\x2\x2\x602\x605\x3\x2\x2\x2\x603" + "\x601\x3\x2\x2\x2\x603\x604\x3\x2\x2\x2\x604\x606\x3\x2\x2\x2\x605\x603" + "\x3\x2\x2\x2\x606\x607\a<\x2\x2\x607\xAD\x3\x2\x2\x2\x608\x60A\aY\x2\x2" + - "\x609\x60B\a\xDC\x2\x2\x60A\x609\x3\x2\x2\x2\x60A\x60B\x3\x2\x2\x2\x60B" + - "\x60C\x3\x2\x2\x2\x60C\x60E\x5\x10C\x87\x2\x60D\x60F\a\xDC\x2\x2\x60E" + + "\x609\x60B\a\xF3\x2\x2\x60A\x609\x3\x2\x2\x2\x60A\x60B\x3\x2\x2\x2\x60B" + + "\x60C\x3\x2\x2\x2\x60C\x60E\x5\x10C\x87\x2\x60D\x60F\a\xF3\x2\x2\x60E" + "\x60D\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610\x3\x2\x2\x2\x610\x611" + "\x5\xCA\x66\x2\x611\x61A\x3\x2\x2\x2\x612\x613\x5\xCA\x66\x2\x613\x614" + - "\a\xDC\x2\x2\x614\x615\a\xAC\x2\x2\x615\x616\a\xDC\x2\x2\x616\x617\x5" + + "\a\xF3\x2\x2\x614\x615\a\xAC\x2\x2\x615\x616\a\xF3\x2\x2\x616\x617\x5" + "\xCA\x66\x2\x617\x61A\x3\x2\x2\x2\x618\x61A\x5\xCA\x66\x2\x619\x608\x3" + "\x2\x2\x2\x619\x612\x3\x2\x2\x2\x619\x618\x3\x2\x2\x2\x61A\xAF\x3\x2\x2" + - "\x2\x61B\x61C\a\x1B\x2\x2\x61C\x61D\a\xDC\x2\x2\x61D\x61E\x5\xB2Z\x2\x61E" + + "\x2\x61B\x61C\a\x1B\x2\x2\x61C\x61D\a\xF3\x2\x2\x61D\x61E\x5\xB2Z\x2\x61E" + "\x620\x5\x126\x94\x2\x61F\x621\x5\x1C\xF\x2\x620\x61F\x3\x2\x2\x2\x620" + "\x621\x3\x2\x2\x2\x621\xB1\x3\x2\x2\x2\x622\x632\a\x36\x2\x2\x623\x62E" + - "\x5\xAEX\x2\x624\x626\a\xDC\x2\x2\x625\x624\x3\x2\x2\x2\x625\x626\x3\x2" + - "\x2\x2\x626\x627\x3\x2\x2\x2\x627\x629\a\t\x2\x2\x628\x62A\a\xDC\x2\x2" + + "\x5\xAEX\x2\x624\x626\a\xF3\x2\x2\x625\x624\x3\x2\x2\x2\x625\x626\x3\x2" + + "\x2\x2\x626\x627\x3\x2\x2\x2\x627\x629\a\t\x2\x2\x628\x62A\a\xF3\x2\x2" + "\x629\x628\x3\x2\x2\x2\x629\x62A\x3\x2\x2\x2\x62A\x62B\x3\x2\x2\x2\x62B" + "\x62D\x5\xAEX\x2\x62C\x625\x3\x2\x2\x2\x62D\x630\x3\x2\x2\x2\x62E\x62C" + "\x3\x2\x2\x2\x62E\x62F\x3\x2\x2\x2\x62F\x632\x3\x2\x2\x2\x630\x62E\x3" + "\x2\x2\x2\x631\x622\x3\x2\x2\x2\x631\x623\x3\x2\x2\x2\x632\xB3\x3\x2\x2" + - "\x2\x633\x634\a\x9D\x2\x2\x634\x635\a\xDC\x2\x2\x635\x63E\x5\xCA\x66\x2" + - "\x636\x638\a\xDC\x2\x2\x637\x636\x3\x2\x2\x2\x637\x638\x3\x2\x2\x2\x638" + - "\x639\x3\x2\x2\x2\x639\x63B\a\t\x2\x2\x63A\x63C\a\xDC\x2\x2\x63B\x63A" + + "\x2\x633\x634\a\x9D\x2\x2\x634\x635\a\xF3\x2\x2\x635\x63E\x5\xCA\x66\x2" + + "\x636\x638\a\xF3\x2\x2\x637\x636\x3\x2\x2\x2\x637\x638\x3\x2\x2\x2\x638" + + "\x639\x3\x2\x2\x2\x639\x63B\a\t\x2\x2\x63A\x63C\a\xF3\x2\x2\x63B\x63A" + "\x3\x2\x2\x2\x63B\x63C\x3\x2\x2\x2\x63C\x63D\x3\x2\x2\x2\x63D\x63F\x5" + "\xCA\x66\x2\x63E\x637\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\xB5\x3\x2" + - "\x2\x2\x640\x641\a\x9F\x2\x2\x641\x642\a\xDC\x2\x2\x642\x644\x5\xCA\x66" + - "\x2\x643\x645\a\xDC\x2\x2\x644\x643\x3\x2\x2\x2\x644\x645\x3\x2\x2\x2" + - "\x645\x646\x3\x2\x2\x2\x646\x648\a\t\x2\x2\x647\x649\a\xDC\x2\x2\x648" + + "\x2\x2\x640\x641\a\x9F\x2\x2\x641\x642\a\xF3\x2\x2\x642\x644\x5\xCA\x66" + + "\x2\x643\x645\a\xF3\x2\x2\x644\x643\x3\x2\x2\x2\x644\x645\x3\x2\x2\x2" + + "\x645\x646\x3\x2\x2\x2\x646\x648\a\t\x2\x2\x647\x649\a\xF3\x2\x2\x648" + "\x647\x3\x2\x2\x2\x648\x649\x3\x2\x2\x2\x649\x64A\x3\x2\x2\x2\x64A\x64B" + "\x5\xCA\x66\x2\x64B\xB7\x3\x2\x2\x2\x64C\x64D\a\x9E\x2\x2\x64D\x64E\a" + - "\xDC\x2\x2\x64E\x650\x5\xE8u\x2\x64F\x651\a\xDC\x2\x2\x650\x64F\x3\x2" + + "\xF3\x2\x2\x64E\x650\x5\xE8u\x2\x64F\x651\a\xF3\x2\x2\x650\x64F\x3\x2" + "\x2\x2\x650\x651\x3\x2\x2\x2\x651\x652\x3\x2\x2\x2\x652\x654\a\xC0\x2" + - "\x2\x653\x655\a\xDC\x2\x2\x654\x653\x3\x2\x2\x2\x654\x655\x3\x2\x2\x2" + + "\x2\x653\x655\a\xF3\x2\x2\x654\x653\x3\x2\x2\x2\x654\x655\x3\x2\x2\x2" + "\x655\x656\x3\x2\x2\x2\x656\x657\x5\xCA\x66\x2\x657\xB9\x3\x2\x2\x2\x658" + "\x659\a\xA5\x2\x2\x659\xBB\x3\x2\x2\x2\x65A\x65B\x5\x11C\x8F\x2\x65B\x65C" + - "\a\xDC\x2\x2\x65C\x65E\x3\x2\x2\x2\x65D\x65A\x3\x2\x2\x2\x65D\x65E\x3" + - "\x2\x2\x2\x65E\x661\x3\x2\x2\x2\x65F\x660\a\xA3\x2\x2\x660\x662\a\xDC" + + "\a\xF3\x2\x2\x65C\x65E\x3\x2\x2\x2\x65D\x65A\x3\x2\x2\x2\x65D\x65E\x3" + + "\x2\x2\x2\x65E\x661\x3\x2\x2\x2\x65F\x660\a\xA3\x2\x2\x660\x662\a\xF3" + "\x2\x2\x661\x65F\x3\x2\x2\x2\x661\x662\x3\x2\x2\x2\x662\x663\x3\x2\x2" + - "\x2\x663\x665\a\xA7\x2\x2\x664\x666\a\xDC\x2\x2\x665\x664\x3\x2\x2\x2" + + "\x2\x663\x665\a\xA7\x2\x2\x664\x666\a\xF3\x2\x2\x665\x664\x3\x2\x2\x2" + "\x665\x666\x3\x2\x2\x2\x666\x667\x3\x2\x2\x2\x667\x66C\x5\x104\x83\x2" + - "\x668\x66A\a\xDC\x2\x2\x669\x668\x3\x2\x2\x2\x669\x66A\x3\x2\x2\x2\x66A" + + "\x668\x66A\a\xF3\x2\x2\x669\x668\x3\x2\x2\x2\x669\x66A\x3\x2\x2\x2\x66A" + "\x66B\x3\x2\x2\x2\x66B\x66D\x5\xFA~\x2\x66C\x669\x3\x2\x2\x2\x66C\x66D" + "\x3\x2\x2\x2\x66D\x66E\x3\x2\x2\x2\x66E\x670\x5\x126\x94\x2\x66F\x671" + "\x5\x1C\xF\x2\x670\x66F\x3\x2\x2\x2\x670\x671\x3\x2\x2\x2\x671\x672\x3" + "\x2\x2\x2\x672\x673\a=\x2\x2\x673\xBD\x3\x2\x2\x2\x674\x676\a\xAB\x2\x2" + - "\x675\x677\a\xDC\x2\x2\x676\x675\x3\x2\x2\x2\x676\x677\x3\x2\x2\x2\x677" + - "\x678\x3\x2\x2\x2\x678\x67A\a\xC0\x2\x2\x679\x67B\a\xDC\x2\x2\x67A\x679" + + "\x675\x677\a\xF3\x2\x2\x676\x675\x3\x2\x2\x2\x676\x677\x3\x2\x2\x2\x677" + + "\x678\x3\x2\x2\x2\x678\x67A\a\xC0\x2\x2\x679\x67B\a\xF3\x2\x2\x67A\x679" + "\x3\x2\x2\x2\x67A\x67B\x3\x2\x2\x2\x67B\x67C\x3\x2\x2\x2\x67C\x67D\x5" + "\xCA\x66\x2\x67D\xBF\x3\x2\x2\x2\x67E\x67F\x5\x11C\x8F\x2\x67F\x680\a" + - "\xDC\x2\x2\x680\x682\x3\x2\x2\x2\x681\x67E\x3\x2\x2\x2\x681\x682\x3\x2" + - "\x2\x2\x682\x683\x3\x2\x2\x2\x683\x684\a\xAE\x2\x2\x684\x685\a\xDC\x2" + + "\xF3\x2\x2\x680\x682\x3\x2\x2\x2\x681\x67E\x3\x2\x2\x2\x681\x682\x3\x2" + + "\x2\x2\x682\x683\x3\x2\x2\x2\x683\x684\a\xAE\x2\x2\x684\x685\a\xF3\x2" + "\x2\x685\x686\x5\x104\x83\x2\x686\x68A\x5\x126\x94\x2\x687\x689\x5\xC2" + "\x62\x2\x688\x687\x3\x2\x2\x2\x689\x68C\x3\x2\x2\x2\x68A\x688\x3\x2\x2" + "\x2\x68A\x68B\x3\x2\x2\x2\x68B\x68D\x3\x2\x2\x2\x68C\x68A\x3\x2\x2\x2" + "\x68D\x68E\a>\x2\x2\x68E\xC1\x3\x2\x2\x2\x68F\x69E\x5\x104\x83\x2\x690" + - "\x692\a\xDC\x2\x2\x691\x690\x3\x2\x2\x2\x691\x692\x3\x2\x2\x2\x692\x693" + - "\x3\x2\x2\x2\x693\x698\a\xC4\x2\x2\x694\x696\a\xDC\x2\x2\x695\x694\x3" + + "\x692\a\xF3\x2\x2\x691\x690\x3\x2\x2\x2\x691\x692\x3\x2\x2\x2\x692\x693" + + "\x3\x2\x2\x2\x693\x698\a\xC4\x2\x2\x694\x696\a\xF3\x2\x2\x695\x694\x3" + "\x2\x2\x2\x695\x696\x3\x2\x2\x2\x696\x697\x3\x2\x2\x2\x697\x699\x5\x100" + "\x81\x2\x698\x695\x3\x2\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69B\x3\x2\x2" + - "\x2\x69A\x69C\a\xDC\x2\x2\x69B\x69A\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2" + + "\x2\x69A\x69C\a\xF3\x2\x2\x69B\x69A\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2" + "\x69C\x69D\x3\x2\x2\x2\x69D\x69F\a\xCB\x2\x2\x69E\x691\x3\x2\x2\x2\x69E" + - "\x69F\x3\x2\x2\x2\x69F\x6A2\x3\x2\x2\x2\x6A0\x6A1\a\xDC\x2\x2\x6A1\x6A3" + + "\x69F\x3\x2\x2\x2\x69F\x6A2\x3\x2\x2\x2\x6A0\x6A1\a\xF3\x2\x2\x6A1\x6A3" + "\x5\x106\x84\x2\x6A2\x6A0\x3\x2\x2\x2\x6A2\x6A3\x3\x2\x2\x2\x6A3\x6A4" + "\x3\x2\x2\x2\x6A4\x6A5\x5\x126\x94\x2\x6A5\xC3\x3\x2\x2\x2\x6A6\x6A7\a" + - "\xAF\x2\x2\x6A7\x6A8\a\xDC\x2\x2\x6A8\x6AD\x5\xCA\x66\x2\x6A9\x6AA\a\xDC" + - "\x2\x2\x6AA\x6AB\aY\x2\x2\x6AB\x6AC\a\xDC\x2\x2\x6AC\x6AE\x5\x118\x8D" + + "\xAF\x2\x2\x6A7\x6A8\a\xF3\x2\x2\x6A8\x6AD\x5\xCA\x66\x2\x6A9\x6AA\a\xF3" + + "\x2\x2\x6AA\x6AB\aY\x2\x2\x6AB\x6AC\a\xF3\x2\x2\x6AC\x6AE\x5\x118\x8D" + "\x2\x6AD\x6A9\x3\x2\x2\x2\x6AD\x6AE\x3\x2\x2\x2\x6AE\xC5\x3\x2\x2\x2\x6AF" + - "\x6B0\a\xB0\x2\x2\x6B0\x6B1\a\xDC\x2\x2\x6B1\x6B2\x5\xCA\x66\x2\x6B2\xC7" + - "\x3\x2\x2\x2\x6B3\x6B4\a\xB1\x2\x2\x6B4\x6B5\a\xDC\x2\x2\x6B5\x6C4\x5" + - "\xDAn\x2\x6B6\x6B8\a\xDC\x2\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2" + - "\x2\x6B8\x6B9\x3\x2\x2\x2\x6B9\x6BB\a\t\x2\x2\x6BA\x6BC\a\xDC\x2\x2\x6BB" + + "\x6B0\a\xB0\x2\x2\x6B0\x6B1\a\xF3\x2\x2\x6B1\x6B2\x5\xCA\x66\x2\x6B2\xC7" + + "\x3\x2\x2\x2\x6B3\x6B4\a\xB1\x2\x2\x6B4\x6B5\a\xF3\x2\x2\x6B5\x6C4\x5" + + "\xDAn\x2\x6B6\x6B8\a\xF3\x2\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2" + + "\x2\x6B8\x6B9\x3\x2\x2\x2\x6B9\x6BB\a\t\x2\x2\x6BA\x6BC\a\xF3\x2\x2\x6BB" + "\x6BA\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6C2" + - "\x5\xCA\x66\x2\x6BE\x6BF\a\xDC\x2\x2\x6BF\x6C0\a\xAC\x2\x2\x6C0\x6C1\a" + - "\xDC\x2\x2\x6C1\x6C3\x5\xCA\x66\x2\x6C2\x6BE\x3\x2\x2\x2\x6C2\x6C3\x3" + + "\x5\xCA\x66\x2\x6BE\x6BF\a\xF3\x2\x2\x6BF\x6C0\a\xAC\x2\x2\x6C0\x6C1\a" + + "\xF3\x2\x2\x6C1\x6C3\x5\xCA\x66\x2\x6C2\x6BE\x3\x2\x2\x2\x6C2\x6C3\x3" + "\x2\x2\x2\x6C3\x6C5\x3\x2\x2\x2\x6C4\x6B7\x3\x2\x2\x2\x6C4\x6C5\x3\x2" + "\x2\x2\x6C5\xC9\x3\x2\x2\x2\x6C6\x6C7\b\x66\x1\x2\x6C7\x6C9\at\x2\x2\x6C8" + - "\x6CA\a\xDC\x2\x2\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA\x6CB" + + "\x6CA\a\xF3\x2\x2\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA\x6CB" + "\x3\x2\x2\x2\x6CB\x6FE\x5\xCA\x66\x15\x6CC\x6CE\a\f\x2\x2\x6CD\x6CF\a" + - "\xDC\x2\x2\x6CE\x6CD\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2" + - "\x2\x2\x6D0\x6FE\x5\xCA\x66\x12\x6D1\x6D3\x5\xE8u\x2\x6D2\x6D4\a\xDC\x2" + + "\xF3\x2\x2\x6CE\x6CD\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2" + + "\x2\x2\x6D0\x6FE\x5\xCA\x66\x12\x6D1\x6D3\x5\xE8u\x2\x6D2\x6D4\a\xF3\x2" + "\x2\x6D3\x6D2\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2\x6D4\x6D5\x3\x2\x2\x2" + - "\x6D5\x6D7\a\xBD\x2\x2\x6D6\x6D8\a\xDC\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7" + + "\x6D5\x6D7\a\xBD\x2\x2\x6D6\x6D8\a\xF3\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7" + "\x6D8\x3\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9\x6DA\x5\xCA\x66\x11\x6DA" + - "\x6FE\x3\x2\x2\x2\x6DB\x6DD\a\xC6\x2\x2\x6DC\x6DE\a\xDC\x2\x2\x6DD\x6DC" + + "\x6FE\x3\x2\x2\x2\x6DB\x6DD\a\xC6\x2\x2\x6DC\x6DE\a\xF3\x2\x2\x6DD\x6DC" + "\x3\x2\x2\x2\x6DD\x6DE\x3\x2\x2\x2\x6DE\x6DF\x3\x2\x2\x2\x6DF\x6FE\x5" + - "\xCA\x66\xF\x6E0\x6E2\au\x2\x2\x6E1\x6E3\a\xDC\x2\x2\x6E2\x6E1\x3\x2\x2" + + "\xCA\x66\xF\x6E0\x6E2\au\x2\x2\x6E1\x6E3\a\xF3\x2\x2\x6E2\x6E1\x3\x2\x2" + "\x2\x6E2\x6E3\x3\x2\x2\x2\x6E3\x6E4\x3\x2\x2\x2\x6E4\x6FE\x5\xCA\x66\b" + "\x6E5\x6FE\x5\x116\x8C\x2\x6E6\x6FE\x5\xE8u\x2\x6E7\x6E9\a\xC4\x2\x2\x6E8" + - "\x6EA\a\xDC\x2\x2\x6E9\x6E8\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB" + - "\x3\x2\x2\x2\x6EB\x6F6\x5\xCA\x66\x2\x6EC\x6EE\a\xDC\x2\x2\x6ED\x6EC\x3" + + "\x6EA\a\xF3\x2\x2\x6E9\x6E8\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB" + + "\x3\x2\x2\x2\x6EB\x6F6\x5\xCA\x66\x2\x6EC\x6EE\a\xF3\x2\x2\x6ED\x6EC\x3" + "\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2\x2\x6EF\x6F1\a\t\x2" + - "\x2\x6F0\x6F2\a\xDC\x2\x2\x6F1\x6F0\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2\x2" + + "\x2\x6F0\x6F2\a\xF3\x2\x2\x6F1\x6F0\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2\x2" + "\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F5\x5\xCA\x66\x2\x6F4\x6ED\x3\x2\x2\x2\x6F5" + "\x6F8\x3\x2\x2\x2\x6F6\x6F4\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F9" + "\x3\x2\x2\x2\x6F8\x6F6\x3\x2\x2\x2\x6F9\x6FA\a\xCB\x2\x2\x6FA\x6FE\x3" + @@ -18660,47 +18665,47 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x2\x6FD\x6CC\x3\x2\x2\x2\x6FD\x6D1\x3\x2\x2\x2\x6FD\x6DB\x3\x2\x2\x2" + "\x6FD\x6E0\x3\x2\x2\x2\x6FD\x6E5\x3\x2\x2\x2\x6FD\x6E6\x3\x2\x2\x2\x6FD" + "\x6E7\x3\x2\x2\x2\x6FD\x6FB\x3\x2\x2\x2\x6FD\x6FC\x3\x2\x2\x2\x6FE\x76D" + - "\x3\x2\x2\x2\x6FF\x701\f\x10\x2\x2\x700\x702\a\xDC\x2\x2\x701\x700\x3" + + "\x3\x2\x2\x2\x6FF\x701\f\x10\x2\x2\x700\x702\a\xF3\x2\x2\x701\x700\x3" + "\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x703\x3\x2\x2\x2\x703\x705\a\xCA" + - "\x2\x2\x704\x706\a\xDC\x2\x2\x705\x704\x3\x2\x2\x2\x705\x706\x3\x2\x2" + + "\x2\x2\x704\x706\a\xF3\x2\x2\x705\x704\x3\x2\x2\x2\x705\x706\x3\x2\x2" + "\x2\x706\x707\x3\x2\x2\x2\x707\x76C\x5\xCA\x66\x11\x708\x70A\f\xE\x2\x2" + - "\x709\x70B\a\xDC\x2\x2\x70A\x709\x3\x2\x2\x2\x70A\x70B\x3\x2\x2\x2\x70B" + - "\x70C\x3\x2\x2\x2\x70C\x70E\t\f\x2\x2\x70D\x70F\a\xDC\x2\x2\x70E\x70D" + + "\x709\x70B\a\xF3\x2\x2\x70A\x709\x3\x2\x2\x2\x70A\x70B\x3\x2\x2\x2\x70B" + + "\x70C\x3\x2\x2\x2\x70C\x70E\t\f\x2\x2\x70D\x70F\a\xF3\x2\x2\x70E\x70D" + "\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x710\x3\x2\x2\x2\x710\x76C\x5" + - "\xCA\x66\xF\x711\x713\f\r\x2\x2\x712\x714\a\xDC\x2\x2\x713\x712\x3\x2" + + "\xCA\x66\xF\x711\x713\f\r\x2\x2\x712\x714\a\xF3\x2\x2\x713\x712\x3\x2" + "\x2\x2\x713\x714\x3\x2\x2\x2\x714\x715\x3\x2\x2\x2\x715\x717\a\xBF\x2" + - "\x2\x716\x718\a\xDC\x2\x2\x717\x716\x3\x2\x2\x2\x717\x718\x3\x2\x2\x2" + + "\x2\x716\x718\a\xF3\x2\x2\x717\x716\x3\x2\x2\x2\x717\x718\x3\x2\x2\x2" + "\x718\x719\x3\x2\x2\x2\x719\x76C\x5\xCA\x66\xE\x71A\x71C\f\f\x2\x2\x71B" + - "\x71D\a\xDC\x2\x2\x71C\x71B\x3\x2\x2\x2\x71C\x71D\x3\x2\x2\x2\x71D\x71E" + - "\x3\x2\x2\x2\x71E\x720\aq\x2\x2\x71F\x721\a\xDC\x2\x2\x720\x71F\x3\x2" + + "\x71D\a\xF3\x2\x2\x71C\x71B\x3\x2\x2\x2\x71C\x71D\x3\x2\x2\x2\x71D\x71E" + + "\x3\x2\x2\x2\x71E\x720\aq\x2\x2\x71F\x721\a\xF3\x2\x2\x720\x71F\x3\x2" + "\x2\x2\x720\x721\x3\x2\x2\x2\x721\x722\x3\x2\x2\x2\x722\x76C\x5\xCA\x66" + - "\r\x723\x725\f\v\x2\x2\x724\x726\a\xDC\x2\x2\x725\x724\x3\x2\x2\x2\x725" + + "\r\x723\x725\f\v\x2\x2\x724\x726\a\xF3\x2\x2\x725\x724\x3\x2\x2\x2\x725" + "\x726\x3\x2\x2\x2\x726\x727\x3\x2\x2\x2\x727\x729\t\r\x2\x2\x728\x72A" + - "\a\xDC\x2\x2\x729\x728\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A\x72B\x3" + - "\x2\x2\x2\x72B\x76C\x5\xCA\x66\f\x72C\x72E\f\n\x2\x2\x72D\x72F\a\xDC\x2" + + "\a\xF3\x2\x2\x729\x728\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A\x72B\x3" + + "\x2\x2\x2\x72B\x76C\x5\xCA\x66\f\x72C\x72E\f\n\x2\x2\x72D\x72F\a\xF3\x2" + "\x2\x72E\x72D\x3\x2\x2\x2\x72E\x72F\x3\x2\x2\x2\x72F\x730\x3\x2\x2\x2" + - "\x730\x732\a\xBC\x2\x2\x731\x733\a\xDC\x2\x2\x732\x731\x3\x2\x2\x2\x732" + + "\x730\x732\a\xBC\x2\x2\x731\x733\a\xF3\x2\x2\x732\x731\x3\x2\x2\x2\x732" + "\x733\x3\x2\x2\x2\x733\x734\x3\x2\x2\x2\x734\x76C\x5\xCA\x66\v\x735\x737" + - "\f\t\x2\x2\x736\x738\a\xDC\x2\x2\x737\x736\x3\x2\x2\x2\x737\x738\x3\x2" + - "\x2\x2\x738\x739\x3\x2\x2\x2\x739\x73B\t\xE\x2\x2\x73A\x73C\a\xDC\x2\x2" + + "\f\t\x2\x2\x736\x738\a\xF3\x2\x2\x737\x736\x3\x2\x2\x2\x737\x738\x3\x2" + + "\x2\x2\x738\x739\x3\x2\x2\x2\x739\x73B\t\xE\x2\x2\x73A\x73C\a\xF3\x2\x2" + "\x73B\x73A\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C\x73D\x3\x2\x2\x2\x73D" + - "\x76C\x5\xCA\x66\n\x73E\x740\f\a\x2\x2\x73F\x741\a\xDC\x2\x2\x740\x73F" + + "\x76C\x5\xCA\x66\n\x73E\x740\f\a\x2\x2\x73F\x741\a\xF3\x2\x2\x740\x73F" + "\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x742\x3\x2\x2\x2\x742\x744\a\xE" + - "\x2\x2\x743\x745\a\xDC\x2\x2\x744\x743\x3\x2\x2\x2\x744\x745\x3\x2\x2" + + "\x2\x2\x743\x745\a\xF3\x2\x2\x744\x743\x3\x2\x2\x2\x744\x745\x3\x2\x2" + "\x2\x745\x746\x3\x2\x2\x2\x746\x76C\x5\xCA\x66\b\x747\x749\f\x6\x2\x2" + - "\x748\x74A\a\xDC\x2\x2\x749\x748\x3\x2\x2\x2\x749\x74A\x3\x2\x2\x2\x74A" + - "\x74B\x3\x2\x2\x2\x74B\x74D\a\x81\x2\x2\x74C\x74E\a\xDC\x2\x2\x74D\x74C" + + "\x748\x74A\a\xF3\x2\x2\x749\x748\x3\x2\x2\x2\x749\x74A\x3\x2\x2\x2\x74A" + + "\x74B\x3\x2\x2\x2\x74B\x74D\a\x81\x2\x2\x74C\x74E\a\xF3\x2\x2\x74D\x74C" + "\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x74F\x3\x2\x2\x2\x74F\x76C\x5" + - "\xCA\x66\a\x750\x752\f\x5\x2\x2\x751\x753\a\xDC\x2\x2\x752\x751\x3\x2" + + "\xCA\x66\a\x750\x752\f\x5\x2\x2\x751\x753\a\xF3\x2\x2\x752\x751\x3\x2" + "\x2\x2\x752\x753\x3\x2\x2\x2\x753\x754\x3\x2\x2\x2\x754\x756\a\xBB\x2" + - "\x2\x755\x757\a\xDC\x2\x2\x756\x755\x3\x2\x2\x2\x756\x757\x3\x2\x2\x2" + + "\x2\x755\x757\a\xF3\x2\x2\x756\x755\x3\x2\x2\x2\x756\x757\x3\x2\x2\x2" + "\x757\x758\x3\x2\x2\x2\x758\x76C\x5\xCA\x66\x6\x759\x75B\f\x4\x2\x2\x75A" + - "\x75C\a\xDC\x2\x2\x75B\x75A\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D" + - "\x3\x2\x2\x2\x75D\x75F\a\x42\x2\x2\x75E\x760\a\xDC\x2\x2\x75F\x75E\x3" + + "\x75C\a\xF3\x2\x2\x75B\x75A\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D" + + "\x3\x2\x2\x2\x75D\x75F\a\x42\x2\x2\x75E\x760\a\xF3\x2\x2\x75F\x75E\x3" + "\x2\x2\x2\x75F\x760\x3\x2\x2\x2\x760\x761\x3\x2\x2\x2\x761\x76C\x5\xCA" + - "\x66\x5\x762\x764\f\x3\x2\x2\x763\x765\a\xDC\x2\x2\x764\x763\x3\x2\x2" + + "\x66\x5\x762\x764\f\x3\x2\x2\x763\x765\a\xF3\x2\x2\x764\x763\x3\x2\x2" + "\x2\x764\x765\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766\x768\aU\x2\x2\x767" + - "\x769\a\xDC\x2\x2\x768\x767\x3\x2\x2\x2\x768\x769\x3\x2\x2\x2\x769\x76A" + + "\x769\a\xF3\x2\x2\x768\x767\x3\x2\x2\x2\x768\x769\x3\x2\x2\x2\x769\x76A" + "\x3\x2\x2\x2\x76A\x76C\x5\xCA\x66\x4\x76B\x6FF\x3\x2\x2\x2\x76B\x708\x3" + "\x2\x2\x2\x76B\x711\x3\x2\x2\x2\x76B\x71A\x3\x2\x2\x2\x76B\x723\x3\x2" + "\x2\x2\x76B\x72C\x3\x2\x2\x2\x76B\x735\x3\x2\x2\x2\x76B\x73E\x3\x2\x2" + @@ -18709,69 +18714,69 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x76E\x3\x2\x2\x2\x76E\xCB\x3\x2\x2\x2\x76F\x76D\x3\x2\x2\x2\x770\x774" + "\a\x32\x2\x2\x771\x774\a\xA3\x2\x2\x772\x774\x5\x11C\x8F\x2\x773\x770" + "\x3\x2\x2\x2\x773\x771\x3\x2\x2\x2\x773\x772\x3\x2\x2\x2\x774\x775\x3" + - "\x2\x2\x2\x775\x778\a\xDC\x2\x2\x776\x777\a\xB9\x2\x2\x777\x779\a\xDC" + + "\x2\x2\x2\x775\x778\a\xF3\x2\x2\x776\x777\a\xB9\x2\x2\x777\x779\a\xF3" + "\x2\x2\x778\x776\x3\x2\x2\x2\x778\x779\x3\x2\x2\x2\x779\x77A\x3\x2\x2" + "\x2\x77A\x77B\x5\xCEh\x2\x77B\xCD\x3\x2\x2\x2\x77C\x787\x5\xD0i\x2\x77D" + - "\x77F\a\xDC\x2\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F\x3\x2\x2\x2\x77F\x780" + - "\x3\x2\x2\x2\x780\x782\a\t\x2\x2\x781\x783\a\xDC\x2\x2\x782\x781\x3\x2" + + "\x77F\a\xF3\x2\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F\x3\x2\x2\x2\x77F\x780" + + "\x3\x2\x2\x2\x780\x782\a\t\x2\x2\x781\x783\a\xF3\x2\x2\x782\x781\x3\x2" + "\x2\x2\x782\x783\x3\x2\x2\x2\x783\x784\x3\x2\x2\x2\x784\x786\x5\xD0i\x2" + "\x785\x77E\x3\x2\x2\x2\x786\x789\x3\x2\x2\x2\x787\x785\x3\x2\x2\x2\x787" + "\x788\x3\x2\x2\x2\x788\xCF\x3\x2\x2\x2\x789\x787\x3\x2\x2\x2\x78A\x79C" + - "\x5\x104\x83\x2\x78B\x78D\a\xDC\x2\x2\x78C\x78B\x3\x2\x2\x2\x78C\x78D" + - "\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x790\a\xC4\x2\x2\x78F\x791\a\xDC" + + "\x5\x104\x83\x2\x78B\x78D\a\xF3\x2\x2\x78C\x78B\x3\x2\x2\x2\x78C\x78D" + + "\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x790\a\xC4\x2\x2\x78F\x791\a\xF3" + "\x2\x2\x790\x78F\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x796\x3\x2\x2" + - "\x2\x792\x794\x5\x100\x81\x2\x793\x795\a\xDC\x2\x2\x794\x793\x3\x2\x2" + + "\x2\x792\x794\x5\x100\x81\x2\x793\x795\a\xF3\x2\x2\x794\x793\x3\x2\x2" + "\x2\x794\x795\x3\x2\x2\x2\x795\x797\x3\x2\x2\x2\x796\x792\x3\x2\x2\x2" + "\x796\x797\x3\x2\x2\x2\x797\x798\x3\x2\x2\x2\x798\x79A\a\xCB\x2\x2\x799" + - "\x79B\a\xDC\x2\x2\x79A\x799\x3\x2\x2\x2\x79A\x79B\x3\x2\x2\x2\x79B\x79D" + + "\x79B\a\xF3\x2\x2\x79A\x799\x3\x2\x2\x2\x79A\x79B\x3\x2\x2\x2\x79B\x79D" + "\x3\x2\x2\x2\x79C\x78C\x3\x2\x2\x2\x79C\x79D\x3\x2\x2\x2\x79D\x79F\x3" + "\x2\x2\x2\x79E\x7A0\x5\x11A\x8E\x2\x79F\x79E\x3\x2\x2\x2\x79F\x7A0\x3" + - "\x2\x2\x2\x7A0\x7A3\x3\x2\x2\x2\x7A1\x7A2\a\xDC\x2\x2\x7A2\x7A4\x5\x106" + + "\x2\x2\x2\x7A0\x7A3\x3\x2\x2\x2\x7A1\x7A2\a\xF3\x2\x2\x7A2\x7A4\x5\x106" + "\x84\x2\x7A3\x7A1\x3\x2\x2\x2\x7A3\x7A4\x3\x2\x2\x2\x7A4\xD1\x3\x2\x2" + - "\x2\x7A5\x7A6\a\xB6\x2\x2\x7A6\x7A7\a\xDC\x2\x2\x7A7\x7A8\x5\xCA\x66\x2" + + "\x2\x7A5\x7A6\a\xB6\x2\x2\x7A6\x7A7\a\xF3\x2\x2\x7A7\x7A8\x5\xCA\x66\x2" + "\x7A8\x7AA\x5\x126\x94\x2\x7A9\x7AB\x5\x1C\xF\x2\x7AA\x7A9\x3\x2\x2\x2" + "\x7AA\x7AB\x3\x2\x2\x2\x7AB\x7AC\x3\x2\x2\x2\x7AC\x7AD\a\xB5\x2\x2\x7AD" + - "\xD3\x3\x2\x2\x2\x7AE\x7AF\a\xB7\x2\x2\x7AF\x7B0\a\xDC\x2\x2\x7B0\x7B2" + - "\x5\xDAn\x2\x7B1\x7B3\a\xDC\x2\x2\x7B2\x7B1\x3\x2\x2\x2\x7B2\x7B3\x3\x2" + - "\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B6\a\t\x2\x2\x7B5\x7B7\a\xDC\x2\x2" + + "\xD3\x3\x2\x2\x2\x7AE\x7AF\a\xB7\x2\x2\x7AF\x7B0\a\xF3\x2\x2\x7B0\x7B2" + + "\x5\xDAn\x2\x7B1\x7B3\a\xF3\x2\x2\x7B2\x7B1\x3\x2\x2\x2\x7B2\x7B3\x3\x2" + + "\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B6\a\t\x2\x2\x7B5\x7B7\a\xF3\x2\x2" + "\x7B6\x7B5\x3\x2\x2\x2\x7B6\x7B7\x3\x2\x2\x2\x7B7\x7B8\x3\x2\x2\x2\x7B8" + "\x7B9\x5\xCA\x66\x2\x7B9\xD5\x3\x2\x2\x2\x7BA\x7BB\a\xB8\x2\x2\x7BB\x7C0" + - "\a\xDC\x2\x2\x7BC\x7C1\x5\xE8u\x2\x7BD\x7BE\at\x2\x2\x7BE\x7BF\a\xDC\x2" + + "\a\xF3\x2\x2\x7BC\x7C1\x5\xE8u\x2\x7BD\x7BE\at\x2\x2\x7BE\x7BF\a\xF3\x2" + "\x2\x7BF\x7C1\x5\x118\x8D\x2\x7C0\x7BC\x3\x2\x2\x2\x7C0\x7BD\x3\x2\x2" + "\x2\x7C1\x7C2\x3\x2\x2\x2\x7C2\x7C4\x5\x126\x94\x2\x7C3\x7C5\x5\x1C\xF" + "\x2\x7C4\x7C3\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2\x2\x7C5\x7C6\x3\x2\x2\x2" + "\x7C6\x7C7\a?\x2\x2\x7C7\xD7\x3\x2\x2\x2\x7C8\x7C9\a\xBA\x2\x2\x7C9\x7CA" + - "\a\xDC\x2\x2\x7CA\x7CC\x5\xDAn\x2\x7CB\x7CD\a\xDC\x2\x2\x7CC\x7CB\x3\x2" + + "\a\xF3\x2\x2\x7CA\x7CC\x5\xDAn\x2\x7CB\x7CD\a\xF3\x2\x2\x7CC\x7CB\x3\x2" + "\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\x7CE\x3\x2\x2\x2\x7CE\x7D3\a\t\x2\x2" + - "\x7CF\x7D1\a\xDC\x2\x2\x7D0\x7CF\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1" + + "\x7CF\x7D1\a\xF3\x2\x2\x7D0\x7CF\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1" + "\x7D2\x3\x2\x2\x2\x7D2\x7D4\x5\x86\x44\x2\x7D3\x7D0\x3\x2\x2\x2\x7D3\x7D4" + "\x3\x2\x2\x2\x7D4\xD9\x3\x2\x2\x2\x7D5\x7D7\a\x5\x2\x2\x7D6\x7D5\x3\x2" + "\x2\x2\x7D6\x7D7\x3\x2\x2\x2\x7D7\x7D8\x3\x2\x2\x2\x7D8\x7D9\x5\xCA\x66" + "\x2\x7D9\xDB\x3\x2\x2\x2\x7DA\x7DD\x5\xDEp\x2\x7DB\x7DD\x5\xE0q\x2\x7DC" + "\x7DA\x3\x2\x2\x2\x7DC\x7DB\x3\x2\x2\x2\x7DD\xDD\x3\x2\x2\x2\x7DE\x7DF" + - "\a\x1A\x2\x2\x7DF\x7E0\a\xDC\x2\x2\x7E0\x7E2\x5\x104\x83\x2\x7E1\x7E3" + + "\a\x1A\x2\x2\x7DF\x7E0\a\xF3\x2\x2\x7E0\x7E2\x5\x104\x83\x2\x7E1\x7E3" + "\x5\x11A\x8E\x2\x7E2\x7E1\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7F1" + - "\x3\x2\x2\x2\x7E4\x7E6\a\xDC\x2\x2\x7E5\x7E4\x3\x2\x2\x2\x7E5\x7E6\x3" + - "\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x7E9\a\xC4\x2\x2\x7E8\x7EA\a\xDC" + + "\x3\x2\x2\x2\x7E4\x7E6\a\xF3\x2\x2\x7E5\x7E4\x3\x2\x2\x2\x7E5\x7E6\x3" + + "\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x7E9\a\xC4\x2\x2\x7E8\x7EA\a\xF3" + "\x2\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2" + - "\x2\x7EB\x7ED\x5\xF4{\x2\x7EC\x7EE\a\xDC\x2\x2\x7ED\x7EC\x3\x2\x2\x2\x7ED" + + "\x2\x7EB\x7ED\x5\xF4{\x2\x7EC\x7EE\a\xF3\x2\x2\x7ED\x7EC\x3\x2\x2\x2\x7ED" + "\x7EE\x3\x2\x2\x2\x7EE\x7EF\x3\x2\x2\x2\x7EF\x7F0\a\xCB\x2\x2\x7F0\x7F2" + "\x3\x2\x2\x2\x7F1\x7E5\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7FC\x3" + - "\x2\x2\x2\x7F3\x7F5\a\xDC\x2\x2\x7F4\x7F3\x3\x2\x2\x2\x7F4\x7F5\x3\x2" + + "\x2\x2\x2\x7F3\x7F5\a\xF3\x2\x2\x7F4\x7F3\x3\x2\x2\x2\x7F4\x7F5\x3\x2" + "\x2\x2\x7F5\x7F6\x3\x2\x2\x2\x7F6\x7F7\a\xC4\x2\x2\x7F7\x7F8\x5\x100\x81" + "\x2\x7F8\x7F9\a\xCB\x2\x2\x7F9\x7FB\x3\x2\x2\x2\x7FA\x7F4\x3\x2\x2\x2" + "\x7FB\x7FE\x3\x2\x2\x2\x7FC\x7FA\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD" + "\xDF\x3\x2\x2\x2\x7FE\x7FC\x3\x2\x2\x2\x7FF\x800\a\x1A\x2\x2\x800\x802" + - "\a\xDC\x2\x2\x801\x803\x5\xE8u\x2\x802\x801\x3\x2\x2\x2\x802\x803\x3\x2" + + "\a\xF3\x2\x2\x801\x803\x5\xE8u\x2\x802\x801\x3\x2\x2\x2\x802\x803\x3\x2" + "\x2\x2\x803\x804\x3\x2\x2\x2\x804\x805\a\n\x2\x2\x805\x807\x5\x104\x83" + "\x2\x806\x808\x5\x11A\x8E\x2\x807\x806\x3\x2\x2\x2\x807\x808\x3\x2\x2" + - "\x2\x808\x816\x3\x2\x2\x2\x809\x80B\a\xDC\x2\x2\x80A\x809\x3\x2\x2\x2" + + "\x2\x808\x816\x3\x2\x2\x2\x809\x80B\a\xF3\x2\x2\x80A\x809\x3\x2\x2\x2" + "\x80A\x80B\x3\x2\x2\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80E\a\xC4\x2\x2\x80D" + - "\x80F\a\xDC\x2\x2\x80E\x80D\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x810" + - "\x3\x2\x2\x2\x810\x812\x5\xF4{\x2\x811\x813\a\xDC\x2\x2\x812\x811\x3\x2" + + "\x80F\a\xF3\x2\x2\x80E\x80D\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x810" + + "\x3\x2\x2\x2\x810\x812\x5\xF4{\x2\x811\x813\a\xF3\x2\x2\x812\x811\x3\x2" + "\x2\x2\x812\x813\x3\x2\x2\x2\x813\x814\x3\x2\x2\x2\x814\x815\a\xCB\x2" + "\x2\x815\x817\x3\x2\x2\x2\x816\x80A\x3\x2\x2\x2\x816\x817\x3\x2\x2\x2" + - "\x817\x821\x3\x2\x2\x2\x818\x81A\a\xDC\x2\x2\x819\x818\x3\x2\x2\x2\x819" + + "\x817\x821\x3\x2\x2\x2\x818\x81A\a\xF3\x2\x2\x819\x818\x3\x2\x2\x2\x819" + "\x81A\x3\x2\x2\x2\x81A\x81B\x3\x2\x2\x2\x81B\x81C\a\xC4\x2\x2\x81C\x81D" + "\x5\x100\x81\x2\x81D\x81E\a\xCB\x2\x2\x81E\x820\x3\x2\x2\x2\x81F\x819" + "\x3\x2\x2\x2\x820\x823\x3\x2\x2\x2\x821\x81F\x3\x2\x2\x2\x821\x822\x3" + @@ -18780,17 +18785,17 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x827\xE3\x3\x2\x2\x2\x828\x82A\x5\xE8u\x2\x829\x828\x3\x2\x2\x2\x829" + "\x82A\x3\x2\x2\x2\x82A\x82B\x3\x2\x2\x2\x82B\x82C\a\n\x2\x2\x82C\x82E" + "\x5\x104\x83\x2\x82D\x82F\x5\x11A\x8E\x2\x82E\x82D\x3\x2\x2\x2\x82E\x82F" + - "\x3\x2\x2\x2\x82F\x832\x3\x2\x2\x2\x830\x831\a\xDC\x2\x2\x831\x833\x5" + + "\x3\x2\x2\x2\x82F\x832\x3\x2\x2\x2\x830\x831\a\xF3\x2\x2\x831\x833\x5" + "\xF4{\x2\x832\x830\x3\x2\x2\x2\x832\x833\x3\x2\x2\x2\x833\x838\x3\x2\x2" + - "\x2\x834\x836\a\xDC\x2\x2\x835\x834\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2" + + "\x2\x834\x836\a\xF3\x2\x2\x835\x834\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2" + "\x836\x837\x3\x2\x2\x2\x837\x839\x5\xF8}\x2\x838\x835\x3\x2\x2\x2\x838" + - "\x839\x3\x2\x2\x2\x839\x843\x3\x2\x2\x2\x83A\x83C\a\xDC\x2\x2\x83B\x83A" + + "\x839\x3\x2\x2\x2\x839\x843\x3\x2\x2\x2\x83A\x83C\a\xF3\x2\x2\x83B\x83A" + "\x3\x2\x2\x2\x83B\x83C\x3\x2\x2\x2\x83C\x83D\x3\x2\x2\x2\x83D\x83E\a\xC4" + "\x2\x2\x83E\x83F\x5\x100\x81\x2\x83F\x840\a\xCB\x2\x2\x840\x842\x3\x2" + "\x2\x2\x841\x83B\x3\x2\x2\x2\x842\x845\x3\x2\x2\x2\x843\x841\x3\x2\x2" + "\x2\x843\x844\x3\x2\x2\x2\x844\xE5\x3\x2\x2\x2\x845\x843\x3\x2\x2\x2\x846" + - "\x849\x5\x10A\x86\x2\x847\x848\a\xDC\x2\x2\x848\x84A\x5\xF4{\x2\x849\x847" + - "\x3\x2\x2\x2\x849\x84A\x3\x2\x2\x2\x84A\x854\x3\x2\x2\x2\x84B\x84D\a\xDC" + + "\x849\x5\x10A\x86\x2\x847\x848\a\xF3\x2\x2\x848\x84A\x5\xF4{\x2\x849\x847" + + "\x3\x2\x2\x2\x849\x84A\x3\x2\x2\x2\x84A\x854\x3\x2\x2\x2\x84B\x84D\a\xF3" + "\x2\x2\x84C\x84B\x3\x2\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84E\x3\x2\x2" + "\x2\x84E\x84F\a\xC4\x2\x2\x84F\x850\x5\x100\x81\x2\x850\x851\a\xCB\x2" + "\x2\x851\x853\x3\x2\x2\x2\x852\x84C\x3\x2\x2\x2\x853\x856\x3\x2\x2\x2" + @@ -18799,147 +18804,147 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) "\x5\xECw\x2\x85A\x85C\x5\xF2z\x2\x85B\x857\x3\x2\x2\x2\x85B\x858\x3\x2" + "\x2\x2\x85B\x859\x3\x2\x2\x2\x85B\x85A\x3\x2\x2\x2\x85C\xE9\x3\x2\x2\x2" + "\x85D\x85F\x5\x104\x83\x2\x85E\x860\x5\x11A\x8E\x2\x85F\x85E\x3\x2\x2" + - "\x2\x85F\x860\x3\x2\x2\x2\x860\x865\x3\x2\x2\x2\x861\x863\a\xDC\x2\x2" + + "\x2\x85F\x860\x3\x2\x2\x2\x860\x865\x3\x2\x2\x2\x861\x863\a\xF3\x2\x2" + "\x862\x861\x3\x2\x2\x2\x862\x863\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864" + "\x866\x5\xF8}\x2\x865\x862\x3\x2\x2\x2\x865\x866\x3\x2\x2\x2\x866\x870" + - "\x3\x2\x2\x2\x867\x869\a\xDC\x2\x2\x868\x867\x3\x2\x2\x2\x868\x869\x3" + + "\x3\x2\x2\x2\x867\x869\a\xF3\x2\x2\x868\x867\x3\x2\x2\x2\x868\x869\x3" + "\x2\x2\x2\x869\x86A\x3\x2\x2\x2\x86A\x86B\a\xC4\x2\x2\x86B\x86C\x5\x100" + "\x81\x2\x86C\x86D\a\xCB\x2\x2\x86D\x86F\x3\x2\x2\x2\x86E\x868\x3\x2\x2" + "\x2\x86F\x872\x3\x2\x2\x2\x870\x86E\x3\x2\x2\x2\x870\x871\x3\x2\x2\x2" + "\x871\xEB\x3\x2\x2\x2\x872\x870\x3\x2\x2\x2\x873\x876\x5\x104\x83\x2\x874" + "\x876\x5\x108\x85\x2\x875\x873\x3\x2\x2\x2\x875\x874\x3\x2\x2\x2\x876" + "\x878\x3\x2\x2\x2\x877\x879\x5\x11A\x8E\x2\x878\x877\x3\x2\x2\x2\x878" + - "\x879\x3\x2\x2\x2\x879\x87B\x3\x2\x2\x2\x87A\x87C\a\xDC\x2\x2\x87B\x87A" + + "\x879\x3\x2\x2\x2\x879\x87B\x3\x2\x2\x2\x87A\x87C\a\xF3\x2\x2\x87B\x87A" + "\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87D\x3\x2\x2\x2\x87D\x87F\a\xC4" + - "\x2\x2\x87E\x880\a\xDC\x2\x2\x87F\x87E\x3\x2\x2\x2\x87F\x880\x3\x2\x2" + - "\x2\x880\x885\x3\x2\x2\x2\x881\x883\x5\xF4{\x2\x882\x884\a\xDC\x2\x2\x883" + + "\x2\x2\x87E\x880\a\xF3\x2\x2\x87F\x87E\x3\x2\x2\x2\x87F\x880\x3\x2\x2" + + "\x2\x880\x885\x3\x2\x2\x2\x881\x883\x5\xF4{\x2\x882\x884\a\xF3\x2\x2\x883" + "\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2\x2\x884\x886\x3\x2\x2\x2\x885\x881" + "\x3\x2\x2\x2\x885\x886\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x88C\a\xCB" + - "\x2\x2\x888\x88A\a\xDC\x2\x2\x889\x888\x3\x2\x2\x2\x889\x88A\x3\x2\x2" + + "\x2\x2\x888\x88A\a\xF3\x2\x2\x889\x888\x3\x2\x2\x2\x889\x88A\x3\x2\x2" + "\x2\x88A\x88B\x3\x2\x2\x2\x88B\x88D\x5\xF8}\x2\x88C\x889\x3\x2\x2\x2\x88C" + - "\x88D\x3\x2\x2\x2\x88D\x897\x3\x2\x2\x2\x88E\x890\a\xDC\x2\x2\x88F\x88E" + + "\x88D\x3\x2\x2\x2\x88D\x897\x3\x2\x2\x2\x88E\x890\a\xF3\x2\x2\x88F\x88E" + "\x3\x2\x2\x2\x88F\x890\x3\x2\x2\x2\x890\x891\x3\x2\x2\x2\x891\x892\a\xC4" + "\x2\x2\x892\x893\x5\x100\x81\x2\x893\x894\a\xCB\x2\x2\x894\x896\x3\x2" + "\x2\x2\x895\x88F\x3\x2\x2\x2\x896\x899\x3\x2\x2\x2\x897\x895\x3\x2\x2" + "\x2\x897\x898\x3\x2\x2\x2\x898\xED\x3\x2\x2\x2\x899\x897\x3\x2\x2\x2\x89A" + "\x89D\x5\xEAv\x2\x89B\x89D\x5\xECw\x2\x89C\x89A\x3\x2\x2\x2\x89C\x89B" + "\x3\x2\x2\x2\x89C\x89D\x3\x2\x2\x2\x89D\x8A2\x3\x2\x2\x2\x89E\x8A0\x5" + - "\xF0y\x2\x89F\x8A1\a\xDC\x2\x2\x8A0\x89F\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2" + + "\xF0y\x2\x89F\x8A1\a\xF3\x2\x2\x8A0\x89F\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2" + "\x2\x8A1\x8A3\x3\x2\x2\x2\x8A2\x89E\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2" + "\x8A4\x8A2\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8AA\x3\x2\x2\x2\x8A6" + - "\x8A8\a\xDC\x2\x2\x8A7\x8A6\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9" + + "\x8A8\a\xF3\x2\x2\x8A7\x8A6\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9" + "\x3\x2\x2\x2\x8A9\x8AB\x5\xF8}\x2\x8AA\x8A7\x3\x2\x2\x2\x8AA\x8AB\x3\x2" + - "\x2\x2\x8AB\x8B5\x3\x2\x2\x2\x8AC\x8AE\a\xDC\x2\x2\x8AD\x8AC\x3\x2\x2" + + "\x2\x2\x8AB\x8B5\x3\x2\x2\x2\x8AC\x8AE\a\xF3\x2\x2\x8AD\x8AC\x3\x2\x2" + "\x2\x8AD\x8AE\x3\x2\x2\x2\x8AE\x8AF\x3\x2\x2\x2\x8AF\x8B0\a\xC4\x2\x2" + "\x8B0\x8B1\x5\x100\x81\x2\x8B1\x8B2\a\xCB\x2\x2\x8B2\x8B4\x3\x2\x2\x2" + "\x8B3\x8AD\x3\x2\x2\x2\x8B4\x8B7\x3\x2\x2\x2\x8B5\x8B3\x3\x2\x2\x2\x8B5" + "\x8B6\x3\x2\x2\x2\x8B6\xEF\x3\x2\x2\x2\x8B7\x8B5\x3\x2\x2\x2\x8B8\x8BA" + - "\t\xF\x2\x2\x8B9\x8BB\a\xDC\x2\x2\x8BA\x8B9\x3\x2\x2\x2\x8BA\x8BB\x3\x2" + + "\t\xF\x2\x2\x8B9\x8BB\a\xF3\x2\x2\x8BA\x8B9\x3\x2\x2\x2\x8BA\x8BB\x3\x2" + "\x2\x2\x8BB\x8BE\x3\x2\x2\x2\x8BC\x8BF\x5\xEAv\x2\x8BD\x8BF\x5\xECw\x2" + "\x8BE\x8BC\x3\x2\x2\x2\x8BE\x8BD\x3\x2\x2\x2\x8BF\xF1\x3\x2\x2\x2\x8C0" + - "\x8C2\a\xDC\x2\x2\x8C1\x8C0\x3\x2\x2\x2\x8C1\x8C2\x3\x2\x2\x2\x8C2\x8C3" + + "\x8C2\a\xF3\x2\x2\x8C1\x8C0\x3\x2\x2\x2\x8C1\x8C2\x3\x2\x2\x2\x8C2\x8C3" + "\x3\x2\x2\x2\x8C3\x8C4\x5\xF8}\x2\x8C4\xF3\x3\x2\x2\x2\x8C5\x8C7\x5\xF6" + "|\x2\x8C6\x8C5\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2\x2\x8C7\x8C9\x3\x2\x2\x2" + - "\x8C8\x8CA\a\xDC\x2\x2\x8C9\x8C8\x3\x2\x2\x2\x8C9\x8CA\x3\x2\x2\x2\x8CA" + - "\x8CB\x3\x2\x2\x2\x8CB\x8CD\t\n\x2\x2\x8CC\x8CE\a\xDC\x2\x2\x8CD\x8CC" + + "\x8C8\x8CA\a\xF3\x2\x2\x8C9\x8C8\x3\x2\x2\x2\x8C9\x8CA\x3\x2\x2\x2\x8CA" + + "\x8CB\x3\x2\x2\x2\x8CB\x8CD\t\n\x2\x2\x8CC\x8CE\a\xF3\x2\x2\x8CD\x8CC" + "\x3\x2\x2\x2\x8CD\x8CE\x3\x2\x2\x2\x8CE\x8D0\x3\x2\x2\x2\x8CF\x8C6\x3" + "\x2\x2\x2\x8D0\x8D3\x3\x2\x2\x2\x8D1\x8CF\x3\x2\x2\x2\x8D1\x8D2\x3\x2" + "\x2\x2\x8D2\x8D4\x3\x2\x2\x2\x8D3\x8D1\x3\x2\x2\x2\x8D4\x8E1\x5\xF6|\x2" + - "\x8D5\x8D7\a\xDC\x2\x2\x8D6\x8D5\x3\x2\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7" + - "\x8D8\x3\x2\x2\x2\x8D8\x8DA\t\n\x2\x2\x8D9\x8DB\a\xDC\x2\x2\x8DA\x8D9" + + "\x8D5\x8D7\a\xF3\x2\x2\x8D6\x8D5\x3\x2\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7" + + "\x8D8\x3\x2\x2\x2\x8D8\x8DA\t\n\x2\x2\x8D9\x8DB\a\xF3\x2\x2\x8DA\x8D9" + "\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8DD\x3\x2\x2\x2\x8DC\x8DE\x5" + "\xF6|\x2\x8DD\x8DC\x3\x2\x2\x2\x8DD\x8DE\x3\x2\x2\x2\x8DE\x8E0\x3\x2\x2" + "\x2\x8DF\x8D6\x3\x2\x2\x2\x8E0\x8E3\x3\x2\x2\x2\x8E1\x8DF\x3\x2\x2\x2" + "\x8E1\x8E2\x3\x2\x2\x2\x8E2\xF5\x3\x2\x2\x2\x8E3\x8E1\x3\x2\x2\x2\x8E4" + "\x8E6\a\xC4\x2\x2\x8E5\x8E4\x3\x2\x2\x2\x8E5\x8E6\x3\x2\x2\x2\x8E6\x8E9" + - "\x3\x2\x2\x2\x8E7\x8E8\t\x10\x2\x2\x8E8\x8EA\a\xDC\x2\x2\x8E9\x8E7\x3" + + "\x3\x2\x2\x2\x8E7\x8E8\t\x10\x2\x2\x8E8\x8EA\a\xF3\x2\x2\x8E9\x8E7\x3" + "\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8EC\x3\x2\x2\x2\x8EB\x8ED\a\xCB" + "\x2\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\x8EE\x3\x2\x2" + "\x2\x8EE\x8EF\x5\xCA\x66\x2\x8EF\xF7\x3\x2\x2\x2\x8F0\x8F2\a\x4\x2\x2" + - "\x8F1\x8F3\a\xDC\x2\x2\x8F2\x8F1\x3\x2\x2\x2\x8F2\x8F3\x3\x2\x2\x2\x8F3" + + "\x8F1\x8F3\a\xF3\x2\x2\x8F2\x8F1\x3\x2\x2\x2\x8F2\x8F3\x3\x2\x2\x2\x8F3" + "\x8F4\x3\x2\x2\x2\x8F4\x8F6\x5\x104\x83\x2\x8F5\x8F7\x5\x11A\x8E\x2\x8F6" + "\x8F5\x3\x2\x2\x2\x8F6\x8F7\x3\x2\x2\x2\x8F7\xF9\x3\x2\x2\x2\x8F8\x90A" + - "\a\xC4\x2\x2\x8F9\x8FB\a\xDC\x2\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3" + - "\x2\x2\x2\x8FB\x8FC\x3\x2\x2\x2\x8FC\x907\x5\xFC\x7F\x2\x8FD\x8FF\a\xDC" + + "\a\xC4\x2\x2\x8F9\x8FB\a\xF3\x2\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3" + + "\x2\x2\x2\x8FB\x8FC\x3\x2\x2\x2\x8FC\x907\x5\xFC\x7F\x2\x8FD\x8FF\a\xF3" + "\x2\x2\x8FE\x8FD\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2\x8FF\x900\x3\x2\x2" + - "\x2\x900\x902\a\t\x2\x2\x901\x903\a\xDC\x2\x2\x902\x901\x3\x2\x2\x2\x902" + + "\x2\x900\x902\a\t\x2\x2\x901\x903\a\xF3\x2\x2\x902\x901\x3\x2\x2\x2\x902" + "\x903\x3\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904\x906\x5\xFC\x7F\x2\x905\x8FE" + "\x3\x2\x2\x2\x906\x909\x3\x2\x2\x2\x907\x905\x3\x2\x2\x2\x907\x908\x3" + "\x2\x2\x2\x908\x90B\x3\x2\x2\x2\x909\x907\x3\x2\x2\x2\x90A\x8FA\x3\x2" + - "\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x90D\x3\x2\x2\x2\x90C\x90E\a\xDC\x2" + + "\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x90D\x3\x2\x2\x2\x90C\x90E\a\xF3\x2" + "\x2\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2" + "\x90F\x910\a\xCB\x2\x2\x910\xFB\x3\x2\x2\x2\x911\x912\a|\x2\x2\x912\x914" + - "\a\xDC\x2\x2\x913\x911\x3\x2\x2\x2\x913\x914\x3\x2\x2\x2\x914\x917\x3" + - "\x2\x2\x2\x915\x916\t\x11\x2\x2\x916\x918\a\xDC\x2\x2\x917\x915\x3\x2" + + "\a\xF3\x2\x2\x913\x911\x3\x2\x2\x2\x913\x914\x3\x2\x2\x2\x914\x917\x3" + + "\x2\x2\x2\x915\x916\t\x11\x2\x2\x916\x918\a\xF3\x2\x2\x917\x915\x3\x2" + "\x2\x2\x917\x918\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2\x919\x91A\a\x83\x2" + - "\x2\x91A\x91C\a\xDC\x2\x2\x91B\x919\x3\x2\x2\x2\x91B\x91C\x3\x2\x2\x2" + + "\x2\x91A\x91C\a\xF3\x2\x2\x91B\x919\x3\x2\x2\x2\x91B\x91C\x3\x2\x2\x2" + "\x91C\x91D\x3\x2\x2\x2\x91D\x91F\x5\x104\x83\x2\x91E\x920\x5\x11A\x8E" + "\x2\x91F\x91E\x3\x2\x2\x2\x91F\x920\x3\x2\x2\x2\x920\x929\x3\x2\x2\x2" + - "\x921\x923\a\xDC\x2\x2\x922\x921\x3\x2\x2\x2\x922\x923\x3\x2\x2\x2\x923" + - "\x924\x3\x2\x2\x2\x924\x926\a\xC4\x2\x2\x925\x927\a\xDC\x2\x2\x926\x925" + + "\x921\x923\a\xF3\x2\x2\x922\x921\x3\x2\x2\x2\x922\x923\x3\x2\x2\x2\x923" + + "\x924\x3\x2\x2\x2\x924\x926\a\xC4\x2\x2\x925\x927\a\xF3\x2\x2\x926\x925" + "\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x928\x3\x2\x2\x2\x928\x92A\a\xCB" + "\x2\x2\x929\x922\x3\x2\x2\x2\x929\x92A\x3\x2\x2\x2\x92A\x92F\x3\x2\x2" + - "\x2\x92B\x92D\a\xDC\x2\x2\x92C\x92B\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2" + + "\x2\x92B\x92D\a\xF3\x2\x2\x92C\x92B\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2" + "\x92D\x92E\x3\x2\x2\x2\x92E\x930\x5\x106\x84\x2\x92F\x92C\x3\x2\x2\x2" + - "\x92F\x930\x3\x2\x2\x2\x930\x935\x3\x2\x2\x2\x931\x933\a\xDC\x2\x2\x932" + + "\x92F\x930\x3\x2\x2\x2\x930\x935\x3\x2\x2\x2\x931\x933\a\xF3\x2\x2\x932" + "\x931\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x934\x3\x2\x2\x2\x934\x936" + "\x5\xFE\x80\x2\x935\x932\x3\x2\x2\x2\x935\x936\x3\x2\x2\x2\x936\xFD\x3" + - "\x2\x2\x2\x937\x939\a\xC0\x2\x2\x938\x93A\a\xDC\x2\x2\x939\x938\x3\x2" + + "\x2\x2\x2\x937\x939\a\xC0\x2\x2\x938\x93A\a\xF3\x2\x2\x939\x938\x3\x2" + "\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x3\x2\x2\x2\x93B\x93C\x5\xCA\x66" + - "\x2\x93C\xFF\x3\x2\x2\x2\x93D\x948\x5\x102\x82\x2\x93E\x940\a\xDC\x2\x2" + + "\x2\x93C\xFF\x3\x2\x2\x2\x93D\x948\x5\x102\x82\x2\x93E\x940\a\xF3\x2\x2" + "\x93F\x93E\x3\x2\x2\x2\x93F\x940\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941" + - "\x943\a\t\x2\x2\x942\x944\a\xDC\x2\x2\x943\x942\x3\x2\x2\x2\x943\x944" + + "\x943\a\t\x2\x2\x942\x944\a\xF3\x2\x2\x943\x942\x3\x2\x2\x2\x943\x944" + "\x3\x2\x2\x2\x944\x945\x3\x2\x2\x2\x945\x947\x5\x102\x82\x2\x946\x93F" + "\x3\x2\x2\x2\x947\x94A\x3\x2\x2\x2\x948\x946\x3\x2\x2\x2\x948\x949\x3" + "\x2\x2\x2\x949\x101\x3\x2\x2\x2\x94A\x948\x3\x2\x2\x2\x94B\x94C\x5\xCA" + - "\x66\x2\x94C\x94D\a\xDC\x2\x2\x94D\x94E\a\xAC\x2\x2\x94E\x94F\a\xDC\x2" + + "\x66\x2\x94C\x94D\a\xF3\x2\x2\x94D\x94E\a\xAC\x2\x2\x94E\x94F\a\xF3\x2" + "\x2\x94F\x951\x3\x2\x2\x2\x950\x94B\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2" + "\x951\x952\x3\x2\x2\x2\x952\x953\x5\xCA\x66\x2\x953\x103\x3\x2\x2\x2\x954" + - "\x957\a\xDD\x2\x2\x955\x957\x5\x11E\x90\x2\x956\x954\x3\x2\x2\x2\x956" + + "\x957\a\xF4\x2\x2\x955\x957\x5\x11E\x90\x2\x956\x954\x3\x2\x2\x2\x956" + "\x955\x3\x2\x2\x2\x957\x958\x3\x2\x2\x2\x958\x956\x3\x2\x2\x2\x958\x959" + - "\x3\x2\x2\x2\x959\x105\x3\x2\x2\x2\x95A\x95C\a\x12\x2\x2\x95B\x95D\a\xDC" + + "\x3\x2\x2\x2\x959\x105\x3\x2\x2\x2\x95A\x95C\a\x12\x2\x2\x95B\x95D\a\xF3" + "\x2\x2\x95C\x95B\x3\x2\x2\x2\x95C\x95D\x3\x2\x2\x2\x95D\x960\x3\x2\x2" + - "\x2\x95E\x95F\at\x2\x2\x95F\x961\a\xDC\x2\x2\x960\x95E\x3\x2\x2\x2\x960" + + "\x2\x95E\x95F\at\x2\x2\x95F\x961\a\xF3\x2\x2\x960\x95E\x3\x2\x2\x2\x960" + "\x961\x3\x2\x2\x2\x961\x962\x3\x2\x2\x2\x962\x967\x5\x118\x8D\x2\x963" + - "\x965\a\xDC\x2\x2\x964\x963\x3\x2\x2\x2\x964\x965\x3\x2\x2\x2\x965\x966" + + "\x965\a\xF3\x2\x2\x964\x963\x3\x2\x2\x2\x964\x965\x3\x2\x2\x2\x965\x966" + "\x3\x2\x2\x2\x966\x968\x5\x110\x89\x2\x967\x964\x3\x2\x2\x2\x967\x968" + "\x3\x2\x2\x2\x968\x107\x3\x2\x2\x2\x969\x96A\t\x12\x2\x2\x96A\x109\x3" + - "\x2\x2\x2\x96B\x970\a\xDD\x2\x2\x96C\x96F\x5\x11E\x90\x2\x96D\x96F\a\xDD" + + "\x2\x2\x2\x96B\x970\a\xF4\x2\x2\x96C\x96F\x5\x11E\x90\x2\x96D\x96F\a\xF4" + "\x2\x2\x96E\x96C\x3\x2\x2\x2\x96E\x96D\x3\x2\x2\x2\x96F\x972\x3\x2\x2" + "\x2\x970\x96E\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x97B\x3\x2\x2\x2" + "\x972\x970\x3\x2\x2\x2\x973\x976\x5\x11E\x90\x2\x974\x977\x5\x11E\x90" + - "\x2\x975\x977\a\xDD\x2\x2\x976\x974\x3\x2\x2\x2\x976\x975\x3\x2\x2\x2" + + "\x2\x975\x977\a\xF4\x2\x2\x976\x974\x3\x2\x2\x2\x976\x975\x3\x2\x2\x2" + "\x977\x978\x3\x2\x2\x2\x978\x976\x3\x2\x2\x2\x978\x979\x3\x2\x2\x2\x979" + "\x97B\x3\x2\x2\x2\x97A\x96B\x3\x2\x2\x2\x97A\x973\x3\x2\x2\x2\x97B\x10B" + "\x3\x2\x2\x2\x97C\x97D\t\xE\x2\x2\x97D\x10D\x3\x2\x2\x2\x97E\x983\x5\x104" + "\x83\x2\x97F\x980\t\xF\x2\x2\x980\x982\x5\x104\x83\x2\x981\x97F\x3\x2" + "\x2\x2\x982\x985\x3\x2\x2\x2\x983\x981\x3\x2\x2\x2\x983\x984\x3\x2\x2" + "\x2\x984\x10F\x3\x2\x2\x2\x985\x983\x3\x2\x2\x2\x986\x988\a\xC7\x2\x2" + - "\x987\x989\a\xDC\x2\x2\x988\x987\x3\x2\x2\x2\x988\x989\x3\x2\x2\x2\x989" + + "\x987\x989\a\xF3\x2\x2\x988\x987\x3\x2\x2\x2\x988\x989\x3\x2\x2\x2\x989" + "\x98C\x3\x2\x2\x2\x98A\x98D\a\xD2\x2\x2\x98B\x98D\x5\x104\x83\x2\x98C" + "\x98A\x3\x2\x2\x2\x98C\x98B\x3\x2\x2\x2\x98D\x111\x3\x2\x2\x2\x98E\x997" + - "\x5\x10A\x86\x2\x98F\x991\a\xDC\x2\x2\x990\x98F\x3\x2\x2\x2\x990\x991" + - "\x3\x2\x2\x2\x991\x992\x3\x2\x2\x2\x992\x994\a\xC6\x2\x2\x993\x995\a\xDC" + + "\x5\x10A\x86\x2\x98F\x991\a\xF3\x2\x2\x990\x98F\x3\x2\x2\x2\x990\x991" + + "\x3\x2\x2\x2\x991\x992\x3\x2\x2\x2\x992\x994\a\xC6\x2\x2\x993\x995\a\xF3" + "\x2\x2\x994\x993\x3\x2\x2\x2\x994\x995\x3\x2\x2\x2\x995\x996\x3\x2\x2" + "\x2\x996\x998\x5\x10A\x86\x2\x997\x990\x3\x2\x2\x2\x997\x998\x3\x2\x2" + - "\x2\x998\x113\x3\x2\x2\x2\x999\x99A\x5\x104\x83\x2\x99A\x99B\a\xDA\x2" + + "\x2\x998\x113\x3\x2\x2\x2\x999\x99A\x5\x104\x83\x2\x99A\x99B\a\xF1\x2" + "\x2\x99B\x115\x3\x2\x2\x2\x99C\x99D\t\x13\x2\x2\x99D\x117\x3\x2\x2\x2" + "\x99E\x9A1\x5\x108\x85\x2\x99F\x9A1\x5\x10E\x88\x2\x9A0\x99E\x3\x2\x2" + - "\x2\x9A0\x99F\x3\x2\x2\x2\x9A1\x9AA\x3\x2\x2\x2\x9A2\x9A4\a\xDC\x2\x2" + + "\x2\x9A0\x99F\x3\x2\x2\x2\x9A1\x9AA\x3\x2\x2\x2\x9A2\x9A4\a\xF3\x2\x2" + "\x9A3\x9A2\x3\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4\x9A5\x3\x2\x2\x2\x9A5" + - "\x9A7\a\xC4\x2\x2\x9A6\x9A8\a\xDC\x2\x2\x9A7\x9A6\x3\x2\x2\x2\x9A7\x9A8" + + "\x9A7\a\xC4\x2\x2\x9A6\x9A8\a\xF3\x2\x2\x9A7\x9A6\x3\x2\x2\x2\x9A7\x9A8" + "\x3\x2\x2\x2\x9A8\x9A9\x3\x2\x2\x2\x9A9\x9AB\a\xCB\x2\x2\x9AA\x9A3\x3" + "\x2\x2\x2\x9AA\x9AB\x3\x2\x2\x2\x9AB\x119\x3\x2\x2\x2\x9AC\x9AD\t\x14" + "\x2\x2\x9AD\x11B\x3\x2\x2\x2\x9AE\x9AF\t\x15\x2\x2\x9AF\x11D\x3\x2\x2" + - "\x2\x9B0\x9B1\t\x16\x2\x2\x9B1\x11F\x3\x2\x2\x2\x9B2\x9B3\a\xD7\x2\x2" + - "\x9B3\x121\x3\x2\x2\x2\x9B4\x9B5\a\xD8\x2\x2\x9B5\x123\x3\x2\x2\x2\x9B6" + - "\x9B8\a\xDC\x2\x2\x9B7\x9B6\x3\x2\x2\x2\x9B7\x9B8\x3\x2\x2\x2\x9B8\x9BC" + - "\x3\x2\x2\x2\x9B9\x9BD\a\xD6\x2\x2\x9BA\x9BD\x5\x122\x92\x2\x9BB\x9BD" + + "\x2\x9B0\x9B1\t\x16\x2\x2\x9B1\x11F\x3\x2\x2\x2\x9B2\x9B3\a\xEE\x2\x2" + + "\x9B3\x121\x3\x2\x2\x2\x9B4\x9B5\a\xEF\x2\x2\x9B5\x123\x3\x2\x2\x2\x9B6" + + "\x9B8\a\xF3\x2\x2\x9B7\x9B6\x3\x2\x2\x2\x9B7\x9B8\x3\x2\x2\x2\x9B8\x9BC" + + "\x3\x2\x2\x2\x9B9\x9BD\a\xED\x2\x2\x9BA\x9BD\x5\x122\x92\x2\x9BB\x9BD" + "\x5\x120\x91\x2\x9BC\x9B9\x3\x2\x2\x2\x9BC\x9BA\x3\x2\x2\x2\x9BC\x9BB" + - "\x3\x2\x2\x2\x9BD\x9BF\x3\x2\x2\x2\x9BE\x9C0\a\xDC\x2\x2\x9BF\x9BE\x3" + + "\x3\x2\x2\x2\x9BD\x9BF\x3\x2\x2\x2\x9BE\x9C0\a\xF3\x2\x2\x9BF\x9BE\x3" + "\x2\x2\x2\x9BF\x9C0\x3\x2\x2\x2\x9C0\x125\x3\x2\x2\x2\x9C1\x9CA\x5\x124" + - "\x93\x2\x9C2\x9C4\a\xDC\x2\x2\x9C3\x9C2\x3\x2\x2\x2\x9C3\x9C4\x3\x2\x2" + - "\x2\x9C4\x9C5\x3\x2\x2\x2\x9C5\x9C7\a\xDA\x2\x2\x9C6\x9C8\a\xDC\x2\x2" + + "\x93\x2\x9C2\x9C4\a\xF3\x2\x2\x9C3\x9C2\x3\x2\x2\x2\x9C3\x9C4\x3\x2\x2" + + "\x2\x9C4\x9C5\x3\x2\x2\x2\x9C5\x9C7\a\xF1\x2\x2\x9C6\x9C8\a\xF3\x2\x2" + "\x9C7\x9C6\x3\x2\x2\x2\x9C7\x9C8\x3\x2\x2\x2\x9C8\x9CA\x3\x2\x2\x2\x9C9" + "\x9C1\x3\x2\x2\x2\x9C9\x9C3\x3\x2\x2\x2\x9CA\x9CD\x3\x2\x2\x2\x9CB\x9C9" + "\x3\x2\x2\x2\x9CB\x9CC\x3\x2\x2\x2\x9CC\x127\x3\x2\x2\x2\x9CD\x9CB\x3" + diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 index 874504ab85..8749cfcbd5 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 @@ -74,12 +74,35 @@ fragment DATEVALUE : DATEVALUEPART DATESEPARATOR DATEVALUEPART (DATESEPARATOR DA fragment DATEVALUEPART : DIGIT+ | MONTHNAME; fragment DATESEPARATOR : WS? [/,-]? WS?; fragment MONTHNAME : ENGLISHMONTHNAME | ENGLISHMONTHABBREVIATION; -fragment ENGLISHMONTHNAME : J A N U A R Y | F E B R U A R Y | M A R C H | A P R I L | M A Y | J U N E | A U G U S T | S E P T E M B E R | O C T O B E R | N O V E M B E R | D E C E M B E R; -fragment ENGLISHMONTHABBREVIATION : J A N | F E B | M A R | A P R | J U N | J U L | A U G | S E P | O C T | N O V | D E C; +fragment ENGLISHMONTHNAME : JANUARY | FEBRUARY | MARCH | APRIL | MAY | JUNE | JULY | AUGUST | SEPTEMBER | OCTOBER | NOVEMBER | DECEMBER; +fragment ENGLISHMONTHABBREVIATION : JAN | FEB | MAR | APR | JUN | JUL | AUG | SEP | OCT | NOV | DEC; fragment TIMEVALUE : (DIGIT+ AMPM) | (DIGIT+ TIMESEPARATOR DIGIT+ (TIMESEPARATOR DIGIT+)? AMPM?); fragment TIMESEPARATOR : WS? (':' | '.') WS?; fragment AMPM : WS? (A M | P M | A | P); +JANUARY : J A N U A R Y; +FEBRUARY : F E B R U A R Y; +MARCH : M A R C H; +APRIL : A P R I L; +MAY : M A Y; +JUNE : J U N E; +JULY : J U L Y; +AUGUST : A U G U S T; +SEPTEMBER : S E P T E M B E R; +OCTOBER : O C T O B E R; +NOVEMBER : N O V E M B E R; +DECEMBER : D E C E M B E R; +JAN : J A N; +FEB : F E B; +MAR: M A R; +APR : A P R; +JUN : J U N; +JUL: J U L; +AUG : A U G; +SEP : S E P; +OCT : O C T; +NOV : N O V; +DEC : D E C; NOT : N O T; TRUE : T R U E; FALSE : F A L S E; diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs index 648a52d474..7a61822195 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs @@ -17,306 +17,308 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Preprocessing { +namespace Rubberduck.Parsing.Preprocessing +{ -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; + 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.3")] -[System.CLSCompliant(false)] -public partial class VBAConditionalCompilationBaseListener : IVBAConditionalCompilationListener { - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { } + /// + /// 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.3")] + [System.CLSCompliant(false)] + public partial class VBAConditionalCompilationBaseListener : IVBAConditionalCompilationListener + { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterName([NotNull] VBAConditionalCompilationParser.NameContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitName([NotNull] VBAConditionalCompilationParser.NameContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterName([NotNull] VBAConditionalCompilationParser.NameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitName([NotNull] VBAConditionalCompilationParser.NameContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext 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) { } -} + /// + /// 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) { } + } } // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs index 276eca677a..410f93e39b 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs @@ -17,250 +17,252 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Preprocessing { -using Antlr4.Runtime.Misc; -using Antlr4.Runtime.Tree; -using IToken = Antlr4.Runtime.IToken; -using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; +namespace Rubberduck.Parsing.Preprocessing +{ + using Antlr4.Runtime.Misc; + using Antlr4.Runtime.Tree; + using IToken = Antlr4.Runtime.IToken; + using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; -/// -/// This class provides an empty implementation of , -/// which can be extended to create a visitor which only needs to handle a subset -/// of the available methods. -/// -/// The return type of the visit operation. -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public partial class VBAConditionalCompilationBaseVisitor : AbstractParseTreeVisitor, IVBAConditionalCompilationVisitor { - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { return VisitChildren(context); } + /// + /// This class provides an empty implementation of , + /// which can be extended to create a visitor which only needs to handle a subset + /// of the available methods. + /// + /// The return type of the visit operation. + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public partial class VBAConditionalCompilationBaseVisitor : AbstractParseTreeVisitor, IVBAConditionalCompilationVisitor + { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitName([NotNull] VBAConditionalCompilationParser.NameContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitName([NotNull] VBAConditionalCompilationParser.NameContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { return VisitChildren(context); } -} + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { return VisitChildren(context); } + } } // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs index 06cb69545a..9d385c6539 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs @@ -17,452 +17,493 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Preprocessing { -using Antlr4.Runtime; -using Antlr4.Runtime.Atn; -using Antlr4.Runtime.Misc; -using DFA = Antlr4.Runtime.Dfa.DFA; +namespace Rubberduck.Parsing.Preprocessing +{ + using Antlr4.Runtime; + using Antlr4.Runtime.Atn; + using Antlr4.Runtime.Misc; + using DFA = Antlr4.Runtime.Dfa.DFA; -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public partial class VBAConditionalCompilationLexer : Lexer { - public const int - STRINGLITERAL=1, OCTLITERAL=2, HEXLITERAL=3, SHORTLITERAL=4, INTEGERLITERAL=5, - DOUBLELITERAL=6, DATELITERAL=7, NOT=8, TRUE=9, FALSE=10, NOTHING=11, NULL=12, - EMPTY=13, HASHCONST=14, HASHIF=15, THEN=16, HASHELSEIF=17, HASHELSE=18, - HASHENDIF=19, INT=20, FIX=21, ABS=22, SGN=23, LEN=24, LENB=25, CBOOL=26, - CBYTE=27, CCUR=28, CDATE=29, CDBL=30, CINT=31, CLNG=32, CLNGLNG=33, CLNGPTR=34, - CSNG=35, CSTR=36, CVAR=37, IS=38, LIKE=39, MOD=40, AND=41, OR=42, XOR=43, - EQV=44, IMP=45, CONST=46, HASH=47, AMPERSAND=48, PERCENT=49, EXCLAMATIONMARK=50, - AT=51, DOLLAR=52, L_PAREN=53, R_PAREN=54, L_SQUARE_BRACKET=55, R_SQUARE_BRACKET=56, - UNDERSCORE=57, EQ=58, DIV=59, INTDIV=60, GEQ=61, GT=62, LEQ=63, LT=64, - MINUS=65, MULT=66, NEQ=67, PLUS=68, POW=69, SINGLEQUOTE=70, DOT=71, COMMA=72, - NEWLINE=73, WS=74, IDENTIFIER=75, ANYCHAR=76; - public static string[] modeNames = { - "DEFAULT_MODE" - }; + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public partial class VBAConditionalCompilationLexer : Lexer + { + public const int + STRINGLITERAL = 1, OCTLITERAL = 2, HEXLITERAL = 3, SHORTLITERAL = 4, INTEGERLITERAL = 5, + DOUBLELITERAL = 6, DATELITERAL = 7, JANUARY = 8, FEBRUARY = 9, MARCH = 10, APRIL = 11, + MAY = 12, JUNE = 13, JULY = 14, AUGUST = 15, SEPTEMBER = 16, OCTOBER = 17, NOVEMBER = 18, + DECEMBER = 19, JAN = 20, FEB = 21, MAR = 22, APR = 23, JUN = 24, JUL = 25, AUG = 26, SEP = 27, + OCT = 28, NOV = 29, DEC = 30, NOT = 31, TRUE = 32, FALSE = 33, NOTHING = 34, NULL = 35, + EMPTY = 36, HASHCONST = 37, HASHIF = 38, THEN = 39, HASHELSEIF = 40, HASHELSE = 41, + HASHENDIF = 42, INT = 43, FIX = 44, ABS = 45, SGN = 46, LEN = 47, LENB = 48, CBOOL = 49, + CBYTE = 50, CCUR = 51, CDATE = 52, CDBL = 53, CINT = 54, CLNG = 55, CLNGLNG = 56, CLNGPTR = 57, + CSNG = 58, CSTR = 59, CVAR = 60, IS = 61, LIKE = 62, MOD = 63, AND = 64, OR = 65, XOR = 66, + EQV = 67, IMP = 68, CONST = 69, HASH = 70, AMPERSAND = 71, PERCENT = 72, EXCLAMATIONMARK = 73, + AT = 74, DOLLAR = 75, L_PAREN = 76, R_PAREN = 77, L_SQUARE_BRACKET = 78, R_SQUARE_BRACKET = 79, + UNDERSCORE = 80, EQ = 81, DIV = 82, INTDIV = 83, GEQ = 84, GT = 85, LEQ = 86, LT = 87, + MINUS = 88, MULT = 89, NEQ = 90, PLUS = 91, POW = 92, SINGLEQUOTE = 93, DOT = 94, COMMA = 95, + NEWLINE = 96, WS = 97, IDENTIFIER = 98, ANYCHAR = 99; + public static string[] modeNames = { + "DEFAULT_MODE" + }; - public static readonly string[] tokenNames = { - "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", - "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'", - "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'", - "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'", - "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'", - "'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''", - "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'", - "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "':'", "';'", - "'<'", "'='", "'>'", "'?'", "'@'", "'A'", "'B'", "'C'", "'D'", "'E'", - "'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'" - }; - public static readonly string[] ruleNames = { - "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", - "DOUBLELITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", "DATEVALUEPART", - "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", - "TIMEVALUE", "TIMESEPARATOR", "AMPM", "NOT", "TRUE", "FALSE", "NOTHING", - "NULL", "EMPTY", "HASHCONST", "HASHIF", "THEN", "HASHELSEIF", "HASHELSE", - "HASHENDIF", "INT", "FIX", "ABS", "SGN", "LEN", "LENB", "CBOOL", "CBYTE", - "CCUR", "CDATE", "CDBL", "CINT", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", - "CSTR", "CVAR", "IS", "LIKE", "MOD", "AND", "OR", "XOR", "EQV", "IMP", - "CONST", "HASH", "AMPERSAND", "PERCENT", "EXCLAMATIONMARK", "AT", "DOLLAR", - "L_PAREN", "R_PAREN", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "UNDERSCORE", - "EQ", "DIV", "INTDIV", "GEQ", "GT", "LEQ", "LT", "MINUS", "MULT", "NEQ", - "PLUS", "POW", "SINGLEQUOTE", "DOT", "COMMA", "NEWLINE", "WS", "IDENTIFIER", - "DIGIT", "ANYCHAR", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", - "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", - "Y", "Z" - }; + public static readonly string[] tokenNames = { + "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", + "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'", + "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'", + "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'", + "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'", + "'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''", + "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'", + "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "':'", "';'", + "'<'", "'='", "'>'", "'?'", "'@'", "'A'", "'B'", "'C'", "'D'", "'E'", + "'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", + "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", + "'Z'", "'['", "'\\'", "']'", "'^'", "'_'", "'`'", "'a'", "'b'", "'c'" + }; + public static readonly string[] ruleNames = { + "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", + "DOUBLELITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", "DATEVALUEPART", + "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", + "TIMEVALUE", "TIMESEPARATOR", "AMPM", "JANUARY", "FEBRUARY", "MARCH", + "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", + "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", + "NOV", "DEC", "NOT", "TRUE", "FALSE", "NOTHING", "NULL", "EMPTY", "HASHCONST", + "HASHIF", "THEN", "HASHELSEIF", "HASHELSE", "HASHENDIF", "INT", "FIX", + "ABS", "SGN", "LEN", "LENB", "CBOOL", "CBYTE", "CCUR", "CDATE", "CDBL", + "CINT", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", "CSTR", "CVAR", "IS", "LIKE", + "MOD", "AND", "OR", "XOR", "EQV", "IMP", "CONST", "HASH", "AMPERSAND", + "PERCENT", "EXCLAMATIONMARK", "AT", "DOLLAR", "L_PAREN", "R_PAREN", "L_SQUARE_BRACKET", + "R_SQUARE_BRACKET", "UNDERSCORE", "EQ", "DIV", "INTDIV", "GEQ", "GT", + "LEQ", "LT", "MINUS", "MULT", "NEQ", "PLUS", "POW", "SINGLEQUOTE", "DOT", + "COMMA", "NEWLINE", "WS", "IDENTIFIER", "DIGIT", "ANYCHAR", "A", "B", + "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", + "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" + }; - public VBAConditionalCompilationLexer(ICharStream input) - : base(input) - { - _interp = new LexerATNSimulator(this,_ATN); - } + public VBAConditionalCompilationLexer(ICharStream input) + : base(input) + { + _interp = new LexerATNSimulator(this, _ATN); + } - public override string GrammarFileName { get { return "VBAConditionalCompilation.g4"; } } + public override string GrammarFileName { get { return "VBAConditionalCompilation.g4"; } } - public override string[] TokenNames { get { return tokenNames; } } + public override string[] TokenNames { get { return tokenNames; } } - public override string[] RuleNames { get { return ruleNames; } } + public override string[] RuleNames { get { return ruleNames; } } - public override string[] ModeNames { get { return modeNames; } } + public override string[] ModeNames { get { return modeNames; } } - public override string SerializedAtn { get { return _serializedATN; } } + public override string SerializedAtn { get { return _serializedATN; } } - public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2N\x37D\b\x1\x4\x2"+ - "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ - "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ - "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ - "\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A\x4\x1B"+ - "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!"+ - "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t)\x4*\t"+ - "*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31\x4\x32"+ - "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37\t\x37"+ - "\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x4>\t>\x4?\t?\x4"+ - "@\t@\x4\x41\t\x41\x4\x42\t\x42\x4\x43\t\x43\x4\x44\t\x44\x4\x45\t\x45"+ - "\x4\x46\t\x46\x4G\tG\x4H\tH\x4I\tI\x4J\tJ\x4K\tK\x4L\tL\x4M\tM\x4N\tN"+ - "\x4O\tO\x4P\tP\x4Q\tQ\x4R\tR\x4S\tS\x4T\tT\x4U\tU\x4V\tV\x4W\tW\x4X\t"+ - "X\x4Y\tY\x4Z\tZ\x4[\t[\x4\\\t\\\x4]\t]\x4^\t^\x4_\t_\x4`\t`\x4\x61\t\x61"+ - "\x4\x62\t\x62\x4\x63\t\x63\x4\x64\t\x64\x4\x65\t\x65\x4\x66\t\x66\x4g"+ - "\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\tp\x4"+ - "q\tq\x4r\tr\x3\x2\x3\x2\x3\x2\x3\x2\a\x2\xEA\n\x2\f\x2\xE\x2\xED\v\x2"+ - "\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\x3\x3\x6\x3\xF5\n\x3\r\x3\xE\x3\xF6\x3"+ - "\x3\x5\x3\xFA\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x6\x4\x100\n\x4\r\x4\xE\x4"+ - "\x101\x3\x4\x5\x4\x105\n\x4\x3\x5\x3\x5\x5\x5\x109\n\x5\x3\x5\x6\x5\x10C"+ - "\n\x5\r\x5\xE\x5\x10D\x3\x5\x5\x5\x111\n\x5\x3\x6\x3\x6\x3\x6\x3\x6\x5"+ - "\x6\x117\n\x6\x3\a\x3\a\x5\a\x11B\n\a\x3\a\a\a\x11E\n\a\f\a\xE\a\x121"+ - "\v\a\x3\a\x3\a\x6\a\x125\n\a\r\a\xE\a\x126\x3\a\x3\a\x3\a\x5\a\x12C\n"+ - "\a\x3\b\x3\b\x3\b\x3\b\x3\t\x3\t\x5\t\x134\n\t\x3\t\x3\t\x3\t\x3\t\x5"+ - "\t\x13A\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x142\n\n\x3\v\x6\v\x145"+ - "\n\v\r\v\xE\v\x146\x3\v\x5\v\x14A\n\v\x3\f\x5\f\x14D\n\f\x3\f\x5\f\x150"+ - "\n\f\x3\f\x5\f\x153\n\f\x3\r\x3\r\x5\r\x157\n\r\x3\xE\x3\xE\x3\xE\x3\xE"+ - "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3"+ - "\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE"+ - "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3"+ - "\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE"+ - "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3"+ - "\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE"+ - "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\x1AA\n\xE\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x1D8\n\xF\x3"+ - "\x10\x6\x10\x1DB\n\x10\r\x10\xE\x10\x1DC\x3\x10\x3\x10\x3\x10\x6\x10\x1E2"+ - "\n\x10\r\x10\xE\x10\x1E3\x3\x10\x3\x10\x6\x10\x1E8\n\x10\r\x10\xE\x10"+ - "\x1E9\x3\x10\x3\x10\x6\x10\x1EE\n\x10\r\x10\xE\x10\x1EF\x5\x10\x1F2\n"+ - "\x10\x3\x10\x5\x10\x1F5\n\x10\x5\x10\x1F7\n\x10\x3\x11\x5\x11\x1FA\n\x11"+ - "\x3\x11\x3\x11\x5\x11\x1FE\n\x11\x3\x12\x5\x12\x201\n\x12\x3\x12\x3\x12"+ - "\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x5\x12\x20B\n\x12\x3\x13\x3"+ - "\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3"+ - "\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3"+ - "\x16\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3"+ - "\x18\x3\x18\x3\x18\x3\x19\a\x19\x230\n\x19\f\x19\xE\x19\x233\v\x19\x3"+ - "\x19\x3\x19\x3\x19\x3\x1A\a\x1A\x239\n\x1A\f\x1A\xE\x1A\x23C\v\x1A\x3"+ - "\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\a"+ - "\x1C\x248\n\x1C\f\x1C\xE\x1C\x24B\v\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3"+ - "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\a\x1D\x256\n\x1D\f\x1D\xE\x1D\x259\v"+ - "\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1E\a\x1E\x262\n\x1E"+ - "\f\x1E\xE\x1E\x265\v\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\a\x1E\x26C"+ - "\n\x1E\f\x1E\xE\x1E\x26F\v\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F"+ - "\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"\x3#\x3#\x3"+ - "#\x3#\x3$\x3$\x3$\x3$\x3$\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&"+ - "\x3&\x3\'\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)"+ - "\x3)\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3,\x3,\x3,\x3,\x3,\x3,\x3"+ - ",\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3/\x3/\x3/"+ - "\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3\x31\x3\x31\x3\x32"+ - "\x3\x32\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3\x34\x3\x34"+ - "\x3\x34\x3\x34\x3\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x37"+ - "\x3\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39"+ - "\x3\x39\x3\x39\x3\x39\x3:\x3:\x3;\x3;\x3<\x3<\x3=\x3=\x3>\x3>\x3?\x3?"+ - "\x3@\x3@\x3\x41\x3\x41\x3\x42\x3\x42\x3\x43\x3\x43\x3\x44\x3\x44\x3\x45"+ - "\x3\x45\x3\x46\x3\x46\x3G\x3G\x3H\x3H\x3H\x3I\x3I\x3J\x3J\x3J\x3K\x3K"+ - "\x3L\x3L\x3M\x3M\x3N\x3N\x3N\x3O\x3O\x3P\x3P\x3Q\x3Q\x3R\x3R\x3S\x3S\x3"+ - "T\x3T\x3T\x5T\x331\nT\x3U\x3U\x3V\x3V\aV\x337\nV\fV\xEV\x33A\vV\x3V\x3"+ - "V\x6V\x33E\nV\rV\xEV\x33F\x3V\x3V\x5V\x344\nV\x3W\x3W\x3X\x3X\x3Y\x3Y"+ - "\x3Z\x3Z\x3[\x3[\x3\\\x3\\\x3]\x3]\x3^\x3^\x3_\x3_\x3`\x3`\x3\x61\x3\x61"+ - "\x3\x62\x3\x62\x3\x63\x3\x63\x3\x64\x3\x64\x3\x65\x3\x65\x3\x66\x3\x66"+ - "\x3g\x3g\x3h\x3h\x3i\x3i\x3j\x3j\x3k\x3k\x3l\x3l\x3m\x3m\x3n\x3n\x3o\x3"+ - "o\x3p\x3p\x3q\x3q\x3r\x3r\x2\x2\x2s\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6"+ - "\v\x2\a\r\x2\b\xF\x2\t\x11\x2\x2\x13\x2\x2\x15\x2\x2\x17\x2\x2\x19\x2"+ - "\x2\x1B\x2\x2\x1D\x2\x2\x1F\x2\x2!\x2\x2#\x2\x2%\x2\n\'\x2\v)\x2\f+\x2"+ - "\r-\x2\xE/\x2\xF\x31\x2\x10\x33\x2\x11\x35\x2\x12\x37\x2\x13\x39\x2\x14"+ - ";\x2\x15=\x2\x16?\x2\x17\x41\x2\x18\x43\x2\x19\x45\x2\x1AG\x2\x1BI\x2"+ - "\x1CK\x2\x1DM\x2\x1EO\x2\x1FQ\x2 S\x2!U\x2\"W\x2#Y\x2$[\x2%]\x2&_\x2\'"+ - "\x61\x2(\x63\x2)\x65\x2*g\x2+i\x2,k\x2-m\x2.o\x2/q\x2\x30s\x2\x31u\x2"+ - "\x32w\x2\x33y\x2\x34{\x2\x35}\x2\x36\x7F\x2\x37\x81\x2\x38\x83\x2\x39"+ - "\x85\x2:\x87\x2;\x89\x2<\x8B\x2=\x8D\x2>\x8F\x2?\x91\x2@\x93\x2\x41\x95"+ - "\x2\x42\x97\x2\x43\x99\x2\x44\x9B\x2\x45\x9D\x2\x46\x9F\x2G\xA1\x2H\xA3"+ - "\x2I\xA5\x2J\xA7\x2K\xA9\x2L\xAB\x2M\xAD\x2\x2\xAF\x2N\xB1\x2\x2\xB3\x2"+ - "\x2\xB5\x2\x2\xB7\x2\x2\xB9\x2\x2\xBB\x2\x2\xBD\x2\x2\xBF\x2\x2\xC1\x2"+ - "\x2\xC3\x2\x2\xC5\x2\x2\xC7\x2\x2\xC9\x2\x2\xCB\x2\x2\xCD\x2\x2\xCF\x2"+ - "\x2\xD1\x2\x2\xD3\x2\x2\xD5\x2\x2\xD7\x2\x2\xD9\x2\x2\xDB\x2\x2\xDD\x2"+ - "\x2\xDF\x2\x2\xE1\x2\x2\xE3\x2\x2\x3\x2(\x5\x2\f\f\xF\xF$$\x3\x2\x32:"+ - "\x4\x2\x32;\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x5"+ - "\x2\f\f\xF\xF\x202A\x202B\x4\x2\v\v\"\"\t\x2\v\f\xF\xF\"=??\x42\x42]`"+ - "~~\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\x3\x2"+ - "\x32;\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65"+ - "\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2K"+ - "Kkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2"+ - "RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2"+ - "YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x39C\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2"+ - "\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2"+ - "\x2\x2\xF\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2"+ - "\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2"+ - "\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2"+ - "\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2"+ - "\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2"+ - "\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3"+ - "\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2"+ - "\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2"+ - "\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2"+ - "\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3"+ - "\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2"+ - "\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3"+ - "\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2"+ - "\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2"+ - "\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3"+ - "\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2"+ - "\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2"+ - "\x2\x2\xAB\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x3\xE5\x3\x2\x2\x2\x5\xF0\x3"+ - "\x2\x2\x2\a\xFB\x3\x2\x2\x2\t\x108\x3\x2\x2\x2\v\x112\x3\x2\x2\x2\r\x11A"+ - "\x3\x2\x2\x2\xF\x12D\x3\x2\x2\x2\x11\x139\x3\x2\x2\x2\x13\x13B\x3\x2\x2"+ - "\x2\x15\x149\x3\x2\x2\x2\x17\x14C\x3\x2\x2\x2\x19\x156\x3\x2\x2\x2\x1B"+ - "\x1A9\x3\x2\x2\x2\x1D\x1D7\x3\x2\x2\x2\x1F\x1F6\x3\x2\x2\x2!\x1F9\x3\x2"+ - "\x2\x2#\x200\x3\x2\x2\x2%\x20C\x3\x2\x2\x2\'\x210\x3\x2\x2\x2)\x215\x3"+ - "\x2\x2\x2+\x21B\x3\x2\x2\x2-\x223\x3\x2\x2\x2/\x228\x3\x2\x2\x2\x31\x231"+ - "\x3\x2\x2\x2\x33\x23A\x3\x2\x2\x2\x35\x241\x3\x2\x2\x2\x37\x249\x3\x2"+ - "\x2\x2\x39\x257\x3\x2\x2\x2;\x263\x3\x2\x2\x2=\x273\x3\x2\x2\x2?\x277"+ - "\x3\x2\x2\x2\x41\x27B\x3\x2\x2\x2\x43\x27F\x3\x2\x2\x2\x45\x283\x3\x2"+ - "\x2\x2G\x287\x3\x2\x2\x2I\x28C\x3\x2\x2\x2K\x292\x3\x2\x2\x2M\x298\x3"+ - "\x2\x2\x2O\x29D\x3\x2\x2\x2Q\x2A3\x3\x2\x2\x2S\x2A8\x3\x2\x2\x2U\x2AD"+ - "\x3\x2\x2\x2W\x2B2\x3\x2\x2\x2Y\x2BA\x3\x2\x2\x2[\x2C2\x3\x2\x2\x2]\x2C7"+ - "\x3\x2\x2\x2_\x2CC\x3\x2\x2\x2\x61\x2D1\x3\x2\x2\x2\x63\x2D4\x3\x2\x2"+ - "\x2\x65\x2D9\x3\x2\x2\x2g\x2DD\x3\x2\x2\x2i\x2E1\x3\x2\x2\x2k\x2E4\x3"+ - "\x2\x2\x2m\x2E8\x3\x2\x2\x2o\x2EC\x3\x2\x2\x2q\x2F0\x3\x2\x2\x2s\x2F6"+ - "\x3\x2\x2\x2u\x2F8\x3\x2\x2\x2w\x2FA\x3\x2\x2\x2y\x2FC\x3\x2\x2\x2{\x2FE"+ - "\x3\x2\x2\x2}\x300\x3\x2\x2\x2\x7F\x302\x3\x2\x2\x2\x81\x304\x3\x2\x2"+ - "\x2\x83\x306\x3\x2\x2\x2\x85\x308\x3\x2\x2\x2\x87\x30A\x3\x2\x2\x2\x89"+ - "\x30C\x3\x2\x2\x2\x8B\x30E\x3\x2\x2\x2\x8D\x310\x3\x2\x2\x2\x8F\x312\x3"+ - "\x2\x2\x2\x91\x315\x3\x2\x2\x2\x93\x317\x3\x2\x2\x2\x95\x31A\x3\x2\x2"+ - "\x2\x97\x31C\x3\x2\x2\x2\x99\x31E\x3\x2\x2\x2\x9B\x320\x3\x2\x2\x2\x9D"+ - "\x323\x3\x2\x2\x2\x9F\x325\x3\x2\x2\x2\xA1\x327\x3\x2\x2\x2\xA3\x329\x3"+ - "\x2\x2\x2\xA5\x32B\x3\x2\x2\x2\xA7\x330\x3\x2\x2\x2\xA9\x332\x3\x2\x2"+ - "\x2\xAB\x343\x3\x2\x2\x2\xAD\x345\x3\x2\x2\x2\xAF\x347\x3\x2\x2\x2\xB1"+ - "\x349\x3\x2\x2\x2\xB3\x34B\x3\x2\x2\x2\xB5\x34D\x3\x2\x2\x2\xB7\x34F\x3"+ - "\x2\x2\x2\xB9\x351\x3\x2\x2\x2\xBB\x353\x3\x2\x2\x2\xBD\x355\x3\x2\x2"+ - "\x2\xBF\x357\x3\x2\x2\x2\xC1\x359\x3\x2\x2\x2\xC3\x35B\x3\x2\x2\x2\xC5"+ - "\x35D\x3\x2\x2\x2\xC7\x35F\x3\x2\x2\x2\xC9\x361\x3\x2\x2\x2\xCB\x363\x3"+ - "\x2\x2\x2\xCD\x365\x3\x2\x2\x2\xCF\x367\x3\x2\x2\x2\xD1\x369\x3\x2\x2"+ - "\x2\xD3\x36B\x3\x2\x2\x2\xD5\x36D\x3\x2\x2\x2\xD7\x36F\x3\x2\x2\x2\xD9"+ - "\x371\x3\x2\x2\x2\xDB\x373\x3\x2\x2\x2\xDD\x375\x3\x2\x2\x2\xDF\x377\x3"+ - "\x2\x2\x2\xE1\x379\x3\x2\x2\x2\xE3\x37B\x3\x2\x2\x2\xE5\xEB\a$\x2\x2\xE6"+ - "\xEA\n\x2\x2\x2\xE7\xE8\a$\x2\x2\xE8\xEA\a$\x2\x2\xE9\xE6\x3\x2\x2\x2"+ - "\xE9\xE7\x3\x2\x2\x2\xEA\xED\x3\x2\x2\x2\xEB\xE9\x3\x2\x2\x2\xEB\xEC\x3"+ - "\x2\x2\x2\xEC\xEE\x3\x2\x2\x2\xED\xEB\x3\x2\x2\x2\xEE\xEF\a$\x2\x2\xEF"+ - "\x4\x3\x2\x2\x2\xF0\xF1\a(\x2\x2\xF1\xF2\aQ\x2\x2\xF2\xF4\x3\x2\x2\x2"+ - "\xF3\xF5\t\x3\x2\x2\xF4\xF3\x3\x2\x2\x2\xF5\xF6\x3\x2\x2\x2\xF6\xF4\x3"+ - "\x2\x2\x2\xF6\xF7\x3\x2\x2\x2\xF7\xF9\x3\x2\x2\x2\xF8\xFA\a(\x2\x2\xF9"+ - "\xF8\x3\x2\x2\x2\xF9\xFA\x3\x2\x2\x2\xFA\x6\x3\x2\x2\x2\xFB\xFC\a(\x2"+ - "\x2\xFC\xFD\aJ\x2\x2\xFD\xFF\x3\x2\x2\x2\xFE\x100\t\x4\x2\x2\xFF\xFE\x3"+ - "\x2\x2\x2\x100\x101\x3\x2\x2\x2\x101\xFF\x3\x2\x2\x2\x101\x102\x3\x2\x2"+ - "\x2\x102\x104\x3\x2\x2\x2\x103\x105\a(\x2\x2\x104\x103\x3\x2\x2\x2\x104"+ - "\x105\x3\x2\x2\x2\x105\b\x3\x2\x2\x2\x106\x109\x5\x9DO\x2\x107\x109\x5"+ - "\x97L\x2\x108\x106\x3\x2\x2\x2\x108\x107\x3\x2\x2\x2\x108\x109\x3\x2\x2"+ - "\x2\x109\x10B\x3\x2\x2\x2\x10A\x10C\x5\xADW\x2\x10B\x10A\x3\x2\x2\x2\x10C"+ - "\x10D\x3\x2\x2\x2\x10D\x10B\x3\x2\x2\x2\x10D\x10E\x3\x2\x2\x2\x10E\x110"+ - "\x3\x2\x2\x2\x10F\x111\t\x5\x2\x2\x110\x10F\x3\x2\x2\x2\x110\x111\x3\x2"+ - "\x2\x2\x111\n\x3\x2\x2\x2\x112\x116\x5\t\x5\x2\x113\x114\x5\xB9]\x2\x114"+ - "\x115\x5\t\x5\x2\x115\x117\x3\x2\x2\x2\x116\x113\x3\x2\x2\x2\x116\x117"+ - "\x3\x2\x2\x2\x117\f\x3\x2\x2\x2\x118\x11B\x5\x9DO\x2\x119\x11B\x5\x97"+ - "L\x2\x11A\x118\x3\x2\x2\x2\x11A\x119\x3\x2\x2\x2\x11A\x11B\x3\x2\x2\x2"+ - "\x11B\x11F\x3\x2\x2\x2\x11C\x11E\x5\xADW\x2\x11D\x11C\x3\x2\x2\x2\x11E"+ - "\x121\x3\x2\x2\x2\x11F\x11D\x3\x2\x2\x2\x11F\x120\x3\x2\x2\x2\x120\x122"+ - "\x3\x2\x2\x2\x121\x11F\x3\x2\x2\x2\x122\x124\a\x30\x2\x2\x123\x125\x5"+ - "\xADW\x2\x124\x123\x3\x2\x2\x2\x125\x126\x3\x2\x2\x2\x126\x124\x3\x2\x2"+ - "\x2\x126\x127\x3\x2\x2\x2\x127\x12B\x3\x2\x2\x2\x128\x129\x5\xB9]\x2\x129"+ - "\x12A\x5\t\x5\x2\x12A\x12C\x3\x2\x2\x2\x12B\x128\x3\x2\x2\x2\x12B\x12C"+ - "\x3\x2\x2\x2\x12C\xE\x3\x2\x2\x2\x12D\x12E\a%\x2\x2\x12E\x12F\x5\x11\t"+ - "\x2\x12F\x130\a%\x2\x2\x130\x10\x3\x2\x2\x2\x131\x133\x5\x13\n\x2\x132"+ - "\x134\x5\xA9U\x2\x133\x132\x3\x2\x2\x2\x133\x134\x3\x2\x2\x2\x134\x135"+ - "\x3\x2\x2\x2\x135\x136\x5\x1F\x10\x2\x136\x13A\x3\x2\x2\x2\x137\x13A\x5"+ - "\x13\n\x2\x138\x13A\x5\x1F\x10\x2\x139\x131\x3\x2\x2\x2\x139\x137\x3\x2"+ - "\x2\x2\x139\x138\x3\x2\x2\x2\x13A\x12\x3\x2\x2\x2\x13B\x13C\x5\x15\v\x2"+ - "\x13C\x13D\x5\x17\f\x2\x13D\x141\x5\x15\v\x2\x13E\x13F\x5\x17\f\x2\x13F"+ - "\x140\x5\x15\v\x2\x140\x142\x3\x2\x2\x2\x141\x13E\x3\x2\x2\x2\x141\x142"+ - "\x3\x2\x2\x2\x142\x14\x3\x2\x2\x2\x143\x145\x5\xADW\x2\x144\x143\x3\x2"+ - "\x2\x2\x145\x146\x3\x2\x2\x2\x146\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2"+ - "\x2\x147\x14A\x3\x2\x2\x2\x148\x14A\x5\x19\r\x2\x149\x144\x3\x2\x2\x2"+ - "\x149\x148\x3\x2\x2\x2\x14A\x16\x3\x2\x2\x2\x14B\x14D\x5\xA9U\x2\x14C"+ - "\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14F\x3\x2\x2\x2\x14E\x150"+ - "\t\x6\x2\x2\x14F\x14E\x3\x2\x2\x2\x14F\x150\x3\x2\x2\x2\x150\x152\x3\x2"+ - "\x2\x2\x151\x153\x5\xA9U\x2\x152\x151\x3\x2\x2\x2\x152\x153\x3\x2\x2\x2"+ - "\x153\x18\x3\x2\x2\x2\x154\x157\x5\x1B\xE\x2\x155\x157\x5\x1D\xF\x2\x156"+ - "\x154\x3\x2\x2\x2\x156\x155\x3\x2\x2\x2\x157\x1A\x3\x2\x2\x2\x158\x159"+ - "\x5\xC3\x62\x2\x159\x15A\x5\xB1Y\x2\x15A\x15B\x5\xCB\x66\x2\x15B\x15C"+ - "\x5\xD9m\x2\x15C\x15D\x5\xB1Y\x2\x15D\x15E\x5\xD3j\x2\x15E\x15F\x5\xE1"+ - "q\x2\x15F\x1AA\x3\x2\x2\x2\x160\x161\x5\xBB^\x2\x161\x162\x5\xB9]\x2\x162"+ - "\x163\x5\xB3Z\x2\x163\x164\x5\xD3j\x2\x164\x165\x5\xD9m\x2\x165\x166\x5"+ - "\xB1Y\x2\x166\x167\x5\xD3j\x2\x167\x168\x5\xE1q\x2\x168\x1AA\x3\x2\x2"+ - "\x2\x169\x16A\x5\xC9\x65\x2\x16A\x16B\x5\xB1Y\x2\x16B\x16C\x5\xD3j\x2"+ - "\x16C\x16D\x5\xB5[\x2\x16D\x16E\x5\xBF`\x2\x16E\x1AA\x3\x2\x2\x2\x16F"+ - "\x170\x5\xB1Y\x2\x170\x171\x5\xCFh\x2\x171\x172\x5\xD3j\x2\x172\x173\x5"+ - "\xC1\x61\x2\x173\x174\x5\xC7\x64\x2\x174\x1AA\x3\x2\x2\x2\x175\x176\x5"+ - "\xC9\x65\x2\x176\x177\x5\xB1Y\x2\x177\x178\x5\xE1q\x2\x178\x1AA\x3\x2"+ - "\x2\x2\x179\x17A\x5\xC3\x62\x2\x17A\x17B\x5\xD9m\x2\x17B\x17C\x5\xCB\x66"+ - "\x2\x17C\x17D\x5\xB9]\x2\x17D\x1AA\x3\x2\x2\x2\x17E\x17F\x5\xB1Y\x2\x17F"+ - "\x180\x5\xD9m\x2\x180\x181\x5\xBD_\x2\x181\x182\x5\xD9m\x2\x182\x183\x5"+ - "\xD5k\x2\x183\x184\x5\xD7l\x2\x184\x1AA\x3\x2\x2\x2\x185\x186\x5\xD5k"+ - "\x2\x186\x187\x5\xB9]\x2\x187\x188\x5\xCFh\x2\x188\x189\x5\xD7l\x2\x189"+ - "\x18A\x5\xB9]\x2\x18A\x18B\x5\xC9\x65\x2\x18B\x18C\x5\xB3Z\x2\x18C\x18D"+ - "\x5\xB9]\x2\x18D\x18E\x5\xD3j\x2\x18E\x1AA\x3\x2\x2\x2\x18F\x190\x5\xCD"+ - "g\x2\x190\x191\x5\xB5[\x2\x191\x192\x5\xD7l\x2\x192\x193\x5\xCDg\x2\x193"+ - "\x194\x5\xB3Z\x2\x194\x195\x5\xB9]\x2\x195\x196\x5\xD3j\x2\x196\x1AA\x3"+ - "\x2\x2\x2\x197\x198\x5\xCB\x66\x2\x198\x199\x5\xCDg\x2\x199\x19A\x5\xDB"+ - "n\x2\x19A\x19B\x5\xB9]\x2\x19B\x19C\x5\xC9\x65\x2\x19C\x19D\x5\xB3Z\x2"+ - "\x19D\x19E\x5\xB9]\x2\x19E\x19F\x5\xD3j\x2\x19F\x1AA\x3\x2\x2\x2\x1A0"+ - "\x1A1\x5\xB7\\\x2\x1A1\x1A2\x5\xB9]\x2\x1A2\x1A3\x5\xB5[\x2\x1A3\x1A4"+ - "\x5\xB9]\x2\x1A4\x1A5\x5\xC9\x65\x2\x1A5\x1A6\x5\xB3Z\x2\x1A6\x1A7\x5"+ - "\xB9]\x2\x1A7\x1A8\x5\xD3j\x2\x1A8\x1AA\x3\x2\x2\x2\x1A9\x158\x3\x2\x2"+ - "\x2\x1A9\x160\x3\x2\x2\x2\x1A9\x169\x3\x2\x2\x2\x1A9\x16F\x3\x2\x2\x2"+ - "\x1A9\x175\x3\x2\x2\x2\x1A9\x179\x3\x2\x2\x2\x1A9\x17E\x3\x2\x2\x2\x1A9"+ - "\x185\x3\x2\x2\x2\x1A9\x18F\x3\x2\x2\x2\x1A9\x197\x3\x2\x2\x2\x1A9\x1A0"+ - "\x3\x2\x2\x2\x1AA\x1C\x3\x2\x2\x2\x1AB\x1AC\x5\xC3\x62\x2\x1AC\x1AD\x5"+ - "\xB1Y\x2\x1AD\x1AE\x5\xCB\x66\x2\x1AE\x1D8\x3\x2\x2\x2\x1AF\x1B0\x5\xBB"+ - "^\x2\x1B0\x1B1\x5\xB9]\x2\x1B1\x1B2\x5\xB3Z\x2\x1B2\x1D8\x3\x2\x2\x2\x1B3"+ - "\x1B4\x5\xC9\x65\x2\x1B4\x1B5\x5\xB1Y\x2\x1B5\x1B6\x5\xD3j\x2\x1B6\x1D8"+ - "\x3\x2\x2\x2\x1B7\x1B8\x5\xB1Y\x2\x1B8\x1B9\x5\xCFh\x2\x1B9\x1BA\x5\xD3"+ - "j\x2\x1BA\x1D8\x3\x2\x2\x2\x1BB\x1BC\x5\xC3\x62\x2\x1BC\x1BD\x5\xD9m\x2"+ - "\x1BD\x1BE\x5\xCB\x66\x2\x1BE\x1D8\x3\x2\x2\x2\x1BF\x1C0\x5\xC3\x62\x2"+ - "\x1C0\x1C1\x5\xD9m\x2\x1C1\x1C2\x5\xC7\x64\x2\x1C2\x1D8\x3\x2\x2\x2\x1C3"+ - "\x1C4\x5\xB1Y\x2\x1C4\x1C5\x5\xD9m\x2\x1C5\x1C6\x5\xBD_\x2\x1C6\x1D8\x3"+ - "\x2\x2\x2\x1C7\x1C8\x5\xD5k\x2\x1C8\x1C9\x5\xB9]\x2\x1C9\x1CA\x5\xCFh"+ - "\x2\x1CA\x1D8\x3\x2\x2\x2\x1CB\x1CC\x5\xCDg\x2\x1CC\x1CD\x5\xB5[\x2\x1CD"+ - "\x1CE\x5\xD7l\x2\x1CE\x1D8\x3\x2\x2\x2\x1CF\x1D0\x5\xCB\x66\x2\x1D0\x1D1"+ - "\x5\xCDg\x2\x1D1\x1D2\x5\xDBn\x2\x1D2\x1D8\x3\x2\x2\x2\x1D3\x1D4\x5\xB7"+ - "\\\x2\x1D4\x1D5\x5\xB9]\x2\x1D5\x1D6\x5\xB5[\x2\x1D6\x1D8\x3\x2\x2\x2"+ - "\x1D7\x1AB\x3\x2\x2\x2\x1D7\x1AF\x3\x2\x2\x2\x1D7\x1B3\x3\x2\x2\x2\x1D7"+ - "\x1B7\x3\x2\x2\x2\x1D7\x1BB\x3\x2\x2\x2\x1D7\x1BF\x3\x2\x2\x2\x1D7\x1C3"+ - "\x3\x2\x2\x2\x1D7\x1C7\x3\x2\x2\x2\x1D7\x1CB\x3\x2\x2\x2\x1D7\x1CF\x3"+ - "\x2\x2\x2\x1D7\x1D3\x3\x2\x2\x2\x1D8\x1E\x3\x2\x2\x2\x1D9\x1DB\x5\xAD"+ - "W\x2\x1DA\x1D9\x3\x2\x2\x2\x1DB\x1DC\x3\x2\x2\x2\x1DC\x1DA\x3\x2\x2\x2"+ - "\x1DC\x1DD\x3\x2\x2\x2\x1DD\x1DE\x3\x2\x2\x2\x1DE\x1DF\x5#\x12\x2\x1DF"+ - "\x1F7\x3\x2\x2\x2\x1E0\x1E2\x5\xADW\x2\x1E1\x1E0\x3\x2\x2\x2\x1E2\x1E3"+ - "\x3\x2\x2\x2\x1E3\x1E1\x3\x2\x2\x2\x1E3\x1E4\x3\x2\x2\x2\x1E4\x1E5\x3"+ - "\x2\x2\x2\x1E5\x1E7\x5!\x11\x2\x1E6\x1E8\x5\xADW\x2\x1E7\x1E6\x3\x2\x2"+ - "\x2\x1E8\x1E9\x3\x2\x2\x2\x1E9\x1E7\x3\x2\x2\x2\x1E9\x1EA\x3\x2\x2\x2"+ - "\x1EA\x1F1\x3\x2\x2\x2\x1EB\x1ED\x5!\x11\x2\x1EC\x1EE\x5\xADW\x2\x1ED"+ - "\x1EC\x3\x2\x2\x2\x1EE\x1EF\x3\x2\x2\x2\x1EF\x1ED\x3\x2\x2\x2\x1EF\x1F0"+ - "\x3\x2\x2\x2\x1F0\x1F2\x3\x2\x2\x2\x1F1\x1EB\x3\x2\x2\x2\x1F1\x1F2\x3"+ - "\x2\x2\x2\x1F2\x1F4\x3\x2\x2\x2\x1F3\x1F5\x5#\x12\x2\x1F4\x1F3\x3\x2\x2"+ - "\x2\x1F4\x1F5\x3\x2\x2\x2\x1F5\x1F7\x3\x2\x2\x2\x1F6\x1DA\x3\x2\x2\x2"+ - "\x1F6\x1E1\x3\x2\x2\x2\x1F7 \x3\x2\x2\x2\x1F8\x1FA\x5\xA9U\x2\x1F9\x1F8"+ - "\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\x3\x2\x2\x2\x1FB\x1FD\t\a"+ - "\x2\x2\x1FC\x1FE\x5\xA9U\x2\x1FD\x1FC\x3\x2\x2\x2\x1FD\x1FE\x3\x2\x2\x2"+ - "\x1FE\"\x3\x2\x2\x2\x1FF\x201\x5\xA9U\x2\x200\x1FF\x3\x2\x2\x2\x200\x201"+ - "\x3\x2\x2\x2\x201\x20A\x3\x2\x2\x2\x202\x203\x5\xB1Y\x2\x203\x204\x5\xC9"+ - "\x65\x2\x204\x20B\x3\x2\x2\x2\x205\x206\x5\xCFh\x2\x206\x207\x5\xC9\x65"+ - "\x2\x207\x20B\x3\x2\x2\x2\x208\x20B\x5\xB1Y\x2\x209\x20B\x5\xCFh\x2\x20A"+ - "\x202\x3\x2\x2\x2\x20A\x205\x3\x2\x2\x2\x20A\x208\x3\x2\x2\x2\x20A\x209"+ - "\x3\x2\x2\x2\x20B$\x3\x2\x2\x2\x20C\x20D\x5\xCB\x66\x2\x20D\x20E\x5\xCD"+ - "g\x2\x20E\x20F\x5\xD7l\x2\x20F&\x3\x2\x2\x2\x210\x211\x5\xD7l\x2\x211"+ - "\x212\x5\xD3j\x2\x212\x213\x5\xD9m\x2\x213\x214\x5\xB9]\x2\x214(\x3\x2"+ - "\x2\x2\x215\x216\x5\xBB^\x2\x216\x217\x5\xB1Y\x2\x217\x218\x5\xC7\x64"+ - "\x2\x218\x219\x5\xD5k\x2\x219\x21A\x5\xB9]\x2\x21A*\x3\x2\x2\x2\x21B\x21C"+ - "\x5\xCB\x66\x2\x21C\x21D\x5\xCDg\x2\x21D\x21E\x5\xD7l\x2\x21E\x21F\x5"+ - "\xBF`\x2\x21F\x220\x5\xC1\x61\x2\x220\x221\x5\xCB\x66\x2\x221\x222\x5"+ - "\xBD_\x2\x222,\x3\x2\x2\x2\x223\x224\x5\xCB\x66\x2\x224\x225\x5\xD9m\x2"+ - "\x225\x226\x5\xC7\x64\x2\x226\x227\x5\xC7\x64\x2\x227.\x3\x2\x2\x2\x228"+ - "\x229\x5\xB9]\x2\x229\x22A\x5\xC9\x65\x2\x22A\x22B\x5\xCFh\x2\x22B\x22C"+ - "\x5\xD7l\x2\x22C\x22D\x5\xE1q\x2\x22D\x30\x3\x2\x2\x2\x22E\x230\x5\xA9"+ - "U\x2\x22F\x22E\x3\x2\x2\x2\x230\x233\x3\x2\x2\x2\x231\x22F\x3\x2\x2\x2"+ - "\x231\x232\x3\x2\x2\x2\x232\x234\x3\x2\x2\x2\x233\x231\x3\x2\x2\x2\x234"+ - "\x235\x5s:\x2\x235\x236\x5q\x39\x2\x236\x32\x3\x2\x2\x2\x237\x239\x5\xA9"+ - "U\x2\x238\x237\x3\x2\x2\x2\x239\x23C\x3\x2\x2\x2\x23A\x238\x3\x2\x2\x2"+ - "\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x3\x2\x2\x2\x23C\x23A\x3\x2\x2\x2\x23D"+ - "\x23E\x5s:\x2\x23E\x23F\x5\xC1\x61\x2\x23F\x240\x5\xBB^\x2\x240\x34\x3"+ - "\x2\x2\x2\x241\x242\x5\xD7l\x2\x242\x243\x5\xBF`\x2\x243\x244\x5\xB9]"+ - "\x2\x244\x245\x5\xCB\x66\x2\x245\x36\x3\x2\x2\x2\x246\x248\x5\xA9U\x2"+ - "\x247\x246\x3\x2\x2\x2\x248\x24B\x3\x2\x2\x2\x249\x247\x3\x2\x2\x2\x249"+ - "\x24A\x3\x2\x2\x2\x24A\x24C\x3\x2\x2\x2\x24B\x249\x3\x2\x2\x2\x24C\x24D"+ - "\x5s:\x2\x24D\x24E\x5\xB9]\x2\x24E\x24F\x5\xC7\x64\x2\x24F\x250\x5\xD5"+ - "k\x2\x250\x251\x5\xB9]\x2\x251\x252\x5\xC1\x61\x2\x252\x253\x5\xBB^\x2"+ - "\x253\x38\x3\x2\x2\x2\x254\x256\x5\xA9U\x2\x255\x254\x3\x2\x2\x2\x256"+ - "\x259\x3\x2\x2\x2\x257\x255\x3\x2\x2\x2\x257\x258\x3\x2\x2\x2\x258\x25A"+ - "\x3\x2\x2\x2\x259\x257\x3\x2\x2\x2\x25A\x25B\x5s:\x2\x25B\x25C\x5\xB9"+ - "]\x2\x25C\x25D\x5\xC7\x64\x2\x25D\x25E\x5\xD5k\x2\x25E\x25F\x5\xB9]\x2"+ - "\x25F:\x3\x2\x2\x2\x260\x262\x5\xA9U\x2\x261\x260\x3\x2\x2\x2\x262\x265"+ - "\x3\x2\x2\x2\x263\x261\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x266\x3"+ - "\x2\x2\x2\x265\x263\x3\x2\x2\x2\x266\x267\x5s:\x2\x267\x268\x5\xB9]\x2"+ - "\x268\x269\x5\xCB\x66\x2\x269\x26D\x5\xB7\\\x2\x26A\x26C\x5\xA9U\x2\x26B"+ - "\x26A\x3\x2\x2\x2\x26C\x26F\x3\x2\x2\x2\x26D\x26B\x3\x2\x2\x2\x26D\x26E"+ - "\x3\x2\x2\x2\x26E\x270\x3\x2\x2\x2\x26F\x26D\x3\x2\x2\x2\x270\x271\x5"+ - "\xC1\x61\x2\x271\x272\x5\xBB^\x2\x272<\x3\x2\x2\x2\x273\x274\x5\xC1\x61"+ - "\x2\x274\x275\x5\xCB\x66\x2\x275\x276\x5\xD7l\x2\x276>\x3\x2\x2\x2\x277"+ - "\x278\x5\xBB^\x2\x278\x279\x5\xC1\x61\x2\x279\x27A\x5\xDFp\x2\x27A@\x3"+ - "\x2\x2\x2\x27B\x27C\x5\xB1Y\x2\x27C\x27D\x5\xB3Z\x2\x27D\x27E\x5\xD5k"+ - "\x2\x27E\x42\x3\x2\x2\x2\x27F\x280\x5\xD5k\x2\x280\x281\x5\xBD_\x2\x281"+ - "\x282\x5\xCB\x66\x2\x282\x44\x3\x2\x2\x2\x283\x284\x5\xC7\x64\x2\x284"+ - "\x285\x5\xB9]\x2\x285\x286\x5\xCB\x66\x2\x286\x46\x3\x2\x2\x2\x287\x288"+ - "\x5\xC7\x64\x2\x288\x289\x5\xB9]\x2\x289\x28A\x5\xCB\x66\x2\x28A\x28B"+ - "\x5\xB3Z\x2\x28BH\x3\x2\x2\x2\x28C\x28D\x5\xB5[\x2\x28D\x28E\x5\xB3Z\x2"+ - "\x28E\x28F\x5\xCDg\x2\x28F\x290\x5\xCDg\x2\x290\x291\x5\xC7\x64\x2\x291"+ - "J\x3\x2\x2\x2\x292\x293\x5\xB5[\x2\x293\x294\x5\xB3Z\x2\x294\x295\x5\xE1"+ - "q\x2\x295\x296\x5\xD7l\x2\x296\x297\x5\xB9]\x2\x297L\x3\x2\x2\x2\x298"+ - "\x299\x5\xB5[\x2\x299\x29A\x5\xB5[\x2\x29A\x29B\x5\xD9m\x2\x29B\x29C\x5"+ - "\xD3j\x2\x29CN\x3\x2\x2\x2\x29D\x29E\x5\xB5[\x2\x29E\x29F\x5\xB7\\\x2"+ - "\x29F\x2A0\x5\xB1Y\x2\x2A0\x2A1\x5\xD7l\x2\x2A1\x2A2\x5\xB9]\x2\x2A2P"+ - "\x3\x2\x2\x2\x2A3\x2A4\x5\xB5[\x2\x2A4\x2A5\x5\xB7\\\x2\x2A5\x2A6\x5\xB3"+ - "Z\x2\x2A6\x2A7\x5\xC7\x64\x2\x2A7R\x3\x2\x2\x2\x2A8\x2A9\x5\xB5[\x2\x2A9"+ - "\x2AA\x5\xC1\x61\x2\x2AA\x2AB\x5\xCB\x66\x2\x2AB\x2AC\x5\xD7l\x2\x2AC"+ - "T\x3\x2\x2\x2\x2AD\x2AE\x5\xB5[\x2\x2AE\x2AF\x5\xC7\x64\x2\x2AF\x2B0\x5"+ - "\xCB\x66\x2\x2B0\x2B1\x5\xBD_\x2\x2B1V\x3\x2\x2\x2\x2B2\x2B3\x5\xB5[\x2"+ - "\x2B3\x2B4\x5\xC7\x64\x2\x2B4\x2B5\x5\xCB\x66\x2\x2B5\x2B6\x5\xBD_\x2"+ - "\x2B6\x2B7\x5\xC7\x64\x2\x2B7\x2B8\x5\xCB\x66\x2\x2B8\x2B9\x5\xBD_\x2"+ - "\x2B9X\x3\x2\x2\x2\x2BA\x2BB\x5\xB5[\x2\x2BB\x2BC\x5\xC7\x64\x2\x2BC\x2BD"+ - "\x5\xCB\x66\x2\x2BD\x2BE\x5\xBD_\x2\x2BE\x2BF\x5\xCFh\x2\x2BF\x2C0\x5"+ - "\xD7l\x2\x2C0\x2C1\x5\xD3j\x2\x2C1Z\x3\x2\x2\x2\x2C2\x2C3\x5\xB5[\x2\x2C3"+ - "\x2C4\x5\xD5k\x2\x2C4\x2C5\x5\xCB\x66\x2\x2C5\x2C6\x5\xBD_\x2\x2C6\\\x3"+ - "\x2\x2\x2\x2C7\x2C8\x5\xB5[\x2\x2C8\x2C9\x5\xD5k\x2\x2C9\x2CA\x5\xD7l"+ - "\x2\x2CA\x2CB\x5\xD3j\x2\x2CB^\x3\x2\x2\x2\x2CC\x2CD\x5\xB5[\x2\x2CD\x2CE"+ - "\x5\xDBn\x2\x2CE\x2CF\x5\xB1Y\x2\x2CF\x2D0\x5\xD3j\x2\x2D0`\x3\x2\x2\x2"+ - "\x2D1\x2D2\x5\xC1\x61\x2\x2D2\x2D3\x5\xD5k\x2\x2D3\x62\x3\x2\x2\x2\x2D4"+ - "\x2D5\x5\xC7\x64\x2\x2D5\x2D6\x5\xC1\x61\x2\x2D6\x2D7\x5\xC5\x63\x2\x2D7"+ - "\x2D8\x5\xB9]\x2\x2D8\x64\x3\x2\x2\x2\x2D9\x2DA\x5\xC9\x65\x2\x2DA\x2DB"+ - "\x5\xCDg\x2\x2DB\x2DC\x5\xB7\\\x2\x2DC\x66\x3\x2\x2\x2\x2DD\x2DE\x5\xB1"+ - "Y\x2\x2DE\x2DF\x5\xCB\x66\x2\x2DF\x2E0\x5\xB7\\\x2\x2E0h\x3\x2\x2\x2\x2E1"+ - "\x2E2\x5\xCDg\x2\x2E2\x2E3\x5\xD3j\x2\x2E3j\x3\x2\x2\x2\x2E4\x2E5\x5\xDF"+ - "p\x2\x2E5\x2E6\x5\xCDg\x2\x2E6\x2E7\x5\xD3j\x2\x2E7l\x3\x2\x2\x2\x2E8"+ - "\x2E9\x5\xB9]\x2\x2E9\x2EA\x5\xD1i\x2\x2EA\x2EB\x5\xDBn\x2\x2EBn\x3\x2"+ - "\x2\x2\x2EC\x2ED\x5\xC1\x61\x2\x2ED\x2EE\x5\xC9\x65\x2\x2EE\x2EF\x5\xCF"+ - "h\x2\x2EFp\x3\x2\x2\x2\x2F0\x2F1\x5\xB5[\x2\x2F1\x2F2\x5\xCDg\x2\x2F2"+ - "\x2F3\x5\xCB\x66\x2\x2F3\x2F4\x5\xD5k\x2\x2F4\x2F5\x5\xD7l\x2\x2F5r\x3"+ - "\x2\x2\x2\x2F6\x2F7\a%\x2\x2\x2F7t\x3\x2\x2\x2\x2F8\x2F9\a(\x2\x2\x2F9"+ - "v\x3\x2\x2\x2\x2FA\x2FB\a\'\x2\x2\x2FBx\x3\x2\x2\x2\x2FC\x2FD\a#\x2\x2"+ - "\x2FDz\x3\x2\x2\x2\x2FE\x2FF\a\x42\x2\x2\x2FF|\x3\x2\x2\x2\x300\x301\a"+ - "&\x2\x2\x301~\x3\x2\x2\x2\x302\x303\a*\x2\x2\x303\x80\x3\x2\x2\x2\x304"+ - "\x305\a+\x2\x2\x305\x82\x3\x2\x2\x2\x306\x307\a]\x2\x2\x307\x84\x3\x2"+ - "\x2\x2\x308\x309\a_\x2\x2\x309\x86\x3\x2\x2\x2\x30A\x30B\a\x61\x2\x2\x30B"+ - "\x88\x3\x2\x2\x2\x30C\x30D\a?\x2\x2\x30D\x8A\x3\x2\x2\x2\x30E\x30F\a\x31"+ - "\x2\x2\x30F\x8C\x3\x2\x2\x2\x310\x311\a^\x2\x2\x311\x8E\x3\x2\x2\x2\x312"+ - "\x313\a@\x2\x2\x313\x314\a?\x2\x2\x314\x90\x3\x2\x2\x2\x315\x316\a@\x2"+ - "\x2\x316\x92\x3\x2\x2\x2\x317\x318\a>\x2\x2\x318\x319\a?\x2\x2\x319\x94"+ - "\x3\x2\x2\x2\x31A\x31B\a>\x2\x2\x31B\x96\x3\x2\x2\x2\x31C\x31D\a/\x2\x2"+ - "\x31D\x98\x3\x2\x2\x2\x31E\x31F\a,\x2\x2\x31F\x9A\x3\x2\x2\x2\x320\x321"+ - "\a>\x2\x2\x321\x322\a@\x2\x2\x322\x9C\x3\x2\x2\x2\x323\x324\a-\x2\x2\x324"+ - "\x9E\x3\x2\x2\x2\x325\x326\a`\x2\x2\x326\xA0\x3\x2\x2\x2\x327\x328\a)"+ - "\x2\x2\x328\xA2\x3\x2\x2\x2\x329\x32A\a\x30\x2\x2\x32A\xA4\x3\x2\x2\x2"+ - "\x32B\x32C\a.\x2\x2\x32C\xA6\x3\x2\x2\x2\x32D\x32E\a\xF\x2\x2\x32E\x331"+ - "\a\f\x2\x2\x32F\x331\t\b\x2\x2\x330\x32D\x3\x2\x2\x2\x330\x32F\x3\x2\x2"+ - "\x2\x331\xA8\x3\x2\x2\x2\x332\x333\t\t\x2\x2\x333\xAA\x3\x2\x2\x2\x334"+ - "\x338\n\n\x2\x2\x335\x337\n\v\x2\x2\x336\x335\x3\x2\x2\x2\x337\x33A\x3"+ - "\x2\x2\x2\x338\x336\x3\x2\x2\x2\x338\x339\x3\x2\x2\x2\x339\x344\x3\x2"+ - "\x2\x2\x33A\x338\x3\x2\x2\x2\x33B\x33D\x5\x83\x42\x2\x33C\x33E\n\f\x2"+ - "\x2\x33D\x33C\x3\x2\x2\x2\x33E\x33F\x3\x2\x2\x2\x33F\x33D\x3\x2\x2\x2"+ - "\x33F\x340\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x342\x5\x85\x43\x2\x342"+ - "\x344\x3\x2\x2\x2\x343\x334\x3\x2\x2\x2\x343\x33B\x3\x2\x2\x2\x344\xAC"+ - "\x3\x2\x2\x2\x345\x346\t\r\x2\x2\x346\xAE\x3\x2\x2\x2\x347\x348\v\x2\x2"+ - "\x2\x348\xB0\x3\x2\x2\x2\x349\x34A\t\xE\x2\x2\x34A\xB2\x3\x2\x2\x2\x34B"+ - "\x34C\t\xF\x2\x2\x34C\xB4\x3\x2\x2\x2\x34D\x34E\t\x10\x2\x2\x34E\xB6\x3"+ - "\x2\x2\x2\x34F\x350\t\x11\x2\x2\x350\xB8\x3\x2\x2\x2\x351\x352\t\x12\x2"+ - "\x2\x352\xBA\x3\x2\x2\x2\x353\x354\t\x13\x2\x2\x354\xBC\x3\x2\x2\x2\x355"+ - "\x356\t\x14\x2\x2\x356\xBE\x3\x2\x2\x2\x357\x358\t\x15\x2\x2\x358\xC0"+ - "\x3\x2\x2\x2\x359\x35A\t\x16\x2\x2\x35A\xC2\x3\x2\x2\x2\x35B\x35C\t\x17"+ - "\x2\x2\x35C\xC4\x3\x2\x2\x2\x35D\x35E\t\x18\x2\x2\x35E\xC6\x3\x2\x2\x2"+ - "\x35F\x360\t\x19\x2\x2\x360\xC8\x3\x2\x2\x2\x361\x362\t\x1A\x2\x2\x362"+ - "\xCA\x3\x2\x2\x2\x363\x364\t\x1B\x2\x2\x364\xCC\x3\x2\x2\x2\x365\x366"+ - "\t\x1C\x2\x2\x366\xCE\x3\x2\x2\x2\x367\x368\t\x1D\x2\x2\x368\xD0\x3\x2"+ - "\x2\x2\x369\x36A\t\x1E\x2\x2\x36A\xD2\x3\x2\x2\x2\x36B\x36C\t\x1F\x2\x2"+ - "\x36C\xD4\x3\x2\x2\x2\x36D\x36E\t \x2\x2\x36E\xD6\x3\x2\x2\x2\x36F\x370"+ - "\t!\x2\x2\x370\xD8\x3\x2\x2\x2\x371\x372\t\"\x2\x2\x372\xDA\x3\x2\x2\x2"+ - "\x373\x374\t#\x2\x2\x374\xDC\x3\x2\x2\x2\x375\x376\t$\x2\x2\x376\xDE\x3"+ - "\x2\x2\x2\x377\x378\t%\x2\x2\x378\xE0\x3\x2\x2\x2\x379\x37A\t&\x2\x2\x37A"+ - "\xE2\x3\x2\x2\x2\x37B\x37C\t\'\x2\x2\x37C\xE4\x3\x2\x2\x2\x31\x2\xE9\xEB"+ - "\xF6\xF9\x101\x104\x108\x10D\x110\x116\x11A\x11F\x126\x12B\x133\x139\x141"+ - "\x146\x149\x14C\x14F\x152\x156\x1A9\x1D7\x1DC\x1E3\x1E9\x1EF\x1F1\x1F4"+ - "\x1F6\x1F9\x1FD\x200\x20A\x231\x23A\x249\x257\x263\x26D\x330\x338\x33F"+ - "\x343\x2"; - public static readonly ATN _ATN = - new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); -} + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\x65\x3C7\b\x1\x4" + + "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b" + + "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4" + + "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15" + + "\t\x15\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A" + + "\x4\x1B\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 " + + "\t \x4!\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t" + + ")\x4*\t*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31" + + "\x4\x32\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37" + + "\t\x37\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x4>\t>\x4" + + "?\t?\x4@\t@\x4\x41\t\x41\x4\x42\t\x42\x4\x43\t\x43\x4\x44\t\x44\x4\x45" + + "\t\x45\x4\x46\t\x46\x4G\tG\x4H\tH\x4I\tI\x4J\tJ\x4K\tK\x4L\tL\x4M\tM\x4" + + "N\tN\x4O\tO\x4P\tP\x4Q\tQ\x4R\tR\x4S\tS\x4T\tT\x4U\tU\x4V\tV\x4W\tW\x4" + + "X\tX\x4Y\tY\x4Z\tZ\x4[\t[\x4\\\t\\\x4]\t]\x4^\t^\x4_\t_\x4`\t`\x4\x61" + + "\t\x61\x4\x62\t\x62\x4\x63\t\x63\x4\x64\t\x64\x4\x65\t\x65\x4\x66\t\x66" + + "\x4g\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\t" + + "p\x4q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\t" + + "z\x4{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4" + + "\x82\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87" + + "\t\x87\x4\x88\t\x88\x4\x89\t\x89\x3\x2\x3\x2\x3\x2\x3\x2\a\x2\x118\n\x2" + + "\f\x2\xE\x2\x11B\v\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\x3\x3\x6\x3\x123\n" + + "\x3\r\x3\xE\x3\x124\x3\x3\x5\x3\x128\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x6\x4" + + "\x12E\n\x4\r\x4\xE\x4\x12F\x3\x4\x5\x4\x133\n\x4\x3\x5\x3\x5\x5\x5\x137" + + "\n\x5\x3\x5\x6\x5\x13A\n\x5\r\x5\xE\x5\x13B\x3\x5\x5\x5\x13F\n\x5\x3\x6" + + "\x3\x6\x3\x6\x3\x6\x5\x6\x145\n\x6\x3\a\x3\a\x5\a\x149\n\a\x3\a\a\a\x14C" + + "\n\a\f\a\xE\a\x14F\v\a\x3\a\x3\a\x6\a\x153\n\a\r\a\xE\a\x154\x3\a\x3\a" + + "\x3\a\x5\a\x15A\n\a\x3\b\x3\b\x3\b\x3\b\x3\t\x3\t\x5\t\x162\n\t\x3\t\x3" + + "\t\x3\t\x3\t\x5\t\x168\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x170\n\n" + + "\x3\v\x6\v\x173\n\v\r\v\xE\v\x174\x3\v\x5\v\x178\n\v\x3\f\x5\f\x17B\n" + + "\f\x3\f\x5\f\x17E\n\f\x3\f\x5\f\x181\n\f\x3\r\x3\r\x5\r\x185\n\r\x3\xE" + + "\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x5" + + "\xE\x193\n\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3" + + "\xF\x3\xF\x5\xF\x1A0\n\xF\x3\x10\x6\x10\x1A3\n\x10\r\x10\xE\x10\x1A4\x3" + + "\x10\x3\x10\x3\x10\x6\x10\x1AA\n\x10\r\x10\xE\x10\x1AB\x3\x10\x3\x10\x6" + + "\x10\x1B0\n\x10\r\x10\xE\x10\x1B1\x3\x10\x3\x10\x6\x10\x1B6\n\x10\r\x10" + + "\xE\x10\x1B7\x5\x10\x1BA\n\x10\x3\x10\x5\x10\x1BD\n\x10\x5\x10\x1BF\n" + + "\x10\x3\x11\x5\x11\x1C2\n\x11\x3\x11\x3\x11\x5\x11\x1C6\n\x11\x3\x12\x5" + + "\x12\x1C9\n\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12" + + "\x5\x12\x1D3\n\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3" + + "\x13\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\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3" + + "\x16\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3\x18\x3" + + "\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3" + + "\x1A\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3" + + "\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3" + + "\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3" + + "\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3" + + "\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"" + + "\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3\'" + + "\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3+\x3" + + "+\x3+\x3+\x3+\x3,\x3,\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3-" + + "\x3.\x3.\x3.\x3.\x3.\x3/\x3/\x3/\x3/\x3/\x3/\x3\x30\a\x30\x27A\n\x30\f" + + "\x30\xE\x30\x27D\v\x30\x3\x30\x3\x30\x3\x30\x3\x31\a\x31\x283\n\x31\f" + + "\x31\xE\x31\x286\v\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32" + + "\x3\x32\x3\x32\x3\x33\a\x33\x292\n\x33\f\x33\xE\x33\x295\v\x33\x3\x33" + + "\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x34\a\x34\x2A0\n" + + "\x34\f\x34\xE\x34\x2A3\v\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34" + + "\x3\x35\a\x35\x2AC\n\x35\f\x35\xE\x35\x2AF\v\x35\x3\x35\x3\x35\x3\x35" + + "\x3\x35\x3\x35\a\x35\x2B6\n\x35\f\x35\xE\x35\x2B9\v\x35\x3\x35\x3\x35" + + "\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x37\x3\x37\x3\x37\x3\x37\x3\x38" + + "\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3:\x3:\x3:\x3:\x3;" + + "\x3;\x3;\x3;\x3;\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3=\x3=\x3>\x3" + + ">\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3?\x3?\x3@\x3@\x3@\x3@\x3@\x3\x41\x3\x41" + + "\x3\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x43\x3\x43" + + "\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44" + + "\x3\x44\x3\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x46" + + "\x3\x46\x3\x46\x3\x46\x3\x46\x3G\x3G\x3G\x3G\x3G\x3H\x3H\x3H\x3I\x3I\x3" + + "I\x3I\x3I\x3J\x3J\x3J\x3J\x3K\x3K\x3K\x3K\x3L\x3L\x3L\x3M\x3M\x3M\x3M" + + "\x3N\x3N\x3N\x3N\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P\x3Q\x3Q\x3R\x3" + + "R\x3S\x3S\x3T\x3T\x3U\x3U\x3V\x3V\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Z\x3Z\x3[" + + "\x3[\x3\\\x3\\\x3]\x3]\x3^\x3^\x3_\x3_\x3_\x3`\x3`\x3\x61\x3\x61\x3\x61" + + "\x3\x62\x3\x62\x3\x63\x3\x63\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x66" + + "\x3\x66\x3g\x3g\x3h\x3h\x3i\x3i\x3j\x3j\x3k\x3k\x3k\x5k\x37B\nk\x3l\x3" + + "l\x3m\x3m\am\x381\nm\fm\xEm\x384\vm\x3m\x3m\x6m\x388\nm\rm\xEm\x389\x3" + + "m\x3m\x5m\x38E\nm\x3n\x3n\x3o\x3o\x3p\x3p\x3q\x3q\x3r\x3r\x3s\x3s\x3t" + + "\x3t\x3u\x3u\x3v\x3v\x3w\x3w\x3x\x3x\x3y\x3y\x3z\x3z\x3{\x3{\x3|\x3|\x3" + + "}\x3}\x3~\x3~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3\x82\x3\x82" + + "\x3\x83\x3\x83\x3\x84\x3\x84\x3\x85\x3\x85\x3\x86\x3\x86\x3\x87\x3\x87" + + "\x3\x88\x3\x88\x3\x89\x3\x89\x2\x2\x2\x8A\x3\x2\x3\x5\x2\x4\a\x2\x5\t" + + "\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\x2\x13\x2\x2\x15\x2\x2\x17\x2\x2\x19" + + "\x2\x2\x1B\x2\x2\x1D\x2\x2\x1F\x2\x2!\x2\x2#\x2\x2%\x2\n\'\x2\v)\x2\f" + + "+\x2\r-\x2\xE/\x2\xF\x31\x2\x10\x33\x2\x11\x35\x2\x12\x37\x2\x13\x39\x2" + + "\x14;\x2\x15=\x2\x16?\x2\x17\x41\x2\x18\x43\x2\x19\x45\x2\x1AG\x2\x1B" + + "I\x2\x1CK\x2\x1DM\x2\x1EO\x2\x1FQ\x2 S\x2!U\x2\"W\x2#Y\x2$[\x2%]\x2&_" + + "\x2\'\x61\x2(\x63\x2)\x65\x2*g\x2+i\x2,k\x2-m\x2.o\x2/q\x2\x30s\x2\x31" + + "u\x2\x32w\x2\x33y\x2\x34{\x2\x35}\x2\x36\x7F\x2\x37\x81\x2\x38\x83\x2" + + "\x39\x85\x2:\x87\x2;\x89\x2<\x8B\x2=\x8D\x2>\x8F\x2?\x91\x2@\x93\x2\x41" + + "\x95\x2\x42\x97\x2\x43\x99\x2\x44\x9B\x2\x45\x9D\x2\x46\x9F\x2G\xA1\x2" + + "H\xA3\x2I\xA5\x2J\xA7\x2K\xA9\x2L\xAB\x2M\xAD\x2N\xAF\x2O\xB1\x2P\xB3" + + "\x2Q\xB5\x2R\xB7\x2S\xB9\x2T\xBB\x2U\xBD\x2V\xBF\x2W\xC1\x2X\xC3\x2Y\xC5" + + "\x2Z\xC7\x2[\xC9\x2\\\xCB\x2]\xCD\x2^\xCF\x2_\xD1\x2`\xD3\x2\x61\xD5\x2" + + "\x62\xD7\x2\x63\xD9\x2\x64\xDB\x2\x2\xDD\x2\x65\xDF\x2\x2\xE1\x2\x2\xE3" + + "\x2\x2\xE5\x2\x2\xE7\x2\x2\xE9\x2\x2\xEB\x2\x2\xED\x2\x2\xEF\x2\x2\xF1" + + "\x2\x2\xF3\x2\x2\xF5\x2\x2\xF7\x2\x2\xF9\x2\x2\xFB\x2\x2\xFD\x2\x2\xFF" + + "\x2\x2\x101\x2\x2\x103\x2\x2\x105\x2\x2\x107\x2\x2\x109\x2\x2\x10B\x2" + + "\x2\x10D\x2\x2\x10F\x2\x2\x111\x2\x2\x3\x2(\x5\x2\f\f\xF\xF$$\x3\x2\x32" + + ":\x4\x2\x32;\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x5" + + "\x2\f\f\xF\xF\x202A\x202B\x4\x2\v\v\"\"\t\x2\v\f\xF\xF\"=??\x42\x42]`" + + "~~\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\x3\x2" + + "\x32;\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65" + + "\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2K" + + "Kkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2" + + "RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2" + + "YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x3E7\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2" + + "\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2" + + "\x2\x2\xF\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2" + + "\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2" + + "\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2" + + "\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2" + + "\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2" + + "\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3" + + "\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2" + + "\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2" + + "\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2" + + "\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3" + + "\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2" + + "\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3" + + "\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2" + + "\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2" + + "\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3" + + "\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2" + + "\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2" + + "\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3" + + "\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2" + + "\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2" + + "\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3" + + "\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2" + + "\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2" + + "\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x3\x113\x3" + + "\x2\x2\x2\x5\x11E\x3\x2\x2\x2\a\x129\x3\x2\x2\x2\t\x136\x3\x2\x2\x2\v" + + "\x140\x3\x2\x2\x2\r\x148\x3\x2\x2\x2\xF\x15B\x3\x2\x2\x2\x11\x167\x3\x2" + + "\x2\x2\x13\x169\x3\x2\x2\x2\x15\x177\x3\x2\x2\x2\x17\x17A\x3\x2\x2\x2" + + "\x19\x184\x3\x2\x2\x2\x1B\x192\x3\x2\x2\x2\x1D\x19F\x3\x2\x2\x2\x1F\x1BE" + + "\x3\x2\x2\x2!\x1C1\x3\x2\x2\x2#\x1C8\x3\x2\x2\x2%\x1D4\x3\x2\x2\x2\'\x1DC" + + "\x3\x2\x2\x2)\x1E5\x3\x2\x2\x2+\x1EB\x3\x2\x2\x2-\x1F1\x3\x2\x2\x2/\x1F5" + + "\x3\x2\x2\x2\x31\x1FA\x3\x2\x2\x2\x33\x1FF\x3\x2\x2\x2\x35\x206\x3\x2" + + "\x2\x2\x37\x210\x3\x2\x2\x2\x39\x218\x3\x2\x2\x2;\x221\x3\x2\x2\x2=\x22A" + + "\x3\x2\x2\x2?\x22E\x3\x2\x2\x2\x41\x232\x3\x2\x2\x2\x43\x236\x3\x2\x2" + + "\x2\x45\x23A\x3\x2\x2\x2G\x23E\x3\x2\x2\x2I\x242\x3\x2\x2\x2K\x246\x3" + + "\x2\x2\x2M\x24A\x3\x2\x2\x2O\x24E\x3\x2\x2\x2Q\x252\x3\x2\x2\x2S\x256" + + "\x3\x2\x2\x2U\x25A\x3\x2\x2\x2W\x25F\x3\x2\x2\x2Y\x265\x3\x2\x2\x2[\x26D" + + "\x3\x2\x2\x2]\x272\x3\x2\x2\x2_\x27B\x3\x2\x2\x2\x61\x284\x3\x2\x2\x2" + + "\x63\x28B\x3\x2\x2\x2\x65\x293\x3\x2\x2\x2g\x2A1\x3\x2\x2\x2i\x2AD\x3" + + "\x2\x2\x2k\x2BD\x3\x2\x2\x2m\x2C1\x3\x2\x2\x2o\x2C5\x3\x2\x2\x2q\x2C9" + + "\x3\x2\x2\x2s\x2CD\x3\x2\x2\x2u\x2D1\x3\x2\x2\x2w\x2D6\x3\x2\x2\x2y\x2DC" + + "\x3\x2\x2\x2{\x2E2\x3\x2\x2\x2}\x2E7\x3\x2\x2\x2\x7F\x2ED\x3\x2\x2\x2" + + "\x81\x2F2\x3\x2\x2\x2\x83\x2F7\x3\x2\x2\x2\x85\x2FC\x3\x2\x2\x2\x87\x304" + + "\x3\x2\x2\x2\x89\x30C\x3\x2\x2\x2\x8B\x311\x3\x2\x2\x2\x8D\x316\x3\x2" + + "\x2\x2\x8F\x31B\x3\x2\x2\x2\x91\x31E\x3\x2\x2\x2\x93\x323\x3\x2\x2\x2" + + "\x95\x327\x3\x2\x2\x2\x97\x32B\x3\x2\x2\x2\x99\x32E\x3\x2\x2\x2\x9B\x332" + + "\x3\x2\x2\x2\x9D\x336\x3\x2\x2\x2\x9F\x33A\x3\x2\x2\x2\xA1\x340\x3\x2" + + "\x2\x2\xA3\x342\x3\x2\x2\x2\xA5\x344\x3\x2\x2\x2\xA7\x346\x3\x2\x2\x2" + + "\xA9\x348\x3\x2\x2\x2\xAB\x34A\x3\x2\x2\x2\xAD\x34C\x3\x2\x2\x2\xAF\x34E" + + "\x3\x2\x2\x2\xB1\x350\x3\x2\x2\x2\xB3\x352\x3\x2\x2\x2\xB5\x354\x3\x2" + + "\x2\x2\xB7\x356\x3\x2\x2\x2\xB9\x358\x3\x2\x2\x2\xBB\x35A\x3\x2\x2\x2" + + "\xBD\x35C\x3\x2\x2\x2\xBF\x35F\x3\x2\x2\x2\xC1\x361\x3\x2\x2\x2\xC3\x364" + + "\x3\x2\x2\x2\xC5\x366\x3\x2\x2\x2\xC7\x368\x3\x2\x2\x2\xC9\x36A\x3\x2" + + "\x2\x2\xCB\x36D\x3\x2\x2\x2\xCD\x36F\x3\x2\x2\x2\xCF\x371\x3\x2\x2\x2" + + "\xD1\x373\x3\x2\x2\x2\xD3\x375\x3\x2\x2\x2\xD5\x37A\x3\x2\x2\x2\xD7\x37C" + + "\x3\x2\x2\x2\xD9\x38D\x3\x2\x2\x2\xDB\x38F\x3\x2\x2\x2\xDD\x391\x3\x2" + + "\x2\x2\xDF\x393\x3\x2\x2\x2\xE1\x395\x3\x2\x2\x2\xE3\x397\x3\x2\x2\x2" + + "\xE5\x399\x3\x2\x2\x2\xE7\x39B\x3\x2\x2\x2\xE9\x39D\x3\x2\x2\x2\xEB\x39F" + + "\x3\x2\x2\x2\xED\x3A1\x3\x2\x2\x2\xEF\x3A3\x3\x2\x2\x2\xF1\x3A5\x3\x2" + + "\x2\x2\xF3\x3A7\x3\x2\x2\x2\xF5\x3A9\x3\x2\x2\x2\xF7\x3AB\x3\x2\x2\x2" + + "\xF9\x3AD\x3\x2\x2\x2\xFB\x3AF\x3\x2\x2\x2\xFD\x3B1\x3\x2\x2\x2\xFF\x3B3" + + "\x3\x2\x2\x2\x101\x3B5\x3\x2\x2\x2\x103\x3B7\x3\x2\x2\x2\x105\x3B9\x3" + + "\x2\x2\x2\x107\x3BB\x3\x2\x2\x2\x109\x3BD\x3\x2\x2\x2\x10B\x3BF\x3\x2" + + "\x2\x2\x10D\x3C1\x3\x2\x2\x2\x10F\x3C3\x3\x2\x2\x2\x111\x3C5\x3\x2\x2" + + "\x2\x113\x119\a$\x2\x2\x114\x118\n\x2\x2\x2\x115\x116\a$\x2\x2\x116\x118" + + "\a$\x2\x2\x117\x114\x3\x2\x2\x2\x117\x115\x3\x2\x2\x2\x118\x11B\x3\x2" + + "\x2\x2\x119\x117\x3\x2\x2\x2\x119\x11A\x3\x2\x2\x2\x11A\x11C\x3\x2\x2" + + "\x2\x11B\x119\x3\x2\x2\x2\x11C\x11D\a$\x2\x2\x11D\x4\x3\x2\x2\x2\x11E" + + "\x11F\a(\x2\x2\x11F\x120\aQ\x2\x2\x120\x122\x3\x2\x2\x2\x121\x123\t\x3" + + "\x2\x2\x122\x121\x3\x2\x2\x2\x123\x124\x3\x2\x2\x2\x124\x122\x3\x2\x2" + + "\x2\x124\x125\x3\x2\x2\x2\x125\x127\x3\x2\x2\x2\x126\x128\a(\x2\x2\x127" + + "\x126\x3\x2\x2\x2\x127\x128\x3\x2\x2\x2\x128\x6\x3\x2\x2\x2\x129\x12A" + + "\a(\x2\x2\x12A\x12B\aJ\x2\x2\x12B\x12D\x3\x2\x2\x2\x12C\x12E\t\x4\x2\x2" + + "\x12D\x12C\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x12D\x3\x2\x2\x2\x12F" + + "\x130\x3\x2\x2\x2\x130\x132\x3\x2\x2\x2\x131\x133\a(\x2\x2\x132\x131\x3" + + "\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\b\x3\x2\x2\x2\x134\x137\x5\xCB\x66" + + "\x2\x135\x137\x5\xC5\x63\x2\x136\x134\x3\x2\x2\x2\x136\x135\x3\x2\x2\x2" + + "\x136\x137\x3\x2\x2\x2\x137\x139\x3\x2\x2\x2\x138\x13A\x5\xDBn\x2\x139" + + "\x138\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x139\x3\x2\x2\x2\x13B\x13C" + + "\x3\x2\x2\x2\x13C\x13E\x3\x2\x2\x2\x13D\x13F\t\x5\x2\x2\x13E\x13D\x3\x2" + + "\x2\x2\x13E\x13F\x3\x2\x2\x2\x13F\n\x3\x2\x2\x2\x140\x144\x5\t\x5\x2\x141" + + "\x142\x5\xE7t\x2\x142\x143\x5\t\x5\x2\x143\x145\x3\x2\x2\x2\x144\x141" + + "\x3\x2\x2\x2\x144\x145\x3\x2\x2\x2\x145\f\x3\x2\x2\x2\x146\x149\x5\xCB" + + "\x66\x2\x147\x149\x5\xC5\x63\x2\x148\x146\x3\x2\x2\x2\x148\x147\x3\x2" + + "\x2\x2\x148\x149\x3\x2\x2\x2\x149\x14D\x3\x2\x2\x2\x14A\x14C\x5\xDBn\x2" + + "\x14B\x14A\x3\x2\x2\x2\x14C\x14F\x3\x2\x2\x2\x14D\x14B\x3\x2\x2\x2\x14D" + + "\x14E\x3\x2\x2\x2\x14E\x150\x3\x2\x2\x2\x14F\x14D\x3\x2\x2\x2\x150\x152" + + "\a\x30\x2\x2\x151\x153\x5\xDBn\x2\x152\x151\x3\x2\x2\x2\x153\x154\x3\x2" + + "\x2\x2\x154\x152\x3\x2\x2\x2\x154\x155\x3\x2\x2\x2\x155\x159\x3\x2\x2" + + "\x2\x156\x157\x5\xE7t\x2\x157\x158\x5\t\x5\x2\x158\x15A\x3\x2\x2\x2\x159" + + "\x156\x3\x2\x2\x2\x159\x15A\x3\x2\x2\x2\x15A\xE\x3\x2\x2\x2\x15B\x15C" + + "\a%\x2\x2\x15C\x15D\x5\x11\t\x2\x15D\x15E\a%\x2\x2\x15E\x10\x3\x2\x2\x2" + + "\x15F\x161\x5\x13\n\x2\x160\x162\x5\xD7l\x2\x161\x160\x3\x2\x2\x2\x161" + + "\x162\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164\x5\x1F\x10\x2\x164\x168" + + "\x3\x2\x2\x2\x165\x168\x5\x13\n\x2\x166\x168\x5\x1F\x10\x2\x167\x15F\x3" + + "\x2\x2\x2\x167\x165\x3\x2\x2\x2\x167\x166\x3\x2\x2\x2\x168\x12\x3\x2\x2" + + "\x2\x169\x16A\x5\x15\v\x2\x16A\x16B\x5\x17\f\x2\x16B\x16F\x5\x15\v\x2" + + "\x16C\x16D\x5\x17\f\x2\x16D\x16E\x5\x15\v\x2\x16E\x170\x3\x2\x2\x2\x16F" + + "\x16C\x3\x2\x2\x2\x16F\x170\x3\x2\x2\x2\x170\x14\x3\x2\x2\x2\x171\x173" + + "\x5\xDBn\x2\x172\x171\x3\x2\x2\x2\x173\x174\x3\x2\x2\x2\x174\x172\x3\x2" + + "\x2\x2\x174\x175\x3\x2\x2\x2\x175\x178\x3\x2\x2\x2\x176\x178\x5\x19\r" + + "\x2\x177\x172\x3\x2\x2\x2\x177\x176\x3\x2\x2\x2\x178\x16\x3\x2\x2\x2\x179" + + "\x17B\x5\xD7l\x2\x17A\x179\x3\x2\x2\x2\x17A\x17B\x3\x2\x2\x2\x17B\x17D" + + "\x3\x2\x2\x2\x17C\x17E\t\x6\x2\x2\x17D\x17C\x3\x2\x2\x2\x17D\x17E\x3\x2" + + "\x2\x2\x17E\x180\x3\x2\x2\x2\x17F\x181\x5\xD7l\x2\x180\x17F\x3\x2\x2\x2" + + "\x180\x181\x3\x2\x2\x2\x181\x18\x3\x2\x2\x2\x182\x185\x5\x1B\xE\x2\x183" + + "\x185\x5\x1D\xF\x2\x184\x182\x3\x2\x2\x2\x184\x183\x3\x2\x2\x2\x185\x1A" + + "\x3\x2\x2\x2\x186\x193\x5%\x13\x2\x187\x193\x5\'\x14\x2\x188\x193\x5)" + + "\x15\x2\x189\x193\x5+\x16\x2\x18A\x193\x5-\x17\x2\x18B\x193\x5/\x18\x2" + + "\x18C\x193\x5\x31\x19\x2\x18D\x193\x5\x33\x1A\x2\x18E\x193\x5\x35\x1B" + + "\x2\x18F\x193\x5\x37\x1C\x2\x190\x193\x5\x39\x1D\x2\x191\x193\x5;\x1E" + + "\x2\x192\x186\x3\x2\x2\x2\x192\x187\x3\x2\x2\x2\x192\x188\x3\x2\x2\x2" + + "\x192\x189\x3\x2\x2\x2\x192\x18A\x3\x2\x2\x2\x192\x18B\x3\x2\x2\x2\x192" + + "\x18C\x3\x2\x2\x2\x192\x18D\x3\x2\x2\x2\x192\x18E\x3\x2\x2\x2\x192\x18F" + + "\x3\x2\x2\x2\x192\x190\x3\x2\x2\x2\x192\x191\x3\x2\x2\x2\x193\x1C\x3\x2" + + "\x2\x2\x194\x1A0\x5=\x1F\x2\x195\x1A0\x5? \x2\x196\x1A0\x5\x41!\x2\x197" + + "\x1A0\x5\x43\"\x2\x198\x1A0\x5\x45#\x2\x199\x1A0\x5G$\x2\x19A\x1A0\x5" + + "I%\x2\x19B\x1A0\x5K&\x2\x19C\x1A0\x5M\'\x2\x19D\x1A0\x5O(\x2\x19E\x1A0" + + "\x5Q)\x2\x19F\x194\x3\x2\x2\x2\x19F\x195\x3\x2\x2\x2\x19F\x196\x3\x2\x2" + + "\x2\x19F\x197\x3\x2\x2\x2\x19F\x198\x3\x2\x2\x2\x19F\x199\x3\x2\x2\x2" + + "\x19F\x19A\x3\x2\x2\x2\x19F\x19B\x3\x2\x2\x2\x19F\x19C\x3\x2\x2\x2\x19F" + + "\x19D\x3\x2\x2\x2\x19F\x19E\x3\x2\x2\x2\x1A0\x1E\x3\x2\x2\x2\x1A1\x1A3" + + "\x5\xDBn\x2\x1A2\x1A1\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x1A2\x3\x2" + + "\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A6\x3\x2\x2\x2\x1A6\x1A7\x5#\x12\x2" + + "\x1A7\x1BF\x3\x2\x2\x2\x1A8\x1AA\x5\xDBn\x2\x1A9\x1A8\x3\x2\x2\x2\x1AA" + + "\x1AB\x3\x2\x2\x2\x1AB\x1A9\x3\x2\x2\x2\x1AB\x1AC\x3\x2\x2\x2\x1AC\x1AD" + + "\x3\x2\x2\x2\x1AD\x1AF\x5!\x11\x2\x1AE\x1B0\x5\xDBn\x2\x1AF\x1AE\x3\x2" + + "\x2\x2\x1B0\x1B1\x3\x2\x2\x2\x1B1\x1AF\x3\x2\x2\x2\x1B1\x1B2\x3\x2\x2" + + "\x2\x1B2\x1B9\x3\x2\x2\x2\x1B3\x1B5\x5!\x11\x2\x1B4\x1B6\x5\xDBn\x2\x1B5" + + "\x1B4\x3\x2\x2\x2\x1B6\x1B7\x3\x2\x2\x2\x1B7\x1B5\x3\x2\x2\x2\x1B7\x1B8" + + "\x3\x2\x2\x2\x1B8\x1BA\x3\x2\x2\x2\x1B9\x1B3\x3\x2\x2\x2\x1B9\x1BA\x3" + + "\x2\x2\x2\x1BA\x1BC\x3\x2\x2\x2\x1BB\x1BD\x5#\x12\x2\x1BC\x1BB\x3\x2\x2" + + "\x2\x1BC\x1BD\x3\x2\x2\x2\x1BD\x1BF\x3\x2\x2\x2\x1BE\x1A2\x3\x2\x2\x2" + + "\x1BE\x1A9\x3\x2\x2\x2\x1BF \x3\x2\x2\x2\x1C0\x1C2\x5\xD7l\x2\x1C1\x1C0" + + "\x3\x2\x2\x2\x1C1\x1C2\x3\x2\x2\x2\x1C2\x1C3\x3\x2\x2\x2\x1C3\x1C5\t\a" + + "\x2\x2\x1C4\x1C6\x5\xD7l\x2\x1C5\x1C4\x3\x2\x2\x2\x1C5\x1C6\x3\x2\x2\x2" + + "\x1C6\"\x3\x2\x2\x2\x1C7\x1C9\x5\xD7l\x2\x1C8\x1C7\x3\x2\x2\x2\x1C8\x1C9" + + "\x3\x2\x2\x2\x1C9\x1D2\x3\x2\x2\x2\x1CA\x1CB\x5\xDFp\x2\x1CB\x1CC\x5\xF7" + + "|\x2\x1CC\x1D3\x3\x2\x2\x2\x1CD\x1CE\x5\xFD\x7F\x2\x1CE\x1CF\x5\xF7|\x2" + + "\x1CF\x1D3\x3\x2\x2\x2\x1D0\x1D3\x5\xDFp\x2\x1D1\x1D3\x5\xFD\x7F\x2\x1D2" + + "\x1CA\x3\x2\x2\x2\x1D2\x1CD\x3\x2\x2\x2\x1D2\x1D0\x3\x2\x2\x2\x1D2\x1D1" + + "\x3\x2\x2\x2\x1D3$\x3\x2\x2\x2\x1D4\x1D5\x5\xF1y\x2\x1D5\x1D6\x5\xDFp" + + "\x2\x1D6\x1D7\x5\xF9}\x2\x1D7\x1D8\x5\x107\x84\x2\x1D8\x1D9\x5\xDFp\x2" + + "\x1D9\x1DA\x5\x101\x81\x2\x1DA\x1DB\x5\x10F\x88\x2\x1DB&\x3\x2\x2\x2\x1DC" + + "\x1DD\x5\xE9u\x2\x1DD\x1DE\x5\xE7t\x2\x1DE\x1DF\x5\xE1q\x2\x1DF\x1E0\x5" + + "\x101\x81\x2\x1E0\x1E1\x5\x107\x84\x2\x1E1\x1E2\x5\xDFp\x2\x1E2\x1E3\x5" + + "\x101\x81\x2\x1E3\x1E4\x5\x10F\x88\x2\x1E4(\x3\x2\x2\x2\x1E5\x1E6\x5\xF7" + + "|\x2\x1E6\x1E7\x5\xDFp\x2\x1E7\x1E8\x5\x101\x81\x2\x1E8\x1E9\x5\xE3r\x2" + + "\x1E9\x1EA\x5\xEDw\x2\x1EA*\x3\x2\x2\x2\x1EB\x1EC\x5\xDFp\x2\x1EC\x1ED" + + "\x5\xFD\x7F\x2\x1ED\x1EE\x5\x101\x81\x2\x1EE\x1EF\x5\xEFx\x2\x1EF\x1F0" + + "\x5\xF5{\x2\x1F0,\x3\x2\x2\x2\x1F1\x1F2\x5\xF7|\x2\x1F2\x1F3\x5\xDFp\x2" + + "\x1F3\x1F4\x5\x10F\x88\x2\x1F4.\x3\x2\x2\x2\x1F5\x1F6\x5\xF1y\x2\x1F6" + + "\x1F7\x5\x107\x84\x2\x1F7\x1F8\x5\xF9}\x2\x1F8\x1F9\x5\xE7t\x2\x1F9\x30" + + "\x3\x2\x2\x2\x1FA\x1FB\x5\xF1y\x2\x1FB\x1FC\x5\x107\x84\x2\x1FC\x1FD\x5" + + "\xF5{\x2\x1FD\x1FE\x5\x10F\x88\x2\x1FE\x32\x3\x2\x2\x2\x1FF\x200\x5\xDF" + + "p\x2\x200\x201\x5\x107\x84\x2\x201\x202\x5\xEBv\x2\x202\x203\x5\x107\x84" + + "\x2\x203\x204\x5\x103\x82\x2\x204\x205\x5\x105\x83\x2\x205\x34\x3\x2\x2" + + "\x2\x206\x207\x5\x103\x82\x2\x207\x208\x5\xE7t\x2\x208\x209\x5\xFD\x7F" + + "\x2\x209\x20A\x5\x105\x83\x2\x20A\x20B\x5\xE7t\x2\x20B\x20C\x5\xF7|\x2" + + "\x20C\x20D\x5\xE1q\x2\x20D\x20E\x5\xE7t\x2\x20E\x20F\x5\x101\x81\x2\x20F" + + "\x36\x3\x2\x2\x2\x210\x211\x5\xFB~\x2\x211\x212\x5\xE3r\x2\x212\x213\x5" + + "\x105\x83\x2\x213\x214\x5\xFB~\x2\x214\x215\x5\xE1q\x2\x215\x216\x5\xE7" + + "t\x2\x216\x217\x5\x101\x81\x2\x217\x38\x3\x2\x2\x2\x218\x219\x5\xF9}\x2" + + "\x219\x21A\x5\xFB~\x2\x21A\x21B\x5\x109\x85\x2\x21B\x21C\x5\xE7t\x2\x21C" + + "\x21D\x5\xF7|\x2\x21D\x21E\x5\xE1q\x2\x21E\x21F\x5\xE7t\x2\x21F\x220\x5" + + "\x101\x81\x2\x220:\x3\x2\x2\x2\x221\x222\x5\xE5s\x2\x222\x223\x5\xE7t" + + "\x2\x223\x224\x5\xE3r\x2\x224\x225\x5\xE7t\x2\x225\x226\x5\xF7|\x2\x226" + + "\x227\x5\xE1q\x2\x227\x228\x5\xE7t\x2\x228\x229\x5\x101\x81\x2\x229<\x3" + + "\x2\x2\x2\x22A\x22B\x5\xF1y\x2\x22B\x22C\x5\xDFp\x2\x22C\x22D\x5\xF9}" + + "\x2\x22D>\x3\x2\x2\x2\x22E\x22F\x5\xE9u\x2\x22F\x230\x5\xE7t\x2\x230\x231" + + "\x5\xE1q\x2\x231@\x3\x2\x2\x2\x232\x233\x5\xF7|\x2\x233\x234\x5\xDFp\x2" + + "\x234\x235\x5\x101\x81\x2\x235\x42\x3\x2\x2\x2\x236\x237\x5\xDFp\x2\x237" + + "\x238\x5\xFD\x7F\x2\x238\x239\x5\x101\x81\x2\x239\x44\x3\x2\x2\x2\x23A" + + "\x23B\x5\xF1y\x2\x23B\x23C\x5\x107\x84\x2\x23C\x23D\x5\xF9}\x2\x23D\x46" + + "\x3\x2\x2\x2\x23E\x23F\x5\xF1y\x2\x23F\x240\x5\x107\x84\x2\x240\x241\x5" + + "\xF5{\x2\x241H\x3\x2\x2\x2\x242\x243\x5\xDFp\x2\x243\x244\x5\x107\x84" + + "\x2\x244\x245\x5\xEBv\x2\x245J\x3\x2\x2\x2\x246\x247\x5\x103\x82\x2\x247" + + "\x248\x5\xE7t\x2\x248\x249\x5\xFD\x7F\x2\x249L\x3\x2\x2\x2\x24A\x24B\x5" + + "\xFB~\x2\x24B\x24C\x5\xE3r\x2\x24C\x24D\x5\x105\x83\x2\x24DN\x3\x2\x2" + + "\x2\x24E\x24F\x5\xF9}\x2\x24F\x250\x5\xFB~\x2\x250\x251\x5\x109\x85\x2" + + "\x251P\x3\x2\x2\x2\x252\x253\x5\xE5s\x2\x253\x254\x5\xE7t\x2\x254\x255" + + "\x5\xE3r\x2\x255R\x3\x2\x2\x2\x256\x257\x5\xF9}\x2\x257\x258\x5\xFB~\x2" + + "\x258\x259\x5\x105\x83\x2\x259T\x3\x2\x2\x2\x25A\x25B\x5\x105\x83\x2\x25B" + + "\x25C\x5\x101\x81\x2\x25C\x25D\x5\x107\x84\x2\x25D\x25E\x5\xE7t\x2\x25E" + + "V\x3\x2\x2\x2\x25F\x260\x5\xE9u\x2\x260\x261\x5\xDFp\x2\x261\x262\x5\xF5" + + "{\x2\x262\x263\x5\x103\x82\x2\x263\x264\x5\xE7t\x2\x264X\x3\x2\x2\x2\x265" + + "\x266\x5\xF9}\x2\x266\x267\x5\xFB~\x2\x267\x268\x5\x105\x83\x2\x268\x269" + + "\x5\xEDw\x2\x269\x26A\x5\xEFx\x2\x26A\x26B\x5\xF9}\x2\x26B\x26C\x5\xEB" + + "v\x2\x26CZ\x3\x2\x2\x2\x26D\x26E\x5\xF9}\x2\x26E\x26F\x5\x107\x84\x2\x26F" + + "\x270\x5\xF5{\x2\x270\x271\x5\xF5{\x2\x271\\\x3\x2\x2\x2\x272\x273\x5" + + "\xE7t\x2\x273\x274\x5\xF7|\x2\x274\x275\x5\xFD\x7F\x2\x275\x276\x5\x105" + + "\x83\x2\x276\x277\x5\x10F\x88\x2\x277^\x3\x2\x2\x2\x278\x27A\x5\xD7l\x2" + + "\x279\x278\x3\x2\x2\x2\x27A\x27D\x3\x2\x2\x2\x27B\x279\x3\x2\x2\x2\x27B" + + "\x27C\x3\x2\x2\x2\x27C\x27E\x3\x2\x2\x2\x27D\x27B\x3\x2\x2\x2\x27E\x27F" + + "\x5\xA1Q\x2\x27F\x280\x5\x9FP\x2\x280`\x3\x2\x2\x2\x281\x283\x5\xD7l\x2" + + "\x282\x281\x3\x2\x2\x2\x283\x286\x3\x2\x2\x2\x284\x282\x3\x2\x2\x2\x284" + + "\x285\x3\x2\x2\x2\x285\x287\x3\x2\x2\x2\x286\x284\x3\x2\x2\x2\x287\x288" + + "\x5\xA1Q\x2\x288\x289\x5\xEFx\x2\x289\x28A\x5\xE9u\x2\x28A\x62\x3\x2\x2" + + "\x2\x28B\x28C\x5\x105\x83\x2\x28C\x28D\x5\xEDw\x2\x28D\x28E\x5\xE7t\x2" + + "\x28E\x28F\x5\xF9}\x2\x28F\x64\x3\x2\x2\x2\x290\x292\x5\xD7l\x2\x291\x290" + + "\x3\x2\x2\x2\x292\x295\x3\x2\x2\x2\x293\x291\x3\x2\x2\x2\x293\x294\x3" + + "\x2\x2\x2\x294\x296\x3\x2\x2\x2\x295\x293\x3\x2\x2\x2\x296\x297\x5\xA1" + + "Q\x2\x297\x298\x5\xE7t\x2\x298\x299\x5\xF5{\x2\x299\x29A\x5\x103\x82\x2" + + "\x29A\x29B\x5\xE7t\x2\x29B\x29C\x5\xEFx\x2\x29C\x29D\x5\xE9u\x2\x29D\x66" + + "\x3\x2\x2\x2\x29E\x2A0\x5\xD7l\x2\x29F\x29E\x3\x2\x2\x2\x2A0\x2A3\x3\x2" + + "\x2\x2\x2A1\x29F\x3\x2\x2\x2\x2A1\x2A2\x3\x2\x2\x2\x2A2\x2A4\x3\x2\x2" + + "\x2\x2A3\x2A1\x3\x2\x2\x2\x2A4\x2A5\x5\xA1Q\x2\x2A5\x2A6\x5\xE7t\x2\x2A6" + + "\x2A7\x5\xF5{\x2\x2A7\x2A8\x5\x103\x82\x2\x2A8\x2A9\x5\xE7t\x2\x2A9h\x3" + + "\x2\x2\x2\x2AA\x2AC\x5\xD7l\x2\x2AB\x2AA\x3\x2\x2\x2\x2AC\x2AF\x3\x2\x2" + + "\x2\x2AD\x2AB\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2\x2\x2AE\x2B0\x3\x2\x2\x2" + + "\x2AF\x2AD\x3\x2\x2\x2\x2B0\x2B1\x5\xA1Q\x2\x2B1\x2B2\x5\xE7t\x2\x2B2" + + "\x2B3\x5\xF9}\x2\x2B3\x2B7\x5\xE5s\x2\x2B4\x2B6\x5\xD7l\x2\x2B5\x2B4\x3" + + "\x2\x2\x2\x2B6\x2B9\x3\x2\x2\x2\x2B7\x2B5\x3\x2\x2\x2\x2B7\x2B8\x3\x2" + + "\x2\x2\x2B8\x2BA\x3\x2\x2\x2\x2B9\x2B7\x3\x2\x2\x2\x2BA\x2BB\x5\xEFx\x2" + + "\x2BB\x2BC\x5\xE9u\x2\x2BCj\x3\x2\x2\x2\x2BD\x2BE\x5\xEFx\x2\x2BE\x2BF" + + "\x5\xF9}\x2\x2BF\x2C0\x5\x105\x83\x2\x2C0l\x3\x2\x2\x2\x2C1\x2C2\x5\xE9" + + "u\x2\x2C2\x2C3\x5\xEFx\x2\x2C3\x2C4\x5\x10D\x87\x2\x2C4n\x3\x2\x2\x2\x2C5" + + "\x2C6\x5\xDFp\x2\x2C6\x2C7\x5\xE1q\x2\x2C7\x2C8\x5\x103\x82\x2\x2C8p\x3" + + "\x2\x2\x2\x2C9\x2CA\x5\x103\x82\x2\x2CA\x2CB\x5\xEBv\x2\x2CB\x2CC\x5\xF9" + + "}\x2\x2CCr\x3\x2\x2\x2\x2CD\x2CE\x5\xF5{\x2\x2CE\x2CF\x5\xE7t\x2\x2CF" + + "\x2D0\x5\xF9}\x2\x2D0t\x3\x2\x2\x2\x2D1\x2D2\x5\xF5{\x2\x2D2\x2D3\x5\xE7" + + "t\x2\x2D3\x2D4\x5\xF9}\x2\x2D4\x2D5\x5\xE1q\x2\x2D5v\x3\x2\x2\x2\x2D6" + + "\x2D7\x5\xE3r\x2\x2D7\x2D8\x5\xE1q\x2\x2D8\x2D9\x5\xFB~\x2\x2D9\x2DA\x5" + + "\xFB~\x2\x2DA\x2DB\x5\xF5{\x2\x2DBx\x3\x2\x2\x2\x2DC\x2DD\x5\xE3r\x2\x2DD" + + "\x2DE\x5\xE1q\x2\x2DE\x2DF\x5\x10F\x88\x2\x2DF\x2E0\x5\x105\x83\x2\x2E0" + + "\x2E1\x5\xE7t\x2\x2E1z\x3\x2\x2\x2\x2E2\x2E3\x5\xE3r\x2\x2E3\x2E4\x5\xE3" + + "r\x2\x2E4\x2E5\x5\x107\x84\x2\x2E5\x2E6\x5\x101\x81\x2\x2E6|\x3\x2\x2" + + "\x2\x2E7\x2E8\x5\xE3r\x2\x2E8\x2E9\x5\xE5s\x2\x2E9\x2EA\x5\xDFp\x2\x2EA" + + "\x2EB\x5\x105\x83\x2\x2EB\x2EC\x5\xE7t\x2\x2EC~\x3\x2\x2\x2\x2ED\x2EE" + + "\x5\xE3r\x2\x2EE\x2EF\x5\xE5s\x2\x2EF\x2F0\x5\xE1q\x2\x2F0\x2F1\x5\xF5" + + "{\x2\x2F1\x80\x3\x2\x2\x2\x2F2\x2F3\x5\xE3r\x2\x2F3\x2F4\x5\xEFx\x2\x2F4" + + "\x2F5\x5\xF9}\x2\x2F5\x2F6\x5\x105\x83\x2\x2F6\x82\x3\x2\x2\x2\x2F7\x2F8" + + "\x5\xE3r\x2\x2F8\x2F9\x5\xF5{\x2\x2F9\x2FA\x5\xF9}\x2\x2FA\x2FB\x5\xEB" + + "v\x2\x2FB\x84\x3\x2\x2\x2\x2FC\x2FD\x5\xE3r\x2\x2FD\x2FE\x5\xF5{\x2\x2FE" + + "\x2FF\x5\xF9}\x2\x2FF\x300\x5\xEBv\x2\x300\x301\x5\xF5{\x2\x301\x302\x5" + + "\xF9}\x2\x302\x303\x5\xEBv\x2\x303\x86\x3\x2\x2\x2\x304\x305\x5\xE3r\x2" + + "\x305\x306\x5\xF5{\x2\x306\x307\x5\xF9}\x2\x307\x308\x5\xEBv\x2\x308\x309" + + "\x5\xFD\x7F\x2\x309\x30A\x5\x105\x83\x2\x30A\x30B\x5\x101\x81\x2\x30B" + + "\x88\x3\x2\x2\x2\x30C\x30D\x5\xE3r\x2\x30D\x30E\x5\x103\x82\x2\x30E\x30F" + + "\x5\xF9}\x2\x30F\x310\x5\xEBv\x2\x310\x8A\x3\x2\x2\x2\x311\x312\x5\xE3" + + "r\x2\x312\x313\x5\x103\x82\x2\x313\x314\x5\x105\x83\x2\x314\x315\x5\x101" + + "\x81\x2\x315\x8C\x3\x2\x2\x2\x316\x317\x5\xE3r\x2\x317\x318\x5\x109\x85" + + "\x2\x318\x319\x5\xDFp\x2\x319\x31A\x5\x101\x81\x2\x31A\x8E\x3\x2\x2\x2" + + "\x31B\x31C\x5\xEFx\x2\x31C\x31D\x5\x103\x82\x2\x31D\x90\x3\x2\x2\x2\x31E" + + "\x31F\x5\xF5{\x2\x31F\x320\x5\xEFx\x2\x320\x321\x5\xF3z\x2\x321\x322\x5" + + "\xE7t\x2\x322\x92\x3\x2\x2\x2\x323\x324\x5\xF7|\x2\x324\x325\x5\xFB~\x2" + + "\x325\x326\x5\xE5s\x2\x326\x94\x3\x2\x2\x2\x327\x328\x5\xDFp\x2\x328\x329" + + "\x5\xF9}\x2\x329\x32A\x5\xE5s\x2\x32A\x96\x3\x2\x2\x2\x32B\x32C\x5\xFB" + + "~\x2\x32C\x32D\x5\x101\x81\x2\x32D\x98\x3\x2\x2\x2\x32E\x32F\x5\x10D\x87" + + "\x2\x32F\x330\x5\xFB~\x2\x330\x331\x5\x101\x81\x2\x331\x9A\x3\x2\x2\x2" + + "\x332\x333\x5\xE7t\x2\x333\x334\x5\xFF\x80\x2\x334\x335\x5\x109\x85\x2" + + "\x335\x9C\x3\x2\x2\x2\x336\x337\x5\xEFx\x2\x337\x338\x5\xF7|\x2\x338\x339" + + "\x5\xFD\x7F\x2\x339\x9E\x3\x2\x2\x2\x33A\x33B\x5\xE3r\x2\x33B\x33C\x5" + + "\xFB~\x2\x33C\x33D\x5\xF9}\x2\x33D\x33E\x5\x103\x82\x2\x33E\x33F\x5\x105" + + "\x83\x2\x33F\xA0\x3\x2\x2\x2\x340\x341\a%\x2\x2\x341\xA2\x3\x2\x2\x2\x342" + + "\x343\a(\x2\x2\x343\xA4\x3\x2\x2\x2\x344\x345\a\'\x2\x2\x345\xA6\x3\x2" + + "\x2\x2\x346\x347\a#\x2\x2\x347\xA8\x3\x2\x2\x2\x348\x349\a\x42\x2\x2\x349" + + "\xAA\x3\x2\x2\x2\x34A\x34B\a&\x2\x2\x34B\xAC\x3\x2\x2\x2\x34C\x34D\a*" + + "\x2\x2\x34D\xAE\x3\x2\x2\x2\x34E\x34F\a+\x2\x2\x34F\xB0\x3\x2\x2\x2\x350" + + "\x351\a]\x2\x2\x351\xB2\x3\x2\x2\x2\x352\x353\a_\x2\x2\x353\xB4\x3\x2" + + "\x2\x2\x354\x355\a\x61\x2\x2\x355\xB6\x3\x2\x2\x2\x356\x357\a?\x2\x2\x357" + + "\xB8\x3\x2\x2\x2\x358\x359\a\x31\x2\x2\x359\xBA\x3\x2\x2\x2\x35A\x35B" + + "\a^\x2\x2\x35B\xBC\x3\x2\x2\x2\x35C\x35D\a@\x2\x2\x35D\x35E\a?\x2\x2\x35E" + + "\xBE\x3\x2\x2\x2\x35F\x360\a@\x2\x2\x360\xC0\x3\x2\x2\x2\x361\x362\a>" + + "\x2\x2\x362\x363\a?\x2\x2\x363\xC2\x3\x2\x2\x2\x364\x365\a>\x2\x2\x365" + + "\xC4\x3\x2\x2\x2\x366\x367\a/\x2\x2\x367\xC6\x3\x2\x2\x2\x368\x369\a," + + "\x2\x2\x369\xC8\x3\x2\x2\x2\x36A\x36B\a>\x2\x2\x36B\x36C\a@\x2\x2\x36C" + + "\xCA\x3\x2\x2\x2\x36D\x36E\a-\x2\x2\x36E\xCC\x3\x2\x2\x2\x36F\x370\a`" + + "\x2\x2\x370\xCE\x3\x2\x2\x2\x371\x372\a)\x2\x2\x372\xD0\x3\x2\x2\x2\x373" + + "\x374\a\x30\x2\x2\x374\xD2\x3\x2\x2\x2\x375\x376\a.\x2\x2\x376\xD4\x3" + + "\x2\x2\x2\x377\x378\a\xF\x2\x2\x378\x37B\a\f\x2\x2\x379\x37B\t\b\x2\x2" + + "\x37A\x377\x3\x2\x2\x2\x37A\x379\x3\x2\x2\x2\x37B\xD6\x3\x2\x2\x2\x37C" + + "\x37D\t\t\x2\x2\x37D\xD8\x3\x2\x2\x2\x37E\x382\n\n\x2\x2\x37F\x381\n\v" + + "\x2\x2\x380\x37F\x3\x2\x2\x2\x381\x384\x3\x2\x2\x2\x382\x380\x3\x2\x2" + + "\x2\x382\x383\x3\x2\x2\x2\x383\x38E\x3\x2\x2\x2\x384\x382\x3\x2\x2\x2" + + "\x385\x387\x5\xB1Y\x2\x386\x388\n\f\x2\x2\x387\x386\x3\x2\x2\x2\x388\x389" + + "\x3\x2\x2\x2\x389\x387\x3\x2\x2\x2\x389\x38A\x3\x2\x2\x2\x38A\x38B\x3" + + "\x2\x2\x2\x38B\x38C\x5\xB3Z\x2\x38C\x38E\x3\x2\x2\x2\x38D\x37E\x3\x2\x2" + + "\x2\x38D\x385\x3\x2\x2\x2\x38E\xDA\x3\x2\x2\x2\x38F\x390\t\r\x2\x2\x390" + + "\xDC\x3\x2\x2\x2\x391\x392\v\x2\x2\x2\x392\xDE\x3\x2\x2\x2\x393\x394\t" + + "\xE\x2\x2\x394\xE0\x3\x2\x2\x2\x395\x396\t\xF\x2\x2\x396\xE2\x3\x2\x2" + + "\x2\x397\x398\t\x10\x2\x2\x398\xE4\x3\x2\x2\x2\x399\x39A\t\x11\x2\x2\x39A" + + "\xE6\x3\x2\x2\x2\x39B\x39C\t\x12\x2\x2\x39C\xE8\x3\x2\x2\x2\x39D\x39E" + + "\t\x13\x2\x2\x39E\xEA\x3\x2\x2\x2\x39F\x3A0\t\x14\x2\x2\x3A0\xEC\x3\x2" + + "\x2\x2\x3A1\x3A2\t\x15\x2\x2\x3A2\xEE\x3\x2\x2\x2\x3A3\x3A4\t\x16\x2\x2" + + "\x3A4\xF0\x3\x2\x2\x2\x3A5\x3A6\t\x17\x2\x2\x3A6\xF2\x3\x2\x2\x2\x3A7" + + "\x3A8\t\x18\x2\x2\x3A8\xF4\x3\x2\x2\x2\x3A9\x3AA\t\x19\x2\x2\x3AA\xF6" + + "\x3\x2\x2\x2\x3AB\x3AC\t\x1A\x2\x2\x3AC\xF8\x3\x2\x2\x2\x3AD\x3AE\t\x1B" + + "\x2\x2\x3AE\xFA\x3\x2\x2\x2\x3AF\x3B0\t\x1C\x2\x2\x3B0\xFC\x3\x2\x2\x2" + + "\x3B1\x3B2\t\x1D\x2\x2\x3B2\xFE\x3\x2\x2\x2\x3B3\x3B4\t\x1E\x2\x2\x3B4" + + "\x100\x3\x2\x2\x2\x3B5\x3B6\t\x1F\x2\x2\x3B6\x102\x3\x2\x2\x2\x3B7\x3B8" + + "\t \x2\x2\x3B8\x104\x3\x2\x2\x2\x3B9\x3BA\t!\x2\x2\x3BA\x106\x3\x2\x2" + + "\x2\x3BB\x3BC\t\"\x2\x2\x3BC\x108\x3\x2\x2\x2\x3BD\x3BE\t#\x2\x2\x3BE" + + "\x10A\x3\x2\x2\x2\x3BF\x3C0\t$\x2\x2\x3C0\x10C\x3\x2\x2\x2\x3C1\x3C2\t" + + "%\x2\x2\x3C2\x10E\x3\x2\x2\x2\x3C3\x3C4\t&\x2\x2\x3C4\x110\x3\x2\x2\x2" + + "\x3C5\x3C6\t\'\x2\x2\x3C6\x112\x3\x2\x2\x2\x31\x2\x117\x119\x124\x127" + + "\x12F\x132\x136\x13B\x13E\x144\x148\x14D\x154\x159\x161\x167\x16F\x174" + + "\x177\x17A\x17D\x180\x184\x192\x19F\x1A4\x1AB\x1B1\x1B7\x1B9\x1BC\x1BE" + + "\x1C1\x1C5\x1C8\x1D2\x27B\x284\x293\x2A1\x2AD\x2B7\x37A\x382\x389\x38D" + + "\x2"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); + } } // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs index 62c0a7bdc3..24b2fa5aeb 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs @@ -17,247 +17,249 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Preprocessing { -using Antlr4.Runtime.Misc; -using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener; -using IToken = Antlr4.Runtime.IToken; +namespace Rubberduck.Parsing.Preprocessing +{ + 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.3")] -[System.CLSCompliant(false)] -public interface IVBAConditionalCompilationListener : IParseTreeListener { - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); + /// + /// This interface defines a complete listener for a parse tree produced by + /// . + /// + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public interface IVBAConditionalCompilationListener : IParseTreeListener + { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterName([NotNull] VBAConditionalCompilationParser.NameContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitName([NotNull] VBAConditionalCompilationParser.NameContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterName([NotNull] VBAConditionalCompilationParser.NameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitName([NotNull] VBAConditionalCompilationParser.NameContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); -} + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); + } } // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs index bf6008574c..62bc15e55d 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs @@ -17,2446 +17,2753 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Preprocessing { -using Antlr4.Runtime; -using Antlr4.Runtime.Atn; -using Antlr4.Runtime.Misc; -using Antlr4.Runtime.Tree; -using System.Collections.Generic; -using DFA = Antlr4.Runtime.Dfa.DFA; - -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public partial class VBAConditionalCompilationParser : Parser { - public const int - STRINGLITERAL=1, OCTLITERAL=2, HEXLITERAL=3, SHORTLITERAL=4, INTEGERLITERAL=5, - DOUBLELITERAL=6, DATELITERAL=7, NOT=8, TRUE=9, FALSE=10, NOTHING=11, NULL=12, - EMPTY=13, HASHCONST=14, HASHIF=15, THEN=16, HASHELSEIF=17, HASHELSE=18, - HASHENDIF=19, INT=20, FIX=21, ABS=22, SGN=23, LEN=24, LENB=25, CBOOL=26, - CBYTE=27, CCUR=28, CDATE=29, CDBL=30, CINT=31, CLNG=32, CLNGLNG=33, CLNGPTR=34, - CSNG=35, CSTR=36, CVAR=37, IS=38, LIKE=39, MOD=40, AND=41, OR=42, XOR=43, - EQV=44, IMP=45, CONST=46, HASH=47, AMPERSAND=48, PERCENT=49, EXCLAMATIONMARK=50, - AT=51, DOLLAR=52, L_PAREN=53, R_PAREN=54, L_SQUARE_BRACKET=55, R_SQUARE_BRACKET=56, - UNDERSCORE=57, EQ=58, DIV=59, INTDIV=60, GEQ=61, GT=62, LEQ=63, LT=64, - MINUS=65, MULT=66, NEQ=67, PLUS=68, POW=69, SINGLEQUOTE=70, DOT=71, COMMA=72, - NEWLINE=73, WS=74, IDENTIFIER=75, ANYCHAR=76; - public static readonly string[] tokenNames = { - "", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", - "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", "NOT", "TRUE", "FALSE", - "NOTHING", "NULL", "EMPTY", "HASHCONST", "HASHIF", "THEN", "HASHELSEIF", - "HASHELSE", "HASHENDIF", "INT", "FIX", "ABS", "SGN", "LEN", "LENB", "CBOOL", - "CBYTE", "CCUR", "CDATE", "CDBL", "CINT", "CLNG", "CLNGLNG", "CLNGPTR", - "CSNG", "CSTR", "CVAR", "IS", "LIKE", "MOD", "AND", "OR", "XOR", "EQV", - "IMP", "CONST", "'#'", "'&'", "'%'", "'!'", "'@'", "'$'", "'('", "')'", - "'['", "']'", "'_'", "'='", "'/'", "'\\'", "'>='", "'>'", "'<='", "'<'", - "'-'", "'*'", "'<>'", "'+'", "'^'", "'''", "'.'", "','", "NEWLINE", "WS", - "IDENTIFIER", "ANYCHAR" - }; - public const int - RULE_compilationUnit = 0, RULE_ccBlock = 1, RULE_ccConst = 2, RULE_logicalLine = 3, - RULE_extendedLine = 4, RULE_lineContinuation = 5, RULE_ccVarLhs = 6, RULE_ccExpression = 7, - RULE_ccIfBlock = 8, RULE_ccIf = 9, RULE_ccElseIfBlock = 10, RULE_ccElseIf = 11, - RULE_ccElseBlock = 12, RULE_ccElse = 13, RULE_ccEndIf = 14, RULE_ccEol = 15, - RULE_intrinsicFunction = 16, RULE_intrinsicFunctionName = 17, RULE_name = 18, - RULE_typeSuffix = 19, RULE_literal = 20; - public static readonly string[] ruleNames = { - "compilationUnit", "ccBlock", "ccConst", "logicalLine", "extendedLine", - "lineContinuation", "ccVarLhs", "ccExpression", "ccIfBlock", "ccIf", "ccElseIfBlock", - "ccElseIf", "ccElseBlock", "ccElse", "ccEndIf", "ccEol", "intrinsicFunction", - "intrinsicFunctionName", "name", "typeSuffix", "literal" - }; - - public override string GrammarFileName { get { return "VBAConditionalCompilation.g4"; } } - - public override string[] TokenNames { get { return tokenNames; } } - - public override string[] RuleNames { get { return ruleNames; } } - - public override string SerializedAtn { get { return _serializedATN; } } - - public VBAConditionalCompilationParser(ITokenStream input) - : base(input) - { - _interp = new ParserATNSimulator(this,_ATN); - } - public partial class CompilationUnitContext : ParserRuleContext { - public CcBlockContext ccBlock() { - return GetRuleContext(0); - } - public ITerminalNode Eof() { return GetToken(VBAConditionalCompilationParser.Eof, 0); } - public CompilationUnitContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_compilationUnit; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCompilationUnit(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCompilationUnit(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCompilationUnit(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CompilationUnitContext compilationUnit() { - CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, State); - EnterRule(_localctx, 0, RULE_compilationUnit); - try { - EnterOuterAlt(_localctx, 1); - { - State = 42; ccBlock(); - State = 43; Match(Eof); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcBlockContext : ParserRuleContext { - public CcIfBlockContext ccIfBlock(int i) { - return GetRuleContext(i); - } - public IReadOnlyList logicalLine() { - return GetRuleContexts(); - } - public IReadOnlyList ccIfBlock() { - return GetRuleContexts(); - } - public LogicalLineContext logicalLine(int i) { - return GetRuleContext(i); - } - public IReadOnlyList ccConst() { - return GetRuleContexts(); - } - public CcConstContext ccConst(int i) { - return GetRuleContext(i); - } - public CcBlockContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccBlock; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcBlock(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcBlock(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcBlock(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcBlockContext ccBlock() { - CcBlockContext _localctx = new CcBlockContext(_ctx, State); - EnterRule(_localctx, 2, RULE_ccBlock); - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 50; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,1,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { - { - State = 48; - switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { - case 1: - { - State = 45; ccConst(); - } - break; - - case 2: - { - State = 46; ccIfBlock(); - } - break; - - case 3: - { - State = 47; logicalLine(); - } - break; - } - } - } - State = 52; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,1,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcConstContext : ParserRuleContext { - public CcVarLhsContext ccVarLhs() { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public ITerminalNode EQ() { return GetToken(VBAConditionalCompilationParser.EQ, 0); } - public ITerminalNode HASHCONST() { return GetToken(VBAConditionalCompilationParser.HASHCONST, 0); } - public CcEolContext ccEol() { - return GetRuleContext(0); - } - public CcExpressionContext ccExpression() { - return GetRuleContext(0); - } - public CcConstContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccConst; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcConst(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcConst(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcConst(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcConstContext ccConst() { - CcConstContext _localctx = new CcConstContext(_ctx, State); - EnterRule(_localctx, 4, RULE_ccConst); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 56; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 53; Match(WS); - } - } - State = 58; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 59; Match(HASHCONST); - State = 61; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 60; Match(WS); - } - } - State = 63; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 65; ccVarLhs(); - State = 67; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 66; Match(WS); - } - } - State = 69; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 71; Match(EQ); - State = 73; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 72; Match(WS); - } - } - State = 75; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 77; ccExpression(0); - State = 78; ccEol(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class LogicalLineContext : ParserRuleContext { - public IReadOnlyList extendedLine() { - return GetRuleContexts(); - } - public ExtendedLineContext extendedLine(int i) { - return GetRuleContext(i); - } - public LogicalLineContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_logicalLine; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterLogicalLine(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitLogicalLine(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitLogicalLine(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LogicalLineContext logicalLine() { - LogicalLineContext _localctx = new LogicalLineContext(_ctx, State); - EnterRule(_localctx, 6, RULE_logicalLine); - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 81; - _errHandler.Sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - State = 80; extendedLine(); - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 83; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,6,_ctx); - } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class ExtendedLineContext : ParserRuleContext { - public IReadOnlyList HASHIF() { return GetTokens(VBAConditionalCompilationParser.HASHIF); } - public IReadOnlyList HASHENDIF() { return GetTokens(VBAConditionalCompilationParser.HASHENDIF); } - public ITerminalNode HASHENDIF(int i) { - return GetToken(VBAConditionalCompilationParser.HASHENDIF, i); - } - public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } - public IReadOnlyList HASHELSE() { return GetTokens(VBAConditionalCompilationParser.HASHELSE); } - public IReadOnlyList HASHELSEIF() { return GetTokens(VBAConditionalCompilationParser.HASHELSEIF); } - public IReadOnlyList lineContinuation() { - return GetRuleContexts(); - } - public ITerminalNode HASHCONST(int i) { - return GetToken(VBAConditionalCompilationParser.HASHCONST, i); - } - public ITerminalNode HASHIF(int i) { - return GetToken(VBAConditionalCompilationParser.HASHIF, i); - } - public IReadOnlyList HASHCONST() { return GetTokens(VBAConditionalCompilationParser.HASHCONST); } - public ITerminalNode HASHELSEIF(int i) { - return GetToken(VBAConditionalCompilationParser.HASHELSEIF, i); - } - public LineContinuationContext lineContinuation(int i) { - return GetRuleContext(i); - } - public ITerminalNode HASHELSE(int i) { - return GetToken(VBAConditionalCompilationParser.HASHELSE, i); - } - public ExtendedLineContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_extendedLine; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterExtendedLine(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitExtendedLine(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitExtendedLine(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ExtendedLineContext extendedLine() { - ExtendedLineContext _localctx = new ExtendedLineContext(_ctx, State); - EnterRule(_localctx, 8, RULE_extendedLine); - int _la; - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 87; - _errHandler.Sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - State = 87; - switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { - case 1: - { - State = 85; lineContinuation(); - } - break; - - case 2: - { - State = 86; - _la = _input.La(1); - if ( _la <= 0 || ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << HASHCONST) | (1L << HASHIF) | (1L << HASHELSEIF) | (1L << HASHELSE) | (1L << HASHENDIF))) != 0)) ) { - _errHandler.RecoverInline(this); - } - Consume(); - } - break; - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 89; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,8,_ctx); - } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 92; - switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { - case 1: - { - State = 91; Match(NEWLINE); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class LineContinuationContext : ParserRuleContext { - public ITerminalNode UNDERSCORE() { return GetToken(VBAConditionalCompilationParser.UNDERSCORE, 0); } - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } - public LineContinuationContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_lineContinuation; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterLineContinuation(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitLineContinuation(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitLineContinuation(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LineContinuationContext lineContinuation() { - LineContinuationContext _localctx = new LineContinuationContext(_ctx, State); - EnterRule(_localctx, 10, RULE_lineContinuation); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 97; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 94; Match(WS); - } - } - State = 99; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 100; Match(UNDERSCORE); - State = 104; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 101; Match(WS); - } - } - State = 106; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 107; Match(NEWLINE); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcVarLhsContext : ParserRuleContext { - public NameContext name() { - return GetRuleContext(0); - } - public CcVarLhsContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccVarLhs; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcVarLhs(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcVarLhs(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcVarLhs(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcVarLhsContext ccVarLhs() { - CcVarLhsContext _localctx = new CcVarLhsContext(_ctx, State); - EnterRule(_localctx, 12, RULE_ccVarLhs); - try { - EnterOuterAlt(_localctx, 1); - { - State = 109; name(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcExpressionContext : ParserRuleContext { - public ITerminalNode R_PAREN() { return GetToken(VBAConditionalCompilationParser.R_PAREN, 0); } - public ITerminalNode XOR() { return GetToken(VBAConditionalCompilationParser.XOR, 0); } - public ITerminalNode EQV() { return GetToken(VBAConditionalCompilationParser.EQV, 0); } - public ITerminalNode AMPERSAND() { return GetToken(VBAConditionalCompilationParser.AMPERSAND, 0); } - public ITerminalNode L_PAREN() { return GetToken(VBAConditionalCompilationParser.L_PAREN, 0); } - public IReadOnlyList ccExpression() { - return GetRuleContexts(); - } - public ITerminalNode INTDIV() { return GetToken(VBAConditionalCompilationParser.INTDIV, 0); } - public ITerminalNode NOT() { return GetToken(VBAConditionalCompilationParser.NOT, 0); } - public ITerminalNode GEQ() { return GetToken(VBAConditionalCompilationParser.GEQ, 0); } - public ITerminalNode LEQ() { return GetToken(VBAConditionalCompilationParser.LEQ, 0); } - public LiteralContext literal() { - return GetRuleContext(0); - } - public ITerminalNode AND() { return GetToken(VBAConditionalCompilationParser.AND, 0); } - public NameContext name() { - return GetRuleContext(0); - } - public ITerminalNode IMP() { return GetToken(VBAConditionalCompilationParser.IMP, 0); } - public CcExpressionContext ccExpression(int i) { - return GetRuleContext(i); - } - public ITerminalNode POW() { return GetToken(VBAConditionalCompilationParser.POW, 0); } - public ITerminalNode DIV() { return GetToken(VBAConditionalCompilationParser.DIV, 0); } - public ITerminalNode NEQ() { return GetToken(VBAConditionalCompilationParser.NEQ, 0); } - public IntrinsicFunctionContext intrinsicFunction() { - return GetRuleContext(0); - } - public ITerminalNode MULT() { return GetToken(VBAConditionalCompilationParser.MULT, 0); } - public ITerminalNode LT() { return GetToken(VBAConditionalCompilationParser.LT, 0); } - public ITerminalNode GT() { return GetToken(VBAConditionalCompilationParser.GT, 0); } - public ITerminalNode MOD() { return GetToken(VBAConditionalCompilationParser.MOD, 0); } - public ITerminalNode OR() { return GetToken(VBAConditionalCompilationParser.OR, 0); } - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public ITerminalNode IS() { return GetToken(VBAConditionalCompilationParser.IS, 0); } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public ITerminalNode MINUS() { return GetToken(VBAConditionalCompilationParser.MINUS, 0); } - public ITerminalNode PLUS() { return GetToken(VBAConditionalCompilationParser.PLUS, 0); } - public ITerminalNode EQ() { return GetToken(VBAConditionalCompilationParser.EQ, 0); } - public ITerminalNode LIKE() { return GetToken(VBAConditionalCompilationParser.LIKE, 0); } - public CcExpressionContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccExpression; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcExpression(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcExpression(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcExpression(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcExpressionContext ccExpression() { - return ccExpression(0); - } - - private CcExpressionContext ccExpression(int _p) { - ParserRuleContext _parentctx = _ctx; - int _parentState = State; - CcExpressionContext _localctx = new CcExpressionContext(_ctx, _parentState); - CcExpressionContext _prevctx = _localctx; - int _startState = 14; - EnterRecursionRule(_localctx, 14, RULE_ccExpression, _p); - int _la; - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 147; - switch (_input.La(1)) { - case MINUS: - { - State = 112; Match(MINUS); - State = 116; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 113; Match(WS); - } - } - State = 118; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 119; ccExpression(16); - } - break; - case NOT: - { - State = 120; Match(NOT); - State = 124; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 121; Match(WS); - } - } - State = 126; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 127; ccExpression(9); - } - break; - case L_PAREN: - { - State = 128; Match(L_PAREN); - State = 132; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 129; Match(WS); - } - } - State = 134; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 135; ccExpression(0); - State = 139; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 136; Match(WS); - } - } - State = 141; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 142; Match(R_PAREN); - } - break; - case INT: - case FIX: - case ABS: - case SGN: - case LEN: - case LENB: - case CBOOL: - case CBYTE: - case CCUR: - case CDATE: - case CDBL: - case CINT: - case CLNG: - case CLNGLNG: - case CLNGPTR: - case CSNG: - case CSTR: - case CVAR: - { - State = 144; intrinsicFunction(); - } - break; - case STRINGLITERAL: - case OCTLITERAL: - case HEXLITERAL: - case SHORTLITERAL: - case INTEGERLITERAL: - case DOUBLELITERAL: - case DATELITERAL: - case TRUE: - case FALSE: - case NOTHING: - case NULL: - case EMPTY: - { - State = 145; literal(); - } - break; - case IDENTIFIER: - { - State = 146; name(); - } - break; - default: - throw new NoViableAltException(this); - } - _ctx.stop = _input.Lt(-1); - State = 331; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,42,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) TriggerExitRuleEvent(); - _prevctx = _localctx; - { - State = 329; - switch ( Interpreter.AdaptivePredict(_input,41,_ctx) ) { - case 1: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 149; - if (!(Precpred(_ctx, 17))) throw new FailedPredicateException(this, "Precpred(_ctx, 17)"); - State = 153; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 150; Match(WS); - } - } - State = 155; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 156; Match(POW); - State = 160; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 157; Match(WS); - } - } - State = 162; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 163; ccExpression(18); - } - break; - - case 2: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 164; - if (!(Precpred(_ctx, 15))) throw new FailedPredicateException(this, "Precpred(_ctx, 15)"); - State = 168; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 165; Match(WS); - } - } - State = 170; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 171; - _la = _input.La(1); - if ( !(_la==DIV || _la==MULT) ) { - _errHandler.RecoverInline(this); - } - Consume(); - State = 175; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 172; Match(WS); - } - } - State = 177; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 178; ccExpression(16); - } - break; - - case 3: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 179; - if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 183; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 180; Match(WS); - } - } - State = 185; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 186; Match(INTDIV); - State = 190; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 187; Match(WS); - } - } - State = 192; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 193; ccExpression(15); - } - break; - - case 4: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 194; - if (!(Precpred(_ctx, 13))) throw new FailedPredicateException(this, "Precpred(_ctx, 13)"); - State = 198; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 195; Match(WS); - } - } - State = 200; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 201; Match(MOD); - State = 205; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 202; Match(WS); - } - } - State = 207; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 208; ccExpression(14); - } - break; - - case 5: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 209; - if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 213; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 210; Match(WS); - } - } - State = 215; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 216; - _la = _input.La(1); - if ( !(_la==MINUS || _la==PLUS) ) { - _errHandler.RecoverInline(this); - } - Consume(); - State = 220; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 217; Match(WS); - } - } - State = 222; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 223; ccExpression(13); - } - break; - - case 6: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 224; - if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 228; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 225; Match(WS); - } - } - State = 230; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 231; Match(AMPERSAND); - State = 235; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 232; Match(WS); - } - } - State = 237; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 238; ccExpression(12); - } - break; - - case 7: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 239; - if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 243; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 240; Match(WS); - } - } - State = 245; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 246; - _la = _input.La(1); - if ( !(((((_la - 38)) & ~0x3f) == 0 && ((1L << (_la - 38)) & ((1L << (IS - 38)) | (1L << (LIKE - 38)) | (1L << (EQ - 38)) | (1L << (GEQ - 38)) | (1L << (GT - 38)) | (1L << (LEQ - 38)) | (1L << (LT - 38)) | (1L << (NEQ - 38)))) != 0)) ) { - _errHandler.RecoverInline(this); - } - Consume(); - State = 250; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 247; Match(WS); - } - } - State = 252; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 253; ccExpression(11); - } - break; - - case 8: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 254; - if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 258; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 255; Match(WS); - } - } - State = 260; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 261; Match(AND); - State = 265; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 262; Match(WS); - } - } - State = 267; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 268; ccExpression(9); - } - break; - - case 9: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 269; - if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 273; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 270; Match(WS); - } - } - State = 275; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 276; Match(OR); - State = 280; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 277; Match(WS); - } - } - State = 282; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 283; ccExpression(8); - } - break; - - case 10: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 284; - if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); - State = 288; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 285; Match(WS); - } - } - State = 290; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 291; Match(XOR); - State = 295; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 292; Match(WS); - } - } - State = 297; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 298; ccExpression(7); - } - break; - - case 11: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 299; - if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 303; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 300; Match(WS); - } - } - State = 305; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 306; Match(EQV); - State = 310; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 307; Match(WS); - } - } - State = 312; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 313; ccExpression(6); - } - break; - - case 12: - { - _localctx = new CcExpressionContext(_parentctx, _parentState); - PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 314; - if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 318; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 315; Match(WS); - } - } - State = 320; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 321; Match(IMP); - State = 325; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 322; Match(WS); - } - } - State = 327; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 328; ccExpression(5); - } - break; - } - } - } - State = 333; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,42,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - UnrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public partial class CcIfBlockContext : ParserRuleContext { - public CcIfContext ccIf() { - return GetRuleContext(0); - } - public CcBlockContext ccBlock() { - return GetRuleContext(0); - } - public CcElseIfBlockContext ccElseIfBlock(int i) { - return GetRuleContext(i); - } - public CcEndIfContext ccEndIf() { - return GetRuleContext(0); - } - public CcElseBlockContext ccElseBlock() { - return GetRuleContext(0); - } - public IReadOnlyList ccElseIfBlock() { - return GetRuleContexts(); - } - public CcIfBlockContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccIfBlock; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcIfBlock(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcIfBlock(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcIfBlock(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcIfBlockContext ccIfBlock() { - CcIfBlockContext _localctx = new CcIfBlockContext(_ctx, State); - EnterRule(_localctx, 16, RULE_ccIfBlock); - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 334; ccIf(); - State = 335; ccBlock(); - State = 339; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,43,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { - { - { - State = 336; ccElseIfBlock(); - } - } - } - State = 341; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,43,_ctx); - } - State = 343; - switch ( Interpreter.AdaptivePredict(_input,44,_ctx) ) { - case 1: - { - State = 342; ccElseBlock(); - } - break; - } - State = 345; ccEndIf(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcIfContext : ParserRuleContext { - public ITerminalNode HASHIF() { return GetToken(VBAConditionalCompilationParser.HASHIF, 0); } - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public ITerminalNode THEN() { return GetToken(VBAConditionalCompilationParser.THEN, 0); } - public CcEolContext ccEol() { - return GetRuleContext(0); - } - public CcExpressionContext ccExpression() { - return GetRuleContext(0); - } - public CcIfContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccIf; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcIf(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcIf(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcIf(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcIfContext ccIf() { - CcIfContext _localctx = new CcIfContext(_ctx, State); - EnterRule(_localctx, 18, RULE_ccIf); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 350; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 347; Match(WS); - } - } - State = 352; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 353; Match(HASHIF); - State = 355; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 354; Match(WS); - } - } - State = 357; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 359; ccExpression(0); - State = 361; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 360; Match(WS); - } - } - State = 363; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 365; Match(THEN); - State = 366; ccEol(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcElseIfBlockContext : ParserRuleContext { - public CcBlockContext ccBlock() { - return GetRuleContext(0); - } - public CcElseIfContext ccElseIf() { - return GetRuleContext(0); - } - public CcElseIfBlockContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccElseIfBlock; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcElseIfBlock(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcElseIfBlock(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcElseIfBlock(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcElseIfBlockContext ccElseIfBlock() { - CcElseIfBlockContext _localctx = new CcElseIfBlockContext(_ctx, State); - EnterRule(_localctx, 20, RULE_ccElseIfBlock); - try { - EnterOuterAlt(_localctx, 1); - { - State = 368; ccElseIf(); - State = 369; ccBlock(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcElseIfContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public ITerminalNode THEN() { return GetToken(VBAConditionalCompilationParser.THEN, 0); } - public CcEolContext ccEol() { - return GetRuleContext(0); - } - public ITerminalNode HASHELSEIF() { return GetToken(VBAConditionalCompilationParser.HASHELSEIF, 0); } - public CcExpressionContext ccExpression() { - return GetRuleContext(0); - } - public CcElseIfContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccElseIf; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcElseIf(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcElseIf(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcElseIf(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcElseIfContext ccElseIf() { - CcElseIfContext _localctx = new CcElseIfContext(_ctx, State); - EnterRule(_localctx, 22, RULE_ccElseIf); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 374; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 371; Match(WS); - } - } - State = 376; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 377; Match(HASHELSEIF); - State = 379; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 378; Match(WS); - } - } - State = 381; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 383; ccExpression(0); - State = 385; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 384; Match(WS); - } - } - State = 387; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 389; Match(THEN); - State = 390; ccEol(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcElseBlockContext : ParserRuleContext { - public CcBlockContext ccBlock() { - return GetRuleContext(0); - } - public CcElseContext ccElse() { - return GetRuleContext(0); - } - public CcElseBlockContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccElseBlock; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcElseBlock(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcElseBlock(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcElseBlock(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcElseBlockContext ccElseBlock() { - CcElseBlockContext _localctx = new CcElseBlockContext(_ctx, State); - EnterRule(_localctx, 24, RULE_ccElseBlock); - try { - EnterOuterAlt(_localctx, 1); - { - State = 392; ccElse(); - State = 393; ccBlock(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcElseContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public ITerminalNode HASHELSE() { return GetToken(VBAConditionalCompilationParser.HASHELSE, 0); } - public CcEolContext ccEol() { - return GetRuleContext(0); - } - public CcElseContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccElse; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcElse(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcElse(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcElse(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcElseContext ccElse() { - CcElseContext _localctx = new CcElseContext(_ctx, State); - EnterRule(_localctx, 26, RULE_ccElse); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 398; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 395; Match(WS); - } - } - State = 400; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 401; Match(HASHELSE); - State = 402; ccEol(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcEndIfContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public ITerminalNode HASHENDIF() { return GetToken(VBAConditionalCompilationParser.HASHENDIF, 0); } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public CcEolContext ccEol() { - return GetRuleContext(0); - } - public CcEndIfContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccEndIf; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcEndIf(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcEndIf(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcEndIf(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcEndIfContext ccEndIf() { - CcEndIfContext _localctx = new CcEndIfContext(_ctx, State); - EnterRule(_localctx, 28, RULE_ccEndIf); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 407; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 404; Match(WS); - } - } - State = 409; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 410; Match(HASHENDIF); - State = 411; ccEol(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CcEolContext : ParserRuleContext { - public ITerminalNode SINGLEQUOTE() { return GetToken(VBAConditionalCompilationParser.SINGLEQUOTE, 0); } - public IReadOnlyList NEWLINE() { return GetTokens(VBAConditionalCompilationParser.NEWLINE); } - public ITerminalNode NEWLINE(int i) { - return GetToken(VBAConditionalCompilationParser.NEWLINE, i); - } - public CcEolContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ccEol; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterCcEol(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitCcEol(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitCcEol(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CcEolContext ccEol() { - CcEolContext _localctx = new CcEolContext(_ctx, State); - EnterRule(_localctx, 30, RULE_ccEol); - int _la; - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 420; - switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { - case 1: - { - State = 413; Match(SINGLEQUOTE); - State = 417; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,53,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { - { - { - State = 414; - _la = _input.La(1); - if ( _la <= 0 || (_la==NEWLINE) ) { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - } - State = 419; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,53,_ctx); - } - } - break; - } - State = 423; - switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { - case 1: - { - State = 422; Match(NEWLINE); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class IntrinsicFunctionContext : ParserRuleContext { - public IntrinsicFunctionNameContext intrinsicFunctionName() { - return GetRuleContext(0); - } - public ITerminalNode R_PAREN() { return GetToken(VBAConditionalCompilationParser.R_PAREN, 0); } - public ITerminalNode WS(int i) { - return GetToken(VBAConditionalCompilationParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } - public ITerminalNode L_PAREN() { return GetToken(VBAConditionalCompilationParser.L_PAREN, 0); } - public CcExpressionContext ccExpression() { - return GetRuleContext(0); - } - public IntrinsicFunctionContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_intrinsicFunction; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterIntrinsicFunction(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitIntrinsicFunction(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitIntrinsicFunction(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public IntrinsicFunctionContext intrinsicFunction() { - IntrinsicFunctionContext _localctx = new IntrinsicFunctionContext(_ctx, State); - EnterRule(_localctx, 32, RULE_intrinsicFunction); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 425; intrinsicFunctionName(); - State = 426; Match(L_PAREN); - State = 430; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 427; Match(WS); - } - } - State = 432; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 433; ccExpression(0); - State = 437; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 434; Match(WS); - } - } - State = 439; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 440; Match(R_PAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class IntrinsicFunctionNameContext : ParserRuleContext { - public ITerminalNode CSTR() { return GetToken(VBAConditionalCompilationParser.CSTR, 0); } - public ITerminalNode CLNGLNG() { return GetToken(VBAConditionalCompilationParser.CLNGLNG, 0); } - public ITerminalNode CDATE() { return GetToken(VBAConditionalCompilationParser.CDATE, 0); } - public ITerminalNode CINT() { return GetToken(VBAConditionalCompilationParser.CINT, 0); } - public ITerminalNode ABS() { return GetToken(VBAConditionalCompilationParser.ABS, 0); } - public ITerminalNode LEN() { return GetToken(VBAConditionalCompilationParser.LEN, 0); } - public ITerminalNode CSNG() { return GetToken(VBAConditionalCompilationParser.CSNG, 0); } - public ITerminalNode INT() { return GetToken(VBAConditionalCompilationParser.INT, 0); } - public ITerminalNode CCUR() { return GetToken(VBAConditionalCompilationParser.CCUR, 0); } - public ITerminalNode LENB() { return GetToken(VBAConditionalCompilationParser.LENB, 0); } - public ITerminalNode CBOOL() { return GetToken(VBAConditionalCompilationParser.CBOOL, 0); } - public ITerminalNode CLNGPTR() { return GetToken(VBAConditionalCompilationParser.CLNGPTR, 0); } - public ITerminalNode SGN() { return GetToken(VBAConditionalCompilationParser.SGN, 0); } - public ITerminalNode CBYTE() { return GetToken(VBAConditionalCompilationParser.CBYTE, 0); } - public ITerminalNode FIX() { return GetToken(VBAConditionalCompilationParser.FIX, 0); } - public ITerminalNode CDBL() { return GetToken(VBAConditionalCompilationParser.CDBL, 0); } - public ITerminalNode CVAR() { return GetToken(VBAConditionalCompilationParser.CVAR, 0); } - public ITerminalNode CLNG() { return GetToken(VBAConditionalCompilationParser.CLNG, 0); } - public IntrinsicFunctionNameContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_intrinsicFunctionName; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterIntrinsicFunctionName(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitIntrinsicFunctionName(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitIntrinsicFunctionName(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public IntrinsicFunctionNameContext intrinsicFunctionName() { - IntrinsicFunctionNameContext _localctx = new IntrinsicFunctionNameContext(_ctx, State); - EnterRule(_localctx, 34, RULE_intrinsicFunctionName); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 442; - _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << INT) | (1L << FIX) | (1L << ABS) | (1L << SGN) | (1L << LEN) | (1L << LENB) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CINT) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR))) != 0)) ) { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class NameContext : ParserRuleContext { - public TypeSuffixContext typeSuffix() { - return GetRuleContext(0); - } - public ITerminalNode IDENTIFIER() { return GetToken(VBAConditionalCompilationParser.IDENTIFIER, 0); } - public NameContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_name; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterName(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitName(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitName(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public NameContext name() { - NameContext _localctx = new NameContext(_ctx, State); - EnterRule(_localctx, 36, RULE_name); - try { - EnterOuterAlt(_localctx, 1); - { - State = 444; Match(IDENTIFIER); - State = 446; - switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { - case 1: - { - State = 445; typeSuffix(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class TypeSuffixContext : ParserRuleContext { - public ITerminalNode AT() { return GetToken(VBAConditionalCompilationParser.AT, 0); } - public ITerminalNode EXCLAMATIONMARK() { return GetToken(VBAConditionalCompilationParser.EXCLAMATIONMARK, 0); } - public ITerminalNode DOLLAR() { return GetToken(VBAConditionalCompilationParser.DOLLAR, 0); } - public ITerminalNode AMPERSAND() { return GetToken(VBAConditionalCompilationParser.AMPERSAND, 0); } - public ITerminalNode PERCENT() { return GetToken(VBAConditionalCompilationParser.PERCENT, 0); } - public ITerminalNode HASH() { return GetToken(VBAConditionalCompilationParser.HASH, 0); } - public TypeSuffixContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_typeSuffix; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterTypeSuffix(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitTypeSuffix(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitTypeSuffix(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TypeSuffixContext typeSuffix() { - TypeSuffixContext _localctx = new TypeSuffixContext(_ctx, State); - EnterRule(_localctx, 38, RULE_typeSuffix); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 448; - _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << HASH) | (1L << AMPERSAND) | (1L << PERCENT) | (1L << EXCLAMATIONMARK) | (1L << AT) | (1L << DOLLAR))) != 0)) ) { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class LiteralContext : ParserRuleContext { - public ITerminalNode INTEGERLITERAL() { return GetToken(VBAConditionalCompilationParser.INTEGERLITERAL, 0); } - public ITerminalNode NULL() { return GetToken(VBAConditionalCompilationParser.NULL, 0); } - public ITerminalNode STRINGLITERAL() { return GetToken(VBAConditionalCompilationParser.STRINGLITERAL, 0); } - public ITerminalNode FALSE() { return GetToken(VBAConditionalCompilationParser.FALSE, 0); } - public ITerminalNode TRUE() { return GetToken(VBAConditionalCompilationParser.TRUE, 0); } - public ITerminalNode NOTHING() { return GetToken(VBAConditionalCompilationParser.NOTHING, 0); } - public ITerminalNode DATELITERAL() { return GetToken(VBAConditionalCompilationParser.DATELITERAL, 0); } - public ITerminalNode HEXLITERAL() { return GetToken(VBAConditionalCompilationParser.HEXLITERAL, 0); } - public ITerminalNode DOUBLELITERAL() { return GetToken(VBAConditionalCompilationParser.DOUBLELITERAL, 0); } - public ITerminalNode SHORTLITERAL() { return GetToken(VBAConditionalCompilationParser.SHORTLITERAL, 0); } - public ITerminalNode EMPTY() { return GetToken(VBAConditionalCompilationParser.EMPTY, 0); } - public ITerminalNode OCTLITERAL() { return GetToken(VBAConditionalCompilationParser.OCTLITERAL, 0); } - public LiteralContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_literal; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.EnterLiteral(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; - if (typedListener != null) typedListener.ExitLiteral(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; - if (typedVisitor != null) return typedVisitor.VisitLiteral(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LiteralContext literal() { - LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 40, RULE_literal); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 450; - _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << STRINGLITERAL) | (1L << OCTLITERAL) | (1L << HEXLITERAL) | (1L << SHORTLITERAL) | (1L << INTEGERLITERAL) | (1L << DOUBLELITERAL) | (1L << DATELITERAL) | (1L << TRUE) | (1L << FALSE) | (1L << NOTHING) | (1L << NULL) | (1L << EMPTY))) != 0)) ) { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 7: return ccExpression_sempred((CcExpressionContext)_localctx, predIndex); - } - return true; - } - private bool ccExpression_sempred(CcExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 0: return Precpred(_ctx, 17); - - case 1: return Precpred(_ctx, 15); - - case 2: return Precpred(_ctx, 14); - - case 3: return Precpred(_ctx, 13); - - case 4: return Precpred(_ctx, 12); - - case 5: return Precpred(_ctx, 11); - - case 6: return Precpred(_ctx, 10); - - case 7: return Precpred(_ctx, 8); - - case 8: return Precpred(_ctx, 7); - - case 9: return Precpred(_ctx, 6); - - case 10: return Precpred(_ctx, 5); - - case 11: return Precpred(_ctx, 4); - } - return true; - } - - public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3N\x1C7\x4\x2\t\x2"+ - "\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4\t\t"+ - "\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10\t"+ - "\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ - "\x4\x16\t\x16\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\a\x3\x33\n\x3\f\x3\xE"+ - "\x3\x36\v\x3\x3\x4\a\x4\x39\n\x4\f\x4\xE\x4<\v\x4\x3\x4\x3\x4\x6\x4@\n"+ - "\x4\r\x4\xE\x4\x41\x3\x4\x3\x4\x6\x4\x46\n\x4\r\x4\xE\x4G\x3\x4\x3\x4"+ - "\x6\x4L\n\x4\r\x4\xE\x4M\x3\x4\x3\x4\x3\x4\x3\x5\x6\x5T\n\x5\r\x5\xE\x5"+ - "U\x3\x6\x3\x6\x6\x6Z\n\x6\r\x6\xE\x6[\x3\x6\x5\x6_\n\x6\x3\a\a\a\x62\n"+ - "\a\f\a\xE\a\x65\v\a\x3\a\x3\a\a\ai\n\a\f\a\xE\al\v\a\x3\a\x3\a\x3\b\x3"+ - "\b\x3\t\x3\t\x3\t\a\tu\n\t\f\t\xE\tx\v\t\x3\t\x3\t\x3\t\a\t}\n\t\f\t\xE"+ - "\t\x80\v\t\x3\t\x3\t\x3\t\a\t\x85\n\t\f\t\xE\t\x88\v\t\x3\t\x3\t\a\t\x8C"+ - "\n\t\f\t\xE\t\x8F\v\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x96\n\t\x3\t\x3\t"+ - "\a\t\x9A\n\t\f\t\xE\t\x9D\v\t\x3\t\x3\t\a\t\xA1\n\t\f\t\xE\t\xA4\v\t\x3"+ - "\t\x3\t\x3\t\a\t\xA9\n\t\f\t\xE\t\xAC\v\t\x3\t\x3\t\a\t\xB0\n\t\f\t\xE"+ - "\t\xB3\v\t\x3\t\x3\t\x3\t\a\t\xB8\n\t\f\t\xE\t\xBB\v\t\x3\t\x3\t\a\t\xBF"+ - "\n\t\f\t\xE\t\xC2\v\t\x3\t\x3\t\x3\t\a\t\xC7\n\t\f\t\xE\t\xCA\v\t\x3\t"+ - "\x3\t\a\t\xCE\n\t\f\t\xE\t\xD1\v\t\x3\t\x3\t\x3\t\a\t\xD6\n\t\f\t\xE\t"+ - "\xD9\v\t\x3\t\x3\t\a\t\xDD\n\t\f\t\xE\t\xE0\v\t\x3\t\x3\t\x3\t\a\t\xE5"+ - "\n\t\f\t\xE\t\xE8\v\t\x3\t\x3\t\a\t\xEC\n\t\f\t\xE\t\xEF\v\t\x3\t\x3\t"+ - "\x3\t\a\t\xF4\n\t\f\t\xE\t\xF7\v\t\x3\t\x3\t\a\t\xFB\n\t\f\t\xE\t\xFE"+ - "\v\t\x3\t\x3\t\x3\t\a\t\x103\n\t\f\t\xE\t\x106\v\t\x3\t\x3\t\a\t\x10A"+ - "\n\t\f\t\xE\t\x10D\v\t\x3\t\x3\t\x3\t\a\t\x112\n\t\f\t\xE\t\x115\v\t\x3"+ - "\t\x3\t\a\t\x119\n\t\f\t\xE\t\x11C\v\t\x3\t\x3\t\x3\t\a\t\x121\n\t\f\t"+ - "\xE\t\x124\v\t\x3\t\x3\t\a\t\x128\n\t\f\t\xE\t\x12B\v\t\x3\t\x3\t\x3\t"+ - "\a\t\x130\n\t\f\t\xE\t\x133\v\t\x3\t\x3\t\a\t\x137\n\t\f\t\xE\t\x13A\v"+ - "\t\x3\t\x3\t\x3\t\a\t\x13F\n\t\f\t\xE\t\x142\v\t\x3\t\x3\t\a\t\x146\n"+ - "\t\f\t\xE\t\x149\v\t\x3\t\a\t\x14C\n\t\f\t\xE\t\x14F\v\t\x3\n\x3\n\x3"+ - "\n\a\n\x154\n\n\f\n\xE\n\x157\v\n\x3\n\x5\n\x15A\n\n\x3\n\x3\n\x3\v\a"+ - "\v\x15F\n\v\f\v\xE\v\x162\v\v\x3\v\x3\v\x6\v\x166\n\v\r\v\xE\v\x167\x3"+ - "\v\x3\v\x6\v\x16C\n\v\r\v\xE\v\x16D\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\r"+ - "\a\r\x177\n\r\f\r\xE\r\x17A\v\r\x3\r\x3\r\x6\r\x17E\n\r\r\r\xE\r\x17F"+ - "\x3\r\x3\r\x6\r\x184\n\r\r\r\xE\r\x185\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE"+ - "\x3\xF\a\xF\x18F\n\xF\f\xF\xE\xF\x192\v\xF\x3\xF\x3\xF\x3\xF\x3\x10\a"+ - "\x10\x198\n\x10\f\x10\xE\x10\x19B\v\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3"+ - "\x11\a\x11\x1A2\n\x11\f\x11\xE\x11\x1A5\v\x11\x5\x11\x1A7\n\x11\x3\x11"+ - "\x5\x11\x1AA\n\x11\x3\x12\x3\x12\x3\x12\a\x12\x1AF\n\x12\f\x12\xE\x12"+ - "\x1B2\v\x12\x3\x12\x3\x12\a\x12\x1B6\n\x12\f\x12\xE\x12\x1B9\v\x12\x3"+ - "\x12\x3\x12\x3\x13\x3\x13\x3\x14\x3\x14\x5\x14\x1C1\n\x14\x3\x15\x3\x15"+ - "\x3\x16\x3\x16\x3\x16\x2\x2\x3\x10\x17\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2"+ - "\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2"+ - "$\x2&\x2(\x2*\x2\x2\n\x4\x2\x10\x11\x13\x15\x4\x2==\x44\x44\x4\x2\x43"+ - "\x43\x46\x46\x6\x2()<@\aL\x2\x2?>\x3\x2\x2\x2@\x41\x3\x2\x2\x2"+ - "\x41?\x3\x2\x2\x2\x41\x42\x3\x2\x2\x2\x42\x43\x3\x2\x2\x2\x43\x45\x5\xE"+ - "\b\x2\x44\x46\aL\x2\x2\x45\x44\x3\x2\x2\x2\x46G\x3\x2\x2\x2G\x45\x3\x2"+ - "\x2\x2GH\x3\x2\x2\x2HI\x3\x2\x2\x2IK\a<\x2\x2JL\aL\x2\x2KJ\x3\x2\x2\x2"+ - "LM\x3\x2\x2\x2MK\x3\x2\x2\x2MN\x3\x2\x2\x2NO\x3\x2\x2\x2OP\x5\x10\t\x2"+ - "PQ\x5 \x11\x2Q\a\x3\x2\x2\x2RT\x5\n\x6\x2SR\x3\x2\x2\x2TU\x3\x2\x2\x2"+ - "US\x3\x2\x2\x2UV\x3\x2\x2\x2V\t\x3\x2\x2\x2WZ\x5\f\a\x2XZ\n\x2\x2\x2Y"+ - "W\x3\x2\x2\x2YX\x3\x2\x2\x2Z[\x3\x2\x2\x2[Y\x3\x2\x2\x2[\\\x3\x2\x2\x2"+ - "\\^\x3\x2\x2\x2]_\aK\x2\x2^]\x3\x2\x2\x2^_\x3\x2\x2\x2_\v\x3\x2\x2\x2"+ - "`\x62\aL\x2\x2\x61`\x3\x2\x2\x2\x62\x65\x3\x2\x2\x2\x63\x61\x3\x2\x2\x2"+ - "\x63\x64\x3\x2\x2\x2\x64\x66\x3\x2\x2\x2\x65\x63\x3\x2\x2\x2\x66j\a;\x2"+ - "\x2gi\aL\x2\x2hg\x3\x2\x2\x2il\x3\x2\x2\x2jh\x3\x2\x2\x2jk\x3\x2\x2\x2"+ - "km\x3\x2\x2\x2lj\x3\x2\x2\x2mn\aK\x2\x2n\r\x3\x2\x2\x2op\x5&\x14\x2p\xF"+ - "\x3\x2\x2\x2qr\b\t\x1\x2rv\a\x43\x2\x2su\aL\x2\x2ts\x3\x2\x2\x2ux\x3\x2"+ - "\x2\x2vt\x3\x2\x2\x2vw\x3\x2\x2\x2wy\x3\x2\x2\x2xv\x3\x2\x2\x2y\x96\x5"+ - "\x10\t\x12z~\a\n\x2\x2{}\aL\x2\x2|{\x3\x2\x2\x2}\x80\x3\x2\x2\x2~|\x3"+ - "\x2\x2\x2~\x7F\x3\x2\x2\x2\x7F\x81\x3\x2\x2\x2\x80~\x3\x2\x2\x2\x81\x96"+ - "\x5\x10\t\v\x82\x86\a\x37\x2\x2\x83\x85\aL\x2\x2\x84\x83\x3\x2\x2\x2\x85"+ - "\x88\x3\x2\x2\x2\x86\x84\x3\x2\x2\x2\x86\x87\x3\x2\x2\x2\x87\x89\x3\x2"+ - "\x2\x2\x88\x86\x3\x2\x2\x2\x89\x8D\x5\x10\t\x2\x8A\x8C\aL\x2\x2\x8B\x8A"+ - "\x3\x2\x2\x2\x8C\x8F\x3\x2\x2\x2\x8D\x8B\x3\x2\x2\x2\x8D\x8E\x3\x2\x2"+ - "\x2\x8E\x90\x3\x2\x2\x2\x8F\x8D\x3\x2\x2\x2\x90\x91\a\x38\x2\x2\x91\x96"+ - "\x3\x2\x2\x2\x92\x96\x5\"\x12\x2\x93\x96\x5*\x16\x2\x94\x96\x5&\x14\x2"+ - "\x95q\x3\x2\x2\x2\x95z\x3\x2\x2\x2\x95\x82\x3\x2\x2\x2\x95\x92\x3\x2\x2"+ - "\x2\x95\x93\x3\x2\x2\x2\x95\x94\x3\x2\x2\x2\x96\x14D\x3\x2\x2\x2\x97\x9B"+ - "\f\x13\x2\x2\x98\x9A\aL\x2\x2\x99\x98\x3\x2\x2\x2\x9A\x9D\x3\x2\x2\x2"+ - "\x9B\x99\x3\x2\x2\x2\x9B\x9C\x3\x2\x2\x2\x9C\x9E\x3\x2\x2\x2\x9D\x9B\x3"+ - "\x2\x2\x2\x9E\xA2\aG\x2\x2\x9F\xA1\aL\x2\x2\xA0\x9F\x3\x2\x2\x2\xA1\xA4"+ - "\x3\x2\x2\x2\xA2\xA0\x3\x2\x2\x2\xA2\xA3\x3\x2\x2\x2\xA3\xA5\x3\x2\x2"+ - "\x2\xA4\xA2\x3\x2\x2\x2\xA5\x14C\x5\x10\t\x14\xA6\xAA\f\x11\x2\x2\xA7"+ - "\xA9\aL\x2\x2\xA8\xA7\x3\x2\x2\x2\xA9\xAC\x3\x2\x2\x2\xAA\xA8\x3\x2\x2"+ - "\x2\xAA\xAB\x3\x2\x2\x2\xAB\xAD\x3\x2\x2\x2\xAC\xAA\x3\x2\x2\x2\xAD\xB1"+ - "\t\x3\x2\x2\xAE\xB0\aL\x2\x2\xAF\xAE\x3\x2\x2\x2\xB0\xB3\x3\x2\x2\x2\xB1"+ - "\xAF\x3\x2\x2\x2\xB1\xB2\x3\x2\x2\x2\xB2\xB4\x3\x2\x2\x2\xB3\xB1\x3\x2"+ - "\x2\x2\xB4\x14C\x5\x10\t\x12\xB5\xB9\f\x10\x2\x2\xB6\xB8\aL\x2\x2\xB7"+ - "\xB6\x3\x2\x2\x2\xB8\xBB\x3\x2\x2\x2\xB9\xB7\x3\x2\x2\x2\xB9\xBA\x3\x2"+ - "\x2\x2\xBA\xBC\x3\x2\x2\x2\xBB\xB9\x3\x2\x2\x2\xBC\xC0\a>\x2\x2\xBD\xBF"+ - "\aL\x2\x2\xBE\xBD\x3\x2\x2\x2\xBF\xC2\x3\x2\x2\x2\xC0\xBE\x3\x2\x2\x2"+ - "\xC0\xC1\x3\x2\x2\x2\xC1\xC3\x3\x2\x2\x2\xC2\xC0\x3\x2\x2\x2\xC3\x14C"+ - "\x5\x10\t\x11\xC4\xC8\f\xF\x2\x2\xC5\xC7\aL\x2\x2\xC6\xC5\x3\x2\x2\x2"+ - "\xC7\xCA\x3\x2\x2\x2\xC8\xC6\x3\x2\x2\x2\xC8\xC9\x3\x2\x2\x2\xC9\xCB\x3"+ - "\x2\x2\x2\xCA\xC8\x3\x2\x2\x2\xCB\xCF\a*\x2\x2\xCC\xCE\aL\x2\x2\xCD\xCC"+ - "\x3\x2\x2\x2\xCE\xD1\x3\x2\x2\x2\xCF\xCD\x3\x2\x2\x2\xCF\xD0\x3\x2\x2"+ - "\x2\xD0\xD2\x3\x2\x2\x2\xD1\xCF\x3\x2\x2\x2\xD2\x14C\x5\x10\t\x10\xD3"+ - "\xD7\f\xE\x2\x2\xD4\xD6\aL\x2\x2\xD5\xD4\x3\x2\x2\x2\xD6\xD9\x3\x2\x2"+ - "\x2\xD7\xD5\x3\x2\x2\x2\xD7\xD8\x3\x2\x2\x2\xD8\xDA\x3\x2\x2\x2\xD9\xD7"+ - "\x3\x2\x2\x2\xDA\xDE\t\x4\x2\x2\xDB\xDD\aL\x2\x2\xDC\xDB\x3\x2\x2\x2\xDD"+ - "\xE0\x3\x2\x2\x2\xDE\xDC\x3\x2\x2\x2\xDE\xDF\x3\x2\x2\x2\xDF\xE1\x3\x2"+ - "\x2\x2\xE0\xDE\x3\x2\x2\x2\xE1\x14C\x5\x10\t\xF\xE2\xE6\f\r\x2\x2\xE3"+ - "\xE5\aL\x2\x2\xE4\xE3\x3\x2\x2\x2\xE5\xE8\x3\x2\x2\x2\xE6\xE4\x3\x2\x2"+ - "\x2\xE6\xE7\x3\x2\x2\x2\xE7\xE9\x3\x2\x2\x2\xE8\xE6\x3\x2\x2\x2\xE9\xED"+ - "\a\x32\x2\x2\xEA\xEC\aL\x2\x2\xEB\xEA\x3\x2\x2\x2\xEC\xEF\x3\x2\x2\x2"+ - "\xED\xEB\x3\x2\x2\x2\xED\xEE\x3\x2\x2\x2\xEE\xF0\x3\x2\x2\x2\xEF\xED\x3"+ - "\x2\x2\x2\xF0\x14C\x5\x10\t\xE\xF1\xF5\f\f\x2\x2\xF2\xF4\aL\x2\x2\xF3"+ - "\xF2\x3\x2\x2\x2\xF4\xF7\x3\x2\x2\x2\xF5\xF3\x3\x2\x2\x2\xF5\xF6\x3\x2"+ - "\x2\x2\xF6\xF8\x3\x2\x2\x2\xF7\xF5\x3\x2\x2\x2\xF8\xFC\t\x5\x2\x2\xF9"+ - "\xFB\aL\x2\x2\xFA\xF9\x3\x2\x2\x2\xFB\xFE\x3\x2\x2\x2\xFC\xFA\x3\x2\x2"+ - "\x2\xFC\xFD\x3\x2\x2\x2\xFD\xFF\x3\x2\x2\x2\xFE\xFC\x3\x2\x2\x2\xFF\x14C"+ - "\x5\x10\t\r\x100\x104\f\n\x2\x2\x101\x103\aL\x2\x2\x102\x101\x3\x2\x2"+ - "\x2\x103\x106\x3\x2\x2\x2\x104\x102\x3\x2\x2\x2\x104\x105\x3\x2\x2\x2"+ - "\x105\x107\x3\x2\x2\x2\x106\x104\x3\x2\x2\x2\x107\x10B\a+\x2\x2\x108\x10A"+ - "\aL\x2\x2\x109\x108\x3\x2\x2\x2\x10A\x10D\x3\x2\x2\x2\x10B\x109\x3\x2"+ - "\x2\x2\x10B\x10C\x3\x2\x2\x2\x10C\x10E\x3\x2\x2\x2\x10D\x10B\x3\x2\x2"+ - "\x2\x10E\x14C\x5\x10\t\v\x10F\x113\f\t\x2\x2\x110\x112\aL\x2\x2\x111\x110"+ - "\x3\x2\x2\x2\x112\x115\x3\x2\x2\x2\x113\x111\x3\x2\x2\x2\x113\x114\x3"+ - "\x2\x2\x2\x114\x116\x3\x2\x2\x2\x115\x113\x3\x2\x2\x2\x116\x11A\a,\x2"+ - "\x2\x117\x119\aL\x2\x2\x118\x117\x3\x2\x2\x2\x119\x11C\x3\x2\x2\x2\x11A"+ - "\x118\x3\x2\x2\x2\x11A\x11B\x3\x2\x2\x2\x11B\x11D\x3\x2\x2\x2\x11C\x11A"+ - "\x3\x2\x2\x2\x11D\x14C\x5\x10\t\n\x11E\x122\f\b\x2\x2\x11F\x121\aL\x2"+ - "\x2\x120\x11F\x3\x2\x2\x2\x121\x124\x3\x2\x2\x2\x122\x120\x3\x2\x2\x2"+ - "\x122\x123\x3\x2\x2\x2\x123\x125\x3\x2\x2\x2\x124\x122\x3\x2\x2\x2\x125"+ - "\x129\a-\x2\x2\x126\x128\aL\x2\x2\x127\x126\x3\x2\x2\x2\x128\x12B\x3\x2"+ - "\x2\x2\x129\x127\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x12C\x3\x2\x2"+ - "\x2\x12B\x129\x3\x2\x2\x2\x12C\x14C\x5\x10\t\t\x12D\x131\f\a\x2\x2\x12E"+ - "\x130\aL\x2\x2\x12F\x12E\x3\x2\x2\x2\x130\x133\x3\x2\x2\x2\x131\x12F\x3"+ - "\x2\x2\x2\x131\x132\x3\x2\x2\x2\x132\x134\x3\x2\x2\x2\x133\x131\x3\x2"+ - "\x2\x2\x134\x138\a.\x2\x2\x135\x137\aL\x2\x2\x136\x135\x3\x2\x2\x2\x137"+ - "\x13A\x3\x2\x2\x2\x138\x136\x3\x2\x2\x2\x138\x139\x3\x2\x2\x2\x139\x13B"+ - "\x3\x2\x2\x2\x13A\x138\x3\x2\x2\x2\x13B\x14C\x5\x10\t\b\x13C\x140\f\x6"+ - "\x2\x2\x13D\x13F\aL\x2\x2\x13E\x13D\x3\x2\x2\x2\x13F\x142\x3\x2\x2\x2"+ - "\x140\x13E\x3\x2\x2\x2\x140\x141\x3\x2\x2\x2\x141\x143\x3\x2\x2\x2\x142"+ - "\x140\x3\x2\x2\x2\x143\x147\a/\x2\x2\x144\x146\aL\x2\x2\x145\x144\x3\x2"+ - "\x2\x2\x146\x149\x3\x2\x2\x2\x147\x145\x3\x2\x2\x2\x147\x148\x3\x2\x2"+ - "\x2\x148\x14A\x3\x2\x2\x2\x149\x147\x3\x2\x2\x2\x14A\x14C\x5\x10\t\a\x14B"+ - "\x97\x3\x2\x2\x2\x14B\xA6\x3\x2\x2\x2\x14B\xB5\x3\x2\x2\x2\x14B\xC4\x3"+ - "\x2\x2\x2\x14B\xD3\x3\x2\x2\x2\x14B\xE2\x3\x2\x2\x2\x14B\xF1\x3\x2\x2"+ - "\x2\x14B\x100\x3\x2\x2\x2\x14B\x10F\x3\x2\x2\x2\x14B\x11E\x3\x2\x2\x2"+ - "\x14B\x12D\x3\x2\x2\x2\x14B\x13C\x3\x2\x2\x2\x14C\x14F\x3\x2\x2\x2\x14D"+ - "\x14B\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E\x11\x3\x2\x2\x2\x14F\x14D"+ - "\x3\x2\x2\x2\x150\x151\x5\x14\v\x2\x151\x155\x5\x4\x3\x2\x152\x154\x5"+ - "\x16\f\x2\x153\x152\x3\x2\x2\x2\x154\x157\x3\x2\x2\x2\x155\x153\x3\x2"+ - "\x2\x2\x155\x156\x3\x2\x2\x2\x156\x159\x3\x2\x2\x2\x157\x155\x3\x2\x2"+ - "\x2\x158\x15A\x5\x1A\xE\x2\x159\x158\x3\x2\x2\x2\x159\x15A\x3\x2\x2\x2"+ - "\x15A\x15B\x3\x2\x2\x2\x15B\x15C\x5\x1E\x10\x2\x15C\x13\x3\x2\x2\x2\x15D"+ - "\x15F\aL\x2\x2\x15E\x15D\x3\x2\x2\x2\x15F\x162\x3\x2\x2\x2\x160\x15E\x3"+ - "\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x163\x3\x2\x2\x2\x162\x160\x3\x2"+ - "\x2\x2\x163\x165\a\x11\x2\x2\x164\x166\aL\x2\x2\x165\x164\x3\x2\x2\x2"+ - "\x166\x167\x3\x2\x2\x2\x167\x165\x3\x2\x2\x2\x167\x168\x3\x2\x2\x2\x168"+ - "\x169\x3\x2\x2\x2\x169\x16B\x5\x10\t\x2\x16A\x16C\aL\x2\x2\x16B\x16A\x3"+ - "\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D\x16B\x3\x2\x2\x2\x16D\x16E\x3\x2"+ - "\x2\x2\x16E\x16F\x3\x2\x2\x2\x16F\x170\a\x12\x2\x2\x170\x171\x5 \x11\x2"+ - "\x171\x15\x3\x2\x2\x2\x172\x173\x5\x18\r\x2\x173\x174\x5\x4\x3\x2\x174"+ - "\x17\x3\x2\x2\x2\x175\x177\aL\x2\x2\x176\x175\x3\x2\x2\x2\x177\x17A\x3"+ - "\x2\x2\x2\x178\x176\x3\x2\x2\x2\x178\x179\x3\x2\x2\x2\x179\x17B\x3\x2"+ - "\x2\x2\x17A\x178\x3\x2\x2\x2\x17B\x17D\a\x13\x2\x2\x17C\x17E\aL\x2\x2"+ - "\x17D\x17C\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\x17D\x3\x2\x2\x2\x17F"+ - "\x180\x3\x2\x2\x2\x180\x181\x3\x2\x2\x2\x181\x183\x5\x10\t\x2\x182\x184"+ - "\aL\x2\x2\x183\x182\x3\x2\x2\x2\x184\x185\x3\x2\x2\x2\x185\x183\x3\x2"+ - "\x2\x2\x185\x186\x3\x2\x2\x2\x186\x187\x3\x2\x2\x2\x187\x188\a\x12\x2"+ - "\x2\x188\x189\x5 \x11\x2\x189\x19\x3\x2\x2\x2\x18A\x18B\x5\x1C\xF\x2\x18B"+ - "\x18C\x5\x4\x3\x2\x18C\x1B\x3\x2\x2\x2\x18D\x18F\aL\x2\x2\x18E\x18D\x3"+ - "\x2\x2\x2\x18F\x192\x3\x2\x2\x2\x190\x18E\x3\x2\x2\x2\x190\x191\x3\x2"+ - "\x2\x2\x191\x193\x3\x2\x2\x2\x192\x190\x3\x2\x2\x2\x193\x194\a\x14\x2"+ - "\x2\x194\x195\x5 \x11\x2\x195\x1D\x3\x2\x2\x2\x196\x198\aL\x2\x2\x197"+ - "\x196\x3\x2\x2\x2\x198\x19B\x3\x2\x2\x2\x199\x197\x3\x2\x2\x2\x199\x19A"+ - "\x3\x2\x2\x2\x19A\x19C\x3\x2\x2\x2\x19B\x199\x3\x2\x2\x2\x19C\x19D\a\x15"+ - "\x2\x2\x19D\x19E\x5 \x11\x2\x19E\x1F\x3\x2\x2\x2\x19F\x1A3\aH\x2\x2\x1A0"+ - "\x1A2\n\x6\x2\x2\x1A1\x1A0\x3\x2\x2\x2\x1A2\x1A5\x3\x2\x2\x2\x1A3\x1A1"+ - "\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x1A7\x3\x2\x2\x2\x1A5\x1A3\x3"+ - "\x2\x2\x2\x1A6\x19F\x3\x2\x2\x2\x1A6\x1A7\x3\x2\x2\x2\x1A7\x1A9\x3\x2"+ - "\x2\x2\x1A8\x1AA\aK\x2\x2\x1A9\x1A8\x3\x2\x2\x2\x1A9\x1AA\x3\x2\x2\x2"+ - "\x1AA!\x3\x2\x2\x2\x1AB\x1AC\x5$\x13\x2\x1AC\x1B0\a\x37\x2\x2\x1AD\x1AF"+ - "\aL\x2\x2\x1AE\x1AD\x3\x2\x2\x2\x1AF\x1B2\x3\x2\x2\x2\x1B0\x1AE\x3\x2"+ - "\x2\x2\x1B0\x1B1\x3\x2\x2\x2\x1B1\x1B3\x3\x2\x2\x2\x1B2\x1B0\x3\x2\x2"+ - "\x2\x1B3\x1B7\x5\x10\t\x2\x1B4\x1B6\aL\x2\x2\x1B5\x1B4\x3\x2\x2\x2\x1B6"+ - "\x1B9\x3\x2\x2\x2\x1B7\x1B5\x3\x2\x2\x2\x1B7\x1B8\x3\x2\x2\x2\x1B8\x1BA"+ - "\x3\x2\x2\x2\x1B9\x1B7\x3\x2\x2\x2\x1BA\x1BB\a\x38\x2\x2\x1BB#\x3\x2\x2"+ - "\x2\x1BC\x1BD\t\a\x2\x2\x1BD%\x3\x2\x2\x2\x1BE\x1C0\aM\x2\x2\x1BF\x1C1"+ - "\x5(\x15\x2\x1C0\x1BF\x3\x2\x2\x2\x1C0\x1C1\x3\x2\x2\x2\x1C1\'\x3\x2\x2"+ - "\x2\x1C2\x1C3\t\b\x2\x2\x1C3)\x3\x2\x2\x2\x1C4\x1C5\t\t\x2\x2\x1C5+\x3"+ - "\x2\x2\x2=\x32\x34:\x41GMUY[^\x63jv~\x86\x8D\x95\x9B\xA2\xAA\xB1\xB9\xC0"+ - "\xC8\xCF\xD7\xDE\xE6\xED\xF5\xFC\x104\x10B\x113\x11A\x122\x129\x131\x138"+ - "\x140\x147\x14B\x14D\x155\x159\x160\x167\x16D\x178\x17F\x185\x190\x199"+ - "\x1A3\x1A6\x1A9\x1B0\x1B7\x1C0"; - public static readonly ATN _ATN = - new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); -} +namespace Rubberduck.Parsing.Preprocessing +{ + using Antlr4.Runtime; + using Antlr4.Runtime.Atn; + using Antlr4.Runtime.Misc; + using Antlr4.Runtime.Tree; + using System.Collections.Generic; + using DFA = Antlr4.Runtime.Dfa.DFA; + + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public partial class VBAConditionalCompilationParser : Parser + { + public const int + STRINGLITERAL = 1, OCTLITERAL = 2, HEXLITERAL = 3, SHORTLITERAL = 4, INTEGERLITERAL = 5, + DOUBLELITERAL = 6, DATELITERAL = 7, JANUARY = 8, FEBRUARY = 9, MARCH = 10, APRIL = 11, + MAY = 12, JUNE = 13, JULY = 14, AUGUST = 15, SEPTEMBER = 16, OCTOBER = 17, NOVEMBER = 18, + DECEMBER = 19, JAN = 20, FEB = 21, MAR = 22, APR = 23, JUN = 24, JUL = 25, AUG = 26, SEP = 27, + OCT = 28, NOV = 29, DEC = 30, NOT = 31, TRUE = 32, FALSE = 33, NOTHING = 34, NULL = 35, + EMPTY = 36, HASHCONST = 37, HASHIF = 38, THEN = 39, HASHELSEIF = 40, HASHELSE = 41, + HASHENDIF = 42, INT = 43, FIX = 44, ABS = 45, SGN = 46, LEN = 47, LENB = 48, CBOOL = 49, + CBYTE = 50, CCUR = 51, CDATE = 52, CDBL = 53, CINT = 54, CLNG = 55, CLNGLNG = 56, CLNGPTR = 57, + CSNG = 58, CSTR = 59, CVAR = 60, IS = 61, LIKE = 62, MOD = 63, AND = 64, OR = 65, XOR = 66, + EQV = 67, IMP = 68, CONST = 69, HASH = 70, AMPERSAND = 71, PERCENT = 72, EXCLAMATIONMARK = 73, + AT = 74, DOLLAR = 75, L_PAREN = 76, R_PAREN = 77, L_SQUARE_BRACKET = 78, R_SQUARE_BRACKET = 79, + UNDERSCORE = 80, EQ = 81, DIV = 82, INTDIV = 83, GEQ = 84, GT = 85, LEQ = 86, LT = 87, + MINUS = 88, MULT = 89, NEQ = 90, PLUS = 91, POW = 92, SINGLEQUOTE = 93, DOT = 94, COMMA = 95, + NEWLINE = 96, WS = 97, IDENTIFIER = 98, ANYCHAR = 99; + public static readonly string[] tokenNames = { + "", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", + "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", "JANUARY", "FEBRUARY", + "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", + "NOVEMBER", "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", + "SEP", "OCT", "NOV", "DEC", "NOT", "TRUE", "FALSE", "NOTHING", "NULL", + "EMPTY", "HASHCONST", "HASHIF", "THEN", "HASHELSEIF", "HASHELSE", "HASHENDIF", + "INT", "FIX", "ABS", "SGN", "LEN", "LENB", "CBOOL", "CBYTE", "CCUR", "CDATE", + "CDBL", "CINT", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", "CSTR", "CVAR", + "IS", "LIKE", "MOD", "AND", "OR", "XOR", "EQV", "IMP", "CONST", "'#'", + "'&'", "'%'", "'!'", "'@'", "'$'", "'('", "')'", "'['", "']'", "'_'", + "'='", "'/'", "'\\'", "'>='", "'>'", "'<='", "'<'", "'-'", "'*'", "'<>'", + "'+'", "'^'", "'''", "'.'", "','", "NEWLINE", "WS", "IDENTIFIER", "ANYCHAR" + }; + public const int + RULE_compilationUnit = 0, RULE_ccBlock = 1, RULE_ccConst = 2, RULE_logicalLine = 3, + RULE_extendedLine = 4, RULE_lineContinuation = 5, RULE_ccVarLhs = 6, RULE_ccExpression = 7, + RULE_ccIfBlock = 8, RULE_ccIf = 9, RULE_ccElseIfBlock = 10, RULE_ccElseIf = 11, + RULE_ccElseBlock = 12, RULE_ccElse = 13, RULE_ccEndIf = 14, RULE_ccEol = 15, + RULE_intrinsicFunction = 16, RULE_intrinsicFunctionName = 17, RULE_name = 18, + RULE_typeSuffix = 19, RULE_literal = 20; + public static readonly string[] ruleNames = { + "compilationUnit", "ccBlock", "ccConst", "logicalLine", "extendedLine", + "lineContinuation", "ccVarLhs", "ccExpression", "ccIfBlock", "ccIf", "ccElseIfBlock", + "ccElseIf", "ccElseBlock", "ccElse", "ccEndIf", "ccEol", "intrinsicFunction", + "intrinsicFunctionName", "name", "typeSuffix", "literal" + }; + + public override string GrammarFileName { get { return "VBAConditionalCompilation.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public VBAConditionalCompilationParser(ITokenStream input) + : base(input) + { + _interp = new ParserATNSimulator(this, _ATN); + } + public partial class CompilationUnitContext : ParserRuleContext + { + public CcBlockContext ccBlock() + { + return GetRuleContext(0); + } + public ITerminalNode Eof() { return GetToken(VBAConditionalCompilationParser.Eof, 0); } + public CompilationUnitContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_compilationUnit; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCompilationUnit(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCompilationUnit(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCompilationUnit(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CompilationUnitContext compilationUnit() + { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, State); + EnterRule(_localctx, 0, RULE_compilationUnit); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 42; ccBlock(); + State = 43; Match(Eof); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcBlockContext : ParserRuleContext + { + public CcIfBlockContext ccIfBlock(int i) + { + return GetRuleContext(i); + } + public IReadOnlyList logicalLine() + { + return GetRuleContexts(); + } + public IReadOnlyList ccIfBlock() + { + return GetRuleContexts(); + } + public LogicalLineContext logicalLine(int i) + { + return GetRuleContext(i); + } + public IReadOnlyList ccConst() + { + return GetRuleContexts(); + } + public CcConstContext ccConst(int i) + { + return GetRuleContext(i); + } + public CcBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccBlock; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcBlock(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcBlockContext ccBlock() + { + CcBlockContext _localctx = new CcBlockContext(_ctx, State); + EnterRule(_localctx, 2, RULE_ccBlock); + try + { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 50; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 1, _ctx); + while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) + { + if (_alt == 1) + { + { + State = 48; + switch (Interpreter.AdaptivePredict(_input, 0, _ctx)) + { + case 1: + { + State = 45; ccConst(); + } + break; + + case 2: + { + State = 46; ccIfBlock(); + } + break; + + case 3: + { + State = 47; logicalLine(); + } + break; + } + } + } + State = 52; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 1, _ctx); + } + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcConstContext : ParserRuleContext + { + public CcVarLhsContext ccVarLhs() + { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode EQ() { return GetToken(VBAConditionalCompilationParser.EQ, 0); } + public ITerminalNode HASHCONST() { return GetToken(VBAConditionalCompilationParser.HASHCONST, 0); } + public CcEolContext ccEol() + { + return GetRuleContext(0); + } + public CcExpressionContext ccExpression() + { + return GetRuleContext(0); + } + public CcConstContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccConst; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcConst(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcConst(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcConst(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcConstContext ccConst() + { + CcConstContext _localctx = new CcConstContext(_ctx, State); + EnterRule(_localctx, 4, RULE_ccConst); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 56; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 53; Match(WS); + } + } + State = 58; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 59; Match(HASHCONST); + State = 61; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 60; Match(WS); + } + } + State = 63; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 65; ccVarLhs(); + State = 67; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 66; Match(WS); + } + } + State = 69; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 71; Match(EQ); + State = 73; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 72; Match(WS); + } + } + State = 75; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 77; ccExpression(0); + State = 78; ccEol(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class LogicalLineContext : ParserRuleContext + { + public IReadOnlyList extendedLine() + { + return GetRuleContexts(); + } + public ExtendedLineContext extendedLine(int i) + { + return GetRuleContext(i); + } + public LogicalLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_logicalLine; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterLogicalLine(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitLogicalLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitLogicalLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LogicalLineContext logicalLine() + { + LogicalLineContext _localctx = new LogicalLineContext(_ctx, State); + EnterRule(_localctx, 6, RULE_logicalLine); + try + { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 81; + _errHandler.Sync(this); + _alt = 1; + do + { + switch (_alt) + { + case 1: + { + { + State = 80; extendedLine(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 83; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 6, _ctx); + } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class ExtendedLineContext : ParserRuleContext + { + public IReadOnlyList HASHIF() { return GetTokens(VBAConditionalCompilationParser.HASHIF); } + public IReadOnlyList HASHENDIF() { return GetTokens(VBAConditionalCompilationParser.HASHENDIF); } + public ITerminalNode HASHENDIF(int i) + { + return GetToken(VBAConditionalCompilationParser.HASHENDIF, i); + } + public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } + public IReadOnlyList HASHELSE() { return GetTokens(VBAConditionalCompilationParser.HASHELSE); } + public IReadOnlyList HASHELSEIF() { return GetTokens(VBAConditionalCompilationParser.HASHELSEIF); } + public IReadOnlyList lineContinuation() + { + return GetRuleContexts(); + } + public ITerminalNode HASHCONST(int i) + { + return GetToken(VBAConditionalCompilationParser.HASHCONST, i); + } + public ITerminalNode HASHIF(int i) + { + return GetToken(VBAConditionalCompilationParser.HASHIF, i); + } + public IReadOnlyList HASHCONST() { return GetTokens(VBAConditionalCompilationParser.HASHCONST); } + public ITerminalNode HASHELSEIF(int i) + { + return GetToken(VBAConditionalCompilationParser.HASHELSEIF, i); + } + public LineContinuationContext lineContinuation(int i) + { + return GetRuleContext(i); + } + public ITerminalNode HASHELSE(int i) + { + return GetToken(VBAConditionalCompilationParser.HASHELSE, i); + } + public ExtendedLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_extendedLine; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterExtendedLine(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitExtendedLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitExtendedLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ExtendedLineContext extendedLine() + { + ExtendedLineContext _localctx = new ExtendedLineContext(_ctx, State); + EnterRule(_localctx, 8, RULE_extendedLine); + int _la; + try + { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 87; + _errHandler.Sync(this); + _alt = 1; + do + { + switch (_alt) + { + case 1: + { + State = 87; + switch (Interpreter.AdaptivePredict(_input, 7, _ctx)) + { + case 1: + { + State = 85; lineContinuation(); + } + break; + + case 2: + { + State = 86; + _la = _input.La(1); + if (_la <= 0 || ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << HASHCONST) | (1L << HASHIF) | (1L << HASHELSEIF) | (1L << HASHELSE) | (1L << HASHENDIF))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 89; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 8, _ctx); + } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); + State = 92; + switch (Interpreter.AdaptivePredict(_input, 9, _ctx)) + { + case 1: + { + State = 91; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class LineContinuationContext : ParserRuleContext + { + public ITerminalNode UNDERSCORE() { return GetToken(VBAConditionalCompilationParser.UNDERSCORE, 0); } + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } + public LineContinuationContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lineContinuation; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterLineContinuation(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitLineContinuation(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitLineContinuation(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LineContinuationContext lineContinuation() + { + LineContinuationContext _localctx = new LineContinuationContext(_ctx, State); + EnterRule(_localctx, 10, RULE_lineContinuation); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 97; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 94; Match(WS); + } + } + State = 99; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 100; Match(UNDERSCORE); + State = 104; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 101; Match(WS); + } + } + State = 106; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 107; Match(NEWLINE); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcVarLhsContext : ParserRuleContext + { + public NameContext name() + { + return GetRuleContext(0); + } + public CcVarLhsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccVarLhs; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcVarLhs(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcVarLhs(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcVarLhs(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcVarLhsContext ccVarLhs() + { + CcVarLhsContext _localctx = new CcVarLhsContext(_ctx, State); + EnterRule(_localctx, 12, RULE_ccVarLhs); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 109; name(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcExpressionContext : ParserRuleContext + { + public ITerminalNode R_PAREN() { return GetToken(VBAConditionalCompilationParser.R_PAREN, 0); } + public ITerminalNode XOR() { return GetToken(VBAConditionalCompilationParser.XOR, 0); } + public ITerminalNode EQV() { return GetToken(VBAConditionalCompilationParser.EQV, 0); } + public ITerminalNode AMPERSAND() { return GetToken(VBAConditionalCompilationParser.AMPERSAND, 0); } + public ITerminalNode L_PAREN() { return GetToken(VBAConditionalCompilationParser.L_PAREN, 0); } + public IReadOnlyList ccExpression() + { + return GetRuleContexts(); + } + public ITerminalNode INTDIV() { return GetToken(VBAConditionalCompilationParser.INTDIV, 0); } + public ITerminalNode NOT() { return GetToken(VBAConditionalCompilationParser.NOT, 0); } + public ITerminalNode GEQ() { return GetToken(VBAConditionalCompilationParser.GEQ, 0); } + public ITerminalNode LEQ() { return GetToken(VBAConditionalCompilationParser.LEQ, 0); } + public LiteralContext literal() + { + return GetRuleContext(0); + } + public ITerminalNode AND() { return GetToken(VBAConditionalCompilationParser.AND, 0); } + public NameContext name() + { + return GetRuleContext(0); + } + public ITerminalNode IMP() { return GetToken(VBAConditionalCompilationParser.IMP, 0); } + public CcExpressionContext ccExpression(int i) + { + return GetRuleContext(i); + } + public ITerminalNode POW() { return GetToken(VBAConditionalCompilationParser.POW, 0); } + public ITerminalNode DIV() { return GetToken(VBAConditionalCompilationParser.DIV, 0); } + public ITerminalNode NEQ() { return GetToken(VBAConditionalCompilationParser.NEQ, 0); } + public IntrinsicFunctionContext intrinsicFunction() + { + return GetRuleContext(0); + } + public ITerminalNode MULT() { return GetToken(VBAConditionalCompilationParser.MULT, 0); } + public ITerminalNode LT() { return GetToken(VBAConditionalCompilationParser.LT, 0); } + public ITerminalNode GT() { return GetToken(VBAConditionalCompilationParser.GT, 0); } + public ITerminalNode MOD() { return GetToken(VBAConditionalCompilationParser.MOD, 0); } + public ITerminalNode OR() { return GetToken(VBAConditionalCompilationParser.OR, 0); } + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public ITerminalNode IS() { return GetToken(VBAConditionalCompilationParser.IS, 0); } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode MINUS() { return GetToken(VBAConditionalCompilationParser.MINUS, 0); } + public ITerminalNode PLUS() { return GetToken(VBAConditionalCompilationParser.PLUS, 0); } + public ITerminalNode EQ() { return GetToken(VBAConditionalCompilationParser.EQ, 0); } + public ITerminalNode LIKE() { return GetToken(VBAConditionalCompilationParser.LIKE, 0); } + public CcExpressionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccExpression; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcExpression(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcExpression(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcExpression(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcExpressionContext ccExpression() + { + return ccExpression(0); + } + + private CcExpressionContext ccExpression(int _p) + { + ParserRuleContext _parentctx = _ctx; + int _parentState = State; + CcExpressionContext _localctx = new CcExpressionContext(_ctx, _parentState); + CcExpressionContext _prevctx = _localctx; + int _startState = 14; + EnterRecursionRule(_localctx, 14, RULE_ccExpression, _p); + int _la; + try + { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 147; + switch (_input.La(1)) + { + case MINUS: + { + State = 112; Match(MINUS); + State = 116; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 113; Match(WS); + } + } + State = 118; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 119; ccExpression(16); + } + break; + case NOT: + { + State = 120; Match(NOT); + State = 124; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 121; Match(WS); + } + } + State = 126; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 127; ccExpression(9); + } + break; + case L_PAREN: + { + State = 128; Match(L_PAREN); + State = 132; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 129; Match(WS); + } + } + State = 134; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 135; ccExpression(0); + State = 139; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 136; Match(WS); + } + } + State = 141; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 142; Match(R_PAREN); + } + break; + case INT: + case FIX: + case ABS: + case SGN: + case LEN: + case LENB: + case CBOOL: + case CBYTE: + case CCUR: + case CDATE: + case CDBL: + case CINT: + case CLNG: + case CLNGLNG: + case CLNGPTR: + case CSNG: + case CSTR: + case CVAR: + { + State = 144; intrinsicFunction(); + } + break; + case STRINGLITERAL: + case OCTLITERAL: + case HEXLITERAL: + case SHORTLITERAL: + case INTEGERLITERAL: + case DOUBLELITERAL: + case DATELITERAL: + case TRUE: + case FALSE: + case NOTHING: + case NULL: + case EMPTY: + { + State = 145; literal(); + } + break; + case IDENTIFIER: + { + State = 146; name(); + } + break; + default: + throw new NoViableAltException(this); + } + _ctx.stop = _input.Lt(-1); + State = 331; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 42, _ctx); + while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) + { + if (_alt == 1) + { + if (_parseListeners != null) TriggerExitRuleEvent(); + _prevctx = _localctx; + { + State = 329; + switch (Interpreter.AdaptivePredict(_input, 41, _ctx)) + { + case 1: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 149; + if (!(Precpred(_ctx, 17))) throw new FailedPredicateException(this, "Precpred(_ctx, 17)"); + State = 153; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 150; Match(WS); + } + } + State = 155; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 156; Match(POW); + State = 160; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 157; Match(WS); + } + } + State = 162; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 163; ccExpression(18); + } + break; + + case 2: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 164; + if (!(Precpred(_ctx, 15))) throw new FailedPredicateException(this, "Precpred(_ctx, 15)"); + State = 168; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 165; Match(WS); + } + } + State = 170; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 171; + _la = _input.La(1); + if (!(_la == DIV || _la == MULT)) + { + _errHandler.RecoverInline(this); + } + Consume(); + State = 175; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 172; Match(WS); + } + } + State = 177; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 178; ccExpression(16); + } + break; + + case 3: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 179; + if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); + State = 183; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 180; Match(WS); + } + } + State = 185; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 186; Match(INTDIV); + State = 190; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 187; Match(WS); + } + } + State = 192; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 193; ccExpression(15); + } + break; + + case 4: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 194; + if (!(Precpred(_ctx, 13))) throw new FailedPredicateException(this, "Precpred(_ctx, 13)"); + State = 198; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 195; Match(WS); + } + } + State = 200; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 201; Match(MOD); + State = 205; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 202; Match(WS); + } + } + State = 207; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 208; ccExpression(14); + } + break; + + case 5: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 209; + if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); + State = 213; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 210; Match(WS); + } + } + State = 215; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 216; + _la = _input.La(1); + if (!(_la == MINUS || _la == PLUS)) + { + _errHandler.RecoverInline(this); + } + Consume(); + State = 220; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 217; Match(WS); + } + } + State = 222; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 223; ccExpression(13); + } + break; + + case 6: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 224; + if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); + State = 228; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 225; Match(WS); + } + } + State = 230; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 231; Match(AMPERSAND); + State = 235; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 232; Match(WS); + } + } + State = 237; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 238; ccExpression(12); + } + break; + + case 7: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 239; + if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); + State = 243; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 240; Match(WS); + } + } + State = 245; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 246; + _la = _input.La(1); + if (!(((((_la - 61)) & ~0x3f) == 0 && ((1L << (_la - 61)) & ((1L << (IS - 61)) | (1L << (LIKE - 61)) | (1L << (EQ - 61)) | (1L << (GEQ - 61)) | (1L << (GT - 61)) | (1L << (LEQ - 61)) | (1L << (LT - 61)) | (1L << (NEQ - 61)))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + State = 250; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 247; Match(WS); + } + } + State = 252; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 253; ccExpression(11); + } + break; + + case 8: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 254; + if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); + State = 258; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 255; Match(WS); + } + } + State = 260; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 261; Match(AND); + State = 265; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 262; Match(WS); + } + } + State = 267; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 268; ccExpression(9); + } + break; + + case 9: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 269; + if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); + State = 273; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 270; Match(WS); + } + } + State = 275; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 276; Match(OR); + State = 280; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 277; Match(WS); + } + } + State = 282; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 283; ccExpression(8); + } + break; + + case 10: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 284; + if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); + State = 288; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 285; Match(WS); + } + } + State = 290; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 291; Match(XOR); + State = 295; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 292; Match(WS); + } + } + State = 297; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 298; ccExpression(7); + } + break; + + case 11: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 299; + if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); + State = 303; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 300; Match(WS); + } + } + State = 305; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 306; Match(EQV); + State = 310; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 307; Match(WS); + } + } + State = 312; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 313; ccExpression(6); + } + break; + + case 12: + { + _localctx = new CcExpressionContext(_parentctx, _parentState); + PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); + State = 314; + if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); + State = 318; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 315; Match(WS); + } + } + State = 320; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 321; Match(IMP); + State = 325; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 322; Match(WS); + } + } + State = 327; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 328; ccExpression(5); + } + break; + } + } + } + State = 333; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 42, _ctx); + } + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + UnrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public partial class CcIfBlockContext : ParserRuleContext + { + public CcIfContext ccIf() + { + return GetRuleContext(0); + } + public CcBlockContext ccBlock() + { + return GetRuleContext(0); + } + public CcElseIfBlockContext ccElseIfBlock(int i) + { + return GetRuleContext(i); + } + public CcEndIfContext ccEndIf() + { + return GetRuleContext(0); + } + public CcElseBlockContext ccElseBlock() + { + return GetRuleContext(0); + } + public IReadOnlyList ccElseIfBlock() + { + return GetRuleContexts(); + } + public CcIfBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccIfBlock; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcIfBlock(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcIfBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcIfBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcIfBlockContext ccIfBlock() + { + CcIfBlockContext _localctx = new CcIfBlockContext(_ctx, State); + EnterRule(_localctx, 16, RULE_ccIfBlock); + try + { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 334; ccIf(); + State = 335; ccBlock(); + State = 339; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 43, _ctx); + while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) + { + if (_alt == 1) + { + { + { + State = 336; ccElseIfBlock(); + } + } + } + State = 341; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 43, _ctx); + } + State = 343; + switch (Interpreter.AdaptivePredict(_input, 44, _ctx)) + { + case 1: + { + State = 342; ccElseBlock(); + } + break; + } + State = 345; ccEndIf(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcIfContext : ParserRuleContext + { + public ITerminalNode HASHIF() { return GetToken(VBAConditionalCompilationParser.HASHIF, 0); } + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode THEN() { return GetToken(VBAConditionalCompilationParser.THEN, 0); } + public CcEolContext ccEol() + { + return GetRuleContext(0); + } + public CcExpressionContext ccExpression() + { + return GetRuleContext(0); + } + public CcIfContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccIf; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcIf(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcIf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcIf(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcIfContext ccIf() + { + CcIfContext _localctx = new CcIfContext(_ctx, State); + EnterRule(_localctx, 18, RULE_ccIf); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 350; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 347; Match(WS); + } + } + State = 352; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 353; Match(HASHIF); + State = 355; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 354; Match(WS); + } + } + State = 357; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 359; ccExpression(0); + State = 361; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 360; Match(WS); + } + } + State = 363; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 365; Match(THEN); + State = 366; ccEol(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseIfBlockContext : ParserRuleContext + { + public CcBlockContext ccBlock() + { + return GetRuleContext(0); + } + public CcElseIfContext ccElseIf() + { + return GetRuleContext(0); + } + public CcElseIfBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElseIfBlock; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElseIfBlock(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElseIfBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElseIfBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseIfBlockContext ccElseIfBlock() + { + CcElseIfBlockContext _localctx = new CcElseIfBlockContext(_ctx, State); + EnterRule(_localctx, 20, RULE_ccElseIfBlock); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 368; ccElseIf(); + State = 369; ccBlock(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseIfContext : ParserRuleContext + { + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode THEN() { return GetToken(VBAConditionalCompilationParser.THEN, 0); } + public CcEolContext ccEol() + { + return GetRuleContext(0); + } + public ITerminalNode HASHELSEIF() { return GetToken(VBAConditionalCompilationParser.HASHELSEIF, 0); } + public CcExpressionContext ccExpression() + { + return GetRuleContext(0); + } + public CcElseIfContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElseIf; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElseIf(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElseIf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElseIf(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseIfContext ccElseIf() + { + CcElseIfContext _localctx = new CcElseIfContext(_ctx, State); + EnterRule(_localctx, 22, RULE_ccElseIf); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 374; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 371; Match(WS); + } + } + State = 376; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 377; Match(HASHELSEIF); + State = 379; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 378; Match(WS); + } + } + State = 381; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 383; ccExpression(0); + State = 385; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 384; Match(WS); + } + } + State = 387; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 389; Match(THEN); + State = 390; ccEol(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseBlockContext : ParserRuleContext + { + public CcBlockContext ccBlock() + { + return GetRuleContext(0); + } + public CcElseContext ccElse() + { + return GetRuleContext(0); + } + public CcElseBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElseBlock; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElseBlock(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElseBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElseBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseBlockContext ccElseBlock() + { + CcElseBlockContext _localctx = new CcElseBlockContext(_ctx, State); + EnterRule(_localctx, 24, RULE_ccElseBlock); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 392; ccElse(); + State = 393; ccBlock(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcElseContext : ParserRuleContext + { + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode HASHELSE() { return GetToken(VBAConditionalCompilationParser.HASHELSE, 0); } + public CcEolContext ccEol() + { + return GetRuleContext(0); + } + public CcElseContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccElse; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcElse(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcElse(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcElse(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcElseContext ccElse() + { + CcElseContext _localctx = new CcElseContext(_ctx, State); + EnterRule(_localctx, 26, RULE_ccElse); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 398; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 395; Match(WS); + } + } + State = 400; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 401; Match(HASHELSE); + State = 402; ccEol(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcEndIfContext : ParserRuleContext + { + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public ITerminalNode HASHENDIF() { return GetToken(VBAConditionalCompilationParser.HASHENDIF, 0); } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public CcEolContext ccEol() + { + return GetRuleContext(0); + } + public CcEndIfContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccEndIf; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcEndIf(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcEndIf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcEndIf(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcEndIfContext ccEndIf() + { + CcEndIfContext _localctx = new CcEndIfContext(_ctx, State); + EnterRule(_localctx, 28, RULE_ccEndIf); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 407; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 404; Match(WS); + } + } + State = 409; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 410; Match(HASHENDIF); + State = 411; ccEol(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class CcEolContext : ParserRuleContext + { + public ITerminalNode SINGLEQUOTE() { return GetToken(VBAConditionalCompilationParser.SINGLEQUOTE, 0); } + public IReadOnlyList NEWLINE() { return GetTokens(VBAConditionalCompilationParser.NEWLINE); } + public ITerminalNode NEWLINE(int i) + { + return GetToken(VBAConditionalCompilationParser.NEWLINE, i); + } + public CcEolContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ccEol; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterCcEol(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitCcEol(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitCcEol(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CcEolContext ccEol() + { + CcEolContext _localctx = new CcEolContext(_ctx, State); + EnterRule(_localctx, 30, RULE_ccEol); + int _la; + try + { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 420; + switch (Interpreter.AdaptivePredict(_input, 54, _ctx)) + { + case 1: + { + State = 413; Match(SINGLEQUOTE); + State = 417; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 53, _ctx); + while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) + { + if (_alt == 1) + { + { + { + State = 414; + _la = _input.La(1); + if (_la <= 0 || (_la == NEWLINE)) + { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + } + State = 419; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input, 53, _ctx); + } + } + break; + } + State = 423; + switch (Interpreter.AdaptivePredict(_input, 55, _ctx)) + { + case 1: + { + State = 422; Match(NEWLINE); + } + break; + } + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class IntrinsicFunctionContext : ParserRuleContext + { + public IntrinsicFunctionNameContext intrinsicFunctionName() + { + return GetRuleContext(0); + } + public ITerminalNode R_PAREN() { return GetToken(VBAConditionalCompilationParser.R_PAREN, 0); } + public ITerminalNode WS(int i) + { + return GetToken(VBAConditionalCompilationParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAConditionalCompilationParser.WS); } + public ITerminalNode L_PAREN() { return GetToken(VBAConditionalCompilationParser.L_PAREN, 0); } + public CcExpressionContext ccExpression() + { + return GetRuleContext(0); + } + public IntrinsicFunctionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_intrinsicFunction; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterIntrinsicFunction(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitIntrinsicFunction(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitIntrinsicFunction(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IntrinsicFunctionContext intrinsicFunction() + { + IntrinsicFunctionContext _localctx = new IntrinsicFunctionContext(_ctx, State); + EnterRule(_localctx, 32, RULE_intrinsicFunction); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 425; intrinsicFunctionName(); + State = 426; Match(L_PAREN); + State = 430; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 427; Match(WS); + } + } + State = 432; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 433; ccExpression(0); + State = 437; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 434; Match(WS); + } + } + State = 439; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 440; Match(R_PAREN); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class IntrinsicFunctionNameContext : ParserRuleContext + { + public ITerminalNode CSTR() { return GetToken(VBAConditionalCompilationParser.CSTR, 0); } + public ITerminalNode CLNGLNG() { return GetToken(VBAConditionalCompilationParser.CLNGLNG, 0); } + public ITerminalNode CDATE() { return GetToken(VBAConditionalCompilationParser.CDATE, 0); } + public ITerminalNode CINT() { return GetToken(VBAConditionalCompilationParser.CINT, 0); } + public ITerminalNode ABS() { return GetToken(VBAConditionalCompilationParser.ABS, 0); } + public ITerminalNode LEN() { return GetToken(VBAConditionalCompilationParser.LEN, 0); } + public ITerminalNode CSNG() { return GetToken(VBAConditionalCompilationParser.CSNG, 0); } + public ITerminalNode INT() { return GetToken(VBAConditionalCompilationParser.INT, 0); } + public ITerminalNode CCUR() { return GetToken(VBAConditionalCompilationParser.CCUR, 0); } + public ITerminalNode LENB() { return GetToken(VBAConditionalCompilationParser.LENB, 0); } + public ITerminalNode CBOOL() { return GetToken(VBAConditionalCompilationParser.CBOOL, 0); } + public ITerminalNode CLNGPTR() { return GetToken(VBAConditionalCompilationParser.CLNGPTR, 0); } + public ITerminalNode SGN() { return GetToken(VBAConditionalCompilationParser.SGN, 0); } + public ITerminalNode CBYTE() { return GetToken(VBAConditionalCompilationParser.CBYTE, 0); } + public ITerminalNode FIX() { return GetToken(VBAConditionalCompilationParser.FIX, 0); } + public ITerminalNode CDBL() { return GetToken(VBAConditionalCompilationParser.CDBL, 0); } + public ITerminalNode CVAR() { return GetToken(VBAConditionalCompilationParser.CVAR, 0); } + public ITerminalNode CLNG() { return GetToken(VBAConditionalCompilationParser.CLNG, 0); } + public IntrinsicFunctionNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_intrinsicFunctionName; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterIntrinsicFunctionName(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitIntrinsicFunctionName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitIntrinsicFunctionName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IntrinsicFunctionNameContext intrinsicFunctionName() + { + IntrinsicFunctionNameContext _localctx = new IntrinsicFunctionNameContext(_ctx, State); + EnterRule(_localctx, 34, RULE_intrinsicFunctionName); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 442; + _la = _input.La(1); + if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << INT) | (1L << FIX) | (1L << ABS) | (1L << SGN) | (1L << LEN) | (1L << LENB) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CINT) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class NameContext : ParserRuleContext + { + public TypeSuffixContext typeSuffix() + { + return GetRuleContext(0); + } + public ITerminalNode IDENTIFIER() { return GetToken(VBAConditionalCompilationParser.IDENTIFIER, 0); } + public NameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_name; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterName(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public NameContext name() + { + NameContext _localctx = new NameContext(_ctx, State); + EnterRule(_localctx, 36, RULE_name); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 444; Match(IDENTIFIER); + State = 446; + switch (Interpreter.AdaptivePredict(_input, 58, _ctx)) + { + case 1: + { + State = 445; typeSuffix(); + } + break; + } + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class TypeSuffixContext : ParserRuleContext + { + public ITerminalNode AT() { return GetToken(VBAConditionalCompilationParser.AT, 0); } + public ITerminalNode EXCLAMATIONMARK() { return GetToken(VBAConditionalCompilationParser.EXCLAMATIONMARK, 0); } + public ITerminalNode DOLLAR() { return GetToken(VBAConditionalCompilationParser.DOLLAR, 0); } + public ITerminalNode AMPERSAND() { return GetToken(VBAConditionalCompilationParser.AMPERSAND, 0); } + public ITerminalNode PERCENT() { return GetToken(VBAConditionalCompilationParser.PERCENT, 0); } + public ITerminalNode HASH() { return GetToken(VBAConditionalCompilationParser.HASH, 0); } + public TypeSuffixContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeSuffix; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterTypeSuffix(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitTypeSuffix(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitTypeSuffix(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TypeSuffixContext typeSuffix() + { + TypeSuffixContext _localctx = new TypeSuffixContext(_ctx, State); + EnterRule(_localctx, 38, RULE_typeSuffix); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 448; + _la = _input.La(1); + if (!(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (HASH - 70)) | (1L << (AMPERSAND - 70)) | (1L << (PERCENT - 70)) | (1L << (EXCLAMATIONMARK - 70)) | (1L << (AT - 70)) | (1L << (DOLLAR - 70)))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public partial class LiteralContext : ParserRuleContext + { + public ITerminalNode INTEGERLITERAL() { return GetToken(VBAConditionalCompilationParser.INTEGERLITERAL, 0); } + public ITerminalNode NULL() { return GetToken(VBAConditionalCompilationParser.NULL, 0); } + public ITerminalNode STRINGLITERAL() { return GetToken(VBAConditionalCompilationParser.STRINGLITERAL, 0); } + public ITerminalNode FALSE() { return GetToken(VBAConditionalCompilationParser.FALSE, 0); } + public ITerminalNode TRUE() { return GetToken(VBAConditionalCompilationParser.TRUE, 0); } + public ITerminalNode NOTHING() { return GetToken(VBAConditionalCompilationParser.NOTHING, 0); } + public ITerminalNode DATELITERAL() { return GetToken(VBAConditionalCompilationParser.DATELITERAL, 0); } + public ITerminalNode HEXLITERAL() { return GetToken(VBAConditionalCompilationParser.HEXLITERAL, 0); } + public ITerminalNode DOUBLELITERAL() { return GetToken(VBAConditionalCompilationParser.DOUBLELITERAL, 0); } + public ITerminalNode SHORTLITERAL() { return GetToken(VBAConditionalCompilationParser.SHORTLITERAL, 0); } + public ITerminalNode EMPTY() { return GetToken(VBAConditionalCompilationParser.EMPTY, 0); } + public ITerminalNode OCTLITERAL() { return GetToken(VBAConditionalCompilationParser.OCTLITERAL, 0); } + public LiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_literal; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.EnterLiteral(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBAConditionalCompilationListener typedListener = listener as IVBAConditionalCompilationListener; + if (typedListener != null) typedListener.ExitLiteral(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBAConditionalCompilationVisitor typedVisitor = visitor as IVBAConditionalCompilationVisitor; + if (typedVisitor != null) return typedVisitor.VisitLiteral(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LiteralContext literal() + { + LiteralContext _localctx = new LiteralContext(_ctx, State); + EnterRule(_localctx, 40, RULE_literal); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 450; + _la = _input.La(1); + if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << STRINGLITERAL) | (1L << OCTLITERAL) | (1L << HEXLITERAL) | (1L << SHORTLITERAL) | (1L << INTEGERLITERAL) | (1L << DOUBLELITERAL) | (1L << DATELITERAL) | (1L << TRUE) | (1L << FALSE) | (1L << NOTHING) | (1L << NULL) | (1L << EMPTY))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } + + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) + { + switch (ruleIndex) + { + case 7: return ccExpression_sempred((CcExpressionContext)_localctx, predIndex); + } + return true; + } + private bool ccExpression_sempred(CcExpressionContext _localctx, int predIndex) + { + switch (predIndex) + { + case 0: return Precpred(_ctx, 17); + + case 1: return Precpred(_ctx, 15); + + case 2: return Precpred(_ctx, 14); + + case 3: return Precpred(_ctx, 13); + + case 4: return Precpred(_ctx, 12); + + case 5: return Precpred(_ctx, 11); + + case 6: return Precpred(_ctx, 10); + + case 7: return Precpred(_ctx, 8); + + case 8: return Precpred(_ctx, 7); + + case 9: return Precpred(_ctx, 6); + + case 10: return Precpred(_ctx, 5); + + case 11: return Precpred(_ctx, 4); + } + return true; + } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x65\x1C7\x4\x2" + + "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4" + + "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10" + + "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15" + + "\x4\x16\t\x16\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\a\x3\x33\n\x3\f\x3\xE" + + "\x3\x36\v\x3\x3\x4\a\x4\x39\n\x4\f\x4\xE\x4<\v\x4\x3\x4\x3\x4\x6\x4@\n" + + "\x4\r\x4\xE\x4\x41\x3\x4\x3\x4\x6\x4\x46\n\x4\r\x4\xE\x4G\x3\x4\x3\x4" + + "\x6\x4L\n\x4\r\x4\xE\x4M\x3\x4\x3\x4\x3\x4\x3\x5\x6\x5T\n\x5\r\x5\xE\x5" + + "U\x3\x6\x3\x6\x6\x6Z\n\x6\r\x6\xE\x6[\x3\x6\x5\x6_\n\x6\x3\a\a\a\x62\n" + + "\a\f\a\xE\a\x65\v\a\x3\a\x3\a\a\ai\n\a\f\a\xE\al\v\a\x3\a\x3\a\x3\b\x3" + + "\b\x3\t\x3\t\x3\t\a\tu\n\t\f\t\xE\tx\v\t\x3\t\x3\t\x3\t\a\t}\n\t\f\t\xE" + + "\t\x80\v\t\x3\t\x3\t\x3\t\a\t\x85\n\t\f\t\xE\t\x88\v\t\x3\t\x3\t\a\t\x8C" + + "\n\t\f\t\xE\t\x8F\v\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x96\n\t\x3\t\x3\t" + + "\a\t\x9A\n\t\f\t\xE\t\x9D\v\t\x3\t\x3\t\a\t\xA1\n\t\f\t\xE\t\xA4\v\t\x3" + + "\t\x3\t\x3\t\a\t\xA9\n\t\f\t\xE\t\xAC\v\t\x3\t\x3\t\a\t\xB0\n\t\f\t\xE" + + "\t\xB3\v\t\x3\t\x3\t\x3\t\a\t\xB8\n\t\f\t\xE\t\xBB\v\t\x3\t\x3\t\a\t\xBF" + + "\n\t\f\t\xE\t\xC2\v\t\x3\t\x3\t\x3\t\a\t\xC7\n\t\f\t\xE\t\xCA\v\t\x3\t" + + "\x3\t\a\t\xCE\n\t\f\t\xE\t\xD1\v\t\x3\t\x3\t\x3\t\a\t\xD6\n\t\f\t\xE\t" + + "\xD9\v\t\x3\t\x3\t\a\t\xDD\n\t\f\t\xE\t\xE0\v\t\x3\t\x3\t\x3\t\a\t\xE5" + + "\n\t\f\t\xE\t\xE8\v\t\x3\t\x3\t\a\t\xEC\n\t\f\t\xE\t\xEF\v\t\x3\t\x3\t" + + "\x3\t\a\t\xF4\n\t\f\t\xE\t\xF7\v\t\x3\t\x3\t\a\t\xFB\n\t\f\t\xE\t\xFE" + + "\v\t\x3\t\x3\t\x3\t\a\t\x103\n\t\f\t\xE\t\x106\v\t\x3\t\x3\t\a\t\x10A" + + "\n\t\f\t\xE\t\x10D\v\t\x3\t\x3\t\x3\t\a\t\x112\n\t\f\t\xE\t\x115\v\t\x3" + + "\t\x3\t\a\t\x119\n\t\f\t\xE\t\x11C\v\t\x3\t\x3\t\x3\t\a\t\x121\n\t\f\t" + + "\xE\t\x124\v\t\x3\t\x3\t\a\t\x128\n\t\f\t\xE\t\x12B\v\t\x3\t\x3\t\x3\t" + + "\a\t\x130\n\t\f\t\xE\t\x133\v\t\x3\t\x3\t\a\t\x137\n\t\f\t\xE\t\x13A\v" + + "\t\x3\t\x3\t\x3\t\a\t\x13F\n\t\f\t\xE\t\x142\v\t\x3\t\x3\t\a\t\x146\n" + + "\t\f\t\xE\t\x149\v\t\x3\t\a\t\x14C\n\t\f\t\xE\t\x14F\v\t\x3\n\x3\n\x3" + + "\n\a\n\x154\n\n\f\n\xE\n\x157\v\n\x3\n\x5\n\x15A\n\n\x3\n\x3\n\x3\v\a" + + "\v\x15F\n\v\f\v\xE\v\x162\v\v\x3\v\x3\v\x6\v\x166\n\v\r\v\xE\v\x167\x3" + + "\v\x3\v\x6\v\x16C\n\v\r\v\xE\v\x16D\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\r" + + "\a\r\x177\n\r\f\r\xE\r\x17A\v\r\x3\r\x3\r\x6\r\x17E\n\r\r\r\xE\r\x17F" + + "\x3\r\x3\r\x6\r\x184\n\r\r\r\xE\r\x185\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE" + + "\x3\xF\a\xF\x18F\n\xF\f\xF\xE\xF\x192\v\xF\x3\xF\x3\xF\x3\xF\x3\x10\a" + + "\x10\x198\n\x10\f\x10\xE\x10\x19B\v\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3" + + "\x11\a\x11\x1A2\n\x11\f\x11\xE\x11\x1A5\v\x11\x5\x11\x1A7\n\x11\x3\x11" + + "\x5\x11\x1AA\n\x11\x3\x12\x3\x12\x3\x12\a\x12\x1AF\n\x12\f\x12\xE\x12" + + "\x1B2\v\x12\x3\x12\x3\x12\a\x12\x1B6\n\x12\f\x12\xE\x12\x1B9\v\x12\x3" + + "\x12\x3\x12\x3\x13\x3\x13\x3\x14\x3\x14\x5\x14\x1C1\n\x14\x3\x15\x3\x15" + + "\x3\x16\x3\x16\x3\x16\x2\x2\x3\x10\x17\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2" + + "\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2" + + "$\x2&\x2(\x2*\x2\x2\n\x4\x2\'(*,\x4\x2TT[[\x4\x2ZZ]]\x6\x2?@SSVY\\\\\x3" + + "\x2\x62\x62\x3\x2->\x3\x2HM\x4\x2\x3\t\"&\x1FB\x2,\x3\x2\x2\x2\x4\x34" + + "\x3\x2\x2\x2\x6:\x3\x2\x2\x2\bS\x3\x2\x2\x2\nY\x3\x2\x2\x2\f\x63\x3\x2" + + "\x2\x2\xEo\x3\x2\x2\x2\x10\x95\x3\x2\x2\x2\x12\x150\x3\x2\x2\x2\x14\x160" + + "\x3\x2\x2\x2\x16\x172\x3\x2\x2\x2\x18\x178\x3\x2\x2\x2\x1A\x18A\x3\x2" + + "\x2\x2\x1C\x190\x3\x2\x2\x2\x1E\x199\x3\x2\x2\x2 \x1A6\x3\x2\x2\x2\"\x1AB" + + "\x3\x2\x2\x2$\x1BC\x3\x2\x2\x2&\x1BE\x3\x2\x2\x2(\x1C2\x3\x2\x2\x2*\x1C4" + + "\x3\x2\x2\x2,-\x5\x4\x3\x2-.\a\x2\x2\x3.\x3\x3\x2\x2\x2/\x33\x5\x6\x4" + + "\x2\x30\x33\x5\x12\n\x2\x31\x33\x5\b\x5\x2\x32/\x3\x2\x2\x2\x32\x30\x3" + + "\x2\x2\x2\x32\x31\x3\x2\x2\x2\x33\x36\x3\x2\x2\x2\x34\x32\x3\x2\x2\x2" + + "\x34\x35\x3\x2\x2\x2\x35\x5\x3\x2\x2\x2\x36\x34\x3\x2\x2\x2\x37\x39\a" + + "\x63\x2\x2\x38\x37\x3\x2\x2\x2\x39<\x3\x2\x2\x2:\x38\x3\x2\x2\x2:;\x3" + + "\x2\x2\x2;=\x3\x2\x2\x2<:\x3\x2\x2\x2=?\a\'\x2\x2>@\a\x63\x2\x2?>\x3\x2" + + "\x2\x2@\x41\x3\x2\x2\x2\x41?\x3\x2\x2\x2\x41\x42\x3\x2\x2\x2\x42\x43\x3" + + "\x2\x2\x2\x43\x45\x5\xE\b\x2\x44\x46\a\x63\x2\x2\x45\x44\x3\x2\x2\x2\x46" + + "G\x3\x2\x2\x2G\x45\x3\x2\x2\x2GH\x3\x2\x2\x2HI\x3\x2\x2\x2IK\aS\x2\x2" + + "JL\a\x63\x2\x2KJ\x3\x2\x2\x2LM\x3\x2\x2\x2MK\x3\x2\x2\x2MN\x3\x2\x2\x2" + + "NO\x3\x2\x2\x2OP\x5\x10\t\x2PQ\x5 \x11\x2Q\a\x3\x2\x2\x2RT\x5\n\x6\x2" + + "SR\x3\x2\x2\x2TU\x3\x2\x2\x2US\x3\x2\x2\x2UV\x3\x2\x2\x2V\t\x3\x2\x2\x2" + + "WZ\x5\f\a\x2XZ\n\x2\x2\x2YW\x3\x2\x2\x2YX\x3\x2\x2\x2Z[\x3\x2\x2\x2[Y" + + "\x3\x2\x2\x2[\\\x3\x2\x2\x2\\^\x3\x2\x2\x2]_\a\x62\x2\x2^]\x3\x2\x2\x2" + + "^_\x3\x2\x2\x2_\v\x3\x2\x2\x2`\x62\a\x63\x2\x2\x61`\x3\x2\x2\x2\x62\x65" + + "\x3\x2\x2\x2\x63\x61\x3\x2\x2\x2\x63\x64\x3\x2\x2\x2\x64\x66\x3\x2\x2" + + "\x2\x65\x63\x3\x2\x2\x2\x66j\aR\x2\x2gi\a\x63\x2\x2hg\x3\x2\x2\x2il\x3" + + "\x2\x2\x2jh\x3\x2\x2\x2jk\x3\x2\x2\x2km\x3\x2\x2\x2lj\x3\x2\x2\x2mn\a" + + "\x62\x2\x2n\r\x3\x2\x2\x2op\x5&\x14\x2p\xF\x3\x2\x2\x2qr\b\t\x1\x2rv\a" + + "Z\x2\x2su\a\x63\x2\x2ts\x3\x2\x2\x2ux\x3\x2\x2\x2vt\x3\x2\x2\x2vw\x3\x2" + + "\x2\x2wy\x3\x2\x2\x2xv\x3\x2\x2\x2y\x96\x5\x10\t\x12z~\a!\x2\x2{}\a\x63" + + "\x2\x2|{\x3\x2\x2\x2}\x80\x3\x2\x2\x2~|\x3\x2\x2\x2~\x7F\x3\x2\x2\x2\x7F" + + "\x81\x3\x2\x2\x2\x80~\x3\x2\x2\x2\x81\x96\x5\x10\t\v\x82\x86\aN\x2\x2" + + "\x83\x85\a\x63\x2\x2\x84\x83\x3\x2\x2\x2\x85\x88\x3\x2\x2\x2\x86\x84\x3" + + "\x2\x2\x2\x86\x87\x3\x2\x2\x2\x87\x89\x3\x2\x2\x2\x88\x86\x3\x2\x2\x2" + + "\x89\x8D\x5\x10\t\x2\x8A\x8C\a\x63\x2\x2\x8B\x8A\x3\x2\x2\x2\x8C\x8F\x3" + + "\x2\x2\x2\x8D\x8B\x3\x2\x2\x2\x8D\x8E\x3\x2\x2\x2\x8E\x90\x3\x2\x2\x2" + + "\x8F\x8D\x3\x2\x2\x2\x90\x91\aO\x2\x2\x91\x96\x3\x2\x2\x2\x92\x96\x5\"" + + "\x12\x2\x93\x96\x5*\x16\x2\x94\x96\x5&\x14\x2\x95q\x3\x2\x2\x2\x95z\x3" + + "\x2\x2\x2\x95\x82\x3\x2\x2\x2\x95\x92\x3\x2\x2\x2\x95\x93\x3\x2\x2\x2" + + "\x95\x94\x3\x2\x2\x2\x96\x14D\x3\x2\x2\x2\x97\x9B\f\x13\x2\x2\x98\x9A" + + "\a\x63\x2\x2\x99\x98\x3\x2\x2\x2\x9A\x9D\x3\x2\x2\x2\x9B\x99\x3\x2\x2" + + "\x2\x9B\x9C\x3\x2\x2\x2\x9C\x9E\x3\x2\x2\x2\x9D\x9B\x3\x2\x2\x2\x9E\xA2" + + "\a^\x2\x2\x9F\xA1\a\x63\x2\x2\xA0\x9F\x3\x2\x2\x2\xA1\xA4\x3\x2\x2\x2" + + "\xA2\xA0\x3\x2\x2\x2\xA2\xA3\x3\x2\x2\x2\xA3\xA5\x3\x2\x2\x2\xA4\xA2\x3" + + "\x2\x2\x2\xA5\x14C\x5\x10\t\x14\xA6\xAA\f\x11\x2\x2\xA7\xA9\a\x63\x2\x2" + + "\xA8\xA7\x3\x2\x2\x2\xA9\xAC\x3\x2\x2\x2\xAA\xA8\x3\x2\x2\x2\xAA\xAB\x3" + + "\x2\x2\x2\xAB\xAD\x3\x2\x2\x2\xAC\xAA\x3\x2\x2\x2\xAD\xB1\t\x3\x2\x2\xAE" + + "\xB0\a\x63\x2\x2\xAF\xAE\x3\x2\x2\x2\xB0\xB3\x3\x2\x2\x2\xB1\xAF\x3\x2" + + "\x2\x2\xB1\xB2\x3\x2\x2\x2\xB2\xB4\x3\x2\x2\x2\xB3\xB1\x3\x2\x2\x2\xB4" + + "\x14C\x5\x10\t\x12\xB5\xB9\f\x10\x2\x2\xB6\xB8\a\x63\x2\x2\xB7\xB6\x3" + + "\x2\x2\x2\xB8\xBB\x3\x2\x2\x2\xB9\xB7\x3\x2\x2\x2\xB9\xBA\x3\x2\x2\x2" + + "\xBA\xBC\x3\x2\x2\x2\xBB\xB9\x3\x2\x2\x2\xBC\xC0\aU\x2\x2\xBD\xBF\a\x63" + + "\x2\x2\xBE\xBD\x3\x2\x2\x2\xBF\xC2\x3\x2\x2\x2\xC0\xBE\x3\x2\x2\x2\xC0" + + "\xC1\x3\x2\x2\x2\xC1\xC3\x3\x2\x2\x2\xC2\xC0\x3\x2\x2\x2\xC3\x14C\x5\x10" + + "\t\x11\xC4\xC8\f\xF\x2\x2\xC5\xC7\a\x63\x2\x2\xC6\xC5\x3\x2\x2\x2\xC7" + + "\xCA\x3\x2\x2\x2\xC8\xC6\x3\x2\x2\x2\xC8\xC9\x3\x2\x2\x2\xC9\xCB\x3\x2" + + "\x2\x2\xCA\xC8\x3\x2\x2\x2\xCB\xCF\a\x41\x2\x2\xCC\xCE\a\x63\x2\x2\xCD" + + "\xCC\x3\x2\x2\x2\xCE\xD1\x3\x2\x2\x2\xCF\xCD\x3\x2\x2\x2\xCF\xD0\x3\x2" + + "\x2\x2\xD0\xD2\x3\x2\x2\x2\xD1\xCF\x3\x2\x2\x2\xD2\x14C\x5\x10\t\x10\xD3" + + "\xD7\f\xE\x2\x2\xD4\xD6\a\x63\x2\x2\xD5\xD4\x3\x2\x2\x2\xD6\xD9\x3\x2" + + "\x2\x2\xD7\xD5\x3\x2\x2\x2\xD7\xD8\x3\x2\x2\x2\xD8\xDA\x3\x2\x2\x2\xD9" + + "\xD7\x3\x2\x2\x2\xDA\xDE\t\x4\x2\x2\xDB\xDD\a\x63\x2\x2\xDC\xDB\x3\x2" + + "\x2\x2\xDD\xE0\x3\x2\x2\x2\xDE\xDC\x3\x2\x2\x2\xDE\xDF\x3\x2\x2\x2\xDF" + + "\xE1\x3\x2\x2\x2\xE0\xDE\x3\x2\x2\x2\xE1\x14C\x5\x10\t\xF\xE2\xE6\f\r" + + "\x2\x2\xE3\xE5\a\x63\x2\x2\xE4\xE3\x3\x2\x2\x2\xE5\xE8\x3\x2\x2\x2\xE6" + + "\xE4\x3\x2\x2\x2\xE6\xE7\x3\x2\x2\x2\xE7\xE9\x3\x2\x2\x2\xE8\xE6\x3\x2" + + "\x2\x2\xE9\xED\aI\x2\x2\xEA\xEC\a\x63\x2\x2\xEB\xEA\x3\x2\x2\x2\xEC\xEF" + + "\x3\x2\x2\x2\xED\xEB\x3\x2\x2\x2\xED\xEE\x3\x2\x2\x2\xEE\xF0\x3\x2\x2" + + "\x2\xEF\xED\x3\x2\x2\x2\xF0\x14C\x5\x10\t\xE\xF1\xF5\f\f\x2\x2\xF2\xF4" + + "\a\x63\x2\x2\xF3\xF2\x3\x2\x2\x2\xF4\xF7\x3\x2\x2\x2\xF5\xF3\x3\x2\x2" + + "\x2\xF5\xF6\x3\x2\x2\x2\xF6\xF8\x3\x2\x2\x2\xF7\xF5\x3\x2\x2\x2\xF8\xFC" + + "\t\x5\x2\x2\xF9\xFB\a\x63\x2\x2\xFA\xF9\x3\x2\x2\x2\xFB\xFE\x3\x2\x2\x2" + + "\xFC\xFA\x3\x2\x2\x2\xFC\xFD\x3\x2\x2\x2\xFD\xFF\x3\x2\x2\x2\xFE\xFC\x3" + + "\x2\x2\x2\xFF\x14C\x5\x10\t\r\x100\x104\f\n\x2\x2\x101\x103\a\x63\x2\x2" + + "\x102\x101\x3\x2\x2\x2\x103\x106\x3\x2\x2\x2\x104\x102\x3\x2\x2\x2\x104" + + "\x105\x3\x2\x2\x2\x105\x107\x3\x2\x2\x2\x106\x104\x3\x2\x2\x2\x107\x10B" + + "\a\x42\x2\x2\x108\x10A\a\x63\x2\x2\x109\x108\x3\x2\x2\x2\x10A\x10D\x3" + + "\x2\x2\x2\x10B\x109\x3\x2\x2\x2\x10B\x10C\x3\x2\x2\x2\x10C\x10E\x3\x2" + + "\x2\x2\x10D\x10B\x3\x2\x2\x2\x10E\x14C\x5\x10\t\v\x10F\x113\f\t\x2\x2" + + "\x110\x112\a\x63\x2\x2\x111\x110\x3\x2\x2\x2\x112\x115\x3\x2\x2\x2\x113" + + "\x111\x3\x2\x2\x2\x113\x114\x3\x2\x2\x2\x114\x116\x3\x2\x2\x2\x115\x113" + + "\x3\x2\x2\x2\x116\x11A\a\x43\x2\x2\x117\x119\a\x63\x2\x2\x118\x117\x3" + + "\x2\x2\x2\x119\x11C\x3\x2\x2\x2\x11A\x118\x3\x2\x2\x2\x11A\x11B\x3\x2" + + "\x2\x2\x11B\x11D\x3\x2\x2\x2\x11C\x11A\x3\x2\x2\x2\x11D\x14C\x5\x10\t" + + "\n\x11E\x122\f\b\x2\x2\x11F\x121\a\x63\x2\x2\x120\x11F\x3\x2\x2\x2\x121" + + "\x124\x3\x2\x2\x2\x122\x120\x3\x2\x2\x2\x122\x123\x3\x2\x2\x2\x123\x125" + + "\x3\x2\x2\x2\x124\x122\x3\x2\x2\x2\x125\x129\a\x44\x2\x2\x126\x128\a\x63" + + "\x2\x2\x127\x126\x3\x2\x2\x2\x128\x12B\x3\x2\x2\x2\x129\x127\x3\x2\x2" + + "\x2\x129\x12A\x3\x2\x2\x2\x12A\x12C\x3\x2\x2\x2\x12B\x129\x3\x2\x2\x2" + + "\x12C\x14C\x5\x10\t\t\x12D\x131\f\a\x2\x2\x12E\x130\a\x63\x2\x2\x12F\x12E" + + "\x3\x2\x2\x2\x130\x133\x3\x2\x2\x2\x131\x12F\x3\x2\x2\x2\x131\x132\x3" + + "\x2\x2\x2\x132\x134\x3\x2\x2\x2\x133\x131\x3\x2\x2\x2\x134\x138\a\x45" + + "\x2\x2\x135\x137\a\x63\x2\x2\x136\x135\x3\x2\x2\x2\x137\x13A\x3\x2\x2" + + "\x2\x138\x136\x3\x2\x2\x2\x138\x139\x3\x2\x2\x2\x139\x13B\x3\x2\x2\x2" + + "\x13A\x138\x3\x2\x2\x2\x13B\x14C\x5\x10\t\b\x13C\x140\f\x6\x2\x2\x13D" + + "\x13F\a\x63\x2\x2\x13E\x13D\x3\x2\x2\x2\x13F\x142\x3\x2\x2\x2\x140\x13E" + + "\x3\x2\x2\x2\x140\x141\x3\x2\x2\x2\x141\x143\x3\x2\x2\x2\x142\x140\x3" + + "\x2\x2\x2\x143\x147\a\x46\x2\x2\x144\x146\a\x63\x2\x2\x145\x144\x3\x2" + + "\x2\x2\x146\x149\x3\x2\x2\x2\x147\x145\x3\x2\x2\x2\x147\x148\x3\x2\x2" + + "\x2\x148\x14A\x3\x2\x2\x2\x149\x147\x3\x2\x2\x2\x14A\x14C\x5\x10\t\a\x14B" + + "\x97\x3\x2\x2\x2\x14B\xA6\x3\x2\x2\x2\x14B\xB5\x3\x2\x2\x2\x14B\xC4\x3" + + "\x2\x2\x2\x14B\xD3\x3\x2\x2\x2\x14B\xE2\x3\x2\x2\x2\x14B\xF1\x3\x2\x2" + + "\x2\x14B\x100\x3\x2\x2\x2\x14B\x10F\x3\x2\x2\x2\x14B\x11E\x3\x2\x2\x2" + + "\x14B\x12D\x3\x2\x2\x2\x14B\x13C\x3\x2\x2\x2\x14C\x14F\x3\x2\x2\x2\x14D" + + "\x14B\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E\x11\x3\x2\x2\x2\x14F\x14D" + + "\x3\x2\x2\x2\x150\x151\x5\x14\v\x2\x151\x155\x5\x4\x3\x2\x152\x154\x5" + + "\x16\f\x2\x153\x152\x3\x2\x2\x2\x154\x157\x3\x2\x2\x2\x155\x153\x3\x2" + + "\x2\x2\x155\x156\x3\x2\x2\x2\x156\x159\x3\x2\x2\x2\x157\x155\x3\x2\x2" + + "\x2\x158\x15A\x5\x1A\xE\x2\x159\x158\x3\x2\x2\x2\x159\x15A\x3\x2\x2\x2" + + "\x15A\x15B\x3\x2\x2\x2\x15B\x15C\x5\x1E\x10\x2\x15C\x13\x3\x2\x2\x2\x15D" + + "\x15F\a\x63\x2\x2\x15E\x15D\x3\x2\x2\x2\x15F\x162\x3\x2\x2\x2\x160\x15E" + + "\x3\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x163\x3\x2\x2\x2\x162\x160\x3" + + "\x2\x2\x2\x163\x165\a(\x2\x2\x164\x166\a\x63\x2\x2\x165\x164\x3\x2\x2" + + "\x2\x166\x167\x3\x2\x2\x2\x167\x165\x3\x2\x2\x2\x167\x168\x3\x2\x2\x2" + + "\x168\x169\x3\x2\x2\x2\x169\x16B\x5\x10\t\x2\x16A\x16C\a\x63\x2\x2\x16B" + + "\x16A\x3\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D\x16B\x3\x2\x2\x2\x16D\x16E" + + "\x3\x2\x2\x2\x16E\x16F\x3\x2\x2\x2\x16F\x170\a)\x2\x2\x170\x171\x5 \x11" + + "\x2\x171\x15\x3\x2\x2\x2\x172\x173\x5\x18\r\x2\x173\x174\x5\x4\x3\x2\x174" + + "\x17\x3\x2\x2\x2\x175\x177\a\x63\x2\x2\x176\x175\x3\x2\x2\x2\x177\x17A" + + "\x3\x2\x2\x2\x178\x176\x3\x2\x2\x2\x178\x179\x3\x2\x2\x2\x179\x17B\x3" + + "\x2\x2\x2\x17A\x178\x3\x2\x2\x2\x17B\x17D\a*\x2\x2\x17C\x17E\a\x63\x2" + + "\x2\x17D\x17C\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\x17D\x3\x2\x2\x2" + + "\x17F\x180\x3\x2\x2\x2\x180\x181\x3\x2\x2\x2\x181\x183\x5\x10\t\x2\x182" + + "\x184\a\x63\x2\x2\x183\x182\x3\x2\x2\x2\x184\x185\x3\x2\x2\x2\x185\x183" + + "\x3\x2\x2\x2\x185\x186\x3\x2\x2\x2\x186\x187\x3\x2\x2\x2\x187\x188\a)" + + "\x2\x2\x188\x189\x5 \x11\x2\x189\x19\x3\x2\x2\x2\x18A\x18B\x5\x1C\xF\x2" + + "\x18B\x18C\x5\x4\x3\x2\x18C\x1B\x3\x2\x2\x2\x18D\x18F\a\x63\x2\x2\x18E" + + "\x18D\x3\x2\x2\x2\x18F\x192\x3\x2\x2\x2\x190\x18E\x3\x2\x2\x2\x190\x191" + + "\x3\x2\x2\x2\x191\x193\x3\x2\x2\x2\x192\x190\x3\x2\x2\x2\x193\x194\a+" + + "\x2\x2\x194\x195\x5 \x11\x2\x195\x1D\x3\x2\x2\x2\x196\x198\a\x63\x2\x2" + + "\x197\x196\x3\x2\x2\x2\x198\x19B\x3\x2\x2\x2\x199\x197\x3\x2\x2\x2\x199" + + "\x19A\x3\x2\x2\x2\x19A\x19C\x3\x2\x2\x2\x19B\x199\x3\x2\x2\x2\x19C\x19D" + + "\a,\x2\x2\x19D\x19E\x5 \x11\x2\x19E\x1F\x3\x2\x2\x2\x19F\x1A3\a_\x2\x2" + + "\x1A0\x1A2\n\x6\x2\x2\x1A1\x1A0\x3\x2\x2\x2\x1A2\x1A5\x3\x2\x2\x2\x1A3" + + "\x1A1\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x1A7\x3\x2\x2\x2\x1A5\x1A3" + + "\x3\x2\x2\x2\x1A6\x19F\x3\x2\x2\x2\x1A6\x1A7\x3\x2\x2\x2\x1A7\x1A9\x3" + + "\x2\x2\x2\x1A8\x1AA\a\x62\x2\x2\x1A9\x1A8\x3\x2\x2\x2\x1A9\x1AA\x3\x2" + + "\x2\x2\x1AA!\x3\x2\x2\x2\x1AB\x1AC\x5$\x13\x2\x1AC\x1B0\aN\x2\x2\x1AD" + + "\x1AF\a\x63\x2\x2\x1AE\x1AD\x3\x2\x2\x2\x1AF\x1B2\x3\x2\x2\x2\x1B0\x1AE" + + "\x3\x2\x2\x2\x1B0\x1B1\x3\x2\x2\x2\x1B1\x1B3\x3\x2\x2\x2\x1B2\x1B0\x3" + + "\x2\x2\x2\x1B3\x1B7\x5\x10\t\x2\x1B4\x1B6\a\x63\x2\x2\x1B5\x1B4\x3\x2" + + "\x2\x2\x1B6\x1B9\x3\x2\x2\x2\x1B7\x1B5\x3\x2\x2\x2\x1B7\x1B8\x3\x2\x2" + + "\x2\x1B8\x1BA\x3\x2\x2\x2\x1B9\x1B7\x3\x2\x2\x2\x1BA\x1BB\aO\x2\x2\x1BB" + + "#\x3\x2\x2\x2\x1BC\x1BD\t\a\x2\x2\x1BD%\x3\x2\x2\x2\x1BE\x1C0\a\x64\x2" + + "\x2\x1BF\x1C1\x5(\x15\x2\x1C0\x1BF\x3\x2\x2\x2\x1C0\x1C1\x3\x2\x2\x2\x1C1" + + "\'\x3\x2\x2\x2\x1C2\x1C3\t\b\x2\x2\x1C3)\x3\x2\x2\x2\x1C4\x1C5\t\t\x2" + + "\x2\x1C5+\x3\x2\x2\x2=\x32\x34:\x41GMUY[^\x63jv~\x86\x8D\x95\x9B\xA2\xAA" + + "\xB1\xB9\xC0\xC8\xCF\xD7\xDE\xE6\xED\xF5\xFC\x104\x10B\x113\x11A\x122" + + "\x129\x131\x138\x140\x147\x14B\x14D\x155\x159\x160\x167\x16D\x178\x17F" + + "\x185\x190\x199\x1A3\x1A6\x1A9\x1B0\x1B7\x1C0"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); + } } // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs index c64da17619..4b4275f4cf 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs @@ -17,164 +17,166 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Preprocessing { -using Antlr4.Runtime.Misc; -using Antlr4.Runtime.Tree; -using IToken = Antlr4.Runtime.IToken; - -/// -/// This interface defines a complete generic visitor for a parse tree produced -/// by . -/// -/// The return type of the visit operation. -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public interface IVBAConditionalCompilationVisitor : IParseTreeVisitor { - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitName([NotNull] VBAConditionalCompilationParser.NameContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); -} +namespace Rubberduck.Parsing.Preprocessing +{ + using Antlr4.Runtime.Misc; + using Antlr4.Runtime.Tree; + using IToken = Antlr4.Runtime.IToken; + + /// + /// This interface defines a complete generic visitor for a parse tree produced + /// by . + /// + /// The return type of the visit operation. + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public interface IVBAConditionalCompilationVisitor : IParseTreeVisitor + { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcEndIf([NotNull] VBAConditionalCompilationParser.CcEndIfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcEol([NotNull] VBAConditionalCompilationParser.CcEolContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIntrinsicFunction([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcExpression([NotNull] VBAConditionalCompilationParser.CcExpressionContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElseIfBlock([NotNull] VBAConditionalCompilationParser.CcElseIfBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLiteral([NotNull] VBAConditionalCompilationParser.LiteralContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTypeSuffix([NotNull] VBAConditionalCompilationParser.TypeSuffixContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcIf([NotNull] VBAConditionalCompilationParser.CcIfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElseIf([NotNull] VBAConditionalCompilationParser.CcElseIfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLineContinuation([NotNull] VBAConditionalCompilationParser.LineContinuationContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElseBlock([NotNull] VBAConditionalCompilationParser.CcElseBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitName([NotNull] VBAConditionalCompilationParser.NameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcVarLhs([NotNull] VBAConditionalCompilationParser.CcVarLhsContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIntrinsicFunctionName([NotNull] VBAConditionalCompilationParser.IntrinsicFunctionNameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context); + } } // namespace Rubberduck.Parsing.Preprocessing diff --git a/Rubberduck.Parsing/Preprocessing/VBADate.g4 b/Rubberduck.Parsing/Preprocessing/VBADate.g4 index bcef7b561a..a721a24423 100644 --- a/Rubberduck.Parsing/Preprocessing/VBADate.g4 +++ b/Rubberduck.Parsing/Preprocessing/VBADate.g4 @@ -8,16 +8,41 @@ dateOrTime : | timeValue | dateValue WS+ timeValue; dateValue : dateValuePart dateSeparator dateValuePart (dateSeparator dateValuePart)?; -dateValuePart : DIGIT+ | monthName; +dateValuePart : dateValueNumber | monthName; +dateValueNumber : DIGIT+; dateSeparator : WS+ | (WS* (SLASH | COMMA | DASH) WS*); monthName : englishMonthName | englishMonthAbbreviation; -englishMonthName : J A N U A R Y | F E B R U A R Y | M A R C H | A P R I L | M A Y | J U N E | A U G U S T | S E P T E M B E R | O C T O B E R | N O V E M B E R | D E C E M B E R; -englishMonthAbbreviation : J A N | F E B | M A R | A P R | J U N | J U L | A U G | S E P | O C T | N O V | D E C; +englishMonthName : JANUARY | FEBRUARY | MARCH | APRIL | MAY | JUNE | JULY | AUGUST | SEPTEMBER | OCTOBER | NOVEMBER | DECEMBER; +// MAY is missing because abbreviation = full name and it doesn't matter which one gets matched. +englishMonthAbbreviation : JAN | FEB | MAR | APR | JUN | JUL | AUG | SEP | OCT | NOV | DEC; timeValue : (timeValuePart WS* AMPM) | (timeValuePart timeSeparator timeValuePart (timeSeparator timeValuePart)? (WS* AMPM)?); timeValuePart : DIGIT+; timeSeparator : WS* (COLON | DOT) WS*; AMPM : AM | PM | A | P; +JANUARY : J A N U A R Y; +FEBRUARY : F E B R U A R Y; +MARCH : M A R C H; +APRIL : A P R I L; +MAY : M A Y; +JUNE : J U N E; +JULY : J U L Y; +AUGUST : A U G U S T; +SEPTEMBER : S E P T E M B E R; +OCTOBER : O C T O B E R; +NOVEMBER : N O V E M B E R; +DECEMBER : D E C E M B E R; +JAN : J A N; +FEB : F E B; +MAR: M A R; +APR : A P R; +JUN : J U N; +JUL: J U L; +AUG : A U G; +SEP : S E P; +OCT : O C T; +NOV : N O V; +DEC : D E C; AM : A M; PM : P M; HASH : '#'; diff --git a/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs b/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs index 619bd0a81a..d8ee018fe9 100644 --- a/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs @@ -17,189 +17,204 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Date { - -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.3")] -[System.CLSCompliant(false)] -public partial class VBADateBaseListener : IVBADateListener { - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDateValue([NotNull] VBADateParser.DateValueContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDateValue([NotNull] VBADateParser.DateValueContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMonthName([NotNull] VBADateParser.MonthNameContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMonthName([NotNull] VBADateParser.MonthNameContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTimeValue([NotNull] VBADateParser.TimeValueContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTimeValue([NotNull] VBADateParser.TimeValueContext 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) { } -} +namespace Rubberduck.Parsing.Date +{ + + 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.3")] + [System.CLSCompliant(false)] + public partial class VBADateBaseListener : IVBADateListener + { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateValue([NotNull] VBADateParser.DateValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateValue([NotNull] VBADateParser.DateValueContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMonthName([NotNull] VBADateParser.MonthNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMonthName([NotNull] VBADateParser.MonthNameContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeValue([NotNull] VBADateParser.TimeValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeValue([NotNull] VBADateParser.TimeValueContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateValueNumber([NotNull] VBADateParser.DateValueNumberContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateValueNumber([NotNull] VBADateParser.DateValueNumberContext 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) { } + } } // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs index b2e2e2b672..bd8dd8e385 100644 --- a/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.cs @@ -17,151 +17,164 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Date { -using Antlr4.Runtime.Misc; -using Antlr4.Runtime.Tree; -using IToken = Antlr4.Runtime.IToken; -using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; - -/// -/// This class provides an empty implementation of , -/// which can be extended to create a visitor which only needs to handle a subset -/// of the available methods. -/// -/// The return type of the visit operation. -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public partial class VBADateBaseVisitor : AbstractParseTreeVisitor, IVBADateVisitor { - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDateValue([NotNull] VBADateParser.DateValueContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMonthName([NotNull] VBADateParser.MonthNameContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTimeValue([NotNull] VBADateParser.TimeValueContext context) { return VisitChildren(context); } -} +namespace Rubberduck.Parsing.Date +{ + using Antlr4.Runtime.Misc; + using Antlr4.Runtime.Tree; + using IToken = Antlr4.Runtime.IToken; + using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + + /// + /// This class provides an empty implementation of , + /// which can be extended to create a visitor which only needs to handle a subset + /// of the available methods. + /// + /// The return type of the visit operation. + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public partial class VBADateBaseVisitor : AbstractParseTreeVisitor, IVBADateVisitor + { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateValue([NotNull] VBADateParser.DateValueContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMonthName([NotNull] VBADateParser.MonthNameContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTimeValue([NotNull] VBADateParser.TimeValueContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateValuePart([NotNull] VBADateParser.DateValuePartContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateLiteral([NotNull] VBADateParser.DateLiteralContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateValueNumber([NotNull] VBADateParser.DateValueNumberContext context) { return VisitChildren(context); } + } } // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs b/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs index 5a83eea1db..e61fd222dd 100644 --- a/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs +++ b/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs @@ -17,107 +17,184 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Date { -using Antlr4.Runtime; -using Antlr4.Runtime.Atn; -using Antlr4.Runtime.Misc; -using DFA = Antlr4.Runtime.Dfa.DFA; +namespace Rubberduck.Parsing.Date +{ + using Antlr4.Runtime; + using Antlr4.Runtime.Atn; + using Antlr4.Runtime.Misc; + using DFA = Antlr4.Runtime.Dfa.DFA; -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public partial class VBADateLexer : Lexer { - public const int - AMPM=1, AM=2, PM=3, HASH=4, COMMA=5, DASH=6, SLASH=7, COLON=8, DOT=9, - WS=10, DIGIT=11; - public static string[] modeNames = { - "DEFAULT_MODE" - }; + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public partial class VBADateLexer : Lexer + { + public const int + AMPM = 1, JANUARY = 2, FEBRUARY = 3, MARCH = 4, APRIL = 5, MAY = 6, JUNE = 7, JULY = 8, + AUGUST = 9, SEPTEMBER = 10, OCTOBER = 11, NOVEMBER = 12, DECEMBER = 13, JAN = 14, + FEB = 15, MAR = 16, APR = 17, JUN = 18, JUL = 19, AUG = 20, SEP = 21, OCT = 22, NOV = 23, + DEC = 24, AM = 25, PM = 26, HASH = 27, COMMA = 28, DASH = 29, SLASH = 30, COLON = 31, + DOT = 32, WS = 33, DIGIT = 34; + public static string[] modeNames = { + "DEFAULT_MODE" + }; - public static readonly string[] tokenNames = { - "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", - "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'" - }; - public static readonly string[] ruleNames = { - "AMPM", "AM", "PM", "HASH", "COMMA", "DASH", "SLASH", "COLON", "DOT", - "WS", "DIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", - "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", - "Z" - }; + public static readonly string[] tokenNames = { + "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", + "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'", + "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'", + "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'", + "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'", + "'\\u001F'", "' '", "'!'", "'\"'" + }; + public static readonly string[] ruleNames = { + "AMPM", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", + "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", + "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "AM", "PM", + "HASH", "COMMA", "DASH", "SLASH", "COLON", "DOT", "WS", "DIGIT", "A", + "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", + "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" + }; - public VBADateLexer(ICharStream input) - : base(input) - { - _interp = new LexerATNSimulator(this,_ATN); - } + public VBADateLexer(ICharStream input) + : base(input) + { + _interp = new LexerATNSimulator(this, _ATN); + } - public override string GrammarFileName { get { return "VBADate.g4"; } } + public override string GrammarFileName { get { return "VBADate.g4"; } } - public override string[] TokenNames { get { return tokenNames; } } + public override string[] TokenNames { get { return tokenNames; } } - public override string[] RuleNames { get { return ruleNames; } } + public override string[] RuleNames { get { return ruleNames; } } - public override string[] ModeNames { get { return modeNames; } } + public override string[] ModeNames { get { return modeNames; } } - public override string SerializedAtn { get { return _serializedATN; } } + public override string SerializedAtn { get { return _serializedATN; } } - public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\r\x9D\b\x1\x4\x2"+ - "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ - "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ - "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ - "\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A\x4\x1B"+ - "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!"+ - "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x3\x2\x3\x2\x3\x2\x3\x2\x5\x2"+ - "R\n\x2\x3\x3\x3\x3\x3\x3\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3"+ - "\a\x3\a\x3\b\x3\b\x3\t\x3\t\x3\n\x3\n\x3\v\x3\v\x3\f\x3\f\x3\r\x3\r\x3"+ - "\xE\x3\xE\x3\xF\x3\xF\x3\x10\x3\x10\x3\x11\x3\x11\x3\x12\x3\x12\x3\x13"+ - "\x3\x13\x3\x14\x3\x14\x3\x15\x3\x15\x3\x16\x3\x16\x3\x17\x3\x17\x3\x18"+ - "\x3\x18\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1D"+ - "\x3\x1D\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3 \x3 \x3!\x3!\x3\"\x3\"\x3#\x3#"+ - "\x3$\x3$\x3%\x3%\x3&\x3&\x2\x2\x2\'\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6"+ - "\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\x2\x1B"+ - "\x2\x2\x1D\x2\x2\x1F\x2\x2!\x2\x2#\x2\x2%\x2\x2\'\x2\x2)\x2\x2+\x2\x2"+ - "-\x2\x2/\x2\x2\x31\x2\x2\x33\x2\x2\x35\x2\x2\x37\x2\x2\x39\x2\x2;\x2\x2"+ - "=\x2\x2?\x2\x2\x41\x2\x2\x43\x2\x2\x45\x2\x2G\x2\x2I\x2\x2K\x2\x2\x3\x2"+ - "\x1E\x4\x2\v\v\"\"\x3\x2\x32;\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64"+ - "\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4"+ - "\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4"+ - "\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4"+ - "\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x85\x2\x3"+ - "\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v"+ - "\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2"+ - "\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x3Q\x3\x2\x2\x2"+ - "\x5S\x3\x2\x2\x2\aV\x3\x2\x2\x2\tY\x3\x2\x2\x2\v[\x3\x2\x2\x2\r]\x3\x2"+ - "\x2\x2\xF_\x3\x2\x2\x2\x11\x61\x3\x2\x2\x2\x13\x63\x3\x2\x2\x2\x15\x65"+ - "\x3\x2\x2\x2\x17g\x3\x2\x2\x2\x19i\x3\x2\x2\x2\x1Bk\x3\x2\x2\x2\x1Dm\x3"+ - "\x2\x2\x2\x1Fo\x3\x2\x2\x2!q\x3\x2\x2\x2#s\x3\x2\x2\x2%u\x3\x2\x2\x2\'"+ - "w\x3\x2\x2\x2)y\x3\x2\x2\x2+{\x3\x2\x2\x2-}\x3\x2\x2\x2/\x7F\x3\x2\x2"+ - "\x2\x31\x81\x3\x2\x2\x2\x33\x83\x3\x2\x2\x2\x35\x85\x3\x2\x2\x2\x37\x87"+ - "\x3\x2\x2\x2\x39\x89\x3\x2\x2\x2;\x8B\x3\x2\x2\x2=\x8D\x3\x2\x2\x2?\x8F"+ - "\x3\x2\x2\x2\x41\x91\x3\x2\x2\x2\x43\x93\x3\x2\x2\x2\x45\x95\x3\x2\x2"+ - "\x2G\x97\x3\x2\x2\x2I\x99\x3\x2\x2\x2K\x9B\x3\x2\x2\x2MR\x5\x5\x3\x2N"+ - "R\x5\a\x4\x2OR\x5\x19\r\x2PR\x5\x37\x1C\x2QM\x3\x2\x2\x2QN\x3\x2\x2\x2"+ - "QO\x3\x2\x2\x2QP\x3\x2\x2\x2R\x4\x3\x2\x2\x2ST\x5\x19\r\x2TU\x5\x31\x19"+ - "\x2U\x6\x3\x2\x2\x2VW\x5\x37\x1C\x2WX\x5\x31\x19\x2X\b\x3\x2\x2\x2YZ\a"+ - "%\x2\x2Z\n\x3\x2\x2\x2[\\\a.\x2\x2\\\f\x3\x2\x2\x2]^\a/\x2\x2^\xE\x3\x2"+ - "\x2\x2_`\a\x31\x2\x2`\x10\x3\x2\x2\x2\x61\x62\a<\x2\x2\x62\x12\x3\x2\x2"+ - "\x2\x63\x64\a\x30\x2\x2\x64\x14\x3\x2\x2\x2\x65\x66\t\x2\x2\x2\x66\x16"+ - "\x3\x2\x2\x2gh\t\x3\x2\x2h\x18\x3\x2\x2\x2ij\t\x4\x2\x2j\x1A\x3\x2\x2"+ - "\x2kl\t\x5\x2\x2l\x1C\x3\x2\x2\x2mn\t\x6\x2\x2n\x1E\x3\x2\x2\x2op\t\a"+ - "\x2\x2p \x3\x2\x2\x2qr\t\b\x2\x2r\"\x3\x2\x2\x2st\t\t\x2\x2t$\x3\x2\x2"+ - "\x2uv\t\n\x2\x2v&\x3\x2\x2\x2wx\t\v\x2\x2x(\x3\x2\x2\x2yz\t\f\x2\x2z*"+ - "\x3\x2\x2\x2{|\t\r\x2\x2|,\x3\x2\x2\x2}~\t\xE\x2\x2~.\x3\x2\x2\x2\x7F"+ - "\x80\t\xF\x2\x2\x80\x30\x3\x2\x2\x2\x81\x82\t\x10\x2\x2\x82\x32\x3\x2"+ - "\x2\x2\x83\x84\t\x11\x2\x2\x84\x34\x3\x2\x2\x2\x85\x86\t\x12\x2\x2\x86"+ - "\x36\x3\x2\x2\x2\x87\x88\t\x13\x2\x2\x88\x38\x3\x2\x2\x2\x89\x8A\t\x14"+ - "\x2\x2\x8A:\x3\x2\x2\x2\x8B\x8C\t\x15\x2\x2\x8C<\x3\x2\x2\x2\x8D\x8E\t"+ - "\x16\x2\x2\x8E>\x3\x2\x2\x2\x8F\x90\t\x17\x2\x2\x90@\x3\x2\x2\x2\x91\x92"+ - "\t\x18\x2\x2\x92\x42\x3\x2\x2\x2\x93\x94\t\x19\x2\x2\x94\x44\x3\x2\x2"+ - "\x2\x95\x96\t\x1A\x2\x2\x96\x46\x3\x2\x2\x2\x97\x98\t\x1B\x2\x2\x98H\x3"+ - "\x2\x2\x2\x99\x9A\t\x1C\x2\x2\x9AJ\x3\x2\x2\x2\x9B\x9C\t\x1D\x2\x2\x9C"+ - "L\x3\x2\x2\x2\x4\x2Q\x2"; - public static readonly ATN _ATN = - new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); -} + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2$\x14D\b\x1\x4\x2" + + "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4" + + "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10" + + "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15" + + "\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A\x4\x1B" + + "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!" + + "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t)\x4*\t" + + "*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31\x4\x32" + + "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37\t\x37" + + "\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x3\x2\x3\x2\x3" + + "\x2\x3\x2\x5\x2\x80\n\x2\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3" + + "\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5" + + "\x3\x5\x3\x5\x3\x5\x3\x5\x3\x6\x3\x6\x3\x6\x3\x6\x3\x6\x3\x6\x3\a\x3\a" + + "\x3\a\x3\a\x3\b\x3\b\x3\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\n\x3\n" + + "\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v" + + "\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\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\xE\x3\xE\x3\xE\x3" + + "\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11" + + "\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13" + + "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16" + + "\x3\x16\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3\x18" + + "\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B" + + "\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3 \x3 \x3!\x3" + + "!\x3\"\x3\"\x3#\x3#\x3$\x3$\x3%\x3%\x3&\x3&\x3\'\x3\'\x3(\x3(\x3)\x3)" + + "\x3*\x3*\x3+\x3+\x3,\x3,\x3-\x3-\x3.\x3.\x3/\x3/\x3\x30\x3\x30\x3\x31" + + "\x3\x31\x3\x32\x3\x32\x3\x33\x3\x33\x3\x34\x3\x34\x3\x35\x3\x35\x3\x36" + + "\x3\x36\x3\x37\x3\x37\x3\x38\x3\x38\x3\x39\x3\x39\x3:\x3:\x3;\x3;\x3<" + + "\x3<\x3=\x3=\x2\x2\x2>\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b" + + "\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2" + + "\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2\x16+\x2\x17-\x2\x18" + + "/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F" + + "=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2\x2I\x2\x2K\x2\x2M\x2\x2O\x2\x2" + + "Q\x2\x2S\x2\x2U\x2\x2W\x2\x2Y\x2\x2[\x2\x2]\x2\x2_\x2\x2\x61\x2\x2\x63" + + "\x2\x2\x65\x2\x2g\x2\x2i\x2\x2k\x2\x2m\x2\x2o\x2\x2q\x2\x2s\x2\x2u\x2" + + "\x2w\x2\x2y\x2\x2\x3\x2\x1E\x4\x2\v\v\"\"\x3\x2\x32;\x4\x2\x43\x43\x63" + + "\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66" + + "\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMm" + + "m\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TT" + + "tt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[" + + "[{{\x4\x2\\\\||\x135\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2" + + "\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2" + + "\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3" + + "\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2" + + "\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'" + + "\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2" + + "\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37" + + "\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3" + + "\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x3" + + "\x7F\x3\x2\x2\x2\x5\x81\x3\x2\x2\x2\a\x89\x3\x2\x2\x2\t\x92\x3\x2\x2\x2" + + "\v\x98\x3\x2\x2\x2\r\x9E\x3\x2\x2\x2\xF\xA2\x3\x2\x2\x2\x11\xA7\x3\x2" + + "\x2\x2\x13\xAC\x3\x2\x2\x2\x15\xB3\x3\x2\x2\x2\x17\xBD\x3\x2\x2\x2\x19" + + "\xC5\x3\x2\x2\x2\x1B\xCE\x3\x2\x2\x2\x1D\xD7\x3\x2\x2\x2\x1F\xDB\x3\x2" + + "\x2\x2!\xDF\x3\x2\x2\x2#\xE3\x3\x2\x2\x2%\xE7\x3\x2\x2\x2\'\xEB\x3\x2" + + "\x2\x2)\xEF\x3\x2\x2\x2+\xF3\x3\x2\x2\x2-\xF7\x3\x2\x2\x2/\xFB\x3\x2\x2" + + "\x2\x31\xFF\x3\x2\x2\x2\x33\x103\x3\x2\x2\x2\x35\x106\x3\x2\x2\x2\x37" + + "\x109\x3\x2\x2\x2\x39\x10B\x3\x2\x2\x2;\x10D\x3\x2\x2\x2=\x10F\x3\x2\x2" + + "\x2?\x111\x3\x2\x2\x2\x41\x113\x3\x2\x2\x2\x43\x115\x3\x2\x2\x2\x45\x117" + + "\x3\x2\x2\x2G\x119\x3\x2\x2\x2I\x11B\x3\x2\x2\x2K\x11D\x3\x2\x2\x2M\x11F" + + "\x3\x2\x2\x2O\x121\x3\x2\x2\x2Q\x123\x3\x2\x2\x2S\x125\x3\x2\x2\x2U\x127" + + "\x3\x2\x2\x2W\x129\x3\x2\x2\x2Y\x12B\x3\x2\x2\x2[\x12D\x3\x2\x2\x2]\x12F" + + "\x3\x2\x2\x2_\x131\x3\x2\x2\x2\x61\x133\x3\x2\x2\x2\x63\x135\x3\x2\x2" + + "\x2\x65\x137\x3\x2\x2\x2g\x139\x3\x2\x2\x2i\x13B\x3\x2\x2\x2k\x13D\x3" + + "\x2\x2\x2m\x13F\x3\x2\x2\x2o\x141\x3\x2\x2\x2q\x143\x3\x2\x2\x2s\x145" + + "\x3\x2\x2\x2u\x147\x3\x2\x2\x2w\x149\x3\x2\x2\x2y\x14B\x3\x2\x2\x2{\x80" + + "\x5\x33\x1A\x2|\x80\x5\x35\x1B\x2}\x80\x5G$\x2~\x80\x5\x65\x33\x2\x7F" + + "{\x3\x2\x2\x2\x7F|\x3\x2\x2\x2\x7F}\x3\x2\x2\x2\x7F~\x3\x2\x2\x2\x80\x4" + + "\x3\x2\x2\x2\x81\x82\x5Y-\x2\x82\x83\x5G$\x2\x83\x84\x5\x61\x31\x2\x84" + + "\x85\x5o\x38\x2\x85\x86\x5G$\x2\x86\x87\x5i\x35\x2\x87\x88\x5w<\x2\x88" + + "\x6\x3\x2\x2\x2\x89\x8A\x5Q)\x2\x8A\x8B\x5O(\x2\x8B\x8C\x5I%\x2\x8C\x8D" + + "\x5i\x35\x2\x8D\x8E\x5o\x38\x2\x8E\x8F\x5G$\x2\x8F\x90\x5i\x35\x2\x90" + + "\x91\x5w<\x2\x91\b\x3\x2\x2\x2\x92\x93\x5_\x30\x2\x93\x94\x5G$\x2\x94" + + "\x95\x5i\x35\x2\x95\x96\x5K&\x2\x96\x97\x5U+\x2\x97\n\x3\x2\x2\x2\x98" + + "\x99\x5G$\x2\x99\x9A\x5\x65\x33\x2\x9A\x9B\x5i\x35\x2\x9B\x9C\x5W,\x2" + + "\x9C\x9D\x5]/\x2\x9D\f\x3\x2\x2\x2\x9E\x9F\x5_\x30\x2\x9F\xA0\x5G$\x2" + + "\xA0\xA1\x5w<\x2\xA1\xE\x3\x2\x2\x2\xA2\xA3\x5Y-\x2\xA3\xA4\x5o\x38\x2" + + "\xA4\xA5\x5\x61\x31\x2\xA5\xA6\x5O(\x2\xA6\x10\x3\x2\x2\x2\xA7\xA8\x5" + + "Y-\x2\xA8\xA9\x5o\x38\x2\xA9\xAA\x5]/\x2\xAA\xAB\x5w<\x2\xAB\x12\x3\x2" + + "\x2\x2\xAC\xAD\x5G$\x2\xAD\xAE\x5o\x38\x2\xAE\xAF\x5S*\x2\xAF\xB0\x5o" + + "\x38\x2\xB0\xB1\x5k\x36\x2\xB1\xB2\x5m\x37\x2\xB2\x14\x3\x2\x2\x2\xB3" + + "\xB4\x5k\x36\x2\xB4\xB5\x5O(\x2\xB5\xB6\x5\x65\x33\x2\xB6\xB7\x5m\x37" + + "\x2\xB7\xB8\x5O(\x2\xB8\xB9\x5_\x30\x2\xB9\xBA\x5I%\x2\xBA\xBB\x5O(\x2" + + "\xBB\xBC\x5i\x35\x2\xBC\x16\x3\x2\x2\x2\xBD\xBE\x5\x63\x32\x2\xBE\xBF" + + "\x5K&\x2\xBF\xC0\x5m\x37\x2\xC0\xC1\x5\x63\x32\x2\xC1\xC2\x5I%\x2\xC2" + + "\xC3\x5O(\x2\xC3\xC4\x5i\x35\x2\xC4\x18\x3\x2\x2\x2\xC5\xC6\x5\x61\x31" + + "\x2\xC6\xC7\x5\x63\x32\x2\xC7\xC8\x5q\x39\x2\xC8\xC9\x5O(\x2\xC9\xCA\x5" + + "_\x30\x2\xCA\xCB\x5I%\x2\xCB\xCC\x5O(\x2\xCC\xCD\x5i\x35\x2\xCD\x1A\x3" + + "\x2\x2\x2\xCE\xCF\x5M\'\x2\xCF\xD0\x5O(\x2\xD0\xD1\x5K&\x2\xD1\xD2\x5" + + "O(\x2\xD2\xD3\x5_\x30\x2\xD3\xD4\x5I%\x2\xD4\xD5\x5O(\x2\xD5\xD6\x5i\x35" + + "\x2\xD6\x1C\x3\x2\x2\x2\xD7\xD8\x5Y-\x2\xD8\xD9\x5G$\x2\xD9\xDA\x5\x61" + + "\x31\x2\xDA\x1E\x3\x2\x2\x2\xDB\xDC\x5Q)\x2\xDC\xDD\x5O(\x2\xDD\xDE\x5" + + "I%\x2\xDE \x3\x2\x2\x2\xDF\xE0\x5_\x30\x2\xE0\xE1\x5G$\x2\xE1\xE2\x5i" + + "\x35\x2\xE2\"\x3\x2\x2\x2\xE3\xE4\x5G$\x2\xE4\xE5\x5\x65\x33\x2\xE5\xE6" + + "\x5i\x35\x2\xE6$\x3\x2\x2\x2\xE7\xE8\x5Y-\x2\xE8\xE9\x5o\x38\x2\xE9\xEA" + + "\x5\x61\x31\x2\xEA&\x3\x2\x2\x2\xEB\xEC\x5Y-\x2\xEC\xED\x5o\x38\x2\xED" + + "\xEE\x5]/\x2\xEE(\x3\x2\x2\x2\xEF\xF0\x5G$\x2\xF0\xF1\x5o\x38\x2\xF1\xF2" + + "\x5S*\x2\xF2*\x3\x2\x2\x2\xF3\xF4\x5k\x36\x2\xF4\xF5\x5O(\x2\xF5\xF6\x5" + + "\x65\x33\x2\xF6,\x3\x2\x2\x2\xF7\xF8\x5\x63\x32\x2\xF8\xF9\x5K&\x2\xF9" + + "\xFA\x5m\x37\x2\xFA.\x3\x2\x2\x2\xFB\xFC\x5\x61\x31\x2\xFC\xFD\x5\x63" + + "\x32\x2\xFD\xFE\x5q\x39\x2\xFE\x30\x3\x2\x2\x2\xFF\x100\x5M\'\x2\x100" + + "\x101\x5O(\x2\x101\x102\x5K&\x2\x102\x32\x3\x2\x2\x2\x103\x104\x5G$\x2" + + "\x104\x105\x5_\x30\x2\x105\x34\x3\x2\x2\x2\x106\x107\x5\x65\x33\x2\x107" + + "\x108\x5_\x30\x2\x108\x36\x3\x2\x2\x2\x109\x10A\a%\x2\x2\x10A\x38\x3\x2" + + "\x2\x2\x10B\x10C\a.\x2\x2\x10C:\x3\x2\x2\x2\x10D\x10E\a/\x2\x2\x10E<\x3" + + "\x2\x2\x2\x10F\x110\a\x31\x2\x2\x110>\x3\x2\x2\x2\x111\x112\a<\x2\x2\x112" + + "@\x3\x2\x2\x2\x113\x114\a\x30\x2\x2\x114\x42\x3\x2\x2\x2\x115\x116\t\x2" + + "\x2\x2\x116\x44\x3\x2\x2\x2\x117\x118\t\x3\x2\x2\x118\x46\x3\x2\x2\x2" + + "\x119\x11A\t\x4\x2\x2\x11AH\x3\x2\x2\x2\x11B\x11C\t\x5\x2\x2\x11CJ\x3" + + "\x2\x2\x2\x11D\x11E\t\x6\x2\x2\x11EL\x3\x2\x2\x2\x11F\x120\t\a\x2\x2\x120" + + "N\x3\x2\x2\x2\x121\x122\t\b\x2\x2\x122P\x3\x2\x2\x2\x123\x124\t\t\x2\x2" + + "\x124R\x3\x2\x2\x2\x125\x126\t\n\x2\x2\x126T\x3\x2\x2\x2\x127\x128\t\v" + + "\x2\x2\x128V\x3\x2\x2\x2\x129\x12A\t\f\x2\x2\x12AX\x3\x2\x2\x2\x12B\x12C" + + "\t\r\x2\x2\x12CZ\x3\x2\x2\x2\x12D\x12E\t\xE\x2\x2\x12E\\\x3\x2\x2\x2\x12F" + + "\x130\t\xF\x2\x2\x130^\x3\x2\x2\x2\x131\x132\t\x10\x2\x2\x132`\x3\x2\x2" + + "\x2\x133\x134\t\x11\x2\x2\x134\x62\x3\x2\x2\x2\x135\x136\t\x12\x2\x2\x136" + + "\x64\x3\x2\x2\x2\x137\x138\t\x13\x2\x2\x138\x66\x3\x2\x2\x2\x139\x13A" + + "\t\x14\x2\x2\x13Ah\x3\x2\x2\x2\x13B\x13C\t\x15\x2\x2\x13Cj\x3\x2\x2\x2" + + "\x13D\x13E\t\x16\x2\x2\x13El\x3\x2\x2\x2\x13F\x140\t\x17\x2\x2\x140n\x3" + + "\x2\x2\x2\x141\x142\t\x18\x2\x2\x142p\x3\x2\x2\x2\x143\x144\t\x19\x2\x2" + + "\x144r\x3\x2\x2\x2\x145\x146\t\x1A\x2\x2\x146t\x3\x2\x2\x2\x147\x148\t" + + "\x1B\x2\x2\x148v\x3\x2\x2\x2\x149\x14A\t\x1C\x2\x2\x14Ax\x3\x2\x2\x2\x14B" + + "\x14C\t\x1D\x2\x2\x14Cz\x3\x2\x2\x2\x4\x2\x7F\x2"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); + } } // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateListener.cs b/Rubberduck.Parsing/Preprocessing/VBADateListener.cs index 7b67dea826..30a875d549 100644 --- a/Rubberduck.Parsing/Preprocessing/VBADateListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBADateListener.cs @@ -17,148 +17,161 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Date { -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.3")] -[System.CLSCompliant(false)] -public interface IVBADateListener : IParseTreeListener { - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDateValue([NotNull] VBADateParser.DateValueContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDateValue([NotNull] VBADateParser.DateValueContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDateValuePart([NotNull] VBADateParser.DateValuePartContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDateValuePart([NotNull] VBADateParser.DateValuePartContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMonthName([NotNull] VBADateParser.MonthNameContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMonthName([NotNull] VBADateParser.MonthNameContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDateLiteral([NotNull] VBADateParser.DateLiteralContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDateLiteral([NotNull] VBADateParser.DateLiteralContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTimeValue([NotNull] VBADateParser.TimeValueContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTimeValue([NotNull] VBADateParser.TimeValueContext context); -} +namespace Rubberduck.Parsing.Date +{ + 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.3")] + [System.CLSCompliant(false)] + public interface IVBADateListener : IParseTreeListener + { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateValue([NotNull] VBADateParser.DateValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateValue([NotNull] VBADateParser.DateValueContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMonthName([NotNull] VBADateParser.MonthNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMonthName([NotNull] VBADateParser.MonthNameContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeValue([NotNull] VBADateParser.TimeValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeValue([NotNull] VBADateParser.TimeValueContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateValuePart([NotNull] VBADateParser.DateValuePartContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateValuePart([NotNull] VBADateParser.DateValuePartContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateLiteral([NotNull] VBADateParser.DateLiteralContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateLiteral([NotNull] VBADateParser.DateLiteralContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateValueNumber([NotNull] VBADateParser.DateValueNumberContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateValueNumber([NotNull] VBADateParser.DateValueNumberContext context); + } } // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateParser.cs b/Rubberduck.Parsing/Preprocessing/VBADateParser.cs index bece4ca695..4b401f6c1e 100644 --- a/Rubberduck.Parsing/Preprocessing/VBADateParser.cs +++ b/Rubberduck.Parsing/Preprocessing/VBADateParser.cs @@ -17,1269 +17,1213 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Date { -using Antlr4.Runtime; -using Antlr4.Runtime.Atn; -using Antlr4.Runtime.Misc; -using Antlr4.Runtime.Tree; -using System.Collections.Generic; -using DFA = Antlr4.Runtime.Dfa.DFA; +namespace Rubberduck.Parsing.Date +{ + using Antlr4.Runtime; + using Antlr4.Runtime.Atn; + using Antlr4.Runtime.Misc; + using Antlr4.Runtime.Tree; + using System.Collections.Generic; + using DFA = Antlr4.Runtime.Dfa.DFA; -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public partial class VBADateParser : Parser { - public const int - AMPM=1, AM=2, PM=3, HASH=4, COMMA=5, DASH=6, SLASH=7, COLON=8, DOT=9, - WS=10, DIGIT=11, J=12, A=13, N=14, U=15, R=16, Y=17, F=18, E=19, B=20, - M=21, C=22, H=23, P=24, I=25, L=26, G=27, S=28, T=29, O=30, V=31, D=32; - public static readonly string[] tokenNames = { - "", "AMPM", "AM", "PM", "'#'", "','", "'-'", "'/'", "':'", "'.'", - "WS", "DIGIT", "J", "A", "N", "U", "R", "Y", "F", "E", "B", "M", "C", - "H", "P", "I", "L", "G", "S", "T", "O", "V", "D" - }; - public const int - RULE_compilationUnit = 0, RULE_dateLiteral = 1, RULE_dateOrTime = 2, RULE_dateValue = 3, - RULE_dateValuePart = 4, RULE_dateSeparator = 5, RULE_monthName = 6, RULE_englishMonthName = 7, - RULE_englishMonthAbbreviation = 8, RULE_timeValue = 9, RULE_timeValuePart = 10, - RULE_timeSeparator = 11; - public static readonly string[] ruleNames = { - "compilationUnit", "dateLiteral", "dateOrTime", "dateValue", "dateValuePart", - "dateSeparator", "monthName", "englishMonthName", "englishMonthAbbreviation", - "timeValue", "timeValuePart", "timeSeparator" - }; + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public partial class VBADateParser : Parser + { + public const int + AMPM = 1, JANUARY = 2, FEBRUARY = 3, MARCH = 4, APRIL = 5, MAY = 6, JUNE = 7, JULY = 8, + AUGUST = 9, SEPTEMBER = 10, OCTOBER = 11, NOVEMBER = 12, DECEMBER = 13, JAN = 14, + FEB = 15, MAR = 16, APR = 17, JUN = 18, JUL = 19, AUG = 20, SEP = 21, OCT = 22, NOV = 23, + DEC = 24, AM = 25, PM = 26, HASH = 27, COMMA = 28, DASH = 29, SLASH = 30, COLON = 31, + DOT = 32, WS = 33, DIGIT = 34; + public static readonly string[] tokenNames = { + "", "AMPM", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", + "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", + "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", + "AM", "PM", "'#'", "','", "'-'", "'/'", "':'", "'.'", "WS", "DIGIT" + }; + public const int + RULE_compilationUnit = 0, RULE_dateLiteral = 1, RULE_dateOrTime = 2, RULE_dateValue = 3, + RULE_dateValuePart = 4, RULE_dateValueNumber = 5, RULE_dateSeparator = 6, + RULE_monthName = 7, RULE_englishMonthName = 8, RULE_englishMonthAbbreviation = 9, + RULE_timeValue = 10, RULE_timeValuePart = 11, RULE_timeSeparator = 12; + public static readonly string[] ruleNames = { + "compilationUnit", "dateLiteral", "dateOrTime", "dateValue", "dateValuePart", + "dateValueNumber", "dateSeparator", "monthName", "englishMonthName", "englishMonthAbbreviation", + "timeValue", "timeValuePart", "timeSeparator" + }; - public override string GrammarFileName { get { return "VBADate.g4"; } } + public override string GrammarFileName { get { return "VBADate.g4"; } } - public override string[] TokenNames { get { return tokenNames; } } + public override string[] TokenNames { get { return tokenNames; } } - public override string[] RuleNames { get { return ruleNames; } } + public override string[] RuleNames { get { return ruleNames; } } - public override string SerializedAtn { get { return _serializedATN; } } + public override string SerializedAtn { get { return _serializedATN; } } - public VBADateParser(ITokenStream input) - : base(input) - { - _interp = new ParserATNSimulator(this,_ATN); - } - public partial class CompilationUnitContext : ParserRuleContext { - public ITerminalNode Eof() { return GetToken(VBADateParser.Eof, 0); } - public DateLiteralContext dateLiteral() { - return GetRuleContext(0); - } - public CompilationUnitContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_compilationUnit; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterCompilationUnit(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitCompilationUnit(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitCompilationUnit(this); - else return visitor.VisitChildren(this); - } - } + public VBADateParser(ITokenStream input) + : base(input) + { + _interp = new ParserATNSimulator(this, _ATN); + } + public partial class CompilationUnitContext : ParserRuleContext + { + public ITerminalNode Eof() { return GetToken(VBADateParser.Eof, 0); } + public DateLiteralContext dateLiteral() + { + return GetRuleContext(0); + } + public CompilationUnitContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_compilationUnit; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterCompilationUnit(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitCompilationUnit(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitCompilationUnit(this); + else return visitor.VisitChildren(this); + } + } - [RuleVersion(0)] - public CompilationUnitContext compilationUnit() { - CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, State); - EnterRule(_localctx, 0, RULE_compilationUnit); - try { - EnterOuterAlt(_localctx, 1); - { - State = 24; dateLiteral(); - State = 25; Match(Eof); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + [RuleVersion(0)] + public CompilationUnitContext compilationUnit() + { + CompilationUnitContext _localctx = new CompilationUnitContext(_ctx, State); + EnterRule(_localctx, 0, RULE_compilationUnit); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 26; dateLiteral(); + State = 27; Match(Eof); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - public partial class DateLiteralContext : ParserRuleContext { - public DateOrTimeContext dateOrTime() { - return GetRuleContext(0); - } - public ITerminalNode HASH(int i) { - return GetToken(VBADateParser.HASH, i); - } - public IReadOnlyList HASH() { return GetTokens(VBADateParser.HASH); } - public DateLiteralContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dateLiteral; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterDateLiteral(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitDateLiteral(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitDateLiteral(this); - else return visitor.VisitChildren(this); - } - } + public partial class DateLiteralContext : ParserRuleContext + { + public DateOrTimeContext dateOrTime() + { + return GetRuleContext(0); + } + public ITerminalNode HASH(int i) + { + return GetToken(VBADateParser.HASH, i); + } + public IReadOnlyList HASH() { return GetTokens(VBADateParser.HASH); } + public DateLiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateLiteral; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateLiteral(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateLiteral(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateLiteral(this); + else return visitor.VisitChildren(this); + } + } - [RuleVersion(0)] - public DateLiteralContext dateLiteral() { - DateLiteralContext _localctx = new DateLiteralContext(_ctx, State); - EnterRule(_localctx, 2, RULE_dateLiteral); - try { - EnterOuterAlt(_localctx, 1); - { - State = 27; Match(HASH); - State = 28; dateOrTime(); - State = 29; Match(HASH); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + [RuleVersion(0)] + public DateLiteralContext dateLiteral() + { + DateLiteralContext _localctx = new DateLiteralContext(_ctx, State); + EnterRule(_localctx, 2, RULE_dateLiteral); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 29; Match(HASH); + State = 30; dateOrTime(); + State = 31; Match(HASH); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - public partial class DateOrTimeContext : ParserRuleContext { - public DateValueContext dateValue() { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) { - return GetToken(VBADateParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } - public TimeValueContext timeValue() { - return GetRuleContext(0); - } - public DateOrTimeContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dateOrTime; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterDateOrTime(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitDateOrTime(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitDateOrTime(this); - else return visitor.VisitChildren(this); - } - } + public partial class DateOrTimeContext : ParserRuleContext + { + public DateValueContext dateValue() + { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) + { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public TimeValueContext timeValue() + { + return GetRuleContext(0); + } + public DateOrTimeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateOrTime; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateOrTime(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateOrTime(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateOrTime(this); + else return visitor.VisitChildren(this); + } + } - [RuleVersion(0)] - public DateOrTimeContext dateOrTime() { - DateOrTimeContext _localctx = new DateOrTimeContext(_ctx, State); - EnterRule(_localctx, 4, RULE_dateOrTime); - int _la; - try { - State = 41; - switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 31; dateValue(); - } - break; + [RuleVersion(0)] + public DateOrTimeContext dateOrTime() + { + DateOrTimeContext _localctx = new DateOrTimeContext(_ctx, State); + EnterRule(_localctx, 4, RULE_dateOrTime); + int _la; + try + { + State = 43; + switch (Interpreter.AdaptivePredict(_input, 1, _ctx)) + { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 33; dateValue(); + } + break; - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 32; timeValue(); - } - break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 34; timeValue(); + } + break; - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 33; dateValue(); - State = 35; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 34; Match(WS); - } - } - State = 37; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 39; timeValue(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 35; dateValue(); + State = 37; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 36; Match(WS); + } + } + State = 39; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + State = 41; timeValue(); + } + break; + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - public partial class DateValueContext : ParserRuleContext { - public IReadOnlyList dateSeparator() { - return GetRuleContexts(); - } - public IReadOnlyList dateValuePart() { - return GetRuleContexts(); - } - public DateSeparatorContext dateSeparator(int i) { - return GetRuleContext(i); - } - public DateValuePartContext dateValuePart(int i) { - return GetRuleContext(i); - } - public DateValueContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dateValue; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterDateValue(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitDateValue(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitDateValue(this); - else return visitor.VisitChildren(this); - } - } + public partial class DateValueContext : ParserRuleContext + { + public IReadOnlyList dateSeparator() + { + return GetRuleContexts(); + } + public IReadOnlyList dateValuePart() + { + return GetRuleContexts(); + } + public DateSeparatorContext dateSeparator(int i) + { + return GetRuleContext(i); + } + public DateValuePartContext dateValuePart(int i) + { + return GetRuleContext(i); + } + public DateValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateValue; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateValue(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateValue(this); + else return visitor.VisitChildren(this); + } + } - [RuleVersion(0)] - public DateValueContext dateValue() { - DateValueContext _localctx = new DateValueContext(_ctx, State); - EnterRule(_localctx, 6, RULE_dateValue); - try { - EnterOuterAlt(_localctx, 1); - { - State = 43; dateValuePart(); - State = 44; dateSeparator(); - State = 45; dateValuePart(); - State = 49; - switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { - case 1: - { - State = 46; dateSeparator(); - State = 47; dateValuePart(); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + [RuleVersion(0)] + public DateValueContext dateValue() + { + DateValueContext _localctx = new DateValueContext(_ctx, State); + EnterRule(_localctx, 6, RULE_dateValue); + try + { + EnterOuterAlt(_localctx, 1); + { + State = 45; dateValuePart(); + State = 46; dateSeparator(); + State = 47; dateValuePart(); + State = 51; + switch (Interpreter.AdaptivePredict(_input, 2, _ctx)) + { + case 1: + { + State = 48; dateSeparator(); + State = 49; dateValuePart(); + } + break; + } + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - public partial class DateValuePartContext : ParserRuleContext { - public ITerminalNode DIGIT(int i) { - return GetToken(VBADateParser.DIGIT, i); - } - public IReadOnlyList DIGIT() { return GetTokens(VBADateParser.DIGIT); } - public MonthNameContext monthName() { - return GetRuleContext(0); - } - public DateValuePartContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dateValuePart; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterDateValuePart(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitDateValuePart(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitDateValuePart(this); - else return visitor.VisitChildren(this); - } - } + public partial class DateValuePartContext : ParserRuleContext + { + public DateValueNumberContext dateValueNumber() + { + return GetRuleContext(0); + } + public MonthNameContext monthName() + { + return GetRuleContext(0); + } + public DateValuePartContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateValuePart; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateValuePart(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateValuePart(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateValuePart(this); + else return visitor.VisitChildren(this); + } + } - [RuleVersion(0)] - public DateValuePartContext dateValuePart() { - DateValuePartContext _localctx = new DateValuePartContext(_ctx, State); - EnterRule(_localctx, 8, RULE_dateValuePart); - int _la; - try { - State = 57; - switch (_input.La(1)) { - case DIGIT: - EnterOuterAlt(_localctx, 1); - { - State = 52; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 51; Match(DIGIT); - } - } - State = 54; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==DIGIT ); - } - break; - case J: - case A: - case N: - case F: - case M: - case S: - case O: - case D: - EnterOuterAlt(_localctx, 2); - { - State = 56; monthName(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + [RuleVersion(0)] + public DateValuePartContext dateValuePart() + { + DateValuePartContext _localctx = new DateValuePartContext(_ctx, State); + EnterRule(_localctx, 8, RULE_dateValuePart); + try + { + State = 55; + switch (_input.La(1)) + { + case DIGIT: + EnterOuterAlt(_localctx, 1); + { + State = 53; dateValueNumber(); + } + break; + case JANUARY: + case FEBRUARY: + case MARCH: + case APRIL: + case MAY: + case JUNE: + case JULY: + case AUGUST: + case SEPTEMBER: + case OCTOBER: + case NOVEMBER: + case DECEMBER: + case JAN: + case FEB: + case MAR: + case APR: + case JUN: + case JUL: + case AUG: + case SEP: + case OCT: + case NOV: + case DEC: + EnterOuterAlt(_localctx, 2); + { + State = 54; monthName(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - public partial class DateSeparatorContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBADateParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } - public ITerminalNode SLASH() { return GetToken(VBADateParser.SLASH, 0); } - public ITerminalNode COMMA() { return GetToken(VBADateParser.COMMA, 0); } - public ITerminalNode DASH() { return GetToken(VBADateParser.DASH, 0); } - public DateSeparatorContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dateSeparator; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterDateSeparator(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitDateSeparator(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitDateSeparator(this); - else return visitor.VisitChildren(this); - } - } + public partial class DateValueNumberContext : ParserRuleContext + { + public ITerminalNode DIGIT(int i) + { + return GetToken(VBADateParser.DIGIT, i); + } + public IReadOnlyList DIGIT() { return GetTokens(VBADateParser.DIGIT); } + public DateValueNumberContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateValueNumber; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateValueNumber(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateValueNumber(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateValueNumber(this); + else return visitor.VisitChildren(this); + } + } - [RuleVersion(0)] - public DateSeparatorContext dateSeparator() { - DateSeparatorContext _localctx = new DateSeparatorContext(_ctx, State); - EnterRule(_localctx, 10, RULE_dateSeparator); - int _la; - try { - State = 77; - switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 60; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 59; Match(WS); - } - } - State = 62; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - } - break; + [RuleVersion(0)] + public DateValueNumberContext dateValueNumber() + { + DateValueNumberContext _localctx = new DateValueNumberContext(_ctx, State); + EnterRule(_localctx, 10, RULE_dateValueNumber); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 58; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 57; Match(DIGIT); + } + } + State = 60; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == DIGIT); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - case 2: - EnterOuterAlt(_localctx, 2); - { - { - State = 67; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 64; Match(WS); - } - } - State = 69; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 70; - _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << COMMA) | (1L << DASH) | (1L << SLASH))) != 0)) ) { - _errHandler.RecoverInline(this); - } - Consume(); - State = 74; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 71; Match(WS); - } - } - State = 76; - _errHandler.Sync(this); - _la = _input.La(1); - } - } - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + public partial class DateSeparatorContext : ParserRuleContext + { + public ITerminalNode WS(int i) + { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public ITerminalNode SLASH() { return GetToken(VBADateParser.SLASH, 0); } + public ITerminalNode COMMA() { return GetToken(VBADateParser.COMMA, 0); } + public ITerminalNode DASH() { return GetToken(VBADateParser.DASH, 0); } + public DateSeparatorContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateSeparator; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterDateSeparator(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitDateSeparator(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateSeparator(this); + else return visitor.VisitChildren(this); + } + } - public partial class MonthNameContext : ParserRuleContext { - public EnglishMonthAbbreviationContext englishMonthAbbreviation() { - return GetRuleContext(0); - } - public EnglishMonthNameContext englishMonthName() { - return GetRuleContext(0); - } - public MonthNameContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_monthName; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterMonthName(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitMonthName(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitMonthName(this); - else return visitor.VisitChildren(this); - } - } + [RuleVersion(0)] + public DateSeparatorContext dateSeparator() + { + DateSeparatorContext _localctx = new DateSeparatorContext(_ctx, State); + EnterRule(_localctx, 12, RULE_dateSeparator); + int _la; + try + { + State = 80; + switch (Interpreter.AdaptivePredict(_input, 8, _ctx)) + { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 63; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 62; Match(WS); + } + } + State = 65; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == WS); + } + break; - [RuleVersion(0)] - public MonthNameContext monthName() { - MonthNameContext _localctx = new MonthNameContext(_ctx, State); - EnterRule(_localctx, 12, RULE_monthName); - try { - State = 81; - switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 79; englishMonthName(); - } - break; + case 2: + EnterOuterAlt(_localctx, 2); + { + { + State = 70; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 67; Match(WS); + } + } + State = 72; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 73; + _la = _input.La(1); + if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << COMMA) | (1L << DASH) | (1L << SLASH))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + State = 77; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 74; Match(WS); + } + } + State = 79; + _errHandler.Sync(this); + _la = _input.La(1); + } + } + } + break; + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 80; englishMonthAbbreviation(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + public partial class MonthNameContext : ParserRuleContext + { + public EnglishMonthAbbreviationContext englishMonthAbbreviation() + { + return GetRuleContext(0); + } + public EnglishMonthNameContext englishMonthName() + { + return GetRuleContext(0); + } + public MonthNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_monthName; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterMonthName(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitMonthName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitMonthName(this); + else return visitor.VisitChildren(this); + } + } - public partial class EnglishMonthNameContext : ParserRuleContext { - public ITerminalNode T() { return GetToken(VBADateParser.T, 0); } - public IReadOnlyList U() { return GetTokens(VBADateParser.U); } - public ITerminalNode J() { return GetToken(VBADateParser.J, 0); } - public ITerminalNode G() { return GetToken(VBADateParser.G, 0); } - public ITerminalNode S() { return GetToken(VBADateParser.S, 0); } - public IReadOnlyList O() { return GetTokens(VBADateParser.O); } - public ITerminalNode I() { return GetToken(VBADateParser.I, 0); } - public IReadOnlyList A() { return GetTokens(VBADateParser.A); } - public ITerminalNode P() { return GetToken(VBADateParser.P, 0); } - public ITerminalNode E(int i) { - return GetToken(VBADateParser.E, i); - } - public ITerminalNode U(int i) { - return GetToken(VBADateParser.U, i); - } - public ITerminalNode Y() { return GetToken(VBADateParser.Y, 0); } - public ITerminalNode H() { return GetToken(VBADateParser.H, 0); } - public ITerminalNode M() { return GetToken(VBADateParser.M, 0); } - public ITerminalNode V() { return GetToken(VBADateParser.V, 0); } - public ITerminalNode F() { return GetToken(VBADateParser.F, 0); } - public IReadOnlyList E() { return GetTokens(VBADateParser.E); } - public ITerminalNode D() { return GetToken(VBADateParser.D, 0); } - public IReadOnlyList R() { return GetTokens(VBADateParser.R); } - public ITerminalNode O(int i) { - return GetToken(VBADateParser.O, i); - } - public ITerminalNode N() { return GetToken(VBADateParser.N, 0); } - public ITerminalNode R(int i) { - return GetToken(VBADateParser.R, i); - } - public ITerminalNode A(int i) { - return GetToken(VBADateParser.A, i); - } - public ITerminalNode B() { return GetToken(VBADateParser.B, 0); } - public ITerminalNode C() { return GetToken(VBADateParser.C, 0); } - public ITerminalNode L() { return GetToken(VBADateParser.L, 0); } - public EnglishMonthNameContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_englishMonthName; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterEnglishMonthName(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitEnglishMonthName(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitEnglishMonthName(this); - else return visitor.VisitChildren(this); - } - } + [RuleVersion(0)] + public MonthNameContext monthName() + { + MonthNameContext _localctx = new MonthNameContext(_ctx, State); + EnterRule(_localctx, 14, RULE_monthName); + try + { + State = 84; + switch (_input.La(1)) + { + case JANUARY: + case FEBRUARY: + case MARCH: + case APRIL: + case MAY: + case JUNE: + case JULY: + case AUGUST: + case SEPTEMBER: + case OCTOBER: + case NOVEMBER: + case DECEMBER: + EnterOuterAlt(_localctx, 1); + { + State = 82; englishMonthName(); + } + break; + case JAN: + case FEB: + case MAR: + case APR: + case JUN: + case JUL: + case AUG: + case SEP: + case OCT: + case NOV: + case DEC: + EnterOuterAlt(_localctx, 2); + { + State = 83; englishMonthAbbreviation(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - [RuleVersion(0)] - public EnglishMonthNameContext englishMonthName() { - EnglishMonthNameContext _localctx = new EnglishMonthNameContext(_ctx, State); - EnterRule(_localctx, 14, RULE_englishMonthName); - try { - State = 153; - switch ( Interpreter.AdaptivePredict(_input,10,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 83; Match(J); - State = 84; Match(A); - State = 85; Match(N); - State = 86; Match(U); - State = 87; Match(A); - State = 88; Match(R); - State = 89; Match(Y); - } - break; + public partial class EnglishMonthNameContext : ParserRuleContext + { + public ITerminalNode DECEMBER() { return GetToken(VBADateParser.DECEMBER, 0); } + public ITerminalNode MARCH() { return GetToken(VBADateParser.MARCH, 0); } + public ITerminalNode FEBRUARY() { return GetToken(VBADateParser.FEBRUARY, 0); } + public ITerminalNode AUGUST() { return GetToken(VBADateParser.AUGUST, 0); } + public ITerminalNode JULY() { return GetToken(VBADateParser.JULY, 0); } + public ITerminalNode NOVEMBER() { return GetToken(VBADateParser.NOVEMBER, 0); } + public ITerminalNode JUNE() { return GetToken(VBADateParser.JUNE, 0); } + public ITerminalNode SEPTEMBER() { return GetToken(VBADateParser.SEPTEMBER, 0); } + public ITerminalNode APRIL() { return GetToken(VBADateParser.APRIL, 0); } + public ITerminalNode MAY() { return GetToken(VBADateParser.MAY, 0); } + public ITerminalNode JANUARY() { return GetToken(VBADateParser.JANUARY, 0); } + public ITerminalNode OCTOBER() { return GetToken(VBADateParser.OCTOBER, 0); } + public EnglishMonthNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_englishMonthName; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterEnglishMonthName(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitEnglishMonthName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitEnglishMonthName(this); + else return visitor.VisitChildren(this); + } + } - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 90; Match(F); - State = 91; Match(E); - State = 92; Match(B); - State = 93; Match(R); - State = 94; Match(U); - State = 95; Match(A); - State = 96; Match(R); - State = 97; Match(Y); - } - break; + [RuleVersion(0)] + public EnglishMonthNameContext englishMonthName() + { + EnglishMonthNameContext _localctx = new EnglishMonthNameContext(_ctx, State); + EnterRule(_localctx, 16, RULE_englishMonthName); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 86; + _la = _input.La(1); + if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << JANUARY) | (1L << FEBRUARY) | (1L << MARCH) | (1L << APRIL) | (1L << MAY) | (1L << JUNE) | (1L << JULY) | (1L << AUGUST) | (1L << SEPTEMBER) | (1L << OCTOBER) | (1L << NOVEMBER) | (1L << DECEMBER))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 98; Match(M); - State = 99; Match(A); - State = 100; Match(R); - State = 101; Match(C); - State = 102; Match(H); - } - break; + public partial class EnglishMonthAbbreviationContext : ParserRuleContext + { + public ITerminalNode NOV() { return GetToken(VBADateParser.NOV, 0); } + public ITerminalNode DEC() { return GetToken(VBADateParser.DEC, 0); } + public ITerminalNode AUG() { return GetToken(VBADateParser.AUG, 0); } + public ITerminalNode APR() { return GetToken(VBADateParser.APR, 0); } + public ITerminalNode MAR() { return GetToken(VBADateParser.MAR, 0); } + public ITerminalNode SEP() { return GetToken(VBADateParser.SEP, 0); } + public ITerminalNode JUN() { return GetToken(VBADateParser.JUN, 0); } + public ITerminalNode JAN() { return GetToken(VBADateParser.JAN, 0); } + public ITerminalNode JUL() { return GetToken(VBADateParser.JUL, 0); } + public ITerminalNode FEB() { return GetToken(VBADateParser.FEB, 0); } + public ITerminalNode OCT() { return GetToken(VBADateParser.OCT, 0); } + public EnglishMonthAbbreviationContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_englishMonthAbbreviation; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterEnglishMonthAbbreviation(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitEnglishMonthAbbreviation(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitEnglishMonthAbbreviation(this); + else return visitor.VisitChildren(this); + } + } - case 4: - EnterOuterAlt(_localctx, 4); - { - State = 103; Match(A); - State = 104; Match(P); - State = 105; Match(R); - State = 106; Match(I); - State = 107; Match(L); - } - break; + [RuleVersion(0)] + public EnglishMonthAbbreviationContext englishMonthAbbreviation() + { + EnglishMonthAbbreviationContext _localctx = new EnglishMonthAbbreviationContext(_ctx, State); + EnterRule(_localctx, 18, RULE_englishMonthAbbreviation); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 88; + _la = _input.La(1); + if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << JAN) | (1L << FEB) | (1L << MAR) | (1L << APR) | (1L << JUN) | (1L << JUL) | (1L << AUG) | (1L << SEP) | (1L << OCT) | (1L << NOV) | (1L << DEC))) != 0))) + { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - case 5: - EnterOuterAlt(_localctx, 5); - { - State = 108; Match(M); - State = 109; Match(A); - State = 110; Match(Y); - } - break; + public partial class TimeValueContext : ParserRuleContext + { + public ITerminalNode WS(int i) + { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList timeValuePart() + { + return GetRuleContexts(); + } + public ITerminalNode AMPM() { return GetToken(VBADateParser.AMPM, 0); } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public IReadOnlyList timeSeparator() + { + return GetRuleContexts(); + } + public TimeValuePartContext timeValuePart(int i) + { + return GetRuleContext(i); + } + public TimeSeparatorContext timeSeparator(int i) + { + return GetRuleContext(i); + } + public TimeValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeValue; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterTimeValue(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitTimeValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitTimeValue(this); + else return visitor.VisitChildren(this); + } + } - case 6: - EnterOuterAlt(_localctx, 6); - { - State = 111; Match(J); - State = 112; Match(U); - State = 113; Match(N); - State = 114; Match(E); - } - break; + [RuleVersion(0)] + public TimeValueContext timeValue() + { + TimeValueContext _localctx = new TimeValueContext(_ctx, State); + EnterRule(_localctx, 20, RULE_timeValue); + int _la; + try + { + State = 116; + switch (Interpreter.AdaptivePredict(_input, 14, _ctx)) + { + case 1: + EnterOuterAlt(_localctx, 1); + { + { + State = 90; timeValuePart(); + State = 94; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 91; Match(WS); + } + } + State = 96; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 97; Match(AMPM); + } + } + break; - case 7: - EnterOuterAlt(_localctx, 7); - { - State = 115; Match(A); - State = 116; Match(U); - State = 117; Match(G); - State = 118; Match(U); - State = 119; Match(S); - State = 120; Match(T); - } - break; + case 2: + EnterOuterAlt(_localctx, 2); + { + { + State = 99; timeValuePart(); + State = 100; timeSeparator(); + State = 101; timeValuePart(); + State = 105; + switch (Interpreter.AdaptivePredict(_input, 11, _ctx)) + { + case 1: + { + State = 102; timeSeparator(); + State = 103; timeValuePart(); + } + break; + } + State = 114; + _la = _input.La(1); + if (_la == AMPM || _la == WS) + { + { + State = 110; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 107; Match(WS); + } + } + State = 112; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 113; Match(AMPM); + } + } - case 8: - EnterOuterAlt(_localctx, 8); - { - State = 121; Match(S); - State = 122; Match(E); - State = 123; Match(P); - State = 124; Match(T); - State = 125; Match(E); - State = 126; Match(M); - State = 127; Match(B); - State = 128; Match(E); - State = 129; Match(R); - } - break; + } + } + break; + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - case 9: - EnterOuterAlt(_localctx, 9); - { - State = 130; Match(O); - State = 131; Match(C); - State = 132; Match(T); - State = 133; Match(O); - State = 134; Match(B); - State = 135; Match(E); - State = 136; Match(R); - } - break; + public partial class TimeValuePartContext : ParserRuleContext + { + public ITerminalNode DIGIT(int i) + { + return GetToken(VBADateParser.DIGIT, i); + } + public IReadOnlyList DIGIT() { return GetTokens(VBADateParser.DIGIT); } + public TimeValuePartContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeValuePart; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterTimeValuePart(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitTimeValuePart(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitTimeValuePart(this); + else return visitor.VisitChildren(this); + } + } - case 10: - EnterOuterAlt(_localctx, 10); - { - State = 137; Match(N); - State = 138; Match(O); - State = 139; Match(V); - State = 140; Match(E); - State = 141; Match(M); - State = 142; Match(B); - State = 143; Match(E); - State = 144; Match(R); - } - break; + [RuleVersion(0)] + public TimeValuePartContext timeValuePart() + { + TimeValuePartContext _localctx = new TimeValuePartContext(_ctx, State); + EnterRule(_localctx, 22, RULE_timeValuePart); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 119; + _errHandler.Sync(this); + _la = _input.La(1); + do + { + { + { + State = 118; Match(DIGIT); + } + } + State = 121; + _errHandler.Sync(this); + _la = _input.La(1); + } while (_la == DIGIT); + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - case 11: - EnterOuterAlt(_localctx, 11); - { - State = 145; Match(D); - State = 146; Match(E); - State = 147; Match(C); - State = 148; Match(E); - State = 149; Match(M); - State = 150; Match(B); - State = 151; Match(E); - State = 152; Match(R); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } + public partial class TimeSeparatorContext : ParserRuleContext + { + public ITerminalNode DOT() { return GetToken(VBADateParser.DOT, 0); } + public ITerminalNode WS(int i) + { + return GetToken(VBADateParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } + public ITerminalNode COLON() { return GetToken(VBADateParser.COLON, 0); } + public TimeSeparatorContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeSeparator; } } + public override void EnterRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.EnterTimeSeparator(this); + } + public override void ExitRule(IParseTreeListener listener) + { + IVBADateListener typedListener = listener as IVBADateListener; + if (typedListener != null) typedListener.ExitTimeSeparator(this); + } + public override TResult Accept(IParseTreeVisitor visitor) + { + IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; + if (typedVisitor != null) return typedVisitor.VisitTimeSeparator(this); + else return visitor.VisitChildren(this); + } + } - public partial class EnglishMonthAbbreviationContext : ParserRuleContext { - public ITerminalNode T() { return GetToken(VBADateParser.T, 0); } - public ITerminalNode M() { return GetToken(VBADateParser.M, 0); } - public ITerminalNode V() { return GetToken(VBADateParser.V, 0); } - public ITerminalNode F() { return GetToken(VBADateParser.F, 0); } - public ITerminalNode E() { return GetToken(VBADateParser.E, 0); } - public ITerminalNode D() { return GetToken(VBADateParser.D, 0); } - public ITerminalNode U() { return GetToken(VBADateParser.U, 0); } - public ITerminalNode R() { return GetToken(VBADateParser.R, 0); } - public ITerminalNode J() { return GetToken(VBADateParser.J, 0); } - public ITerminalNode G() { return GetToken(VBADateParser.G, 0); } - public ITerminalNode N() { return GetToken(VBADateParser.N, 0); } - public ITerminalNode S() { return GetToken(VBADateParser.S, 0); } - public ITerminalNode O() { return GetToken(VBADateParser.O, 0); } - public ITerminalNode B() { return GetToken(VBADateParser.B, 0); } - public ITerminalNode C() { return GetToken(VBADateParser.C, 0); } - public ITerminalNode A() { return GetToken(VBADateParser.A, 0); } - public ITerminalNode P() { return GetToken(VBADateParser.P, 0); } - public ITerminalNode L() { return GetToken(VBADateParser.L, 0); } - public EnglishMonthAbbreviationContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_englishMonthAbbreviation; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterEnglishMonthAbbreviation(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitEnglishMonthAbbreviation(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitEnglishMonthAbbreviation(this); - else return visitor.VisitChildren(this); - } - } + [RuleVersion(0)] + public TimeSeparatorContext timeSeparator() + { + TimeSeparatorContext _localctx = new TimeSeparatorContext(_ctx, State); + EnterRule(_localctx, 24, RULE_timeSeparator); + int _la; + try + { + EnterOuterAlt(_localctx, 1); + { + State = 126; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 123; Match(WS); + } + } + State = 128; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 129; + _la = _input.La(1); + if (!(_la == COLON || _la == DOT)) + { + _errHandler.RecoverInline(this); + } + Consume(); + State = 133; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la == WS) + { + { + { + State = 130; Match(WS); + } + } + State = 135; + _errHandler.Sync(this); + _la = _input.La(1); + } + } + } + catch (RecognitionException re) + { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally + { + ExitRule(); + } + return _localctx; + } - [RuleVersion(0)] - public EnglishMonthAbbreviationContext englishMonthAbbreviation() { - EnglishMonthAbbreviationContext _localctx = new EnglishMonthAbbreviationContext(_ctx, State); - EnterRule(_localctx, 16, RULE_englishMonthAbbreviation); - try { - State = 188; - switch ( Interpreter.AdaptivePredict(_input,11,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 155; Match(J); - State = 156; Match(A); - State = 157; Match(N); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 158; Match(F); - State = 159; Match(E); - State = 160; Match(B); - } - break; - - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 161; Match(M); - State = 162; Match(A); - State = 163; Match(R); - } - break; - - case 4: - EnterOuterAlt(_localctx, 4); - { - State = 164; Match(A); - State = 165; Match(P); - State = 166; Match(R); - } - break; - - case 5: - EnterOuterAlt(_localctx, 5); - { - State = 167; Match(J); - State = 168; Match(U); - State = 169; Match(N); - } - break; - - case 6: - EnterOuterAlt(_localctx, 6); - { - State = 170; Match(J); - State = 171; Match(U); - State = 172; Match(L); - } - break; - - case 7: - EnterOuterAlt(_localctx, 7); - { - State = 173; Match(A); - State = 174; Match(U); - State = 175; Match(G); - } - break; - - case 8: - EnterOuterAlt(_localctx, 8); - { - State = 176; Match(S); - State = 177; Match(E); - State = 178; Match(P); - } - break; - - case 9: - EnterOuterAlt(_localctx, 9); - { - State = 179; Match(O); - State = 180; Match(C); - State = 181; Match(T); - } - break; - - case 10: - EnterOuterAlt(_localctx, 10); - { - State = 182; Match(N); - State = 183; Match(O); - State = 184; Match(V); - } - break; - - case 11: - EnterOuterAlt(_localctx, 11); - { - State = 185; Match(D); - State = 186; Match(E); - State = 187; Match(C); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class TimeValueContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBADateParser.WS, i); - } - public IReadOnlyList timeValuePart() { - return GetRuleContexts(); - } - public ITerminalNode AMPM() { return GetToken(VBADateParser.AMPM, 0); } - public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } - public IReadOnlyList timeSeparator() { - return GetRuleContexts(); - } - public TimeValuePartContext timeValuePart(int i) { - return GetRuleContext(i); - } - public TimeSeparatorContext timeSeparator(int i) { - return GetRuleContext(i); - } - public TimeValueContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_timeValue; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterTimeValue(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitTimeValue(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitTimeValue(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TimeValueContext timeValue() { - TimeValueContext _localctx = new TimeValueContext(_ctx, State); - EnterRule(_localctx, 18, RULE_timeValue); - int _la; - try { - State = 216; - switch ( Interpreter.AdaptivePredict(_input,16,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - { - State = 190; timeValuePart(); - State = 194; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 191; Match(WS); - } - } - State = 196; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 197; Match(AMPM); - } - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - { - State = 199; timeValuePart(); - State = 200; timeSeparator(); - State = 201; timeValuePart(); - State = 205; - switch ( Interpreter.AdaptivePredict(_input,13,_ctx) ) { - case 1: - { - State = 202; timeSeparator(); - State = 203; timeValuePart(); - } - break; - } - State = 214; - _la = _input.La(1); - if (_la==AMPM || _la==WS) { - { - State = 210; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 207; Match(WS); - } - } - State = 212; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 213; Match(AMPM); - } - } - - } - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class TimeValuePartContext : ParserRuleContext { - public ITerminalNode DIGIT(int i) { - return GetToken(VBADateParser.DIGIT, i); - } - public IReadOnlyList DIGIT() { return GetTokens(VBADateParser.DIGIT); } - public TimeValuePartContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_timeValuePart; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterTimeValuePart(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitTimeValuePart(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitTimeValuePart(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TimeValuePartContext timeValuePart() { - TimeValuePartContext _localctx = new TimeValuePartContext(_ctx, State); - EnterRule(_localctx, 20, RULE_timeValuePart); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 219; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 218; Match(DIGIT); - } - } - State = 221; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==DIGIT ); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class TimeSeparatorContext : ParserRuleContext { - public ITerminalNode DOT() { return GetToken(VBADateParser.DOT, 0); } - public ITerminalNode WS(int i) { - return GetToken(VBADateParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBADateParser.WS); } - public ITerminalNode COLON() { return GetToken(VBADateParser.COLON, 0); } - public TimeSeparatorContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_timeSeparator; } } - public override void EnterRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.EnterTimeSeparator(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBADateListener typedListener = listener as IVBADateListener; - if (typedListener != null) typedListener.ExitTimeSeparator(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBADateVisitor typedVisitor = visitor as IVBADateVisitor; - if (typedVisitor != null) return typedVisitor.VisitTimeSeparator(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TimeSeparatorContext timeSeparator() { - TimeSeparatorContext _localctx = new TimeSeparatorContext(_ctx, State); - EnterRule(_localctx, 22, RULE_timeSeparator); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 226; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 223; Match(WS); - } - } - State = 228; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 229; - _la = _input.La(1); - if ( !(_la==COLON || _la==DOT) ) { - _errHandler.RecoverInline(this); - } - Consume(); - State = 233; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS) { - { - { - State = 230; Match(WS); - } - } - State = 235; - _errHandler.Sync(this); - _la = _input.La(1); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\"\xEF\x4\x2\t\x2"+ - "\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4\t\t"+ - "\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3"+ - "\x3\x3\x3\x3\x4\x3\x4\x3\x4\x3\x4\x6\x4&\n\x4\r\x4\xE\x4\'\x3\x4\x3\x4"+ - "\x5\x4,\n\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x34\n\x5\x3\x6"+ - "\x6\x6\x37\n\x6\r\x6\xE\x6\x38\x3\x6\x5\x6<\n\x6\x3\a\x6\a?\n\a\r\a\xE"+ - "\a@\x3\a\a\a\x44\n\a\f\a\xE\aG\v\a\x3\a\x3\a\a\aK\n\a\f\a\xE\aN\v\a\x5"+ - "\aP\n\a\x3\b\x3\b\x5\bT\n\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x9C\n\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"+ - "\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\x5\n"+ - "\xBF\n\n\x3\v\x3\v\a\v\xC3\n\v\f\v\xE\v\xC6\v\v\x3\v\x3\v\x3\v\x3\v\x3"+ - "\v\x3\v\x3\v\x3\v\x5\v\xD0\n\v\x3\v\a\v\xD3\n\v\f\v\xE\v\xD6\v\v\x3\v"+ - "\x5\v\xD9\n\v\x5\v\xDB\n\v\x3\f\x6\f\xDE\n\f\r\f\xE\f\xDF\x3\r\a\r\xE3"+ - "\n\r\f\r\xE\r\xE6\v\r\x3\r\x3\r\a\r\xEA\n\r\f\r\xE\r\xED\v\r\x3\r\x2\x2"+ - "\x2\xE\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16"+ - "\x2\x18\x2\x2\x4\x3\x2\a\t\x3\x2\n\v\x109\x2\x1A\x3\x2\x2\x2\x4\x1D\x3"+ - "\x2\x2\x2\x6+\x3\x2\x2\x2\b-\x3\x2\x2\x2\n;\x3\x2\x2\x2\fO\x3\x2\x2\x2"+ - "\xES\x3\x2\x2\x2\x10\x9B\x3\x2\x2\x2\x12\xBE\x3\x2\x2\x2\x14\xDA\x3\x2"+ - "\x2\x2\x16\xDD\x3\x2\x2\x2\x18\xE4\x3\x2\x2\x2\x1A\x1B\x5\x4\x3\x2\x1B"+ - "\x1C\a\x2\x2\x3\x1C\x3\x3\x2\x2\x2\x1D\x1E\a\x6\x2\x2\x1E\x1F\x5\x6\x4"+ - "\x2\x1F \a\x6\x2\x2 \x5\x3\x2\x2\x2!,\x5\b\x5\x2\",\x5\x14\v\x2#%\x5\b"+ - "\x5\x2$&\a\f\x2\x2%$\x3\x2\x2\x2&\'\x3\x2\x2\x2\'%\x3\x2\x2\x2\'(\x3\x2"+ - "\x2\x2()\x3\x2\x2\x2)*\x5\x14\v\x2*,\x3\x2\x2\x2+!\x3\x2\x2\x2+\"\x3\x2"+ - "\x2\x2+#\x3\x2\x2\x2,\a\x3\x2\x2\x2-.\x5\n\x6\x2./\x5\f\a\x2/\x33\x5\n"+ - "\x6\x2\x30\x31\x5\f\a\x2\x31\x32\x5\n\x6\x2\x32\x34\x3\x2\x2\x2\x33\x30"+ - "\x3\x2\x2\x2\x33\x34\x3\x2\x2\x2\x34\t\x3\x2\x2\x2\x35\x37\a\r\x2\x2\x36"+ - "\x35\x3\x2\x2\x2\x37\x38\x3\x2\x2\x2\x38\x36\x3\x2\x2\x2\x38\x39\x3\x2"+ - "\x2\x2\x39<\x3\x2\x2\x2:<\x5\xE\b\x2;\x36\x3\x2\x2\x2;:\x3\x2\x2\x2<\v"+ - "\x3\x2\x2\x2=?\a\f\x2\x2>=\x3\x2\x2\x2?@\x3\x2\x2\x2@>\x3\x2\x2\x2@\x41"+ - "\x3\x2\x2\x2\x41P\x3\x2\x2\x2\x42\x44\a\f\x2\x2\x43\x42\x3\x2\x2\x2\x44"+ - "G\x3\x2\x2\x2\x45\x43\x3\x2\x2\x2\x45\x46\x3\x2\x2\x2\x46H\x3\x2\x2\x2"+ - "G\x45\x3\x2\x2\x2HL\t\x2\x2\x2IK\a\f\x2\x2JI\x3\x2\x2\x2KN\x3\x2\x2\x2"+ - "LJ\x3\x2\x2\x2LM\x3\x2\x2\x2MP\x3\x2\x2\x2NL\x3\x2\x2\x2O>\x3\x2\x2\x2"+ - "O\x45\x3\x2\x2\x2P\r\x3\x2\x2\x2QT\x5\x10\t\x2RT\x5\x12\n\x2SQ\x3\x2\x2"+ - "\x2SR\x3\x2\x2\x2T\xF\x3\x2\x2\x2UV\a\xE\x2\x2VW\a\xF\x2\x2WX\a\x10\x2"+ - "\x2XY\a\x11\x2\x2YZ\a\xF\x2\x2Z[\a\x12\x2\x2[\x9C\a\x13\x2\x2\\]\a\x14"+ - "\x2\x2]^\a\x15\x2\x2^_\a\x16\x2\x2_`\a\x12\x2\x2`\x61\a\x11\x2\x2\x61"+ - "\x62\a\xF\x2\x2\x62\x63\a\x12\x2\x2\x63\x9C\a\x13\x2\x2\x64\x65\a\x17"+ - "\x2\x2\x65\x66\a\xF\x2\x2\x66g\a\x12\x2\x2gh\a\x18\x2\x2h\x9C\a\x19\x2"+ - "\x2ij\a\xF\x2\x2jk\a\x1A\x2\x2kl\a\x12\x2\x2lm\a\x1B\x2\x2m\x9C\a\x1C"+ - "\x2\x2no\a\x17\x2\x2op\a\xF\x2\x2p\x9C\a\x13\x2\x2qr\a\xE\x2\x2rs\a\x11"+ - "\x2\x2st\a\x10\x2\x2t\x9C\a\x15\x2\x2uv\a\xF\x2\x2vw\a\x11\x2\x2wx\a\x1D"+ - "\x2\x2xy\a\x11\x2\x2yz\a\x1E\x2\x2z\x9C\a\x1F\x2\x2{|\a\x1E\x2\x2|}\a"+ - "\x15\x2\x2}~\a\x1A\x2\x2~\x7F\a\x1F\x2\x2\x7F\x80\a\x15\x2\x2\x80\x81"+ - "\a\x17\x2\x2\x81\x82\a\x16\x2\x2\x82\x83\a\x15\x2\x2\x83\x9C\a\x12\x2"+ - "\x2\x84\x85\a \x2\x2\x85\x86\a\x18\x2\x2\x86\x87\a\x1F\x2\x2\x87\x88\a"+ - " \x2\x2\x88\x89\a\x16\x2\x2\x89\x8A\a\x15\x2\x2\x8A\x9C\a\x12\x2\x2\x8B"+ - "\x8C\a\x10\x2\x2\x8C\x8D\a \x2\x2\x8D\x8E\a!\x2\x2\x8E\x8F\a\x15\x2\x2"+ - "\x8F\x90\a\x17\x2\x2\x90\x91\a\x16\x2\x2\x91\x92\a\x15\x2\x2\x92\x9C\a"+ - "\x12\x2\x2\x93\x94\a\"\x2\x2\x94\x95\a\x15\x2\x2\x95\x96\a\x18\x2\x2\x96"+ - "\x97\a\x15\x2\x2\x97\x98\a\x17\x2\x2\x98\x99\a\x16\x2\x2\x99\x9A\a\x15"+ - "\x2\x2\x9A\x9C\a\x12\x2\x2\x9BU\x3\x2\x2\x2\x9B\\\x3\x2\x2\x2\x9B\x64"+ - "\x3\x2\x2\x2\x9Bi\x3\x2\x2\x2\x9Bn\x3\x2\x2\x2\x9Bq\x3\x2\x2\x2\x9Bu\x3"+ - "\x2\x2\x2\x9B{\x3\x2\x2\x2\x9B\x84\x3\x2\x2\x2\x9B\x8B\x3\x2\x2\x2\x9B"+ - "\x93\x3\x2\x2\x2\x9C\x11\x3\x2\x2\x2\x9D\x9E\a\xE\x2\x2\x9E\x9F\a\xF\x2"+ - "\x2\x9F\xBF\a\x10\x2\x2\xA0\xA1\a\x14\x2\x2\xA1\xA2\a\x15\x2\x2\xA2\xBF"+ - "\a\x16\x2\x2\xA3\xA4\a\x17\x2\x2\xA4\xA5\a\xF\x2\x2\xA5\xBF\a\x12\x2\x2"+ - "\xA6\xA7\a\xF\x2\x2\xA7\xA8\a\x1A\x2\x2\xA8\xBF\a\x12\x2\x2\xA9\xAA\a"+ - "\xE\x2\x2\xAA\xAB\a\x11\x2\x2\xAB\xBF\a\x10\x2\x2\xAC\xAD\a\xE\x2\x2\xAD"+ - "\xAE\a\x11\x2\x2\xAE\xBF\a\x1C\x2\x2\xAF\xB0\a\xF\x2\x2\xB0\xB1\a\x11"+ - "\x2\x2\xB1\xBF\a\x1D\x2\x2\xB2\xB3\a\x1E\x2\x2\xB3\xB4\a\x15\x2\x2\xB4"+ - "\xBF\a\x1A\x2\x2\xB5\xB6\a \x2\x2\xB6\xB7\a\x18\x2\x2\xB7\xBF\a\x1F\x2"+ - "\x2\xB8\xB9\a\x10\x2\x2\xB9\xBA\a \x2\x2\xBA\xBF\a!\x2\x2\xBB\xBC\a\""+ - "\x2\x2\xBC\xBD\a\x15\x2\x2\xBD\xBF\a\x18\x2\x2\xBE\x9D\x3\x2\x2\x2\xBE"+ - "\xA0\x3\x2\x2\x2\xBE\xA3\x3\x2\x2\x2\xBE\xA6\x3\x2\x2\x2\xBE\xA9\x3\x2"+ - "\x2\x2\xBE\xAC\x3\x2\x2\x2\xBE\xAF\x3\x2\x2\x2\xBE\xB2\x3\x2\x2\x2\xBE"+ - "\xB5\x3\x2\x2\x2\xBE\xB8\x3\x2\x2\x2\xBE\xBB\x3\x2\x2\x2\xBF\x13\x3\x2"+ - "\x2\x2\xC0\xC4\x5\x16\f\x2\xC1\xC3\a\f\x2\x2\xC2\xC1\x3\x2\x2\x2\xC3\xC6"+ - "\x3\x2\x2\x2\xC4\xC2\x3\x2\x2\x2\xC4\xC5\x3\x2\x2\x2\xC5\xC7\x3\x2\x2"+ - "\x2\xC6\xC4\x3\x2\x2\x2\xC7\xC8\a\x3\x2\x2\xC8\xDB\x3\x2\x2\x2\xC9\xCA"+ - "\x5\x16\f\x2\xCA\xCB\x5\x18\r\x2\xCB\xCF\x5\x16\f\x2\xCC\xCD\x5\x18\r"+ - "\x2\xCD\xCE\x5\x16\f\x2\xCE\xD0\x3\x2\x2\x2\xCF\xCC\x3\x2\x2\x2\xCF\xD0"+ - "\x3\x2\x2\x2\xD0\xD8\x3\x2\x2\x2\xD1\xD3\a\f\x2\x2\xD2\xD1\x3\x2\x2\x2"+ - "\xD3\xD6\x3\x2\x2\x2\xD4\xD2\x3\x2\x2\x2\xD4\xD5\x3\x2\x2\x2\xD5\xD7\x3"+ - "\x2\x2\x2\xD6\xD4\x3\x2\x2\x2\xD7\xD9\a\x3\x2\x2\xD8\xD4\x3\x2\x2\x2\xD8"+ - "\xD9\x3\x2\x2\x2\xD9\xDB\x3\x2\x2\x2\xDA\xC0\x3\x2\x2\x2\xDA\xC9\x3\x2"+ - "\x2\x2\xDB\x15\x3\x2\x2\x2\xDC\xDE\a\r\x2\x2\xDD\xDC\x3\x2\x2\x2\xDE\xDF"+ - "\x3\x2\x2\x2\xDF\xDD\x3\x2\x2\x2\xDF\xE0\x3\x2\x2\x2\xE0\x17\x3\x2\x2"+ - "\x2\xE1\xE3\a\f\x2\x2\xE2\xE1\x3\x2\x2\x2\xE3\xE6\x3\x2\x2\x2\xE4\xE2"+ - "\x3\x2\x2\x2\xE4\xE5\x3\x2\x2\x2\xE5\xE7\x3\x2\x2\x2\xE6\xE4\x3\x2\x2"+ - "\x2\xE7\xEB\t\x3\x2\x2\xE8\xEA\a\f\x2\x2\xE9\xE8\x3\x2\x2\x2\xEA\xED\x3"+ - "\x2\x2\x2\xEB\xE9\x3\x2\x2\x2\xEB\xEC\x3\x2\x2\x2\xEC\x19\x3\x2\x2\x2"+ - "\xED\xEB\x3\x2\x2\x2\x16\'+\x33\x38;@\x45LOS\x9B\xBE\xC4\xCF\xD4\xD8\xDA"+ - "\xDF\xE4\xEB"; - public static readonly ATN _ATN = - new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); -} + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3$\x8B\x4\x2\t\x2" + + "\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4\t\t" + + "\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x3\x2\x3\x2\x3\x2\x3" + + "\x3\x3\x3\x3\x3\x3\x3\x3\x4\x3\x4\x3\x4\x3\x4\x6\x4(\n\x4\r\x4\xE\x4)" + + "\x3\x4\x3\x4\x5\x4.\n\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x36" + + "\n\x5\x3\x6\x3\x6\x5\x6:\n\x6\x3\a\x6\a=\n\a\r\a\xE\a>\x3\b\x6\b\x42\n" + + "\b\r\b\xE\b\x43\x3\b\a\bG\n\b\f\b\xE\bJ\v\b\x3\b\x3\b\a\bN\n\b\f\b\xE" + + "\bQ\v\b\x5\bS\n\b\x3\t\x3\t\x5\tW\n\t\x3\n\x3\n\x3\v\x3\v\x3\f\x3\f\a" + + "\f_\n\f\f\f\xE\f\x62\v\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f" + + "l\n\f\x3\f\a\fo\n\f\f\f\xE\fr\v\f\x3\f\x5\fu\n\f\x5\fw\n\f\x3\r\x6\rz" + + "\n\r\r\r\xE\r{\x3\xE\a\xE\x7F\n\xE\f\xE\xE\xE\x82\v\xE\x3\xE\x3\xE\a\xE" + + "\x86\n\xE\f\xE\xE\xE\x89\v\xE\x3\xE\x2\x2\x2\xF\x2\x2\x4\x2\x6\x2\b\x2" + + "\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x2\x6\x3\x2" + + "\x1E \x3\x2\x4\xF\x3\x2\x10\x1A\x3\x2!\"\x90\x2\x1C\x3\x2\x2\x2\x4\x1F" + + "\x3\x2\x2\x2\x6-\x3\x2\x2\x2\b/\x3\x2\x2\x2\n\x39\x3\x2\x2\x2\f<\x3\x2" + + "\x2\x2\xER\x3\x2\x2\x2\x10V\x3\x2\x2\x2\x12X\x3\x2\x2\x2\x14Z\x3\x2\x2" + + "\x2\x16v\x3\x2\x2\x2\x18y\x3\x2\x2\x2\x1A\x80\x3\x2\x2\x2\x1C\x1D\x5\x4" + + "\x3\x2\x1D\x1E\a\x2\x2\x3\x1E\x3\x3\x2\x2\x2\x1F \a\x1D\x2\x2 !\x5\x6" + + "\x4\x2!\"\a\x1D\x2\x2\"\x5\x3\x2\x2\x2#.\x5\b\x5\x2$.\x5\x16\f\x2%\'\x5" + + "\b\x5\x2&(\a#\x2\x2\'&\x3\x2\x2\x2()\x3\x2\x2\x2)\'\x3\x2\x2\x2)*\x3\x2" + + "\x2\x2*+\x3\x2\x2\x2+,\x5\x16\f\x2,.\x3\x2\x2\x2-#\x3\x2\x2\x2-$\x3\x2" + + "\x2\x2-%\x3\x2\x2\x2.\a\x3\x2\x2\x2/\x30\x5\n\x6\x2\x30\x31\x5\xE\b\x2" + + "\x31\x35\x5\n\x6\x2\x32\x33\x5\xE\b\x2\x33\x34\x5\n\x6\x2\x34\x36\x3\x2" + + "\x2\x2\x35\x32\x3\x2\x2\x2\x35\x36\x3\x2\x2\x2\x36\t\x3\x2\x2\x2\x37:" + + "\x5\f\a\x2\x38:\x5\x10\t\x2\x39\x37\x3\x2\x2\x2\x39\x38\x3\x2\x2\x2:\v" + + "\x3\x2\x2\x2;=\a$\x2\x2<;\x3\x2\x2\x2=>\x3\x2\x2\x2><\x3\x2\x2\x2>?\x3" + + "\x2\x2\x2?\r\x3\x2\x2\x2@\x42\a#\x2\x2\x41@\x3\x2\x2\x2\x42\x43\x3\x2" + + "\x2\x2\x43\x41\x3\x2\x2\x2\x43\x44\x3\x2\x2\x2\x44S\x3\x2\x2\x2\x45G\a" + + "#\x2\x2\x46\x45\x3\x2\x2\x2GJ\x3\x2\x2\x2H\x46\x3\x2\x2\x2HI\x3\x2\x2" + + "\x2IK\x3\x2\x2\x2JH\x3\x2\x2\x2KO\t\x2\x2\x2LN\a#\x2\x2ML\x3\x2\x2\x2" + + "NQ\x3\x2\x2\x2OM\x3\x2\x2\x2OP\x3\x2\x2\x2PS\x3\x2\x2\x2QO\x3\x2\x2\x2" + + "R\x41\x3\x2\x2\x2RH\x3\x2\x2\x2S\xF\x3\x2\x2\x2TW\x5\x12\n\x2UW\x5\x14" + + "\v\x2VT\x3\x2\x2\x2VU\x3\x2\x2\x2W\x11\x3\x2\x2\x2XY\t\x3\x2\x2Y\x13\x3" + + "\x2\x2\x2Z[\t\x4\x2\x2[\x15\x3\x2\x2\x2\\`\x5\x18\r\x2]_\a#\x2\x2^]\x3" + + "\x2\x2\x2_\x62\x3\x2\x2\x2`^\x3\x2\x2\x2`\x61\x3\x2\x2\x2\x61\x63\x3\x2" + + "\x2\x2\x62`\x3\x2\x2\x2\x63\x64\a\x3\x2\x2\x64w\x3\x2\x2\x2\x65\x66\x5" + + "\x18\r\x2\x66g\x5\x1A\xE\x2gk\x5\x18\r\x2hi\x5\x1A\xE\x2ij\x5\x18\r\x2" + + "jl\x3\x2\x2\x2kh\x3\x2\x2\x2kl\x3\x2\x2\x2lt\x3\x2\x2\x2mo\a#\x2\x2nm" + + "\x3\x2\x2\x2or\x3\x2\x2\x2pn\x3\x2\x2\x2pq\x3\x2\x2\x2qs\x3\x2\x2\x2r" + + "p\x3\x2\x2\x2su\a\x3\x2\x2tp\x3\x2\x2\x2tu\x3\x2\x2\x2uw\x3\x2\x2\x2v" + + "\\\x3\x2\x2\x2v\x65\x3\x2\x2\x2w\x17\x3\x2\x2\x2xz\a$\x2\x2yx\x3\x2\x2" + + "\x2z{\x3\x2\x2\x2{y\x3\x2\x2\x2{|\x3\x2\x2\x2|\x19\x3\x2\x2\x2}\x7F\a" + + "#\x2\x2~}\x3\x2\x2\x2\x7F\x82\x3\x2\x2\x2\x80~\x3\x2\x2\x2\x80\x81\x3" + + "\x2\x2\x2\x81\x83\x3\x2\x2\x2\x82\x80\x3\x2\x2\x2\x83\x87\t\x5\x2\x2\x84" + + "\x86\a#\x2\x2\x85\x84\x3\x2\x2\x2\x86\x89\x3\x2\x2\x2\x87\x85\x3\x2\x2" + + "\x2\x87\x88\x3\x2\x2\x2\x88\x1B\x3\x2\x2\x2\x89\x87\x3\x2\x2\x2\x14)-" + + "\x35\x39>\x43HORV`kptv{\x80\x87"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); + } } // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs index 3cb5e8a91a..65fb1c6cc2 100644 --- a/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs @@ -17,101 +17,110 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Date { -using Antlr4.Runtime.Misc; -using Antlr4.Runtime.Tree; -using IToken = Antlr4.Runtime.IToken; - -/// -/// This interface defines a complete generic visitor for a parse tree produced -/// by . -/// -/// The return type of the visit operation. -[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] -[System.CLSCompliant(false)] -public interface IVBADateVisitor : IParseTreeVisitor { - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDateValue([NotNull] VBADateParser.DateValueContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDateValuePart([NotNull] VBADateParser.DateValuePartContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMonthName([NotNull] VBADateParser.MonthNameContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDateLiteral([NotNull] VBADateParser.DateLiteralContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTimeValue([NotNull] VBADateParser.TimeValueContext context); -} +namespace Rubberduck.Parsing.Date +{ + using Antlr4.Runtime.Misc; + using Antlr4.Runtime.Tree; + using IToken = Antlr4.Runtime.IToken; + + /// + /// This interface defines a complete generic visitor for a parse tree produced + /// by . + /// + /// The return type of the visit operation. + [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] + [System.CLSCompliant(false)] + public interface IVBADateVisitor : IParseTreeVisitor + { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateValue([NotNull] VBADateParser.DateValueContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateSeparator([NotNull] VBADateParser.DateSeparatorContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEnglishMonthAbbreviation([NotNull] VBADateParser.EnglishMonthAbbreviationContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateOrTime([NotNull] VBADateParser.DateOrTimeContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEnglishMonthName([NotNull] VBADateParser.EnglishMonthNameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMonthName([NotNull] VBADateParser.MonthNameContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTimeSeparator([NotNull] VBADateParser.TimeSeparatorContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTimeValue([NotNull] VBADateParser.TimeValueContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCompilationUnit([NotNull] VBADateParser.CompilationUnitContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateValuePart([NotNull] VBADateParser.DateValuePartContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTimeValuePart([NotNull] VBADateParser.TimeValuePartContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateLiteral([NotNull] VBADateParser.DateLiteralContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateValueNumber([NotNull] VBADateParser.DateValueNumberContext context); + } } // namespace Rubberduck.Parsing.Date diff --git a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs index 0b840fd19c..f831d4df38 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs @@ -947,6 +947,9 @@ private object VisitDoubleLiteral(VBAConditionalCompilationParser.LiteralContext return decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float); } + /// + /// Interprets date tokens as defined in 3.3.3 Date Tokens of the VBA specification. + /// private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext context) { string literal = context.DATELITERAL().GetText(); @@ -1004,6 +1007,7 @@ private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext c else { var dateValue = dateOrTime.dateValue(); + var txt = dateOrTime.GetText(); var L = dateValue.dateValuePart()[0]; var M = dateValue.dateValuePart()[1]; VBADateParser.DateValuePartContext R = null; @@ -1011,7 +1015,8 @@ private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext c { R = dateValue.dateValuePart()[2]; } - if (L.DIGIT() != null && M.DIGIT() != null && R == null) + // "If L and M are numbers and R is not present:" + if (L.dateValueNumber() != null && M.dateValueNumber() != null && R == null) { var LNumber = int.Parse(L.GetText()); var MNumber = int.Parse(M.GetText()); @@ -1044,7 +1049,8 @@ private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext c throw new Exception("Invalid date: " + dateLiteral.GetText()); } } - else if ((L.DIGIT() != null && M.DIGIT() != null && R != null) && R.DIGIT() != null) + // "If L, M, and R are numbers:" + else if (L.dateValueNumber() != null && M.dateValueNumber() != null && R != null && R.dateValueNumber() != null) { var LNumber = int.Parse(L.GetText()); var MNumber = int.Parse(M.GetText()); @@ -1072,11 +1078,12 @@ private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext c throw new Exception("Invalid date: " + dateLiteral.GetText()); } } - else if ((L.DIGIT() == null || M.DIGIT() == null) && R == null) + // "If either L or M is not a number and R is not present:" + else if ((L.dateValueNumber() == null || M.dateValueNumber() == null) && R == null) { int N; string monthName; - if (L.DIGIT() != null) + if (L.dateValueNumber() != null) { N = int.Parse(L.GetText()); monthName = M.GetText(); @@ -1105,21 +1112,22 @@ private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext c { month = monthNameNumber; day = 1; - year = CY; + year = N; } } + // "Otherwise, R is present and one of L, M, and R is not a number:" else { int N1; int N2; string monthName; - if (L.DIGIT() == null) + if (L.dateValueNumber() == null) { monthName = L.GetText(); N1 = int.Parse(M.GetText()); N2 = int.Parse(R.GetText()); } - else if (M.DIGIT() == null) + else if (M.dateValueNumber() == null) { monthName = M.GetText(); N1 = int.Parse(L.GetText()); diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index 29139de408..e76482b407 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -993,12 +993,33 @@ public void TestDateLiteral() #Const b = #12-30-1900# #Const c = #12-30# #Const d = #12:00# +#Const e = #mar-1999# +#Const f = #2pm# +#Const g = #12-1999# +#Const h = #1999-11# +#Const i = #2010-may# +#Const j = #2010-july-15# +#Const k = #15:14:13# +#Const l = #15:14:13am# +#Const m = #12am# +#Const n = #12:13# "; var result = Preprocess(code); Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("a")); Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("b")); Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 30), result.Item1.Get("c")); Assert.AreEqual(new DateTime(1899, 12, 30, 12, 0, 0), result.Item1.Get("d")); + Assert.AreEqual(new DateTime(1999, 3, 1), result.Item1.Get("e")); + Assert.AreEqual(new DateTime(1899, 12, 30, 14, 0, 0), result.Item1.Get("f")); + Assert.AreEqual(new DateTime(1999, 12, 1, 0, 0, 0), result.Item1.Get("g")); + Assert.AreEqual(new DateTime(1999, 11, 1, 0, 0, 0), result.Item1.Get("h")); + Assert.AreEqual(new DateTime(2010, 5, 1, 0, 0, 0), result.Item1.Get("i")); + Assert.AreEqual(new DateTime(2010, 7, 15, 0, 0, 0), result.Item1.Get("j")); + Assert.AreEqual(new DateTime(1899, 12, 30, 15, 14, 13), result.Item1.Get("k")); + // "A element has no significance if the is greater than 12." + Assert.AreEqual(new DateTime(1899, 12, 30, 15, 14, 13), result.Item1.Get("l")); + Assert.AreEqual(new DateTime(1899, 12, 30, 0, 0, 0), result.Item1.Get("m")); + Assert.AreEqual(new DateTime(1899, 12, 30, 12, 13, 0), result.Item1.Get("n")); } [TestMethod] From 609f8f87600b012b050a4070aec0a79d812a1c1b Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Wed, 2 Mar 2016 21:03:35 +0100 Subject: [PATCH 05/17] fix like pattern special char bugs --- .../Preprocessing/VBAExpressionEvaluator.cs | 11 +- Rubberduck.Parsing/Preprocessing/VBALike.g4 | 10 +- .../Preprocessing/VBALikeBaseListener.cs | 26 ++ .../Preprocessing/VBALikeBaseVisitor.cs | 22 ++ .../Preprocessing/VBALikeLexer.cs | 23 +- .../Preprocessing/VBALikeListener.cs | 22 ++ .../Preprocessing/VBALikeParser.cs | 251 +++++++++++++----- .../Preprocessing/VBALikeVisitor.cs | 14 + Rubberduck.Parsing/Rubberduck.Parsing.csproj | 12 +- .../VBAPreprocessorVisitorTests.cs | 2 + 10 files changed, 299 insertions(+), 94 deletions(-) diff --git a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs index f831d4df38..60fc701b3f 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs @@ -491,9 +491,9 @@ private object VisitLike(VBAConditionalCompilationParser.CcExpressionContext con StringBuilder regexStr = new StringBuilder(); foreach (var element in likePattern.likePatternElement()) { - if (element.NORMALCHAR() != null) + if (element.likePatternChar() != null) { - regexStr.Append(element.NORMALCHAR().GetText()); + regexStr.Append(element.likePatternChar().GetText()); } else if (element.QUESTIONMARK() != null) { @@ -510,8 +510,11 @@ private object VisitLike(VBAConditionalCompilationParser.CcExpressionContext con else { var charlist = element.likePatternCharlist().GetText(); - var cleaned = charlist.Replace("[!", "[^"); - regexStr.Append(cleaned); + if (charlist.StartsWith("[!")) + { + charlist = "[^" + charlist.Substring(2); + } + regexStr.Append(charlist); } } // Full string match, e.g. "abcd" should NOT match "a.c" diff --git a/Rubberduck.Parsing/Preprocessing/VBALike.g4 b/Rubberduck.Parsing/Preprocessing/VBALike.g4 index d2ef633dd4..fe3cab5cfb 100644 --- a/Rubberduck.Parsing/Preprocessing/VBALike.g4 +++ b/Rubberduck.Parsing/Preprocessing/VBALike.g4 @@ -3,10 +3,12 @@ grammar VBALike; compilationUnit : likePatternString EOF; likePatternString : likePatternElement*; -likePatternElement : NORMALCHAR | QUESTIONMARK | HASH | STAR | likePatternCharlist; +likePatternElement : likePatternChar | QUESTIONMARK | HASH | STAR | likePatternCharlist; +likePatternChar : ~(QUESTIONMARK | HASH | STAR | L_SQUARE_BRACKET); likePatternCharlist : L_SQUARE_BRACKET EXCLAMATION? DASH? likePatternCharlistElement* DASH? R_SQUARE_BRACKET; -likePatternCharlistElement : NORMALCHAR | likePatternCharlistRange; -likePatternCharlistRange : NORMALCHAR DASH NORMALCHAR; +likePatternCharlistElement : likePatternCharlistChar | likePatternCharlistRange; +likePatternCharlistRange : likePatternCharlistChar DASH likePatternCharlistChar; +likePatternCharlistChar : ~(DASH | R_SQUARE_BRACKET); QUESTIONMARK : '?'; HASH : '#'; @@ -15,4 +17,4 @@ L_SQUARE_BRACKET : '['; R_SQUARE_BRACKET : ']'; DASH : '-'; EXCLAMATION : '!'; -NORMALCHAR : ~[?#*[\]-!]; \ No newline at end of file +ANYCHAR : .; \ No newline at end of file diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs b/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs index 0ab3054f94..c57544be26 100644 --- a/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs @@ -59,6 +59,19 @@ public virtual void EnterCompilationUnit([NotNull] VBALikeParser.CompilationUnit /// The parse tree. public virtual void ExitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -85,6 +98,19 @@ public virtual void EnterLikePatternElement([NotNull] VBALikeParser.LikePatternE /// The parse tree. public virtual void ExitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs index 9411cc514f..d85ae53cfb 100644 --- a/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.cs @@ -54,6 +54,17 @@ public partial class VBALikeBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -76,6 +87,17 @@ public partial class VBALikeBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs b/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs index bcad3d9ca7..af97b434df 100644 --- a/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs +++ b/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs @@ -28,7 +28,7 @@ namespace Rubberduck.Parsing.Like { public partial class VBALikeLexer : Lexer { public const int QUESTIONMARK=1, HASH=2, STAR=3, L_SQUARE_BRACKET=4, R_SQUARE_BRACKET=5, - DASH=6, EXCLAMATION=7, NORMALCHAR=8; + DASH=6, EXCLAMATION=7, ANYCHAR=8; public static string[] modeNames = { "DEFAULT_MODE" }; @@ -39,7 +39,7 @@ public const int }; public static readonly string[] ruleNames = { "QUESTIONMARK", "HASH", "STAR", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", - "DASH", "EXCLAMATION", "NORMALCHAR" + "DASH", "EXCLAMATION", "ANYCHAR" }; @@ -64,16 +64,15 @@ public VBALikeLexer(ICharStream input) "\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\x3\x2\x3\x2\x3\x3\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a"+ "\x3\a\x3\b\x3\b\x3\t\x3\t\x2\x2\x2\n\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6"+ - "\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x3\x2\x3\x6\x2%%,,\x41\x41]^\"\x2\x3\x3"+ - "\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3"+ - "\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x3\x13"+ - "\x3\x2\x2\x2\x5\x15\x3\x2\x2\x2\a\x17\x3\x2\x2\x2\t\x19\x3\x2\x2\x2\v"+ - "\x1B\x3\x2\x2\x2\r\x1D\x3\x2\x2\x2\xF\x1F\x3\x2\x2\x2\x11!\x3\x2\x2\x2"+ - "\x13\x14\a\x41\x2\x2\x14\x4\x3\x2\x2\x2\x15\x16\a%\x2\x2\x16\x6\x3\x2"+ - "\x2\x2\x17\x18\a,\x2\x2\x18\b\x3\x2\x2\x2\x19\x1A\a]\x2\x2\x1A\n\x3\x2"+ - "\x2\x2\x1B\x1C\a_\x2\x2\x1C\f\x3\x2\x2\x2\x1D\x1E\a/\x2\x2\x1E\xE\x3\x2"+ - "\x2\x2\x1F \a#\x2\x2 \x10\x3\x2\x2\x2!\"\n\x2\x2\x2\"\x12\x3\x2\x2\x2"+ - "\x3\x2\x2"; + "\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x3\x2\x2\"\x2\x3\x3\x2\x2\x2\x2\x5\x3"+ + "\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2"+ + "\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x3\x13\x3\x2\x2\x2\x5\x15"+ + "\x3\x2\x2\x2\a\x17\x3\x2\x2\x2\t\x19\x3\x2\x2\x2\v\x1B\x3\x2\x2\x2\r\x1D"+ + "\x3\x2\x2\x2\xF\x1F\x3\x2\x2\x2\x11!\x3\x2\x2\x2\x13\x14\a\x41\x2\x2\x14"+ + "\x4\x3\x2\x2\x2\x15\x16\a%\x2\x2\x16\x6\x3\x2\x2\x2\x17\x18\a,\x2\x2\x18"+ + "\b\x3\x2\x2\x2\x19\x1A\a]\x2\x2\x1A\n\x3\x2\x2\x2\x1B\x1C\a_\x2\x2\x1C"+ + "\f\x3\x2\x2\x2\x1D\x1E\a/\x2\x2\x1E\xE\x3\x2\x2\x2\x1F \a#\x2\x2 \x10"+ + "\x3\x2\x2\x2!\"\v\x2\x2\x2\"\x12\x3\x2\x2\x2\x3\x2\x2"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs b/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs index 25101f3f82..4093525946 100644 --- a/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs @@ -51,6 +51,17 @@ public interface IVBALikeListener : IParseTreeListener { /// The parse tree. void ExitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext context); + /// /// Enter a parse tree produced by . /// @@ -73,6 +84,17 @@ public interface IVBALikeListener : IParseTreeListener { /// The parse tree. void ExitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext context); + /// /// Enter a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs b/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs index 7377df8a8b..d4797695da 100644 --- a/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs +++ b/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs @@ -30,16 +30,18 @@ namespace Rubberduck.Parsing.Like { public partial class VBALikeParser : Parser { public const int QUESTIONMARK=1, HASH=2, STAR=3, L_SQUARE_BRACKET=4, R_SQUARE_BRACKET=5, - DASH=6, EXCLAMATION=7, NORMALCHAR=8; + DASH=6, EXCLAMATION=7, ANYCHAR=8; public static readonly string[] tokenNames = { - "", "'?'", "'#'", "'*'", "'['", "']'", "'-'", "'!'", "NORMALCHAR" + "", "'?'", "'#'", "'*'", "'['", "']'", "'-'", "'!'", "ANYCHAR" }; public const int RULE_compilationUnit = 0, RULE_likePatternString = 1, RULE_likePatternElement = 2, - RULE_likePatternCharlist = 3, RULE_likePatternCharlistElement = 4, RULE_likePatternCharlistRange = 5; + RULE_likePatternChar = 3, RULE_likePatternCharlist = 4, RULE_likePatternCharlistElement = 5, + RULE_likePatternCharlistRange = 6, RULE_likePatternCharlistChar = 7; public static readonly string[] ruleNames = { - "compilationUnit", "likePatternString", "likePatternElement", "likePatternCharlist", - "likePatternCharlistElement", "likePatternCharlistRange" + "compilationUnit", "likePatternString", "likePatternElement", "likePatternChar", + "likePatternCharlist", "likePatternCharlistElement", "likePatternCharlistRange", + "likePatternCharlistChar" }; public override string GrammarFileName { get { return "VBALike.g4"; } } @@ -87,8 +89,8 @@ public CompilationUnitContext compilationUnit() { try { EnterOuterAlt(_localctx, 1); { - State = 12; likePatternString(); - State = 13; Match(Eof); + State = 16; likePatternString(); + State = 17; Match(Eof); } } catch (RecognitionException re) { @@ -137,16 +139,16 @@ public LikePatternStringContext likePatternString() { try { EnterOuterAlt(_localctx, 1); { - State = 18; + State = 22; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << QUESTIONMARK) | (1L << HASH) | (1L << STAR) | (1L << L_SQUARE_BRACKET) | (1L << NORMALCHAR))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << QUESTIONMARK) | (1L << HASH) | (1L << STAR) | (1L << L_SQUARE_BRACKET) | (1L << R_SQUARE_BRACKET) | (1L << DASH) | (1L << EXCLAMATION) | (1L << ANYCHAR))) != 0)) { { { - State = 15; likePatternElement(); + State = 19; likePatternElement(); } } - State = 20; + State = 24; _errHandler.Sync(this); _la = _input.La(1); } @@ -165,7 +167,9 @@ public LikePatternStringContext likePatternString() { public partial class LikePatternElementContext : ParserRuleContext { public ITerminalNode QUESTIONMARK() { return GetToken(VBALikeParser.QUESTIONMARK, 0); } - public ITerminalNode NORMALCHAR() { return GetToken(VBALikeParser.NORMALCHAR, 0); } + public LikePatternCharContext likePatternChar() { + return GetRuleContext(0); + } public ITerminalNode STAR() { return GetToken(VBALikeParser.STAR, 0); } public LikePatternCharlistContext likePatternCharlist() { return GetRuleContext(0); @@ -196,36 +200,39 @@ public LikePatternElementContext likePatternElement() { LikePatternElementContext _localctx = new LikePatternElementContext(_ctx, State); EnterRule(_localctx, 4, RULE_likePatternElement); try { - State = 26; + State = 30; switch (_input.La(1)) { - case NORMALCHAR: + case R_SQUARE_BRACKET: + case DASH: + case EXCLAMATION: + case ANYCHAR: EnterOuterAlt(_localctx, 1); { - State = 21; Match(NORMALCHAR); + State = 25; likePatternChar(); } break; case QUESTIONMARK: EnterOuterAlt(_localctx, 2); { - State = 22; Match(QUESTIONMARK); + State = 26; Match(QUESTIONMARK); } break; case HASH: EnterOuterAlt(_localctx, 3); { - State = 23; Match(HASH); + State = 27; Match(HASH); } break; case STAR: EnterOuterAlt(_localctx, 4); { - State = 24; Match(STAR); + State = 28; Match(STAR); } break; case L_SQUARE_BRACKET: EnterOuterAlt(_localctx, 5); { - State = 25; likePatternCharlist(); + State = 29; likePatternCharlist(); } break; default: @@ -243,6 +250,58 @@ public LikePatternElementContext likePatternElement() { return _localctx; } + public partial class LikePatternCharContext : ParserRuleContext { + public ITerminalNode QUESTIONMARK() { return GetToken(VBALikeParser.QUESTIONMARK, 0); } + public ITerminalNode STAR() { return GetToken(VBALikeParser.STAR, 0); } + public ITerminalNode L_SQUARE_BRACKET() { return GetToken(VBALikeParser.L_SQUARE_BRACKET, 0); } + public ITerminalNode HASH() { return GetToken(VBALikeParser.HASH, 0); } + public LikePatternCharContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_likePatternChar; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterLikePatternChar(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitLikePatternChar(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitLikePatternChar(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LikePatternCharContext likePatternChar() { + LikePatternCharContext _localctx = new LikePatternCharContext(_ctx, State); + EnterRule(_localctx, 6, RULE_likePatternChar); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 32; + _la = _input.La(1); + if ( _la <= 0 || ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << QUESTIONMARK) | (1L << HASH) | (1L << STAR) | (1L << L_SQUARE_BRACKET))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + public partial class LikePatternCharlistContext : ParserRuleContext { public LikePatternCharlistElementContext likePatternCharlistElement(int i) { return GetRuleContext(i); @@ -280,50 +339,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LikePatternCharlistContext likePatternCharlist() { LikePatternCharlistContext _localctx = new LikePatternCharlistContext(_ctx, State); - EnterRule(_localctx, 6, RULE_likePatternCharlist); + EnterRule(_localctx, 8, RULE_likePatternCharlist); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 28; Match(L_SQUARE_BRACKET); - State = 30; - _la = _input.La(1); - if (_la==EXCLAMATION) { + State = 34; Match(L_SQUARE_BRACKET); + State = 36; + switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { + case 1: { - State = 29; Match(EXCLAMATION); + State = 35; Match(EXCLAMATION); } + break; } - - State = 33; + State = 39; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 32; Match(DASH); + State = 38; Match(DASH); } break; } - State = 38; + State = 44; _errHandler.Sync(this); _la = _input.La(1); - while (_la==NORMALCHAR) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << QUESTIONMARK) | (1L << HASH) | (1L << STAR) | (1L << L_SQUARE_BRACKET) | (1L << EXCLAMATION) | (1L << ANYCHAR))) != 0)) { { { - State = 35; likePatternCharlistElement(); + State = 41; likePatternCharlistElement(); } } - State = 40; + State = 46; _errHandler.Sync(this); _la = _input.La(1); } - State = 42; + State = 48; _la = _input.La(1); if (_la==DASH) { { - State = 41; Match(DASH); + State = 47; Match(DASH); } } - State = 44; Match(R_SQUARE_BRACKET); + State = 50; Match(R_SQUARE_BRACKET); } } catch (RecognitionException re) { @@ -338,7 +397,9 @@ public LikePatternCharlistContext likePatternCharlist() { } public partial class LikePatternCharlistElementContext : ParserRuleContext { - public ITerminalNode NORMALCHAR() { return GetToken(VBALikeParser.NORMALCHAR, 0); } + public LikePatternCharlistCharContext likePatternCharlistChar() { + return GetRuleContext(0); + } public LikePatternCharlistRangeContext likePatternCharlistRange() { return GetRuleContext(0); } @@ -365,21 +426,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LikePatternCharlistElementContext likePatternCharlistElement() { LikePatternCharlistElementContext _localctx = new LikePatternCharlistElementContext(_ctx, State); - EnterRule(_localctx, 8, RULE_likePatternCharlistElement); + EnterRule(_localctx, 10, RULE_likePatternCharlistElement); try { - State = 48; + State = 54; switch ( Interpreter.AdaptivePredict(_input,6,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 46; Match(NORMALCHAR); + State = 52; likePatternCharlistChar(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 47; likePatternCharlistRange(); + State = 53; likePatternCharlistRange(); } break; } @@ -396,10 +457,12 @@ public LikePatternCharlistElementContext likePatternCharlistElement() { } public partial class LikePatternCharlistRangeContext : ParserRuleContext { - public ITerminalNode NORMALCHAR(int i) { - return GetToken(VBALikeParser.NORMALCHAR, i); + public LikePatternCharlistCharContext likePatternCharlistChar(int i) { + return GetRuleContext(i); + } + public IReadOnlyList likePatternCharlistChar() { + return GetRuleContexts(); } - public IReadOnlyList NORMALCHAR() { return GetTokens(VBALikeParser.NORMALCHAR); } public ITerminalNode DASH() { return GetToken(VBALikeParser.DASH, 0); } public LikePatternCharlistRangeContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) @@ -424,13 +487,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LikePatternCharlistRangeContext likePatternCharlistRange() { LikePatternCharlistRangeContext _localctx = new LikePatternCharlistRangeContext(_ctx, State); - EnterRule(_localctx, 10, RULE_likePatternCharlistRange); + EnterRule(_localctx, 12, RULE_likePatternCharlistRange); try { EnterOuterAlt(_localctx, 1); { - State = 50; Match(NORMALCHAR); - State = 51; Match(DASH); - State = 52; Match(NORMALCHAR); + State = 56; likePatternCharlistChar(); + State = 57; Match(DASH); + State = 58; likePatternCharlistChar(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LikePatternCharlistCharContext : ParserRuleContext { + public ITerminalNode DASH() { return GetToken(VBALikeParser.DASH, 0); } + public ITerminalNode R_SQUARE_BRACKET() { return GetToken(VBALikeParser.R_SQUARE_BRACKET, 0); } + public LikePatternCharlistCharContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_likePatternCharlistChar; } } + public override void EnterRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.EnterLikePatternCharlistChar(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBALikeListener typedListener = listener as IVBALikeListener; + if (typedListener != null) typedListener.ExitLikePatternCharlistChar(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBALikeVisitor typedVisitor = visitor as IVBALikeVisitor; + if (typedVisitor != null) return typedVisitor.VisitLikePatternCharlistChar(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LikePatternCharlistCharContext likePatternCharlistChar() { + LikePatternCharlistCharContext _localctx = new LikePatternCharlistCharContext(_ctx, State); + EnterRule(_localctx, 14, RULE_likePatternCharlistChar); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 60; + _la = _input.La(1); + if ( _la <= 0 || (_la==R_SQUARE_BRACKET || _la==DASH) ) { + _errHandler.RecoverInline(this); + } + Consume(); } } catch (RecognitionException re) { @@ -445,27 +558,29 @@ public LikePatternCharlistRangeContext likePatternCharlistRange() { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\n\x39\x4\x2\t\x2"+ - "\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x3\x2\x3\x2\x3\x2"+ - "\x3\x3\a\x3\x13\n\x3\f\x3\xE\x3\x16\v\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4"+ - "\x5\x4\x1D\n\x4\x3\x5\x3\x5\x5\x5!\n\x5\x3\x5\x5\x5$\n\x5\x3\x5\a\x5\'"+ - "\n\x5\f\x5\xE\x5*\v\x5\x3\x5\x5\x5-\n\x5\x3\x5\x3\x5\x3\x6\x3\x6\x5\x6"+ - "\x33\n\x6\x3\a\x3\a\x3\a\x3\a\x3\a\x2\x2\x2\b\x2\x2\x4\x2\x6\x2\b\x2\n"+ - "\x2\f\x2\x2\x2<\x2\xE\x3\x2\x2\x2\x4\x14\x3\x2\x2\x2\x6\x1C\x3\x2\x2\x2"+ - "\b\x1E\x3\x2\x2\x2\n\x32\x3\x2\x2\x2\f\x34\x3\x2\x2\x2\xE\xF\x5\x4\x3"+ - "\x2\xF\x10\a\x2\x2\x3\x10\x3\x3\x2\x2\x2\x11\x13\x5\x6\x4\x2\x12\x11\x3"+ - "\x2\x2\x2\x13\x16\x3\x2\x2\x2\x14\x12\x3\x2\x2\x2\x14\x15\x3\x2\x2\x2"+ - "\x15\x5\x3\x2\x2\x2\x16\x14\x3\x2\x2\x2\x17\x1D\a\n\x2\x2\x18\x1D\a\x3"+ - "\x2\x2\x19\x1D\a\x4\x2\x2\x1A\x1D\a\x5\x2\x2\x1B\x1D\x5\b\x5\x2\x1C\x17"+ - "\x3\x2\x2\x2\x1C\x18\x3\x2\x2\x2\x1C\x19\x3\x2\x2\x2\x1C\x1A\x3\x2\x2"+ - "\x2\x1C\x1B\x3\x2\x2\x2\x1D\a\x3\x2\x2\x2\x1E \a\x6\x2\x2\x1F!\a\t\x2"+ - "\x2 \x1F\x3\x2\x2\x2 !\x3\x2\x2\x2!#\x3\x2\x2\x2\"$\a\b\x2\x2#\"\x3\x2"+ - "\x2\x2#$\x3\x2\x2\x2$(\x3\x2\x2\x2%\'\x5\n\x6\x2&%\x3\x2\x2\x2\'*\x3\x2"+ - "\x2\x2(&\x3\x2\x2\x2()\x3\x2\x2\x2),\x3\x2\x2\x2*(\x3\x2\x2\x2+-\a\b\x2"+ - "\x2,+\x3\x2\x2\x2,-\x3\x2\x2\x2-.\x3\x2\x2\x2./\a\a\x2\x2/\t\x3\x2\x2"+ - "\x2\x30\x33\a\n\x2\x2\x31\x33\x5\f\a\x2\x32\x30\x3\x2\x2\x2\x32\x31\x3"+ - "\x2\x2\x2\x33\v\x3\x2\x2\x2\x34\x35\a\n\x2\x2\x35\x36\a\b\x2\x2\x36\x37"+ - "\a\n\x2\x2\x37\r\x3\x2\x2\x2\t\x14\x1C #(,\x32"; + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\n\x41\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\x3\x2\x3\x2\x3\x2\x3\x3\a\x3\x17\n\x3\f\x3\xE\x3\x1A\v\x3\x3\x4\x3"+ + "\x4\x3\x4\x3\x4\x3\x4\x5\x4!\n\x4\x3\x5\x3\x5\x3\x6\x3\x6\x5\x6\'\n\x6"+ + "\x3\x6\x5\x6*\n\x6\x3\x6\a\x6-\n\x6\f\x6\xE\x6\x30\v\x6\x3\x6\x5\x6\x33"+ + "\n\x6\x3\x6\x3\x6\x3\a\x3\a\x5\a\x39\n\a\x3\b\x3\b\x3\b\x3\b\x3\t\x3\t"+ + "\x3\t\x2\x2\x2\n\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x2\x4\x3"+ + "\x2\x3\x6\x3\x2\a\b\x42\x2\x12\x3\x2\x2\x2\x4\x18\x3\x2\x2\x2\x6 \x3\x2"+ + "\x2\x2\b\"\x3\x2\x2\x2\n$\x3\x2\x2\x2\f\x38\x3\x2\x2\x2\xE:\x3\x2\x2\x2"+ + "\x10>\x3\x2\x2\x2\x12\x13\x5\x4\x3\x2\x13\x14\a\x2\x2\x3\x14\x3\x3\x2"+ + "\x2\x2\x15\x17\x5\x6\x4\x2\x16\x15\x3\x2\x2\x2\x17\x1A\x3\x2\x2\x2\x18"+ + "\x16\x3\x2\x2\x2\x18\x19\x3\x2\x2\x2\x19\x5\x3\x2\x2\x2\x1A\x18\x3\x2"+ + "\x2\x2\x1B!\x5\b\x5\x2\x1C!\a\x3\x2\x2\x1D!\a\x4\x2\x2\x1E!\a\x5\x2\x2"+ + "\x1F!\x5\n\x6\x2 \x1B\x3\x2\x2\x2 \x1C\x3\x2\x2\x2 \x1D\x3\x2\x2\x2 \x1E"+ + "\x3\x2\x2\x2 \x1F\x3\x2\x2\x2!\a\x3\x2\x2\x2\"#\n\x2\x2\x2#\t\x3\x2\x2"+ + "\x2$&\a\x6\x2\x2%\'\a\t\x2\x2&%\x3\x2\x2\x2&\'\x3\x2\x2\x2\')\x3\x2\x2"+ + "\x2(*\a\b\x2\x2)(\x3\x2\x2\x2)*\x3\x2\x2\x2*.\x3\x2\x2\x2+-\x5\f\a\x2"+ + ",+\x3\x2\x2\x2-\x30\x3\x2\x2\x2.,\x3\x2\x2\x2./\x3\x2\x2\x2/\x32\x3\x2"+ + "\x2\x2\x30.\x3\x2\x2\x2\x31\x33\a\b\x2\x2\x32\x31\x3\x2\x2\x2\x32\x33"+ + "\x3\x2\x2\x2\x33\x34\x3\x2\x2\x2\x34\x35\a\a\x2\x2\x35\v\x3\x2\x2\x2\x36"+ + "\x39\x5\x10\t\x2\x37\x39\x5\xE\b\x2\x38\x36\x3\x2\x2\x2\x38\x37\x3\x2"+ + "\x2\x2\x39\r\x3\x2\x2\x2:;\x5\x10\t\x2;<\a\b\x2\x2<=\x5\x10\t\x2=\xF\x3"+ + "\x2\x2\x2>?\n\x3\x2\x2?\x11\x3\x2\x2\x2\t\x18 &).\x32\x38"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs index 308001a43c..349e4c813f 100644 --- a/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs @@ -44,6 +44,13 @@ public interface IVBALikeVisitor : IParseTreeVisitor { /// The visitor result. Result VisitCompilationUnit([NotNull] VBALikeParser.CompilationUnitContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext context); + /// /// Visit a parse tree produced by . /// @@ -58,6 +65,13 @@ public interface IVBALikeVisitor : IParseTreeVisitor { /// The visitor result. Result VisitLikePatternElement([NotNull] VBALikeParser.LikePatternElementContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext context); + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 9daf9c6dfc..781050918a 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -80,6 +80,12 @@ + + + + + + @@ -93,12 +99,6 @@ - - - - - - diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index e76482b407..dda0542575 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -409,6 +409,7 @@ public void TestLikeOperator() #Const j = ""a"" Like ""[0-9]"" #Const k = Empty Like """" #Const l = Nothing Like """" +#Const m = ""]*!"" Like ""][*a[!][a[!]"" "; var result = Preprocess(code); Assert.AreEqual(true, result.Item1.Get("a")); @@ -423,6 +424,7 @@ public void TestLikeOperator() Assert.AreEqual(false, result.Item1.Get("j")); Assert.AreEqual(true, result.Item1.Get("k")); Assert.AreEqual(null, result.Item1.Get("l")); + Assert.AreEqual(true, result.Item1.Get("m")); } [TestMethod] From 8ed900e29b82aac8142e077bff71ccd36db25a13 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Wed, 2 Mar 2016 21:43:56 +0100 Subject: [PATCH 06/17] remove macro/compilation directives (removed by preprocessor) --- Rubberduck.Parsing/Grammar/VBA.g4 | 31 - Rubberduck.Parsing/Grammar/VBABaseListener.cs | 4532 +- Rubberduck.Parsing/Grammar/VBABaseVisitor.cs | 3816 +- Rubberduck.Parsing/Grammar/VBALexer.cs | 2344 +- Rubberduck.Parsing/Grammar/VBAListener.cs | 3942 +- Rubberduck.Parsing/Grammar/VBAParser.cs | 34893 +++++++--------- Rubberduck.Parsing/Grammar/VBAVisitor.cs | 2502 +- 7 files changed, 24352 insertions(+), 27708 deletions(-) diff --git a/Rubberduck.Parsing/Grammar/VBA.g4 b/Rubberduck.Parsing/Grammar/VBA.g4 index 66e751839b..6bf4433228 100644 --- a/Rubberduck.Parsing/Grammar/VBA.g4 +++ b/Rubberduck.Parsing/Grammar/VBA.g4 @@ -67,13 +67,8 @@ moduleDeclarationsElement : | variableStmt | moduleOption | typeStmt - | macroStmt ; -macroStmt : - macroConstStmt - | macroIfThenElseStmt; - moduleBody : moduleBodyElement (endOfStatement moduleBodyElement)* endOfStatement; @@ -83,7 +78,6 @@ moduleBodyElement : | propertySetStmt | propertyLetStmt | subStmt - | macroStmt ; @@ -126,7 +120,6 @@ blockStmt : | loadStmt | lockStmt | lsetStmt - | macroStmt | midStmt | mkdirStmt | nameStmt @@ -291,25 +284,6 @@ lockStmt : LOCK WS valueStmt (WS? ',' WS? valueStmt (WS TO WS valueStmt)?)?; lsetStmt : LSET WS implicitCallStmt_InStmt WS? EQ WS? valueStmt; -macroConstStmt : MACRO_CONST WS? ambiguousIdentifier WS? EQ WS? valueStmt; - -macroIfThenElseStmt : macroIfBlockStmt macroElseIfBlockStmt* macroElseBlockStmt? MACRO_END_IF; - -macroIfBlockStmt : - MACRO_IF WS? ifConditionStmt WS THEN endOfStatement - (moduleDeclarations | moduleBody | block)* -; - -macroElseIfBlockStmt : - MACRO_ELSEIF WS? ifConditionStmt WS THEN endOfStatement - (moduleDeclarations | moduleBody | block)* -; - -macroElseBlockStmt : - MACRO_ELSE endOfStatement - (moduleDeclarations | moduleBody | block)* -; - midStmt : MID WS? LPAREN WS? argsCall WS? RPAREN; mkdirStmt : MKDIR WS valueStmt; @@ -725,11 +699,6 @@ LOCK_READ : L O C K WS R E A D; LOCK_WRITE : L O C K WS W R I T E; LOCK_READ_WRITE : L O C K WS R E A D WS W R I T E; LSET : L S E T; -MACRO_CONST : '#' C O N S T; -MACRO_IF : '#' I F; -MACRO_ELSEIF : '#' E L S E I F; -MACRO_ELSE : '#' E L S E; -MACRO_END_IF : '#' E N D WS? I F; ME : M E; MID : M I D; MKDIR : M K D I R; diff --git a/Rubberduck.Parsing/Grammar/VBABaseListener.cs b/Rubberduck.Parsing/Grammar/VBABaseListener.cs index 499ebce2be..f43d8e3dc4 100644 --- a/Rubberduck.Parsing/Grammar/VBABaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBABaseListener.cs @@ -17,2310 +17,2230 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Grammar -{ - - 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.3")] - [System.CLSCompliant(false)] - public partial class VBABaseListener : IVBAListener - { - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSeekStmt([NotNull] VBAParser.SeekStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSeekStmt([NotNull] VBAParser.SeekStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterFileNumber([NotNull] VBAParser.FileNumberContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitFileNumber([NotNull] VBAParser.FileNumberContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterConstStmt([NotNull] VBAParser.ConstStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterType([NotNull] VBAParser.TypeContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitType([NotNull] VBAParser.TypeContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRsetStmt([NotNull] VBAParser.RsetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRsetStmt([NotNull] VBAParser.RsetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterInputStmt([NotNull] VBAParser.InputStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitInputStmt([NotNull] VBAParser.InputStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsAdd([NotNull] VBAParser.VsAddContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsAdd([NotNull] VBAParser.VsAddContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLsetStmt([NotNull] VBAParser.LsetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLsetStmt([NotNull] VBAParser.LsetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDeclareStmt([NotNull] VBAParser.DeclareStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterResetStmt([NotNull] VBAParser.ResetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitResetStmt([NotNull] VBAParser.ResetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsNew([NotNull] VBAParser.VsNewContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsNew([NotNull] VBAParser.VsNewContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRemComment([NotNull] VBAParser.RemCommentContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRemComment([NotNull] VBAParser.RemCommentContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTimeStmt([NotNull] VBAParser.TimeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTimeStmt([NotNull] VBAParser.TimeStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterBlock([NotNull] VBAParser.BlockContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitBlock([NotNull] VBAParser.BlockContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSetStmt([NotNull] VBAParser.SetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSetStmt([NotNull] VBAParser.SetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsNegation([NotNull] VBAParser.VsNegationContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsNegation([NotNull] VBAParser.VsNegationContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterFieldLength([NotNull] VBAParser.FieldLengthContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitFieldLength([NotNull] VBAParser.FieldLengthContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterGoSubStmt([NotNull] VBAParser.GoSubStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterAttributeStmt([NotNull] VBAParser.AttributeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModule([NotNull] VBAParser.ModuleContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModule([NotNull] VBAParser.ModuleContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterComplexType([NotNull] VBAParser.ComplexTypeContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitComplexType([NotNull] VBAParser.ComplexTypeContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleHeader([NotNull] VBAParser.ModuleHeaderContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsICS([NotNull] VBAParser.VsICSContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsICS([NotNull] VBAParser.VsICSContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOutputList([NotNull] VBAParser.OutputListContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOutputList([NotNull] VBAParser.OutputListContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsIntDiv([NotNull] VBAParser.VsIntDivContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsIntDiv([NotNull] VBAParser.VsIntDivContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleBody([NotNull] VBAParser.ModuleBodyContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleBody([NotNull] VBAParser.ModuleBodyContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterWidthStmt([NotNull] VBAParser.WidthStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitWidthStmt([NotNull] VBAParser.WidthStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterWithStmt([NotNull] VBAParser.WithStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitWithStmt([NotNull] VBAParser.WithStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterArgCall([NotNull] VBAParser.ArgCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitArgCall([NotNull] VBAParser.ArgCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterNameStmt([NotNull] VBAParser.NameStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitNameStmt([NotNull] VBAParser.NameStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTypeHint([NotNull] VBAParser.TypeHintContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTypeHint([NotNull] VBAParser.TypeHintContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDateStmt([NotNull] VBAParser.DateStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDateStmt([NotNull] VBAParser.DateStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEndOfStatement([NotNull] VBAParser.EndOfStatementContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRedimStmt([NotNull] VBAParser.RedimStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRedimStmt([NotNull] VBAParser.RedimStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLiteral([NotNull] VBAParser.LiteralContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLiteral([NotNull] VBAParser.LiteralContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterErrorStmt([NotNull] VBAParser.ErrorStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitErrorStmt([NotNull] VBAParser.ErrorStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsAddressOf([NotNull] VBAParser.VsAddressOfContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterArg([NotNull] VBAParser.ArgContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitArg([NotNull] VBAParser.ArgContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsMult([NotNull] VBAParser.VsMultContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsMult([NotNull] VBAParser.VsMultContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEventStmt([NotNull] VBAParser.EventStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEventStmt([NotNull] VBAParser.EventStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLockStmt([NotNull] VBAParser.LockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLockStmt([NotNull] VBAParser.LockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsNot([NotNull] VBAParser.VsNotContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsNot([NotNull] VBAParser.VsNotContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEndOfLine([NotNull] VBAParser.EndOfLineContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEndOfLine([NotNull] VBAParser.EndOfLineContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterStartRule([NotNull] VBAParser.StartRuleContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitStartRule([NotNull] VBAParser.StartRuleContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterWriteStmt([NotNull] VBAParser.WriteStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitWriteStmt([NotNull] VBAParser.WriteStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsAnd([NotNull] VBAParser.VsAndContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsAnd([NotNull] VBAParser.VsAndContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEndStmt([NotNull] VBAParser.EndStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEndStmt([NotNull] VBAParser.EndStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsAmp([NotNull] VBAParser.VsAmpContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsAmp([NotNull] VBAParser.VsAmpContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterForNextStmt([NotNull] VBAParser.ForNextStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitForNextStmt([NotNull] VBAParser.ForNextStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCaseCondTo([NotNull] VBAParser.CaseCondToContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCaseCondTo([NotNull] VBAParser.CaseCondToContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsImp([NotNull] VBAParser.VsImpContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsImp([NotNull] VBAParser.VsImpContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterExitStmt([NotNull] VBAParser.ExitStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitExitStmt([NotNull] VBAParser.ExitStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterArgList([NotNull] VBAParser.ArgListContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitArgList([NotNull] VBAParser.ArgListContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsStruct([NotNull] VBAParser.VsStructContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsStruct([NotNull] VBAParser.VsStructContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSubscripts([NotNull] VBAParser.SubscriptsContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSubscripts([NotNull] VBAParser.SubscriptsContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLetterrange([NotNull] VBAParser.LetterrangeContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLetterrange([NotNull] VBAParser.LetterrangeContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLetStmt([NotNull] VBAParser.LetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLetStmt([NotNull] VBAParser.LetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSubStmt([NotNull] VBAParser.SubStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSubStmt([NotNull] VBAParser.SubStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsRelational([NotNull] VBAParser.VsRelationalContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsRelational([NotNull] VBAParser.VsRelationalContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLineInputStmt([NotNull] VBAParser.LineInputStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTypeStmt([NotNull] VBAParser.TypeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTypeStmt([NotNull] VBAParser.TypeStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPutStmt([NotNull] VBAParser.PutStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPutStmt([NotNull] VBAParser.PutStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsAssign([NotNull] VBAParser.VsAssignContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsAssign([NotNull] VBAParser.VsAssignContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVariableStmt([NotNull] VBAParser.VariableStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSubscript([NotNull] VBAParser.SubscriptContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSubscript([NotNull] VBAParser.SubscriptContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVisibility([NotNull] VBAParser.VisibilityContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVisibility([NotNull] VBAParser.VisibilityContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterBeepStmt([NotNull] VBAParser.BeepStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitBeepStmt([NotNull] VBAParser.BeepStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsTypeOf([NotNull] VBAParser.VsTypeOfContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCaseCondValue([NotNull] VBAParser.CaseCondValueContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterReturnStmt([NotNull] VBAParser.ReturnStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitReturnStmt([NotNull] VBAParser.ReturnStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsMod([NotNull] VBAParser.VsModContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsMod([NotNull] VBAParser.VsModContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterKillStmt([NotNull] VBAParser.KillStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitKillStmt([NotNull] VBAParser.KillStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsOr([NotNull] VBAParser.VsOrContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsOr([NotNull] VBAParser.VsOrContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterGetStmt([NotNull] VBAParser.GetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitGetStmt([NotNull] VBAParser.GetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLineLabel([NotNull] VBAParser.LineLabelContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLineLabel([NotNull] VBAParser.LineLabelContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCaseCondIs([NotNull] VBAParser.CaseCondIsContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterArgsCall([NotNull] VBAParser.ArgsCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitArgsCall([NotNull] VBAParser.ArgsCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLoadStmt([NotNull] VBAParser.LoadStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLoadStmt([NotNull] VBAParser.LoadStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterBaseType([NotNull] VBAParser.BaseTypeContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitBaseType([NotNull] VBAParser.BaseTypeContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterOpenStmt([NotNull] VBAParser.OpenStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitOpenStmt([NotNull] VBAParser.OpenStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterCloseStmt([NotNull] VBAParser.CloseStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitCloseStmt([NotNull] VBAParser.CloseStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterStopStmt([NotNull] VBAParser.StopStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitStopStmt([NotNull] VBAParser.StopStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSC_Case([NotNull] VBAParser.SC_CaseContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSC_Case([NotNull] VBAParser.SC_CaseContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterUnlockStmt([NotNull] VBAParser.UnlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsXor([NotNull] VBAParser.VsXorContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsXor([NotNull] VBAParser.VsXorContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterGoToStmt([NotNull] VBAParser.GoToStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitGoToStmt([NotNull] VBAParser.GoToStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMidStmt([NotNull] VBAParser.MidStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMidStmt([NotNull] VBAParser.MidStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsPow([NotNull] VBAParser.VsPowContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsPow([NotNull] VBAParser.VsPowContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterPrintStmt([NotNull] VBAParser.PrintStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitPrintStmt([NotNull] VBAParser.PrintStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleConfig([NotNull] VBAParser.ModuleConfigContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleConfig([NotNull] VBAParser.ModuleConfigContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterBlockStmt([NotNull] VBAParser.BlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitBlockStmt([NotNull] VBAParser.BlockStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEraseStmt([NotNull] VBAParser.EraseStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEraseStmt([NotNull] VBAParser.EraseStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsLiteral([NotNull] VBAParser.VsLiteralContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsLiteral([NotNull] VBAParser.VsLiteralContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsEqv([NotNull] VBAParser.VsEqvContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsEqv([NotNull] VBAParser.VsEqvContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterComment([NotNull] VBAParser.CommentContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitComment([NotNull] VBAParser.CommentContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroStmt([NotNull] VBAParser.MacroStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroStmt([NotNull] VBAParser.MacroStmtContext context) { } - - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterVsMid([NotNull] VBAParser.VsMidContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitVsMid([NotNull] VBAParser.VsMidContext 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) { } - } +namespace Rubberduck.Parsing.Grammar { + +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.3")] +[System.CLSCompliant(false)] +public partial class VBABaseListener : IVBAListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSeekStmt([NotNull] VBAParser.SeekStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSeekStmt([NotNull] VBAParser.SeekStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFileNumber([NotNull] VBAParser.FileNumberContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFileNumber([NotNull] VBAParser.FileNumberContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterConstStmt([NotNull] VBAParser.ConstStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterType([NotNull] VBAParser.TypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitType([NotNull] VBAParser.TypeContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRsetStmt([NotNull] VBAParser.RsetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRsetStmt([NotNull] VBAParser.RsetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInputStmt([NotNull] VBAParser.InputStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInputStmt([NotNull] VBAParser.InputStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsAdd([NotNull] VBAParser.VsAddContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsAdd([NotNull] VBAParser.VsAddContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLsetStmt([NotNull] VBAParser.LsetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLsetStmt([NotNull] VBAParser.LsetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDeclareStmt([NotNull] VBAParser.DeclareStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterResetStmt([NotNull] VBAParser.ResetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitResetStmt([NotNull] VBAParser.ResetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsNew([NotNull] VBAParser.VsNewContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsNew([NotNull] VBAParser.VsNewContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRemComment([NotNull] VBAParser.RemCommentContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRemComment([NotNull] VBAParser.RemCommentContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeStmt([NotNull] VBAParser.TimeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeStmt([NotNull] VBAParser.TimeStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBlock([NotNull] VBAParser.BlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBlock([NotNull] VBAParser.BlockContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSetStmt([NotNull] VBAParser.SetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSetStmt([NotNull] VBAParser.SetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsNegation([NotNull] VBAParser.VsNegationContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsNegation([NotNull] VBAParser.VsNegationContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFieldLength([NotNull] VBAParser.FieldLengthContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFieldLength([NotNull] VBAParser.FieldLengthContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterGoSubStmt([NotNull] VBAParser.GoSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAttributeStmt([NotNull] VBAParser.AttributeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModule([NotNull] VBAParser.ModuleContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModule([NotNull] VBAParser.ModuleContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterComplexType([NotNull] VBAParser.ComplexTypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitComplexType([NotNull] VBAParser.ComplexTypeContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleHeader([NotNull] VBAParser.ModuleHeaderContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsICS([NotNull] VBAParser.VsICSContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsICS([NotNull] VBAParser.VsICSContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOutputList([NotNull] VBAParser.OutputListContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOutputList([NotNull] VBAParser.OutputListContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsIntDiv([NotNull] VBAParser.VsIntDivContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsIntDiv([NotNull] VBAParser.VsIntDivContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleBody([NotNull] VBAParser.ModuleBodyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleBody([NotNull] VBAParser.ModuleBodyContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWidthStmt([NotNull] VBAParser.WidthStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWidthStmt([NotNull] VBAParser.WidthStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWithStmt([NotNull] VBAParser.WithStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWithStmt([NotNull] VBAParser.WithStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgCall([NotNull] VBAParser.ArgCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgCall([NotNull] VBAParser.ArgCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNameStmt([NotNull] VBAParser.NameStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNameStmt([NotNull] VBAParser.NameStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeHint([NotNull] VBAParser.TypeHintContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeHint([NotNull] VBAParser.TypeHintContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateStmt([NotNull] VBAParser.DateStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateStmt([NotNull] VBAParser.DateStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEndOfStatement([NotNull] VBAParser.EndOfStatementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRedimStmt([NotNull] VBAParser.RedimStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRedimStmt([NotNull] VBAParser.RedimStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLiteral([NotNull] VBAParser.LiteralContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLiteral([NotNull] VBAParser.LiteralContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterErrorStmt([NotNull] VBAParser.ErrorStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitErrorStmt([NotNull] VBAParser.ErrorStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsAddressOf([NotNull] VBAParser.VsAddressOfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArg([NotNull] VBAParser.ArgContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArg([NotNull] VBAParser.ArgContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsMult([NotNull] VBAParser.VsMultContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsMult([NotNull] VBAParser.VsMultContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEventStmt([NotNull] VBAParser.EventStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEventStmt([NotNull] VBAParser.EventStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLockStmt([NotNull] VBAParser.LockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLockStmt([NotNull] VBAParser.LockStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsNot([NotNull] VBAParser.VsNotContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsNot([NotNull] VBAParser.VsNotContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEndOfLine([NotNull] VBAParser.EndOfLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEndOfLine([NotNull] VBAParser.EndOfLineContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStartRule([NotNull] VBAParser.StartRuleContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStartRule([NotNull] VBAParser.StartRuleContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWriteStmt([NotNull] VBAParser.WriteStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWriteStmt([NotNull] VBAParser.WriteStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsAnd([NotNull] VBAParser.VsAndContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsAnd([NotNull] VBAParser.VsAndContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEndStmt([NotNull] VBAParser.EndStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEndStmt([NotNull] VBAParser.EndStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsAmp([NotNull] VBAParser.VsAmpContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsAmp([NotNull] VBAParser.VsAmpContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterForNextStmt([NotNull] VBAParser.ForNextStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitForNextStmt([NotNull] VBAParser.ForNextStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondTo([NotNull] VBAParser.CaseCondToContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondTo([NotNull] VBAParser.CaseCondToContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsImp([NotNull] VBAParser.VsImpContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsImp([NotNull] VBAParser.VsImpContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExitStmt([NotNull] VBAParser.ExitStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExitStmt([NotNull] VBAParser.ExitStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgList([NotNull] VBAParser.ArgListContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgList([NotNull] VBAParser.ArgListContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsStruct([NotNull] VBAParser.VsStructContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsStruct([NotNull] VBAParser.VsStructContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSubscripts([NotNull] VBAParser.SubscriptsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSubscripts([NotNull] VBAParser.SubscriptsContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLetterrange([NotNull] VBAParser.LetterrangeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLetterrange([NotNull] VBAParser.LetterrangeContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLetStmt([NotNull] VBAParser.LetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLetStmt([NotNull] VBAParser.LetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSubStmt([NotNull] VBAParser.SubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSubStmt([NotNull] VBAParser.SubStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsRelational([NotNull] VBAParser.VsRelationalContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsRelational([NotNull] VBAParser.VsRelationalContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLineInputStmt([NotNull] VBAParser.LineInputStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeStmt([NotNull] VBAParser.TypeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeStmt([NotNull] VBAParser.TypeStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPutStmt([NotNull] VBAParser.PutStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPutStmt([NotNull] VBAParser.PutStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsAssign([NotNull] VBAParser.VsAssignContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsAssign([NotNull] VBAParser.VsAssignContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVariableStmt([NotNull] VBAParser.VariableStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSubscript([NotNull] VBAParser.SubscriptContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSubscript([NotNull] VBAParser.SubscriptContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVisibility([NotNull] VBAParser.VisibilityContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVisibility([NotNull] VBAParser.VisibilityContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBeepStmt([NotNull] VBAParser.BeepStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBeepStmt([NotNull] VBAParser.BeepStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsTypeOf([NotNull] VBAParser.VsTypeOfContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondValue([NotNull] VBAParser.CaseCondValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterReturnStmt([NotNull] VBAParser.ReturnStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitReturnStmt([NotNull] VBAParser.ReturnStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsMod([NotNull] VBAParser.VsModContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsMod([NotNull] VBAParser.VsModContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterKillStmt([NotNull] VBAParser.KillStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitKillStmt([NotNull] VBAParser.KillStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsOr([NotNull] VBAParser.VsOrContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsOr([NotNull] VBAParser.VsOrContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterGetStmt([NotNull] VBAParser.GetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitGetStmt([NotNull] VBAParser.GetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLineLabel([NotNull] VBAParser.LineLabelContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLineLabel([NotNull] VBAParser.LineLabelContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondIs([NotNull] VBAParser.CaseCondIsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgsCall([NotNull] VBAParser.ArgsCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgsCall([NotNull] VBAParser.ArgsCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLoadStmt([NotNull] VBAParser.LoadStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLoadStmt([NotNull] VBAParser.LoadStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBaseType([NotNull] VBAParser.BaseTypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBaseType([NotNull] VBAParser.BaseTypeContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOpenStmt([NotNull] VBAParser.OpenStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOpenStmt([NotNull] VBAParser.OpenStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCloseStmt([NotNull] VBAParser.CloseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCloseStmt([NotNull] VBAParser.CloseStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStopStmt([NotNull] VBAParser.StopStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStopStmt([NotNull] VBAParser.StopStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSC_Case([NotNull] VBAParser.SC_CaseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSC_Case([NotNull] VBAParser.SC_CaseContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUnlockStmt([NotNull] VBAParser.UnlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsXor([NotNull] VBAParser.VsXorContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsXor([NotNull] VBAParser.VsXorContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterGoToStmt([NotNull] VBAParser.GoToStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitGoToStmt([NotNull] VBAParser.GoToStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMidStmt([NotNull] VBAParser.MidStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMidStmt([NotNull] VBAParser.MidStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsPow([NotNull] VBAParser.VsPowContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsPow([NotNull] VBAParser.VsPowContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPrintStmt([NotNull] VBAParser.PrintStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPrintStmt([NotNull] VBAParser.PrintStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleConfig([NotNull] VBAParser.ModuleConfigContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleConfig([NotNull] VBAParser.ModuleConfigContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBlockStmt([NotNull] VBAParser.BlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBlockStmt([NotNull] VBAParser.BlockStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEraseStmt([NotNull] VBAParser.EraseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEraseStmt([NotNull] VBAParser.EraseStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsLiteral([NotNull] VBAParser.VsLiteralContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsLiteral([NotNull] VBAParser.VsLiteralContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsEqv([NotNull] VBAParser.VsEqvContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsEqv([NotNull] VBAParser.VsEqvContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterComment([NotNull] VBAParser.CommentContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitComment([NotNull] VBAParser.CommentContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsMid([NotNull] VBAParser.VsMidContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsMid([NotNull] VBAParser.VsMidContext 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) { } +} } // namespace Rubberduck.Parsing.Grammar diff --git a/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs index 16d4125830..02244c60fb 100644 --- a/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs @@ -17,1946 +17,1878 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Grammar -{ - using Antlr4.Runtime.Misc; - using Antlr4.Runtime.Tree; - using IToken = Antlr4.Runtime.IToken; - using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; - - /// - /// This class provides an empty implementation of , - /// which can be extended to create a visitor which only needs to handle a subset - /// of the available methods. - /// - /// The return type of the visit operation. - [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] - [System.CLSCompliant(false)] - public partial class VBABaseVisitor : AbstractParseTreeVisitor, IVBAVisitor - { - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSeekStmt([NotNull] VBAParser.SeekStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitFileNumber([NotNull] VBAParser.FileNumberContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitType([NotNull] VBAParser.TypeContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRsetStmt([NotNull] VBAParser.RsetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitInputStmt([NotNull] VBAParser.InputStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsAdd([NotNull] VBAParser.VsAddContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLsetStmt([NotNull] VBAParser.LsetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitResetStmt([NotNull] VBAParser.ResetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsNew([NotNull] VBAParser.VsNewContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRemComment([NotNull] VBAParser.RemCommentContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTimeStmt([NotNull] VBAParser.TimeStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitBlock([NotNull] VBAParser.BlockContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSetStmt([NotNull] VBAParser.SetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsNegation([NotNull] VBAParser.VsNegationContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitFieldLength([NotNull] VBAParser.FieldLengthContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModule([NotNull] VBAParser.ModuleContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitComplexType([NotNull] VBAParser.ComplexTypeContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsICS([NotNull] VBAParser.VsICSContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOutputList([NotNull] VBAParser.OutputListContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsIntDiv([NotNull] VBAParser.VsIntDivContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleBody([NotNull] VBAParser.ModuleBodyContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitWidthStmt([NotNull] VBAParser.WidthStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitWithStmt([NotNull] VBAParser.WithStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitArgCall([NotNull] VBAParser.ArgCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitNameStmt([NotNull] VBAParser.NameStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTypeHint([NotNull] VBAParser.TypeHintContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDateStmt([NotNull] VBAParser.DateStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRedimStmt([NotNull] VBAParser.RedimStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLiteral([NotNull] VBAParser.LiteralContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitErrorStmt([NotNull] VBAParser.ErrorStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitArg([NotNull] VBAParser.ArgContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsMult([NotNull] VBAParser.VsMultContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEventStmt([NotNull] VBAParser.EventStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLockStmt([NotNull] VBAParser.LockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsNot([NotNull] VBAParser.VsNotContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEndOfLine([NotNull] VBAParser.EndOfLineContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitStartRule([NotNull] VBAParser.StartRuleContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitWriteStmt([NotNull] VBAParser.WriteStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsAnd([NotNull] VBAParser.VsAndContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEndStmt([NotNull] VBAParser.EndStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsAmp([NotNull] VBAParser.VsAmpContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitForNextStmt([NotNull] VBAParser.ForNextStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCaseCondTo([NotNull] VBAParser.CaseCondToContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsImp([NotNull] VBAParser.VsImpContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitExitStmt([NotNull] VBAParser.ExitStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitArgList([NotNull] VBAParser.ArgListContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsStruct([NotNull] VBAParser.VsStructContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSubscripts([NotNull] VBAParser.SubscriptsContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLetterrange([NotNull] VBAParser.LetterrangeContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLetStmt([NotNull] VBAParser.LetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSubStmt([NotNull] VBAParser.SubStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsRelational([NotNull] VBAParser.VsRelationalContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTypeStmt([NotNull] VBAParser.TypeStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitPutStmt([NotNull] VBAParser.PutStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsAssign([NotNull] VBAParser.VsAssignContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSubscript([NotNull] VBAParser.SubscriptContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVisibility([NotNull] VBAParser.VisibilityContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitBeepStmt([NotNull] VBAParser.BeepStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitReturnStmt([NotNull] VBAParser.ReturnStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsMod([NotNull] VBAParser.VsModContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitKillStmt([NotNull] VBAParser.KillStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsOr([NotNull] VBAParser.VsOrContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitGetStmt([NotNull] VBAParser.GetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLineLabel([NotNull] VBAParser.LineLabelContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitArgsCall([NotNull] VBAParser.ArgsCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLoadStmt([NotNull] VBAParser.LoadStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitBaseType([NotNull] VBAParser.BaseTypeContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitOpenStmt([NotNull] VBAParser.OpenStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitCloseStmt([NotNull] VBAParser.CloseStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSC_Case([NotNull] VBAParser.SC_CaseContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsXor([NotNull] VBAParser.VsXorContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitGoToStmt([NotNull] VBAParser.GoToStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsPow([NotNull] VBAParser.VsPowContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitPrintStmt([NotNull] VBAParser.PrintStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleConfig([NotNull] VBAParser.ModuleConfigContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitBlockStmt([NotNull] VBAParser.BlockStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEraseStmt([NotNull] VBAParser.EraseStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsLiteral([NotNull] VBAParser.VsLiteralContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsEqv([NotNull] VBAParser.VsEqvContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitComment([NotNull] VBAParser.CommentContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroStmt([NotNull] VBAParser.MacroStmtContext context) { return VisitChildren(context); } - - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitVsMid([NotNull] VBAParser.VsMidContext context) { return VisitChildren(context); } - } +namespace Rubberduck.Parsing.Grammar { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// +/// This class provides an empty implementation of , +/// which can be extended to create a visitor which only needs to handle a subset +/// of the available methods. +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBABaseVisitor : AbstractParseTreeVisitor, IVBAVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSeekStmt([NotNull] VBAParser.SeekStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFileNumber([NotNull] VBAParser.FileNumberContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitType([NotNull] VBAParser.TypeContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitRsetStmt([NotNull] VBAParser.RsetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitInputStmt([NotNull] VBAParser.InputStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsAdd([NotNull] VBAParser.VsAddContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLsetStmt([NotNull] VBAParser.LsetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitResetStmt([NotNull] VBAParser.ResetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsNew([NotNull] VBAParser.VsNewContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitRemComment([NotNull] VBAParser.RemCommentContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTimeStmt([NotNull] VBAParser.TimeStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitBlock([NotNull] VBAParser.BlockContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSetStmt([NotNull] VBAParser.SetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsNegation([NotNull] VBAParser.VsNegationContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFieldLength([NotNull] VBAParser.FieldLengthContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModule([NotNull] VBAParser.ModuleContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitComplexType([NotNull] VBAParser.ComplexTypeContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsICS([NotNull] VBAParser.VsICSContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOutputList([NotNull] VBAParser.OutputListContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsIntDiv([NotNull] VBAParser.VsIntDivContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleBody([NotNull] VBAParser.ModuleBodyContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitWidthStmt([NotNull] VBAParser.WidthStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitWithStmt([NotNull] VBAParser.WithStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitArgCall([NotNull] VBAParser.ArgCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitNameStmt([NotNull] VBAParser.NameStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTypeHint([NotNull] VBAParser.TypeHintContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDateStmt([NotNull] VBAParser.DateStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitRedimStmt([NotNull] VBAParser.RedimStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLiteral([NotNull] VBAParser.LiteralContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitErrorStmt([NotNull] VBAParser.ErrorStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitArg([NotNull] VBAParser.ArgContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsMult([NotNull] VBAParser.VsMultContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEventStmt([NotNull] VBAParser.EventStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLockStmt([NotNull] VBAParser.LockStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsNot([NotNull] VBAParser.VsNotContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEndOfLine([NotNull] VBAParser.EndOfLineContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitStartRule([NotNull] VBAParser.StartRuleContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitWriteStmt([NotNull] VBAParser.WriteStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsAnd([NotNull] VBAParser.VsAndContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEndStmt([NotNull] VBAParser.EndStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsAmp([NotNull] VBAParser.VsAmpContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitForNextStmt([NotNull] VBAParser.ForNextStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCaseCondTo([NotNull] VBAParser.CaseCondToContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsImp([NotNull] VBAParser.VsImpContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitExitStmt([NotNull] VBAParser.ExitStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitArgList([NotNull] VBAParser.ArgListContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsStruct([NotNull] VBAParser.VsStructContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSubscripts([NotNull] VBAParser.SubscriptsContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLetterrange([NotNull] VBAParser.LetterrangeContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLetStmt([NotNull] VBAParser.LetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSubStmt([NotNull] VBAParser.SubStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsRelational([NotNull] VBAParser.VsRelationalContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTypeStmt([NotNull] VBAParser.TypeStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitPutStmt([NotNull] VBAParser.PutStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsAssign([NotNull] VBAParser.VsAssignContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSubscript([NotNull] VBAParser.SubscriptContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVisibility([NotNull] VBAParser.VisibilityContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitBeepStmt([NotNull] VBAParser.BeepStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitReturnStmt([NotNull] VBAParser.ReturnStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsMod([NotNull] VBAParser.VsModContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitKillStmt([NotNull] VBAParser.KillStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsOr([NotNull] VBAParser.VsOrContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitGetStmt([NotNull] VBAParser.GetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLineLabel([NotNull] VBAParser.LineLabelContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitArgsCall([NotNull] VBAParser.ArgsCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitLoadStmt([NotNull] VBAParser.LoadStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitBaseType([NotNull] VBAParser.BaseTypeContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitOpenStmt([NotNull] VBAParser.OpenStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCloseStmt([NotNull] VBAParser.CloseStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSC_Case([NotNull] VBAParser.SC_CaseContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsXor([NotNull] VBAParser.VsXorContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitGoToStmt([NotNull] VBAParser.GoToStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsPow([NotNull] VBAParser.VsPowContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitPrintStmt([NotNull] VBAParser.PrintStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleConfig([NotNull] VBAParser.ModuleConfigContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitBlockStmt([NotNull] VBAParser.BlockStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEraseStmt([NotNull] VBAParser.EraseStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsLiteral([NotNull] VBAParser.VsLiteralContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsEqv([NotNull] VBAParser.VsEqvContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitComment([NotNull] VBAParser.CommentContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitVsMid([NotNull] VBAParser.VsMidContext context) { return VisitChildren(context); } +} } // namespace Rubberduck.Parsing.Grammar diff --git a/Rubberduck.Parsing/Grammar/VBALexer.cs b/Rubberduck.Parsing/Grammar/VBALexer.cs index 9c71dbdbce..d289b49dc9 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -17,1200 +17,1172 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Grammar -{ - using Antlr4.Runtime; - using Antlr4.Runtime.Atn; - using Antlr4.Runtime.Misc; - using DFA = Antlr4.Runtime.Dfa.DFA; +namespace Rubberduck.Parsing.Grammar { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; - [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] - [System.CLSCompliant(false)] - public partial class VBALexer : Lexer - { - public const int - T__7 = 1, T__6 = 2, T__5 = 3, T__4 = 4, T__3 = 5, T__2 = 6, T__1 = 7, T__0 = 8, ACCESS = 9, - ADDRESSOF = 10, ALIAS = 11, AND = 12, ATTRIBUTE = 13, APPACTIVATE = 14, APPEND = 15, - AS = 16, BEGIN = 17, BEEP = 18, BINARY = 19, BOOLEAN = 20, BYVAL = 21, BYREF = 22, BYTE = 23, - CALL = 24, CASE = 25, CHDIR = 26, CHDRIVE = 27, CLASS = 28, CLOSE = 29, COLLECTION = 30, - CONST = 31, DATABASE = 32, DATE = 33, DECLARE = 34, DEFBOOL = 35, DEFBYTE = 36, DEFDATE = 37, - DEFDBL = 38, DEFDEC = 39, DEFCUR = 40, DEFINT = 41, DEFLNG = 42, DEFOBJ = 43, DEFSNG = 44, - DEFSTR = 45, DEFVAR = 46, DELETESETTING = 47, DIM = 48, DO = 49, DOUBLE = 50, EACH = 51, - ELSE = 52, ELSEIF = 53, END_ENUM = 54, END_FUNCTION = 55, END_IF = 56, END_PROPERTY = 57, - END_SELECT = 58, END_SUB = 59, END_TYPE = 60, END_WITH = 61, END = 62, ENUM = 63, - EQV = 64, ERASE = 65, ERROR = 66, EVENT = 67, EXIT_DO = 68, EXIT_FOR = 69, EXIT_FUNCTION = 70, - EXIT_PROPERTY = 71, EXIT_SUB = 72, FALSE = 73, FILECOPY = 74, FRIEND = 75, FOR = 76, - FUNCTION = 77, GET = 78, GLOBAL = 79, GOSUB = 80, GOTO = 81, IF = 82, IMP = 83, IMPLEMENTS = 84, - IN = 85, INPUT = 86, IS = 87, INTEGER = 88, KILL = 89, LOAD = 90, LOCK = 91, LONG = 92, - LOOP = 93, LEN = 94, LET = 95, LIB = 96, LIKE = 97, LINE_INPUT = 98, LOCK_READ = 99, - LOCK_WRITE = 100, LOCK_READ_WRITE = 101, LSET = 102, MACRO_CONST = 103, MACRO_IF = 104, - MACRO_ELSEIF = 105, MACRO_ELSE = 106, MACRO_END_IF = 107, ME = 108, MID = 109, MKDIR = 110, - MOD = 111, NAME = 112, NEXT = 113, NEW = 114, NOT = 115, NOTHING = 116, NULL = 117, - ON = 118, ON_ERROR = 119, ON_LOCAL_ERROR = 120, OPEN = 121, OPTIONAL = 122, OPTION_BASE = 123, - OPTION_EXPLICIT = 124, OPTION_COMPARE = 125, OPTION_PRIVATE_MODULE = 126, OR = 127, - OUTPUT = 128, PARAMARRAY = 129, PRESERVE = 130, PRINT = 131, PRIVATE = 132, PROPERTY_GET = 133, - PROPERTY_LET = 134, PROPERTY_SET = 135, PTRSAFE = 136, PUBLIC = 137, PUT = 138, - RANDOM = 139, RANDOMIZE = 140, RAISEEVENT = 141, READ = 142, READ_WRITE = 143, REDIM = 144, - REM = 145, RESET = 146, RESUME = 147, RETURN = 148, RMDIR = 149, RSET = 150, SAVEPICTURE = 151, - SAVESETTING = 152, SEEK = 153, SELECT = 154, SENDKEYS = 155, SET = 156, SETATTR = 157, - SHARED = 158, SINGLE = 159, SPC = 160, STATIC = 161, STEP = 162, STOP = 163, STRING = 164, - SUB = 165, TAB = 166, TEXT = 167, THEN = 168, TIME = 169, TO = 170, TRUE = 171, TYPE = 172, - TYPEOF = 173, UNLOAD = 174, UNLOCK = 175, UNTIL = 176, VARIANT = 177, VERSION = 178, - WEND = 179, WHILE = 180, WIDTH = 181, WITH = 182, WITHEVENTS = 183, WRITE = 184, XOR = 185, - AMPERSAND = 186, ASSIGN = 187, DIV = 188, INTDIV = 189, EQ = 190, GEQ = 191, GT = 192, - LEQ = 193, LPAREN = 194, LT = 195, MINUS = 196, MULT = 197, NEQ = 198, PLUS = 199, POW = 200, - RPAREN = 201, L_SQUARE_BRACKET = 202, R_SQUARE_BRACKET = 203, STRINGLITERAL = 204, - OCTLITERAL = 205, HEXLITERAL = 206, SHORTLITERAL = 207, INTEGERLITERAL = 208, - DOUBLELITERAL = 209, DATELITERAL = 210, JANUARY = 211, FEBRUARY = 212, MARCH = 213, - APRIL = 214, MAY = 215, JUNE = 216, JULY = 217, AUGUST = 218, SEPTEMBER = 219, OCTOBER = 220, - NOVEMBER = 221, DECEMBER = 222, JAN = 223, FEB = 224, MAR = 225, APR = 226, JUN = 227, - JUL = 228, AUG = 229, SEP = 230, OCT = 231, NOV = 232, DEC = 233, LINE_CONTINUATION = 234, - NEWLINE = 235, REMCOMMENT = 236, COMMENT = 237, SINGLEQUOTE = 238, COLON = 239, - UNDERSCORE = 240, WS = 241, IDENTIFIER = 242; - public static string[] modeNames = { - "DEFAULT_MODE" - }; +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBALexer : Lexer { + public const int + T__7=1, T__6=2, T__5=3, T__4=4, T__3=5, T__2=6, T__1=7, T__0=8, ACCESS=9, + ADDRESSOF=10, ALIAS=11, AND=12, ATTRIBUTE=13, APPACTIVATE=14, APPEND=15, + AS=16, BEGIN=17, BEEP=18, BINARY=19, BOOLEAN=20, BYVAL=21, BYREF=22, BYTE=23, + CALL=24, CASE=25, CHDIR=26, CHDRIVE=27, CLASS=28, CLOSE=29, COLLECTION=30, + CONST=31, DATABASE=32, DATE=33, DECLARE=34, DEFBOOL=35, DEFBYTE=36, DEFDATE=37, + DEFDBL=38, DEFDEC=39, DEFCUR=40, DEFINT=41, DEFLNG=42, DEFOBJ=43, DEFSNG=44, + DEFSTR=45, DEFVAR=46, DELETESETTING=47, DIM=48, DO=49, DOUBLE=50, EACH=51, + ELSE=52, ELSEIF=53, END_ENUM=54, END_FUNCTION=55, END_IF=56, END_PROPERTY=57, + END_SELECT=58, END_SUB=59, END_TYPE=60, END_WITH=61, END=62, ENUM=63, + EQV=64, ERASE=65, ERROR=66, EVENT=67, EXIT_DO=68, EXIT_FOR=69, EXIT_FUNCTION=70, + EXIT_PROPERTY=71, EXIT_SUB=72, FALSE=73, FILECOPY=74, FRIEND=75, FOR=76, + FUNCTION=77, GET=78, GLOBAL=79, GOSUB=80, GOTO=81, IF=82, IMP=83, IMPLEMENTS=84, + IN=85, INPUT=86, IS=87, INTEGER=88, KILL=89, LOAD=90, LOCK=91, LONG=92, + LOOP=93, LEN=94, LET=95, LIB=96, LIKE=97, LINE_INPUT=98, LOCK_READ=99, + LOCK_WRITE=100, LOCK_READ_WRITE=101, LSET=102, ME=103, MID=104, MKDIR=105, + MOD=106, NAME=107, NEXT=108, NEW=109, NOT=110, NOTHING=111, NULL=112, + ON=113, ON_ERROR=114, ON_LOCAL_ERROR=115, OPEN=116, OPTIONAL=117, OPTION_BASE=118, + OPTION_EXPLICIT=119, OPTION_COMPARE=120, OPTION_PRIVATE_MODULE=121, OR=122, + OUTPUT=123, PARAMARRAY=124, PRESERVE=125, PRINT=126, PRIVATE=127, PROPERTY_GET=128, + PROPERTY_LET=129, PROPERTY_SET=130, PTRSAFE=131, PUBLIC=132, PUT=133, + RANDOM=134, RANDOMIZE=135, RAISEEVENT=136, READ=137, READ_WRITE=138, REDIM=139, + REM=140, RESET=141, RESUME=142, RETURN=143, RMDIR=144, RSET=145, SAVEPICTURE=146, + SAVESETTING=147, SEEK=148, SELECT=149, SENDKEYS=150, SET=151, SETATTR=152, + SHARED=153, SINGLE=154, SPC=155, STATIC=156, STEP=157, STOP=158, STRING=159, + SUB=160, TAB=161, TEXT=162, THEN=163, TIME=164, TO=165, TRUE=166, TYPE=167, + TYPEOF=168, UNLOAD=169, UNLOCK=170, UNTIL=171, VARIANT=172, VERSION=173, + WEND=174, WHILE=175, WIDTH=176, WITH=177, WITHEVENTS=178, WRITE=179, XOR=180, + AMPERSAND=181, ASSIGN=182, DIV=183, INTDIV=184, EQ=185, GEQ=186, GT=187, + LEQ=188, LPAREN=189, LT=190, MINUS=191, MULT=192, NEQ=193, PLUS=194, POW=195, + RPAREN=196, L_SQUARE_BRACKET=197, R_SQUARE_BRACKET=198, STRINGLITERAL=199, + OCTLITERAL=200, HEXLITERAL=201, SHORTLITERAL=202, INTEGERLITERAL=203, + DOUBLELITERAL=204, DATELITERAL=205, JANUARY=206, FEBRUARY=207, MARCH=208, + APRIL=209, MAY=210, JUNE=211, JULY=212, AUGUST=213, SEPTEMBER=214, OCTOBER=215, + NOVEMBER=216, DECEMBER=217, JAN=218, FEB=219, MAR=220, APR=221, JUN=222, + JUL=223, AUG=224, SEP=225, OCT=226, NOV=227, DEC=228, LINE_CONTINUATION=229, + NEWLINE=230, REMCOMMENT=231, COMMENT=232, SINGLEQUOTE=233, COLON=234, + UNDERSCORE=235, WS=236, IDENTIFIER=237; + public static string[] modeNames = { + "DEFAULT_MODE" + }; - public static readonly string[] tokenNames = { - "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", - "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'", - "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'", - "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'", - "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'", - "'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''", - "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'", - "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "':'", "';'", - "'<'", "'='", "'>'", "'?'", "'@'", "'A'", "'B'", "'C'", "'D'", "'E'", - "'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", - "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", - "'Z'", "'['", "'\\'", "']'", "'^'", "'_'", "'`'", "'a'", "'b'", "'c'", - "'d'", "'e'", "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", - "'n'", "'o'", "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", - "'x'", "'y'", "'z'", "'{'", "'|'", "'}'", "'~'", "'\\u007F'", "'\\u0080'", - "'\\u0081'", "'\\u0082'", "'\\u0083'", "'\\u0084'", "'\\u0085'", "'\\u0086'", - "'\\u0087'", "'\\u0088'", "'\\u0089'", "'\\u008A'", "'\\u008B'", "'\\u008C'", - "'\\u008D'", "'\\u008E'", "'\\u008F'", "'\\u0090'", "'\\u0091'", "'\\u0092'", - "'\\u0093'", "'\\u0094'", "'\\u0095'", "'\\u0096'", "'\\u0097'", "'\\u0098'", - "'\\u0099'", "'\\u009A'", "'\\u009B'", "'\\u009C'", "'\\u009D'", "'\\u009E'", - "'\\u009F'", "'\\u00A0'", "'\\u00A1'", "'\\u00A2'", "'\\u00A3'", "'\\u00A4'", - "'\\u00A5'", "'\\u00A6'", "'\\u00A7'", "'\\u00A8'", "'\\u00A9'", "'\\u00AA'", - "'\\u00AB'", "'\\u00AC'", "'\\u00AD'", "'\\u00AE'", "'\\u00AF'", "'\\u00B0'", - "'\\u00B1'", "'\\u00B2'", "'\\u00B3'", "'\\u00B4'", "'\\u00B5'", "'\\u00B6'", - "'\\u00B7'", "'\\u00B8'", "'\\u00B9'", "'\\u00BA'", "'\\u00BB'", "'\\u00BC'", - "'\\u00BD'", "'\\u00BE'", "'\\u00BF'", "'\\u00C0'", "'\\u00C1'", "'\\u00C2'", - "'\\u00C3'", "'\\u00C4'", "'\\u00C5'", "'\\u00C6'", "'\\u00C7'", "'\\u00C8'", - "'\\u00C9'", "'\\u00CA'", "'\\u00CB'", "'\\u00CC'", "'\\u00CD'", "'\\u00CE'", - "'\\u00CF'", "'\\u00D0'", "'\\u00D1'", "'\\u00D2'", "'\\u00D3'", "'\\u00D4'", - "'\\u00D5'", "'\\u00D6'", "'\\u00D7'", "'\\u00D8'", "'\\u00D9'", "'\\u00DA'", - "'\\u00DB'", "'\\u00DC'", "'\\u00DD'", "'\\u00DE'", "'\\u00DF'", "'\\u00E0'", - "'\\u00E1'", "'\\u00E2'", "'\\u00E3'", "'\\u00E4'", "'\\u00E5'", "'\\u00E6'", - "'\\u00E7'", "'\\u00E8'", "'\\u00E9'", "'\\u00EA'", "'\\u00EB'", "'\\u00EC'", - "'\\u00ED'", "'\\u00EE'", "'\\u00EF'", "'\\u00F0'", "'\\u00F1'", "'\\u00F2'" - }; - public static readonly string[] ruleNames = { - "T__7", "T__6", "T__5", "T__4", "T__3", "T__2", "T__1", "T__0", "ACCESS", - "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", - "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", "CALL", - "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "COLLECTION", "CONST", "DATABASE", - "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", - "DEFCUR", "DEFINT", "DEFLNG", "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", - "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", - "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", - "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", - "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", - "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", - "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", - "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_CONST", "MACRO_IF", "MACRO_ELSEIF", - "MACRO_ELSE", "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", - "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", - "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", - "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", - "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", - "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", - "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", - "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", - "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", - "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", - "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "AMPERSAND", - "ASSIGN", "DIV", "INTDIV", "EQ", "GEQ", "GT", "LEQ", "LPAREN", "LT", "MINUS", - "MULT", "NEQ", "PLUS", "POW", "RPAREN", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", - "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", - "DOUBLELITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", "DATEVALUEPART", - "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", - "TIMEVALUE", "TIMESEPARATOR", "AMPM", "JANUARY", "FEBRUARY", "MARCH", - "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", - "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", - "NOV", "DEC", "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", - "SINGLEQUOTE", "COLON", "UNDERSCORE", "WS", "IDENTIFIER", "LETTER", "DIGIT", - "LETTERORDIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", - "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", - "Z" - }; + public static readonly string[] tokenNames = { + "'\\u0000'", "'\\u0001'", "'\\u0002'", "'\\u0003'", "'\\u0004'", "'\\u0005'", + "'\\u0006'", "'\\u0007'", "'\b'", "'\t'", "'\n'", "'\\u000B'", "'\f'", + "'\r'", "'\\u000E'", "'\\u000F'", "'\\u0010'", "'\\u0011'", "'\\u0012'", + "'\\u0013'", "'\\u0014'", "'\\u0015'", "'\\u0016'", "'\\u0017'", "'\\u0018'", + "'\\u0019'", "'\\u001A'", "'\\u001B'", "'\\u001C'", "'\\u001D'", "'\\u001E'", + "'\\u001F'", "' '", "'!'", "'\"'", "'#'", "'$'", "'%'", "'&'", "'''", + "'('", "')'", "'*'", "'+'", "','", "'-'", "'.'", "'/'", "'0'", "'1'", + "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "':'", "';'", + "'<'", "'='", "'>'", "'?'", "'@'", "'A'", "'B'", "'C'", "'D'", "'E'", + "'F'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", + "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", + "'Z'", "'['", "'\\'", "']'", "'^'", "'_'", "'`'", "'a'", "'b'", "'c'", + "'d'", "'e'", "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", + "'n'", "'o'", "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", + "'x'", "'y'", "'z'", "'{'", "'|'", "'}'", "'~'", "'\\u007F'", "'\\u0080'", + "'\\u0081'", "'\\u0082'", "'\\u0083'", "'\\u0084'", "'\\u0085'", "'\\u0086'", + "'\\u0087'", "'\\u0088'", "'\\u0089'", "'\\u008A'", "'\\u008B'", "'\\u008C'", + "'\\u008D'", "'\\u008E'", "'\\u008F'", "'\\u0090'", "'\\u0091'", "'\\u0092'", + "'\\u0093'", "'\\u0094'", "'\\u0095'", "'\\u0096'", "'\\u0097'", "'\\u0098'", + "'\\u0099'", "'\\u009A'", "'\\u009B'", "'\\u009C'", "'\\u009D'", "'\\u009E'", + "'\\u009F'", "'\\u00A0'", "'\\u00A1'", "'\\u00A2'", "'\\u00A3'", "'\\u00A4'", + "'\\u00A5'", "'\\u00A6'", "'\\u00A7'", "'\\u00A8'", "'\\u00A9'", "'\\u00AA'", + "'\\u00AB'", "'\\u00AC'", "'\\u00AD'", "'\\u00AE'", "'\\u00AF'", "'\\u00B0'", + "'\\u00B1'", "'\\u00B2'", "'\\u00B3'", "'\\u00B4'", "'\\u00B5'", "'\\u00B6'", + "'\\u00B7'", "'\\u00B8'", "'\\u00B9'", "'\\u00BA'", "'\\u00BB'", "'\\u00BC'", + "'\\u00BD'", "'\\u00BE'", "'\\u00BF'", "'\\u00C0'", "'\\u00C1'", "'\\u00C2'", + "'\\u00C3'", "'\\u00C4'", "'\\u00C5'", "'\\u00C6'", "'\\u00C7'", "'\\u00C8'", + "'\\u00C9'", "'\\u00CA'", "'\\u00CB'", "'\\u00CC'", "'\\u00CD'", "'\\u00CE'", + "'\\u00CF'", "'\\u00D0'", "'\\u00D1'", "'\\u00D2'", "'\\u00D3'", "'\\u00D4'", + "'\\u00D5'", "'\\u00D6'", "'\\u00D7'", "'\\u00D8'", "'\\u00D9'", "'\\u00DA'", + "'\\u00DB'", "'\\u00DC'", "'\\u00DD'", "'\\u00DE'", "'\\u00DF'", "'\\u00E0'", + "'\\u00E1'", "'\\u00E2'", "'\\u00E3'", "'\\u00E4'", "'\\u00E5'", "'\\u00E6'", + "'\\u00E7'", "'\\u00E8'", "'\\u00E9'", "'\\u00EA'", "'\\u00EB'", "'\\u00EC'", + "'\\u00ED'" + }; + public static readonly string[] ruleNames = { + "T__7", "T__6", "T__5", "T__4", "T__3", "T__2", "T__1", "T__0", "ACCESS", + "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", + "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", "CALL", + "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "COLLECTION", "CONST", "DATABASE", + "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", + "DEFCUR", "DEFINT", "DEFLNG", "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", + "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", + "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", + "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", + "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", + "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", + "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", + "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", + "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", + "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", + "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", + "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", + "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", + "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", + "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", + "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", + "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", + "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", + "WRITE", "XOR", "AMPERSAND", "ASSIGN", "DIV", "INTDIV", "EQ", "GEQ", "GT", + "LEQ", "LPAREN", "LT", "MINUS", "MULT", "NEQ", "PLUS", "POW", "RPAREN", + "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", "OCTLITERAL", + "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", + "DATEORTIME", "DATEVALUE", "DATEVALUEPART", "DATESEPARATOR", "MONTHNAME", + "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", "TIMEVALUE", "TIMESEPARATOR", + "AMPM", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", + "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", + "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "LINE_CONTINUATION", + "NEWLINE", "REMCOMMENT", "COMMENT", "SINGLEQUOTE", "COLON", "UNDERSCORE", + "WS", "IDENTIFIER", "LETTER", "DIGIT", "LETTERORDIGIT", "A", "B", "C", + "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", + "R", "S", "T", "U", "V", "W", "X", "Y", "Z" + }; - public VBALexer(ICharStream input) - : base(input) - { - _interp = new LexerATNSimulator(this, _ATN); - } + public VBALexer(ICharStream input) + : base(input) + { + _interp = new LexerATNSimulator(this,_ATN); + } - public override string GrammarFileName { get { return "VBA.g4"; } } + public override string GrammarFileName { get { return "VBA.g4"; } } - public override string[] TokenNames { get { return tokenNames; } } + public override string[] TokenNames { get { return tokenNames; } } - public override string[] RuleNames { get { return ruleNames; } } + public override string[] RuleNames { get { return ruleNames; } } - public override string[] ModeNames { get { return modeNames; } } + public override string[] ModeNames { get { return modeNames; } } - public override string SerializedAtn { get { return _serializedATN; } } + public override string SerializedAtn { get { return _serializedATN; } } - public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF4\x917\b\x1\x4" + - "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b" + - "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4" + - "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15" + - "\t\x15\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A" + - "\x4\x1B\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 " + - "\t \x4!\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t" + - ")\x4*\t*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31" + - "\x4\x32\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37" + - "\t\x37\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x4>\t>\x4" + - "?\t?\x4@\t@\x4\x41\t\x41\x4\x42\t\x42\x4\x43\t\x43\x4\x44\t\x44\x4\x45" + - "\t\x45\x4\x46\t\x46\x4G\tG\x4H\tH\x4I\tI\x4J\tJ\x4K\tK\x4L\tL\x4M\tM\x4" + - "N\tN\x4O\tO\x4P\tP\x4Q\tQ\x4R\tR\x4S\tS\x4T\tT\x4U\tU\x4V\tV\x4W\tW\x4" + - "X\tX\x4Y\tY\x4Z\tZ\x4[\t[\x4\\\t\\\x4]\t]\x4^\t^\x4_\t_\x4`\t`\x4\x61" + - "\t\x61\x4\x62\t\x62\x4\x63\t\x63\x4\x64\t\x64\x4\x65\t\x65\x4\x66\t\x66" + - "\x4g\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\t" + - "p\x4q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\t" + - "z\x4{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4" + - "\x82\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87" + - "\t\x87\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C" + - "\x4\x8D\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92" + - "\t\x92\x4\x93\t\x93\x4\x94\t\x94\x4\x95\t\x95\x4\x96\t\x96\x4\x97\t\x97" + - "\x4\x98\t\x98\x4\x99\t\x99\x4\x9A\t\x9A\x4\x9B\t\x9B\x4\x9C\t\x9C\x4\x9D" + - "\t\x9D\x4\x9E\t\x9E\x4\x9F\t\x9F\x4\xA0\t\xA0\x4\xA1\t\xA1\x4\xA2\t\xA2" + - "\x4\xA3\t\xA3\x4\xA4\t\xA4\x4\xA5\t\xA5\x4\xA6\t\xA6\x4\xA7\t\xA7\x4\xA8" + - "\t\xA8\x4\xA9\t\xA9\x4\xAA\t\xAA\x4\xAB\t\xAB\x4\xAC\t\xAC\x4\xAD\t\xAD" + - "\x4\xAE\t\xAE\x4\xAF\t\xAF\x4\xB0\t\xB0\x4\xB1\t\xB1\x4\xB2\t\xB2\x4\xB3" + - "\t\xB3\x4\xB4\t\xB4\x4\xB5\t\xB5\x4\xB6\t\xB6\x4\xB7\t\xB7\x4\xB8\t\xB8" + - "\x4\xB9\t\xB9\x4\xBA\t\xBA\x4\xBB\t\xBB\x4\xBC\t\xBC\x4\xBD\t\xBD\x4\xBE" + - "\t\xBE\x4\xBF\t\xBF\x4\xC0\t\xC0\x4\xC1\t\xC1\x4\xC2\t\xC2\x4\xC3\t\xC3" + - "\x4\xC4\t\xC4\x4\xC5\t\xC5\x4\xC6\t\xC6\x4\xC7\t\xC7\x4\xC8\t\xC8\x4\xC9" + - "\t\xC9\x4\xCA\t\xCA\x4\xCB\t\xCB\x4\xCC\t\xCC\x4\xCD\t\xCD\x4\xCE\t\xCE" + - "\x4\xCF\t\xCF\x4\xD0\t\xD0\x4\xD1\t\xD1\x4\xD2\t\xD2\x4\xD3\t\xD3\x4\xD4" + - "\t\xD4\x4\xD5\t\xD5\x4\xD6\t\xD6\x4\xD7\t\xD7\x4\xD8\t\xD8\x4\xD9\t\xD9" + - "\x4\xDA\t\xDA\x4\xDB\t\xDB\x4\xDC\t\xDC\x4\xDD\t\xDD\x4\xDE\t\xDE\x4\xDF" + - "\t\xDF\x4\xE0\t\xE0\x4\xE1\t\xE1\x4\xE2\t\xE2\x4\xE3\t\xE3\x4\xE4\t\xE4" + - "\x4\xE5\t\xE5\x4\xE6\t\xE6\x4\xE7\t\xE7\x4\xE8\t\xE8\x4\xE9\t\xE9\x4\xEA" + - "\t\xEA\x4\xEB\t\xEB\x4\xEC\t\xEC\x4\xED\t\xED\x4\xEE\t\xEE\x4\xEF\t\xEF" + - "\x4\xF0\t\xF0\x4\xF1\t\xF1\x4\xF2\t\xF2\x4\xF3\t\xF3\x4\xF4\t\xF4\x4\xF5" + - "\t\xF5\x4\xF6\t\xF6\x4\xF7\t\xF7\x4\xF8\t\xF8\x4\xF9\t\xF9\x4\xFA\t\xFA" + - "\x4\xFB\t\xFB\x4\xFC\t\xFC\x4\xFD\t\xFD\x4\xFE\t\xFE\x4\xFF\t\xFF\x4\x100" + - "\t\x100\x4\x101\t\x101\x4\x102\t\x102\x4\x103\t\x103\x4\x104\t\x104\x4" + - "\x105\t\x105\x4\x106\t\x106\x4\x107\t\x107\x4\x108\t\x108\x4\x109\t\x109" + - "\x4\x10A\t\x10A\x4\x10B\t\x10B\x4\x10C\t\x10C\x4\x10D\t\x10D\x4\x10E\t" + - "\x10E\x4\x10F\t\x10F\x4\x110\t\x110\x4\x111\t\x111\x4\x112\t\x112\x4\x113" + - "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x4\x116\t\x116\x4\x117\t\x117\x4" + - "\x118\t\x118\x4\x119\t\x119\x4\x11A\t\x11A\x3\x2\x3\x2\x3\x3\x3\x3\x3" + - "\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3\t\x3\n\x3" + - "\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3" + - "\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\xE\x3\xE" + - "\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10" + - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12" + - "\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14" + - "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15" + - "\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x17" + - "\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18" + - "\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A" + - "\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x3\x1C" + - "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D" + - "\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3\x1F" + - "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3 " + - "\x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"\x3\"\x3#" + - "\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3%\x3%\x3" + - "%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'\x3\'\x3\'\x3" + - "\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3)\x3)" + - "\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3,\x3,\x3" + - ",\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3." + - "\x3.\x3/\x3/\x3/\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3" + - "\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3" + - "\x31\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3" + - "\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3" + - "\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3" + - "\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x38\x3" + - "\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3" + - "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3:\x3:\x3" + - ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3;\x3;\x3;\x3;" + - "\x3;\x3;\x3;\x3;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3=\x3" + - "=\x3=\x3=\x3=\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3@" + - "\x3@\x3@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x3\x42" + - "\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x44\x3\x44" + - "\x3\x44\x3\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45" + - "\x3\x45\x3\x45\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46" + - "\x3\x46\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3H\x3" + - "H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3I\x3I\x3I\x3I\x3I" + - "\x3I\x3I\x3I\x3I\x3J\x3J\x3J\x3J\x3J\x3J\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3" + - "K\x3K\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x3N\x3N\x3N\x3N\x3N" + - "\x3N\x3N\x3N\x3N\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x3Q\x3Q\x3" + - "Q\x3Q\x3Q\x3Q\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3T\x3T\x3T\x3T\x3U\x3U" + - "\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3V\x3V\x3V\x3W\x3W\x3W\x3W\x3W\x3" + - "W\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Z\x3Z\x3Z\x3Z\x3Z\x3[" + - "\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3^\x3^" + - "\x3^\x3^\x3^\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3\x61\x3\x61\x3\x61\x3\x61" + - "\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63" + - "\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x64\x3\x64\x3\x64\x3\x64" + - "\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65" + - "\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66" + - "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66" + - "\x3\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3h\x3h\x3h\x3h\x3h\x3h\x3h" + - "\x3i\x3i\x3i\x3i\x3j\x3j\x3j\x3j\x3j\x3j\x3j\x3j\x3k\x3k\x3k\x3k\x3k\x3" + - "k\x3l\x3l\x3l\x3l\x3l\x5l\x4FB\nl\x3l\x3l\x3l\x3m\x3m\x3m\x3n\x3n\x3n" + - "\x3n\x3o\x3o\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3q\x3r\x3" + - "r\x3r\x3r\x3r\x3s\x3s\x3s\x3s\x3t\x3t\x3t\x3t\x3u\x3u\x3u\x3u\x3u\x3u" + - "\x3u\x3u\x3v\x3v\x3v\x3v\x3v\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3" + - "x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3z" + - "\x3z\x3z\x3z\x3z\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3|\x3|\x3|\x3|\x3" + - "|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}" + - "\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3" + - "~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F" + - "\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F" + - "\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81" + - "\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82" + - "\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83" + - "\x3\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84" + - "\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86" + - "\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86" + - "\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87" + - "\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88" + - "\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x89\x3\x89\x3\x89" + - "\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A" + - "\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8C\x3\x8C" + - "\x3\x8C\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D" + - "\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E" + - "\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90" + - "\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90" + - "\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x3\x92" + - "\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x94\x3\x94\x3\x94\x3\x94" + - "\x3\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95" + - "\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97" + - "\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98" + - "\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99" + - "\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A" + - "\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C" + - "\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D" + - "\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F" + - "\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0" + - "\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA2\x3\xA2\x3\xA2\x3\xA2" + - "\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4" + - "\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5" + - "\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8" + - "\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA" + - "\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC\x3\xAC\x3\xAC" + - "\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE" + - "\x3\xAE\x3\xAE\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF" + - "\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1" + - "\x3\xB1\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2" + - "\x3\xB2\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB4" + - "\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5" + - "\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB7\x3\xB7" + - "\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8" + - "\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xBA\x3\xBA" + - "\x3\xBA\x3\xBA\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBE" + - "\x3\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC0\x3\xC1\x3\xC1\x3\xC2\x3\xC2" + - "\x3\xC2\x3\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC7" + - "\x3\xC7\x3\xC7\x3\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xCA\x3\xCA\x3\xCB\x3\xCB" + - "\x3\xCC\x3\xCC\x3\xCD\x3\xCD\x3\xCD\x3\xCD\a\xCD\x75E\n\xCD\f\xCD\xE\xCD" + - "\x761\v\xCD\x3\xCD\x3\xCD\x3\xCE\x3\xCE\x3\xCE\x3\xCE\x6\xCE\x769\n\xCE" + - "\r\xCE\xE\xCE\x76A\x3\xCE\x5\xCE\x76E\n\xCE\x3\xCF\x3\xCF\x3\xCF\x3\xCF" + - "\x6\xCF\x774\n\xCF\r\xCF\xE\xCF\x775\x3\xCF\x5\xCF\x779\n\xCF\x3\xD0\x3" + - "\xD0\x5\xD0\x77D\n\xD0\x3\xD0\x6\xD0\x780\n\xD0\r\xD0\xE\xD0\x781\x3\xD0" + - "\x5\xD0\x785\n\xD0\x3\xD1\x3\xD1\x3\xD1\x3\xD1\x5\xD1\x78B\n\xD1\x3\xD2" + - "\x3\xD2\x5\xD2\x78F\n\xD2\x3\xD2\a\xD2\x792\n\xD2\f\xD2\xE\xD2\x795\v" + - "\xD2\x3\xD2\x3\xD2\x6\xD2\x799\n\xD2\r\xD2\xE\xD2\x79A\x3\xD2\x3\xD2\x3" + - "\xD2\x5\xD2\x7A0\n\xD2\x3\xD3\x3\xD3\x3\xD3\x3\xD3\x3\xD4\x3\xD4\x5\xD4" + - "\x7A8\n\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x5\xD4\x7AE\n\xD4\x3\xD5\x3\xD5" + - "\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x7B6\n\xD5\x3\xD6\x6\xD6\x7B9\n\xD6" + - "\r\xD6\xE\xD6\x7BA\x3\xD6\x5\xD6\x7BE\n\xD6\x3\xD7\x5\xD7\x7C1\n\xD7\x3" + - "\xD7\x5\xD7\x7C4\n\xD7\x3\xD7\x5\xD7\x7C7\n\xD7\x3\xD8\x3\xD8\x5\xD8\x7CB" + - "\n\xD8\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9" + - "\x3\xD9\x3\xD9\x3\xD9\x5\xD9\x7D9\n\xD9\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3" + - "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x5\xDA\x7E6\n\xDA\x3\xDB" + - "\x6\xDB\x7E9\n\xDB\r\xDB\xE\xDB\x7EA\x3\xDB\x3\xDB\x3\xDB\x6\xDB\x7F0" + - "\n\xDB\r\xDB\xE\xDB\x7F1\x3\xDB\x3\xDB\x6\xDB\x7F6\n\xDB\r\xDB\xE\xDB" + - "\x7F7\x3\xDB\x3\xDB\x6\xDB\x7FC\n\xDB\r\xDB\xE\xDB\x7FD\x5\xDB\x800\n" + - "\xDB\x3\xDB\x5\xDB\x803\n\xDB\x5\xDB\x805\n\xDB\x3\xDC\x5\xDC\x808\n\xDC" + - "\x3\xDC\x3\xDC\x5\xDC\x80C\n\xDC\x3\xDD\x5\xDD\x80F\n\xDD\x3\xDD\x3\xDD" + - "\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x5\xDD\x819\n\xDD\x3\xDE\x3" + - "\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xDF\x3" + - "\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3" + - "\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3" + - "\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4\x3" + - "\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3" + - "\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE7\x3" + - "\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3" + - "\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3" + - "\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEB\x3" + - "\xEB\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED\x3\xED\x3" + - "\xED\x3\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xF0\x3" + - "\xF0\x3\xF0\x3\xF0\x3\xF1\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x3\xF2\x3\xF2\x3" + - "\xF2\x3\xF3\x3\xF3\x3\xF3\x3\xF3\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF5\x6" + - "\xF5\x89E\n\xF5\r\xF5\xE\xF5\x89F\x3\xF5\x3\xF5\x5\xF5\x8A4\n\xF5\x3\xF5" + - "\x3\xF5\x3\xF5\x3\xF5\x3\xF6\x6\xF6\x8AB\n\xF6\r\xF6\xE\xF6\x8AC\x3\xF7" + - "\x5\xF7\x8B0\n\xF7\x3\xF7\x3\xF7\x3\xF7\x3\xF7\a\xF7\x8B6\n\xF7\f\xF7" + - "\xE\xF7\x8B9\v\xF7\x3\xF8\x3\xF8\x3\xF8\a\xF8\x8BE\n\xF8\f\xF8\xE\xF8" + - "\x8C1\v\xF8\x3\xF9\x3\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x6" + - "\xFC\x8CB\n\xFC\r\xFC\xE\xFC\x8CC\x3\xFD\x6\xFD\x8D0\n\xFD\r\xFD\xE\xFD" + - "\x8D1\x3\xFD\x3\xFD\x6\xFD\x8D6\n\xFD\r\xFD\xE\xFD\x8D7\x3\xFD\x3\xFD" + - "\x5\xFD\x8DC\n\xFD\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101" + - "\x3\x101\x3\x102\x3\x102\x3\x103\x3\x103\x3\x104\x3\x104\x3\x105\x3\x105" + - "\x3\x106\x3\x106\x3\x107\x3\x107\x3\x108\x3\x108\x3\x109\x3\x109\x3\x10A" + - "\x3\x10A\x3\x10B\x3\x10B\x3\x10C\x3\x10C\x3\x10D\x3\x10D\x3\x10E\x3\x10E" + - "\x3\x10F\x3\x10F\x3\x110\x3\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113" + - "\x3\x113\x3\x114\x3\x114\x3\x115\x3\x115\x3\x116\x3\x116\x3\x117\x3\x117" + - "\x3\x118\x3\x118\x3\x119\x3\x119\x3\x11A\x3\x11A\x2\x2\x2\x11B\x3\x2\x3" + - "\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15" + - "\x2\f\x17\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13" + - "%\x2\x14\'\x2\x15)\x2\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B" + - "\x35\x2\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45" + - "\x2$G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_" + - "\x2\x31\x61\x2\x32\x63\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38" + - "o\x2\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83" + - "\x2\x43\x85\x2\x44\x87\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2" + - "J\x93\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3" + - "\x2S\xA5\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5" + - "\x2\\\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63" + - "\xC5\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3" + - "\x2k\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5" + - "\x2t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7" + - "\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83" + - "\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89" + - "\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F" + - "\x11D\x2\x90\x11F\x2\x91\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95" + - "\x129\x2\x96\x12B\x2\x97\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B" + - "\x135\x2\x9C\x137\x2\x9D\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1" + - "\x141\x2\xA2\x143\x2\xA3\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7" + - "\x14D\x2\xA8\x14F\x2\xA9\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD" + - "\x159\x2\xAE\x15B\x2\xAF\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3" + - "\x165\x2\xB4\x167\x2\xB5\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9" + - "\x171\x2\xBA\x173\x2\xBB\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF" + - "\x17D\x2\xC0\x17F\x2\xC1\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5" + - "\x189\x2\xC6\x18B\x2\xC7\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB" + - "\x195\x2\xCC\x197\x2\xCD\x199\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\xD1" + - "\x1A1\x2\xD2\x1A3\x2\xD3\x1A5\x2\xD4\x1A7\x2\x2\x1A9\x2\x2\x1AB\x2\x2" + - "\x1AD\x2\x2\x1AF\x2\x2\x1B1\x2\x2\x1B3\x2\x2\x1B5\x2\x2\x1B7\x2\x2\x1B9" + - "\x2\x2\x1BB\x2\xD5\x1BD\x2\xD6\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5" + - "\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1" + - "\x2\xE0\x1D3\x2\xE1\x1D5\x2\xE2\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD" + - "\x2\xE6\x1DF\x2\xE7\x1E1\x2\xE8\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9" + - "\x2\xEC\x1EB\x2\xED\x1ED\x2\xEE\x1EF\x2\xEF\x1F1\x2\xF0\x1F3\x2\xF1\x1F5" + - "\x2\xF2\x1F7\x2\xF3\x1F9\x2\xF4\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201" + - "\x2\x2\x203\x2\x2\x205\x2\x2\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2" + - "\x2\x20F\x2\x2\x211\x2\x2\x213\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2" + - "\x21B\x2\x2\x21D\x2\x2\x21F\x2\x2\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227" + - "\x2\x2\x229\x2\x2\x22B\x2\x2\x22D\x2\x2\x22F\x2\x2\x231\x2\x2\x233\x2" + - "\x2\x3\x2)\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x5\x2%%((\x42" + - "\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\"\x5\x2\f\f\xF\xF\x202A" + - "\x202B\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\v" + - "\x2\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE" + - "\x3\x2\x32;\f\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6" + - "\xF8\xF8\xFE\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45" + - "\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2" + - "JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2" + - "QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2" + - "XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x939\x2\x3\x3\x2\x2\x2" + - "\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2" + - "\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2" + - "\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3" + - "\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3" + - "\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2" + - "\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2" + - "\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2" + - "\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2" + - "\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2" + - "\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2" + - "U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2" + - "\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3" + - "\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2" + - "\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2" + - "w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3" + - "\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2" + - "\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2" + - "\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3" + - "\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2" + - "\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2" + - "\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3" + - "\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2" + - "\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2" + - "\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3" + - "\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2" + - "\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2" + - "\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3" + - "\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2" + - "\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2" + - "\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3" + - "\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2" + - "\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2" + - "\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103" + - "\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2" + - "\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111" + - "\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2" + - "\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F" + - "\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2" + - "\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D" + - "\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2" + - "\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B" + - "\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2" + - "\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149" + - "\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2" + - "\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157" + - "\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2" + - "\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165" + - "\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2" + - "\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173" + - "\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2" + - "\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181" + - "\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2" + - "\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F" + - "\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2" + - "\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x19D" + - "\x3\x2\x2\x2\x2\x19F\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2\x1A3\x3\x2\x2" + - "\x2\x2\x1A5\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF" + - "\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2" + - "\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2\x2\x1CD" + - "\x3\x2\x2\x2\x2\x1CF\x3\x2\x2\x2\x2\x1D1\x3\x2\x2\x2\x2\x1D3\x3\x2\x2" + - "\x2\x2\x1D5\x3\x2\x2\x2\x2\x1D7\x3\x2\x2\x2\x2\x1D9\x3\x2\x2\x2\x2\x1DB" + - "\x3\x2\x2\x2\x2\x1DD\x3\x2\x2\x2\x2\x1DF\x3\x2\x2\x2\x2\x1E1\x3\x2\x2" + - "\x2\x2\x1E3\x3\x2\x2\x2\x2\x1E5\x3\x2\x2\x2\x2\x1E7\x3\x2\x2\x2\x2\x1E9" + - "\x3\x2\x2\x2\x2\x1EB\x3\x2\x2\x2\x2\x1ED\x3\x2\x2\x2\x2\x1EF\x3\x2\x2" + - "\x2\x2\x1F1\x3\x2\x2\x2\x2\x1F3\x3\x2\x2\x2\x2\x1F5\x3\x2\x2\x2\x2\x1F7" + - "\x3\x2\x2\x2\x2\x1F9\x3\x2\x2\x2\x3\x235\x3\x2\x2\x2\x5\x237\x3\x2\x2" + - "\x2\a\x239\x3\x2\x2\x2\t\x23B\x3\x2\x2\x2\v\x23D\x3\x2\x2\x2\r\x23F\x3" + - "\x2\x2\x2\xF\x241\x3\x2\x2\x2\x11\x243\x3\x2\x2\x2\x13\x245\x3\x2\x2\x2" + - "\x15\x24C\x3\x2\x2\x2\x17\x256\x3\x2\x2\x2\x19\x25C\x3\x2\x2\x2\x1B\x260" + - "\x3\x2\x2\x2\x1D\x26A\x3\x2\x2\x2\x1F\x276\x3\x2\x2\x2!\x27D\x3\x2\x2" + - "\x2#\x280\x3\x2\x2\x2%\x286\x3\x2\x2\x2\'\x28B\x3\x2\x2\x2)\x292\x3\x2" + - "\x2\x2+\x29A\x3\x2\x2\x2-\x2A0\x3\x2\x2\x2/\x2A6\x3\x2\x2\x2\x31\x2AB" + - "\x3\x2\x2\x2\x33\x2B0\x3\x2\x2\x2\x35\x2B5\x3\x2\x2\x2\x37\x2BB\x3\x2" + - "\x2\x2\x39\x2C3\x3\x2\x2\x2;\x2C9\x3\x2\x2\x2=\x2CF\x3\x2\x2\x2?\x2DA" + - "\x3\x2\x2\x2\x41\x2E0\x3\x2\x2\x2\x43\x2E9\x3\x2\x2\x2\x45\x2EE\x3\x2" + - "\x2\x2G\x2F6\x3\x2\x2\x2I\x2FE\x3\x2\x2\x2K\x306\x3\x2\x2\x2M\x30E\x3" + - "\x2\x2\x2O\x315\x3\x2\x2\x2Q\x31C\x3\x2\x2\x2S\x323\x3\x2\x2\x2U\x32A" + - "\x3\x2\x2\x2W\x331\x3\x2\x2\x2Y\x338\x3\x2\x2\x2[\x33F\x3\x2\x2\x2]\x346" + - "\x3\x2\x2\x2_\x34D\x3\x2\x2\x2\x61\x35B\x3\x2\x2\x2\x63\x35F\x3\x2\x2" + - "\x2\x65\x362\x3\x2\x2\x2g\x369\x3\x2\x2\x2i\x36E\x3\x2\x2\x2k\x373\x3" + - "\x2\x2\x2m\x37A\x3\x2\x2\x2o\x383\x3\x2\x2\x2q\x390\x3\x2\x2\x2s\x397" + - "\x3\x2\x2\x2u\x3A4\x3\x2\x2\x2w\x3AF\x3\x2\x2\x2y\x3B7\x3\x2\x2\x2{\x3C0" + - "\x3\x2\x2\x2}\x3C9\x3\x2\x2\x2\x7F\x3CD\x3\x2\x2\x2\x81\x3D2\x3\x2\x2" + - "\x2\x83\x3D6\x3\x2\x2\x2\x85\x3DC\x3\x2\x2\x2\x87\x3E2\x3\x2\x2\x2\x89" + - "\x3E8\x3\x2\x2\x2\x8B\x3F0\x3\x2\x2\x2\x8D\x3F9\x3\x2\x2\x2\x8F\x407\x3" + - "\x2\x2\x2\x91\x415\x3\x2\x2\x2\x93\x41E\x3\x2\x2\x2\x95\x424\x3\x2\x2" + - "\x2\x97\x42D\x3\x2\x2\x2\x99\x434\x3\x2\x2\x2\x9B\x438\x3\x2\x2\x2\x9D" + - "\x441\x3\x2\x2\x2\x9F\x445\x3\x2\x2\x2\xA1\x44C\x3\x2\x2\x2\xA3\x452\x3" + - "\x2\x2\x2\xA5\x457\x3\x2\x2\x2\xA7\x45A\x3\x2\x2\x2\xA9\x45E\x3\x2\x2" + - "\x2\xAB\x469\x3\x2\x2\x2\xAD\x46C\x3\x2\x2\x2\xAF\x472\x3\x2\x2\x2\xB1" + - "\x475\x3\x2\x2\x2\xB3\x47D\x3\x2\x2\x2\xB5\x482\x3\x2\x2\x2\xB7\x487\x3" + - "\x2\x2\x2\xB9\x48C\x3\x2\x2\x2\xBB\x491\x3\x2\x2\x2\xBD\x496\x3\x2\x2" + - "\x2\xBF\x49A\x3\x2\x2\x2\xC1\x49E\x3\x2\x2\x2\xC3\x4A2\x3\x2\x2\x2\xC5" + - "\x4A7\x3\x2\x2\x2\xC7\x4B2\x3\x2\x2\x2\xC9\x4BC\x3\x2\x2\x2\xCB\x4C7\x3" + - "\x2\x2\x2\xCD\x4D7\x3\x2\x2\x2\xCF\x4DC\x3\x2\x2\x2\xD1\x4E3\x3\x2\x2" + - "\x2\xD3\x4E7\x3\x2\x2\x2\xD5\x4EF\x3\x2\x2\x2\xD7\x4F5\x3\x2\x2\x2\xD9" + - "\x4FF\x3\x2\x2\x2\xDB\x502\x3\x2\x2\x2\xDD\x506\x3\x2\x2\x2\xDF\x50C\x3" + - "\x2\x2\x2\xE1\x510\x3\x2\x2\x2\xE3\x515\x3\x2\x2\x2\xE5\x51A\x3\x2\x2" + - "\x2\xE7\x51E\x3\x2\x2\x2\xE9\x522\x3\x2\x2\x2\xEB\x52A\x3\x2\x2\x2\xED" + - "\x52F\x3\x2\x2\x2\xEF\x532\x3\x2\x2\x2\xF1\x53B\x3\x2\x2\x2\xF3\x54A\x3" + - "\x2\x2\x2\xF5\x54F\x3\x2\x2\x2\xF7\x558\x3\x2\x2\x2\xF9\x564\x3\x2\x2" + - "\x2\xFB\x574\x3\x2\x2\x2\xFD\x583\x3\x2\x2\x2\xFF\x599\x3\x2\x2\x2\x101" + - "\x59C\x3\x2\x2\x2\x103\x5A3\x3\x2\x2\x2\x105\x5AE\x3\x2\x2\x2\x107\x5B7" + - "\x3\x2\x2\x2\x109\x5BD\x3\x2\x2\x2\x10B\x5C5\x3\x2\x2\x2\x10D\x5D2\x3" + - "\x2\x2\x2\x10F\x5DF\x3\x2\x2\x2\x111\x5EC\x3\x2\x2\x2\x113\x5F4\x3\x2" + - "\x2\x2\x115\x5FB\x3\x2\x2\x2\x117\x5FF\x3\x2\x2\x2\x119\x606\x3\x2\x2" + - "\x2\x11B\x610\x3\x2\x2\x2\x11D\x61B\x3\x2\x2\x2\x11F\x620\x3\x2\x2\x2" + - "\x121\x62B\x3\x2\x2\x2\x123\x631\x3\x2\x2\x2\x125\x635\x3\x2\x2\x2\x127" + - "\x63B\x3\x2\x2\x2\x129\x642\x3\x2\x2\x2\x12B\x649\x3\x2\x2\x2\x12D\x64F" + - "\x3\x2\x2\x2\x12F\x654\x3\x2\x2\x2\x131\x660\x3\x2\x2\x2\x133\x66C\x3" + - "\x2\x2\x2\x135\x671\x3\x2\x2\x2\x137\x678\x3\x2\x2\x2\x139\x681\x3\x2" + - "\x2\x2\x13B\x685\x3\x2\x2\x2\x13D\x68D\x3\x2\x2\x2\x13F\x694\x3\x2\x2" + - "\x2\x141\x69B\x3\x2\x2\x2\x143\x69F\x3\x2\x2\x2\x145\x6A6\x3\x2\x2\x2" + - "\x147\x6AB\x3\x2\x2\x2\x149\x6B0\x3\x2\x2\x2\x14B\x6B7\x3\x2\x2\x2\x14D" + - "\x6BB\x3\x2\x2\x2\x14F\x6BF\x3\x2\x2\x2\x151\x6C4\x3\x2\x2\x2\x153\x6C9" + - "\x3\x2\x2\x2\x155\x6CE\x3\x2\x2\x2\x157\x6D1\x3\x2\x2\x2\x159\x6D6\x3" + - "\x2\x2\x2\x15B\x6DB\x3\x2\x2\x2\x15D\x6E2\x3\x2\x2\x2\x15F\x6E9\x3\x2" + - "\x2\x2\x161\x6F0\x3\x2\x2\x2\x163\x6F6\x3\x2\x2\x2\x165\x6FE\x3\x2\x2" + - "\x2\x167\x706\x3\x2\x2\x2\x169\x70B\x3\x2\x2\x2\x16B\x711\x3\x2\x2\x2" + - "\x16D\x717\x3\x2\x2\x2\x16F\x71C\x3\x2\x2\x2\x171\x727\x3\x2\x2\x2\x173" + - "\x72D\x3\x2\x2\x2\x175\x731\x3\x2\x2\x2\x177\x733\x3\x2\x2\x2\x179\x736" + - "\x3\x2\x2\x2\x17B\x738\x3\x2\x2\x2\x17D\x73A\x3\x2\x2\x2\x17F\x73C\x3" + - "\x2\x2\x2\x181\x73F\x3\x2\x2\x2\x183\x741\x3\x2\x2\x2\x185\x744\x3\x2" + - "\x2\x2\x187\x746\x3\x2\x2\x2\x189\x748\x3\x2\x2\x2\x18B\x74A\x3\x2\x2" + - "\x2\x18D\x74C\x3\x2\x2\x2\x18F\x74F\x3\x2\x2\x2\x191\x751\x3\x2\x2\x2" + - "\x193\x753\x3\x2\x2\x2\x195\x755\x3\x2\x2\x2\x197\x757\x3\x2\x2\x2\x199" + - "\x759\x3\x2\x2\x2\x19B\x764\x3\x2\x2\x2\x19D\x76F\x3\x2\x2\x2\x19F\x77C" + - "\x3\x2\x2\x2\x1A1\x786\x3\x2\x2\x2\x1A3\x78E\x3\x2\x2\x2\x1A5\x7A1\x3" + - "\x2\x2\x2\x1A7\x7AD\x3\x2\x2\x2\x1A9\x7AF\x3\x2\x2\x2\x1AB\x7BD\x3\x2" + - "\x2\x2\x1AD\x7C0\x3\x2\x2\x2\x1AF\x7CA\x3\x2\x2\x2\x1B1\x7D8\x3\x2\x2" + - "\x2\x1B3\x7E5\x3\x2\x2\x2\x1B5\x804\x3\x2\x2\x2\x1B7\x807\x3\x2\x2\x2" + - "\x1B9\x80E\x3\x2\x2\x2\x1BB\x81A\x3\x2\x2\x2\x1BD\x822\x3\x2\x2\x2\x1BF" + - "\x82B\x3\x2\x2\x2\x1C1\x831\x3\x2\x2\x2\x1C3\x837\x3\x2\x2\x2\x1C5\x83B" + - "\x3\x2\x2\x2\x1C7\x840\x3\x2\x2\x2\x1C9\x845\x3\x2\x2\x2\x1CB\x84C\x3" + - "\x2\x2\x2\x1CD\x856\x3\x2\x2\x2\x1CF\x85E\x3\x2\x2\x2\x1D1\x867\x3\x2" + - "\x2\x2\x1D3\x870\x3\x2\x2\x2\x1D5\x874\x3\x2\x2\x2\x1D7\x878\x3\x2\x2" + - "\x2\x1D9\x87C\x3\x2\x2\x2\x1DB\x880\x3\x2\x2\x2\x1DD\x884\x3\x2\x2\x2" + - "\x1DF\x888\x3\x2\x2\x2\x1E1\x88C\x3\x2\x2\x2\x1E3\x890\x3\x2\x2\x2\x1E5" + - "\x894\x3\x2\x2\x2\x1E7\x898\x3\x2\x2\x2\x1E9\x89D\x3\x2\x2\x2\x1EB\x8AA" + - "\x3\x2\x2\x2\x1ED\x8AF\x3\x2\x2\x2\x1EF\x8BA\x3\x2\x2\x2\x1F1\x8C2\x3" + - "\x2\x2\x2\x1F3\x8C4\x3\x2\x2\x2\x1F5\x8C6\x3\x2\x2\x2\x1F7\x8CA\x3\x2" + - "\x2\x2\x1F9\x8DB\x3\x2\x2\x2\x1FB\x8DD\x3\x2\x2\x2\x1FD\x8DF\x3\x2\x2" + - "\x2\x1FF\x8E1\x3\x2\x2\x2\x201\x8E3\x3\x2\x2\x2\x203\x8E5\x3\x2\x2\x2" + - "\x205\x8E7\x3\x2\x2\x2\x207\x8E9\x3\x2\x2\x2\x209\x8EB\x3\x2\x2\x2\x20B" + - "\x8ED\x3\x2\x2\x2\x20D\x8EF\x3\x2\x2\x2\x20F\x8F1\x3\x2\x2\x2\x211\x8F3" + - "\x3\x2\x2\x2\x213\x8F5\x3\x2\x2\x2\x215\x8F7\x3\x2\x2\x2\x217\x8F9\x3" + - "\x2\x2\x2\x219\x8FB\x3\x2\x2\x2\x21B\x8FD\x3\x2\x2\x2\x21D\x8FF\x3\x2" + - "\x2\x2\x21F\x901\x3\x2\x2\x2\x221\x903\x3\x2\x2\x2\x223\x905\x3\x2\x2" + - "\x2\x225\x907\x3\x2\x2\x2\x227\x909\x3\x2\x2\x2\x229\x90B\x3\x2\x2\x2" + - "\x22B\x90D\x3\x2\x2\x2\x22D\x90F\x3\x2\x2\x2\x22F\x911\x3\x2\x2\x2\x231" + - "\x913\x3\x2\x2\x2\x233\x915\x3\x2\x2\x2\x235\x236\a\x42\x2\x2\x236\x4" + - "\x3\x2\x2\x2\x237\x238\a#\x2\x2\x238\x6\x3\x2\x2\x2\x239\x23A\a%\x2\x2" + - "\x23A\b\x3\x2\x2\x2\x23B\x23C\a&\x2\x2\x23C\n\x3\x2\x2\x2\x23D\x23E\a" + - "\'\x2\x2\x23E\f\x3\x2\x2\x2\x23F\x240\a=\x2\x2\x240\xE\x3\x2\x2\x2\x241" + - "\x242\a.\x2\x2\x242\x10\x3\x2\x2\x2\x243\x244\a\x30\x2\x2\x244\x12\x3" + - "\x2\x2\x2\x245\x246\x5\x201\x101\x2\x246\x247\x5\x205\x103\x2\x247\x248" + - "\x5\x205\x103\x2\x248\x249\x5\x209\x105\x2\x249\x24A\x5\x225\x113\x2\x24A" + - "\x24B\x5\x225\x113\x2\x24B\x14\x3\x2\x2\x2\x24C\x24D\x5\x201\x101\x2\x24D" + - "\x24E\x5\x207\x104\x2\x24E\x24F\x5\x207\x104\x2\x24F\x250\x5\x223\x112" + - "\x2\x250\x251\x5\x209\x105\x2\x251\x252\x5\x225\x113\x2\x252\x253\x5\x225" + - "\x113\x2\x253\x254\x5\x21D\x10F\x2\x254\x255\x5\x20B\x106\x2\x255\x16" + - "\x3\x2\x2\x2\x256\x257\x5\x201\x101\x2\x257\x258\x5\x217\x10C\x2\x258" + - "\x259\x5\x211\x109\x2\x259\x25A\x5\x201\x101\x2\x25A\x25B\x5\x225\x113" + - "\x2\x25B\x18\x3\x2\x2\x2\x25C\x25D\x5\x201\x101\x2\x25D\x25E\x5\x21B\x10E" + - "\x2\x25E\x25F\x5\x207\x104\x2\x25F\x1A\x3\x2\x2\x2\x260\x261\x5\x201\x101" + - "\x2\x261\x262\x5\x227\x114\x2\x262\x263\x5\x227\x114\x2\x263\x264\x5\x223" + - "\x112\x2\x264\x265\x5\x211\x109\x2\x265\x266\x5\x203\x102\x2\x266\x267" + - "\x5\x229\x115\x2\x267\x268\x5\x227\x114\x2\x268\x269\x5\x209\x105\x2\x269" + - "\x1C\x3\x2\x2\x2\x26A\x26B\x5\x201\x101\x2\x26B\x26C\x5\x21F\x110\x2\x26C" + - "\x26D\x5\x21F\x110\x2\x26D\x26E\x5\x201\x101\x2\x26E\x26F\x5\x205\x103" + - "\x2\x26F\x270\x5\x227\x114\x2\x270\x271\x5\x211\x109\x2\x271\x272\x5\x22B" + - "\x116\x2\x272\x273\x5\x201\x101\x2\x273\x274\x5\x227\x114\x2\x274\x275" + - "\x5\x209\x105\x2\x275\x1E\x3\x2\x2\x2\x276\x277\x5\x201\x101\x2\x277\x278" + - "\x5\x21F\x110\x2\x278\x279\x5\x21F\x110\x2\x279\x27A\x5\x209\x105\x2\x27A" + - "\x27B\x5\x21B\x10E\x2\x27B\x27C\x5\x207\x104\x2\x27C \x3\x2\x2\x2\x27D" + - "\x27E\x5\x201\x101\x2\x27E\x27F\x5\x225\x113\x2\x27F\"\x3\x2\x2\x2\x280" + - "\x281\x5\x203\x102\x2\x281\x282\x5\x209\x105\x2\x282\x283\x5\x20D\x107" + - "\x2\x283\x284\x5\x211\x109\x2\x284\x285\x5\x21B\x10E\x2\x285$\x3\x2\x2" + - "\x2\x286\x287\x5\x203\x102\x2\x287\x288\x5\x209\x105\x2\x288\x289\x5\x209" + - "\x105\x2\x289\x28A\x5\x21F\x110\x2\x28A&\x3\x2\x2\x2\x28B\x28C\x5\x203" + - "\x102\x2\x28C\x28D\x5\x211\x109\x2\x28D\x28E\x5\x21B\x10E\x2\x28E\x28F" + - "\x5\x201\x101\x2\x28F\x290\x5\x223\x112\x2\x290\x291\x5\x231\x119\x2\x291" + - "(\x3\x2\x2\x2\x292\x293\x5\x203\x102\x2\x293\x294\x5\x21D\x10F\x2\x294" + - "\x295\x5\x21D\x10F\x2\x295\x296\x5\x217\x10C\x2\x296\x297\x5\x209\x105" + - "\x2\x297\x298\x5\x201\x101\x2\x298\x299\x5\x21B\x10E\x2\x299*\x3\x2\x2" + - "\x2\x29A\x29B\x5\x203\x102\x2\x29B\x29C\x5\x231\x119\x2\x29C\x29D\x5\x22B" + - "\x116\x2\x29D\x29E\x5\x201\x101\x2\x29E\x29F\x5\x217\x10C\x2\x29F,\x3" + - "\x2\x2\x2\x2A0\x2A1\x5\x203\x102\x2\x2A1\x2A2\x5\x231\x119\x2\x2A2\x2A3" + - "\x5\x223\x112\x2\x2A3\x2A4\x5\x209\x105\x2\x2A4\x2A5\x5\x20B\x106\x2\x2A5" + - ".\x3\x2\x2\x2\x2A6\x2A7\x5\x203\x102\x2\x2A7\x2A8\x5\x231\x119\x2\x2A8" + - "\x2A9\x5\x227\x114\x2\x2A9\x2AA\x5\x209\x105\x2\x2AA\x30\x3\x2\x2\x2\x2AB" + - "\x2AC\x5\x205\x103\x2\x2AC\x2AD\x5\x201\x101\x2\x2AD\x2AE\x5\x217\x10C" + - "\x2\x2AE\x2AF\x5\x217\x10C\x2\x2AF\x32\x3\x2\x2\x2\x2B0\x2B1\x5\x205\x103" + - "\x2\x2B1\x2B2\x5\x201\x101\x2\x2B2\x2B3\x5\x225\x113\x2\x2B3\x2B4\x5\x209" + - "\x105\x2\x2B4\x34\x3\x2\x2\x2\x2B5\x2B6\x5\x205\x103\x2\x2B6\x2B7\x5\x20F" + - "\x108\x2\x2B7\x2B8\x5\x207\x104\x2\x2B8\x2B9\x5\x211\x109\x2\x2B9\x2BA" + - "\x5\x223\x112\x2\x2BA\x36\x3\x2\x2\x2\x2BB\x2BC\x5\x205\x103\x2\x2BC\x2BD" + - "\x5\x20F\x108\x2\x2BD\x2BE\x5\x207\x104\x2\x2BE\x2BF\x5\x223\x112\x2\x2BF" + - "\x2C0\x5\x211\x109\x2\x2C0\x2C1\x5\x22B\x116\x2\x2C1\x2C2\x5\x209\x105" + - "\x2\x2C2\x38\x3\x2\x2\x2\x2C3\x2C4\x5\x205\x103\x2\x2C4\x2C5\x5\x217\x10C" + - "\x2\x2C5\x2C6\x5\x201\x101\x2\x2C6\x2C7\x5\x225\x113\x2\x2C7\x2C8\x5\x225" + - "\x113\x2\x2C8:\x3\x2\x2\x2\x2C9\x2CA\x5\x205\x103\x2\x2CA\x2CB\x5\x217" + - "\x10C\x2\x2CB\x2CC\x5\x21D\x10F\x2\x2CC\x2CD\x5\x225\x113\x2\x2CD\x2CE" + - "\x5\x209\x105\x2\x2CE<\x3\x2\x2\x2\x2CF\x2D0\x5\x205\x103\x2\x2D0\x2D1" + - "\x5\x21D\x10F\x2\x2D1\x2D2\x5\x217\x10C\x2\x2D2\x2D3\x5\x217\x10C\x2\x2D3" + - "\x2D4\x5\x209\x105\x2\x2D4\x2D5\x5\x205\x103\x2\x2D5\x2D6\x5\x227\x114" + - "\x2\x2D6\x2D7\x5\x211\x109\x2\x2D7\x2D8\x5\x21D\x10F\x2\x2D8\x2D9\x5\x21B" + - "\x10E\x2\x2D9>\x3\x2\x2\x2\x2DA\x2DB\x5\x205\x103\x2\x2DB\x2DC\x5\x21D" + - "\x10F\x2\x2DC\x2DD\x5\x21B\x10E\x2\x2DD\x2DE\x5\x225\x113\x2\x2DE\x2DF" + - "\x5\x227\x114\x2\x2DF@\x3\x2\x2\x2\x2E0\x2E1\x5\x207\x104\x2\x2E1\x2E2" + - "\x5\x201\x101\x2\x2E2\x2E3\x5\x227\x114\x2\x2E3\x2E4\x5\x201\x101\x2\x2E4" + - "\x2E5\x5\x203\x102\x2\x2E5\x2E6\x5\x201\x101\x2\x2E6\x2E7\x5\x225\x113" + - "\x2\x2E7\x2E8\x5\x209\x105\x2\x2E8\x42\x3\x2\x2\x2\x2E9\x2EA\x5\x207\x104" + - "\x2\x2EA\x2EB\x5\x201\x101\x2\x2EB\x2EC\x5\x227\x114\x2\x2EC\x2ED\x5\x209" + - "\x105\x2\x2ED\x44\x3\x2\x2\x2\x2EE\x2EF\x5\x207\x104\x2\x2EF\x2F0\x5\x209" + - "\x105\x2\x2F0\x2F1\x5\x205\x103\x2\x2F1\x2F2\x5\x217\x10C\x2\x2F2\x2F3" + - "\x5\x201\x101\x2\x2F3\x2F4\x5\x223\x112\x2\x2F4\x2F5\x5\x209\x105\x2\x2F5" + - "\x46\x3\x2\x2\x2\x2F6\x2F7\x5\x207\x104\x2\x2F7\x2F8\x5\x209\x105\x2\x2F8" + - "\x2F9\x5\x20B\x106\x2\x2F9\x2FA\x5\x203\x102\x2\x2FA\x2FB\x5\x21D\x10F" + - "\x2\x2FB\x2FC\x5\x21D\x10F\x2\x2FC\x2FD\x5\x217\x10C\x2\x2FDH\x3\x2\x2" + - "\x2\x2FE\x2FF\x5\x207\x104\x2\x2FF\x300\x5\x209\x105\x2\x300\x301\x5\x20B" + - "\x106\x2\x301\x302\x5\x203\x102\x2\x302\x303\x5\x231\x119\x2\x303\x304" + - "\x5\x227\x114\x2\x304\x305\x5\x209\x105\x2\x305J\x3\x2\x2\x2\x306\x307" + - "\x5\x207\x104\x2\x307\x308\x5\x209\x105\x2\x308\x309\x5\x20B\x106\x2\x309" + - "\x30A\x5\x207\x104\x2\x30A\x30B\x5\x201\x101\x2\x30B\x30C\x5\x227\x114" + - "\x2\x30C\x30D\x5\x209\x105\x2\x30DL\x3\x2\x2\x2\x30E\x30F\x5\x207\x104" + - "\x2\x30F\x310\x5\x209\x105\x2\x310\x311\x5\x20B\x106\x2\x311\x312\x5\x207" + - "\x104\x2\x312\x313\x5\x203\x102\x2\x313\x314\x5\x217\x10C\x2\x314N\x3" + - "\x2\x2\x2\x315\x316\x5\x207\x104\x2\x316\x317\x5\x209\x105\x2\x317\x318" + - "\x5\x20B\x106\x2\x318\x319\x5\x207\x104\x2\x319\x31A\x5\x209\x105\x2\x31A" + - "\x31B\x5\x205\x103\x2\x31BP\x3\x2\x2\x2\x31C\x31D\x5\x207\x104\x2\x31D" + - "\x31E\x5\x209\x105\x2\x31E\x31F\x5\x20B\x106\x2\x31F\x320\x5\x205\x103" + - "\x2\x320\x321\x5\x229\x115\x2\x321\x322\x5\x223\x112\x2\x322R\x3\x2\x2" + - "\x2\x323\x324\x5\x207\x104\x2\x324\x325\x5\x209\x105\x2\x325\x326\x5\x20B" + - "\x106\x2\x326\x327\x5\x211\x109\x2\x327\x328\x5\x21B\x10E\x2\x328\x329" + - "\x5\x227\x114\x2\x329T\x3\x2\x2\x2\x32A\x32B\x5\x207\x104\x2\x32B\x32C" + - "\x5\x209\x105\x2\x32C\x32D\x5\x20B\x106\x2\x32D\x32E\x5\x217\x10C\x2\x32E" + - "\x32F\x5\x21B\x10E\x2\x32F\x330\x5\x20D\x107\x2\x330V\x3\x2\x2\x2\x331" + - "\x332\x5\x207\x104\x2\x332\x333\x5\x209\x105\x2\x333\x334\x5\x20B\x106" + - "\x2\x334\x335\x5\x21D\x10F\x2\x335\x336\x5\x203\x102\x2\x336\x337\x5\x213" + - "\x10A\x2\x337X\x3\x2\x2\x2\x338\x339\x5\x207\x104\x2\x339\x33A\x5\x209" + - "\x105\x2\x33A\x33B\x5\x20B\x106\x2\x33B\x33C\x5\x225\x113\x2\x33C\x33D" + - "\x5\x21B\x10E\x2\x33D\x33E\x5\x20D\x107\x2\x33EZ\x3\x2\x2\x2\x33F\x340" + - "\x5\x207\x104\x2\x340\x341\x5\x209\x105\x2\x341\x342\x5\x20B\x106\x2\x342" + - "\x343\x5\x225\x113\x2\x343\x344\x5\x227\x114\x2\x344\x345\x5\x223\x112" + - "\x2\x345\\\x3\x2\x2\x2\x346\x347\x5\x207\x104\x2\x347\x348\x5\x209\x105" + - "\x2\x348\x349\x5\x20B\x106\x2\x349\x34A\x5\x22B\x116\x2\x34A\x34B\x5\x201" + - "\x101\x2\x34B\x34C\x5\x223\x112\x2\x34C^\x3\x2\x2\x2\x34D\x34E\x5\x207" + - "\x104\x2\x34E\x34F\x5\x209\x105\x2\x34F\x350\x5\x217\x10C\x2\x350\x351" + - "\x5\x209\x105\x2\x351\x352\x5\x227\x114\x2\x352\x353\x5\x209\x105\x2\x353" + - "\x354\x5\x225\x113\x2\x354\x355\x5\x209\x105\x2\x355\x356\x5\x227\x114" + - "\x2\x356\x357\x5\x227\x114\x2\x357\x358\x5\x211\x109\x2\x358\x359\x5\x21B" + - "\x10E\x2\x359\x35A\x5\x20D\x107\x2\x35A`\x3\x2\x2\x2\x35B\x35C\x5\x207" + - "\x104\x2\x35C\x35D\x5\x211\x109\x2\x35D\x35E\x5\x219\x10D\x2\x35E\x62" + - "\x3\x2\x2\x2\x35F\x360\x5\x207\x104\x2\x360\x361\x5\x21D\x10F\x2\x361" + - "\x64\x3\x2\x2\x2\x362\x363\x5\x207\x104\x2\x363\x364\x5\x21D\x10F\x2\x364" + - "\x365\x5\x229\x115\x2\x365\x366\x5\x203\x102\x2\x366\x367\x5\x217\x10C" + - "\x2\x367\x368\x5\x209\x105\x2\x368\x66\x3\x2\x2\x2\x369\x36A\x5\x209\x105" + - "\x2\x36A\x36B\x5\x201\x101\x2\x36B\x36C\x5\x205\x103\x2\x36C\x36D\x5\x20F" + - "\x108\x2\x36Dh\x3\x2\x2\x2\x36E\x36F\x5\x209\x105\x2\x36F\x370\x5\x217" + - "\x10C\x2\x370\x371\x5\x225\x113\x2\x371\x372\x5\x209\x105\x2\x372j\x3" + - "\x2\x2\x2\x373\x374\x5\x209\x105\x2\x374\x375\x5\x217\x10C\x2\x375\x376" + - "\x5\x225\x113\x2\x376\x377\x5\x209\x105\x2\x377\x378\x5\x211\x109\x2\x378" + - "\x379\x5\x20B\x106\x2\x379l\x3\x2\x2\x2\x37A\x37B\x5\x209\x105\x2\x37B" + - "\x37C\x5\x21B\x10E\x2\x37C\x37D\x5\x207\x104\x2\x37D\x37E\x5\x1F7\xFC" + - "\x2\x37E\x37F\x5\x209\x105\x2\x37F\x380\x5\x21B\x10E\x2\x380\x381\x5\x229" + - "\x115\x2\x381\x382\x5\x219\x10D\x2\x382n\x3\x2\x2\x2\x383\x384\x5\x209" + - "\x105\x2\x384\x385\x5\x21B\x10E\x2\x385\x386\x5\x207\x104\x2\x386\x387" + - "\x5\x1F7\xFC\x2\x387\x388\x5\x20B\x106\x2\x388\x389\x5\x229\x115\x2\x389" + - "\x38A\x5\x21B\x10E\x2\x38A\x38B\x5\x205\x103\x2\x38B\x38C\x5\x227\x114" + - "\x2\x38C\x38D\x5\x211\x109\x2\x38D\x38E\x5\x21D\x10F\x2\x38E\x38F\x5\x21B" + - "\x10E\x2\x38Fp\x3\x2\x2\x2\x390\x391\x5\x209\x105\x2\x391\x392\x5\x21B" + - "\x10E\x2\x392\x393\x5\x207\x104\x2\x393\x394\x5\x1F7\xFC\x2\x394\x395" + - "\x5\x211\x109\x2\x395\x396\x5\x20B\x106\x2\x396r\x3\x2\x2\x2\x397\x398" + - "\x5\x209\x105\x2\x398\x399\x5\x21B\x10E\x2\x399\x39A\x5\x207\x104\x2\x39A" + - "\x39B\x5\x1F7\xFC\x2\x39B\x39C\x5\x21F\x110\x2\x39C\x39D\x5\x223\x112" + - "\x2\x39D\x39E\x5\x21D\x10F\x2\x39E\x39F\x5\x21F\x110\x2\x39F\x3A0\x5\x209" + - "\x105\x2\x3A0\x3A1\x5\x223\x112\x2\x3A1\x3A2\x5\x227\x114\x2\x3A2\x3A3" + - "\x5\x231\x119\x2\x3A3t\x3\x2\x2\x2\x3A4\x3A5\x5\x209\x105\x2\x3A5\x3A6" + - "\x5\x21B\x10E\x2\x3A6\x3A7\x5\x207\x104\x2\x3A7\x3A8\x5\x1F7\xFC\x2\x3A8" + - "\x3A9\x5\x225\x113\x2\x3A9\x3AA\x5\x209\x105\x2\x3AA\x3AB\x5\x217\x10C" + - "\x2\x3AB\x3AC\x5\x209\x105\x2\x3AC\x3AD\x5\x205\x103\x2\x3AD\x3AE\x5\x227" + - "\x114\x2\x3AEv\x3\x2\x2\x2\x3AF\x3B0\x5\x209\x105\x2\x3B0\x3B1\x5\x21B" + - "\x10E\x2\x3B1\x3B2\x5\x207\x104\x2\x3B2\x3B3\x5\x1F7\xFC\x2\x3B3\x3B4" + - "\x5\x225\x113\x2\x3B4\x3B5\x5\x229\x115\x2\x3B5\x3B6\x5\x203\x102\x2\x3B6" + - "x\x3\x2\x2\x2\x3B7\x3B8\x5\x209\x105\x2\x3B8\x3B9\x5\x21B\x10E\x2\x3B9" + - "\x3BA\x5\x207\x104\x2\x3BA\x3BB\x5\x1F7\xFC\x2\x3BB\x3BC\x5\x227\x114" + - "\x2\x3BC\x3BD\x5\x231\x119\x2\x3BD\x3BE\x5\x21F\x110\x2\x3BE\x3BF\x5\x209" + - "\x105\x2\x3BFz\x3\x2\x2\x2\x3C0\x3C1\x5\x209\x105\x2\x3C1\x3C2\x5\x21B" + - "\x10E\x2\x3C2\x3C3\x5\x207\x104\x2\x3C3\x3C4\x5\x1F7\xFC\x2\x3C4\x3C5" + - "\x5\x22D\x117\x2\x3C5\x3C6\x5\x211\x109\x2\x3C6\x3C7\x5\x227\x114\x2\x3C7" + - "\x3C8\x5\x20F\x108\x2\x3C8|\x3\x2\x2\x2\x3C9\x3CA\x5\x209\x105\x2\x3CA" + - "\x3CB\x5\x21B\x10E\x2\x3CB\x3CC\x5\x207\x104\x2\x3CC~\x3\x2\x2\x2\x3CD" + - "\x3CE\x5\x209\x105\x2\x3CE\x3CF\x5\x21B\x10E\x2\x3CF\x3D0\x5\x229\x115" + - "\x2\x3D0\x3D1\x5\x219\x10D\x2\x3D1\x80\x3\x2\x2\x2\x3D2\x3D3\x5\x209\x105" + - "\x2\x3D3\x3D4\x5\x221\x111\x2\x3D4\x3D5\x5\x22B\x116\x2\x3D5\x82\x3\x2" + - "\x2\x2\x3D6\x3D7\x5\x209\x105\x2\x3D7\x3D8\x5\x223\x112\x2\x3D8\x3D9\x5" + - "\x201\x101\x2\x3D9\x3DA\x5\x225\x113\x2\x3DA\x3DB\x5\x209\x105\x2\x3DB" + - "\x84\x3\x2\x2\x2\x3DC\x3DD\x5\x209\x105\x2\x3DD\x3DE\x5\x223\x112\x2\x3DE" + - "\x3DF\x5\x223\x112\x2\x3DF\x3E0\x5\x21D\x10F\x2\x3E0\x3E1\x5\x223\x112" + - "\x2\x3E1\x86\x3\x2\x2\x2\x3E2\x3E3\x5\x209\x105\x2\x3E3\x3E4\x5\x22B\x116" + - "\x2\x3E4\x3E5\x5\x209\x105\x2\x3E5\x3E6\x5\x21B\x10E\x2\x3E6\x3E7\x5\x227" + - "\x114\x2\x3E7\x88\x3\x2\x2\x2\x3E8\x3E9\x5\x209\x105\x2\x3E9\x3EA\x5\x22F" + - "\x118\x2\x3EA\x3EB\x5\x211\x109\x2\x3EB\x3EC\x5\x227\x114\x2\x3EC\x3ED" + - "\x5\x1F7\xFC\x2\x3ED\x3EE\x5\x207\x104\x2\x3EE\x3EF\x5\x21D\x10F\x2\x3EF" + - "\x8A\x3\x2\x2\x2\x3F0\x3F1\x5\x209\x105\x2\x3F1\x3F2\x5\x22F\x118\x2\x3F2" + - "\x3F3\x5\x211\x109\x2\x3F3\x3F4\x5\x227\x114\x2\x3F4\x3F5\x5\x1F7\xFC" + - "\x2\x3F5\x3F6\x5\x20B\x106\x2\x3F6\x3F7\x5\x21D\x10F\x2\x3F7\x3F8\x5\x223" + - "\x112\x2\x3F8\x8C\x3\x2\x2\x2\x3F9\x3FA\x5\x209\x105\x2\x3FA\x3FB\x5\x22F" + - "\x118\x2\x3FB\x3FC\x5\x211\x109\x2\x3FC\x3FD\x5\x227\x114\x2\x3FD\x3FE" + - "\x5\x1F7\xFC\x2\x3FE\x3FF\x5\x20B\x106\x2\x3FF\x400\x5\x229\x115\x2\x400" + - "\x401\x5\x21B\x10E\x2\x401\x402\x5\x205\x103\x2\x402\x403\x5\x227\x114" + - "\x2\x403\x404\x5\x211\x109\x2\x404\x405\x5\x21D\x10F\x2\x405\x406\x5\x21B" + - "\x10E\x2\x406\x8E\x3\x2\x2\x2\x407\x408\x5\x209\x105\x2\x408\x409\x5\x22F" + - "\x118\x2\x409\x40A\x5\x211\x109\x2\x40A\x40B\x5\x227\x114\x2\x40B\x40C" + - "\x5\x1F7\xFC\x2\x40C\x40D\x5\x21F\x110\x2\x40D\x40E\x5\x223\x112\x2\x40E" + - "\x40F\x5\x21D\x10F\x2\x40F\x410\x5\x21F\x110\x2\x410\x411\x5\x209\x105" + - "\x2\x411\x412\x5\x223\x112\x2\x412\x413\x5\x227\x114\x2\x413\x414\x5\x231" + - "\x119\x2\x414\x90\x3\x2\x2\x2\x415\x416\x5\x209\x105\x2\x416\x417\x5\x22F" + - "\x118\x2\x417\x418\x5\x211\x109\x2\x418\x419\x5\x227\x114\x2\x419\x41A" + - "\x5\x1F7\xFC\x2\x41A\x41B\x5\x225\x113\x2\x41B\x41C\x5\x229\x115\x2\x41C" + - "\x41D\x5\x203\x102\x2\x41D\x92\x3\x2\x2\x2\x41E\x41F\x5\x20B\x106\x2\x41F" + - "\x420\x5\x201\x101\x2\x420\x421\x5\x217\x10C\x2\x421\x422\x5\x225\x113" + - "\x2\x422\x423\x5\x209\x105\x2\x423\x94\x3\x2\x2\x2\x424\x425\x5\x20B\x106" + - "\x2\x425\x426\x5\x211\x109\x2\x426\x427\x5\x217\x10C\x2\x427\x428\x5\x209" + - "\x105\x2\x428\x429\x5\x205\x103\x2\x429\x42A\x5\x21D\x10F\x2\x42A\x42B" + - "\x5\x21F\x110\x2\x42B\x42C\x5\x231\x119\x2\x42C\x96\x3\x2\x2\x2\x42D\x42E" + - "\x5\x20B\x106\x2\x42E\x42F\x5\x223\x112\x2\x42F\x430\x5\x211\x109\x2\x430" + - "\x431\x5\x209\x105\x2\x431\x432\x5\x21B\x10E\x2\x432\x433\x5\x207\x104" + - "\x2\x433\x98\x3\x2\x2\x2\x434\x435\x5\x20B\x106\x2\x435\x436\x5\x21D\x10F" + - "\x2\x436\x437\x5\x223\x112\x2\x437\x9A\x3\x2\x2\x2\x438\x439\x5\x20B\x106" + - "\x2\x439\x43A\x5\x229\x115\x2\x43A\x43B\x5\x21B\x10E\x2\x43B\x43C\x5\x205" + - "\x103\x2\x43C\x43D\x5\x227\x114\x2\x43D\x43E\x5\x211\x109\x2\x43E\x43F" + - "\x5\x21D\x10F\x2\x43F\x440\x5\x21B\x10E\x2\x440\x9C\x3\x2\x2\x2\x441\x442" + - "\x5\x20D\x107\x2\x442\x443\x5\x209\x105\x2\x443\x444\x5\x227\x114\x2\x444" + - "\x9E\x3\x2\x2\x2\x445\x446\x5\x20D\x107\x2\x446\x447\x5\x217\x10C\x2\x447" + - "\x448\x5\x21D\x10F\x2\x448\x449\x5\x203\x102\x2\x449\x44A\x5\x201\x101" + - "\x2\x44A\x44B\x5\x217\x10C\x2\x44B\xA0\x3\x2\x2\x2\x44C\x44D\x5\x20D\x107" + - "\x2\x44D\x44E\x5\x21D\x10F\x2\x44E\x44F\x5\x225\x113\x2\x44F\x450\x5\x229" + - "\x115\x2\x450\x451\x5\x203\x102\x2\x451\xA2\x3\x2\x2\x2\x452\x453\x5\x20D" + - "\x107\x2\x453\x454\x5\x21D\x10F\x2\x454\x455\x5\x227\x114\x2\x455\x456" + - "\x5\x21D\x10F\x2\x456\xA4\x3\x2\x2\x2\x457\x458\x5\x211\x109\x2\x458\x459" + - "\x5\x20B\x106\x2\x459\xA6\x3\x2\x2\x2\x45A\x45B\x5\x211\x109\x2\x45B\x45C" + - "\x5\x219\x10D\x2\x45C\x45D\x5\x21F\x110\x2\x45D\xA8\x3\x2\x2\x2\x45E\x45F" + - "\x5\x211\x109\x2\x45F\x460\x5\x219\x10D\x2\x460\x461\x5\x21F\x110\x2\x461" + - "\x462\x5\x217\x10C\x2\x462\x463\x5\x209\x105\x2\x463\x464\x5\x219\x10D" + - "\x2\x464\x465\x5\x209\x105\x2\x465\x466\x5\x21B\x10E\x2\x466\x467\x5\x227" + - "\x114\x2\x467\x468\x5\x225\x113\x2\x468\xAA\x3\x2\x2\x2\x469\x46A\x5\x211" + - "\x109\x2\x46A\x46B\x5\x21B\x10E\x2\x46B\xAC\x3\x2\x2\x2\x46C\x46D\x5\x211" + - "\x109\x2\x46D\x46E\x5\x21B\x10E\x2\x46E\x46F\x5\x21F\x110\x2\x46F\x470" + - "\x5\x229\x115\x2\x470\x471\x5\x227\x114\x2\x471\xAE\x3\x2\x2\x2\x472\x473" + - "\x5\x211\x109\x2\x473\x474\x5\x225\x113\x2\x474\xB0\x3\x2\x2\x2\x475\x476" + - "\x5\x211\x109\x2\x476\x477\x5\x21B\x10E\x2\x477\x478\x5\x227\x114\x2\x478" + - "\x479\x5\x209\x105\x2\x479\x47A\x5\x20D\x107\x2\x47A\x47B\x5\x209\x105" + - "\x2\x47B\x47C\x5\x223\x112\x2\x47C\xB2\x3\x2\x2\x2\x47D\x47E\x5\x215\x10B" + - "\x2\x47E\x47F\x5\x211\x109\x2\x47F\x480\x5\x217\x10C\x2\x480\x481\x5\x217" + - "\x10C\x2\x481\xB4\x3\x2\x2\x2\x482\x483\x5\x217\x10C\x2\x483\x484\x5\x21D" + - "\x10F\x2\x484\x485\x5\x201\x101\x2\x485\x486\x5\x207\x104\x2\x486\xB6" + - "\x3\x2\x2\x2\x487\x488\x5\x217\x10C\x2\x488\x489\x5\x21D\x10F\x2\x489" + - "\x48A\x5\x205\x103\x2\x48A\x48B\x5\x215\x10B\x2\x48B\xB8\x3\x2\x2\x2\x48C" + - "\x48D\x5\x217\x10C\x2\x48D\x48E\x5\x21D\x10F\x2\x48E\x48F\x5\x21B\x10E" + - "\x2\x48F\x490\x5\x20D\x107\x2\x490\xBA\x3\x2\x2\x2\x491\x492\x5\x217\x10C" + - "\x2\x492\x493\x5\x21D\x10F\x2\x493\x494\x5\x21D\x10F\x2\x494\x495\x5\x21F" + - "\x110\x2\x495\xBC\x3\x2\x2\x2\x496\x497\x5\x217\x10C\x2\x497\x498\x5\x209" + - "\x105\x2\x498\x499\x5\x21B\x10E\x2\x499\xBE\x3\x2\x2\x2\x49A\x49B\x5\x217" + - "\x10C\x2\x49B\x49C\x5\x209\x105\x2\x49C\x49D\x5\x227\x114\x2\x49D\xC0" + - "\x3\x2\x2\x2\x49E\x49F\x5\x217\x10C\x2\x49F\x4A0\x5\x211\x109\x2\x4A0" + - "\x4A1\x5\x203\x102\x2\x4A1\xC2\x3\x2\x2\x2\x4A2\x4A3\x5\x217\x10C\x2\x4A3" + - "\x4A4\x5\x211\x109\x2\x4A4\x4A5\x5\x215\x10B\x2\x4A5\x4A6\x5\x209\x105" + - "\x2\x4A6\xC4\x3\x2\x2\x2\x4A7\x4A8\x5\x217\x10C\x2\x4A8\x4A9\x5\x211\x109" + - "\x2\x4A9\x4AA\x5\x21B\x10E\x2\x4AA\x4AB\x5\x209\x105\x2\x4AB\x4AC\x5\x1F7" + - "\xFC\x2\x4AC\x4AD\x5\x211\x109\x2\x4AD\x4AE\x5\x21B\x10E\x2\x4AE\x4AF" + - "\x5\x21F\x110\x2\x4AF\x4B0\x5\x229\x115\x2\x4B0\x4B1\x5\x227\x114\x2\x4B1" + - "\xC6\x3\x2\x2\x2\x4B2\x4B3\x5\x217\x10C\x2\x4B3\x4B4\x5\x21D\x10F\x2\x4B4" + - "\x4B5\x5\x205\x103\x2\x4B5\x4B6\x5\x215\x10B\x2\x4B6\x4B7\x5\x1F7\xFC" + - "\x2\x4B7\x4B8\x5\x223\x112\x2\x4B8\x4B9\x5\x209\x105\x2\x4B9\x4BA\x5\x201" + - "\x101\x2\x4BA\x4BB\x5\x207\x104\x2\x4BB\xC8\x3\x2\x2\x2\x4BC\x4BD\x5\x217" + - "\x10C\x2\x4BD\x4BE\x5\x21D\x10F\x2\x4BE\x4BF\x5\x205\x103\x2\x4BF\x4C0" + - "\x5\x215\x10B\x2\x4C0\x4C1\x5\x1F7\xFC\x2\x4C1\x4C2\x5\x22D\x117\x2\x4C2" + - "\x4C3\x5\x223\x112\x2\x4C3\x4C4\x5\x211\x109\x2\x4C4\x4C5\x5\x227\x114" + - "\x2\x4C5\x4C6\x5\x209\x105\x2\x4C6\xCA\x3\x2\x2\x2\x4C7\x4C8\x5\x217\x10C" + - "\x2\x4C8\x4C9\x5\x21D\x10F\x2\x4C9\x4CA\x5\x205\x103\x2\x4CA\x4CB\x5\x215" + - "\x10B\x2\x4CB\x4CC\x5\x1F7\xFC\x2\x4CC\x4CD\x5\x223\x112\x2\x4CD\x4CE" + - "\x5\x209\x105\x2\x4CE\x4CF\x5\x201\x101\x2\x4CF\x4D0\x5\x207\x104\x2\x4D0" + - "\x4D1\x5\x1F7\xFC\x2\x4D1\x4D2\x5\x22D\x117\x2\x4D2\x4D3\x5\x223\x112" + - "\x2\x4D3\x4D4\x5\x211\x109\x2\x4D4\x4D5\x5\x227\x114\x2\x4D5\x4D6\x5\x209" + - "\x105\x2\x4D6\xCC\x3\x2\x2\x2\x4D7\x4D8\x5\x217\x10C\x2\x4D8\x4D9\x5\x225" + - "\x113\x2\x4D9\x4DA\x5\x209\x105\x2\x4DA\x4DB\x5\x227\x114\x2\x4DB\xCE" + - "\x3\x2\x2\x2\x4DC\x4DD\a%\x2\x2\x4DD\x4DE\x5\x205\x103\x2\x4DE\x4DF\x5" + - "\x21D\x10F\x2\x4DF\x4E0\x5\x21B\x10E\x2\x4E0\x4E1\x5\x225\x113\x2\x4E1" + - "\x4E2\x5\x227\x114\x2\x4E2\xD0\x3\x2\x2\x2\x4E3\x4E4\a%\x2\x2\x4E4\x4E5" + - "\x5\x211\x109\x2\x4E5\x4E6\x5\x20B\x106\x2\x4E6\xD2\x3\x2\x2\x2\x4E7\x4E8" + - "\a%\x2\x2\x4E8\x4E9\x5\x209\x105\x2\x4E9\x4EA\x5\x217\x10C\x2\x4EA\x4EB" + - "\x5\x225\x113\x2\x4EB\x4EC\x5\x209\x105\x2\x4EC\x4ED\x5\x211\x109\x2\x4ED" + - "\x4EE\x5\x20B\x106\x2\x4EE\xD4\x3\x2\x2\x2\x4EF\x4F0\a%\x2\x2\x4F0\x4F1" + - "\x5\x209\x105\x2\x4F1\x4F2\x5\x217\x10C\x2\x4F2\x4F3\x5\x225\x113\x2\x4F3" + - "\x4F4\x5\x209\x105\x2\x4F4\xD6\x3\x2\x2\x2\x4F5\x4F6\a%\x2\x2\x4F6\x4F7" + - "\x5\x209\x105\x2\x4F7\x4F8\x5\x21B\x10E\x2\x4F8\x4FA\x5\x207\x104\x2\x4F9" + - "\x4FB\x5\x1F7\xFC\x2\x4FA\x4F9\x3\x2\x2\x2\x4FA\x4FB\x3\x2\x2\x2\x4FB" + - "\x4FC\x3\x2\x2\x2\x4FC\x4FD\x5\x211\x109\x2\x4FD\x4FE\x5\x20B\x106\x2" + - "\x4FE\xD8\x3\x2\x2\x2\x4FF\x500\x5\x219\x10D\x2\x500\x501\x5\x209\x105" + - "\x2\x501\xDA\x3\x2\x2\x2\x502\x503\x5\x219\x10D\x2\x503\x504\x5\x211\x109" + - "\x2\x504\x505\x5\x207\x104\x2\x505\xDC\x3\x2\x2\x2\x506\x507\x5\x219\x10D" + - "\x2\x507\x508\x5\x215\x10B\x2\x508\x509\x5\x207\x104\x2\x509\x50A\x5\x211" + - "\x109\x2\x50A\x50B\x5\x223\x112\x2\x50B\xDE\x3\x2\x2\x2\x50C\x50D\x5\x219" + - "\x10D\x2\x50D\x50E\x5\x21D\x10F\x2\x50E\x50F\x5\x207\x104\x2\x50F\xE0" + - "\x3\x2\x2\x2\x510\x511\x5\x21B\x10E\x2\x511\x512\x5\x201\x101\x2\x512" + - "\x513\x5\x219\x10D\x2\x513\x514\x5\x209\x105\x2\x514\xE2\x3\x2\x2\x2\x515" + - "\x516\x5\x21B\x10E\x2\x516\x517\x5\x209\x105\x2\x517\x518\x5\x22F\x118" + - "\x2\x518\x519\x5\x227\x114\x2\x519\xE4\x3\x2\x2\x2\x51A\x51B\x5\x21B\x10E" + - "\x2\x51B\x51C\x5\x209\x105\x2\x51C\x51D\x5\x22D\x117\x2\x51D\xE6\x3\x2" + - "\x2\x2\x51E\x51F\x5\x21B\x10E\x2\x51F\x520\x5\x21D\x10F\x2\x520\x521\x5" + - "\x227\x114\x2\x521\xE8\x3\x2\x2\x2\x522\x523\x5\x21B\x10E\x2\x523\x524" + - "\x5\x21D\x10F\x2\x524\x525\x5\x227\x114\x2\x525\x526\x5\x20F\x108\x2\x526" + - "\x527\x5\x211\x109\x2\x527\x528\x5\x21B\x10E\x2\x528\x529\x5\x20D\x107" + - "\x2\x529\xEA\x3\x2\x2\x2\x52A\x52B\x5\x21B\x10E\x2\x52B\x52C\x5\x229\x115" + - "\x2\x52C\x52D\x5\x217\x10C\x2\x52D\x52E\x5\x217\x10C\x2\x52E\xEC\x3\x2" + - "\x2\x2\x52F\x530\x5\x21D\x10F\x2\x530\x531\x5\x21B\x10E\x2\x531\xEE\x3" + - "\x2\x2\x2\x532\x533\x5\x21D\x10F\x2\x533\x534\x5\x21B\x10E\x2\x534\x535" + - "\x5\x1F7\xFC\x2\x535\x536\x5\x209\x105\x2\x536\x537\x5\x223\x112\x2\x537" + - "\x538\x5\x223\x112\x2\x538\x539\x5\x21D\x10F\x2\x539\x53A\x5\x223\x112" + - "\x2\x53A\xF0\x3\x2\x2\x2\x53B\x53C\x5\x21D\x10F\x2\x53C\x53D\x5\x21B\x10E" + - "\x2\x53D\x53E\x5\x1F7\xFC\x2\x53E\x53F\x5\x217\x10C\x2\x53F\x540\x5\x21D" + - "\x10F\x2\x540\x541\x5\x205\x103\x2\x541\x542\x5\x201\x101\x2\x542\x543" + - "\x5\x217\x10C\x2\x543\x544\x5\x1F7\xFC\x2\x544\x545\x5\x209\x105\x2\x545" + - "\x546\x5\x223\x112\x2\x546\x547\x5\x223\x112\x2\x547\x548\x5\x21D\x10F" + - "\x2\x548\x549\x5\x223\x112\x2\x549\xF2\x3\x2\x2\x2\x54A\x54B\x5\x21D\x10F" + - "\x2\x54B\x54C\x5\x21F\x110\x2\x54C\x54D\x5\x209\x105\x2\x54D\x54E\x5\x21B" + - "\x10E\x2\x54E\xF4\x3\x2\x2\x2\x54F\x550\x5\x21D\x10F\x2\x550\x551\x5\x21F" + - "\x110\x2\x551\x552\x5\x227\x114\x2\x552\x553\x5\x211\x109\x2\x553\x554" + - "\x5\x21D\x10F\x2\x554\x555\x5\x21B\x10E\x2\x555\x556\x5\x201\x101\x2\x556" + - "\x557\x5\x217\x10C\x2\x557\xF6\x3\x2\x2\x2\x558\x559\x5\x21D\x10F\x2\x559" + - "\x55A\x5\x21F\x110\x2\x55A\x55B\x5\x227\x114\x2\x55B\x55C\x5\x211\x109" + - "\x2\x55C\x55D\x5\x21D\x10F\x2\x55D\x55E\x5\x21B\x10E\x2\x55E\x55F\x5\x1F7" + - "\xFC\x2\x55F\x560\x5\x203\x102\x2\x560\x561\x5\x201\x101\x2\x561\x562" + - "\x5\x225\x113\x2\x562\x563\x5\x209\x105\x2\x563\xF8\x3\x2\x2\x2\x564\x565" + - "\x5\x21D\x10F\x2\x565\x566\x5\x21F\x110\x2\x566\x567\x5\x227\x114\x2\x567" + - "\x568\x5\x211\x109\x2\x568\x569\x5\x21D\x10F\x2\x569\x56A\x5\x21B\x10E" + - "\x2\x56A\x56B\x5\x1F7\xFC\x2\x56B\x56C\x5\x209\x105\x2\x56C\x56D\x5\x22F" + - "\x118\x2\x56D\x56E\x5\x21F\x110\x2\x56E\x56F\x5\x217\x10C\x2\x56F\x570" + - "\x5\x211\x109\x2\x570\x571\x5\x205\x103\x2\x571\x572\x5\x211\x109\x2\x572" + - "\x573\x5\x227\x114\x2\x573\xFA\x3\x2\x2\x2\x574\x575\x5\x21D\x10F\x2\x575" + - "\x576\x5\x21F\x110\x2\x576\x577\x5\x227\x114\x2\x577\x578\x5\x211\x109" + - "\x2\x578\x579\x5\x21D\x10F\x2\x579\x57A\x5\x21B\x10E\x2\x57A\x57B\x5\x1F7" + - "\xFC\x2\x57B\x57C\x5\x205\x103\x2\x57C\x57D\x5\x21D\x10F\x2\x57D\x57E" + - "\x5\x219\x10D\x2\x57E\x57F\x5\x21F\x110\x2\x57F\x580\x5\x201\x101\x2\x580" + - "\x581\x5\x223\x112\x2\x581\x582\x5\x209\x105\x2\x582\xFC\x3\x2\x2\x2\x583" + - "\x584\x5\x21D\x10F\x2\x584\x585\x5\x21F\x110\x2\x585\x586\x5\x227\x114" + - "\x2\x586\x587\x5\x211\x109\x2\x587\x588\x5\x21D\x10F\x2\x588\x589\x5\x21B" + - "\x10E\x2\x589\x58A\x5\x1F7\xFC\x2\x58A\x58B\x5\x21F\x110\x2\x58B\x58C" + - "\x5\x223\x112\x2\x58C\x58D\x5\x211\x109\x2\x58D\x58E\x5\x22B\x116\x2\x58E" + - "\x58F\x5\x201\x101\x2\x58F\x590\x5\x227\x114\x2\x590\x591\x5\x209\x105" + - "\x2\x591\x592\x5\x1F7\xFC\x2\x592\x593\x5\x219\x10D\x2\x593\x594\x5\x21D" + - "\x10F\x2\x594\x595\x5\x207\x104\x2\x595\x596\x5\x229\x115\x2\x596\x597" + - "\x5\x217\x10C\x2\x597\x598\x5\x209\x105\x2\x598\xFE\x3\x2\x2\x2\x599\x59A" + - "\x5\x21D\x10F\x2\x59A\x59B\x5\x223\x112\x2\x59B\x100\x3\x2\x2\x2\x59C" + - "\x59D\x5\x21D\x10F\x2\x59D\x59E\x5\x229\x115\x2\x59E\x59F\x5\x227\x114" + - "\x2\x59F\x5A0\x5\x21F\x110\x2\x5A0\x5A1\x5\x229\x115\x2\x5A1\x5A2\x5\x227" + - "\x114\x2\x5A2\x102\x3\x2\x2\x2\x5A3\x5A4\x5\x21F\x110\x2\x5A4\x5A5\x5" + - "\x201\x101\x2\x5A5\x5A6\x5\x223\x112\x2\x5A6\x5A7\x5\x201\x101\x2\x5A7" + - "\x5A8\x5\x219\x10D\x2\x5A8\x5A9\x5\x201\x101\x2\x5A9\x5AA\x5\x223\x112" + - "\x2\x5AA\x5AB\x5\x223\x112\x2\x5AB\x5AC\x5\x201\x101\x2\x5AC\x5AD\x5\x231" + - "\x119\x2\x5AD\x104\x3\x2\x2\x2\x5AE\x5AF\x5\x21F\x110\x2\x5AF\x5B0\x5" + - "\x223\x112\x2\x5B0\x5B1\x5\x209\x105\x2\x5B1\x5B2\x5\x225\x113\x2\x5B2" + - "\x5B3\x5\x209\x105\x2\x5B3\x5B4\x5\x223\x112\x2\x5B4\x5B5\x5\x22B\x116" + - "\x2\x5B5\x5B6\x5\x209\x105\x2\x5B6\x106\x3\x2\x2\x2\x5B7\x5B8\x5\x21F" + - "\x110\x2\x5B8\x5B9\x5\x223\x112\x2\x5B9\x5BA\x5\x211\x109\x2\x5BA\x5BB" + - "\x5\x21B\x10E\x2\x5BB\x5BC\x5\x227\x114\x2\x5BC\x108\x3\x2\x2\x2\x5BD" + - "\x5BE\x5\x21F\x110\x2\x5BE\x5BF\x5\x223\x112\x2\x5BF\x5C0\x5\x211\x109" + - "\x2\x5C0\x5C1\x5\x22B\x116\x2\x5C1\x5C2\x5\x201\x101\x2\x5C2\x5C3\x5\x227" + - "\x114\x2\x5C3\x5C4\x5\x209\x105\x2\x5C4\x10A\x3\x2\x2\x2\x5C5\x5C6\x5" + - "\x21F\x110\x2\x5C6\x5C7\x5\x223\x112\x2\x5C7\x5C8\x5\x21D\x10F\x2\x5C8" + - "\x5C9\x5\x21F\x110\x2\x5C9\x5CA\x5\x209\x105\x2\x5CA\x5CB\x5\x223\x112" + - "\x2\x5CB\x5CC\x5\x227\x114\x2\x5CC\x5CD\x5\x231\x119\x2\x5CD\x5CE\x5\x1F7" + - "\xFC\x2\x5CE\x5CF\x5\x20D\x107\x2\x5CF\x5D0\x5\x209\x105\x2\x5D0\x5D1" + - "\x5\x227\x114\x2\x5D1\x10C\x3\x2\x2\x2\x5D2\x5D3\x5\x21F\x110\x2\x5D3" + - "\x5D4\x5\x223\x112\x2\x5D4\x5D5\x5\x21D\x10F\x2\x5D5\x5D6\x5\x21F\x110" + - "\x2\x5D6\x5D7\x5\x209\x105\x2\x5D7\x5D8\x5\x223\x112\x2\x5D8\x5D9\x5\x227" + - "\x114\x2\x5D9\x5DA\x5\x231\x119\x2\x5DA\x5DB\x5\x1F7\xFC\x2\x5DB\x5DC" + - "\x5\x217\x10C\x2\x5DC\x5DD\x5\x209\x105\x2\x5DD\x5DE\x5\x227\x114\x2\x5DE" + - "\x10E\x3\x2\x2\x2\x5DF\x5E0\x5\x21F\x110\x2\x5E0\x5E1\x5\x223\x112\x2" + - "\x5E1\x5E2\x5\x21D\x10F\x2\x5E2\x5E3\x5\x21F\x110\x2\x5E3\x5E4\x5\x209" + - "\x105\x2\x5E4\x5E5\x5\x223\x112\x2\x5E5\x5E6\x5\x227\x114\x2\x5E6\x5E7" + - "\x5\x231\x119\x2\x5E7\x5E8\x5\x1F7\xFC\x2\x5E8\x5E9\x5\x225\x113\x2\x5E9" + - "\x5EA\x5\x209\x105\x2\x5EA\x5EB\x5\x227\x114\x2\x5EB\x110\x3\x2\x2\x2" + - "\x5EC\x5ED\x5\x21F\x110\x2\x5ED\x5EE\x5\x227\x114\x2\x5EE\x5EF\x5\x223" + - "\x112\x2\x5EF\x5F0\x5\x225\x113\x2\x5F0\x5F1\x5\x201\x101\x2\x5F1\x5F2" + - "\x5\x20B\x106\x2\x5F2\x5F3\x5\x209\x105\x2\x5F3\x112\x3\x2\x2\x2\x5F4" + - "\x5F5\x5\x21F\x110\x2\x5F5\x5F6\x5\x229\x115\x2\x5F6\x5F7\x5\x203\x102" + - "\x2\x5F7\x5F8\x5\x217\x10C\x2\x5F8\x5F9\x5\x211\x109\x2\x5F9\x5FA\x5\x205" + - "\x103\x2\x5FA\x114\x3\x2\x2\x2\x5FB\x5FC\x5\x21F\x110\x2\x5FC\x5FD\x5" + - "\x229\x115\x2\x5FD\x5FE\x5\x227\x114\x2\x5FE\x116\x3\x2\x2\x2\x5FF\x600" + - "\x5\x223\x112\x2\x600\x601\x5\x201\x101\x2\x601\x602\x5\x21B\x10E\x2\x602" + - "\x603\x5\x207\x104\x2\x603\x604\x5\x21D\x10F\x2\x604\x605\x5\x219\x10D" + - "\x2\x605\x118\x3\x2\x2\x2\x606\x607\x5\x223\x112\x2\x607\x608\x5\x201" + - "\x101\x2\x608\x609\x5\x21B\x10E\x2\x609\x60A\x5\x207\x104\x2\x60A\x60B" + - "\x5\x21D\x10F\x2\x60B\x60C\x5\x219\x10D\x2\x60C\x60D\x5\x211\x109\x2\x60D" + - "\x60E\x5\x233\x11A\x2\x60E\x60F\x5\x209\x105\x2\x60F\x11A\x3\x2\x2\x2" + - "\x610\x611\x5\x223\x112\x2\x611\x612\x5\x201\x101\x2\x612\x613\x5\x211" + - "\x109\x2\x613\x614\x5\x225\x113\x2\x614\x615\x5\x209\x105\x2\x615\x616" + - "\x5\x209\x105\x2\x616\x617\x5\x22B\x116\x2\x617\x618\x5\x209\x105\x2\x618" + - "\x619\x5\x21B\x10E\x2\x619\x61A\x5\x227\x114\x2\x61A\x11C\x3\x2\x2\x2" + - "\x61B\x61C\x5\x223\x112\x2\x61C\x61D\x5\x209\x105\x2\x61D\x61E\x5\x201" + - "\x101\x2\x61E\x61F\x5\x207\x104\x2\x61F\x11E\x3\x2\x2\x2\x620\x621\x5" + - "\x223\x112\x2\x621\x622\x5\x209\x105\x2\x622\x623\x5\x201\x101\x2\x623" + - "\x624\x5\x207\x104\x2\x624\x625\x5\x1F7\xFC\x2\x625\x626\x5\x22D\x117" + - "\x2\x626\x627\x5\x223\x112\x2\x627\x628\x5\x211\x109\x2\x628\x629\x5\x227" + - "\x114\x2\x629\x62A\x5\x209\x105\x2\x62A\x120\x3\x2\x2\x2\x62B\x62C\x5" + - "\x223\x112\x2\x62C\x62D\x5\x209\x105\x2\x62D\x62E\x5\x207\x104\x2\x62E" + - "\x62F\x5\x211\x109\x2\x62F\x630\x5\x219\x10D\x2\x630\x122\x3\x2\x2\x2" + - "\x631\x632\x5\x223\x112\x2\x632\x633\x5\x209\x105\x2\x633\x634\x5\x219" + - "\x10D\x2\x634\x124\x3\x2\x2\x2\x635\x636\x5\x223\x112\x2\x636\x637\x5" + - "\x209\x105\x2\x637\x638\x5\x225\x113\x2\x638\x639\x5\x209\x105\x2\x639" + - "\x63A\x5\x227\x114\x2\x63A\x126\x3\x2\x2\x2\x63B\x63C\x5\x223\x112\x2" + - "\x63C\x63D\x5\x209\x105\x2\x63D\x63E\x5\x225\x113\x2\x63E\x63F\x5\x229" + - "\x115\x2\x63F\x640\x5\x219\x10D\x2\x640\x641\x5\x209\x105\x2\x641\x128" + - "\x3\x2\x2\x2\x642\x643\x5\x223\x112\x2\x643\x644\x5\x209\x105\x2\x644" + - "\x645\x5\x227\x114\x2\x645\x646\x5\x229\x115\x2\x646\x647\x5\x223\x112" + - "\x2\x647\x648\x5\x21B\x10E\x2\x648\x12A\x3\x2\x2\x2\x649\x64A\x5\x223" + - "\x112\x2\x64A\x64B\x5\x219\x10D\x2\x64B\x64C\x5\x207\x104\x2\x64C\x64D" + - "\x5\x211\x109\x2\x64D\x64E\x5\x223\x112\x2\x64E\x12C\x3\x2\x2\x2\x64F" + - "\x650\x5\x223\x112\x2\x650\x651\x5\x225\x113\x2\x651\x652\x5\x209\x105" + - "\x2\x652\x653\x5\x227\x114\x2\x653\x12E\x3\x2\x2\x2\x654\x655\x5\x225" + - "\x113\x2\x655\x656\x5\x201\x101\x2\x656\x657\x5\x22B\x116\x2\x657\x658" + - "\x5\x209\x105\x2\x658\x659\x5\x21F\x110\x2\x659\x65A\x5\x211\x109\x2\x65A" + - "\x65B\x5\x205\x103\x2\x65B\x65C\x5\x227\x114\x2\x65C\x65D\x5\x229\x115" + - "\x2\x65D\x65E\x5\x223\x112\x2\x65E\x65F\x5\x209\x105\x2\x65F\x130\x3\x2" + - "\x2\x2\x660\x661\x5\x225\x113\x2\x661\x662\x5\x201\x101\x2\x662\x663\x5" + - "\x22B\x116\x2\x663\x664\x5\x209\x105\x2\x664\x665\x5\x225\x113\x2\x665" + - "\x666\x5\x209\x105\x2\x666\x667\x5\x227\x114\x2\x667\x668\x5\x227\x114" + - "\x2\x668\x669\x5\x211\x109\x2\x669\x66A\x5\x21B\x10E\x2\x66A\x66B\x5\x20D" + - "\x107\x2\x66B\x132\x3\x2\x2\x2\x66C\x66D\x5\x225\x113\x2\x66D\x66E\x5" + - "\x209\x105\x2\x66E\x66F\x5\x209\x105\x2\x66F\x670\x5\x215\x10B\x2\x670" + - "\x134\x3\x2\x2\x2\x671\x672\x5\x225\x113\x2\x672\x673\x5\x209\x105\x2" + - "\x673\x674\x5\x217\x10C\x2\x674\x675\x5\x209\x105\x2\x675\x676\x5\x205" + - "\x103\x2\x676\x677\x5\x227\x114\x2\x677\x136\x3\x2\x2\x2\x678\x679\x5" + - "\x225\x113\x2\x679\x67A\x5\x209\x105\x2\x67A\x67B\x5\x21B\x10E\x2\x67B" + - "\x67C\x5\x207\x104\x2\x67C\x67D\x5\x215\x10B\x2\x67D\x67E\x5\x209\x105" + - "\x2\x67E\x67F\x5\x231\x119\x2\x67F\x680\x5\x225\x113\x2\x680\x138\x3\x2" + - "\x2\x2\x681\x682\x5\x225\x113\x2\x682\x683\x5\x209\x105\x2\x683\x684\x5" + - "\x227\x114\x2\x684\x13A\x3\x2\x2\x2\x685\x686\x5\x225\x113\x2\x686\x687" + - "\x5\x209\x105\x2\x687\x688\x5\x227\x114\x2\x688\x689\x5\x201\x101\x2\x689" + - "\x68A\x5\x227\x114\x2\x68A\x68B\x5\x227\x114\x2\x68B\x68C\x5\x223\x112" + - "\x2\x68C\x13C\x3\x2\x2\x2\x68D\x68E\x5\x225\x113\x2\x68E\x68F\x5\x20F" + - "\x108\x2\x68F\x690\x5\x201\x101\x2\x690\x691\x5\x223\x112\x2\x691\x692" + - "\x5\x209\x105\x2\x692\x693\x5\x207\x104\x2\x693\x13E\x3\x2\x2\x2\x694" + - "\x695\x5\x225\x113\x2\x695\x696\x5\x211\x109\x2\x696\x697\x5\x21B\x10E" + - "\x2\x697\x698\x5\x20D\x107\x2\x698\x699\x5\x217\x10C\x2\x699\x69A\x5\x209" + - "\x105\x2\x69A\x140\x3\x2\x2\x2\x69B\x69C\x5\x225\x113\x2\x69C\x69D\x5" + - "\x21F\x110\x2\x69D\x69E\x5\x205\x103\x2\x69E\x142\x3\x2\x2\x2\x69F\x6A0" + - "\x5\x225\x113\x2\x6A0\x6A1\x5\x227\x114\x2\x6A1\x6A2\x5\x201\x101\x2\x6A2" + - "\x6A3\x5\x227\x114\x2\x6A3\x6A4\x5\x211\x109\x2\x6A4\x6A5\x5\x205\x103" + - "\x2\x6A5\x144\x3\x2\x2\x2\x6A6\x6A7\x5\x225\x113\x2\x6A7\x6A8\x5\x227" + - "\x114\x2\x6A8\x6A9\x5\x209\x105\x2\x6A9\x6AA\x5\x21F\x110\x2\x6AA\x146" + - "\x3\x2\x2\x2\x6AB\x6AC\x5\x225\x113\x2\x6AC\x6AD\x5\x227\x114\x2\x6AD" + - "\x6AE\x5\x21D\x10F\x2\x6AE\x6AF\x5\x21F\x110\x2\x6AF\x148\x3\x2\x2\x2" + - "\x6B0\x6B1\x5\x225\x113\x2\x6B1\x6B2\x5\x227\x114\x2\x6B2\x6B3\x5\x223" + - "\x112\x2\x6B3\x6B4\x5\x211\x109\x2\x6B4\x6B5\x5\x21B\x10E\x2\x6B5\x6B6" + - "\x5\x20D\x107\x2\x6B6\x14A\x3\x2\x2\x2\x6B7\x6B8\x5\x225\x113\x2\x6B8" + - "\x6B9\x5\x229\x115\x2\x6B9\x6BA\x5\x203\x102\x2\x6BA\x14C\x3\x2\x2\x2" + - "\x6BB\x6BC\x5\x227\x114\x2\x6BC\x6BD\x5\x201\x101\x2\x6BD\x6BE\x5\x203" + - "\x102\x2\x6BE\x14E\x3\x2\x2\x2\x6BF\x6C0\x5\x227\x114\x2\x6C0\x6C1\x5" + - "\x209\x105\x2\x6C1\x6C2\x5\x22F\x118\x2\x6C2\x6C3\x5\x227\x114\x2\x6C3" + - "\x150\x3\x2\x2\x2\x6C4\x6C5\x5\x227\x114\x2\x6C5\x6C6\x5\x20F\x108\x2" + - "\x6C6\x6C7\x5\x209\x105\x2\x6C7\x6C8\x5\x21B\x10E\x2\x6C8\x152\x3\x2\x2" + - "\x2\x6C9\x6CA\x5\x227\x114\x2\x6CA\x6CB\x5\x211\x109\x2\x6CB\x6CC\x5\x219" + - "\x10D\x2\x6CC\x6CD\x5\x209\x105\x2\x6CD\x154\x3\x2\x2\x2\x6CE\x6CF\x5" + - "\x227\x114\x2\x6CF\x6D0\x5\x21D\x10F\x2\x6D0\x156\x3\x2\x2\x2\x6D1\x6D2" + - "\x5\x227\x114\x2\x6D2\x6D3\x5\x223\x112\x2\x6D3\x6D4\x5\x229\x115\x2\x6D4" + - "\x6D5\x5\x209\x105\x2\x6D5\x158\x3\x2\x2\x2\x6D6\x6D7\x5\x227\x114\x2" + - "\x6D7\x6D8\x5\x231\x119\x2\x6D8\x6D9\x5\x21F\x110\x2\x6D9\x6DA\x5\x209" + - "\x105\x2\x6DA\x15A\x3\x2\x2\x2\x6DB\x6DC\x5\x227\x114\x2\x6DC\x6DD\x5" + - "\x231\x119\x2\x6DD\x6DE\x5\x21F\x110\x2\x6DE\x6DF\x5\x209\x105\x2\x6DF" + - "\x6E0\x5\x21D\x10F\x2\x6E0\x6E1\x5\x20B\x106\x2\x6E1\x15C\x3\x2\x2\x2" + - "\x6E2\x6E3\x5\x229\x115\x2\x6E3\x6E4\x5\x21B\x10E\x2\x6E4\x6E5\x5\x217" + - "\x10C\x2\x6E5\x6E6\x5\x21D\x10F\x2\x6E6\x6E7\x5\x201\x101\x2\x6E7\x6E8" + - "\x5\x207\x104\x2\x6E8\x15E\x3\x2\x2\x2\x6E9\x6EA\x5\x229\x115\x2\x6EA" + - "\x6EB\x5\x21B\x10E\x2\x6EB\x6EC\x5\x217\x10C\x2\x6EC\x6ED\x5\x21D\x10F" + - "\x2\x6ED\x6EE\x5\x205\x103\x2\x6EE\x6EF\x5\x215\x10B\x2\x6EF\x160\x3\x2" + - "\x2\x2\x6F0\x6F1\x5\x229\x115\x2\x6F1\x6F2\x5\x21B\x10E\x2\x6F2\x6F3\x5" + - "\x227\x114\x2\x6F3\x6F4\x5\x211\x109\x2\x6F4\x6F5\x5\x217\x10C\x2\x6F5" + - "\x162\x3\x2\x2\x2\x6F6\x6F7\x5\x22B\x116\x2\x6F7\x6F8\x5\x201\x101\x2" + - "\x6F8\x6F9\x5\x223\x112\x2\x6F9\x6FA\x5\x211\x109\x2\x6FA\x6FB\x5\x201" + - "\x101\x2\x6FB\x6FC\x5\x21B\x10E\x2\x6FC\x6FD\x5\x227\x114\x2\x6FD\x164" + - "\x3\x2\x2\x2\x6FE\x6FF\x5\x22B\x116\x2\x6FF\x700\x5\x209\x105\x2\x700" + - "\x701\x5\x223\x112\x2\x701\x702\x5\x225\x113\x2\x702\x703\x5\x211\x109" + - "\x2\x703\x704\x5\x21D\x10F\x2\x704\x705\x5\x21B\x10E\x2\x705\x166\x3\x2" + - "\x2\x2\x706\x707\x5\x22D\x117\x2\x707\x708\x5\x209\x105\x2\x708\x709\x5" + - "\x21B\x10E\x2\x709\x70A\x5\x207\x104\x2\x70A\x168\x3\x2\x2\x2\x70B\x70C" + - "\x5\x22D\x117\x2\x70C\x70D\x5\x20F\x108\x2\x70D\x70E\x5\x211\x109\x2\x70E" + - "\x70F\x5\x217\x10C\x2\x70F\x710\x5\x209\x105\x2\x710\x16A\x3\x2\x2\x2" + - "\x711\x712\x5\x22D\x117\x2\x712\x713\x5\x211\x109\x2\x713\x714\x5\x207" + - "\x104\x2\x714\x715\x5\x227\x114\x2\x715\x716\x5\x20F\x108\x2\x716\x16C" + - "\x3\x2\x2\x2\x717\x718\x5\x22D\x117\x2\x718\x719\x5\x211\x109\x2\x719" + - "\x71A\x5\x227\x114\x2\x71A\x71B\x5\x20F\x108\x2\x71B\x16E\x3\x2\x2\x2" + - "\x71C\x71D\x5\x22D\x117\x2\x71D\x71E\x5\x211\x109\x2\x71E\x71F\x5\x227" + - "\x114\x2\x71F\x720\x5\x20F\x108\x2\x720\x721\x5\x209\x105\x2\x721\x722" + - "\x5\x22B\x116\x2\x722\x723\x5\x209\x105\x2\x723\x724\x5\x21B\x10E\x2\x724" + - "\x725\x5\x227\x114\x2\x725\x726\x5\x225\x113\x2\x726\x170\x3\x2\x2\x2" + - "\x727\x728\x5\x22D\x117\x2\x728\x729\x5\x223\x112\x2\x729\x72A\x5\x211" + - "\x109\x2\x72A\x72B\x5\x227\x114\x2\x72B\x72C\x5\x209\x105\x2\x72C\x172" + - "\x3\x2\x2\x2\x72D\x72E\x5\x22F\x118\x2\x72E\x72F\x5\x21D\x10F\x2\x72F" + - "\x730\x5\x223\x112\x2\x730\x174\x3\x2\x2\x2\x731\x732\a(\x2\x2\x732\x176" + - "\x3\x2\x2\x2\x733\x734\a<\x2\x2\x734\x735\a?\x2\x2\x735\x178\x3\x2\x2" + - "\x2\x736\x737\a\x31\x2\x2\x737\x17A\x3\x2\x2\x2\x738\x739\a^\x2\x2\x739" + - "\x17C\x3\x2\x2\x2\x73A\x73B\a?\x2\x2\x73B\x17E\x3\x2\x2\x2\x73C\x73D\a" + - "@\x2\x2\x73D\x73E\a?\x2\x2\x73E\x180\x3\x2\x2\x2\x73F\x740\a@\x2\x2\x740" + - "\x182\x3\x2\x2\x2\x741\x742\a>\x2\x2\x742\x743\a?\x2\x2\x743\x184\x3\x2" + - "\x2\x2\x744\x745\a*\x2\x2\x745\x186\x3\x2\x2\x2\x746\x747\a>\x2\x2\x747" + - "\x188\x3\x2\x2\x2\x748\x749\a/\x2\x2\x749\x18A\x3\x2\x2\x2\x74A\x74B\a" + - ",\x2\x2\x74B\x18C\x3\x2\x2\x2\x74C\x74D\a>\x2\x2\x74D\x74E\a@\x2\x2\x74E" + - "\x18E\x3\x2\x2\x2\x74F\x750\a-\x2\x2\x750\x190\x3\x2\x2\x2\x751\x752\a" + - "`\x2\x2\x752\x192\x3\x2\x2\x2\x753\x754\a+\x2\x2\x754\x194\x3\x2\x2\x2" + - "\x755\x756\a]\x2\x2\x756\x196\x3\x2\x2\x2\x757\x758\a_\x2\x2\x758\x198" + - "\x3\x2\x2\x2\x759\x75F\a$\x2\x2\x75A\x75E\n\x2\x2\x2\x75B\x75C\a$\x2\x2" + - "\x75C\x75E\a$\x2\x2\x75D\x75A\x3\x2\x2\x2\x75D\x75B\x3\x2\x2\x2\x75E\x761" + - "\x3\x2\x2\x2\x75F\x75D\x3\x2\x2\x2\x75F\x760\x3\x2\x2\x2\x760\x762\x3" + - "\x2\x2\x2\x761\x75F\x3\x2\x2\x2\x762\x763\a$\x2\x2\x763\x19A\x3\x2\x2" + - "\x2\x764\x765\a(\x2\x2\x765\x766\aQ\x2\x2\x766\x768\x3\x2\x2\x2\x767\x769" + - "\t\x3\x2\x2\x768\x767\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2\x76A\x768\x3\x2" + - "\x2\x2\x76A\x76B\x3\x2\x2\x2\x76B\x76D\x3\x2\x2\x2\x76C\x76E\a(\x2\x2" + - "\x76D\x76C\x3\x2\x2\x2\x76D\x76E\x3\x2\x2\x2\x76E\x19C\x3\x2\x2\x2\x76F" + - "\x770\a(\x2\x2\x770\x771\aJ\x2\x2\x771\x773\x3\x2\x2\x2\x772\x774\t\x4" + - "\x2\x2\x773\x772\x3\x2\x2\x2\x774\x775\x3\x2\x2\x2\x775\x773\x3\x2\x2" + - "\x2\x775\x776\x3\x2\x2\x2\x776\x778\x3\x2\x2\x2\x777\x779\a(\x2\x2\x778" + - "\x777\x3\x2\x2\x2\x778\x779\x3\x2\x2\x2\x779\x19E\x3\x2\x2\x2\x77A\x77D" + - "\x5\x18F\xC8\x2\x77B\x77D\x5\x189\xC5\x2\x77C\x77A\x3\x2\x2\x2\x77C\x77B" + - "\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\x77F\x3\x2\x2\x2\x77E\x780\x5" + - "\x1FD\xFF\x2\x77F\x77E\x3\x2\x2\x2\x780\x781\x3\x2\x2\x2\x781\x77F\x3" + - "\x2\x2\x2\x781\x782\x3\x2\x2\x2\x782\x784\x3\x2\x2\x2\x783\x785\t\x5\x2" + - "\x2\x784\x783\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\x1A0\x3\x2\x2\x2" + - "\x786\x78A\x5\x19F\xD0\x2\x787\x788\x5\x209\x105\x2\x788\x789\x5\x19F" + - "\xD0\x2\x789\x78B\x3\x2\x2\x2\x78A\x787\x3\x2\x2\x2\x78A\x78B\x3\x2\x2" + - "\x2\x78B\x1A2\x3\x2\x2\x2\x78C\x78F\x5\x18F\xC8\x2\x78D\x78F\x5\x189\xC5" + - "\x2\x78E\x78C\x3\x2\x2\x2\x78E\x78D\x3\x2\x2\x2\x78E\x78F\x3\x2\x2\x2" + - "\x78F\x793\x3\x2\x2\x2\x790\x792\x5\x1FD\xFF\x2\x791\x790\x3\x2\x2\x2" + - "\x792\x795\x3\x2\x2\x2\x793\x791\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794" + - "\x796\x3\x2\x2\x2\x795\x793\x3\x2\x2\x2\x796\x798\a\x30\x2\x2\x797\x799" + - "\x5\x1FD\xFF\x2\x798\x797\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2\x79A\x798" + - "\x3\x2\x2\x2\x79A\x79B\x3\x2\x2\x2\x79B\x79F\x3\x2\x2\x2\x79C\x79D\x5" + - "\x209\x105\x2\x79D\x79E\x5\x19F\xD0\x2\x79E\x7A0\x3\x2\x2\x2\x79F\x79C" + - "\x3\x2\x2\x2\x79F\x7A0\x3\x2\x2\x2\x7A0\x1A4\x3\x2\x2\x2\x7A1\x7A2\a%" + - "\x2\x2\x7A2\x7A3\x5\x1A7\xD4\x2\x7A3\x7A4\a%\x2\x2\x7A4\x1A6\x3\x2\x2" + - "\x2\x7A5\x7A7\x5\x1A9\xD5\x2\x7A6\x7A8\x5\x1F7\xFC\x2\x7A7\x7A6\x3\x2" + - "\x2\x2\x7A7\x7A8\x3\x2\x2\x2\x7A8\x7A9\x3\x2\x2\x2\x7A9\x7AA\x5\x1B5\xDB" + - "\x2\x7AA\x7AE\x3\x2\x2\x2\x7AB\x7AE\x5\x1A9\xD5\x2\x7AC\x7AE\x5\x1B5\xDB" + - "\x2\x7AD\x7A5\x3\x2\x2\x2\x7AD\x7AB\x3\x2\x2\x2\x7AD\x7AC\x3\x2\x2\x2" + - "\x7AE\x1A8\x3\x2\x2\x2\x7AF\x7B0\x5\x1AB\xD6\x2\x7B0\x7B1\x5\x1AD\xD7" + - "\x2\x7B1\x7B5\x5\x1AB\xD6\x2\x7B2\x7B3\x5\x1AD\xD7\x2\x7B3\x7B4\x5\x1AB" + - "\xD6\x2\x7B4\x7B6\x3\x2\x2\x2\x7B5\x7B2\x3\x2\x2\x2\x7B5\x7B6\x3\x2\x2" + - "\x2\x7B6\x1AA\x3\x2\x2\x2\x7B7\x7B9\x5\x1FD\xFF\x2\x7B8\x7B7\x3\x2\x2" + - "\x2\x7B9\x7BA\x3\x2\x2\x2\x7BA\x7B8\x3\x2\x2\x2\x7BA\x7BB\x3\x2\x2\x2" + - "\x7BB\x7BE\x3\x2\x2\x2\x7BC\x7BE\x5\x1AF\xD8\x2\x7BD\x7B8\x3\x2\x2\x2" + - "\x7BD\x7BC\x3\x2\x2\x2\x7BE\x1AC\x3\x2\x2\x2\x7BF\x7C1\x5\x1F7\xFC\x2" + - "\x7C0\x7BF\x3\x2\x2\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1\x7C3\x3\x2\x2\x2\x7C2" + - "\x7C4\t\x6\x2\x2\x7C3\x7C2\x3\x2\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C6" + - "\x3\x2\x2\x2\x7C5\x7C7\x5\x1F7\xFC\x2\x7C6\x7C5\x3\x2\x2\x2\x7C6\x7C7" + - "\x3\x2\x2\x2\x7C7\x1AE\x3\x2\x2\x2\x7C8\x7CB\x5\x1B1\xD9\x2\x7C9\x7CB" + - "\x5\x1B3\xDA\x2\x7CA\x7C8\x3\x2\x2\x2\x7CA\x7C9\x3\x2\x2\x2\x7CB\x1B0" + - "\x3\x2\x2\x2\x7CC\x7D9\x5\x1BB\xDE\x2\x7CD\x7D9\x5\x1BD\xDF\x2\x7CE\x7D9" + - "\x5\x1BF\xE0\x2\x7CF\x7D9\x5\x1C1\xE1\x2\x7D0\x7D9\x5\x1C3\xE2\x2\x7D1" + - "\x7D9\x5\x1C5\xE3\x2\x7D2\x7D9\x5\x1C7\xE4\x2\x7D3\x7D9\x5\x1C9\xE5\x2" + - "\x7D4\x7D9\x5\x1CB\xE6\x2\x7D5\x7D9\x5\x1CD\xE7\x2\x7D6\x7D9\x5\x1CF\xE8" + - "\x2\x7D7\x7D9\x5\x1D1\xE9\x2\x7D8\x7CC\x3\x2\x2\x2\x7D8\x7CD\x3\x2\x2" + - "\x2\x7D8\x7CE\x3\x2\x2\x2\x7D8\x7CF\x3\x2\x2\x2\x7D8\x7D0\x3\x2\x2\x2" + - "\x7D8\x7D1\x3\x2\x2\x2\x7D8\x7D2\x3\x2\x2\x2\x7D8\x7D3\x3\x2\x2\x2\x7D8" + - "\x7D4\x3\x2\x2\x2\x7D8\x7D5\x3\x2\x2\x2\x7D8\x7D6\x3\x2\x2\x2\x7D8\x7D7" + - "\x3\x2\x2\x2\x7D9\x1B2\x3\x2\x2\x2\x7DA\x7E6\x5\x1D3\xEA\x2\x7DB\x7E6" + - "\x5\x1D5\xEB\x2\x7DC\x7E6\x5\x1D7\xEC\x2\x7DD\x7E6\x5\x1D9\xED\x2\x7DE" + - "\x7E6\x5\x1DB\xEE\x2\x7DF\x7E6\x5\x1DD\xEF\x2\x7E0\x7E6\x5\x1DF\xF0\x2" + - "\x7E1\x7E6\x5\x1E1\xF1\x2\x7E2\x7E6\x5\x1E3\xF2\x2\x7E3\x7E6\x5\x1E5\xF3" + - "\x2\x7E4\x7E6\x5\x1E7\xF4\x2\x7E5\x7DA\x3\x2\x2\x2\x7E5\x7DB\x3\x2\x2" + - "\x2\x7E5\x7DC\x3\x2\x2\x2\x7E5\x7DD\x3\x2\x2\x2\x7E5\x7DE\x3\x2\x2\x2" + - "\x7E5\x7DF\x3\x2\x2\x2\x7E5\x7E0\x3\x2\x2\x2\x7E5\x7E1\x3\x2\x2\x2\x7E5" + - "\x7E2\x3\x2\x2\x2\x7E5\x7E3\x3\x2\x2\x2\x7E5\x7E4\x3\x2\x2\x2\x7E6\x1B4" + - "\x3\x2\x2\x2\x7E7\x7E9\x5\x1FD\xFF\x2\x7E8\x7E7\x3\x2\x2\x2\x7E9\x7EA" + - "\x3\x2\x2\x2\x7EA\x7E8\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2\x2\x7EB\x7EC\x3" + - "\x2\x2\x2\x7EC\x7ED\x5\x1B9\xDD\x2\x7ED\x805\x3\x2\x2\x2\x7EE\x7F0\x5" + - "\x1FD\xFF\x2\x7EF\x7EE\x3\x2\x2\x2\x7F0\x7F1\x3\x2\x2\x2\x7F1\x7EF\x3" + - "\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F5\x5\x1B7" + - "\xDC\x2\x7F4\x7F6\x5\x1FD\xFF\x2\x7F5\x7F4\x3\x2\x2\x2\x7F6\x7F7\x3\x2" + - "\x2\x2\x7F7\x7F5\x3\x2\x2\x2\x7F7\x7F8\x3\x2\x2\x2\x7F8\x7FF\x3\x2\x2" + - "\x2\x7F9\x7FB\x5\x1B7\xDC\x2\x7FA\x7FC\x5\x1FD\xFF\x2\x7FB\x7FA\x3\x2" + - "\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD\x7FB\x3\x2\x2\x2\x7FD\x7FE\x3\x2\x2" + - "\x2\x7FE\x800\x3\x2\x2\x2\x7FF\x7F9\x3\x2\x2\x2\x7FF\x800\x3\x2\x2\x2" + - "\x800\x802\x3\x2\x2\x2\x801\x803\x5\x1B9\xDD\x2\x802\x801\x3\x2\x2\x2" + - "\x802\x803\x3\x2\x2\x2\x803\x805\x3\x2\x2\x2\x804\x7E8\x3\x2\x2\x2\x804" + - "\x7EF\x3\x2\x2\x2\x805\x1B6\x3\x2\x2\x2\x806\x808\x5\x1F7\xFC\x2\x807" + - "\x806\x3\x2\x2\x2\x807\x808\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809\x80B" + - "\t\a\x2\x2\x80A\x80C\x5\x1F7\xFC\x2\x80B\x80A\x3\x2\x2\x2\x80B\x80C\x3" + - "\x2\x2\x2\x80C\x1B8\x3\x2\x2\x2\x80D\x80F\x5\x1F7\xFC\x2\x80E\x80D\x3" + - "\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x818\x3\x2\x2\x2\x810\x811\x5\x201" + - "\x101\x2\x811\x812\x5\x219\x10D\x2\x812\x819\x3\x2\x2\x2\x813\x814\x5" + - "\x21F\x110\x2\x814\x815\x5\x219\x10D\x2\x815\x819\x3\x2\x2\x2\x816\x819" + - "\x5\x201\x101\x2\x817\x819\x5\x21F\x110\x2\x818\x810\x3\x2\x2\x2\x818" + - "\x813\x3\x2\x2\x2\x818\x816\x3\x2\x2\x2\x818\x817\x3\x2\x2\x2\x819\x1BA" + - "\x3\x2\x2\x2\x81A\x81B\x5\x213\x10A\x2\x81B\x81C\x5\x201\x101\x2\x81C" + - "\x81D\x5\x21B\x10E\x2\x81D\x81E\x5\x229\x115\x2\x81E\x81F\x5\x201\x101" + - "\x2\x81F\x820\x5\x223\x112\x2\x820\x821\x5\x231\x119\x2\x821\x1BC\x3\x2" + - "\x2\x2\x822\x823\x5\x20B\x106\x2\x823\x824\x5\x209\x105\x2\x824\x825\x5" + - "\x203\x102\x2\x825\x826\x5\x223\x112\x2\x826\x827\x5\x229\x115\x2\x827" + - "\x828\x5\x201\x101\x2\x828\x829\x5\x223\x112\x2\x829\x82A\x5\x231\x119" + - "\x2\x82A\x1BE\x3\x2\x2\x2\x82B\x82C\x5\x219\x10D\x2\x82C\x82D\x5\x201" + - "\x101\x2\x82D\x82E\x5\x223\x112\x2\x82E\x82F\x5\x205\x103\x2\x82F\x830" + - "\x5\x20F\x108\x2\x830\x1C0\x3\x2\x2\x2\x831\x832\x5\x201\x101\x2\x832" + - "\x833\x5\x21F\x110\x2\x833\x834\x5\x223\x112\x2\x834\x835\x5\x211\x109" + - "\x2\x835\x836\x5\x217\x10C\x2\x836\x1C2\x3\x2\x2\x2\x837\x838\x5\x219" + - "\x10D\x2\x838\x839\x5\x201\x101\x2\x839\x83A\x5\x231\x119\x2\x83A\x1C4" + - "\x3\x2\x2\x2\x83B\x83C\x5\x213\x10A\x2\x83C\x83D\x5\x229\x115\x2\x83D" + - "\x83E\x5\x21B\x10E\x2\x83E\x83F\x5\x209\x105\x2\x83F\x1C6\x3\x2\x2\x2" + - "\x840\x841\x5\x213\x10A\x2\x841\x842\x5\x229\x115\x2\x842\x843\x5\x217" + - "\x10C\x2\x843\x844\x5\x231\x119\x2\x844\x1C8\x3\x2\x2\x2\x845\x846\x5" + - "\x201\x101\x2\x846\x847\x5\x229\x115\x2\x847\x848\x5\x20D\x107\x2\x848" + - "\x849\x5\x229\x115\x2\x849\x84A\x5\x225\x113\x2\x84A\x84B\x5\x227\x114" + - "\x2\x84B\x1CA\x3\x2\x2\x2\x84C\x84D\x5\x225\x113\x2\x84D\x84E\x5\x209" + - "\x105\x2\x84E\x84F\x5\x21F\x110\x2\x84F\x850\x5\x227\x114\x2\x850\x851" + - "\x5\x209\x105\x2\x851\x852\x5\x219\x10D\x2\x852\x853\x5\x203\x102\x2\x853" + - "\x854\x5\x209\x105\x2\x854\x855\x5\x223\x112\x2\x855\x1CC\x3\x2\x2\x2" + - "\x856\x857\x5\x21D\x10F\x2\x857\x858\x5\x205\x103\x2\x858\x859\x5\x227" + - "\x114\x2\x859\x85A\x5\x21D\x10F\x2\x85A\x85B\x5\x203\x102\x2\x85B\x85C" + - "\x5\x209\x105\x2\x85C\x85D\x5\x223\x112\x2\x85D\x1CE\x3\x2\x2\x2\x85E" + - "\x85F\x5\x21B\x10E\x2\x85F\x860\x5\x21D\x10F\x2\x860\x861\x5\x22B\x116" + - "\x2\x861\x862\x5\x209\x105\x2\x862\x863\x5\x219\x10D\x2\x863\x864\x5\x203" + - "\x102\x2\x864\x865\x5\x209\x105\x2\x865\x866\x5\x223\x112\x2\x866\x1D0" + - "\x3\x2\x2\x2\x867\x868\x5\x207\x104\x2\x868\x869\x5\x209\x105\x2\x869" + - "\x86A\x5\x205\x103\x2\x86A\x86B\x5\x209\x105\x2\x86B\x86C\x5\x219\x10D" + - "\x2\x86C\x86D\x5\x203\x102\x2\x86D\x86E\x5\x209\x105\x2\x86E\x86F\x5\x223" + - "\x112\x2\x86F\x1D2\x3\x2\x2\x2\x870\x871\x5\x213\x10A\x2\x871\x872\x5" + - "\x201\x101\x2\x872\x873\x5\x21B\x10E\x2\x873\x1D4\x3\x2\x2\x2\x874\x875" + - "\x5\x20B\x106\x2\x875\x876\x5\x209\x105\x2\x876\x877\x5\x203\x102\x2\x877" + - "\x1D6\x3\x2\x2\x2\x878\x879\x5\x219\x10D\x2\x879\x87A\x5\x201\x101\x2" + - "\x87A\x87B\x5\x223\x112\x2\x87B\x1D8\x3\x2\x2\x2\x87C\x87D\x5\x201\x101" + - "\x2\x87D\x87E\x5\x21F\x110\x2\x87E\x87F\x5\x223\x112\x2\x87F\x1DA\x3\x2" + - "\x2\x2\x880\x881\x5\x213\x10A\x2\x881\x882\x5\x229\x115\x2\x882\x883\x5" + - "\x21B\x10E\x2\x883\x1DC\x3\x2\x2\x2\x884\x885\x5\x213\x10A\x2\x885\x886" + - "\x5\x229\x115\x2\x886\x887\x5\x217\x10C\x2\x887\x1DE\x3\x2\x2\x2\x888" + - "\x889\x5\x201\x101\x2\x889\x88A\x5\x229\x115\x2\x88A\x88B\x5\x20D\x107" + - "\x2\x88B\x1E0\x3\x2\x2\x2\x88C\x88D\x5\x225\x113\x2\x88D\x88E\x5\x209" + - "\x105\x2\x88E\x88F\x5\x21F\x110\x2\x88F\x1E2\x3\x2\x2\x2\x890\x891\x5" + - "\x21D\x10F\x2\x891\x892\x5\x205\x103\x2\x892\x893\x5\x227\x114\x2\x893" + - "\x1E4\x3\x2\x2\x2\x894\x895\x5\x21B\x10E\x2\x895\x896\x5\x21D\x10F\x2" + - "\x896\x897\x5\x22B\x116\x2\x897\x1E6\x3\x2\x2\x2\x898\x899\x5\x207\x104" + - "\x2\x899\x89A\x5\x209\x105\x2\x89A\x89B\x5\x205\x103\x2\x89B\x1E8\x3\x2" + - "\x2\x2\x89C\x89E\t\b\x2\x2\x89D\x89C\x3\x2\x2\x2\x89E\x89F\x3\x2\x2\x2" + - "\x89F\x89D\x3\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1" + - "\x8A3\x5\x1F5\xFB\x2\x8A2\x8A4\a\xF\x2\x2\x8A3\x8A2\x3\x2\x2\x2\x8A3\x8A4" + - "\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8A6\a\f\x2\x2\x8A6\x8A7\x3\x2" + - "\x2\x2\x8A7\x8A8\b\xF5\x2\x2\x8A8\x1EA\x3\x2\x2\x2\x8A9\x8AB\t\t\x2\x2" + - "\x8AA\x8A9\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AA\x3\x2\x2\x2\x8AC" + - "\x8AD\x3\x2\x2\x2\x8AD\x1EC\x3\x2\x2\x2\x8AE\x8B0\x5\x1F3\xFA\x2\x8AF" + - "\x8AE\x3\x2\x2\x2\x8AF\x8B0\x3\x2\x2\x2\x8B0\x8B1\x3\x2\x2\x2\x8B1\x8B2" + - "\x5\x123\x92\x2\x8B2\x8B7\x5\x1F7\xFC\x2\x8B3\x8B6\x5\x1E9\xF5\x2\x8B4" + - "\x8B6\n\t\x2\x2\x8B5\x8B3\x3\x2\x2\x2\x8B5\x8B4\x3\x2\x2\x2\x8B6\x8B9" + - "\x3\x2\x2\x2\x8B7\x8B5\x3\x2\x2\x2\x8B7\x8B8\x3\x2\x2\x2\x8B8\x1EE\x3" + - "\x2\x2\x2\x8B9\x8B7\x3\x2\x2\x2\x8BA\x8BF\x5\x1F1\xF9\x2\x8BB\x8BE\x5" + - "\x1E9\xF5\x2\x8BC\x8BE\n\t\x2\x2\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2" + - "\x2\x2\x8BE\x8C1\x3\x2\x2\x2\x8BF\x8BD\x3\x2\x2\x2\x8BF\x8C0\x3\x2\x2" + - "\x2\x8C0\x1F0\x3\x2\x2\x2\x8C1\x8BF\x3\x2\x2\x2\x8C2\x8C3\a)\x2\x2\x8C3" + - "\x1F2\x3\x2\x2\x2\x8C4\x8C5\a<\x2\x2\x8C5\x1F4\x3\x2\x2\x2\x8C6\x8C7\a" + - "\x61\x2\x2\x8C7\x1F6\x3\x2\x2\x2\x8C8\x8CB\t\b\x2\x2\x8C9\x8CB\x5\x1E9" + - "\xF5\x2\x8CA\x8C8\x3\x2\x2\x2\x8CA\x8C9\x3\x2\x2\x2\x8CB\x8CC\x3\x2\x2" + - "\x2\x8CC\x8CA\x3\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x1F8\x3\x2\x2\x2" + - "\x8CE\x8D0\n\n\x2\x2\x8CF\x8CE\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2\x2\x8D1" + - "\x8CF\x3\x2\x2\x2\x8D1\x8D2\x3\x2\x2\x2\x8D2\x8DC\x3\x2\x2\x2\x8D3\x8D5" + - "\x5\x195\xCB\x2\x8D4\x8D6\n\v\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D6\x8D7\x3" + - "\x2\x2\x2\x8D7\x8D5\x3\x2\x2\x2\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8D9\x3\x2" + - "\x2\x2\x8D9\x8DA\x5\x197\xCC\x2\x8DA\x8DC\x3\x2\x2\x2\x8DB\x8CF\x3\x2" + - "\x2\x2\x8DB\x8D3\x3\x2\x2\x2\x8DC\x1FA\x3\x2\x2\x2\x8DD\x8DE\t\f\x2\x2" + - "\x8DE\x1FC\x3\x2\x2\x2\x8DF\x8E0\t\r\x2\x2\x8E0\x1FE\x3\x2\x2\x2\x8E1" + - "\x8E2\t\xE\x2\x2\x8E2\x200\x3\x2\x2\x2\x8E3\x8E4\t\xF\x2\x2\x8E4\x202" + - "\x3\x2\x2\x2\x8E5\x8E6\t\x10\x2\x2\x8E6\x204\x3\x2\x2\x2\x8E7\x8E8\t\x11" + - "\x2\x2\x8E8\x206\x3\x2\x2\x2\x8E9\x8EA\t\x12\x2\x2\x8EA\x208\x3\x2\x2" + - "\x2\x8EB\x8EC\t\x13\x2\x2\x8EC\x20A\x3\x2\x2\x2\x8ED\x8EE\t\x14\x2\x2" + - "\x8EE\x20C\x3\x2\x2\x2\x8EF\x8F0\t\x15\x2\x2\x8F0\x20E\x3\x2\x2\x2\x8F1" + - "\x8F2\t\x16\x2\x2\x8F2\x210\x3\x2\x2\x2\x8F3\x8F4\t\x17\x2\x2\x8F4\x212" + - "\x3\x2\x2\x2\x8F5\x8F6\t\x18\x2\x2\x8F6\x214\x3\x2\x2\x2\x8F7\x8F8\t\x19" + - "\x2\x2\x8F8\x216\x3\x2\x2\x2\x8F9\x8FA\t\x1A\x2\x2\x8FA\x218\x3\x2\x2" + - "\x2\x8FB\x8FC\t\x1B\x2\x2\x8FC\x21A\x3\x2\x2\x2\x8FD\x8FE\t\x1C\x2\x2" + - "\x8FE\x21C\x3\x2\x2\x2\x8FF\x900\t\x1D\x2\x2\x900\x21E\x3\x2\x2\x2\x901" + - "\x902\t\x1E\x2\x2\x902\x220\x3\x2\x2\x2\x903\x904\t\x1F\x2\x2\x904\x222" + - "\x3\x2\x2\x2\x905\x906\t \x2\x2\x906\x224\x3\x2\x2\x2\x907\x908\t!\x2" + - "\x2\x908\x226\x3\x2\x2\x2\x909\x90A\t\"\x2\x2\x90A\x228\x3\x2\x2\x2\x90B" + - "\x90C\t#\x2\x2\x90C\x22A\x3\x2\x2\x2\x90D\x90E\t$\x2\x2\x90E\x22C\x3\x2" + - "\x2\x2\x90F\x910\t%\x2\x2\x910\x22E\x3\x2\x2\x2\x911\x912\t&\x2\x2\x912" + - "\x230\x3\x2\x2\x2\x913\x914\t\'\x2\x2\x914\x232\x3\x2\x2\x2\x915\x916" + - "\t(\x2\x2\x916\x234\x3\x2\x2\x2\x35\x2\x4FA\x75D\x75F\x76A\x76D\x775\x778" + - "\x77C\x781\x784\x78A\x78E\x793\x79A\x79F\x7A7\x7AD\x7B5\x7BA\x7BD\x7C0" + - "\x7C3\x7C6\x7CA\x7D8\x7E5\x7EA\x7F1\x7F7\x7FD\x7FF\x802\x804\x807\x80B" + - "\x80E\x818\x89F\x8A3\x8AC\x8AF\x8B5\x8B7\x8BD\x8BF\x8CA\x8CC\x8D1\x8D7" + - "\x8DB\x3\b\x2\x2"; - public static readonly ATN _ATN = - new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); - } + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xEF\x8EA\b\x1\x4"+ + "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b"+ + "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4"+ + "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15"+ + "\t\x15\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A"+ + "\x4\x1B\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 "+ + "\t \x4!\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t"+ + ")\x4*\t*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31"+ + "\x4\x32\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37"+ + "\t\x37\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x4>\t>\x4"+ + "?\t?\x4@\t@\x4\x41\t\x41\x4\x42\t\x42\x4\x43\t\x43\x4\x44\t\x44\x4\x45"+ + "\t\x45\x4\x46\t\x46\x4G\tG\x4H\tH\x4I\tI\x4J\tJ\x4K\tK\x4L\tL\x4M\tM\x4"+ + "N\tN\x4O\tO\x4P\tP\x4Q\tQ\x4R\tR\x4S\tS\x4T\tT\x4U\tU\x4V\tV\x4W\tW\x4"+ + "X\tX\x4Y\tY\x4Z\tZ\x4[\t[\x4\\\t\\\x4]\t]\x4^\t^\x4_\t_\x4`\t`\x4\x61"+ + "\t\x61\x4\x62\t\x62\x4\x63\t\x63\x4\x64\t\x64\x4\x65\t\x65\x4\x66\t\x66"+ + "\x4g\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\t"+ + "p\x4q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\t"+ + "z\x4{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4"+ + "\x82\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87"+ + "\t\x87\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C"+ + "\x4\x8D\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92"+ + "\t\x92\x4\x93\t\x93\x4\x94\t\x94\x4\x95\t\x95\x4\x96\t\x96\x4\x97\t\x97"+ + "\x4\x98\t\x98\x4\x99\t\x99\x4\x9A\t\x9A\x4\x9B\t\x9B\x4\x9C\t\x9C\x4\x9D"+ + "\t\x9D\x4\x9E\t\x9E\x4\x9F\t\x9F\x4\xA0\t\xA0\x4\xA1\t\xA1\x4\xA2\t\xA2"+ + "\x4\xA3\t\xA3\x4\xA4\t\xA4\x4\xA5\t\xA5\x4\xA6\t\xA6\x4\xA7\t\xA7\x4\xA8"+ + "\t\xA8\x4\xA9\t\xA9\x4\xAA\t\xAA\x4\xAB\t\xAB\x4\xAC\t\xAC\x4\xAD\t\xAD"+ + "\x4\xAE\t\xAE\x4\xAF\t\xAF\x4\xB0\t\xB0\x4\xB1\t\xB1\x4\xB2\t\xB2\x4\xB3"+ + "\t\xB3\x4\xB4\t\xB4\x4\xB5\t\xB5\x4\xB6\t\xB6\x4\xB7\t\xB7\x4\xB8\t\xB8"+ + "\x4\xB9\t\xB9\x4\xBA\t\xBA\x4\xBB\t\xBB\x4\xBC\t\xBC\x4\xBD\t\xBD\x4\xBE"+ + "\t\xBE\x4\xBF\t\xBF\x4\xC0\t\xC0\x4\xC1\t\xC1\x4\xC2\t\xC2\x4\xC3\t\xC3"+ + "\x4\xC4\t\xC4\x4\xC5\t\xC5\x4\xC6\t\xC6\x4\xC7\t\xC7\x4\xC8\t\xC8\x4\xC9"+ + "\t\xC9\x4\xCA\t\xCA\x4\xCB\t\xCB\x4\xCC\t\xCC\x4\xCD\t\xCD\x4\xCE\t\xCE"+ + "\x4\xCF\t\xCF\x4\xD0\t\xD0\x4\xD1\t\xD1\x4\xD2\t\xD2\x4\xD3\t\xD3\x4\xD4"+ + "\t\xD4\x4\xD5\t\xD5\x4\xD6\t\xD6\x4\xD7\t\xD7\x4\xD8\t\xD8\x4\xD9\t\xD9"+ + "\x4\xDA\t\xDA\x4\xDB\t\xDB\x4\xDC\t\xDC\x4\xDD\t\xDD\x4\xDE\t\xDE\x4\xDF"+ + "\t\xDF\x4\xE0\t\xE0\x4\xE1\t\xE1\x4\xE2\t\xE2\x4\xE3\t\xE3\x4\xE4\t\xE4"+ + "\x4\xE5\t\xE5\x4\xE6\t\xE6\x4\xE7\t\xE7\x4\xE8\t\xE8\x4\xE9\t\xE9\x4\xEA"+ + "\t\xEA\x4\xEB\t\xEB\x4\xEC\t\xEC\x4\xED\t\xED\x4\xEE\t\xEE\x4\xEF\t\xEF"+ + "\x4\xF0\t\xF0\x4\xF1\t\xF1\x4\xF2\t\xF2\x4\xF3\t\xF3\x4\xF4\t\xF4\x4\xF5"+ + "\t\xF5\x4\xF6\t\xF6\x4\xF7\t\xF7\x4\xF8\t\xF8\x4\xF9\t\xF9\x4\xFA\t\xFA"+ + "\x4\xFB\t\xFB\x4\xFC\t\xFC\x4\xFD\t\xFD\x4\xFE\t\xFE\x4\xFF\t\xFF\x4\x100"+ + "\t\x100\x4\x101\t\x101\x4\x102\t\x102\x4\x103\t\x103\x4\x104\t\x104\x4"+ + "\x105\t\x105\x4\x106\t\x106\x4\x107\t\x107\x4\x108\t\x108\x4\x109\t\x109"+ + "\x4\x10A\t\x10A\x4\x10B\t\x10B\x4\x10C\t\x10C\x4\x10D\t\x10D\x4\x10E\t"+ + "\x10E\x4\x10F\t\x10F\x4\x110\t\x110\x4\x111\t\x111\x4\x112\t\x112\x4\x113"+ + "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x3\x2\x3\x2\x3\x3\x3\x3\x3\x4\x3"+ + "\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3\t\x3\n\x3\n\x3"+ + "\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3"+ + "\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE"+ + "\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3"+ + "\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3"+ + "\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3"+ + "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x17\x3"+ + "\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3"+ + "\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3"+ + "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3"+ + "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3"+ + "\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3"+ + "\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3 \x3"+ + " \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"\x3\"\x3#\x3"+ + "#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3%\x3%\x3%"+ + "\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'\x3\'\x3\'\x3"+ + "\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3)\x3)"+ + "\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3,\x3,\x3"+ + ",\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3."+ + "\x3.\x3/\x3/\x3/\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3"+ + "\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3"+ + "\x31\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3"+ + "\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3"+ + "\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3"+ + "\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x38\x3"+ + "\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3"+ + "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3:\x3:\x3"+ + ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3;\x3;\x3;\x3;"+ + "\x3;\x3;\x3;\x3;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3=\x3"+ + "=\x3=\x3=\x3=\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3@"+ + "\x3@\x3@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x3\x42"+ + "\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x44\x3\x44"+ + "\x3\x44\x3\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45"+ + "\x3\x45\x3\x45\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46"+ + "\x3\x46\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3H\x3"+ + "H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3I\x3I\x3I\x3I\x3I"+ + "\x3I\x3I\x3I\x3I\x3J\x3J\x3J\x3J\x3J\x3J\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3"+ + "K\x3K\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x3N\x3N\x3N\x3N\x3N"+ + "\x3N\x3N\x3N\x3N\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x3Q\x3Q\x3"+ + "Q\x3Q\x3Q\x3Q\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3T\x3T\x3T\x3T\x3U\x3U"+ + "\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3V\x3V\x3V\x3W\x3W\x3W\x3W\x3W\x3"+ + "W\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Z\x3Z\x3Z\x3Z\x3Z\x3["+ + "\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3^\x3^"+ + "\x3^\x3^\x3^\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3\x61\x3\x61\x3\x61\x3\x61"+ + "\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63"+ + "\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x64\x3\x64\x3\x64\x3\x64"+ + "\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65"+ + "\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66"+ + "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66"+ + "\x3\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3h\x3h\x3h\x3i\x3i\x3i\x3i"+ + "\x3j\x3j\x3j\x3j\x3j\x3j\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3l\x3m\x3m\x3"+ + "m\x3m\x3m\x3n\x3n\x3n\x3n\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3p\x3p\x3p"+ + "\x3p\x3q\x3q\x3q\x3q\x3q\x3r\x3r\x3r\x3s\x3s\x3s\x3s\x3s\x3s\x3s\x3s\x3"+ + "s\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3u\x3u"+ + "\x3u\x3u\x3u\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3w\x3w\x3w\x3w\x3w\x3"+ + "w\x3w\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x"+ + "\x3x\x3x\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3"+ + "y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z"+ + "\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3{\x3{\x3{\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3"+ + "}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~"+ + "\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80"+ + "\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81"+ + "\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82"+ + "\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82"+ + "\x3\x82\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83"+ + "\x3\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84"+ + "\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86"+ + "\x3\x86\x3\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87"+ + "\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88"+ + "\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89"+ + "\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B"+ + "\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8C"+ + "\x3\x8C\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E"+ + "\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F"+ + "\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91"+ + "\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x93\x3\x93"+ + "\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93"+ + "\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94"+ + "\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96\x3\x96"+ + "\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97"+ + "\x3\x97\x3\x97\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99"+ + "\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A"+ + "\x3\x9A\x3\x9A\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C"+ + "\x3\x9C\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D"+ + "\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F"+ + "\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1"+ + "\x3\xA1\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3"+ + "\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5"+ + "\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8"+ + "\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9"+ + "\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB"+ + "\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC"+ + "\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE"+ + "\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF"+ + "\x3\xAF\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1"+ + "\x3\xB1\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3"+ + "\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB4"+ + "\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6"+ + "\x3\xB6\x3\xB7\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xBA\x3\xBA"+ + "\x3\xBB\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBD\x3\xBE\x3\xBE"+ + "\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC1\x3\xC1\x3\xC2\x3\xC2\x3\xC2\x3\xC3"+ + "\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC7\x3\xC7\x3\xC8"+ + "\x3\xC8\x3\xC8\x3\xC8\a\xC8\x731\n\xC8\f\xC8\xE\xC8\x734\v\xC8\x3\xC8"+ + "\x3\xC8\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x6\xC9\x73C\n\xC9\r\xC9\xE\xC9\x73D"+ + "\x3\xC9\x5\xC9\x741\n\xC9\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x6\xCA\x747\n\xCA"+ + "\r\xCA\xE\xCA\x748\x3\xCA\x5\xCA\x74C\n\xCA\x3\xCB\x3\xCB\x5\xCB\x750"+ + "\n\xCB\x3\xCB\x6\xCB\x753\n\xCB\r\xCB\xE\xCB\x754\x3\xCB\x5\xCB\x758\n"+ + "\xCB\x3\xCC\x3\xCC\x3\xCC\x3\xCC\x5\xCC\x75E\n\xCC\x3\xCD\x3\xCD\x5\xCD"+ + "\x762\n\xCD\x3\xCD\a\xCD\x765\n\xCD\f\xCD\xE\xCD\x768\v\xCD\x3\xCD\x3"+ + "\xCD\x6\xCD\x76C\n\xCD\r\xCD\xE\xCD\x76D\x3\xCD\x3\xCD\x3\xCD\x5\xCD\x773"+ + "\n\xCD\x3\xCE\x3\xCE\x3\xCE\x3\xCE\x3\xCF\x3\xCF\x5\xCF\x77B\n\xCF\x3"+ + "\xCF\x3\xCF\x3\xCF\x3\xCF\x5\xCF\x781\n\xCF\x3\xD0\x3\xD0\x3\xD0\x3\xD0"+ + "\x3\xD0\x3\xD0\x5\xD0\x789\n\xD0\x3\xD1\x6\xD1\x78C\n\xD1\r\xD1\xE\xD1"+ + "\x78D\x3\xD1\x5\xD1\x791\n\xD1\x3\xD2\x5\xD2\x794\n\xD2\x3\xD2\x5\xD2"+ + "\x797\n\xD2\x3\xD2\x5\xD2\x79A\n\xD2\x3\xD3\x3\xD3\x5\xD3\x79E\n\xD3\x3"+ + "\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3"+ + "\xD4\x3\xD4\x5\xD4\x7AC\n\xD4\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5"+ + "\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x7B9\n\xD5\x3\xD6\x6\xD6\x7BC"+ + "\n\xD6\r\xD6\xE\xD6\x7BD\x3\xD6\x3\xD6\x3\xD6\x6\xD6\x7C3\n\xD6\r\xD6"+ + "\xE\xD6\x7C4\x3\xD6\x3\xD6\x6\xD6\x7C9\n\xD6\r\xD6\xE\xD6\x7CA\x3\xD6"+ + "\x3\xD6\x6\xD6\x7CF\n\xD6\r\xD6\xE\xD6\x7D0\x5\xD6\x7D3\n\xD6\x3\xD6\x5"+ + "\xD6\x7D6\n\xD6\x5\xD6\x7D8\n\xD6\x3\xD7\x5\xD7\x7DB\n\xD7\x3\xD7\x3\xD7"+ + "\x5\xD7\x7DF\n\xD7\x3\xD8\x5\xD8\x7E2\n\xD8\x3\xD8\x3\xD8\x3\xD8\x3\xD8"+ + "\x3\xD8\x3\xD8\x3\xD8\x3\xD8\x5\xD8\x7EC\n\xD8\x3\xD9\x3\xD9\x3\xD9\x3"+ + "\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3"+ + "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3"+ + "\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3"+ + "\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3"+ + "\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3"+ + "\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3\xE2\x3"+ + "\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3"+ + "\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3"+ + "\xE4\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3\xE6\x3\xE6\x3"+ + "\xE6\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE9\x3"+ + "\xE9\x3\xE9\x3\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEB\x3\xEB\x3\xEB\x3"+ + "\xEB\x3\xEC\x3\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED\x3\xED\x3\xED\x3\xEE\x3"+ + "\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xF0\x6\xF0\x871\n\xF0"+ + "\r\xF0\xE\xF0\x872\x3\xF0\x3\xF0\x5\xF0\x877\n\xF0\x3\xF0\x3\xF0\x3\xF0"+ + "\x3\xF0\x3\xF1\x6\xF1\x87E\n\xF1\r\xF1\xE\xF1\x87F\x3\xF2\x5\xF2\x883"+ + "\n\xF2\x3\xF2\x3\xF2\x3\xF2\x3\xF2\a\xF2\x889\n\xF2\f\xF2\xE\xF2\x88C"+ + "\v\xF2\x3\xF3\x3\xF3\x3\xF3\a\xF3\x891\n\xF3\f\xF3\xE\xF3\x894\v\xF3\x3"+ + "\xF4\x3\xF4\x3\xF5\x3\xF5\x3\xF6\x3\xF6\x3\xF7\x3\xF7\x6\xF7\x89E\n\xF7"+ + "\r\xF7\xE\xF7\x89F\x3\xF8\x6\xF8\x8A3\n\xF8\r\xF8\xE\xF8\x8A4\x3\xF8\x3"+ + "\xF8\x6\xF8\x8A9\n\xF8\r\xF8\xE\xF8\x8AA\x3\xF8\x3\xF8\x5\xF8\x8AF\n\xF8"+ + "\x3\xF9\x3\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x3\xFD\x3\xFD"+ + "\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101\x3\x101\x3\x102\x3"+ + "\x102\x3\x103\x3\x103\x3\x104\x3\x104\x3\x105\x3\x105\x3\x106\x3\x106"+ + "\x3\x107\x3\x107\x3\x108\x3\x108\x3\x109\x3\x109\x3\x10A\x3\x10A\x3\x10B"+ + "\x3\x10B\x3\x10C\x3\x10C\x3\x10D\x3\x10D\x3\x10E\x3\x10E\x3\x10F\x3\x10F"+ + "\x3\x110\x3\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113\x3\x113\x3\x114"+ + "\x3\x114\x3\x115\x3\x115\x2\x2\x2\x116\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2"+ + "\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE"+ + "\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2"+ + "\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D"+ + "\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2%I\x2&K\x2\'"+ + "M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31\x61\x2\x32\x63"+ + "\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2\x39q\x2:s\x2;u"+ + "\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43\x85\x2\x44\x87"+ + "\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93\x2K\x95\x2L\x97"+ + "\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5\x2T\xA7\x2U\xA9"+ + "\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\\xB7\x2]\xB9\x2^"+ + "\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5\x2\x64\xC7\x2\x65"+ + "\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k\xD5\x2l\xD7\x2m\xD9"+ + "\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2t\xE7\x2u\xE9\x2v\xEB"+ + "\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7\x2}\xF9\x2~\xFB\x2\x7F"+ + "\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83\x105\x2\x84\x107\x2\x85"+ + "\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89\x111\x2\x8A\x113\x2\x8B"+ + "\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F\x11D\x2\x90\x11F\x2\x91"+ + "\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95\x129\x2\x96\x12B\x2\x97"+ + "\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B\x135\x2\x9C\x137\x2\x9D"+ + "\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1\x141\x2\xA2\x143\x2\xA3"+ + "\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7\x14D\x2\xA8\x14F\x2\xA9"+ + "\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD\x159\x2\xAE\x15B\x2\xAF"+ + "\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3\x165\x2\xB4\x167\x2\xB5"+ + "\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9\x171\x2\xBA\x173\x2\xBB"+ + "\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF\x17D\x2\xC0\x17F\x2\xC1"+ + "\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5\x189\x2\xC6\x18B\x2\xC7"+ + "\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB\x195\x2\xCC\x197\x2\xCD"+ + "\x199\x2\xCE\x19B\x2\xCF\x19D\x2\x2\x19F\x2\x2\x1A1\x2\x2\x1A3\x2\x2\x1A5"+ + "\x2\x2\x1A7\x2\x2\x1A9\x2\x2\x1AB\x2\x2\x1AD\x2\x2\x1AF\x2\x2\x1B1\x2"+ + "\xD0\x1B3\x2\xD1\x1B5\x2\xD2\x1B7\x2\xD3\x1B9\x2\xD4\x1BB\x2\xD5\x1BD"+ + "\x2\xD6\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5\x2\xDA\x1C7\x2\xDB\x1C9"+ + "\x2\xDC\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1\x2\xE0\x1D3\x2\xE1\x1D5"+ + "\x2\xE2\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD\x2\xE6\x1DF\x2\xE7\x1E1"+ + "\x2\xE8\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9\x2\xEC\x1EB\x2\xED\x1ED"+ + "\x2\xEE\x1EF\x2\xEF\x1F1\x2\x2\x1F3\x2\x2\x1F5\x2\x2\x1F7\x2\x2\x1F9\x2"+ + "\x2\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2\x2\x203\x2\x2\x205\x2\x2"+ + "\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2\x20F\x2\x2\x211\x2\x2\x213"+ + "\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B\x2\x2\x21D\x2\x2\x21F\x2"+ + "\x2\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227\x2\x2\x229\x2\x2\x3\x2)\x5\x2"+ + "\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x5\x2%%((\x42\x42\x4\x2./\x31"+ + "\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\"\x5\x2\f\f\xF\xF\x202A\x202B\v\x2\v"+ + "\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\v\x2\x43\\\x61"+ + "\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x3\x2\x32;\f"+ + "\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE"+ + "\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65"+ + "\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2K"+ + "Kkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2"+ + "RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2"+ + "YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x90B\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2"+ + "\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2"+ + "\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3"+ + "\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2"+ + "\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2"+ + "%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3"+ + "\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35"+ + "\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2"+ + "=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2"+ + "\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3"+ + "\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2"+ + "\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2"+ + "_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2"+ + "\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3"+ + "\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2"+ + "\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2"+ + "\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2"+ + "\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F"+ + "\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2"+ + "\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2"+ + "\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5"+ + "\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2"+ + "\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2"+ + "\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB"+ + "\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2"+ + "\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2"+ + "\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1"+ + "\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2"+ + "\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2"+ + "\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7"+ + "\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2"+ + "\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2"+ + "\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD"+ + "\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2"+ + "\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3"+ + "\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2"+ + "\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3"+ + "\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2"+ + "\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3"+ + "\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2"+ + "\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3"+ + "\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2"+ + "\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3"+ + "\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2"+ + "\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3"+ + "\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2"+ + "\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3"+ + "\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2"+ + "\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3"+ + "\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2"+ + "\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3"+ + "\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2"+ + "\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3"+ + "\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2"+ + "\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3"+ + "\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x1B1\x3\x2\x2\x2"+ + "\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2\x2\x2\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3"+ + "\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2"+ + "\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3"+ + "\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2"+ + "\x2\x1CF\x3\x2\x2\x2\x2\x1D1\x3\x2\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3"+ + "\x2\x2\x2\x2\x1D7\x3\x2\x2\x2\x2\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2"+ + "\x2\x1DD\x3\x2\x2\x2\x2\x1DF\x3\x2\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3"+ + "\x2\x2\x2\x2\x1E5\x3\x2\x2\x2\x2\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2"+ + "\x2\x1EB\x3\x2\x2\x2\x2\x1ED\x3\x2\x2\x2\x2\x1EF\x3\x2\x2\x2\x3\x22B\x3"+ + "\x2\x2\x2\x5\x22D\x3\x2\x2\x2\a\x22F\x3\x2\x2\x2\t\x231\x3\x2\x2\x2\v"+ + "\x233\x3\x2\x2\x2\r\x235\x3\x2\x2\x2\xF\x237\x3\x2\x2\x2\x11\x239\x3\x2"+ + "\x2\x2\x13\x23B\x3\x2\x2\x2\x15\x242\x3\x2\x2\x2\x17\x24C\x3\x2\x2\x2"+ + "\x19\x252\x3\x2\x2\x2\x1B\x256\x3\x2\x2\x2\x1D\x260\x3\x2\x2\x2\x1F\x26C"+ + "\x3\x2\x2\x2!\x273\x3\x2\x2\x2#\x276\x3\x2\x2\x2%\x27C\x3\x2\x2\x2\'\x281"+ + "\x3\x2\x2\x2)\x288\x3\x2\x2\x2+\x290\x3\x2\x2\x2-\x296\x3\x2\x2\x2/\x29C"+ + "\x3\x2\x2\x2\x31\x2A1\x3\x2\x2\x2\x33\x2A6\x3\x2\x2\x2\x35\x2AB\x3\x2"+ + "\x2\x2\x37\x2B1\x3\x2\x2\x2\x39\x2B9\x3\x2\x2\x2;\x2BF\x3\x2\x2\x2=\x2C5"+ + "\x3\x2\x2\x2?\x2D0\x3\x2\x2\x2\x41\x2D6\x3\x2\x2\x2\x43\x2DF\x3\x2\x2"+ + "\x2\x45\x2E4\x3\x2\x2\x2G\x2EC\x3\x2\x2\x2I\x2F4\x3\x2\x2\x2K\x2FC\x3"+ + "\x2\x2\x2M\x304\x3\x2\x2\x2O\x30B\x3\x2\x2\x2Q\x312\x3\x2\x2\x2S\x319"+ + "\x3\x2\x2\x2U\x320\x3\x2\x2\x2W\x327\x3\x2\x2\x2Y\x32E\x3\x2\x2\x2[\x335"+ + "\x3\x2\x2\x2]\x33C\x3\x2\x2\x2_\x343\x3\x2\x2\x2\x61\x351\x3\x2\x2\x2"+ + "\x63\x355\x3\x2\x2\x2\x65\x358\x3\x2\x2\x2g\x35F\x3\x2\x2\x2i\x364\x3"+ + "\x2\x2\x2k\x369\x3\x2\x2\x2m\x370\x3\x2\x2\x2o\x379\x3\x2\x2\x2q\x386"+ + "\x3\x2\x2\x2s\x38D\x3\x2\x2\x2u\x39A\x3\x2\x2\x2w\x3A5\x3\x2\x2\x2y\x3AD"+ + "\x3\x2\x2\x2{\x3B6\x3\x2\x2\x2}\x3BF\x3\x2\x2\x2\x7F\x3C3\x3\x2\x2\x2"+ + "\x81\x3C8\x3\x2\x2\x2\x83\x3CC\x3\x2\x2\x2\x85\x3D2\x3\x2\x2\x2\x87\x3D8"+ + "\x3\x2\x2\x2\x89\x3DE\x3\x2\x2\x2\x8B\x3E6\x3\x2\x2\x2\x8D\x3EF\x3\x2"+ + "\x2\x2\x8F\x3FD\x3\x2\x2\x2\x91\x40B\x3\x2\x2\x2\x93\x414\x3\x2\x2\x2"+ + "\x95\x41A\x3\x2\x2\x2\x97\x423\x3\x2\x2\x2\x99\x42A\x3\x2\x2\x2\x9B\x42E"+ + "\x3\x2\x2\x2\x9D\x437\x3\x2\x2\x2\x9F\x43B\x3\x2\x2\x2\xA1\x442\x3\x2"+ + "\x2\x2\xA3\x448\x3\x2\x2\x2\xA5\x44D\x3\x2\x2\x2\xA7\x450\x3\x2\x2\x2"+ + "\xA9\x454\x3\x2\x2\x2\xAB\x45F\x3\x2\x2\x2\xAD\x462\x3\x2\x2\x2\xAF\x468"+ + "\x3\x2\x2\x2\xB1\x46B\x3\x2\x2\x2\xB3\x473\x3\x2\x2\x2\xB5\x478\x3\x2"+ + "\x2\x2\xB7\x47D\x3\x2\x2\x2\xB9\x482\x3\x2\x2\x2\xBB\x487\x3\x2\x2\x2"+ + "\xBD\x48C\x3\x2\x2\x2\xBF\x490\x3\x2\x2\x2\xC1\x494\x3\x2\x2\x2\xC3\x498"+ + "\x3\x2\x2\x2\xC5\x49D\x3\x2\x2\x2\xC7\x4A8\x3\x2\x2\x2\xC9\x4B2\x3\x2"+ + "\x2\x2\xCB\x4BD\x3\x2\x2\x2\xCD\x4CD\x3\x2\x2\x2\xCF\x4D2\x3\x2\x2\x2"+ + "\xD1\x4D5\x3\x2\x2\x2\xD3\x4D9\x3\x2\x2\x2\xD5\x4DF\x3\x2\x2\x2\xD7\x4E3"+ + "\x3\x2\x2\x2\xD9\x4E8\x3\x2\x2\x2\xDB\x4ED\x3\x2\x2\x2\xDD\x4F1\x3\x2"+ + "\x2\x2\xDF\x4F5\x3\x2\x2\x2\xE1\x4FD\x3\x2\x2\x2\xE3\x502\x3\x2\x2\x2"+ + "\xE5\x505\x3\x2\x2\x2\xE7\x50E\x3\x2\x2\x2\xE9\x51D\x3\x2\x2\x2\xEB\x522"+ + "\x3\x2\x2\x2\xED\x52B\x3\x2\x2\x2\xEF\x537\x3\x2\x2\x2\xF1\x547\x3\x2"+ + "\x2\x2\xF3\x556\x3\x2\x2\x2\xF5\x56C\x3\x2\x2\x2\xF7\x56F\x3\x2\x2\x2"+ + "\xF9\x576\x3\x2\x2\x2\xFB\x581\x3\x2\x2\x2\xFD\x58A\x3\x2\x2\x2\xFF\x590"+ + "\x3\x2\x2\x2\x101\x598\x3\x2\x2\x2\x103\x5A5\x3\x2\x2\x2\x105\x5B2\x3"+ + "\x2\x2\x2\x107\x5BF\x3\x2\x2\x2\x109\x5C7\x3\x2\x2\x2\x10B\x5CE\x3\x2"+ + "\x2\x2\x10D\x5D2\x3\x2\x2\x2\x10F\x5D9\x3\x2\x2\x2\x111\x5E3\x3\x2\x2"+ + "\x2\x113\x5EE\x3\x2\x2\x2\x115\x5F3\x3\x2\x2\x2\x117\x5FE\x3\x2\x2\x2"+ + "\x119\x604\x3\x2\x2\x2\x11B\x608\x3\x2\x2\x2\x11D\x60E\x3\x2\x2\x2\x11F"+ + "\x615\x3\x2\x2\x2\x121\x61C\x3\x2\x2\x2\x123\x622\x3\x2\x2\x2\x125\x627"+ + "\x3\x2\x2\x2\x127\x633\x3\x2\x2\x2\x129\x63F\x3\x2\x2\x2\x12B\x644\x3"+ + "\x2\x2\x2\x12D\x64B\x3\x2\x2\x2\x12F\x654\x3\x2\x2\x2\x131\x658\x3\x2"+ + "\x2\x2\x133\x660\x3\x2\x2\x2\x135\x667\x3\x2\x2\x2\x137\x66E\x3\x2\x2"+ + "\x2\x139\x672\x3\x2\x2\x2\x13B\x679\x3\x2\x2\x2\x13D\x67E\x3\x2\x2\x2"+ + "\x13F\x683\x3\x2\x2\x2\x141\x68A\x3\x2\x2\x2\x143\x68E\x3\x2\x2\x2\x145"+ + "\x692\x3\x2\x2\x2\x147\x697\x3\x2\x2\x2\x149\x69C\x3\x2\x2\x2\x14B\x6A1"+ + "\x3\x2\x2\x2\x14D\x6A4\x3\x2\x2\x2\x14F\x6A9\x3\x2\x2\x2\x151\x6AE\x3"+ + "\x2\x2\x2\x153\x6B5\x3\x2\x2\x2\x155\x6BC\x3\x2\x2\x2\x157\x6C3\x3\x2"+ + "\x2\x2\x159\x6C9\x3\x2\x2\x2\x15B\x6D1\x3\x2\x2\x2\x15D\x6D9\x3\x2\x2"+ + "\x2\x15F\x6DE\x3\x2\x2\x2\x161\x6E4\x3\x2\x2\x2\x163\x6EA\x3\x2\x2\x2"+ + "\x165\x6EF\x3\x2\x2\x2\x167\x6FA\x3\x2\x2\x2\x169\x700\x3\x2\x2\x2\x16B"+ + "\x704\x3\x2\x2\x2\x16D\x706\x3\x2\x2\x2\x16F\x709\x3\x2\x2\x2\x171\x70B"+ + "\x3\x2\x2\x2\x173\x70D\x3\x2\x2\x2\x175\x70F\x3\x2\x2\x2\x177\x712\x3"+ + "\x2\x2\x2\x179\x714\x3\x2\x2\x2\x17B\x717\x3\x2\x2\x2\x17D\x719\x3\x2"+ + "\x2\x2\x17F\x71B\x3\x2\x2\x2\x181\x71D\x3\x2\x2\x2\x183\x71F\x3\x2\x2"+ + "\x2\x185\x722\x3\x2\x2\x2\x187\x724\x3\x2\x2\x2\x189\x726\x3\x2\x2\x2"+ + "\x18B\x728\x3\x2\x2\x2\x18D\x72A\x3\x2\x2\x2\x18F\x72C\x3\x2\x2\x2\x191"+ + "\x737\x3\x2\x2\x2\x193\x742\x3\x2\x2\x2\x195\x74F\x3\x2\x2\x2\x197\x759"+ + "\x3\x2\x2\x2\x199\x761\x3\x2\x2\x2\x19B\x774\x3\x2\x2\x2\x19D\x780\x3"+ + "\x2\x2\x2\x19F\x782\x3\x2\x2\x2\x1A1\x790\x3\x2\x2\x2\x1A3\x793\x3\x2"+ + "\x2\x2\x1A5\x79D\x3\x2\x2\x2\x1A7\x7AB\x3\x2\x2\x2\x1A9\x7B8\x3\x2\x2"+ + "\x2\x1AB\x7D7\x3\x2\x2\x2\x1AD\x7DA\x3\x2\x2\x2\x1AF\x7E1\x3\x2\x2\x2"+ + "\x1B1\x7ED\x3\x2\x2\x2\x1B3\x7F5\x3\x2\x2\x2\x1B5\x7FE\x3\x2\x2\x2\x1B7"+ + "\x804\x3\x2\x2\x2\x1B9\x80A\x3\x2\x2\x2\x1BB\x80E\x3\x2\x2\x2\x1BD\x813"+ + "\x3\x2\x2\x2\x1BF\x818\x3\x2\x2\x2\x1C1\x81F\x3\x2\x2\x2\x1C3\x829\x3"+ + "\x2\x2\x2\x1C5\x831\x3\x2\x2\x2\x1C7\x83A\x3\x2\x2\x2\x1C9\x843\x3\x2"+ + "\x2\x2\x1CB\x847\x3\x2\x2\x2\x1CD\x84B\x3\x2\x2\x2\x1CF\x84F\x3\x2\x2"+ + "\x2\x1D1\x853\x3\x2\x2\x2\x1D3\x857\x3\x2\x2\x2\x1D5\x85B\x3\x2\x2\x2"+ + "\x1D7\x85F\x3\x2\x2\x2\x1D9\x863\x3\x2\x2\x2\x1DB\x867\x3\x2\x2\x2\x1DD"+ + "\x86B\x3\x2\x2\x2\x1DF\x870\x3\x2\x2\x2\x1E1\x87D\x3\x2\x2\x2\x1E3\x882"+ + "\x3\x2\x2\x2\x1E5\x88D\x3\x2\x2\x2\x1E7\x895\x3\x2\x2\x2\x1E9\x897\x3"+ + "\x2\x2\x2\x1EB\x899\x3\x2\x2\x2\x1ED\x89D\x3\x2\x2\x2\x1EF\x8AE\x3\x2"+ + "\x2\x2\x1F1\x8B0\x3\x2\x2\x2\x1F3\x8B2\x3\x2\x2\x2\x1F5\x8B4\x3\x2\x2"+ + "\x2\x1F7\x8B6\x3\x2\x2\x2\x1F9\x8B8\x3\x2\x2\x2\x1FB\x8BA\x3\x2\x2\x2"+ + "\x1FD\x8BC\x3\x2\x2\x2\x1FF\x8BE\x3\x2\x2\x2\x201\x8C0\x3\x2\x2\x2\x203"+ + "\x8C2\x3\x2\x2\x2\x205\x8C4\x3\x2\x2\x2\x207\x8C6\x3\x2\x2\x2\x209\x8C8"+ + "\x3\x2\x2\x2\x20B\x8CA\x3\x2\x2\x2\x20D\x8CC\x3\x2\x2\x2\x20F\x8CE\x3"+ + "\x2\x2\x2\x211\x8D0\x3\x2\x2\x2\x213\x8D2\x3\x2\x2\x2\x215\x8D4\x3\x2"+ + "\x2\x2\x217\x8D6\x3\x2\x2\x2\x219\x8D8\x3\x2\x2\x2\x21B\x8DA\x3\x2\x2"+ + "\x2\x21D\x8DC\x3\x2\x2\x2\x21F\x8DE\x3\x2\x2\x2\x221\x8E0\x3\x2\x2\x2"+ + "\x223\x8E2\x3\x2\x2\x2\x225\x8E4\x3\x2\x2\x2\x227\x8E6\x3\x2\x2\x2\x229"+ + "\x8E8\x3\x2\x2\x2\x22B\x22C\a\x42\x2\x2\x22C\x4\x3\x2\x2\x2\x22D\x22E"+ + "\a#\x2\x2\x22E\x6\x3\x2\x2\x2\x22F\x230\a%\x2\x2\x230\b\x3\x2\x2\x2\x231"+ + "\x232\a&\x2\x2\x232\n\x3\x2\x2\x2\x233\x234\a\'\x2\x2\x234\f\x3\x2\x2"+ + "\x2\x235\x236\a=\x2\x2\x236\xE\x3\x2\x2\x2\x237\x238\a.\x2\x2\x238\x10"+ + "\x3\x2\x2\x2\x239\x23A\a\x30\x2\x2\x23A\x12\x3\x2\x2\x2\x23B\x23C\x5\x1F7"+ + "\xFC\x2\x23C\x23D\x5\x1FB\xFE\x2\x23D\x23E\x5\x1FB\xFE\x2\x23E\x23F\x5"+ + "\x1FF\x100\x2\x23F\x240\x5\x21B\x10E\x2\x240\x241\x5\x21B\x10E\x2\x241"+ + "\x14\x3\x2\x2\x2\x242\x243\x5\x1F7\xFC\x2\x243\x244\x5\x1FD\xFF\x2\x244"+ + "\x245\x5\x1FD\xFF\x2\x245\x246\x5\x219\x10D\x2\x246\x247\x5\x1FF\x100"+ + "\x2\x247\x248\x5\x21B\x10E\x2\x248\x249\x5\x21B\x10E\x2\x249\x24A\x5\x213"+ + "\x10A\x2\x24A\x24B\x5\x201\x101\x2\x24B\x16\x3\x2\x2\x2\x24C\x24D\x5\x1F7"+ + "\xFC\x2\x24D\x24E\x5\x20D\x107\x2\x24E\x24F\x5\x207\x104\x2\x24F\x250"+ + "\x5\x1F7\xFC\x2\x250\x251\x5\x21B\x10E\x2\x251\x18\x3\x2\x2\x2\x252\x253"+ + "\x5\x1F7\xFC\x2\x253\x254\x5\x211\x109\x2\x254\x255\x5\x1FD\xFF\x2\x255"+ + "\x1A\x3\x2\x2\x2\x256\x257\x5\x1F7\xFC\x2\x257\x258\x5\x21D\x10F\x2\x258"+ + "\x259\x5\x21D\x10F\x2\x259\x25A\x5\x219\x10D\x2\x25A\x25B\x5\x207\x104"+ + "\x2\x25B\x25C\x5\x1F9\xFD\x2\x25C\x25D\x5\x21F\x110\x2\x25D\x25E\x5\x21D"+ + "\x10F\x2\x25E\x25F\x5\x1FF\x100\x2\x25F\x1C\x3\x2\x2\x2\x260\x261\x5\x1F7"+ + "\xFC\x2\x261\x262\x5\x215\x10B\x2\x262\x263\x5\x215\x10B\x2\x263\x264"+ + "\x5\x1F7\xFC\x2\x264\x265\x5\x1FB\xFE\x2\x265\x266\x5\x21D\x10F\x2\x266"+ + "\x267\x5\x207\x104\x2\x267\x268\x5\x221\x111\x2\x268\x269\x5\x1F7\xFC"+ + "\x2\x269\x26A\x5\x21D\x10F\x2\x26A\x26B\x5\x1FF\x100\x2\x26B\x1E\x3\x2"+ + "\x2\x2\x26C\x26D\x5\x1F7\xFC\x2\x26D\x26E\x5\x215\x10B\x2\x26E\x26F\x5"+ + "\x215\x10B\x2\x26F\x270\x5\x1FF\x100\x2\x270\x271\x5\x211\x109\x2\x271"+ + "\x272\x5\x1FD\xFF\x2\x272 \x3\x2\x2\x2\x273\x274\x5\x1F7\xFC\x2\x274\x275"+ + "\x5\x21B\x10E\x2\x275\"\x3\x2\x2\x2\x276\x277\x5\x1F9\xFD\x2\x277\x278"+ + "\x5\x1FF\x100\x2\x278\x279\x5\x203\x102\x2\x279\x27A\x5\x207\x104\x2\x27A"+ + "\x27B\x5\x211\x109\x2\x27B$\x3\x2\x2\x2\x27C\x27D\x5\x1F9\xFD\x2\x27D"+ + "\x27E\x5\x1FF\x100\x2\x27E\x27F\x5\x1FF\x100\x2\x27F\x280\x5\x215\x10B"+ + "\x2\x280&\x3\x2\x2\x2\x281\x282\x5\x1F9\xFD\x2\x282\x283\x5\x207\x104"+ + "\x2\x283\x284\x5\x211\x109\x2\x284\x285\x5\x1F7\xFC\x2\x285\x286\x5\x219"+ + "\x10D\x2\x286\x287\x5\x227\x114\x2\x287(\x3\x2\x2\x2\x288\x289\x5\x1F9"+ + "\xFD\x2\x289\x28A\x5\x213\x10A\x2\x28A\x28B\x5\x213\x10A\x2\x28B\x28C"+ + "\x5\x20D\x107\x2\x28C\x28D\x5\x1FF\x100\x2\x28D\x28E\x5\x1F7\xFC\x2\x28E"+ + "\x28F\x5\x211\x109\x2\x28F*\x3\x2\x2\x2\x290\x291\x5\x1F9\xFD\x2\x291"+ + "\x292\x5\x227\x114\x2\x292\x293\x5\x221\x111\x2\x293\x294\x5\x1F7\xFC"+ + "\x2\x294\x295\x5\x20D\x107\x2\x295,\x3\x2\x2\x2\x296\x297\x5\x1F9\xFD"+ + "\x2\x297\x298\x5\x227\x114\x2\x298\x299\x5\x219\x10D\x2\x299\x29A\x5\x1FF"+ + "\x100\x2\x29A\x29B\x5\x201\x101\x2\x29B.\x3\x2\x2\x2\x29C\x29D\x5\x1F9"+ + "\xFD\x2\x29D\x29E\x5\x227\x114\x2\x29E\x29F\x5\x21D\x10F\x2\x29F\x2A0"+ + "\x5\x1FF\x100\x2\x2A0\x30\x3\x2\x2\x2\x2A1\x2A2\x5\x1FB\xFE\x2\x2A2\x2A3"+ + "\x5\x1F7\xFC\x2\x2A3\x2A4\x5\x20D\x107\x2\x2A4\x2A5\x5\x20D\x107\x2\x2A5"+ + "\x32\x3\x2\x2\x2\x2A6\x2A7\x5\x1FB\xFE\x2\x2A7\x2A8\x5\x1F7\xFC\x2\x2A8"+ + "\x2A9\x5\x21B\x10E\x2\x2A9\x2AA\x5\x1FF\x100\x2\x2AA\x34\x3\x2\x2\x2\x2AB"+ + "\x2AC\x5\x1FB\xFE\x2\x2AC\x2AD\x5\x205\x103\x2\x2AD\x2AE\x5\x1FD\xFF\x2"+ + "\x2AE\x2AF\x5\x207\x104\x2\x2AF\x2B0\x5\x219\x10D\x2\x2B0\x36\x3\x2\x2"+ + "\x2\x2B1\x2B2\x5\x1FB\xFE\x2\x2B2\x2B3\x5\x205\x103\x2\x2B3\x2B4\x5\x1FD"+ + "\xFF\x2\x2B4\x2B5\x5\x219\x10D\x2\x2B5\x2B6\x5\x207\x104\x2\x2B6\x2B7"+ + "\x5\x221\x111\x2\x2B7\x2B8\x5\x1FF\x100\x2\x2B8\x38\x3\x2\x2\x2\x2B9\x2BA"+ + "\x5\x1FB\xFE\x2\x2BA\x2BB\x5\x20D\x107\x2\x2BB\x2BC\x5\x1F7\xFC\x2\x2BC"+ + "\x2BD\x5\x21B\x10E\x2\x2BD\x2BE\x5\x21B\x10E\x2\x2BE:\x3\x2\x2\x2\x2BF"+ + "\x2C0\x5\x1FB\xFE\x2\x2C0\x2C1\x5\x20D\x107\x2\x2C1\x2C2\x5\x213\x10A"+ + "\x2\x2C2\x2C3\x5\x21B\x10E\x2\x2C3\x2C4\x5\x1FF\x100\x2\x2C4<\x3\x2\x2"+ + "\x2\x2C5\x2C6\x5\x1FB\xFE\x2\x2C6\x2C7\x5\x213\x10A\x2\x2C7\x2C8\x5\x20D"+ + "\x107\x2\x2C8\x2C9\x5\x20D\x107\x2\x2C9\x2CA\x5\x1FF\x100\x2\x2CA\x2CB"+ + "\x5\x1FB\xFE\x2\x2CB\x2CC\x5\x21D\x10F\x2\x2CC\x2CD\x5\x207\x104\x2\x2CD"+ + "\x2CE\x5\x213\x10A\x2\x2CE\x2CF\x5\x211\x109\x2\x2CF>\x3\x2\x2\x2\x2D0"+ + "\x2D1\x5\x1FB\xFE\x2\x2D1\x2D2\x5\x213\x10A\x2\x2D2\x2D3\x5\x211\x109"+ + "\x2\x2D3\x2D4\x5\x21B\x10E\x2\x2D4\x2D5\x5\x21D\x10F\x2\x2D5@\x3\x2\x2"+ + "\x2\x2D6\x2D7\x5\x1FD\xFF\x2\x2D7\x2D8\x5\x1F7\xFC\x2\x2D8\x2D9\x5\x21D"+ + "\x10F\x2\x2D9\x2DA\x5\x1F7\xFC\x2\x2DA\x2DB\x5\x1F9\xFD\x2\x2DB\x2DC\x5"+ + "\x1F7\xFC\x2\x2DC\x2DD\x5\x21B\x10E\x2\x2DD\x2DE\x5\x1FF\x100\x2\x2DE"+ + "\x42\x3\x2\x2\x2\x2DF\x2E0\x5\x1FD\xFF\x2\x2E0\x2E1\x5\x1F7\xFC\x2\x2E1"+ + "\x2E2\x5\x21D\x10F\x2\x2E2\x2E3\x5\x1FF\x100\x2\x2E3\x44\x3\x2\x2\x2\x2E4"+ + "\x2E5\x5\x1FD\xFF\x2\x2E5\x2E6\x5\x1FF\x100\x2\x2E6\x2E7\x5\x1FB\xFE\x2"+ + "\x2E7\x2E8\x5\x20D\x107\x2\x2E8\x2E9\x5\x1F7\xFC\x2\x2E9\x2EA\x5\x219"+ + "\x10D\x2\x2EA\x2EB\x5\x1FF\x100\x2\x2EB\x46\x3\x2\x2\x2\x2EC\x2ED\x5\x1FD"+ + "\xFF\x2\x2ED\x2EE\x5\x1FF\x100\x2\x2EE\x2EF\x5\x201\x101\x2\x2EF\x2F0"+ + "\x5\x1F9\xFD\x2\x2F0\x2F1\x5\x213\x10A\x2\x2F1\x2F2\x5\x213\x10A\x2\x2F2"+ + "\x2F3\x5\x20D\x107\x2\x2F3H\x3\x2\x2\x2\x2F4\x2F5\x5\x1FD\xFF\x2\x2F5"+ + "\x2F6\x5\x1FF\x100\x2\x2F6\x2F7\x5\x201\x101\x2\x2F7\x2F8\x5\x1F9\xFD"+ + "\x2\x2F8\x2F9\x5\x227\x114\x2\x2F9\x2FA\x5\x21D\x10F\x2\x2FA\x2FB\x5\x1FF"+ + "\x100\x2\x2FBJ\x3\x2\x2\x2\x2FC\x2FD\x5\x1FD\xFF\x2\x2FD\x2FE\x5\x1FF"+ + "\x100\x2\x2FE\x2FF\x5\x201\x101\x2\x2FF\x300\x5\x1FD\xFF\x2\x300\x301"+ + "\x5\x1F7\xFC\x2\x301\x302\x5\x21D\x10F\x2\x302\x303\x5\x1FF\x100\x2\x303"+ + "L\x3\x2\x2\x2\x304\x305\x5\x1FD\xFF\x2\x305\x306\x5\x1FF\x100\x2\x306"+ + "\x307\x5\x201\x101\x2\x307\x308\x5\x1FD\xFF\x2\x308\x309\x5\x1F9\xFD\x2"+ + "\x309\x30A\x5\x20D\x107\x2\x30AN\x3\x2\x2\x2\x30B\x30C\x5\x1FD\xFF\x2"+ + "\x30C\x30D\x5\x1FF\x100\x2\x30D\x30E\x5\x201\x101\x2\x30E\x30F\x5\x1FD"+ + "\xFF\x2\x30F\x310\x5\x1FF\x100\x2\x310\x311\x5\x1FB\xFE\x2\x311P\x3\x2"+ + "\x2\x2\x312\x313\x5\x1FD\xFF\x2\x313\x314\x5\x1FF\x100\x2\x314\x315\x5"+ + "\x201\x101\x2\x315\x316\x5\x1FB\xFE\x2\x316\x317\x5\x21F\x110\x2\x317"+ + "\x318\x5\x219\x10D\x2\x318R\x3\x2\x2\x2\x319\x31A\x5\x1FD\xFF\x2\x31A"+ + "\x31B\x5\x1FF\x100\x2\x31B\x31C\x5\x201\x101\x2\x31C\x31D\x5\x207\x104"+ + "\x2\x31D\x31E\x5\x211\x109\x2\x31E\x31F\x5\x21D\x10F\x2\x31FT\x3\x2\x2"+ + "\x2\x320\x321\x5\x1FD\xFF\x2\x321\x322\x5\x1FF\x100\x2\x322\x323\x5\x201"+ + "\x101\x2\x323\x324\x5\x20D\x107\x2\x324\x325\x5\x211\x109\x2\x325\x326"+ + "\x5\x203\x102\x2\x326V\x3\x2\x2\x2\x327\x328\x5\x1FD\xFF\x2\x328\x329"+ + "\x5\x1FF\x100\x2\x329\x32A\x5\x201\x101\x2\x32A\x32B\x5\x213\x10A\x2\x32B"+ + "\x32C\x5\x1F9\xFD\x2\x32C\x32D\x5\x209\x105\x2\x32DX\x3\x2\x2\x2\x32E"+ + "\x32F\x5\x1FD\xFF\x2\x32F\x330\x5\x1FF\x100\x2\x330\x331\x5\x201\x101"+ + "\x2\x331\x332\x5\x21B\x10E\x2\x332\x333\x5\x211\x109\x2\x333\x334\x5\x203"+ + "\x102\x2\x334Z\x3\x2\x2\x2\x335\x336\x5\x1FD\xFF\x2\x336\x337\x5\x1FF"+ + "\x100\x2\x337\x338\x5\x201\x101\x2\x338\x339\x5\x21B\x10E\x2\x339\x33A"+ + "\x5\x21D\x10F\x2\x33A\x33B\x5\x219\x10D\x2\x33B\\\x3\x2\x2\x2\x33C\x33D"+ + "\x5\x1FD\xFF\x2\x33D\x33E\x5\x1FF\x100\x2\x33E\x33F\x5\x201\x101\x2\x33F"+ + "\x340\x5\x221\x111\x2\x340\x341\x5\x1F7\xFC\x2\x341\x342\x5\x219\x10D"+ + "\x2\x342^\x3\x2\x2\x2\x343\x344\x5\x1FD\xFF\x2\x344\x345\x5\x1FF\x100"+ + "\x2\x345\x346\x5\x20D\x107\x2\x346\x347\x5\x1FF\x100\x2\x347\x348\x5\x21D"+ + "\x10F\x2\x348\x349\x5\x1FF\x100\x2\x349\x34A\x5\x21B\x10E\x2\x34A\x34B"+ + "\x5\x1FF\x100\x2\x34B\x34C\x5\x21D\x10F\x2\x34C\x34D\x5\x21D\x10F\x2\x34D"+ + "\x34E\x5\x207\x104\x2\x34E\x34F\x5\x211\x109\x2\x34F\x350\x5\x203\x102"+ + "\x2\x350`\x3\x2\x2\x2\x351\x352\x5\x1FD\xFF\x2\x352\x353\x5\x207\x104"+ + "\x2\x353\x354\x5\x20F\x108\x2\x354\x62\x3\x2\x2\x2\x355\x356\x5\x1FD\xFF"+ + "\x2\x356\x357\x5\x213\x10A\x2\x357\x64\x3\x2\x2\x2\x358\x359\x5\x1FD\xFF"+ + "\x2\x359\x35A\x5\x213\x10A\x2\x35A\x35B\x5\x21F\x110\x2\x35B\x35C\x5\x1F9"+ + "\xFD\x2\x35C\x35D\x5\x20D\x107\x2\x35D\x35E\x5\x1FF\x100\x2\x35E\x66\x3"+ + "\x2\x2\x2\x35F\x360\x5\x1FF\x100\x2\x360\x361\x5\x1F7\xFC\x2\x361\x362"+ + "\x5\x1FB\xFE\x2\x362\x363\x5\x205\x103\x2\x363h\x3\x2\x2\x2\x364\x365"+ + "\x5\x1FF\x100\x2\x365\x366\x5\x20D\x107\x2\x366\x367\x5\x21B\x10E\x2\x367"+ + "\x368\x5\x1FF\x100\x2\x368j\x3\x2\x2\x2\x369\x36A\x5\x1FF\x100\x2\x36A"+ + "\x36B\x5\x20D\x107\x2\x36B\x36C\x5\x21B\x10E\x2\x36C\x36D\x5\x1FF\x100"+ + "\x2\x36D\x36E\x5\x207\x104\x2\x36E\x36F\x5\x201\x101\x2\x36Fl\x3\x2\x2"+ + "\x2\x370\x371\x5\x1FF\x100\x2\x371\x372\x5\x211\x109\x2\x372\x373\x5\x1FD"+ + "\xFF\x2\x373\x374\x5\x1ED\xF7\x2\x374\x375\x5\x1FF\x100\x2\x375\x376\x5"+ + "\x211\x109\x2\x376\x377\x5\x21F\x110\x2\x377\x378\x5\x20F\x108\x2\x378"+ + "n\x3\x2\x2\x2\x379\x37A\x5\x1FF\x100\x2\x37A\x37B\x5\x211\x109\x2\x37B"+ + "\x37C\x5\x1FD\xFF\x2\x37C\x37D\x5\x1ED\xF7\x2\x37D\x37E\x5\x201\x101\x2"+ + "\x37E\x37F\x5\x21F\x110\x2\x37F\x380\x5\x211\x109\x2\x380\x381\x5\x1FB"+ + "\xFE\x2\x381\x382\x5\x21D\x10F\x2\x382\x383\x5\x207\x104\x2\x383\x384"+ + "\x5\x213\x10A\x2\x384\x385\x5\x211\x109\x2\x385p\x3\x2\x2\x2\x386\x387"+ + "\x5\x1FF\x100\x2\x387\x388\x5\x211\x109\x2\x388\x389\x5\x1FD\xFF\x2\x389"+ + "\x38A\x5\x1ED\xF7\x2\x38A\x38B\x5\x207\x104\x2\x38B\x38C\x5\x201\x101"+ + "\x2\x38Cr\x3\x2\x2\x2\x38D\x38E\x5\x1FF\x100\x2\x38E\x38F\x5\x211\x109"+ + "\x2\x38F\x390\x5\x1FD\xFF\x2\x390\x391\x5\x1ED\xF7\x2\x391\x392\x5\x215"+ + "\x10B\x2\x392\x393\x5\x219\x10D\x2\x393\x394\x5\x213\x10A\x2\x394\x395"+ + "\x5\x215\x10B\x2\x395\x396\x5\x1FF\x100\x2\x396\x397\x5\x219\x10D\x2\x397"+ + "\x398\x5\x21D\x10F\x2\x398\x399\x5\x227\x114\x2\x399t\x3\x2\x2\x2\x39A"+ + "\x39B\x5\x1FF\x100\x2\x39B\x39C\x5\x211\x109\x2\x39C\x39D\x5\x1FD\xFF"+ + "\x2\x39D\x39E\x5\x1ED\xF7\x2\x39E\x39F\x5\x21B\x10E\x2\x39F\x3A0\x5\x1FF"+ + "\x100\x2\x3A0\x3A1\x5\x20D\x107\x2\x3A1\x3A2\x5\x1FF\x100\x2\x3A2\x3A3"+ + "\x5\x1FB\xFE\x2\x3A3\x3A4\x5\x21D\x10F\x2\x3A4v\x3\x2\x2\x2\x3A5\x3A6"+ + "\x5\x1FF\x100\x2\x3A6\x3A7\x5\x211\x109\x2\x3A7\x3A8\x5\x1FD\xFF\x2\x3A8"+ + "\x3A9\x5\x1ED\xF7\x2\x3A9\x3AA\x5\x21B\x10E\x2\x3AA\x3AB\x5\x21F\x110"+ + "\x2\x3AB\x3AC\x5\x1F9\xFD\x2\x3ACx\x3\x2\x2\x2\x3AD\x3AE\x5\x1FF\x100"+ + "\x2\x3AE\x3AF\x5\x211\x109\x2\x3AF\x3B0\x5\x1FD\xFF\x2\x3B0\x3B1\x5\x1ED"+ + "\xF7\x2\x3B1\x3B2\x5\x21D\x10F\x2\x3B2\x3B3\x5\x227\x114\x2\x3B3\x3B4"+ + "\x5\x215\x10B\x2\x3B4\x3B5\x5\x1FF\x100\x2\x3B5z\x3\x2\x2\x2\x3B6\x3B7"+ + "\x5\x1FF\x100\x2\x3B7\x3B8\x5\x211\x109\x2\x3B8\x3B9\x5\x1FD\xFF\x2\x3B9"+ + "\x3BA\x5\x1ED\xF7\x2\x3BA\x3BB\x5\x223\x112\x2\x3BB\x3BC\x5\x207\x104"+ + "\x2\x3BC\x3BD\x5\x21D\x10F\x2\x3BD\x3BE\x5\x205\x103\x2\x3BE|\x3\x2\x2"+ + "\x2\x3BF\x3C0\x5\x1FF\x100\x2\x3C0\x3C1\x5\x211\x109\x2\x3C1\x3C2\x5\x1FD"+ + "\xFF\x2\x3C2~\x3\x2\x2\x2\x3C3\x3C4\x5\x1FF\x100\x2\x3C4\x3C5\x5\x211"+ + "\x109\x2\x3C5\x3C6\x5\x21F\x110\x2\x3C6\x3C7\x5\x20F\x108\x2\x3C7\x80"+ + "\x3\x2\x2\x2\x3C8\x3C9\x5\x1FF\x100\x2\x3C9\x3CA\x5\x217\x10C\x2\x3CA"+ + "\x3CB\x5\x221\x111\x2\x3CB\x82\x3\x2\x2\x2\x3CC\x3CD\x5\x1FF\x100\x2\x3CD"+ + "\x3CE\x5\x219\x10D\x2\x3CE\x3CF\x5\x1F7\xFC\x2\x3CF\x3D0\x5\x21B\x10E"+ + "\x2\x3D0\x3D1\x5\x1FF\x100\x2\x3D1\x84\x3\x2\x2\x2\x3D2\x3D3\x5\x1FF\x100"+ + "\x2\x3D3\x3D4\x5\x219\x10D\x2\x3D4\x3D5\x5\x219\x10D\x2\x3D5\x3D6\x5\x213"+ + "\x10A\x2\x3D6\x3D7\x5\x219\x10D\x2\x3D7\x86\x3\x2\x2\x2\x3D8\x3D9\x5\x1FF"+ + "\x100\x2\x3D9\x3DA\x5\x221\x111\x2\x3DA\x3DB\x5\x1FF\x100\x2\x3DB\x3DC"+ + "\x5\x211\x109\x2\x3DC\x3DD\x5\x21D\x10F\x2\x3DD\x88\x3\x2\x2\x2\x3DE\x3DF"+ + "\x5\x1FF\x100\x2\x3DF\x3E0\x5\x225\x113\x2\x3E0\x3E1\x5\x207\x104\x2\x3E1"+ + "\x3E2\x5\x21D\x10F\x2\x3E2\x3E3\x5\x1ED\xF7\x2\x3E3\x3E4\x5\x1FD\xFF\x2"+ + "\x3E4\x3E5\x5\x213\x10A\x2\x3E5\x8A\x3\x2\x2\x2\x3E6\x3E7\x5\x1FF\x100"+ + "\x2\x3E7\x3E8\x5\x225\x113\x2\x3E8\x3E9\x5\x207\x104\x2\x3E9\x3EA\x5\x21D"+ + "\x10F\x2\x3EA\x3EB\x5\x1ED\xF7\x2\x3EB\x3EC\x5\x201\x101\x2\x3EC\x3ED"+ + "\x5\x213\x10A\x2\x3ED\x3EE\x5\x219\x10D\x2\x3EE\x8C\x3\x2\x2\x2\x3EF\x3F0"+ + "\x5\x1FF\x100\x2\x3F0\x3F1\x5\x225\x113\x2\x3F1\x3F2\x5\x207\x104\x2\x3F2"+ + "\x3F3\x5\x21D\x10F\x2\x3F3\x3F4\x5\x1ED\xF7\x2\x3F4\x3F5\x5\x201\x101"+ + "\x2\x3F5\x3F6\x5\x21F\x110\x2\x3F6\x3F7\x5\x211\x109\x2\x3F7\x3F8\x5\x1FB"+ + "\xFE\x2\x3F8\x3F9\x5\x21D\x10F\x2\x3F9\x3FA\x5\x207\x104\x2\x3FA\x3FB"+ + "\x5\x213\x10A\x2\x3FB\x3FC\x5\x211\x109\x2\x3FC\x8E\x3\x2\x2\x2\x3FD\x3FE"+ + "\x5\x1FF\x100\x2\x3FE\x3FF\x5\x225\x113\x2\x3FF\x400\x5\x207\x104\x2\x400"+ + "\x401\x5\x21D\x10F\x2\x401\x402\x5\x1ED\xF7\x2\x402\x403\x5\x215\x10B"+ + "\x2\x403\x404\x5\x219\x10D\x2\x404\x405\x5\x213\x10A\x2\x405\x406\x5\x215"+ + "\x10B\x2\x406\x407\x5\x1FF\x100\x2\x407\x408\x5\x219\x10D\x2\x408\x409"+ + "\x5\x21D\x10F\x2\x409\x40A\x5\x227\x114\x2\x40A\x90\x3\x2\x2\x2\x40B\x40C"+ + "\x5\x1FF\x100\x2\x40C\x40D\x5\x225\x113\x2\x40D\x40E\x5\x207\x104\x2\x40E"+ + "\x40F\x5\x21D\x10F\x2\x40F\x410\x5\x1ED\xF7\x2\x410\x411\x5\x21B\x10E"+ + "\x2\x411\x412\x5\x21F\x110\x2\x412\x413\x5\x1F9\xFD\x2\x413\x92\x3\x2"+ + "\x2\x2\x414\x415\x5\x201\x101\x2\x415\x416\x5\x1F7\xFC\x2\x416\x417\x5"+ + "\x20D\x107\x2\x417\x418\x5\x21B\x10E\x2\x418\x419\x5\x1FF\x100\x2\x419"+ + "\x94\x3\x2\x2\x2\x41A\x41B\x5\x201\x101\x2\x41B\x41C\x5\x207\x104\x2\x41C"+ + "\x41D\x5\x20D\x107\x2\x41D\x41E\x5\x1FF\x100\x2\x41E\x41F\x5\x1FB\xFE"+ + "\x2\x41F\x420\x5\x213\x10A\x2\x420\x421\x5\x215\x10B\x2\x421\x422\x5\x227"+ + "\x114\x2\x422\x96\x3\x2\x2\x2\x423\x424\x5\x201\x101\x2\x424\x425\x5\x219"+ + "\x10D\x2\x425\x426\x5\x207\x104\x2\x426\x427\x5\x1FF\x100\x2\x427\x428"+ + "\x5\x211\x109\x2\x428\x429\x5\x1FD\xFF\x2\x429\x98\x3\x2\x2\x2\x42A\x42B"+ + "\x5\x201\x101\x2\x42B\x42C\x5\x213\x10A\x2\x42C\x42D\x5\x219\x10D\x2\x42D"+ + "\x9A\x3\x2\x2\x2\x42E\x42F\x5\x201\x101\x2\x42F\x430\x5\x21F\x110\x2\x430"+ + "\x431\x5\x211\x109\x2\x431\x432\x5\x1FB\xFE\x2\x432\x433\x5\x21D\x10F"+ + "\x2\x433\x434\x5\x207\x104\x2\x434\x435\x5\x213\x10A\x2\x435\x436\x5\x211"+ + "\x109\x2\x436\x9C\x3\x2\x2\x2\x437\x438\x5\x203\x102\x2\x438\x439\x5\x1FF"+ + "\x100\x2\x439\x43A\x5\x21D\x10F\x2\x43A\x9E\x3\x2\x2\x2\x43B\x43C\x5\x203"+ + "\x102\x2\x43C\x43D\x5\x20D\x107\x2\x43D\x43E\x5\x213\x10A\x2\x43E\x43F"+ + "\x5\x1F9\xFD\x2\x43F\x440\x5\x1F7\xFC\x2\x440\x441\x5\x20D\x107\x2\x441"+ + "\xA0\x3\x2\x2\x2\x442\x443\x5\x203\x102\x2\x443\x444\x5\x213\x10A\x2\x444"+ + "\x445\x5\x21B\x10E\x2\x445\x446\x5\x21F\x110\x2\x446\x447\x5\x1F9\xFD"+ + "\x2\x447\xA2\x3\x2\x2\x2\x448\x449\x5\x203\x102\x2\x449\x44A\x5\x213\x10A"+ + "\x2\x44A\x44B\x5\x21D\x10F\x2\x44B\x44C\x5\x213\x10A\x2\x44C\xA4\x3\x2"+ + "\x2\x2\x44D\x44E\x5\x207\x104\x2\x44E\x44F\x5\x201\x101\x2\x44F\xA6\x3"+ + "\x2\x2\x2\x450\x451\x5\x207\x104\x2\x451\x452\x5\x20F\x108\x2\x452\x453"+ + "\x5\x215\x10B\x2\x453\xA8\x3\x2\x2\x2\x454\x455\x5\x207\x104\x2\x455\x456"+ + "\x5\x20F\x108\x2\x456\x457\x5\x215\x10B\x2\x457\x458\x5\x20D\x107\x2\x458"+ + "\x459\x5\x1FF\x100\x2\x459\x45A\x5\x20F\x108\x2\x45A\x45B\x5\x1FF\x100"+ + "\x2\x45B\x45C\x5\x211\x109\x2\x45C\x45D\x5\x21D\x10F\x2\x45D\x45E\x5\x21B"+ + "\x10E\x2\x45E\xAA\x3\x2\x2\x2\x45F\x460\x5\x207\x104\x2\x460\x461\x5\x211"+ + "\x109\x2\x461\xAC\x3\x2\x2\x2\x462\x463\x5\x207\x104\x2\x463\x464\x5\x211"+ + "\x109\x2\x464\x465\x5\x215\x10B\x2\x465\x466\x5\x21F\x110\x2\x466\x467"+ + "\x5\x21D\x10F\x2\x467\xAE\x3\x2\x2\x2\x468\x469\x5\x207\x104\x2\x469\x46A"+ + "\x5\x21B\x10E\x2\x46A\xB0\x3\x2\x2\x2\x46B\x46C\x5\x207\x104\x2\x46C\x46D"+ + "\x5\x211\x109\x2\x46D\x46E\x5\x21D\x10F\x2\x46E\x46F\x5\x1FF\x100\x2\x46F"+ + "\x470\x5\x203\x102\x2\x470\x471\x5\x1FF\x100\x2\x471\x472\x5\x219\x10D"+ + "\x2\x472\xB2\x3\x2\x2\x2\x473\x474\x5\x20B\x106\x2\x474\x475\x5\x207\x104"+ + "\x2\x475\x476\x5\x20D\x107\x2\x476\x477\x5\x20D\x107\x2\x477\xB4\x3\x2"+ + "\x2\x2\x478\x479\x5\x20D\x107\x2\x479\x47A\x5\x213\x10A\x2\x47A\x47B\x5"+ + "\x1F7\xFC\x2\x47B\x47C\x5\x1FD\xFF\x2\x47C\xB6\x3\x2\x2\x2\x47D\x47E\x5"+ + "\x20D\x107\x2\x47E\x47F\x5\x213\x10A\x2\x47F\x480\x5\x1FB\xFE\x2\x480"+ + "\x481\x5\x20B\x106\x2\x481\xB8\x3\x2\x2\x2\x482\x483\x5\x20D\x107\x2\x483"+ + "\x484\x5\x213\x10A\x2\x484\x485\x5\x211\x109\x2\x485\x486\x5\x203\x102"+ + "\x2\x486\xBA\x3\x2\x2\x2\x487\x488\x5\x20D\x107\x2\x488\x489\x5\x213\x10A"+ + "\x2\x489\x48A\x5\x213\x10A\x2\x48A\x48B\x5\x215\x10B\x2\x48B\xBC\x3\x2"+ + "\x2\x2\x48C\x48D\x5\x20D\x107\x2\x48D\x48E\x5\x1FF\x100\x2\x48E\x48F\x5"+ + "\x211\x109\x2\x48F\xBE\x3\x2\x2\x2\x490\x491\x5\x20D\x107\x2\x491\x492"+ + "\x5\x1FF\x100\x2\x492\x493\x5\x21D\x10F\x2\x493\xC0\x3\x2\x2\x2\x494\x495"+ + "\x5\x20D\x107\x2\x495\x496\x5\x207\x104\x2\x496\x497\x5\x1F9\xFD\x2\x497"+ + "\xC2\x3\x2\x2\x2\x498\x499\x5\x20D\x107\x2\x499\x49A\x5\x207\x104\x2\x49A"+ + "\x49B\x5\x20B\x106\x2\x49B\x49C\x5\x1FF\x100\x2\x49C\xC4\x3\x2\x2\x2\x49D"+ + "\x49E\x5\x20D\x107\x2\x49E\x49F\x5\x207\x104\x2\x49F\x4A0\x5\x211\x109"+ + "\x2\x4A0\x4A1\x5\x1FF\x100\x2\x4A1\x4A2\x5\x1ED\xF7\x2\x4A2\x4A3\x5\x207"+ + "\x104\x2\x4A3\x4A4\x5\x211\x109\x2\x4A4\x4A5\x5\x215\x10B\x2\x4A5\x4A6"+ + "\x5\x21F\x110\x2\x4A6\x4A7\x5\x21D\x10F\x2\x4A7\xC6\x3\x2\x2\x2\x4A8\x4A9"+ + "\x5\x20D\x107\x2\x4A9\x4AA\x5\x213\x10A\x2\x4AA\x4AB\x5\x1FB\xFE\x2\x4AB"+ + "\x4AC\x5\x20B\x106\x2\x4AC\x4AD\x5\x1ED\xF7\x2\x4AD\x4AE\x5\x219\x10D"+ + "\x2\x4AE\x4AF\x5\x1FF\x100\x2\x4AF\x4B0\x5\x1F7\xFC\x2\x4B0\x4B1\x5\x1FD"+ + "\xFF\x2\x4B1\xC8\x3\x2\x2\x2\x4B2\x4B3\x5\x20D\x107\x2\x4B3\x4B4\x5\x213"+ + "\x10A\x2\x4B4\x4B5\x5\x1FB\xFE\x2\x4B5\x4B6\x5\x20B\x106\x2\x4B6\x4B7"+ + "\x5\x1ED\xF7\x2\x4B7\x4B8\x5\x223\x112\x2\x4B8\x4B9\x5\x219\x10D\x2\x4B9"+ + "\x4BA\x5\x207\x104\x2\x4BA\x4BB\x5\x21D\x10F\x2\x4BB\x4BC\x5\x1FF\x100"+ + "\x2\x4BC\xCA\x3\x2\x2\x2\x4BD\x4BE\x5\x20D\x107\x2\x4BE\x4BF\x5\x213\x10A"+ + "\x2\x4BF\x4C0\x5\x1FB\xFE\x2\x4C0\x4C1\x5\x20B\x106\x2\x4C1\x4C2\x5\x1ED"+ + "\xF7\x2\x4C2\x4C3\x5\x219\x10D\x2\x4C3\x4C4\x5\x1FF\x100\x2\x4C4\x4C5"+ + "\x5\x1F7\xFC\x2\x4C5\x4C6\x5\x1FD\xFF\x2\x4C6\x4C7\x5\x1ED\xF7\x2\x4C7"+ + "\x4C8\x5\x223\x112\x2\x4C8\x4C9\x5\x219\x10D\x2\x4C9\x4CA\x5\x207\x104"+ + "\x2\x4CA\x4CB\x5\x21D\x10F\x2\x4CB\x4CC\x5\x1FF\x100\x2\x4CC\xCC\x3\x2"+ + "\x2\x2\x4CD\x4CE\x5\x20D\x107\x2\x4CE\x4CF\x5\x21B\x10E\x2\x4CF\x4D0\x5"+ + "\x1FF\x100\x2\x4D0\x4D1\x5\x21D\x10F\x2\x4D1\xCE\x3\x2\x2\x2\x4D2\x4D3"+ + "\x5\x20F\x108\x2\x4D3\x4D4\x5\x1FF\x100\x2\x4D4\xD0\x3\x2\x2\x2\x4D5\x4D6"+ + "\x5\x20F\x108\x2\x4D6\x4D7\x5\x207\x104\x2\x4D7\x4D8\x5\x1FD\xFF\x2\x4D8"+ + "\xD2\x3\x2\x2\x2\x4D9\x4DA\x5\x20F\x108\x2\x4DA\x4DB\x5\x20B\x106\x2\x4DB"+ + "\x4DC\x5\x1FD\xFF\x2\x4DC\x4DD\x5\x207\x104\x2\x4DD\x4DE\x5\x219\x10D"+ + "\x2\x4DE\xD4\x3\x2\x2\x2\x4DF\x4E0\x5\x20F\x108\x2\x4E0\x4E1\x5\x213\x10A"+ + "\x2\x4E1\x4E2\x5\x1FD\xFF\x2\x4E2\xD6\x3\x2\x2\x2\x4E3\x4E4\x5\x211\x109"+ + "\x2\x4E4\x4E5\x5\x1F7\xFC\x2\x4E5\x4E6\x5\x20F\x108\x2\x4E6\x4E7\x5\x1FF"+ + "\x100\x2\x4E7\xD8\x3\x2\x2\x2\x4E8\x4E9\x5\x211\x109\x2\x4E9\x4EA\x5\x1FF"+ + "\x100\x2\x4EA\x4EB\x5\x225\x113\x2\x4EB\x4EC\x5\x21D\x10F\x2\x4EC\xDA"+ + "\x3\x2\x2\x2\x4ED\x4EE\x5\x211\x109\x2\x4EE\x4EF\x5\x1FF\x100\x2\x4EF"+ + "\x4F0\x5\x223\x112\x2\x4F0\xDC\x3\x2\x2\x2\x4F1\x4F2\x5\x211\x109\x2\x4F2"+ + "\x4F3\x5\x213\x10A\x2\x4F3\x4F4\x5\x21D\x10F\x2\x4F4\xDE\x3\x2\x2\x2\x4F5"+ + "\x4F6\x5\x211\x109\x2\x4F6\x4F7\x5\x213\x10A\x2\x4F7\x4F8\x5\x21D\x10F"+ + "\x2\x4F8\x4F9\x5\x205\x103\x2\x4F9\x4FA\x5\x207\x104\x2\x4FA\x4FB\x5\x211"+ + "\x109\x2\x4FB\x4FC\x5\x203\x102\x2\x4FC\xE0\x3\x2\x2\x2\x4FD\x4FE\x5\x211"+ + "\x109\x2\x4FE\x4FF\x5\x21F\x110\x2\x4FF\x500\x5\x20D\x107\x2\x500\x501"+ + "\x5\x20D\x107\x2\x501\xE2\x3\x2\x2\x2\x502\x503\x5\x213\x10A\x2\x503\x504"+ + "\x5\x211\x109\x2\x504\xE4\x3\x2\x2\x2\x505\x506\x5\x213\x10A\x2\x506\x507"+ + "\x5\x211\x109\x2\x507\x508\x5\x1ED\xF7\x2\x508\x509\x5\x1FF\x100\x2\x509"+ + "\x50A\x5\x219\x10D\x2\x50A\x50B\x5\x219\x10D\x2\x50B\x50C\x5\x213\x10A"+ + "\x2\x50C\x50D\x5\x219\x10D\x2\x50D\xE6\x3\x2\x2\x2\x50E\x50F\x5\x213\x10A"+ + "\x2\x50F\x510\x5\x211\x109\x2\x510\x511\x5\x1ED\xF7\x2\x511\x512\x5\x20D"+ + "\x107\x2\x512\x513\x5\x213\x10A\x2\x513\x514\x5\x1FB\xFE\x2\x514\x515"+ + "\x5\x1F7\xFC\x2\x515\x516\x5\x20D\x107\x2\x516\x517\x5\x1ED\xF7\x2\x517"+ + "\x518\x5\x1FF\x100\x2\x518\x519\x5\x219\x10D\x2\x519\x51A\x5\x219\x10D"+ + "\x2\x51A\x51B\x5\x213\x10A\x2\x51B\x51C\x5\x219\x10D\x2\x51C\xE8\x3\x2"+ + "\x2\x2\x51D\x51E\x5\x213\x10A\x2\x51E\x51F\x5\x215\x10B\x2\x51F\x520\x5"+ + "\x1FF\x100\x2\x520\x521\x5\x211\x109\x2\x521\xEA\x3\x2\x2\x2\x522\x523"+ + "\x5\x213\x10A\x2\x523\x524\x5\x215\x10B\x2\x524\x525\x5\x21D\x10F\x2\x525"+ + "\x526\x5\x207\x104\x2\x526\x527\x5\x213\x10A\x2\x527\x528\x5\x211\x109"+ + "\x2\x528\x529\x5\x1F7\xFC\x2\x529\x52A\x5\x20D\x107\x2\x52A\xEC\x3\x2"+ + "\x2\x2\x52B\x52C\x5\x213\x10A\x2\x52C\x52D\x5\x215\x10B\x2\x52D\x52E\x5"+ + "\x21D\x10F\x2\x52E\x52F\x5\x207\x104\x2\x52F\x530\x5\x213\x10A\x2\x530"+ + "\x531\x5\x211\x109\x2\x531\x532\x5\x1ED\xF7\x2\x532\x533\x5\x1F9\xFD\x2"+ + "\x533\x534\x5\x1F7\xFC\x2\x534\x535\x5\x21B\x10E\x2\x535\x536\x5\x1FF"+ + "\x100\x2\x536\xEE\x3\x2\x2\x2\x537\x538\x5\x213\x10A\x2\x538\x539\x5\x215"+ + "\x10B\x2\x539\x53A\x5\x21D\x10F\x2\x53A\x53B\x5\x207\x104\x2\x53B\x53C"+ + "\x5\x213\x10A\x2\x53C\x53D\x5\x211\x109\x2\x53D\x53E\x5\x1ED\xF7\x2\x53E"+ + "\x53F\x5\x1FF\x100\x2\x53F\x540\x5\x225\x113\x2\x540\x541\x5\x215\x10B"+ + "\x2\x541\x542\x5\x20D\x107\x2\x542\x543\x5\x207\x104\x2\x543\x544\x5\x1FB"+ + "\xFE\x2\x544\x545\x5\x207\x104\x2\x545\x546\x5\x21D\x10F\x2\x546\xF0\x3"+ + "\x2\x2\x2\x547\x548\x5\x213\x10A\x2\x548\x549\x5\x215\x10B\x2\x549\x54A"+ + "\x5\x21D\x10F\x2\x54A\x54B\x5\x207\x104\x2\x54B\x54C\x5\x213\x10A\x2\x54C"+ + "\x54D\x5\x211\x109\x2\x54D\x54E\x5\x1ED\xF7\x2\x54E\x54F\x5\x1FB\xFE\x2"+ + "\x54F\x550\x5\x213\x10A\x2\x550\x551\x5\x20F\x108\x2\x551\x552\x5\x215"+ + "\x10B\x2\x552\x553\x5\x1F7\xFC\x2\x553\x554\x5\x219\x10D\x2\x554\x555"+ + "\x5\x1FF\x100\x2\x555\xF2\x3\x2\x2\x2\x556\x557\x5\x213\x10A\x2\x557\x558"+ + "\x5\x215\x10B\x2\x558\x559\x5\x21D\x10F\x2\x559\x55A\x5\x207\x104\x2\x55A"+ + "\x55B\x5\x213\x10A\x2\x55B\x55C\x5\x211\x109\x2\x55C\x55D\x5\x1ED\xF7"+ + "\x2\x55D\x55E\x5\x215\x10B\x2\x55E\x55F\x5\x219\x10D\x2\x55F\x560\x5\x207"+ + "\x104\x2\x560\x561\x5\x221\x111\x2\x561\x562\x5\x1F7\xFC\x2\x562\x563"+ + "\x5\x21D\x10F\x2\x563\x564\x5\x1FF\x100\x2\x564\x565\x5\x1ED\xF7\x2\x565"+ + "\x566\x5\x20F\x108\x2\x566\x567\x5\x213\x10A\x2\x567\x568\x5\x1FD\xFF"+ + "\x2\x568\x569\x5\x21F\x110\x2\x569\x56A\x5\x20D\x107\x2\x56A\x56B\x5\x1FF"+ + "\x100\x2\x56B\xF4\x3\x2\x2\x2\x56C\x56D\x5\x213\x10A\x2\x56D\x56E\x5\x219"+ + "\x10D\x2\x56E\xF6\x3\x2\x2\x2\x56F\x570\x5\x213\x10A\x2\x570\x571\x5\x21F"+ + "\x110\x2\x571\x572\x5\x21D\x10F\x2\x572\x573\x5\x215\x10B\x2\x573\x574"+ + "\x5\x21F\x110\x2\x574\x575\x5\x21D\x10F\x2\x575\xF8\x3\x2\x2\x2\x576\x577"+ + "\x5\x215\x10B\x2\x577\x578\x5\x1F7\xFC\x2\x578\x579\x5\x219\x10D\x2\x579"+ + "\x57A\x5\x1F7\xFC\x2\x57A\x57B\x5\x20F\x108\x2\x57B\x57C\x5\x1F7\xFC\x2"+ + "\x57C\x57D\x5\x219\x10D\x2\x57D\x57E\x5\x219\x10D\x2\x57E\x57F\x5\x1F7"+ + "\xFC\x2\x57F\x580\x5\x227\x114\x2\x580\xFA\x3\x2\x2\x2\x581\x582\x5\x215"+ + "\x10B\x2\x582\x583\x5\x219\x10D\x2\x583\x584\x5\x1FF\x100\x2\x584\x585"+ + "\x5\x21B\x10E\x2\x585\x586\x5\x1FF\x100\x2\x586\x587\x5\x219\x10D\x2\x587"+ + "\x588\x5\x221\x111\x2\x588\x589\x5\x1FF\x100\x2\x589\xFC\x3\x2\x2\x2\x58A"+ + "\x58B\x5\x215\x10B\x2\x58B\x58C\x5\x219\x10D\x2\x58C\x58D\x5\x207\x104"+ + "\x2\x58D\x58E\x5\x211\x109\x2\x58E\x58F\x5\x21D\x10F\x2\x58F\xFE\x3\x2"+ + "\x2\x2\x590\x591\x5\x215\x10B\x2\x591\x592\x5\x219\x10D\x2\x592\x593\x5"+ + "\x207\x104\x2\x593\x594\x5\x221\x111\x2\x594\x595\x5\x1F7\xFC\x2\x595"+ + "\x596\x5\x21D\x10F\x2\x596\x597\x5\x1FF\x100\x2\x597\x100\x3\x2\x2\x2"+ + "\x598\x599\x5\x215\x10B\x2\x599\x59A\x5\x219\x10D\x2\x59A\x59B\x5\x213"+ + "\x10A\x2\x59B\x59C\x5\x215\x10B\x2\x59C\x59D\x5\x1FF\x100\x2\x59D\x59E"+ + "\x5\x219\x10D\x2\x59E\x59F\x5\x21D\x10F\x2\x59F\x5A0\x5\x227\x114\x2\x5A0"+ + "\x5A1\x5\x1ED\xF7\x2\x5A1\x5A2\x5\x203\x102\x2\x5A2\x5A3\x5\x1FF\x100"+ + "\x2\x5A3\x5A4\x5\x21D\x10F\x2\x5A4\x102\x3\x2\x2\x2\x5A5\x5A6\x5\x215"+ + "\x10B\x2\x5A6\x5A7\x5\x219\x10D\x2\x5A7\x5A8\x5\x213\x10A\x2\x5A8\x5A9"+ + "\x5\x215\x10B\x2\x5A9\x5AA\x5\x1FF\x100\x2\x5AA\x5AB\x5\x219\x10D\x2\x5AB"+ + "\x5AC\x5\x21D\x10F\x2\x5AC\x5AD\x5\x227\x114\x2\x5AD\x5AE\x5\x1ED\xF7"+ + "\x2\x5AE\x5AF\x5\x20D\x107\x2\x5AF\x5B0\x5\x1FF\x100\x2\x5B0\x5B1\x5\x21D"+ + "\x10F\x2\x5B1\x104\x3\x2\x2\x2\x5B2\x5B3\x5\x215\x10B\x2\x5B3\x5B4\x5"+ + "\x219\x10D\x2\x5B4\x5B5\x5\x213\x10A\x2\x5B5\x5B6\x5\x215\x10B\x2\x5B6"+ + "\x5B7\x5\x1FF\x100\x2\x5B7\x5B8\x5\x219\x10D\x2\x5B8\x5B9\x5\x21D\x10F"+ + "\x2\x5B9\x5BA\x5\x227\x114\x2\x5BA\x5BB\x5\x1ED\xF7\x2\x5BB\x5BC\x5\x21B"+ + "\x10E\x2\x5BC\x5BD\x5\x1FF\x100\x2\x5BD\x5BE\x5\x21D\x10F\x2\x5BE\x106"+ + "\x3\x2\x2\x2\x5BF\x5C0\x5\x215\x10B\x2\x5C0\x5C1\x5\x21D\x10F\x2\x5C1"+ + "\x5C2\x5\x219\x10D\x2\x5C2\x5C3\x5\x21B\x10E\x2\x5C3\x5C4\x5\x1F7\xFC"+ + "\x2\x5C4\x5C5\x5\x201\x101\x2\x5C5\x5C6\x5\x1FF\x100\x2\x5C6\x108\x3\x2"+ + "\x2\x2\x5C7\x5C8\x5\x215\x10B\x2\x5C8\x5C9\x5\x21F\x110\x2\x5C9\x5CA\x5"+ + "\x1F9\xFD\x2\x5CA\x5CB\x5\x20D\x107\x2\x5CB\x5CC\x5\x207\x104\x2\x5CC"+ + "\x5CD\x5\x1FB\xFE\x2\x5CD\x10A\x3\x2\x2\x2\x5CE\x5CF\x5\x215\x10B\x2\x5CF"+ + "\x5D0\x5\x21F\x110\x2\x5D0\x5D1\x5\x21D\x10F\x2\x5D1\x10C\x3\x2\x2\x2"+ + "\x5D2\x5D3\x5\x219\x10D\x2\x5D3\x5D4\x5\x1F7\xFC\x2\x5D4\x5D5\x5\x211"+ + "\x109\x2\x5D5\x5D6\x5\x1FD\xFF\x2\x5D6\x5D7\x5\x213\x10A\x2\x5D7\x5D8"+ + "\x5\x20F\x108\x2\x5D8\x10E\x3\x2\x2\x2\x5D9\x5DA\x5\x219\x10D\x2\x5DA"+ + "\x5DB\x5\x1F7\xFC\x2\x5DB\x5DC\x5\x211\x109\x2\x5DC\x5DD\x5\x1FD\xFF\x2"+ + "\x5DD\x5DE\x5\x213\x10A\x2\x5DE\x5DF\x5\x20F\x108\x2\x5DF\x5E0\x5\x207"+ + "\x104\x2\x5E0\x5E1\x5\x229\x115\x2\x5E1\x5E2\x5\x1FF\x100\x2\x5E2\x110"+ + "\x3\x2\x2\x2\x5E3\x5E4\x5\x219\x10D\x2\x5E4\x5E5\x5\x1F7\xFC\x2\x5E5\x5E6"+ + "\x5\x207\x104\x2\x5E6\x5E7\x5\x21B\x10E\x2\x5E7\x5E8\x5\x1FF\x100\x2\x5E8"+ + "\x5E9\x5\x1FF\x100\x2\x5E9\x5EA\x5\x221\x111\x2\x5EA\x5EB\x5\x1FF\x100"+ + "\x2\x5EB\x5EC\x5\x211\x109\x2\x5EC\x5ED\x5\x21D\x10F\x2\x5ED\x112\x3\x2"+ + "\x2\x2\x5EE\x5EF\x5\x219\x10D\x2\x5EF\x5F0\x5\x1FF\x100\x2\x5F0\x5F1\x5"+ + "\x1F7\xFC\x2\x5F1\x5F2\x5\x1FD\xFF\x2\x5F2\x114\x3\x2\x2\x2\x5F3\x5F4"+ + "\x5\x219\x10D\x2\x5F4\x5F5\x5\x1FF\x100\x2\x5F5\x5F6\x5\x1F7\xFC\x2\x5F6"+ + "\x5F7\x5\x1FD\xFF\x2\x5F7\x5F8\x5\x1ED\xF7\x2\x5F8\x5F9\x5\x223\x112\x2"+ + "\x5F9\x5FA\x5\x219\x10D\x2\x5FA\x5FB\x5\x207\x104\x2\x5FB\x5FC\x5\x21D"+ + "\x10F\x2\x5FC\x5FD\x5\x1FF\x100\x2\x5FD\x116\x3\x2\x2\x2\x5FE\x5FF\x5"+ + "\x219\x10D\x2\x5FF\x600\x5\x1FF\x100\x2\x600\x601\x5\x1FD\xFF\x2\x601"+ + "\x602\x5\x207\x104\x2\x602\x603\x5\x20F\x108\x2\x603\x118\x3\x2\x2\x2"+ + "\x604\x605\x5\x219\x10D\x2\x605\x606\x5\x1FF\x100\x2\x606\x607\x5\x20F"+ + "\x108\x2\x607\x11A\x3\x2\x2\x2\x608\x609\x5\x219\x10D\x2\x609\x60A\x5"+ + "\x1FF\x100\x2\x60A\x60B\x5\x21B\x10E\x2\x60B\x60C\x5\x1FF\x100\x2\x60C"+ + "\x60D\x5\x21D\x10F\x2\x60D\x11C\x3\x2\x2\x2\x60E\x60F\x5\x219\x10D\x2"+ + "\x60F\x610\x5\x1FF\x100\x2\x610\x611\x5\x21B\x10E\x2\x611\x612\x5\x21F"+ + "\x110\x2\x612\x613\x5\x20F\x108\x2\x613\x614\x5\x1FF\x100\x2\x614\x11E"+ + "\x3\x2\x2\x2\x615\x616\x5\x219\x10D\x2\x616\x617\x5\x1FF\x100\x2\x617"+ + "\x618\x5\x21D\x10F\x2\x618\x619\x5\x21F\x110\x2\x619\x61A\x5\x219\x10D"+ + "\x2\x61A\x61B\x5\x211\x109\x2\x61B\x120\x3\x2\x2\x2\x61C\x61D\x5\x219"+ + "\x10D\x2\x61D\x61E\x5\x20F\x108\x2\x61E\x61F\x5\x1FD\xFF\x2\x61F\x620"+ + "\x5\x207\x104\x2\x620\x621\x5\x219\x10D\x2\x621\x122\x3\x2\x2\x2\x622"+ + "\x623\x5\x219\x10D\x2\x623\x624\x5\x21B\x10E\x2\x624\x625\x5\x1FF\x100"+ + "\x2\x625\x626\x5\x21D\x10F\x2\x626\x124\x3\x2\x2\x2\x627\x628\x5\x21B"+ + "\x10E\x2\x628\x629\x5\x1F7\xFC\x2\x629\x62A\x5\x221\x111\x2\x62A\x62B"+ + "\x5\x1FF\x100\x2\x62B\x62C\x5\x215\x10B\x2\x62C\x62D\x5\x207\x104\x2\x62D"+ + "\x62E\x5\x1FB\xFE\x2\x62E\x62F\x5\x21D\x10F\x2\x62F\x630\x5\x21F\x110"+ + "\x2\x630\x631\x5\x219\x10D\x2\x631\x632\x5\x1FF\x100\x2\x632\x126\x3\x2"+ + "\x2\x2\x633\x634\x5\x21B\x10E\x2\x634\x635\x5\x1F7\xFC\x2\x635\x636\x5"+ + "\x221\x111\x2\x636\x637\x5\x1FF\x100\x2\x637\x638\x5\x21B\x10E\x2\x638"+ + "\x639\x5\x1FF\x100\x2\x639\x63A\x5\x21D\x10F\x2\x63A\x63B\x5\x21D\x10F"+ + "\x2\x63B\x63C\x5\x207\x104\x2\x63C\x63D\x5\x211\x109\x2\x63D\x63E\x5\x203"+ + "\x102\x2\x63E\x128\x3\x2\x2\x2\x63F\x640\x5\x21B\x10E\x2\x640\x641\x5"+ + "\x1FF\x100\x2\x641\x642\x5\x1FF\x100\x2\x642\x643\x5\x20B\x106\x2\x643"+ + "\x12A\x3\x2\x2\x2\x644\x645\x5\x21B\x10E\x2\x645\x646\x5\x1FF\x100\x2"+ + "\x646\x647\x5\x20D\x107\x2\x647\x648\x5\x1FF\x100\x2\x648\x649\x5\x1FB"+ + "\xFE\x2\x649\x64A\x5\x21D\x10F\x2\x64A\x12C\x3\x2\x2\x2\x64B\x64C\x5\x21B"+ + "\x10E\x2\x64C\x64D\x5\x1FF\x100\x2\x64D\x64E\x5\x211\x109\x2\x64E\x64F"+ + "\x5\x1FD\xFF\x2\x64F\x650\x5\x20B\x106\x2\x650\x651\x5\x1FF\x100\x2\x651"+ + "\x652\x5\x227\x114\x2\x652\x653\x5\x21B\x10E\x2\x653\x12E\x3\x2\x2\x2"+ + "\x654\x655\x5\x21B\x10E\x2\x655\x656\x5\x1FF\x100\x2\x656\x657\x5\x21D"+ + "\x10F\x2\x657\x130\x3\x2\x2\x2\x658\x659\x5\x21B\x10E\x2\x659\x65A\x5"+ + "\x1FF\x100\x2\x65A\x65B\x5\x21D\x10F\x2\x65B\x65C\x5\x1F7\xFC\x2\x65C"+ + "\x65D\x5\x21D\x10F\x2\x65D\x65E\x5\x21D\x10F\x2\x65E\x65F\x5\x219\x10D"+ + "\x2\x65F\x132\x3\x2\x2\x2\x660\x661\x5\x21B\x10E\x2\x661\x662\x5\x205"+ + "\x103\x2\x662\x663\x5\x1F7\xFC\x2\x663\x664\x5\x219\x10D\x2\x664\x665"+ + "\x5\x1FF\x100\x2\x665\x666\x5\x1FD\xFF\x2\x666\x134\x3\x2\x2\x2\x667\x668"+ + "\x5\x21B\x10E\x2\x668\x669\x5\x207\x104\x2\x669\x66A\x5\x211\x109\x2\x66A"+ + "\x66B\x5\x203\x102\x2\x66B\x66C\x5\x20D\x107\x2\x66C\x66D\x5\x1FF\x100"+ + "\x2\x66D\x136\x3\x2\x2\x2\x66E\x66F\x5\x21B\x10E\x2\x66F\x670\x5\x215"+ + "\x10B\x2\x670\x671\x5\x1FB\xFE\x2\x671\x138\x3\x2\x2\x2\x672\x673\x5\x21B"+ + "\x10E\x2\x673\x674\x5\x21D\x10F\x2\x674\x675\x5\x1F7\xFC\x2\x675\x676"+ + "\x5\x21D\x10F\x2\x676\x677\x5\x207\x104\x2\x677\x678\x5\x1FB\xFE\x2\x678"+ + "\x13A\x3\x2\x2\x2\x679\x67A\x5\x21B\x10E\x2\x67A\x67B\x5\x21D\x10F\x2"+ + "\x67B\x67C\x5\x1FF\x100\x2\x67C\x67D\x5\x215\x10B\x2\x67D\x13C\x3\x2\x2"+ + "\x2\x67E\x67F\x5\x21B\x10E\x2\x67F\x680\x5\x21D\x10F\x2\x680\x681\x5\x213"+ + "\x10A\x2\x681\x682\x5\x215\x10B\x2\x682\x13E\x3\x2\x2\x2\x683\x684\x5"+ + "\x21B\x10E\x2\x684\x685\x5\x21D\x10F\x2\x685\x686\x5\x219\x10D\x2\x686"+ + "\x687\x5\x207\x104\x2\x687\x688\x5\x211\x109\x2\x688\x689\x5\x203\x102"+ + "\x2\x689\x140\x3\x2\x2\x2\x68A\x68B\x5\x21B\x10E\x2\x68B\x68C\x5\x21F"+ + "\x110\x2\x68C\x68D\x5\x1F9\xFD\x2\x68D\x142\x3\x2\x2\x2\x68E\x68F\x5\x21D"+ + "\x10F\x2\x68F\x690\x5\x1F7\xFC\x2\x690\x691\x5\x1F9\xFD\x2\x691\x144\x3"+ + "\x2\x2\x2\x692\x693\x5\x21D\x10F\x2\x693\x694\x5\x1FF\x100\x2\x694\x695"+ + "\x5\x225\x113\x2\x695\x696\x5\x21D\x10F\x2\x696\x146\x3\x2\x2\x2\x697"+ + "\x698\x5\x21D\x10F\x2\x698\x699\x5\x205\x103\x2\x699\x69A\x5\x1FF\x100"+ + "\x2\x69A\x69B\x5\x211\x109\x2\x69B\x148\x3\x2\x2\x2\x69C\x69D\x5\x21D"+ + "\x10F\x2\x69D\x69E\x5\x207\x104\x2\x69E\x69F\x5\x20F\x108\x2\x69F\x6A0"+ + "\x5\x1FF\x100\x2\x6A0\x14A\x3\x2\x2\x2\x6A1\x6A2\x5\x21D\x10F\x2\x6A2"+ + "\x6A3\x5\x213\x10A\x2\x6A3\x14C\x3\x2\x2\x2\x6A4\x6A5\x5\x21D\x10F\x2"+ + "\x6A5\x6A6\x5\x219\x10D\x2\x6A6\x6A7\x5\x21F\x110\x2\x6A7\x6A8\x5\x1FF"+ + "\x100\x2\x6A8\x14E\x3\x2\x2\x2\x6A9\x6AA\x5\x21D\x10F\x2\x6AA\x6AB\x5"+ + "\x227\x114\x2\x6AB\x6AC\x5\x215\x10B\x2\x6AC\x6AD\x5\x1FF\x100\x2\x6AD"+ + "\x150\x3\x2\x2\x2\x6AE\x6AF\x5\x21D\x10F\x2\x6AF\x6B0\x5\x227\x114\x2"+ + "\x6B0\x6B1\x5\x215\x10B\x2\x6B1\x6B2\x5\x1FF\x100\x2\x6B2\x6B3\x5\x213"+ + "\x10A\x2\x6B3\x6B4\x5\x201\x101\x2\x6B4\x152\x3\x2\x2\x2\x6B5\x6B6\x5"+ + "\x21F\x110\x2\x6B6\x6B7\x5\x211\x109\x2\x6B7\x6B8\x5\x20D\x107\x2\x6B8"+ + "\x6B9\x5\x213\x10A\x2\x6B9\x6BA\x5\x1F7\xFC\x2\x6BA\x6BB\x5\x1FD\xFF\x2"+ + "\x6BB\x154\x3\x2\x2\x2\x6BC\x6BD\x5\x21F\x110\x2\x6BD\x6BE\x5\x211\x109"+ + "\x2\x6BE\x6BF\x5\x20D\x107\x2\x6BF\x6C0\x5\x213\x10A\x2\x6C0\x6C1\x5\x1FB"+ + "\xFE\x2\x6C1\x6C2\x5\x20B\x106\x2\x6C2\x156\x3\x2\x2\x2\x6C3\x6C4\x5\x21F"+ + "\x110\x2\x6C4\x6C5\x5\x211\x109\x2\x6C5\x6C6\x5\x21D\x10F\x2\x6C6\x6C7"+ + "\x5\x207\x104\x2\x6C7\x6C8\x5\x20D\x107\x2\x6C8\x158\x3\x2\x2\x2\x6C9"+ + "\x6CA\x5\x221\x111\x2\x6CA\x6CB\x5\x1F7\xFC\x2\x6CB\x6CC\x5\x219\x10D"+ + "\x2\x6CC\x6CD\x5\x207\x104\x2\x6CD\x6CE\x5\x1F7\xFC\x2\x6CE\x6CF\x5\x211"+ + "\x109\x2\x6CF\x6D0\x5\x21D\x10F\x2\x6D0\x15A\x3\x2\x2\x2\x6D1\x6D2\x5"+ + "\x221\x111\x2\x6D2\x6D3\x5\x1FF\x100\x2\x6D3\x6D4\x5\x219\x10D\x2\x6D4"+ + "\x6D5\x5\x21B\x10E\x2\x6D5\x6D6\x5\x207\x104\x2\x6D6\x6D7\x5\x213\x10A"+ + "\x2\x6D7\x6D8\x5\x211\x109\x2\x6D8\x15C\x3\x2\x2\x2\x6D9\x6DA\x5\x223"+ + "\x112\x2\x6DA\x6DB\x5\x1FF\x100\x2\x6DB\x6DC\x5\x211\x109\x2\x6DC\x6DD"+ + "\x5\x1FD\xFF\x2\x6DD\x15E\x3\x2\x2\x2\x6DE\x6DF\x5\x223\x112\x2\x6DF\x6E0"+ + "\x5\x205\x103\x2\x6E0\x6E1\x5\x207\x104\x2\x6E1\x6E2\x5\x20D\x107\x2\x6E2"+ + "\x6E3\x5\x1FF\x100\x2\x6E3\x160\x3\x2\x2\x2\x6E4\x6E5\x5\x223\x112\x2"+ + "\x6E5\x6E6\x5\x207\x104\x2\x6E6\x6E7\x5\x1FD\xFF\x2\x6E7\x6E8\x5\x21D"+ + "\x10F\x2\x6E8\x6E9\x5\x205\x103\x2\x6E9\x162\x3\x2\x2\x2\x6EA\x6EB\x5"+ + "\x223\x112\x2\x6EB\x6EC\x5\x207\x104\x2\x6EC\x6ED\x5\x21D\x10F\x2\x6ED"+ + "\x6EE\x5\x205\x103\x2\x6EE\x164\x3\x2\x2\x2\x6EF\x6F0\x5\x223\x112\x2"+ + "\x6F0\x6F1\x5\x207\x104\x2\x6F1\x6F2\x5\x21D\x10F\x2\x6F2\x6F3\x5\x205"+ + "\x103\x2\x6F3\x6F4\x5\x1FF\x100\x2\x6F4\x6F5\x5\x221\x111\x2\x6F5\x6F6"+ + "\x5\x1FF\x100\x2\x6F6\x6F7\x5\x211\x109\x2\x6F7\x6F8\x5\x21D\x10F\x2\x6F8"+ + "\x6F9\x5\x21B\x10E\x2\x6F9\x166\x3\x2\x2\x2\x6FA\x6FB\x5\x223\x112\x2"+ + "\x6FB\x6FC\x5\x219\x10D\x2\x6FC\x6FD\x5\x207\x104\x2\x6FD\x6FE\x5\x21D"+ + "\x10F\x2\x6FE\x6FF\x5\x1FF\x100\x2\x6FF\x168\x3\x2\x2\x2\x700\x701\x5"+ + "\x225\x113\x2\x701\x702\x5\x213\x10A\x2\x702\x703\x5\x219\x10D\x2\x703"+ + "\x16A\x3\x2\x2\x2\x704\x705\a(\x2\x2\x705\x16C\x3\x2\x2\x2\x706\x707\a"+ + "<\x2\x2\x707\x708\a?\x2\x2\x708\x16E\x3\x2\x2\x2\x709\x70A\a\x31\x2\x2"+ + "\x70A\x170\x3\x2\x2\x2\x70B\x70C\a^\x2\x2\x70C\x172\x3\x2\x2\x2\x70D\x70E"+ + "\a?\x2\x2\x70E\x174\x3\x2\x2\x2\x70F\x710\a@\x2\x2\x710\x711\a?\x2\x2"+ + "\x711\x176\x3\x2\x2\x2\x712\x713\a@\x2\x2\x713\x178\x3\x2\x2\x2\x714\x715"+ + "\a>\x2\x2\x715\x716\a?\x2\x2\x716\x17A\x3\x2\x2\x2\x717\x718\a*\x2\x2"+ + "\x718\x17C\x3\x2\x2\x2\x719\x71A\a>\x2\x2\x71A\x17E\x3\x2\x2\x2\x71B\x71C"+ + "\a/\x2\x2\x71C\x180\x3\x2\x2\x2\x71D\x71E\a,\x2\x2\x71E\x182\x3\x2\x2"+ + "\x2\x71F\x720\a>\x2\x2\x720\x721\a@\x2\x2\x721\x184\x3\x2\x2\x2\x722\x723"+ + "\a-\x2\x2\x723\x186\x3\x2\x2\x2\x724\x725\a`\x2\x2\x725\x188\x3\x2\x2"+ + "\x2\x726\x727\a+\x2\x2\x727\x18A\x3\x2\x2\x2\x728\x729\a]\x2\x2\x729\x18C"+ + "\x3\x2\x2\x2\x72A\x72B\a_\x2\x2\x72B\x18E\x3\x2\x2\x2\x72C\x732\a$\x2"+ + "\x2\x72D\x731\n\x2\x2\x2\x72E\x72F\a$\x2\x2\x72F\x731\a$\x2\x2\x730\x72D"+ + "\x3\x2\x2\x2\x730\x72E\x3\x2\x2\x2\x731\x734\x3\x2\x2\x2\x732\x730\x3"+ + "\x2\x2\x2\x732\x733\x3\x2\x2\x2\x733\x735\x3\x2\x2\x2\x734\x732\x3\x2"+ + "\x2\x2\x735\x736\a$\x2\x2\x736\x190\x3\x2\x2\x2\x737\x738\a(\x2\x2\x738"+ + "\x739\aQ\x2\x2\x739\x73B\x3\x2\x2\x2\x73A\x73C\t\x3\x2\x2\x73B\x73A\x3"+ + "\x2\x2\x2\x73C\x73D\x3\x2\x2\x2\x73D\x73B\x3\x2\x2\x2\x73D\x73E\x3\x2"+ + "\x2\x2\x73E\x740\x3\x2\x2\x2\x73F\x741\a(\x2\x2\x740\x73F\x3\x2\x2\x2"+ + "\x740\x741\x3\x2\x2\x2\x741\x192\x3\x2\x2\x2\x742\x743\a(\x2\x2\x743\x744"+ + "\aJ\x2\x2\x744\x746\x3\x2\x2\x2\x745\x747\t\x4\x2\x2\x746\x745\x3\x2\x2"+ + "\x2\x747\x748\x3\x2\x2\x2\x748\x746\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2"+ + "\x749\x74B\x3\x2\x2\x2\x74A\x74C\a(\x2\x2\x74B\x74A\x3\x2\x2\x2\x74B\x74C"+ + "\x3\x2\x2\x2\x74C\x194\x3\x2\x2\x2\x74D\x750\x5\x185\xC3\x2\x74E\x750"+ + "\x5\x17F\xC0\x2\x74F\x74D\x3\x2\x2\x2\x74F\x74E\x3\x2\x2\x2\x74F\x750"+ + "\x3\x2\x2\x2\x750\x752\x3\x2\x2\x2\x751\x753\x5\x1F3\xFA\x2\x752\x751"+ + "\x3\x2\x2\x2\x753\x754\x3\x2\x2\x2\x754\x752\x3\x2\x2\x2\x754\x755\x3"+ + "\x2\x2\x2\x755\x757\x3\x2\x2\x2\x756\x758\t\x5\x2\x2\x757\x756\x3\x2\x2"+ + "\x2\x757\x758\x3\x2\x2\x2\x758\x196\x3\x2\x2\x2\x759\x75D\x5\x195\xCB"+ + "\x2\x75A\x75B\x5\x1FF\x100\x2\x75B\x75C\x5\x195\xCB\x2\x75C\x75E\x3\x2"+ + "\x2\x2\x75D\x75A\x3\x2\x2\x2\x75D\x75E\x3\x2\x2\x2\x75E\x198\x3\x2\x2"+ + "\x2\x75F\x762\x5\x185\xC3\x2\x760\x762\x5\x17F\xC0\x2\x761\x75F\x3\x2"+ + "\x2\x2\x761\x760\x3\x2\x2\x2\x761\x762\x3\x2\x2\x2\x762\x766\x3\x2\x2"+ + "\x2\x763\x765\x5\x1F3\xFA\x2\x764\x763\x3\x2\x2\x2\x765\x768\x3\x2\x2"+ + "\x2\x766\x764\x3\x2\x2\x2\x766\x767\x3\x2\x2\x2\x767\x769\x3\x2\x2\x2"+ + "\x768\x766\x3\x2\x2\x2\x769\x76B\a\x30\x2\x2\x76A\x76C\x5\x1F3\xFA\x2"+ + "\x76B\x76A\x3\x2\x2\x2\x76C\x76D\x3\x2\x2\x2\x76D\x76B\x3\x2\x2\x2\x76D"+ + "\x76E\x3\x2\x2\x2\x76E\x772\x3\x2\x2\x2\x76F\x770\x5\x1FF\x100\x2\x770"+ + "\x771\x5\x195\xCB\x2\x771\x773\x3\x2\x2\x2\x772\x76F\x3\x2\x2\x2\x772"+ + "\x773\x3\x2\x2\x2\x773\x19A\x3\x2\x2\x2\x774\x775\a%\x2\x2\x775\x776\x5"+ + "\x19D\xCF\x2\x776\x777\a%\x2\x2\x777\x19C\x3\x2\x2\x2\x778\x77A\x5\x19F"+ + "\xD0\x2\x779\x77B\x5\x1ED\xF7\x2\x77A\x779\x3\x2\x2\x2\x77A\x77B\x3\x2"+ + "\x2\x2\x77B\x77C\x3\x2\x2\x2\x77C\x77D\x5\x1AB\xD6\x2\x77D\x781\x3\x2"+ + "\x2\x2\x77E\x781\x5\x19F\xD0\x2\x77F\x781\x5\x1AB\xD6\x2\x780\x778\x3"+ + "\x2\x2\x2\x780\x77E\x3\x2\x2\x2\x780\x77F\x3\x2\x2\x2\x781\x19E\x3\x2"+ + "\x2\x2\x782\x783\x5\x1A1\xD1\x2\x783\x784\x5\x1A3\xD2\x2\x784\x788\x5"+ + "\x1A1\xD1\x2\x785\x786\x5\x1A3\xD2\x2\x786\x787\x5\x1A1\xD1\x2\x787\x789"+ + "\x3\x2\x2\x2\x788\x785\x3\x2\x2\x2\x788\x789\x3\x2\x2\x2\x789\x1A0\x3"+ + "\x2\x2\x2\x78A\x78C\x5\x1F3\xFA\x2\x78B\x78A\x3\x2\x2\x2\x78C\x78D\x3"+ + "\x2\x2\x2\x78D\x78B\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x791\x3\x2"+ + "\x2\x2\x78F\x791\x5\x1A5\xD3\x2\x790\x78B\x3\x2\x2\x2\x790\x78F\x3\x2"+ + "\x2\x2\x791\x1A2\x3\x2\x2\x2\x792\x794\x5\x1ED\xF7\x2\x793\x792\x3\x2"+ + "\x2\x2\x793\x794\x3\x2\x2\x2\x794\x796\x3\x2\x2\x2\x795\x797\t\x6\x2\x2"+ + "\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x799\x3\x2\x2\x2\x798"+ + "\x79A\x5\x1ED\xF7\x2\x799\x798\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2\x79A"+ + "\x1A4\x3\x2\x2\x2\x79B\x79E\x5\x1A7\xD4\x2\x79C\x79E\x5\x1A9\xD5\x2\x79D"+ + "\x79B\x3\x2\x2\x2\x79D\x79C\x3\x2\x2\x2\x79E\x1A6\x3\x2\x2\x2\x79F\x7AC"+ + "\x5\x1B1\xD9\x2\x7A0\x7AC\x5\x1B3\xDA\x2\x7A1\x7AC\x5\x1B5\xDB\x2\x7A2"+ + "\x7AC\x5\x1B7\xDC\x2\x7A3\x7AC\x5\x1B9\xDD\x2\x7A4\x7AC\x5\x1BB\xDE\x2"+ + "\x7A5\x7AC\x5\x1BD\xDF\x2\x7A6\x7AC\x5\x1BF\xE0\x2\x7A7\x7AC\x5\x1C1\xE1"+ + "\x2\x7A8\x7AC\x5\x1C3\xE2\x2\x7A9\x7AC\x5\x1C5\xE3\x2\x7AA\x7AC\x5\x1C7"+ + "\xE4\x2\x7AB\x79F\x3\x2\x2\x2\x7AB\x7A0\x3\x2\x2\x2\x7AB\x7A1\x3\x2\x2"+ + "\x2\x7AB\x7A2\x3\x2\x2\x2\x7AB\x7A3\x3\x2\x2\x2\x7AB\x7A4\x3\x2\x2\x2"+ + "\x7AB\x7A5\x3\x2\x2\x2\x7AB\x7A6\x3\x2\x2\x2\x7AB\x7A7\x3\x2\x2\x2\x7AB"+ + "\x7A8\x3\x2\x2\x2\x7AB\x7A9\x3\x2\x2\x2\x7AB\x7AA\x3\x2\x2\x2\x7AC\x1A8"+ + "\x3\x2\x2\x2\x7AD\x7B9\x5\x1C9\xE5\x2\x7AE\x7B9\x5\x1CB\xE6\x2\x7AF\x7B9"+ + "\x5\x1CD\xE7\x2\x7B0\x7B9\x5\x1CF\xE8\x2\x7B1\x7B9\x5\x1D1\xE9\x2\x7B2"+ + "\x7B9\x5\x1D3\xEA\x2\x7B3\x7B9\x5\x1D5\xEB\x2\x7B4\x7B9\x5\x1D7\xEC\x2"+ + "\x7B5\x7B9\x5\x1D9\xED\x2\x7B6\x7B9\x5\x1DB\xEE\x2\x7B7\x7B9\x5\x1DD\xEF"+ + "\x2\x7B8\x7AD\x3\x2\x2\x2\x7B8\x7AE\x3\x2\x2\x2\x7B8\x7AF\x3\x2\x2\x2"+ + "\x7B8\x7B0\x3\x2\x2\x2\x7B8\x7B1\x3\x2\x2\x2\x7B8\x7B2\x3\x2\x2\x2\x7B8"+ + "\x7B3\x3\x2\x2\x2\x7B8\x7B4\x3\x2\x2\x2\x7B8\x7B5\x3\x2\x2\x2\x7B8\x7B6"+ + "\x3\x2\x2\x2\x7B8\x7B7\x3\x2\x2\x2\x7B9\x1AA\x3\x2\x2\x2\x7BA\x7BC\x5"+ + "\x1F3\xFA\x2\x7BB\x7BA\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BB\x3"+ + "\x2\x2\x2\x7BD\x7BE\x3\x2\x2\x2\x7BE\x7BF\x3\x2\x2\x2\x7BF\x7C0\x5\x1AF"+ + "\xD8\x2\x7C0\x7D8\x3\x2\x2\x2\x7C1\x7C3\x5\x1F3\xFA\x2\x7C2\x7C1\x3\x2"+ + "\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C2\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2"+ + "\x2\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C8\x5\x1AD\xD7\x2\x7C7\x7C9\x5\x1F3\xFA"+ + "\x2\x7C8\x7C7\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\x7C8\x3\x2\x2\x2"+ + "\x7CA\x7CB\x3\x2\x2\x2\x7CB\x7D2\x3\x2\x2\x2\x7CC\x7CE\x5\x1AD\xD7\x2"+ + "\x7CD\x7CF\x5\x1F3\xFA\x2\x7CE\x7CD\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2"+ + "\x7D0\x7CE\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1\x7D3\x3\x2\x2\x2\x7D2"+ + "\x7CC\x3\x2\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D5\x3\x2\x2\x2\x7D4\x7D6"+ + "\x5\x1AF\xD8\x2\x7D5\x7D4\x3\x2\x2\x2\x7D5\x7D6\x3\x2\x2\x2\x7D6\x7D8"+ + "\x3\x2\x2\x2\x7D7\x7BB\x3\x2\x2\x2\x7D7\x7C2\x3\x2\x2\x2\x7D8\x1AC\x3"+ + "\x2\x2\x2\x7D9\x7DB\x5\x1ED\xF7\x2\x7DA\x7D9\x3\x2\x2\x2\x7DA\x7DB\x3"+ + "\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\x7DE\t\a\x2\x2\x7DD\x7DF\x5\x1ED"+ + "\xF7\x2\x7DE\x7DD\x3\x2\x2\x2\x7DE\x7DF\x3\x2\x2\x2\x7DF\x1AE\x3\x2\x2"+ + "\x2\x7E0\x7E2\x5\x1ED\xF7\x2\x7E1\x7E0\x3\x2\x2\x2\x7E1\x7E2\x3\x2\x2"+ + "\x2\x7E2\x7EB\x3\x2\x2\x2\x7E3\x7E4\x5\x1F7\xFC\x2\x7E4\x7E5\x5\x20F\x108"+ + "\x2\x7E5\x7EC\x3\x2\x2\x2\x7E6\x7E7\x5\x215\x10B\x2\x7E7\x7E8\x5\x20F"+ + "\x108\x2\x7E8\x7EC\x3\x2\x2\x2\x7E9\x7EC\x5\x1F7\xFC\x2\x7EA\x7EC\x5\x215"+ + "\x10B\x2\x7EB\x7E3\x3\x2\x2\x2\x7EB\x7E6\x3\x2\x2\x2\x7EB\x7E9\x3\x2\x2"+ + "\x2\x7EB\x7EA\x3\x2\x2\x2\x7EC\x1B0\x3\x2\x2\x2\x7ED\x7EE\x5\x209\x105"+ + "\x2\x7EE\x7EF\x5\x1F7\xFC\x2\x7EF\x7F0\x5\x211\x109\x2\x7F0\x7F1\x5\x21F"+ + "\x110\x2\x7F1\x7F2\x5\x1F7\xFC\x2\x7F2\x7F3\x5\x219\x10D\x2\x7F3\x7F4"+ + "\x5\x227\x114\x2\x7F4\x1B2\x3\x2\x2\x2\x7F5\x7F6\x5\x201\x101\x2\x7F6"+ + "\x7F7\x5\x1FF\x100\x2\x7F7\x7F8\x5\x1F9\xFD\x2\x7F8\x7F9\x5\x219\x10D"+ + "\x2\x7F9\x7FA\x5\x21F\x110\x2\x7FA\x7FB\x5\x1F7\xFC\x2\x7FB\x7FC\x5\x219"+ + "\x10D\x2\x7FC\x7FD\x5\x227\x114\x2\x7FD\x1B4\x3\x2\x2\x2\x7FE\x7FF\x5"+ + "\x20F\x108\x2\x7FF\x800\x5\x1F7\xFC\x2\x800\x801\x5\x219\x10D\x2\x801"+ + "\x802\x5\x1FB\xFE\x2\x802\x803\x5\x205\x103\x2\x803\x1B6\x3\x2\x2\x2\x804"+ + "\x805\x5\x1F7\xFC\x2\x805\x806\x5\x215\x10B\x2\x806\x807\x5\x219\x10D"+ + "\x2\x807\x808\x5\x207\x104\x2\x808\x809\x5\x20D\x107\x2\x809\x1B8\x3\x2"+ + "\x2\x2\x80A\x80B\x5\x20F\x108\x2\x80B\x80C\x5\x1F7\xFC\x2\x80C\x80D\x5"+ + "\x227\x114\x2\x80D\x1BA\x3\x2\x2\x2\x80E\x80F\x5\x209\x105\x2\x80F\x810"+ + "\x5\x21F\x110\x2\x810\x811\x5\x211\x109\x2\x811\x812\x5\x1FF\x100\x2\x812"+ + "\x1BC\x3\x2\x2\x2\x813\x814\x5\x209\x105\x2\x814\x815\x5\x21F\x110\x2"+ + "\x815\x816\x5\x20D\x107\x2\x816\x817\x5\x227\x114\x2\x817\x1BE\x3\x2\x2"+ + "\x2\x818\x819\x5\x1F7\xFC\x2\x819\x81A\x5\x21F\x110\x2\x81A\x81B\x5\x203"+ + "\x102\x2\x81B\x81C\x5\x21F\x110\x2\x81C\x81D\x5\x21B\x10E\x2\x81D\x81E"+ + "\x5\x21D\x10F\x2\x81E\x1C0\x3\x2\x2\x2\x81F\x820\x5\x21B\x10E\x2\x820"+ + "\x821\x5\x1FF\x100\x2\x821\x822\x5\x215\x10B\x2\x822\x823\x5\x21D\x10F"+ + "\x2\x823\x824\x5\x1FF\x100\x2\x824\x825\x5\x20F\x108\x2\x825\x826\x5\x1F9"+ + "\xFD\x2\x826\x827\x5\x1FF\x100\x2\x827\x828\x5\x219\x10D\x2\x828\x1C2"+ + "\x3\x2\x2\x2\x829\x82A\x5\x213\x10A\x2\x82A\x82B\x5\x1FB\xFE\x2\x82B\x82C"+ + "\x5\x21D\x10F\x2\x82C\x82D\x5\x213\x10A\x2\x82D\x82E\x5\x1F9\xFD\x2\x82E"+ + "\x82F\x5\x1FF\x100\x2\x82F\x830\x5\x219\x10D\x2\x830\x1C4\x3\x2\x2\x2"+ + "\x831\x832\x5\x211\x109\x2\x832\x833\x5\x213\x10A\x2\x833\x834\x5\x221"+ + "\x111\x2\x834\x835\x5\x1FF\x100\x2\x835\x836\x5\x20F\x108\x2\x836\x837"+ + "\x5\x1F9\xFD\x2\x837\x838\x5\x1FF\x100\x2\x838\x839\x5\x219\x10D\x2\x839"+ + "\x1C6\x3\x2\x2\x2\x83A\x83B\x5\x1FD\xFF\x2\x83B\x83C\x5\x1FF\x100\x2\x83C"+ + "\x83D\x5\x1FB\xFE\x2\x83D\x83E\x5\x1FF\x100\x2\x83E\x83F\x5\x20F\x108"+ + "\x2\x83F\x840\x5\x1F9\xFD\x2\x840\x841\x5\x1FF\x100\x2\x841\x842\x5\x219"+ + "\x10D\x2\x842\x1C8\x3\x2\x2\x2\x843\x844\x5\x209\x105\x2\x844\x845\x5"+ + "\x1F7\xFC\x2\x845\x846\x5\x211\x109\x2\x846\x1CA\x3\x2\x2\x2\x847\x848"+ + "\x5\x201\x101\x2\x848\x849\x5\x1FF\x100\x2\x849\x84A\x5\x1F9\xFD\x2\x84A"+ + "\x1CC\x3\x2\x2\x2\x84B\x84C\x5\x20F\x108\x2\x84C\x84D\x5\x1F7\xFC\x2\x84D"+ + "\x84E\x5\x219\x10D\x2\x84E\x1CE\x3\x2\x2\x2\x84F\x850\x5\x1F7\xFC\x2\x850"+ + "\x851\x5\x215\x10B\x2\x851\x852\x5\x219\x10D\x2\x852\x1D0\x3\x2\x2\x2"+ + "\x853\x854\x5\x209\x105\x2\x854\x855\x5\x21F\x110\x2\x855\x856\x5\x211"+ + "\x109\x2\x856\x1D2\x3\x2\x2\x2\x857\x858\x5\x209\x105\x2\x858\x859\x5"+ + "\x21F\x110\x2\x859\x85A\x5\x20D\x107\x2\x85A\x1D4\x3\x2\x2\x2\x85B\x85C"+ + "\x5\x1F7\xFC\x2\x85C\x85D\x5\x21F\x110\x2\x85D\x85E\x5\x203\x102\x2\x85E"+ + "\x1D6\x3\x2\x2\x2\x85F\x860\x5\x21B\x10E\x2\x860\x861\x5\x1FF\x100\x2"+ + "\x861\x862\x5\x215\x10B\x2\x862\x1D8\x3\x2\x2\x2\x863\x864\x5\x213\x10A"+ + "\x2\x864\x865\x5\x1FB\xFE\x2\x865\x866\x5\x21D\x10F\x2\x866\x1DA\x3\x2"+ + "\x2\x2\x867\x868\x5\x211\x109\x2\x868\x869\x5\x213\x10A\x2\x869\x86A\x5"+ + "\x221\x111\x2\x86A\x1DC\x3\x2\x2\x2\x86B\x86C\x5\x1FD\xFF\x2\x86C\x86D"+ + "\x5\x1FF\x100\x2\x86D\x86E\x5\x1FB\xFE\x2\x86E\x1DE\x3\x2\x2\x2\x86F\x871"+ + "\t\b\x2\x2\x870\x86F\x3\x2\x2\x2\x871\x872\x3\x2\x2\x2\x872\x870\x3\x2"+ + "\x2\x2\x872\x873\x3\x2\x2\x2\x873\x874\x3\x2\x2\x2\x874\x876\x5\x1EB\xF6"+ + "\x2\x875\x877\a\xF\x2\x2\x876\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877"+ + "\x878\x3\x2\x2\x2\x878\x879\a\f\x2\x2\x879\x87A\x3\x2\x2\x2\x87A\x87B"+ + "\b\xF0\x2\x2\x87B\x1E0\x3\x2\x2\x2\x87C\x87E\t\t\x2\x2\x87D\x87C\x3\x2"+ + "\x2\x2\x87E\x87F\x3\x2\x2\x2\x87F\x87D\x3\x2\x2\x2\x87F\x880\x3\x2\x2"+ + "\x2\x880\x1E2\x3\x2\x2\x2\x881\x883\x5\x1E9\xF5\x2\x882\x881\x3\x2\x2"+ + "\x2\x882\x883\x3\x2\x2\x2\x883\x884\x3\x2\x2\x2\x884\x885\x5\x119\x8D"+ + "\x2\x885\x88A\x5\x1ED\xF7\x2\x886\x889\x5\x1DF\xF0\x2\x887\x889\n\t\x2"+ + "\x2\x888\x886\x3\x2\x2\x2\x888\x887\x3\x2\x2\x2\x889\x88C\x3\x2\x2\x2"+ + "\x88A\x888\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\x1E4\x3\x2\x2\x2\x88C"+ + "\x88A\x3\x2\x2\x2\x88D\x892\x5\x1E7\xF4\x2\x88E\x891\x5\x1DF\xF0\x2\x88F"+ + "\x891\n\t\x2\x2\x890\x88E\x3\x2\x2\x2\x890\x88F\x3\x2\x2\x2\x891\x894"+ + "\x3\x2\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893\x1E6\x3"+ + "\x2\x2\x2\x894\x892\x3\x2\x2\x2\x895\x896\a)\x2\x2\x896\x1E8\x3\x2\x2"+ + "\x2\x897\x898\a<\x2\x2\x898\x1EA\x3\x2\x2\x2\x899\x89A\a\x61\x2\x2\x89A"+ + "\x1EC\x3\x2\x2\x2\x89B\x89E\t\b\x2\x2\x89C\x89E\x5\x1DF\xF0\x2\x89D\x89B"+ + "\x3\x2\x2\x2\x89D\x89C\x3\x2\x2\x2\x89E\x89F\x3\x2\x2\x2\x89F\x89D\x3"+ + "\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x1EE\x3\x2\x2\x2\x8A1\x8A3\n\n\x2"+ + "\x2\x8A2\x8A1\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A2\x3\x2\x2\x2"+ + "\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8AF\x3\x2\x2\x2\x8A6\x8A8\x5\x18B\xC6\x2"+ + "\x8A7\x8A9\n\v\x2\x2\x8A8\x8A7\x3\x2\x2\x2\x8A9\x8AA\x3\x2\x2\x2\x8AA"+ + "\x8A8\x3\x2\x2\x2\x8AA\x8AB\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD"+ + "\x5\x18D\xC7\x2\x8AD\x8AF\x3\x2\x2\x2\x8AE\x8A2\x3\x2\x2\x2\x8AE\x8A6"+ + "\x3\x2\x2\x2\x8AF\x1F0\x3\x2\x2\x2\x8B0\x8B1\t\f\x2\x2\x8B1\x1F2\x3\x2"+ + "\x2\x2\x8B2\x8B3\t\r\x2\x2\x8B3\x1F4\x3\x2\x2\x2\x8B4\x8B5\t\xE\x2\x2"+ + "\x8B5\x1F6\x3\x2\x2\x2\x8B6\x8B7\t\xF\x2\x2\x8B7\x1F8\x3\x2\x2\x2\x8B8"+ + "\x8B9\t\x10\x2\x2\x8B9\x1FA\x3\x2\x2\x2\x8BA\x8BB\t\x11\x2\x2\x8BB\x1FC"+ + "\x3\x2\x2\x2\x8BC\x8BD\t\x12\x2\x2\x8BD\x1FE\x3\x2\x2\x2\x8BE\x8BF\t\x13"+ + "\x2\x2\x8BF\x200\x3\x2\x2\x2\x8C0\x8C1\t\x14\x2\x2\x8C1\x202\x3\x2\x2"+ + "\x2\x8C2\x8C3\t\x15\x2\x2\x8C3\x204\x3\x2\x2\x2\x8C4\x8C5\t\x16\x2\x2"+ + "\x8C5\x206\x3\x2\x2\x2\x8C6\x8C7\t\x17\x2\x2\x8C7\x208\x3\x2\x2\x2\x8C8"+ + "\x8C9\t\x18\x2\x2\x8C9\x20A\x3\x2\x2\x2\x8CA\x8CB\t\x19\x2\x2\x8CB\x20C"+ + "\x3\x2\x2\x2\x8CC\x8CD\t\x1A\x2\x2\x8CD\x20E\x3\x2\x2\x2\x8CE\x8CF\t\x1B"+ + "\x2\x2\x8CF\x210\x3\x2\x2\x2\x8D0\x8D1\t\x1C\x2\x2\x8D1\x212\x3\x2\x2"+ + "\x2\x8D2\x8D3\t\x1D\x2\x2\x8D3\x214\x3\x2\x2\x2\x8D4\x8D5\t\x1E\x2\x2"+ + "\x8D5\x216\x3\x2\x2\x2\x8D6\x8D7\t\x1F\x2\x2\x8D7\x218\x3\x2\x2\x2\x8D8"+ + "\x8D9\t \x2\x2\x8D9\x21A\x3\x2\x2\x2\x8DA\x8DB\t!\x2\x2\x8DB\x21C\x3\x2"+ + "\x2\x2\x8DC\x8DD\t\"\x2\x2\x8DD\x21E\x3\x2\x2\x2\x8DE\x8DF\t#\x2\x2\x8DF"+ + "\x220\x3\x2\x2\x2\x8E0\x8E1\t$\x2\x2\x8E1\x222\x3\x2\x2\x2\x8E2\x8E3\t"+ + "%\x2\x2\x8E3\x224\x3\x2\x2\x2\x8E4\x8E5\t&\x2\x2\x8E5\x226\x3\x2\x2\x2"+ + "\x8E6\x8E7\t\'\x2\x2\x8E7\x228\x3\x2\x2\x2\x8E8\x8E9\t(\x2\x2\x8E9\x22A"+ + "\x3\x2\x2\x2\x34\x2\x730\x732\x73D\x740\x748\x74B\x74F\x754\x757\x75D"+ + "\x761\x766\x76D\x772\x77A\x780\x788\x78D\x790\x793\x796\x799\x79D\x7AB"+ + "\x7B8\x7BD\x7C4\x7CA\x7D0\x7D2\x7D5\x7D7\x7DA\x7DE\x7E1\x7EB\x872\x876"+ + "\x87F\x882\x888\x88A\x890\x892\x89D\x89F\x8A4\x8AA\x8AE\x3\b\x2\x2"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} } // namespace Rubberduck.Parsing.Grammar diff --git a/Rubberduck.Parsing/Grammar/VBAListener.cs b/Rubberduck.Parsing/Grammar/VBAListener.cs index 2f5635eda1..e7cdb159b4 100644 --- a/Rubberduck.Parsing/Grammar/VBAListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAListener.cs @@ -17,2009 +17,1941 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Grammar -{ - 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.3")] - [System.CLSCompliant(false)] - public interface IVBAListener : IParseTreeListener - { - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSeekStmt([NotNull] VBAParser.SeekStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSeekStmt([NotNull] VBAParser.SeekStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterFileNumber([NotNull] VBAParser.FileNumberContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitFileNumber([NotNull] VBAParser.FileNumberContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterConstStmt([NotNull] VBAParser.ConstStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterType([NotNull] VBAParser.TypeContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitType([NotNull] VBAParser.TypeContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRsetStmt([NotNull] VBAParser.RsetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRsetStmt([NotNull] VBAParser.RsetStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterInputStmt([NotNull] VBAParser.InputStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitInputStmt([NotNull] VBAParser.InputStmtContext context); - - /// - /// Enter a parse tree produced by the vsAdd - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsAdd([NotNull] VBAParser.VsAddContext context); - /// - /// Exit a parse tree produced by the vsAdd - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsAdd([NotNull] VBAParser.VsAddContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLsetStmt([NotNull] VBAParser.LsetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLsetStmt([NotNull] VBAParser.LsetStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDeclareStmt([NotNull] VBAParser.DeclareStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterResetStmt([NotNull] VBAParser.ResetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitResetStmt([NotNull] VBAParser.ResetStmtContext context); - - /// - /// Enter a parse tree produced by the vsNew - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsNew([NotNull] VBAParser.VsNewContext context); - /// - /// Exit a parse tree produced by the vsNew - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsNew([NotNull] VBAParser.VsNewContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRemComment([NotNull] VBAParser.RemCommentContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRemComment([NotNull] VBAParser.RemCommentContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTimeStmt([NotNull] VBAParser.TimeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTimeStmt([NotNull] VBAParser.TimeStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterBlock([NotNull] VBAParser.BlockContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitBlock([NotNull] VBAParser.BlockContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSetStmt([NotNull] VBAParser.SetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSetStmt([NotNull] VBAParser.SetStmtContext context); - - /// - /// Enter a parse tree produced by the vsNegation - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsNegation([NotNull] VBAParser.VsNegationContext context); - /// - /// Exit a parse tree produced by the vsNegation - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsNegation([NotNull] VBAParser.VsNegationContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterFieldLength([NotNull] VBAParser.FieldLengthContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitFieldLength([NotNull] VBAParser.FieldLengthContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterGoSubStmt([NotNull] VBAParser.GoSubStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterAttributeStmt([NotNull] VBAParser.AttributeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModule([NotNull] VBAParser.ModuleContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModule([NotNull] VBAParser.ModuleContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterComplexType([NotNull] VBAParser.ComplexTypeContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitComplexType([NotNull] VBAParser.ComplexTypeContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleHeader([NotNull] VBAParser.ModuleHeaderContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context); - - /// - /// Enter a parse tree produced by the vsICS - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsICS([NotNull] VBAParser.VsICSContext context); - /// - /// Exit a parse tree produced by the vsICS - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsICS([NotNull] VBAParser.VsICSContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterOutputList([NotNull] VBAParser.OutputListContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitOutputList([NotNull] VBAParser.OutputListContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context); - - /// - /// Enter a parse tree produced by the vsIntDiv - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsIntDiv([NotNull] VBAParser.VsIntDivContext context); - /// - /// Exit a parse tree produced by the vsIntDiv - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsIntDiv([NotNull] VBAParser.VsIntDivContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleBody([NotNull] VBAParser.ModuleBodyContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleBody([NotNull] VBAParser.ModuleBodyContext context); - - /// - /// Enter a parse tree produced by the caseCondSelection - /// labeled alternative in . - /// - /// The parse tree. - void EnterCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context); - /// - /// Exit a parse tree produced by the caseCondSelection - /// labeled alternative in . - /// - /// The parse tree. - void ExitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterWidthStmt([NotNull] VBAParser.WidthStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitWidthStmt([NotNull] VBAParser.WidthStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterWithStmt([NotNull] VBAParser.WithStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitWithStmt([NotNull] VBAParser.WithStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterArgCall([NotNull] VBAParser.ArgCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitArgCall([NotNull] VBAParser.ArgCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterNameStmt([NotNull] VBAParser.NameStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitNameStmt([NotNull] VBAParser.NameStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTypeHint([NotNull] VBAParser.TypeHintContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTypeHint([NotNull] VBAParser.TypeHintContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDateStmt([NotNull] VBAParser.DateStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDateStmt([NotNull] VBAParser.DateStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEndOfStatement([NotNull] VBAParser.EndOfStatementContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context); - - /// - /// Enter a parse tree produced by the optionCompareStmt - /// labeled alternative in . - /// - /// The parse tree. - void EnterOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context); - /// - /// Exit a parse tree produced by the optionCompareStmt - /// labeled alternative in . - /// - /// The parse tree. - void ExitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRedimStmt([NotNull] VBAParser.RedimStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRedimStmt([NotNull] VBAParser.RedimStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLiteral([NotNull] VBAParser.LiteralContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLiteral([NotNull] VBAParser.LiteralContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterErrorStmt([NotNull] VBAParser.ErrorStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitErrorStmt([NotNull] VBAParser.ErrorStmtContext context); - - /// - /// Enter a parse tree produced by the vsAddressOf - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsAddressOf([NotNull] VBAParser.VsAddressOfContext context); - /// - /// Exit a parse tree produced by the vsAddressOf - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterArg([NotNull] VBAParser.ArgContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitArg([NotNull] VBAParser.ArgContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context); - - /// - /// Enter a parse tree produced by the vsMult - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsMult([NotNull] VBAParser.VsMultContext context); - /// - /// Exit a parse tree produced by the vsMult - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsMult([NotNull] VBAParser.VsMultContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEventStmt([NotNull] VBAParser.EventStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEventStmt([NotNull] VBAParser.EventStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLockStmt([NotNull] VBAParser.LockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLockStmt([NotNull] VBAParser.LockStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterResumeStmt([NotNull] VBAParser.ResumeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitResumeStmt([NotNull] VBAParser.ResumeStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); - - /// - /// Enter a parse tree produced by the optionExplicitStmt - /// labeled alternative in . - /// - /// The parse tree. - void EnterOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context); - /// - /// Exit a parse tree produced by the optionExplicitStmt - /// labeled alternative in . - /// - /// The parse tree. - void ExitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context); - - /// - /// Enter a parse tree produced by the vsNot - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsNot([NotNull] VBAParser.VsNotContext context); - /// - /// Exit a parse tree produced by the vsNot - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsNot([NotNull] VBAParser.VsNotContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEndOfLine([NotNull] VBAParser.EndOfLineContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEndOfLine([NotNull] VBAParser.EndOfLineContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterStartRule([NotNull] VBAParser.StartRuleContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitStartRule([NotNull] VBAParser.StartRuleContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterWriteStmt([NotNull] VBAParser.WriteStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitWriteStmt([NotNull] VBAParser.WriteStmtContext context); - - /// - /// Enter a parse tree produced by the vsAnd - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsAnd([NotNull] VBAParser.VsAndContext context); - /// - /// Exit a parse tree produced by the vsAnd - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsAnd([NotNull] VBAParser.VsAndContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEndStmt([NotNull] VBAParser.EndStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEndStmt([NotNull] VBAParser.EndStmtContext context); - - /// - /// Enter a parse tree produced by the blockIfThenElse - /// labeled alternative in . - /// - /// The parse tree. - void EnterBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); - /// - /// Exit a parse tree produced by the blockIfThenElse - /// labeled alternative in . - /// - /// The parse tree. - void ExitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); - - /// - /// Enter a parse tree produced by the vsAmp - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsAmp([NotNull] VBAParser.VsAmpContext context); - /// - /// Exit a parse tree produced by the vsAmp - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsAmp([NotNull] VBAParser.VsAmpContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterForNextStmt([NotNull] VBAParser.ForNextStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitForNextStmt([NotNull] VBAParser.ForNextStmtContext context); - - /// - /// Enter a parse tree produced by the caseCondTo - /// labeled alternative in . - /// - /// The parse tree. - void EnterCaseCondTo([NotNull] VBAParser.CaseCondToContext context); - /// - /// Exit a parse tree produced by the caseCondTo - /// labeled alternative in . - /// - /// The parse tree. - void ExitCaseCondTo([NotNull] VBAParser.CaseCondToContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context); - - /// - /// Enter a parse tree produced by the vsImp - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsImp([NotNull] VBAParser.VsImpContext context); - /// - /// Exit a parse tree produced by the vsImp - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsImp([NotNull] VBAParser.VsImpContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterForEachStmt([NotNull] VBAParser.ForEachStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterExitStmt([NotNull] VBAParser.ExitStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitExitStmt([NotNull] VBAParser.ExitStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterArgList([NotNull] VBAParser.ArgListContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitArgList([NotNull] VBAParser.ArgListContext context); - - /// - /// Enter a parse tree produced by the vsStruct - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsStruct([NotNull] VBAParser.VsStructContext context); - /// - /// Exit a parse tree produced by the vsStruct - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsStruct([NotNull] VBAParser.VsStructContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSubscripts([NotNull] VBAParser.SubscriptsContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSubscripts([NotNull] VBAParser.SubscriptsContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLetterrange([NotNull] VBAParser.LetterrangeContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLetterrange([NotNull] VBAParser.LetterrangeContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLetStmt([NotNull] VBAParser.LetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLetStmt([NotNull] VBAParser.LetStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSubStmt([NotNull] VBAParser.SubStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSubStmt([NotNull] VBAParser.SubStmtContext context); - - /// - /// Enter a parse tree produced by the optionBaseStmt - /// labeled alternative in . - /// - /// The parse tree. - void EnterOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context); - /// - /// Exit a parse tree produced by the optionBaseStmt - /// labeled alternative in . - /// - /// The parse tree. - void ExitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context); - - /// - /// Enter a parse tree produced by the vsRelational - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsRelational([NotNull] VBAParser.VsRelationalContext context); - /// - /// Exit a parse tree produced by the vsRelational - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsRelational([NotNull] VBAParser.VsRelationalContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterChdirStmt([NotNull] VBAParser.ChdirStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitChdirStmt([NotNull] VBAParser.ChdirStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLineInputStmt([NotNull] VBAParser.LineInputStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTypeStmt([NotNull] VBAParser.TypeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTypeStmt([NotNull] VBAParser.TypeStmtContext context); - - /// - /// Enter a parse tree produced by the inlineIfThenElse - /// labeled alternative in . - /// - /// The parse tree. - void EnterInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); - /// - /// Exit a parse tree produced by the inlineIfThenElse - /// labeled alternative in . - /// - /// The parse tree. - void ExitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context); - - /// - /// Enter a parse tree produced by the optionPrivateModuleStmt - /// labeled alternative in . - /// - /// The parse tree. - void EnterOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context); - /// - /// Exit a parse tree produced by the optionPrivateModuleStmt - /// labeled alternative in . - /// - /// The parse tree. - void ExitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPutStmt([NotNull] VBAParser.PutStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPutStmt([NotNull] VBAParser.PutStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); - - /// - /// Enter a parse tree produced by the vsAssign - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsAssign([NotNull] VBAParser.VsAssignContext context); - /// - /// Exit a parse tree produced by the vsAssign - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsAssign([NotNull] VBAParser.VsAssignContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterVariableStmt([NotNull] VBAParser.VariableStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSubscript([NotNull] VBAParser.SubscriptContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSubscript([NotNull] VBAParser.SubscriptContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterVisibility([NotNull] VBAParser.VisibilityContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitVisibility([NotNull] VBAParser.VisibilityContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterBeepStmt([NotNull] VBAParser.BeepStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitBeepStmt([NotNull] VBAParser.BeepStmtContext context); - - /// - /// Enter a parse tree produced by the vsTypeOf - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsTypeOf([NotNull] VBAParser.VsTypeOfContext context); - /// - /// Exit a parse tree produced by the vsTypeOf - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context); - - /// - /// Enter a parse tree produced by the caseCondValue - /// labeled alternative in . - /// - /// The parse tree. - void EnterCaseCondValue([NotNull] VBAParser.CaseCondValueContext context); - /// - /// Exit a parse tree produced by the caseCondValue - /// labeled alternative in . - /// - /// The parse tree. - void ExitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterReturnStmt([NotNull] VBAParser.ReturnStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitReturnStmt([NotNull] VBAParser.ReturnStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context); - - /// - /// Enter a parse tree produced by the vsMod - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsMod([NotNull] VBAParser.VsModContext context); - /// - /// Exit a parse tree produced by the vsMod - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsMod([NotNull] VBAParser.VsModContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterKillStmt([NotNull] VBAParser.KillStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitKillStmt([NotNull] VBAParser.KillStmtContext context); - - /// - /// Enter a parse tree produced by the vsOr - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsOr([NotNull] VBAParser.VsOrContext context); - /// - /// Exit a parse tree produced by the vsOr - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsOr([NotNull] VBAParser.VsOrContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context); - - /// - /// Enter a parse tree produced by the caseCondElse - /// labeled alternative in . - /// - /// The parse tree. - void EnterCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); - /// - /// Exit a parse tree produced by the caseCondElse - /// labeled alternative in . - /// - /// The parse tree. - void ExitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterGetStmt([NotNull] VBAParser.GetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitGetStmt([NotNull] VBAParser.GetStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLineLabel([NotNull] VBAParser.LineLabelContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLineLabel([NotNull] VBAParser.LineLabelContext context); - - /// - /// Enter a parse tree produced by the caseCondIs - /// labeled alternative in . - /// - /// The parse tree. - void EnterCaseCondIs([NotNull] VBAParser.CaseCondIsContext context); - /// - /// Exit a parse tree produced by the caseCondIs - /// labeled alternative in . - /// - /// The parse tree. - void ExitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterArgsCall([NotNull] VBAParser.ArgsCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitArgsCall([NotNull] VBAParser.ArgsCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLoadStmt([NotNull] VBAParser.LoadStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLoadStmt([NotNull] VBAParser.LoadStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterBaseType([NotNull] VBAParser.BaseTypeContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitBaseType([NotNull] VBAParser.BaseTypeContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterOpenStmt([NotNull] VBAParser.OpenStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitOpenStmt([NotNull] VBAParser.OpenStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterCloseStmt([NotNull] VBAParser.CloseStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitCloseStmt([NotNull] VBAParser.CloseStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterStopStmt([NotNull] VBAParser.StopStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitStopStmt([NotNull] VBAParser.StopStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSC_Case([NotNull] VBAParser.SC_CaseContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSC_Case([NotNull] VBAParser.SC_CaseContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterUnlockStmt([NotNull] VBAParser.UnlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context); - - /// - /// Enter a parse tree produced by the vsXor - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsXor([NotNull] VBAParser.VsXorContext context); - /// - /// Exit a parse tree produced by the vsXor - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsXor([NotNull] VBAParser.VsXorContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterGoToStmt([NotNull] VBAParser.GoToStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitGoToStmt([NotNull] VBAParser.GoToStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMidStmt([NotNull] VBAParser.MidStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMidStmt([NotNull] VBAParser.MidStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); - - /// - /// Enter a parse tree produced by the vsPow - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsPow([NotNull] VBAParser.VsPowContext context); - /// - /// Exit a parse tree produced by the vsPow - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsPow([NotNull] VBAParser.VsPowContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterPrintStmt([NotNull] VBAParser.PrintStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitPrintStmt([NotNull] VBAParser.PrintStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleConfig([NotNull] VBAParser.ModuleConfigContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleConfig([NotNull] VBAParser.ModuleConfigContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterBlockStmt([NotNull] VBAParser.BlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitBlockStmt([NotNull] VBAParser.BlockStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEraseStmt([NotNull] VBAParser.EraseStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEraseStmt([NotNull] VBAParser.EraseStmtContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context); - - /// - /// Enter a parse tree produced by the vsLiteral - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsLiteral([NotNull] VBAParser.VsLiteralContext context); - /// - /// Exit a parse tree produced by the vsLiteral - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsLiteral([NotNull] VBAParser.VsLiteralContext context); - - /// - /// Enter a parse tree produced by the vsEqv - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsEqv([NotNull] VBAParser.VsEqvContext context); - /// - /// Exit a parse tree produced by the vsEqv - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsEqv([NotNull] VBAParser.VsEqvContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterComment([NotNull] VBAParser.CommentContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitComment([NotNull] VBAParser.CommentContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); - - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroStmt([NotNull] VBAParser.MacroStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroStmt([NotNull] VBAParser.MacroStmtContext context); - - /// - /// Enter a parse tree produced by the vsMid - /// labeled alternative in . - /// - /// The parse tree. - void EnterVsMid([NotNull] VBAParser.VsMidContext context); - /// - /// Exit a parse tree produced by the vsMid - /// labeled alternative in . - /// - /// The parse tree. - void ExitVsMid([NotNull] VBAParser.VsMidContext context); - } +namespace Rubberduck.Parsing.Grammar { +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.3")] +[System.CLSCompliant(false)] +public interface IVBAListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSeekStmt([NotNull] VBAParser.SeekStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSeekStmt([NotNull] VBAParser.SeekStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFileNumber([NotNull] VBAParser.FileNumberContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFileNumber([NotNull] VBAParser.FileNumberContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterConstStmt([NotNull] VBAParser.ConstStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterType([NotNull] VBAParser.TypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitType([NotNull] VBAParser.TypeContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRsetStmt([NotNull] VBAParser.RsetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRsetStmt([NotNull] VBAParser.RsetStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterInputStmt([NotNull] VBAParser.InputStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitInputStmt([NotNull] VBAParser.InputStmtContext context); + + /// + /// Enter a parse tree produced by the vsAdd + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsAdd([NotNull] VBAParser.VsAddContext context); + /// + /// Exit a parse tree produced by the vsAdd + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsAdd([NotNull] VBAParser.VsAddContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLsetStmt([NotNull] VBAParser.LsetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLsetStmt([NotNull] VBAParser.LsetStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDeclareStmt([NotNull] VBAParser.DeclareStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterResetStmt([NotNull] VBAParser.ResetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitResetStmt([NotNull] VBAParser.ResetStmtContext context); + + /// + /// Enter a parse tree produced by the vsNew + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsNew([NotNull] VBAParser.VsNewContext context); + /// + /// Exit a parse tree produced by the vsNew + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsNew([NotNull] VBAParser.VsNewContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRemComment([NotNull] VBAParser.RemCommentContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRemComment([NotNull] VBAParser.RemCommentContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeStmt([NotNull] VBAParser.TimeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeStmt([NotNull] VBAParser.TimeStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBlock([NotNull] VBAParser.BlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBlock([NotNull] VBAParser.BlockContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSetStmt([NotNull] VBAParser.SetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSetStmt([NotNull] VBAParser.SetStmtContext context); + + /// + /// Enter a parse tree produced by the vsNegation + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsNegation([NotNull] VBAParser.VsNegationContext context); + /// + /// Exit a parse tree produced by the vsNegation + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsNegation([NotNull] VBAParser.VsNegationContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFieldLength([NotNull] VBAParser.FieldLengthContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFieldLength([NotNull] VBAParser.FieldLengthContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterGoSubStmt([NotNull] VBAParser.GoSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAttributeStmt([NotNull] VBAParser.AttributeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModule([NotNull] VBAParser.ModuleContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModule([NotNull] VBAParser.ModuleContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterComplexType([NotNull] VBAParser.ComplexTypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitComplexType([NotNull] VBAParser.ComplexTypeContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleHeader([NotNull] VBAParser.ModuleHeaderContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context); + + /// + /// Enter a parse tree produced by the vsICS + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsICS([NotNull] VBAParser.VsICSContext context); + /// + /// Exit a parse tree produced by the vsICS + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsICS([NotNull] VBAParser.VsICSContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOutputList([NotNull] VBAParser.OutputListContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOutputList([NotNull] VBAParser.OutputListContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context); + + /// + /// Enter a parse tree produced by the vsIntDiv + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsIntDiv([NotNull] VBAParser.VsIntDivContext context); + /// + /// Exit a parse tree produced by the vsIntDiv + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsIntDiv([NotNull] VBAParser.VsIntDivContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleBody([NotNull] VBAParser.ModuleBodyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleBody([NotNull] VBAParser.ModuleBodyContext context); + + /// + /// Enter a parse tree produced by the caseCondSelection + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context); + /// + /// Exit a parse tree produced by the caseCondSelection + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWidthStmt([NotNull] VBAParser.WidthStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWidthStmt([NotNull] VBAParser.WidthStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWithStmt([NotNull] VBAParser.WithStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWithStmt([NotNull] VBAParser.WithStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgCall([NotNull] VBAParser.ArgCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgCall([NotNull] VBAParser.ArgCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNameStmt([NotNull] VBAParser.NameStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNameStmt([NotNull] VBAParser.NameStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeHint([NotNull] VBAParser.TypeHintContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeHint([NotNull] VBAParser.TypeHintContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateStmt([NotNull] VBAParser.DateStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateStmt([NotNull] VBAParser.DateStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEndOfStatement([NotNull] VBAParser.EndOfStatementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context); + + /// + /// Enter a parse tree produced by the optionCompareStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context); + /// + /// Exit a parse tree produced by the optionCompareStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRedimStmt([NotNull] VBAParser.RedimStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRedimStmt([NotNull] VBAParser.RedimStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLiteral([NotNull] VBAParser.LiteralContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLiteral([NotNull] VBAParser.LiteralContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterErrorStmt([NotNull] VBAParser.ErrorStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitErrorStmt([NotNull] VBAParser.ErrorStmtContext context); + + /// + /// Enter a parse tree produced by the vsAddressOf + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsAddressOf([NotNull] VBAParser.VsAddressOfContext context); + /// + /// Exit a parse tree produced by the vsAddressOf + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArg([NotNull] VBAParser.ArgContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArg([NotNull] VBAParser.ArgContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context); + + /// + /// Enter a parse tree produced by the vsMult + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsMult([NotNull] VBAParser.VsMultContext context); + /// + /// Exit a parse tree produced by the vsMult + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsMult([NotNull] VBAParser.VsMultContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEventStmt([NotNull] VBAParser.EventStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEventStmt([NotNull] VBAParser.EventStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLockStmt([NotNull] VBAParser.LockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLockStmt([NotNull] VBAParser.LockStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterResumeStmt([NotNull] VBAParser.ResumeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitResumeStmt([NotNull] VBAParser.ResumeStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); + + /// + /// Enter a parse tree produced by the optionExplicitStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context); + /// + /// Exit a parse tree produced by the optionExplicitStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context); + + /// + /// Enter a parse tree produced by the vsNot + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsNot([NotNull] VBAParser.VsNotContext context); + /// + /// Exit a parse tree produced by the vsNot + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsNot([NotNull] VBAParser.VsNotContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEndOfLine([NotNull] VBAParser.EndOfLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEndOfLine([NotNull] VBAParser.EndOfLineContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStartRule([NotNull] VBAParser.StartRuleContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStartRule([NotNull] VBAParser.StartRuleContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWriteStmt([NotNull] VBAParser.WriteStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWriteStmt([NotNull] VBAParser.WriteStmtContext context); + + /// + /// Enter a parse tree produced by the vsAnd + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsAnd([NotNull] VBAParser.VsAndContext context); + /// + /// Exit a parse tree produced by the vsAnd + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsAnd([NotNull] VBAParser.VsAndContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEndStmt([NotNull] VBAParser.EndStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEndStmt([NotNull] VBAParser.EndStmtContext context); + + /// + /// Enter a parse tree produced by the blockIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void EnterBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); + /// + /// Exit a parse tree produced by the blockIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void ExitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); + + /// + /// Enter a parse tree produced by the vsAmp + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsAmp([NotNull] VBAParser.VsAmpContext context); + /// + /// Exit a parse tree produced by the vsAmp + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsAmp([NotNull] VBAParser.VsAmpContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterForNextStmt([NotNull] VBAParser.ForNextStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitForNextStmt([NotNull] VBAParser.ForNextStmtContext context); + + /// + /// Enter a parse tree produced by the caseCondTo + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondTo([NotNull] VBAParser.CaseCondToContext context); + /// + /// Exit a parse tree produced by the caseCondTo + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondTo([NotNull] VBAParser.CaseCondToContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context); + + /// + /// Enter a parse tree produced by the vsImp + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsImp([NotNull] VBAParser.VsImpContext context); + /// + /// Exit a parse tree produced by the vsImp + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsImp([NotNull] VBAParser.VsImpContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterForEachStmt([NotNull] VBAParser.ForEachStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExitStmt([NotNull] VBAParser.ExitStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExitStmt([NotNull] VBAParser.ExitStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgList([NotNull] VBAParser.ArgListContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgList([NotNull] VBAParser.ArgListContext context); + + /// + /// Enter a parse tree produced by the vsStruct + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsStruct([NotNull] VBAParser.VsStructContext context); + /// + /// Exit a parse tree produced by the vsStruct + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsStruct([NotNull] VBAParser.VsStructContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSubscripts([NotNull] VBAParser.SubscriptsContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSubscripts([NotNull] VBAParser.SubscriptsContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLetterrange([NotNull] VBAParser.LetterrangeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLetterrange([NotNull] VBAParser.LetterrangeContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLetStmt([NotNull] VBAParser.LetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLetStmt([NotNull] VBAParser.LetStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSubStmt([NotNull] VBAParser.SubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSubStmt([NotNull] VBAParser.SubStmtContext context); + + /// + /// Enter a parse tree produced by the optionBaseStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context); + /// + /// Exit a parse tree produced by the optionBaseStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context); + + /// + /// Enter a parse tree produced by the vsRelational + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsRelational([NotNull] VBAParser.VsRelationalContext context); + /// + /// Exit a parse tree produced by the vsRelational + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsRelational([NotNull] VBAParser.VsRelationalContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterChdirStmt([NotNull] VBAParser.ChdirStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitChdirStmt([NotNull] VBAParser.ChdirStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLineInputStmt([NotNull] VBAParser.LineInputStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeStmt([NotNull] VBAParser.TypeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeStmt([NotNull] VBAParser.TypeStmtContext context); + + /// + /// Enter a parse tree produced by the inlineIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void EnterInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); + /// + /// Exit a parse tree produced by the inlineIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void ExitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context); + + /// + /// Enter a parse tree produced by the optionPrivateModuleStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context); + /// + /// Exit a parse tree produced by the optionPrivateModuleStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPutStmt([NotNull] VBAParser.PutStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPutStmt([NotNull] VBAParser.PutStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); + + /// + /// Enter a parse tree produced by the vsAssign + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsAssign([NotNull] VBAParser.VsAssignContext context); + /// + /// Exit a parse tree produced by the vsAssign + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsAssign([NotNull] VBAParser.VsAssignContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVariableStmt([NotNull] VBAParser.VariableStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSubscript([NotNull] VBAParser.SubscriptContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSubscript([NotNull] VBAParser.SubscriptContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVisibility([NotNull] VBAParser.VisibilityContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVisibility([NotNull] VBAParser.VisibilityContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBeepStmt([NotNull] VBAParser.BeepStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBeepStmt([NotNull] VBAParser.BeepStmtContext context); + + /// + /// Enter a parse tree produced by the vsTypeOf + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsTypeOf([NotNull] VBAParser.VsTypeOfContext context); + /// + /// Exit a parse tree produced by the vsTypeOf + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context); + + /// + /// Enter a parse tree produced by the caseCondValue + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondValue([NotNull] VBAParser.CaseCondValueContext context); + /// + /// Exit a parse tree produced by the caseCondValue + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterReturnStmt([NotNull] VBAParser.ReturnStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitReturnStmt([NotNull] VBAParser.ReturnStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context); + + /// + /// Enter a parse tree produced by the vsMod + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsMod([NotNull] VBAParser.VsModContext context); + /// + /// Exit a parse tree produced by the vsMod + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsMod([NotNull] VBAParser.VsModContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterKillStmt([NotNull] VBAParser.KillStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitKillStmt([NotNull] VBAParser.KillStmtContext context); + + /// + /// Enter a parse tree produced by the vsOr + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsOr([NotNull] VBAParser.VsOrContext context); + /// + /// Exit a parse tree produced by the vsOr + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsOr([NotNull] VBAParser.VsOrContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context); + + /// + /// Enter a parse tree produced by the caseCondElse + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); + /// + /// Exit a parse tree produced by the caseCondElse + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterGetStmt([NotNull] VBAParser.GetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitGetStmt([NotNull] VBAParser.GetStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLineLabel([NotNull] VBAParser.LineLabelContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLineLabel([NotNull] VBAParser.LineLabelContext context); + + /// + /// Enter a parse tree produced by the caseCondIs + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondIs([NotNull] VBAParser.CaseCondIsContext context); + /// + /// Exit a parse tree produced by the caseCondIs + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgsCall([NotNull] VBAParser.ArgsCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgsCall([NotNull] VBAParser.ArgsCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLoadStmt([NotNull] VBAParser.LoadStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLoadStmt([NotNull] VBAParser.LoadStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBaseType([NotNull] VBAParser.BaseTypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBaseType([NotNull] VBAParser.BaseTypeContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOpenStmt([NotNull] VBAParser.OpenStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOpenStmt([NotNull] VBAParser.OpenStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCloseStmt([NotNull] VBAParser.CloseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCloseStmt([NotNull] VBAParser.CloseStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStopStmt([NotNull] VBAParser.StopStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStopStmt([NotNull] VBAParser.StopStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSC_Case([NotNull] VBAParser.SC_CaseContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSC_Case([NotNull] VBAParser.SC_CaseContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterUnlockStmt([NotNull] VBAParser.UnlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context); + + /// + /// Enter a parse tree produced by the vsXor + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsXor([NotNull] VBAParser.VsXorContext context); + /// + /// Exit a parse tree produced by the vsXor + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsXor([NotNull] VBAParser.VsXorContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterGoToStmt([NotNull] VBAParser.GoToStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitGoToStmt([NotNull] VBAParser.GoToStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMidStmt([NotNull] VBAParser.MidStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMidStmt([NotNull] VBAParser.MidStmtContext context); + + /// + /// Enter a parse tree produced by the vsPow + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsPow([NotNull] VBAParser.VsPowContext context); + /// + /// Exit a parse tree produced by the vsPow + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsPow([NotNull] VBAParser.VsPowContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPrintStmt([NotNull] VBAParser.PrintStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPrintStmt([NotNull] VBAParser.PrintStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleConfig([NotNull] VBAParser.ModuleConfigContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleConfig([NotNull] VBAParser.ModuleConfigContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBlockStmt([NotNull] VBAParser.BlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBlockStmt([NotNull] VBAParser.BlockStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEraseStmt([NotNull] VBAParser.EraseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEraseStmt([NotNull] VBAParser.EraseStmtContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context); + + /// + /// Enter a parse tree produced by the vsLiteral + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsLiteral([NotNull] VBAParser.VsLiteralContext context); + /// + /// Exit a parse tree produced by the vsLiteral + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsLiteral([NotNull] VBAParser.VsLiteralContext context); + + /// + /// Enter a parse tree produced by the vsEqv + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsEqv([NotNull] VBAParser.VsEqvContext context); + /// + /// Exit a parse tree produced by the vsEqv + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsEqv([NotNull] VBAParser.VsEqvContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterComment([NotNull] VBAParser.CommentContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitComment([NotNull] VBAParser.CommentContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); + + /// + /// Enter a parse tree produced by the vsMid + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsMid([NotNull] VBAParser.VsMidContext context); + /// + /// Exit a parse tree produced by the vsMid + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsMid([NotNull] VBAParser.VsMidContext context); +} } // namespace Rubberduck.Parsing.Grammar diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 704d03cd9e..52fe6e794c 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -17,18969 +17,15932 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Grammar -{ - using Antlr4.Runtime; - using Antlr4.Runtime.Atn; - using Antlr4.Runtime.Misc; - using Antlr4.Runtime.Tree; - using System.Collections.Generic; - using DFA = Antlr4.Runtime.Dfa.DFA; - - [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] - [System.CLSCompliant(false)] - public partial class VBAParser : Parser - { - public const int - T__7 = 1, T__6 = 2, T__5 = 3, T__4 = 4, T__3 = 5, T__2 = 6, T__1 = 7, T__0 = 8, ACCESS = 9, - ADDRESSOF = 10, ALIAS = 11, AND = 12, ATTRIBUTE = 13, APPACTIVATE = 14, APPEND = 15, - AS = 16, BEGIN = 17, BEEP = 18, BINARY = 19, BOOLEAN = 20, BYVAL = 21, BYREF = 22, BYTE = 23, - CALL = 24, CASE = 25, CHDIR = 26, CHDRIVE = 27, CLASS = 28, CLOSE = 29, COLLECTION = 30, - CONST = 31, DATABASE = 32, DATE = 33, DECLARE = 34, DEFBOOL = 35, DEFBYTE = 36, DEFDATE = 37, - DEFDBL = 38, DEFDEC = 39, DEFCUR = 40, DEFINT = 41, DEFLNG = 42, DEFOBJ = 43, DEFSNG = 44, - DEFSTR = 45, DEFVAR = 46, DELETESETTING = 47, DIM = 48, DO = 49, DOUBLE = 50, EACH = 51, - ELSE = 52, ELSEIF = 53, END_ENUM = 54, END_FUNCTION = 55, END_IF = 56, END_PROPERTY = 57, - END_SELECT = 58, END_SUB = 59, END_TYPE = 60, END_WITH = 61, END = 62, ENUM = 63, - EQV = 64, ERASE = 65, ERROR = 66, EVENT = 67, EXIT_DO = 68, EXIT_FOR = 69, EXIT_FUNCTION = 70, - EXIT_PROPERTY = 71, EXIT_SUB = 72, FALSE = 73, FILECOPY = 74, FRIEND = 75, FOR = 76, - FUNCTION = 77, GET = 78, GLOBAL = 79, GOSUB = 80, GOTO = 81, IF = 82, IMP = 83, IMPLEMENTS = 84, - IN = 85, INPUT = 86, IS = 87, INTEGER = 88, KILL = 89, LOAD = 90, LOCK = 91, LONG = 92, - LOOP = 93, LEN = 94, LET = 95, LIB = 96, LIKE = 97, LINE_INPUT = 98, LOCK_READ = 99, - LOCK_WRITE = 100, LOCK_READ_WRITE = 101, LSET = 102, MACRO_CONST = 103, MACRO_IF = 104, - MACRO_ELSEIF = 105, MACRO_ELSE = 106, MACRO_END_IF = 107, ME = 108, MID = 109, MKDIR = 110, - MOD = 111, NAME = 112, NEXT = 113, NEW = 114, NOT = 115, NOTHING = 116, NULL = 117, - ON = 118, ON_ERROR = 119, ON_LOCAL_ERROR = 120, OPEN = 121, OPTIONAL = 122, OPTION_BASE = 123, - OPTION_EXPLICIT = 124, OPTION_COMPARE = 125, OPTION_PRIVATE_MODULE = 126, OR = 127, - OUTPUT = 128, PARAMARRAY = 129, PRESERVE = 130, PRINT = 131, PRIVATE = 132, PROPERTY_GET = 133, - PROPERTY_LET = 134, PROPERTY_SET = 135, PTRSAFE = 136, PUBLIC = 137, PUT = 138, - RANDOM = 139, RANDOMIZE = 140, RAISEEVENT = 141, READ = 142, READ_WRITE = 143, REDIM = 144, - REM = 145, RESET = 146, RESUME = 147, RETURN = 148, RMDIR = 149, RSET = 150, SAVEPICTURE = 151, - SAVESETTING = 152, SEEK = 153, SELECT = 154, SENDKEYS = 155, SET = 156, SETATTR = 157, - SHARED = 158, SINGLE = 159, SPC = 160, STATIC = 161, STEP = 162, STOP = 163, STRING = 164, - SUB = 165, TAB = 166, TEXT = 167, THEN = 168, TIME = 169, TO = 170, TRUE = 171, TYPE = 172, - TYPEOF = 173, UNLOAD = 174, UNLOCK = 175, UNTIL = 176, VARIANT = 177, VERSION = 178, - WEND = 179, WHILE = 180, WIDTH = 181, WITH = 182, WITHEVENTS = 183, WRITE = 184, XOR = 185, - AMPERSAND = 186, ASSIGN = 187, DIV = 188, INTDIV = 189, EQ = 190, GEQ = 191, GT = 192, - LEQ = 193, LPAREN = 194, LT = 195, MINUS = 196, MULT = 197, NEQ = 198, PLUS = 199, POW = 200, - RPAREN = 201, L_SQUARE_BRACKET = 202, R_SQUARE_BRACKET = 203, STRINGLITERAL = 204, - OCTLITERAL = 205, HEXLITERAL = 206, SHORTLITERAL = 207, INTEGERLITERAL = 208, - DOUBLELITERAL = 209, DATELITERAL = 210, JANUARY = 211, FEBRUARY = 212, MARCH = 213, - APRIL = 214, MAY = 215, JUNE = 216, JULY = 217, AUGUST = 218, SEPTEMBER = 219, OCTOBER = 220, - NOVEMBER = 221, DECEMBER = 222, JAN = 223, FEB = 224, MAR = 225, APR = 226, JUN = 227, - JUL = 228, AUG = 229, SEP = 230, OCT = 231, NOV = 232, DEC = 233, LINE_CONTINUATION = 234, - NEWLINE = 235, REMCOMMENT = 236, COMMENT = 237, SINGLEQUOTE = 238, COLON = 239, - UNDERSCORE = 240, WS = 241, IDENTIFIER = 242; - public static readonly string[] tokenNames = { - "", "'@'", "'!'", "'#'", "'$'", "'%'", "';'", "','", "'.'", "ACCESS", - "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", - "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", "CALL", - "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "COLLECTION", "CONST", "DATABASE", - "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", - "DEFCUR", "DEFINT", "DEFLNG", "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", - "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", - "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", - "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", - "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", - "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", - "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", - "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_CONST", "MACRO_IF", "MACRO_ELSEIF", - "MACRO_ELSE", "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", - "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", - "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", - "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", - "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", - "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", - "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", - "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", - "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", - "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", - "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "'&'", - "':='", "'/'", "'\\'", "'='", "'>='", "'>'", "'<='", "'('", "'<'", "'-'", - "'*'", "'<>'", "'+'", "'^'", "')'", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", - "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", - "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", - "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", "MAR", "APR", - "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "LINE_CONTINUATION", - "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "':'", "'_'", "WS", "IDENTIFIER" - }; - public const int - RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, - RULE_moduleConfigElement = 4, RULE_moduleAttributes = 5, RULE_moduleDeclarations = 6, - RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_macroStmt = 9, - RULE_moduleBody = 10, RULE_moduleBodyElement = 11, RULE_attributeStmt = 12, - RULE_block = 13, RULE_blockStmt = 14, RULE_appactivateStmt = 15, RULE_beepStmt = 16, - RULE_chdirStmt = 17, RULE_chdriveStmt = 18, RULE_closeStmt = 19, RULE_constStmt = 20, - RULE_constSubStmt = 21, RULE_dateStmt = 22, RULE_declareStmt = 23, RULE_deftypeStmt = 24, - RULE_deleteSettingStmt = 25, RULE_doLoopStmt = 26, RULE_endStmt = 27, - RULE_enumerationStmt = 28, RULE_enumerationStmt_Constant = 29, RULE_eraseStmt = 30, - RULE_errorStmt = 31, RULE_eventStmt = 32, RULE_exitStmt = 33, RULE_filecopyStmt = 34, - RULE_forEachStmt = 35, RULE_forNextStmt = 36, RULE_functionStmt = 37, - RULE_getStmt = 38, RULE_goSubStmt = 39, RULE_goToStmt = 40, RULE_ifThenElseStmt = 41, - RULE_ifBlockStmt = 42, RULE_ifConditionStmt = 43, RULE_ifElseIfBlockStmt = 44, - RULE_ifElseBlockStmt = 45, RULE_implementsStmt = 46, RULE_inputStmt = 47, - RULE_killStmt = 48, RULE_letStmt = 49, RULE_lineInputStmt = 50, RULE_loadStmt = 51, - RULE_lockStmt = 52, RULE_lsetStmt = 53, RULE_macroConstStmt = 54, RULE_macroIfThenElseStmt = 55, - RULE_macroIfBlockStmt = 56, RULE_macroElseIfBlockStmt = 57, RULE_macroElseBlockStmt = 58, - RULE_midStmt = 59, RULE_mkdirStmt = 60, RULE_nameStmt = 61, RULE_onErrorStmt = 62, - RULE_onGoToStmt = 63, RULE_onGoSubStmt = 64, RULE_openStmt = 65, RULE_outputList = 66, - RULE_outputList_Expression = 67, RULE_printStmt = 68, RULE_propertyGetStmt = 69, - RULE_propertySetStmt = 70, RULE_propertyLetStmt = 71, RULE_putStmt = 72, - RULE_raiseEventStmt = 73, RULE_randomizeStmt = 74, RULE_redimStmt = 75, - RULE_redimSubStmt = 76, RULE_resetStmt = 77, RULE_resumeStmt = 78, RULE_returnStmt = 79, - RULE_rmdirStmt = 80, RULE_rsetStmt = 81, RULE_savepictureStmt = 82, RULE_saveSettingStmt = 83, - RULE_seekStmt = 84, RULE_selectCaseStmt = 85, RULE_sC_Selection = 86, - RULE_sC_Case = 87, RULE_sC_Cond = 88, RULE_sendkeysStmt = 89, RULE_setattrStmt = 90, - RULE_setStmt = 91, RULE_stopStmt = 92, RULE_subStmt = 93, RULE_timeStmt = 94, - RULE_typeStmt = 95, RULE_typeStmt_Element = 96, RULE_typeOfStmt = 97, - RULE_unloadStmt = 98, RULE_unlockStmt = 99, RULE_valueStmt = 100, RULE_variableStmt = 101, - RULE_variableListStmt = 102, RULE_variableSubStmt = 103, RULE_whileWendStmt = 104, - RULE_widthStmt = 105, RULE_withStmt = 106, RULE_writeStmt = 107, RULE_fileNumber = 108, - RULE_explicitCallStmt = 109, RULE_eCS_ProcedureCall = 110, RULE_eCS_MemberProcedureCall = 111, - RULE_implicitCallStmt_InBlock = 112, RULE_iCS_B_MemberProcedureCall = 113, - RULE_iCS_B_ProcedureCall = 114, RULE_implicitCallStmt_InStmt = 115, RULE_iCS_S_VariableOrProcedureCall = 116, - RULE_iCS_S_ProcedureOrArrayCall = 117, RULE_iCS_S_MembersCall = 118, RULE_iCS_S_MemberCall = 119, - RULE_iCS_S_DictionaryCall = 120, RULE_argsCall = 121, RULE_argCall = 122, - RULE_dictionaryCallStmt = 123, RULE_argList = 124, RULE_arg = 125, RULE_argDefaultValue = 126, - RULE_subscripts = 127, RULE_subscript = 128, RULE_ambiguousIdentifier = 129, - RULE_asTypeClause = 130, RULE_baseType = 131, RULE_certainIdentifier = 132, - RULE_comparisonOperator = 133, RULE_complexType = 134, RULE_fieldLength = 135, - RULE_letterrange = 136, RULE_lineLabel = 137, RULE_literal = 138, RULE_type = 139, - RULE_typeHint = 140, RULE_visibility = 141, RULE_ambiguousKeyword = 142, - RULE_remComment = 143, RULE_comment = 144, RULE_endOfLine = 145, RULE_endOfStatement = 146; - public static readonly string[] ruleNames = { - "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", - "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", - "macroStmt", "moduleBody", "moduleBodyElement", "attributeStmt", "block", - "blockStmt", "appactivateStmt", "beepStmt", "chdirStmt", "chdriveStmt", - "closeStmt", "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", - "deleteSettingStmt", "doLoopStmt", "endStmt", "enumerationStmt", "enumerationStmt_Constant", - "eraseStmt", "errorStmt", "eventStmt", "exitStmt", "filecopyStmt", "forEachStmt", - "forNextStmt", "functionStmt", "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", - "ifBlockStmt", "ifConditionStmt", "ifElseIfBlockStmt", "ifElseBlockStmt", - "implementsStmt", "inputStmt", "killStmt", "letStmt", "lineInputStmt", - "loadStmt", "lockStmt", "lsetStmt", "macroConstStmt", "macroIfThenElseStmt", - "macroIfBlockStmt", "macroElseIfBlockStmt", "macroElseBlockStmt", "midStmt", - "mkdirStmt", "nameStmt", "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", - "outputList", "outputList_Expression", "printStmt", "propertyGetStmt", - "propertySetStmt", "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", - "redimStmt", "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", - "rmdirStmt", "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", - "selectCaseStmt", "sC_Selection", "sC_Case", "sC_Cond", "sendkeysStmt", - "setattrStmt", "setStmt", "stopStmt", "subStmt", "timeStmt", "typeStmt", - "typeStmt_Element", "typeOfStmt", "unloadStmt", "unlockStmt", "valueStmt", - "variableStmt", "variableListStmt", "variableSubStmt", "whileWendStmt", - "widthStmt", "withStmt", "writeStmt", "fileNumber", "explicitCallStmt", - "eCS_ProcedureCall", "eCS_MemberProcedureCall", "implicitCallStmt_InBlock", - "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", - "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", "iCS_S_MembersCall", - "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", "argCall", "dictionaryCallStmt", - "argList", "arg", "argDefaultValue", "subscripts", "subscript", "ambiguousIdentifier", - "asTypeClause", "baseType", "certainIdentifier", "comparisonOperator", - "complexType", "fieldLength", "letterrange", "lineLabel", "literal", "type", - "typeHint", "visibility", "ambiguousKeyword", "remComment", "comment", - "endOfLine", "endOfStatement" - }; - - public override string GrammarFileName { get { return "VBA.g4"; } } - - public override string[] TokenNames { get { return tokenNames; } } - - public override string[] RuleNames { get { return ruleNames; } } - - public override string SerializedAtn { get { return _serializedATN; } } - - public VBAParser(ITokenStream input) - : base(input) - { - _interp = new ParserATNSimulator(this, _ATN); - } - public partial class StartRuleContext : ParserRuleContext - { - public ITerminalNode Eof() { return GetToken(VBAParser.Eof, 0); } - public ModuleContext module() - { - return GetRuleContext(0); - } - public StartRuleContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_startRule; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterStartRule(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitStartRule(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitStartRule(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public StartRuleContext startRule() - { - StartRuleContext _localctx = new StartRuleContext(_ctx, State); - EnterRule(_localctx, 0, RULE_startRule); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 294; module(); - State = 295; Match(Eof); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleContext : ParserRuleContext - { - public EndOfStatementContext endOfStatement(int i) - { - return GetRuleContext(i); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ModuleHeaderContext moduleHeader() - { - return GetRuleContext(0); - } - public ModuleConfigContext moduleConfig() - { - return GetRuleContext(0); - } - public ModuleAttributesContext moduleAttributes() - { - return GetRuleContext(0); - } - public ModuleBodyContext moduleBody() - { - return GetRuleContext(0); - } - public ModuleDeclarationsContext moduleDeclarations() - { - return GetRuleContext(0); - } - public IReadOnlyList endOfStatement() - { - return GetRuleContexts(); - } - public ModuleContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_module; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModule(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModule(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModule(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleContext module() - { - ModuleContext _localctx = new ModuleContext(_ctx, State); - EnterRule(_localctx, 2, RULE_module); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 298; - switch (Interpreter.AdaptivePredict(_input, 0, _ctx)) - { - case 1: - { - State = 297; Match(WS); - } - break; - } - State = 300; endOfStatement(); - State = 304; - switch (Interpreter.AdaptivePredict(_input, 1, _ctx)) - { - case 1: - { - State = 301; moduleHeader(); - State = 302; endOfStatement(); - } - break; - } - State = 307; - switch (Interpreter.AdaptivePredict(_input, 2, _ctx)) - { - case 1: - { - State = 306; moduleConfig(); - } - break; - } - State = 309; endOfStatement(); - State = 311; - switch (Interpreter.AdaptivePredict(_input, 3, _ctx)) - { - case 1: - { - State = 310; moduleAttributes(); - } - break; - } - State = 313; endOfStatement(); - State = 315; - switch (Interpreter.AdaptivePredict(_input, 4, _ctx)) - { - case 1: - { - State = 314; moduleDeclarations(); - } - break; - } - State = 317; endOfStatement(); - State = 319; - switch (Interpreter.AdaptivePredict(_input, 5, _ctx)) - { - case 1: - { - State = 318; moduleBody(); - } - break; - } - State = 321; endOfStatement(); - State = 323; - _la = _input.La(1); - if (_la == WS) - { - { - State = 322; Match(WS); - } - } - - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleHeaderContext : ParserRuleContext - { - public ITerminalNode VERSION() { return GetToken(VBAParser.VERSION, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode DOUBLELITERAL() { return GetToken(VBAParser.DOUBLELITERAL, 0); } - public ITerminalNode CLASS() { return GetToken(VBAParser.CLASS, 0); } - public ModuleHeaderContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleHeader; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleHeader(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleHeader(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleHeader(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleHeaderContext moduleHeader() - { - ModuleHeaderContext _localctx = new ModuleHeaderContext(_ctx, State); - EnterRule(_localctx, 4, RULE_moduleHeader); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 325; Match(VERSION); - State = 326; Match(WS); - State = 327; Match(DOUBLELITERAL); - State = 328; Match(WS); - State = 329; Match(CLASS); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleConfigContext : ParserRuleContext - { - public IReadOnlyList moduleConfigElement() - { - return GetRuleContexts(); - } - public ITerminalNode BEGIN() { return GetToken(VBAParser.BEGIN, 0); } - public ITerminalNode END() { return GetToken(VBAParser.END, 0); } - public ModuleConfigElementContext moduleConfigElement(int i) - { - return GetRuleContext(i); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public ModuleConfigContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleConfig; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleConfig(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleConfig(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleConfig(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleConfigContext moduleConfig() - { - ModuleConfigContext _localctx = new ModuleConfigContext(_ctx, State); - EnterRule(_localctx, 6, RULE_moduleConfig); - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 331; Match(BEGIN); - State = 332; endOfStatement(); - State = 334; - _errHandler.Sync(this); - _alt = 1; - do - { - switch (_alt) - { - case 1: - { - { - State = 333; moduleConfigElement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 336; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 7, _ctx); - } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); - State = 338; Match(END); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleConfigElementContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public LiteralContext literal() - { - return GetRuleContext(0); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public ModuleConfigElementContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleConfigElement; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleConfigElement(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleConfigElement(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleConfigElement(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleConfigElementContext moduleConfigElement() - { - ModuleConfigElementContext _localctx = new ModuleConfigElementContext(_ctx, State); - EnterRule(_localctx, 8, RULE_moduleConfigElement); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 340; ambiguousIdentifier(); - State = 342; - _la = _input.La(1); - if (_la == WS) - { - { - State = 341; Match(WS); - } - } - - State = 344; Match(EQ); - State = 346; - _la = _input.La(1); - if (_la == WS) - { - { - State = 345; Match(WS); - } - } - - State = 348; literal(); - State = 349; endOfStatement(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleAttributesContext : ParserRuleContext - { - public EndOfStatementContext endOfStatement(int i) - { - return GetRuleContext(i); - } - public AttributeStmtContext attributeStmt(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList endOfStatement() - { - return GetRuleContexts(); - } - public IReadOnlyList attributeStmt() - { - return GetRuleContexts(); - } - public ModuleAttributesContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleAttributes; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleAttributes(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleAttributes(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleAttributes(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleAttributesContext moduleAttributes() - { - ModuleAttributesContext _localctx = new ModuleAttributesContext(_ctx, State); - EnterRule(_localctx, 10, RULE_moduleAttributes); - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 354; - _errHandler.Sync(this); - _alt = 1; - do - { - switch (_alt) - { - case 1: - { - { - State = 351; attributeStmt(); - State = 352; endOfStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 356; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 10, _ctx); - } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleDeclarationsContext : ParserRuleContext - { - public EndOfStatementContext endOfStatement(int i) - { - return GetRuleContext(i); - } - public ModuleDeclarationsElementContext moduleDeclarationsElement(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList moduleDeclarationsElement() - { - return GetRuleContexts(); - } - public IReadOnlyList endOfStatement() - { - return GetRuleContexts(); - } - public ModuleDeclarationsContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleDeclarations; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleDeclarations(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleDeclarations(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleDeclarations(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleDeclarationsContext moduleDeclarations() - { - ModuleDeclarationsContext _localctx = new ModuleDeclarationsContext(_ctx, State); - EnterRule(_localctx, 12, RULE_moduleDeclarations); - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 358; moduleDeclarationsElement(); - State = 364; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 11, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 359; endOfStatement(); - State = 360; moduleDeclarationsElement(); - } - } - } - State = 366; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 11, _ctx); - } - State = 367; endOfStatement(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleOptionContext : ParserRuleContext - { - public ModuleOptionContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleOption; } } - - public ModuleOptionContext() { } - public virtual void CopyFrom(ModuleOptionContext context) - { - base.CopyFrom(context); - } - } - public partial class OptionExplicitStmtContext : ModuleOptionContext - { - public ITerminalNode OPTION_EXPLICIT() { return GetToken(VBAParser.OPTION_EXPLICIT, 0); } - public OptionExplicitStmtContext(ModuleOptionContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOptionExplicitStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOptionExplicitStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOptionExplicitStmt(this); - else return visitor.VisitChildren(this); - } - } - public partial class OptionBaseStmtContext : ModuleOptionContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode OPTION_BASE() { return GetToken(VBAParser.OPTION_BASE, 0); } - public ITerminalNode SHORTLITERAL() { return GetToken(VBAParser.SHORTLITERAL, 0); } - public OptionBaseStmtContext(ModuleOptionContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOptionBaseStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOptionBaseStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOptionBaseStmt(this); - else return visitor.VisitChildren(this); - } - } - public partial class OptionPrivateModuleStmtContext : ModuleOptionContext - { - public ITerminalNode OPTION_PRIVATE_MODULE() { return GetToken(VBAParser.OPTION_PRIVATE_MODULE, 0); } - public OptionPrivateModuleStmtContext(ModuleOptionContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOptionPrivateModuleStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOptionPrivateModuleStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOptionPrivateModuleStmt(this); - else return visitor.VisitChildren(this); - } - } - public partial class OptionCompareStmtContext : ModuleOptionContext - { - public ITerminalNode TEXT() { return GetToken(VBAParser.TEXT, 0); } - public ITerminalNode OPTION_COMPARE() { return GetToken(VBAParser.OPTION_COMPARE, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode DATABASE() { return GetToken(VBAParser.DATABASE, 0); } - public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } - public OptionCompareStmtContext(ModuleOptionContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOptionCompareStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOptionCompareStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOptionCompareStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleOptionContext moduleOption() - { - ModuleOptionContext _localctx = new ModuleOptionContext(_ctx, State); - EnterRule(_localctx, 14, RULE_moduleOption); - int _la; - try - { - State = 377; - switch (_input.La(1)) - { - case OPTION_BASE: - _localctx = new OptionBaseStmtContext(_localctx); - EnterOuterAlt(_localctx, 1); - { - State = 369; Match(OPTION_BASE); - State = 370; Match(WS); - State = 371; Match(SHORTLITERAL); - } - break; - case OPTION_COMPARE: - _localctx = new OptionCompareStmtContext(_localctx); - EnterOuterAlt(_localctx, 2); - { - State = 372; Match(OPTION_COMPARE); - State = 373; Match(WS); - State = 374; - _la = _input.La(1); - if (!(_la == BINARY || _la == DATABASE || _la == TEXT)) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - break; - case OPTION_EXPLICIT: - _localctx = new OptionExplicitStmtContext(_localctx); - EnterOuterAlt(_localctx, 3); - { - State = 375; Match(OPTION_EXPLICIT); - } - break; - case OPTION_PRIVATE_MODULE: - _localctx = new OptionPrivateModuleStmtContext(_localctx); - EnterOuterAlt(_localctx, 4); - { - State = 376; Match(OPTION_PRIVATE_MODULE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleDeclarationsElementContext : ParserRuleContext - { - public CommentContext comment() - { - return GetRuleContext(0); - } - public EnumerationStmtContext enumerationStmt() - { - return GetRuleContext(0); - } - public ConstStmtContext constStmt() - { - return GetRuleContext(0); - } - public TypeStmtContext typeStmt() - { - return GetRuleContext(0); - } - public EventStmtContext eventStmt() - { - return GetRuleContext(0); - } - public VariableStmtContext variableStmt() - { - return GetRuleContext(0); - } - public ImplementsStmtContext implementsStmt() - { - return GetRuleContext(0); - } - public ModuleOptionContext moduleOption() - { - return GetRuleContext(0); - } - public DeclareStmtContext declareStmt() - { - return GetRuleContext(0); - } - public MacroStmtContext macroStmt() - { - return GetRuleContext(0); - } - public ModuleDeclarationsElementContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleDeclarationsElement; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleDeclarationsElement(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleDeclarationsElement(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleDeclarationsElement(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleDeclarationsElementContext moduleDeclarationsElement() - { - ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); - EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); - try - { - State = 389; - switch (Interpreter.AdaptivePredict(_input, 13, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 379; comment(); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 380; declareStmt(); - } - break; - - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 381; enumerationStmt(); - } - break; - - case 4: - EnterOuterAlt(_localctx, 4); - { - State = 382; eventStmt(); - } - break; - - case 5: - EnterOuterAlt(_localctx, 5); - { - State = 383; constStmt(); - } - break; - - case 6: - EnterOuterAlt(_localctx, 6); - { - State = 384; implementsStmt(); - } - break; - - case 7: - EnterOuterAlt(_localctx, 7); - { - State = 385; variableStmt(); - } - break; - - case 8: - EnterOuterAlt(_localctx, 8); - { - State = 386; moduleOption(); - } - break; - - case 9: - EnterOuterAlt(_localctx, 9); - { - State = 387; typeStmt(); - } - break; - - case 10: - EnterOuterAlt(_localctx, 10); - { - State = 388; macroStmt(); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MacroStmtContext : ParserRuleContext - { - public MacroConstStmtContext macroConstStmt() - { - return GetRuleContext(0); - } - public MacroIfThenElseStmtContext macroIfThenElseStmt() - { - return GetRuleContext(0); - } - public MacroStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroStmtContext macroStmt() - { - MacroStmtContext _localctx = new MacroStmtContext(_ctx, State); - EnterRule(_localctx, 18, RULE_macroStmt); - try - { - State = 393; - switch (_input.La(1)) - { - case MACRO_CONST: - EnterOuterAlt(_localctx, 1); - { - State = 391; macroConstStmt(); - } - break; - case MACRO_IF: - EnterOuterAlt(_localctx, 2); - { - State = 392; macroIfThenElseStmt(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleBodyContext : ParserRuleContext - { - public EndOfStatementContext endOfStatement(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList moduleBodyElement() - { - return GetRuleContexts(); - } - public IReadOnlyList endOfStatement() - { - return GetRuleContexts(); - } - public ModuleBodyElementContext moduleBodyElement(int i) - { - return GetRuleContext(i); - } - public ModuleBodyContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleBody; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleBody(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleBody(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleBody(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleBodyContext moduleBody() - { - ModuleBodyContext _localctx = new ModuleBodyContext(_ctx, State); - EnterRule(_localctx, 20, RULE_moduleBody); - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 395; moduleBodyElement(); - State = 401; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 15, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 396; endOfStatement(); - State = 397; moduleBodyElement(); - } - } - } - State = 403; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 15, _ctx); - } - State = 404; endOfStatement(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ModuleBodyElementContext : ParserRuleContext - { - public PropertySetStmtContext propertySetStmt() - { - return GetRuleContext(0); - } - public PropertyLetStmtContext propertyLetStmt() - { - return GetRuleContext(0); - } - public PropertyGetStmtContext propertyGetStmt() - { - return GetRuleContext(0); - } - public MacroStmtContext macroStmt() - { - return GetRuleContext(0); - } - public SubStmtContext subStmt() - { - return GetRuleContext(0); - } - public FunctionStmtContext functionStmt() - { - return GetRuleContext(0); - } - public ModuleBodyElementContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_moduleBodyElement; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterModuleBodyElement(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitModuleBodyElement(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitModuleBodyElement(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ModuleBodyElementContext moduleBodyElement() - { - ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); - EnterRule(_localctx, 22, RULE_moduleBodyElement); - try - { - State = 412; - switch (Interpreter.AdaptivePredict(_input, 16, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 406; functionStmt(); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 407; propertyGetStmt(); - } - break; - - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 408; propertySetStmt(); - } - break; - - case 4: - EnterOuterAlt(_localctx, 4); - { - State = 409; propertyLetStmt(); - } - break; - - case 5: - EnterOuterAlt(_localctx, 5); - { - State = 410; subStmt(); - } - break; - - case 6: - EnterOuterAlt(_localctx, 6); - { - State = 411; macroStmt(); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class AttributeStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public LiteralContext literal(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList literal() - { - return GetRuleContexts(); - } - public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public AttributeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_attributeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterAttributeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitAttributeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitAttributeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public AttributeStmtContext attributeStmt() - { - AttributeStmtContext _localctx = new AttributeStmtContext(_ctx, State); - EnterRule(_localctx, 24, RULE_attributeStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 414; Match(ATTRIBUTE); - State = 415; Match(WS); - State = 416; implicitCallStmt_InStmt(); - State = 418; - _la = _input.La(1); - if (_la == WS) - { - { - State = 417; Match(WS); - } - } - - State = 420; Match(EQ); - State = 422; - _la = _input.La(1); - if (_la == WS) - { - { - State = 421; Match(WS); - } - } - - State = 424; literal(); - State = 435; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 21, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 426; - _la = _input.La(1); - if (_la == WS) - { - { - State = 425; Match(WS); - } - } - - State = 428; Match(T__1); - State = 430; - _la = _input.La(1); - if (_la == WS) - { - { - State = 429; Match(WS); - } - } - - State = 432; literal(); - } - } - } - State = 437; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 21, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class BlockContext : ParserRuleContext - { - public EndOfStatementContext endOfStatement(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList blockStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList endOfStatement() - { - return GetRuleContexts(); - } - public BlockStmtContext blockStmt(int i) - { - return GetRuleContext(i); - } - public BlockContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_block; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterBlock(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitBlock(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitBlock(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public BlockContext block() - { - BlockContext _localctx = new BlockContext(_ctx, State); - EnterRule(_localctx, 26, RULE_block); - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 438; blockStmt(); - State = 444; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 22, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 439; endOfStatement(); - State = 440; blockStmt(); - } - } - } - State = 446; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 22, _ctx); - } - State = 447; endOfStatement(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class BlockStmtContext : ParserRuleContext - { - public GoToStmtContext goToStmt() - { - return GetRuleContext(0); - } - public LoadStmtContext loadStmt() - { - return GetRuleContext(0); - } - public ChdriveStmtContext chdriveStmt() - { - return GetRuleContext(0); - } - public EndStmtContext endStmt() - { - return GetRuleContext(0); - } - public LetStmtContext letStmt() - { - return GetRuleContext(0); - } - public FilecopyStmtContext filecopyStmt() - { - return GetRuleContext(0); - } - public RmdirStmtContext rmdirStmt() - { - return GetRuleContext(0); - } - public RsetStmtContext rsetStmt() - { - return GetRuleContext(0); - } - public EraseStmtContext eraseStmt() - { - return GetRuleContext(0); - } - public ChdirStmtContext chdirStmt() - { - return GetRuleContext(0); - } - public WriteStmtContext writeStmt() - { - return GetRuleContext(0); - } - public ExplicitCallStmtContext explicitCallStmt() - { - return GetRuleContext(0); - } - public RandomizeStmtContext randomizeStmt() - { - return GetRuleContext(0); - } - public ConstStmtContext constStmt() - { - return GetRuleContext(0); - } - public SelectCaseStmtContext selectCaseStmt() - { - return GetRuleContext(0); - } - public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() - { - return GetRuleContext(0); - } - public MkdirStmtContext mkdirStmt() - { - return GetRuleContext(0); - } - public RaiseEventStmtContext raiseEventStmt() - { - return GetRuleContext(0); - } - public SavepictureStmtContext savepictureStmt() - { - return GetRuleContext(0); - } - public ExitStmtContext exitStmt() - { - return GetRuleContext(0); - } - public IfThenElseStmtContext ifThenElseStmt() - { - return GetRuleContext(0); - } - public OpenStmtContext openStmt() - { - return GetRuleContext(0); - } - public SetattrStmtContext setattrStmt() - { - return GetRuleContext(0); - } - public SaveSettingStmtContext saveSettingStmt() - { - return GetRuleContext(0); - } - public AttributeStmtContext attributeStmt() - { - return GetRuleContext(0); - } - public ForEachStmtContext forEachStmt() - { - return GetRuleContext(0); - } - public ForNextStmtContext forNextStmt() - { - return GetRuleContext(0); - } - public RedimStmtContext redimStmt() - { - return GetRuleContext(0); - } - public TimeStmtContext timeStmt() - { - return GetRuleContext(0); - } - public OnGoSubStmtContext onGoSubStmt() - { - return GetRuleContext(0); - } - public SendkeysStmtContext sendkeysStmt() - { - return GetRuleContext(0); - } - public DeleteSettingStmtContext deleteSettingStmt() - { - return GetRuleContext(0); - } - public ErrorStmtContext errorStmt() - { - return GetRuleContext(0); - } - public SetStmtContext setStmt() - { - return GetRuleContext(0); - } - public WithStmtContext withStmt() - { - return GetRuleContext(0); - } - public OnErrorStmtContext onErrorStmt() - { - return GetRuleContext(0); - } - public WhileWendStmtContext whileWendStmt() - { - return GetRuleContext(0); - } - public UnlockStmtContext unlockStmt() - { - return GetRuleContext(0); - } - public StopStmtContext stopStmt() - { - return GetRuleContext(0); - } - public NameStmtContext nameStmt() - { - return GetRuleContext(0); - } - public LineInputStmtContext lineInputStmt() - { - return GetRuleContext(0); - } - public DateStmtContext dateStmt() - { - return GetRuleContext(0); - } - public InputStmtContext inputStmt() - { - return GetRuleContext(0); - } - public ResetStmtContext resetStmt() - { - return GetRuleContext(0); - } - public ImplementsStmtContext implementsStmt() - { - return GetRuleContext(0); - } - public CloseStmtContext closeStmt() - { - return GetRuleContext(0); - } - public GoSubStmtContext goSubStmt() - { - return GetRuleContext(0); - } - public KillStmtContext killStmt() - { - return GetRuleContext(0); - } - public DeftypeStmtContext deftypeStmt() - { - return GetRuleContext(0); - } - public ReturnStmtContext returnStmt() - { - return GetRuleContext(0); - } - public LockStmtContext lockStmt() - { - return GetRuleContext(0); - } - public DoLoopStmtContext doLoopStmt() - { - return GetRuleContext(0); - } - public LineLabelContext lineLabel() - { - return GetRuleContext(0); - } - public BeepStmtContext beepStmt() - { - return GetRuleContext(0); - } - public AppactivateStmtContext appactivateStmt() - { - return GetRuleContext(0); - } - public LsetStmtContext lsetStmt() - { - return GetRuleContext(0); - } - public MidStmtContext midStmt() - { - return GetRuleContext(0); - } - public GetStmtContext getStmt() - { - return GetRuleContext(0); - } - public OnGoToStmtContext onGoToStmt() - { - return GetRuleContext(0); - } - public WidthStmtContext widthStmt() - { - return GetRuleContext(0); - } - public PrintStmtContext printStmt() - { - return GetRuleContext(0); - } - public MacroStmtContext macroStmt() - { - return GetRuleContext(0); - } - public SeekStmtContext seekStmt() - { - return GetRuleContext(0); - } - public ResumeStmtContext resumeStmt() - { - return GetRuleContext(0); - } - public VariableStmtContext variableStmt() - { - return GetRuleContext(0); - } - public PutStmtContext putStmt() - { - return GetRuleContext(0); - } - public UnloadStmtContext unloadStmt() - { - return GetRuleContext(0); - } - public BlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_blockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterBlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitBlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitBlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public BlockStmtContext blockStmt() - { - BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); - EnterRule(_localctx, 28, RULE_blockStmt); - try - { - State = 516; - switch (Interpreter.AdaptivePredict(_input, 23, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 449; lineLabel(); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 450; appactivateStmt(); - } - break; - - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 451; attributeStmt(); - } - break; - - case 4: - EnterOuterAlt(_localctx, 4); - { - State = 452; beepStmt(); - } - break; - - case 5: - EnterOuterAlt(_localctx, 5); - { - State = 453; chdirStmt(); - } - break; - - case 6: - EnterOuterAlt(_localctx, 6); - { - State = 454; chdriveStmt(); - } - break; - - case 7: - EnterOuterAlt(_localctx, 7); - { - State = 455; closeStmt(); - } - break; - - case 8: - EnterOuterAlt(_localctx, 8); - { - State = 456; constStmt(); - } - break; - - case 9: - EnterOuterAlt(_localctx, 9); - { - State = 457; dateStmt(); - } - break; - - case 10: - EnterOuterAlt(_localctx, 10); - { - State = 458; deleteSettingStmt(); - } - break; - - case 11: - EnterOuterAlt(_localctx, 11); - { - State = 459; deftypeStmt(); - } - break; - - case 12: - EnterOuterAlt(_localctx, 12); - { - State = 460; doLoopStmt(); - } - break; - - case 13: - EnterOuterAlt(_localctx, 13); - { - State = 461; endStmt(); - } - break; - - case 14: - EnterOuterAlt(_localctx, 14); - { - State = 462; eraseStmt(); - } - break; - - case 15: - EnterOuterAlt(_localctx, 15); - { - State = 463; errorStmt(); - } - break; - - case 16: - EnterOuterAlt(_localctx, 16); - { - State = 464; exitStmt(); - } - break; - - case 17: - EnterOuterAlt(_localctx, 17); - { - State = 465; explicitCallStmt(); - } - break; - - case 18: - EnterOuterAlt(_localctx, 18); - { - State = 466; filecopyStmt(); - } - break; - - case 19: - EnterOuterAlt(_localctx, 19); - { - State = 467; forEachStmt(); - } - break; - - case 20: - EnterOuterAlt(_localctx, 20); - { - State = 468; forNextStmt(); - } - break; - - case 21: - EnterOuterAlt(_localctx, 21); - { - State = 469; getStmt(); - } - break; - - case 22: - EnterOuterAlt(_localctx, 22); - { - State = 470; goSubStmt(); - } - break; - - case 23: - EnterOuterAlt(_localctx, 23); - { - State = 471; goToStmt(); - } - break; - - case 24: - EnterOuterAlt(_localctx, 24); - { - State = 472; ifThenElseStmt(); - } - break; - - case 25: - EnterOuterAlt(_localctx, 25); - { - State = 473; implementsStmt(); - } - break; - - case 26: - EnterOuterAlt(_localctx, 26); - { - State = 474; inputStmt(); - } - break; - - case 27: - EnterOuterAlt(_localctx, 27); - { - State = 475; killStmt(); - } - break; - - case 28: - EnterOuterAlt(_localctx, 28); - { - State = 476; letStmt(); - } - break; - - case 29: - EnterOuterAlt(_localctx, 29); - { - State = 477; lineInputStmt(); - } - break; - - case 30: - EnterOuterAlt(_localctx, 30); - { - State = 478; loadStmt(); - } - break; - - case 31: - EnterOuterAlt(_localctx, 31); - { - State = 479; lockStmt(); - } - break; - - case 32: - EnterOuterAlt(_localctx, 32); - { - State = 480; lsetStmt(); - } - break; - - case 33: - EnterOuterAlt(_localctx, 33); - { - State = 481; macroStmt(); - } - break; - - case 34: - EnterOuterAlt(_localctx, 34); - { - State = 482; midStmt(); - } - break; - - case 35: - EnterOuterAlt(_localctx, 35); - { - State = 483; mkdirStmt(); - } - break; - - case 36: - EnterOuterAlt(_localctx, 36); - { - State = 484; nameStmt(); - } - break; - - case 37: - EnterOuterAlt(_localctx, 37); - { - State = 485; onErrorStmt(); - } - break; - - case 38: - EnterOuterAlt(_localctx, 38); - { - State = 486; onGoToStmt(); - } - break; - - case 39: - EnterOuterAlt(_localctx, 39); - { - State = 487; onGoSubStmt(); - } - break; - - case 40: - EnterOuterAlt(_localctx, 40); - { - State = 488; openStmt(); - } - break; - - case 41: - EnterOuterAlt(_localctx, 41); - { - State = 489; printStmt(); - } - break; - - case 42: - EnterOuterAlt(_localctx, 42); - { - State = 490; putStmt(); - } - break; - - case 43: - EnterOuterAlt(_localctx, 43); - { - State = 491; raiseEventStmt(); - } - break; - - case 44: - EnterOuterAlt(_localctx, 44); - { - State = 492; randomizeStmt(); - } - break; - - case 45: - EnterOuterAlt(_localctx, 45); - { - State = 493; redimStmt(); - } - break; - - case 46: - EnterOuterAlt(_localctx, 46); - { - State = 494; resetStmt(); - } - break; - - case 47: - EnterOuterAlt(_localctx, 47); - { - State = 495; resumeStmt(); - } - break; - - case 48: - EnterOuterAlt(_localctx, 48); - { - State = 496; returnStmt(); - } - break; - - case 49: - EnterOuterAlt(_localctx, 49); - { - State = 497; rmdirStmt(); - } - break; - - case 50: - EnterOuterAlt(_localctx, 50); - { - State = 498; rsetStmt(); - } - break; - - case 51: - EnterOuterAlt(_localctx, 51); - { - State = 499; savepictureStmt(); - } - break; - - case 52: - EnterOuterAlt(_localctx, 52); - { - State = 500; saveSettingStmt(); - } - break; - - case 53: - EnterOuterAlt(_localctx, 53); - { - State = 501; seekStmt(); - } - break; - - case 54: - EnterOuterAlt(_localctx, 54); - { - State = 502; selectCaseStmt(); - } - break; - - case 55: - EnterOuterAlt(_localctx, 55); - { - State = 503; sendkeysStmt(); - } - break; - - case 56: - EnterOuterAlt(_localctx, 56); - { - State = 504; setattrStmt(); - } - break; - - case 57: - EnterOuterAlt(_localctx, 57); - { - State = 505; setStmt(); - } - break; - - case 58: - EnterOuterAlt(_localctx, 58); - { - State = 506; stopStmt(); - } - break; - - case 59: - EnterOuterAlt(_localctx, 59); - { - State = 507; timeStmt(); - } - break; - - case 60: - EnterOuterAlt(_localctx, 60); - { - State = 508; unloadStmt(); - } - break; - - case 61: - EnterOuterAlt(_localctx, 61); - { - State = 509; unlockStmt(); - } - break; - - case 62: - EnterOuterAlt(_localctx, 62); - { - State = 510; variableStmt(); - } - break; - - case 63: - EnterOuterAlt(_localctx, 63); - { - State = 511; whileWendStmt(); - } - break; - - case 64: - EnterOuterAlt(_localctx, 64); - { - State = 512; widthStmt(); - } - break; - - case 65: - EnterOuterAlt(_localctx, 65); - { - State = 513; withStmt(); - } - break; - - case 66: - EnterOuterAlt(_localctx, 66); - { - State = 514; writeStmt(); - } - break; - - case 67: - EnterOuterAlt(_localctx, 67); - { - State = 515; implicitCallStmt_InBlock(); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class AppactivateStmtContext : ParserRuleContext - { - public ITerminalNode APPACTIVATE() { return GetToken(VBAParser.APPACTIVATE, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public AppactivateStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_appactivateStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterAppactivateStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitAppactivateStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitAppactivateStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public AppactivateStmtContext appactivateStmt() - { - AppactivateStmtContext _localctx = new AppactivateStmtContext(_ctx, State); - EnterRule(_localctx, 30, RULE_appactivateStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 518; Match(APPACTIVATE); - State = 519; Match(WS); - State = 520; valueStmt(0); - State = 529; - switch (Interpreter.AdaptivePredict(_input, 26, _ctx)) - { - case 1: - { - State = 522; - _la = _input.La(1); - if (_la == WS) - { - { - State = 521; Match(WS); - } - } - - State = 524; Match(T__1); - State = 526; - switch (Interpreter.AdaptivePredict(_input, 25, _ctx)) - { - case 1: - { - State = 525; Match(WS); - } - break; - } - State = 528; valueStmt(0); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class BeepStmtContext : ParserRuleContext - { - public ITerminalNode BEEP() { return GetToken(VBAParser.BEEP, 0); } - public BeepStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_beepStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterBeepStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitBeepStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitBeepStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public BeepStmtContext beepStmt() - { - BeepStmtContext _localctx = new BeepStmtContext(_ctx, State); - EnterRule(_localctx, 32, RULE_beepStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 531; Match(BEEP); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ChdirStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode CHDIR() { return GetToken(VBAParser.CHDIR, 0); } - public ChdirStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_chdirStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterChdirStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitChdirStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitChdirStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ChdirStmtContext chdirStmt() - { - ChdirStmtContext _localctx = new ChdirStmtContext(_ctx, State); - EnterRule(_localctx, 34, RULE_chdirStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 533; Match(CHDIR); - State = 534; Match(WS); - State = 535; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ChdriveStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode CHDRIVE() { return GetToken(VBAParser.CHDRIVE, 0); } - public ChdriveStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_chdriveStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterChdriveStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitChdriveStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitChdriveStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ChdriveStmtContext chdriveStmt() - { - ChdriveStmtContext _localctx = new ChdriveStmtContext(_ctx, State); - EnterRule(_localctx, 36, RULE_chdriveStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 537; Match(CHDRIVE); - State = 538; Match(WS); - State = 539; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class CloseStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } - public IReadOnlyList fileNumber() - { - return GetRuleContexts(); - } - public FileNumberContext fileNumber(int i) - { - return GetRuleContext(i); - } - public CloseStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_closeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterCloseStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitCloseStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitCloseStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CloseStmtContext closeStmt() - { - CloseStmtContext _localctx = new CloseStmtContext(_ctx, State); - EnterRule(_localctx, 38, RULE_closeStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 541; Match(CLOSE); - State = 557; - switch (Interpreter.AdaptivePredict(_input, 30, _ctx)) - { - case 1: - { - State = 542; Match(WS); - State = 543; fileNumber(); - State = 554; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 29, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 545; - _la = _input.La(1); - if (_la == WS) - { - { - State = 544; Match(WS); - } - } - - State = 547; Match(T__1); - State = 549; - switch (Interpreter.AdaptivePredict(_input, 28, _ctx)) - { - case 1: - { - State = 548; Match(WS); - } - break; - } - State = 551; fileNumber(); - } - } - } - State = 556; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 29, _ctx); - } - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ConstStmtContext : ParserRuleContext - { - public ITerminalNode CONST() { return GetToken(VBAParser.CONST, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList constSubStmt() - { - return GetRuleContexts(); - } - public ConstSubStmtContext constSubStmt(int i) - { - return GetRuleContext(i); - } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public ConstStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_constStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterConstStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitConstStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitConstStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ConstStmtContext constStmt() - { - ConstStmtContext _localctx = new ConstStmtContext(_ctx, State); - EnterRule(_localctx, 40, RULE_constStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 562; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 559; visibility(); - State = 560; Match(WS); - } - } - - State = 564; Match(CONST); - State = 565; Match(WS); - State = 566; constSubStmt(); - State = 577; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 34, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 568; - _la = _input.La(1); - if (_la == WS) - { - { - State = 567; Match(WS); - } - } - - State = 570; Match(T__1); - State = 572; - _la = _input.La(1); - if (_la == WS) - { - { - State = 571; Match(WS); - } - } - - State = 574; constSubStmt(); - } - } - } - State = 579; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 34, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ConstSubStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ConstSubStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_constSubStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterConstSubStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitConstSubStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitConstSubStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ConstSubStmtContext constSubStmt() - { - ConstSubStmtContext _localctx = new ConstSubStmtContext(_ctx, State); - EnterRule(_localctx, 42, RULE_constSubStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 580; ambiguousIdentifier(); - State = 582; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND) - { - { - State = 581; typeHint(); - } - } - - State = 586; - switch (Interpreter.AdaptivePredict(_input, 36, _ctx)) - { - case 1: - { - State = 584; Match(WS); - State = 585; asTypeClause(); - } - break; - } - State = 589; - _la = _input.La(1); - if (_la == WS) - { - { - State = 588; Match(WS); - } - } - - State = 591; Match(EQ); - State = 593; - switch (Interpreter.AdaptivePredict(_input, 38, _ctx)) - { - case 1: - { - State = 592; Match(WS); - } - break; - } - State = 595; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class DateStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } - public DateStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dateStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterDateStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitDateStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitDateStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DateStmtContext dateStmt() - { - DateStmtContext _localctx = new DateStmtContext(_ctx, State); - EnterRule(_localctx, 44, RULE_dateStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 597; Match(DATE); - State = 599; - _la = _input.La(1); - if (_la == WS) - { - { - State = 598; Match(WS); - } - } - - State = 601; Match(EQ); - State = 603; - switch (Interpreter.AdaptivePredict(_input, 40, _ctx)) - { - case 1: - { - State = 602; Match(WS); - } - break; - } - State = 605; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class DeclareStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode STRINGLITERAL(int i) - { - return GetToken(VBAParser.STRINGLITERAL, i); - } - public ITerminalNode PTRSAFE() { return GetToken(VBAParser.PTRSAFE, 0); } - public ITerminalNode DECLARE() { return GetToken(VBAParser.DECLARE, 0); } - public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public TypeHintContext typeHint(int i) - { - return GetRuleContext(i); - } - public ArgListContext argList() - { - return GetRuleContext(0); - } - public ITerminalNode LIB() { return GetToken(VBAParser.LIB, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } - public IReadOnlyList STRINGLITERAL() { return GetTokens(VBAParser.STRINGLITERAL); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList typeHint() - { - return GetRuleContexts(); - } - public ITerminalNode ALIAS() { return GetToken(VBAParser.ALIAS, 0); } - public DeclareStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_declareStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterDeclareStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitDeclareStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitDeclareStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DeclareStmtContext declareStmt() - { - DeclareStmtContext _localctx = new DeclareStmtContext(_ctx, State); - EnterRule(_localctx, 46, RULE_declareStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 610; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 607; visibility(); - State = 608; Match(WS); - } - } - - State = 612; Match(DECLARE); - State = 613; Match(WS); - State = 616; - _la = _input.La(1); - if (_la == PTRSAFE) - { - { - State = 614; Match(PTRSAFE); - State = 615; Match(WS); - } - } - - State = 623; - switch (_input.La(1)) - { - case FUNCTION: - { - { - State = 618; Match(FUNCTION); - State = 620; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND) - { - { - State = 619; typeHint(); - } - } - - } - } - break; - case SUB: - { - State = 622; Match(SUB); - } - break; - default: - throw new NoViableAltException(this); - } - State = 625; Match(WS); - State = 626; ambiguousIdentifier(); - State = 628; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND) - { - { - State = 627; typeHint(); - } - } - - State = 630; Match(WS); - State = 631; Match(LIB); - State = 632; Match(WS); - State = 633; Match(STRINGLITERAL); - State = 638; - switch (Interpreter.AdaptivePredict(_input, 46, _ctx)) - { - case 1: - { - State = 634; Match(WS); - State = 635; Match(ALIAS); - State = 636; Match(WS); - State = 637; Match(STRINGLITERAL); - } - break; - } - State = 644; - switch (Interpreter.AdaptivePredict(_input, 48, _ctx)) - { - case 1: - { - State = 641; - _la = _input.La(1); - if (_la == WS) - { - { - State = 640; Match(WS); - } - } - - State = 643; argList(); - } - break; - } - State = 648; - switch (Interpreter.AdaptivePredict(_input, 49, _ctx)) - { - case 1: - { - State = 646; Match(WS); - State = 647; asTypeClause(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class DeftypeStmtContext : ParserRuleContext - { - public ITerminalNode DEFOBJ() { return GetToken(VBAParser.DEFOBJ, 0); } - public ITerminalNode DEFDEC() { return GetToken(VBAParser.DEFDEC, 0); } - public ITerminalNode DEFINT() { return GetToken(VBAParser.DEFINT, 0); } - public IReadOnlyList letterrange() - { - return GetRuleContexts(); - } - public ITerminalNode DEFBOOL() { return GetToken(VBAParser.DEFBOOL, 0); } - public ITerminalNode DEFDBL() { return GetToken(VBAParser.DEFDBL, 0); } - public ITerminalNode DEFBYTE() { return GetToken(VBAParser.DEFBYTE, 0); } - public ITerminalNode DEFSNG() { return GetToken(VBAParser.DEFSNG, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode DEFCUR() { return GetToken(VBAParser.DEFCUR, 0); } - public LetterrangeContext letterrange(int i) - { - return GetRuleContext(i); - } - public ITerminalNode DEFDATE() { return GetToken(VBAParser.DEFDATE, 0); } - public ITerminalNode DEFLNG() { return GetToken(VBAParser.DEFLNG, 0); } - public ITerminalNode DEFSTR() { return GetToken(VBAParser.DEFSTR, 0); } - public ITerminalNode DEFVAR() { return GetToken(VBAParser.DEFVAR, 0); } - public DeftypeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_deftypeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterDeftypeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitDeftypeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitDeftypeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DeftypeStmtContext deftypeStmt() - { - DeftypeStmtContext _localctx = new DeftypeStmtContext(_ctx, State); - EnterRule(_localctx, 48, RULE_deftypeStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 650; - _la = _input.La(1); - if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 651; Match(WS); - State = 652; letterrange(); - State = 663; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 52, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 654; - _la = _input.La(1); - if (_la == WS) - { - { - State = 653; Match(WS); - } - } - - State = 656; Match(T__1); - State = 658; - _la = _input.La(1); - if (_la == WS) - { - { - State = 657; Match(WS); - } - } - - State = 660; letterrange(); - } - } - } - State = 665; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 52, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class DeleteSettingStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public DeleteSettingStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_deleteSettingStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterDeleteSettingStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitDeleteSettingStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitDeleteSettingStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DeleteSettingStmtContext deleteSettingStmt() - { - DeleteSettingStmtContext _localctx = new DeleteSettingStmtContext(_ctx, State); - EnterRule(_localctx, 50, RULE_deleteSettingStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 666; Match(DELETESETTING); - State = 667; Match(WS); - State = 668; valueStmt(0); - State = 670; - _la = _input.La(1); - if (_la == WS) - { - { - State = 669; Match(WS); - } - } - - State = 672; Match(T__1); - State = 674; - switch (Interpreter.AdaptivePredict(_input, 54, _ctx)) - { - case 1: - { - State = 673; Match(WS); - } - break; - } - State = 676; valueStmt(0); - State = 685; - switch (Interpreter.AdaptivePredict(_input, 57, _ctx)) - { - case 1: - { - State = 678; - _la = _input.La(1); - if (_la == WS) - { - { - State = 677; Match(WS); - } - } - - State = 680; Match(T__1); - State = 682; - switch (Interpreter.AdaptivePredict(_input, 56, _ctx)) - { - case 1: - { - State = 681; Match(WS); - } - break; - } - State = 684; valueStmt(0); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class DoLoopStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } - public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } - public DoLoopStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_doLoopStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterDoLoopStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitDoLoopStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitDoLoopStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DoLoopStmtContext doLoopStmt() - { - DoLoopStmtContext _localctx = new DoLoopStmtContext(_ctx, State); - EnterRule(_localctx, 52, RULE_doLoopStmt); - int _la; - try - { - State = 714; - switch (Interpreter.AdaptivePredict(_input, 60, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 687; Match(DO); - State = 688; endOfStatement(); - State = 690; - switch (Interpreter.AdaptivePredict(_input, 58, _ctx)) - { - case 1: - { - State = 689; block(); - } - break; - } - State = 692; Match(LOOP); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 694; Match(DO); - State = 695; Match(WS); - State = 696; - _la = _input.La(1); - if (!(_la == UNTIL || _la == WHILE)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 697; Match(WS); - State = 698; valueStmt(0); - State = 699; endOfStatement(); - State = 701; - switch (Interpreter.AdaptivePredict(_input, 59, _ctx)) - { - case 1: - { - State = 700; block(); - } - break; - } - State = 703; Match(LOOP); - } - break; - - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 705; Match(DO); - State = 706; endOfStatement(); - State = 707; block(); - State = 708; Match(LOOP); - State = 709; Match(WS); - State = 710; - _la = _input.La(1); - if (!(_la == UNTIL || _la == WHILE)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 711; Match(WS); - State = 712; valueStmt(0); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class EndStmtContext : ParserRuleContext - { - public ITerminalNode END() { return GetToken(VBAParser.END, 0); } - public EndStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_endStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterEndStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitEndStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitEndStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EndStmtContext endStmt() - { - EndStmtContext _localctx = new EndStmtContext(_ctx, State); - EnterRule(_localctx, 54, RULE_endStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 716; Match(END); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class EnumerationStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList enumerationStmt_Constant() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public EnumerationStmt_ConstantContext enumerationStmt_Constant(int i) - { - return GetRuleContext(i); - } - public ITerminalNode ENUM() { return GetToken(VBAParser.ENUM, 0); } - public ITerminalNode END_ENUM() { return GetToken(VBAParser.END_ENUM, 0); } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public EnumerationStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_enumerationStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterEnumerationStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitEnumerationStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitEnumerationStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EnumerationStmtContext enumerationStmt() - { - EnumerationStmtContext _localctx = new EnumerationStmtContext(_ctx, State); - EnterRule(_localctx, 56, RULE_enumerationStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 721; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 718; visibility(); - State = 719; Match(WS); - } - } - - State = 723; Match(ENUM); - State = 724; Match(WS); - State = 725; ambiguousIdentifier(); - State = 726; endOfStatement(); - State = 730; - _errHandler.Sync(this); - _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == IDENTIFIER) - { - { - { - State = 727; enumerationStmt_Constant(); - } - } - State = 732; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 733; Match(END_ENUM); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class EnumerationStmt_ConstantContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public EnumerationStmt_ConstantContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_enumerationStmt_Constant; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterEnumerationStmt_Constant(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitEnumerationStmt_Constant(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitEnumerationStmt_Constant(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EnumerationStmt_ConstantContext enumerationStmt_Constant() - { - EnumerationStmt_ConstantContext _localctx = new EnumerationStmt_ConstantContext(_ctx, State); - EnterRule(_localctx, 58, RULE_enumerationStmt_Constant); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 735; ambiguousIdentifier(); - State = 744; - switch (Interpreter.AdaptivePredict(_input, 65, _ctx)) - { - case 1: - { - State = 737; - _la = _input.La(1); - if (_la == WS) - { - { - State = 736; Match(WS); - } - } - - State = 739; Match(EQ); - State = 741; - switch (Interpreter.AdaptivePredict(_input, 64, _ctx)) - { - case 1: - { - State = 740; Match(WS); - } - break; - } - State = 743; valueStmt(0); - } - break; - } - State = 746; endOfStatement(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class EraseStmtContext : ParserRuleContext - { - public ITerminalNode ERASE() { return GetToken(VBAParser.ERASE, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public EraseStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_eraseStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterEraseStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitEraseStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitEraseStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EraseStmtContext eraseStmt() - { - EraseStmtContext _localctx = new EraseStmtContext(_ctx, State); - EnterRule(_localctx, 60, RULE_eraseStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 748; Match(ERASE); - State = 749; Match(WS); - State = 750; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ErrorStmtContext : ParserRuleContext - { - public ITerminalNode ERROR() { return GetToken(VBAParser.ERROR, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ErrorStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_errorStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterErrorStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitErrorStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitErrorStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ErrorStmtContext errorStmt() - { - ErrorStmtContext _localctx = new ErrorStmtContext(_ctx, State); - EnterRule(_localctx, 62, RULE_errorStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 752; Match(ERROR); - State = 753; Match(WS); - State = 754; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class EventStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgListContext argList() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public ITerminalNode EVENT() { return GetToken(VBAParser.EVENT, 0); } - public EventStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_eventStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterEventStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitEventStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitEventStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EventStmtContext eventStmt() - { - EventStmtContext _localctx = new EventStmtContext(_ctx, State); - EnterRule(_localctx, 64, RULE_eventStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 759; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 756; visibility(); - State = 757; Match(WS); - } - } - - State = 761; Match(EVENT); - State = 762; Match(WS); - State = 763; ambiguousIdentifier(); - State = 765; - _la = _input.La(1); - if (_la == WS) - { - { - State = 764; Match(WS); - } - } - - State = 767; argList(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ExitStmtContext : ParserRuleContext - { - public ITerminalNode EXIT_SUB() { return GetToken(VBAParser.EXIT_SUB, 0); } - public ITerminalNode EXIT_PROPERTY() { return GetToken(VBAParser.EXIT_PROPERTY, 0); } - public ITerminalNode EXIT_FUNCTION() { return GetToken(VBAParser.EXIT_FUNCTION, 0); } - public ITerminalNode EXIT_DO() { return GetToken(VBAParser.EXIT_DO, 0); } - public ITerminalNode EXIT_FOR() { return GetToken(VBAParser.EXIT_FOR, 0); } - public ExitStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_exitStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterExitStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitExitStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitExitStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ExitStmtContext exitStmt() - { - ExitStmtContext _localctx = new ExitStmtContext(_ctx, State); - EnterRule(_localctx, 66, RULE_exitStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 769; - _la = _input.La(1); - if (!(((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (EXIT_DO - 68)) | (1L << (EXIT_FOR - 68)) | (1L << (EXIT_FUNCTION - 68)) | (1L << (EXIT_PROPERTY - 68)) | (1L << (EXIT_SUB - 68)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class FilecopyStmtContext : ParserRuleContext - { - public ITerminalNode FILECOPY() { return GetToken(VBAParser.FILECOPY, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public FilecopyStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_filecopyStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterFilecopyStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitFilecopyStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitFilecopyStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public FilecopyStmtContext filecopyStmt() - { - FilecopyStmtContext _localctx = new FilecopyStmtContext(_ctx, State); - EnterRule(_localctx, 68, RULE_filecopyStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 771; Match(FILECOPY); - State = 772; Match(WS); - State = 773; valueStmt(0); - State = 775; - _la = _input.La(1); - if (_la == WS) - { - { - State = 774; Match(WS); - } - } - - State = 777; Match(T__1); - State = 779; - switch (Interpreter.AdaptivePredict(_input, 69, _ctx)) - { - case 1: - { - State = 778; Match(WS); - } - break; - } - State = 781; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ForEachStmtContext : ParserRuleContext - { - public IReadOnlyList ambiguousIdentifier() - { - return GetRuleContexts(); - } - public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public AmbiguousIdentifierContext ambiguousIdentifier(int i) - { - return GetRuleContext(i); - } - public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } - public ITerminalNode EACH() { return GetToken(VBAParser.EACH, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public ITerminalNode IN() { return GetToken(VBAParser.IN, 0); } - public ForEachStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_forEachStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterForEachStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitForEachStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitForEachStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ForEachStmtContext forEachStmt() - { - ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); - EnterRule(_localctx, 70, RULE_forEachStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 783; Match(FOR); - State = 784; Match(WS); - State = 785; Match(EACH); - State = 786; Match(WS); - State = 787; ambiguousIdentifier(); - State = 789; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND) - { - { - State = 788; typeHint(); - } - } - - State = 791; Match(WS); - State = 792; Match(IN); - State = 793; Match(WS); - State = 794; valueStmt(0); - State = 795; endOfStatement(); - State = 797; - switch (Interpreter.AdaptivePredict(_input, 71, _ctx)) - { - case 1: - { - State = 796; block(); - } - break; - } - State = 799; Match(NEXT); - State = 802; - switch (Interpreter.AdaptivePredict(_input, 72, _ctx)) - { - case 1: - { - State = 800; Match(WS); - State = 801; ambiguousIdentifier(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ForNextStmtContext : ParserRuleContext - { - public IReadOnlyList ambiguousIdentifier() - { - return GetRuleContexts(); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public AmbiguousIdentifierContext ambiguousIdentifier(int i) - { - return GetRuleContext(i); - } - public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ITerminalNode STEP() { return GetToken(VBAParser.STEP, 0); } - public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public ForNextStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_forNextStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterForNextStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitForNextStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitForNextStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ForNextStmtContext forNextStmt() - { - ForNextStmtContext _localctx = new ForNextStmtContext(_ctx, State); - EnterRule(_localctx, 72, RULE_forNextStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 804; Match(FOR); - State = 805; Match(WS); - State = 806; ambiguousIdentifier(); - State = 808; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND) - { - { - State = 807; typeHint(); - } - } - - State = 812; - switch (Interpreter.AdaptivePredict(_input, 74, _ctx)) - { - case 1: - { - State = 810; Match(WS); - State = 811; asTypeClause(); - } - break; - } - State = 815; - _la = _input.La(1); - if (_la == WS) - { - { - State = 814; Match(WS); - } - } - - State = 817; Match(EQ); - State = 819; - switch (Interpreter.AdaptivePredict(_input, 76, _ctx)) - { - case 1: - { - State = 818; Match(WS); - } - break; - } - State = 821; valueStmt(0); - State = 822; Match(WS); - State = 823; Match(TO); - State = 824; Match(WS); - State = 825; valueStmt(0); - State = 830; - switch (Interpreter.AdaptivePredict(_input, 77, _ctx)) - { - case 1: - { - State = 826; Match(WS); - State = 827; Match(STEP); - State = 828; Match(WS); - State = 829; valueStmt(0); - } - break; - } - State = 832; endOfStatement(); - State = 834; - switch (Interpreter.AdaptivePredict(_input, 78, _ctx)) - { - case 1: - { - State = 833; block(); - } - break; - } - State = 836; Match(NEXT); - State = 839; - switch (Interpreter.AdaptivePredict(_input, 79, _ctx)) - { - case 1: - { - State = 837; Match(WS); - State = 838; ambiguousIdentifier(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class FunctionStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgListContext argList() - { - return GetRuleContext(0); - } - public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode END_FUNCTION() { return GetToken(VBAParser.END_FUNCTION, 0); } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public FunctionStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_functionStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterFunctionStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitFunctionStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitFunctionStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public FunctionStmtContext functionStmt() - { - FunctionStmtContext _localctx = new FunctionStmtContext(_ctx, State); - EnterRule(_localctx, 74, RULE_functionStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 844; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 841; visibility(); - State = 842; Match(WS); - } - } - - State = 848; - _la = _input.La(1); - if (_la == STATIC) - { - { - State = 846; Match(STATIC); - State = 847; Match(WS); - } - } - - State = 850; Match(FUNCTION); - State = 852; - _la = _input.La(1); - if (_la == WS) - { - { - State = 851; Match(WS); - } - } - - State = 854; ambiguousIdentifier(); - State = 856; - switch (Interpreter.AdaptivePredict(_input, 83, _ctx)) - { - case 1: - { - State = 855; typeHint(); - } - break; - } - State = 862; - switch (Interpreter.AdaptivePredict(_input, 85, _ctx)) - { - case 1: - { - State = 859; - _la = _input.La(1); - if (_la == WS) - { - { - State = 858; Match(WS); - } - } - - State = 861; argList(); - } - break; - } - State = 868; - switch (Interpreter.AdaptivePredict(_input, 87, _ctx)) - { - case 1: - { - State = 865; - _la = _input.La(1); - if (_la == WS) - { - { - State = 864; Match(WS); - } - } - - State = 867; asTypeClause(); - } - break; - } - State = 870; endOfStatement(); - State = 872; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == WS || _la == IDENTIFIER) - { - { - State = 871; block(); - } - } - - State = 874; Match(END_FUNCTION); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class GetStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public ITerminalNode GET() { return GetToken(VBAParser.GET, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public GetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_getStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterGetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitGetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitGetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public GetStmtContext getStmt() - { - GetStmtContext _localctx = new GetStmtContext(_ctx, State); - EnterRule(_localctx, 76, RULE_getStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 876; Match(GET); - State = 877; Match(WS); - State = 878; fileNumber(); - State = 880; - _la = _input.La(1); - if (_la == WS) - { - { - State = 879; Match(WS); - } - } - - State = 882; Match(T__1); - State = 884; - switch (Interpreter.AdaptivePredict(_input, 90, _ctx)) - { - case 1: - { - State = 883; Match(WS); - } - break; - } - State = 887; - switch (Interpreter.AdaptivePredict(_input, 91, _ctx)) - { - case 1: - { - State = 886; valueStmt(0); - } - break; - } - State = 890; - _la = _input.La(1); - if (_la == WS) - { - { - State = 889; Match(WS); - } - } - - State = 892; Match(T__1); - State = 894; - switch (Interpreter.AdaptivePredict(_input, 93, _ctx)) - { - case 1: - { - State = 893; Match(WS); - } - break; - } - State = 896; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class GoSubStmtContext : ParserRuleContext - { - public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public GoSubStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_goSubStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterGoSubStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitGoSubStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitGoSubStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public GoSubStmtContext goSubStmt() - { - GoSubStmtContext _localctx = new GoSubStmtContext(_ctx, State); - EnterRule(_localctx, 78, RULE_goSubStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 898; Match(GOSUB); - State = 899; Match(WS); - State = 900; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class GoToStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } - public GoToStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_goToStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterGoToStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitGoToStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitGoToStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public GoToStmtContext goToStmt() - { - GoToStmtContext _localctx = new GoToStmtContext(_ctx, State); - EnterRule(_localctx, 80, RULE_goToStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 902; Match(GOTO); - State = 903; Match(WS); - State = 904; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class IfThenElseStmtContext : ParserRuleContext - { - public IfThenElseStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ifThenElseStmt; } } - - public IfThenElseStmtContext() { } - public virtual void CopyFrom(IfThenElseStmtContext context) - { - base.CopyFrom(context); - } - } - public partial class BlockIfThenElseContext : IfThenElseStmtContext - { - public IfElseIfBlockStmtContext ifElseIfBlockStmt(int i) - { - return GetRuleContext(i); - } - public ITerminalNode END_IF() { return GetToken(VBAParser.END_IF, 0); } - public IReadOnlyList ifElseIfBlockStmt() - { - return GetRuleContexts(); - } - public IfBlockStmtContext ifBlockStmt() - { - return GetRuleContext(0); - } - public IfElseBlockStmtContext ifElseBlockStmt() - { - return GetRuleContext(0); - } - public BlockIfThenElseContext(IfThenElseStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterBlockIfThenElse(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitBlockIfThenElse(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitBlockIfThenElse(this); - else return visitor.VisitChildren(this); - } - } - public partial class InlineIfThenElseContext : IfThenElseStmtContext - { - public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } - public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList blockStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public IfConditionStmtContext ifConditionStmt() - { - return GetRuleContext(0); - } - public BlockStmtContext blockStmt(int i) - { - return GetRuleContext(i); - } - public InlineIfThenElseContext(IfThenElseStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterInlineIfThenElse(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitInlineIfThenElse(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitInlineIfThenElse(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public IfThenElseStmtContext ifThenElseStmt() - { - IfThenElseStmtContext _localctx = new IfThenElseStmtContext(_ctx, State); - EnterRule(_localctx, 82, RULE_ifThenElseStmt); - int _la; - try - { - State = 931; - switch (Interpreter.AdaptivePredict(_input, 97, _ctx)) - { - case 1: - _localctx = new InlineIfThenElseContext(_localctx); - EnterOuterAlt(_localctx, 1); - { - State = 906; Match(IF); - State = 907; Match(WS); - State = 908; ifConditionStmt(); - State = 909; Match(WS); - State = 910; Match(THEN); - State = 911; Match(WS); - State = 912; blockStmt(); - State = 917; - switch (Interpreter.AdaptivePredict(_input, 94, _ctx)) - { - case 1: - { - State = 913; Match(WS); - State = 914; Match(ELSE); - State = 915; Match(WS); - State = 916; blockStmt(); - } - break; - } - } - break; - - case 2: - _localctx = new BlockIfThenElseContext(_localctx); - EnterOuterAlt(_localctx, 2); - { - State = 919; ifBlockStmt(); - State = 923; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la == ELSEIF) - { - { - { - State = 920; ifElseIfBlockStmt(); - } - } - State = 925; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 927; - _la = _input.La(1); - if (_la == ELSE) - { - { - State = 926; ifElseBlockStmt(); - } - } - - State = 929; Match(END_IF); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class IfBlockStmtContext : ParserRuleContext - { - public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public IfConditionStmtContext ifConditionStmt() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public IfBlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ifBlockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterIfBlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitIfBlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitIfBlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public IfBlockStmtContext ifBlockStmt() - { - IfBlockStmtContext _localctx = new IfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 84, RULE_ifBlockStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 933; Match(IF); - State = 934; Match(WS); - State = 935; ifConditionStmt(); - State = 936; Match(WS); - State = 937; Match(THEN); - State = 938; endOfStatement(); - State = 940; - switch (Interpreter.AdaptivePredict(_input, 98, _ctx)) - { - case 1: - { - State = 939; block(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class IfConditionStmtContext : ParserRuleContext - { - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IfConditionStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ifConditionStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterIfConditionStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitIfConditionStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitIfConditionStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public IfConditionStmtContext ifConditionStmt() - { - IfConditionStmtContext _localctx = new IfConditionStmtContext(_ctx, State); - EnterRule(_localctx, 86, RULE_ifConditionStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 942; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class IfElseIfBlockStmtContext : ParserRuleContext - { - public ITerminalNode ELSEIF() { return GetToken(VBAParser.ELSEIF, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public IfConditionStmtContext ifConditionStmt() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public IfElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ifElseIfBlockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterIfElseIfBlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitIfElseIfBlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitIfElseIfBlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public IfElseIfBlockStmtContext ifElseIfBlockStmt() - { - IfElseIfBlockStmtContext _localctx = new IfElseIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 88, RULE_ifElseIfBlockStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 944; Match(ELSEIF); - State = 945; Match(WS); - State = 946; ifConditionStmt(); - State = 947; Match(WS); - State = 948; Match(THEN); - State = 949; endOfStatement(); - State = 951; - switch (Interpreter.AdaptivePredict(_input, 99, _ctx)) - { - case 1: - { - State = 950; block(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class IfElseBlockStmtContext : ParserRuleContext - { - public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public IfElseBlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ifElseBlockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterIfElseBlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitIfElseBlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitIfElseBlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public IfElseBlockStmtContext ifElseBlockStmt() - { - IfElseBlockStmtContext _localctx = new IfElseBlockStmtContext(_ctx, State); - EnterRule(_localctx, 90, RULE_ifElseBlockStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 953; Match(ELSE); - State = 954; endOfStatement(); - State = 956; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == WS || _la == IDENTIFIER) - { - { - State = 955; block(); - } - } - - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ImplementsStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode IMPLEMENTS() { return GetToken(VBAParser.IMPLEMENTS, 0); } - public ImplementsStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_implementsStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterImplementsStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitImplementsStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitImplementsStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ImplementsStmtContext implementsStmt() - { - ImplementsStmtContext _localctx = new ImplementsStmtContext(_ctx, State); - EnterRule(_localctx, 92, RULE_implementsStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 958; Match(IMPLEMENTS); - State = 959; Match(WS); - State = 960; ambiguousIdentifier(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class InputStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public InputStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_inputStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterInputStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitInputStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitInputStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public InputStmtContext inputStmt() - { - InputStmtContext _localctx = new InputStmtContext(_ctx, State); - EnterRule(_localctx, 94, RULE_inputStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 962; Match(INPUT); - State = 963; Match(WS); - State = 964; fileNumber(); - State = 973; - _errHandler.Sync(this); - _alt = 1; - do - { - switch (_alt) - { - case 1: - { - { - State = 966; - _la = _input.La(1); - if (_la == WS) - { - { - State = 965; Match(WS); - } - } - - State = 968; Match(T__1); - State = 970; - switch (Interpreter.AdaptivePredict(_input, 102, _ctx)) - { - case 1: - { - State = 969; Match(WS); - } - break; - } - State = 972; valueStmt(0); - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 975; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 103, _ctx); - } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class KillStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode KILL() { return GetToken(VBAParser.KILL, 0); } - public KillStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_killStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterKillStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitKillStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitKillStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public KillStmtContext killStmt() - { - KillStmtContext _localctx = new KillStmtContext(_ctx, State); - EnterRule(_localctx, 96, RULE_killStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 977; Match(KILL); - State = 978; Match(WS); - State = 979; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LetStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } - public LetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_letStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LetStmtContext letStmt() - { - LetStmtContext _localctx = new LetStmtContext(_ctx, State); - EnterRule(_localctx, 98, RULE_letStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 983; - switch (Interpreter.AdaptivePredict(_input, 104, _ctx)) - { - case 1: - { - State = 981; Match(LET); - State = 982; Match(WS); - } - break; - } - State = 985; implicitCallStmt_InStmt(); - State = 987; - _la = _input.La(1); - if (_la == WS) - { - { - State = 986; Match(WS); - } - } - - State = 989; Match(EQ); - State = 991; - switch (Interpreter.AdaptivePredict(_input, 106, _ctx)) - { - case 1: - { - State = 990; Match(WS); - } - break; - } - State = 993; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LineInputStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public ITerminalNode LINE_INPUT() { return GetToken(VBAParser.LINE_INPUT, 0); } - public LineInputStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_lineInputStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLineInputStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLineInputStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLineInputStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LineInputStmtContext lineInputStmt() - { - LineInputStmtContext _localctx = new LineInputStmtContext(_ctx, State); - EnterRule(_localctx, 100, RULE_lineInputStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 995; Match(LINE_INPUT); - State = 996; Match(WS); - State = 997; fileNumber(); - State = 999; - _la = _input.La(1); - if (_la == WS) - { - { - State = 998; Match(WS); - } - } - - State = 1001; Match(T__1); - State = 1003; - switch (Interpreter.AdaptivePredict(_input, 108, _ctx)) - { - case 1: - { - State = 1002; Match(WS); - } - break; - } - State = 1005; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LoadStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode LOAD() { return GetToken(VBAParser.LOAD, 0); } - public LoadStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_loadStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLoadStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLoadStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLoadStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LoadStmtContext loadStmt() - { - LoadStmtContext _localctx = new LoadStmtContext(_ctx, State); - EnterRule(_localctx, 102, RULE_loadStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1007; Match(LOAD); - State = 1008; Match(WS); - State = 1009; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LockStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public LockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_lockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LockStmtContext lockStmt() - { - LockStmtContext _localctx = new LockStmtContext(_ctx, State); - EnterRule(_localctx, 104, RULE_lockStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1011; Match(LOCK); - State = 1012; Match(WS); - State = 1013; valueStmt(0); - State = 1028; - switch (Interpreter.AdaptivePredict(_input, 112, _ctx)) - { - case 1: - { - State = 1015; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1014; Match(WS); - } - } - - State = 1017; Match(T__1); - State = 1019; - switch (Interpreter.AdaptivePredict(_input, 110, _ctx)) - { - case 1: - { - State = 1018; Match(WS); - } - break; - } - State = 1021; valueStmt(0); - State = 1026; - switch (Interpreter.AdaptivePredict(_input, 111, _ctx)) - { - case 1: - { - State = 1022; Match(WS); - State = 1023; Match(TO); - State = 1024; Match(WS); - State = 1025; valueStmt(0); - } - break; - } - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LsetStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public LsetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_lsetStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLsetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLsetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLsetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LsetStmtContext lsetStmt() - { - LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); - EnterRule(_localctx, 106, RULE_lsetStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1030; Match(LSET); - State = 1031; Match(WS); - State = 1032; implicitCallStmt_InStmt(); - State = 1034; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1033; Match(WS); - } - } - - State = 1036; Match(EQ); - State = 1038; - switch (Interpreter.AdaptivePredict(_input, 114, _ctx)) - { - case 1: - { - State = 1037; Match(WS); - } - break; - } - State = 1040; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MacroConstStmtContext : ParserRuleContext - { - public ITerminalNode MACRO_CONST() { return GetToken(VBAParser.MACRO_CONST, 0); } - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public MacroConstStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroConstStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroConstStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroConstStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroConstStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroConstStmtContext macroConstStmt() - { - MacroConstStmtContext _localctx = new MacroConstStmtContext(_ctx, State); - EnterRule(_localctx, 108, RULE_macroConstStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1042; Match(MACRO_CONST); - State = 1044; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1043; Match(WS); - } - } - - State = 1046; ambiguousIdentifier(); - State = 1048; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1047; Match(WS); - } - } - - State = 1050; Match(EQ); - State = 1052; - switch (Interpreter.AdaptivePredict(_input, 117, _ctx)) - { - case 1: - { - State = 1051; Match(WS); - } - break; - } - State = 1054; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MacroIfThenElseStmtContext : ParserRuleContext - { - public IReadOnlyList macroElseIfBlockStmt() - { - return GetRuleContexts(); - } - public ITerminalNode MACRO_END_IF() { return GetToken(VBAParser.MACRO_END_IF, 0); } - public MacroIfBlockStmtContext macroIfBlockStmt() - { - return GetRuleContext(0); - } - public MacroElseIfBlockStmtContext macroElseIfBlockStmt(int i) - { - return GetRuleContext(i); - } - public MacroElseBlockStmtContext macroElseBlockStmt() - { - return GetRuleContext(0); - } - public MacroIfThenElseStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroIfThenElseStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroIfThenElseStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroIfThenElseStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroIfThenElseStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroIfThenElseStmtContext macroIfThenElseStmt() - { - MacroIfThenElseStmtContext _localctx = new MacroIfThenElseStmtContext(_ctx, State); - EnterRule(_localctx, 110, RULE_macroIfThenElseStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1056; macroIfBlockStmt(); - State = 1060; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la == MACRO_ELSEIF) - { - { - { - State = 1057; macroElseIfBlockStmt(); - } - } - State = 1062; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 1064; - _la = _input.La(1); - if (_la == MACRO_ELSE) - { - { - State = 1063; macroElseBlockStmt(); - } - } - - State = 1066; Match(MACRO_END_IF); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MacroIfBlockStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ModuleBodyContext moduleBody(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public BlockContext block(int i) - { - return GetRuleContext(i); - } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public ModuleDeclarationsContext moduleDeclarations(int i) - { - return GetRuleContext(i); - } - public ITerminalNode MACRO_IF() { return GetToken(VBAParser.MACRO_IF, 0); } - public IfConditionStmtContext ifConditionStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList moduleBody() - { - return GetRuleContexts(); - } - public IReadOnlyList moduleDeclarations() - { - return GetRuleContexts(); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public IReadOnlyList block() - { - return GetRuleContexts(); - } - public MacroIfBlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroIfBlockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroIfBlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroIfBlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroIfBlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroIfBlockStmtContext macroIfBlockStmt() - { - MacroIfBlockStmtContext _localctx = new MacroIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 112, RULE_macroIfBlockStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1068; Match(MACRO_IF); - State = 1070; - switch (Interpreter.AdaptivePredict(_input, 120, _ctx)) - { - case 1: - { - State = 1069; Match(WS); - } - break; - } - State = 1072; ifConditionStmt(); - State = 1073; Match(WS); - State = 1074; Match(THEN); - State = 1075; endOfStatement(); - State = 1081; - _errHandler.Sync(this); - _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 237)) & ~0x3f) == 0 && ((1L << (_la - 237)) & ((1L << (COMMENT - 237)) | (1L << (WS - 237)) | (1L << (IDENTIFIER - 237)))) != 0)) - { - { - State = 1079; - switch (Interpreter.AdaptivePredict(_input, 121, _ctx)) - { - case 1: - { - State = 1076; moduleDeclarations(); - } - break; - - case 2: - { - State = 1077; moduleBody(); - } - break; - - case 3: - { - State = 1078; block(); - } - break; - } - } - State = 1083; - _errHandler.Sync(this); - _la = _input.La(1); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MacroElseIfBlockStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ModuleBodyContext moduleBody(int i) - { - return GetRuleContext(i); - } - public ITerminalNode MACRO_ELSEIF() { return GetToken(VBAParser.MACRO_ELSEIF, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public BlockContext block(int i) - { - return GetRuleContext(i); - } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public ModuleDeclarationsContext moduleDeclarations(int i) - { - return GetRuleContext(i); - } - public IfConditionStmtContext ifConditionStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList moduleBody() - { - return GetRuleContexts(); - } - public IReadOnlyList moduleDeclarations() - { - return GetRuleContexts(); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public IReadOnlyList block() - { - return GetRuleContexts(); - } - public MacroElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroElseIfBlockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroElseIfBlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroElseIfBlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroElseIfBlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroElseIfBlockStmtContext macroElseIfBlockStmt() - { - MacroElseIfBlockStmtContext _localctx = new MacroElseIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 114, RULE_macroElseIfBlockStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1084; Match(MACRO_ELSEIF); - State = 1086; - switch (Interpreter.AdaptivePredict(_input, 123, _ctx)) - { - case 1: - { - State = 1085; Match(WS); - } - break; - } - State = 1088; ifConditionStmt(); - State = 1089; Match(WS); - State = 1090; Match(THEN); - State = 1091; endOfStatement(); - State = 1097; - _errHandler.Sync(this); - _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 237)) & ~0x3f) == 0 && ((1L << (_la - 237)) & ((1L << (COMMENT - 237)) | (1L << (WS - 237)) | (1L << (IDENTIFIER - 237)))) != 0)) - { - { - State = 1095; - switch (Interpreter.AdaptivePredict(_input, 124, _ctx)) - { - case 1: - { - State = 1092; moduleDeclarations(); - } - break; - - case 2: - { - State = 1093; moduleBody(); - } - break; - - case 3: - { - State = 1094; block(); - } - break; - } - } - State = 1099; - _errHandler.Sync(this); - _la = _input.La(1); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MacroElseBlockStmtContext : ParserRuleContext - { - public ModuleBodyContext moduleBody(int i) - { - return GetRuleContext(i); - } - public BlockContext block(int i) - { - return GetRuleContext(i); - } - public ITerminalNode MACRO_ELSE() { return GetToken(VBAParser.MACRO_ELSE, 0); } - public ModuleDeclarationsContext moduleDeclarations(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList moduleBody() - { - return GetRuleContexts(); - } - public IReadOnlyList moduleDeclarations() - { - return GetRuleContexts(); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public IReadOnlyList block() - { - return GetRuleContexts(); - } - public MacroElseBlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroElseBlockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroElseBlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroElseBlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroElseBlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroElseBlockStmtContext macroElseBlockStmt() - { - MacroElseBlockStmtContext _localctx = new MacroElseBlockStmtContext(_ctx, State); - EnterRule(_localctx, 116, RULE_macroElseBlockStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1100; Match(MACRO_ELSE); - State = 1101; endOfStatement(); - State = 1107; - _errHandler.Sync(this); - _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 237)) & ~0x3f) == 0 && ((1L << (_la - 237)) & ((1L << (COMMENT - 237)) | (1L << (WS - 237)) | (1L << (IDENTIFIER - 237)))) != 0)) - { - { - State = 1105; - switch (Interpreter.AdaptivePredict(_input, 126, _ctx)) - { - case 1: - { - State = 1102; moduleDeclarations(); - } - break; - - case 2: - { - State = 1103; moduleBody(); - } - break; - - case 3: - { - State = 1104; block(); - } - break; - } - } - State = 1109; - _errHandler.Sync(this); - _la = _input.La(1); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MidStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public ITerminalNode MID() { return GetToken(VBAParser.MID, 0); } - public MidStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_midStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMidStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMidStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMidStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MidStmtContext midStmt() - { - MidStmtContext _localctx = new MidStmtContext(_ctx, State); - EnterRule(_localctx, 118, RULE_midStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1110; Match(MID); - State = 1112; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1111; Match(WS); - } - } - - State = 1114; Match(LPAREN); - State = 1116; - switch (Interpreter.AdaptivePredict(_input, 129, _ctx)) - { - case 1: - { - State = 1115; Match(WS); - } - break; - } - State = 1118; argsCall(); - State = 1120; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1119; Match(WS); - } - } - - State = 1122; Match(RPAREN); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class MkdirStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode MKDIR() { return GetToken(VBAParser.MKDIR, 0); } - public MkdirStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_mkdirStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMkdirStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMkdirStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMkdirStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MkdirStmtContext mkdirStmt() - { - MkdirStmtContext _localctx = new MkdirStmtContext(_ctx, State); - EnterRule(_localctx, 120, RULE_mkdirStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1124; Match(MKDIR); - State = 1125; Match(WS); - State = 1126; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class NameStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode NAME() { return GetToken(VBAParser.NAME, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } - public NameStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_nameStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterNameStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitNameStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitNameStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public NameStmtContext nameStmt() - { - NameStmtContext _localctx = new NameStmtContext(_ctx, State); - EnterRule(_localctx, 122, RULE_nameStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1128; Match(NAME); - State = 1129; Match(WS); - State = 1130; valueStmt(0); - State = 1131; Match(WS); - State = 1132; Match(AS); - State = 1133; Match(WS); - State = 1134; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class OnErrorStmtContext : ParserRuleContext - { - public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode ON_ERROR() { return GetToken(VBAParser.ON_ERROR, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } - public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } - public ITerminalNode ON_LOCAL_ERROR() { return GetToken(VBAParser.ON_LOCAL_ERROR, 0); } - public OnErrorStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_onErrorStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOnErrorStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOnErrorStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOnErrorStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public OnErrorStmtContext onErrorStmt() - { - OnErrorStmtContext _localctx = new OnErrorStmtContext(_ctx, State); - EnterRule(_localctx, 124, RULE_onErrorStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1136; - _la = _input.La(1); - if (!(_la == ON_ERROR || _la == ON_LOCAL_ERROR)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1137; Match(WS); - State = 1144; - switch (_input.La(1)) - { - case GOTO: - { - State = 1138; Match(GOTO); - State = 1139; Match(WS); - State = 1140; valueStmt(0); - } - break; - case RESUME: - { - State = 1141; Match(RESUME); - State = 1142; Match(WS); - State = 1143; Match(NEXT); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class OnGoToStmtContext : ParserRuleContext - { - public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public OnGoToStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_onGoToStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOnGoToStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOnGoToStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOnGoToStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public OnGoToStmtContext onGoToStmt() - { - OnGoToStmtContext _localctx = new OnGoToStmtContext(_ctx, State); - EnterRule(_localctx, 126, RULE_onGoToStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 1146; Match(ON); - State = 1147; Match(WS); - State = 1148; valueStmt(0); - State = 1149; Match(WS); - State = 1150; Match(GOTO); - State = 1151; Match(WS); - State = 1152; valueStmt(0); - State = 1163; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 134, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 1154; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1153; Match(WS); - } - } - - State = 1156; Match(T__1); - State = 1158; - switch (Interpreter.AdaptivePredict(_input, 133, _ctx)) - { - case 1: - { - State = 1157; Match(WS); - } - break; - } - State = 1160; valueStmt(0); - } - } - } - State = 1165; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 134, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class OnGoSubStmtContext : ParserRuleContext - { - public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public OnGoSubStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_onGoSubStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOnGoSubStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOnGoSubStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOnGoSubStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public OnGoSubStmtContext onGoSubStmt() - { - OnGoSubStmtContext _localctx = new OnGoSubStmtContext(_ctx, State); - EnterRule(_localctx, 128, RULE_onGoSubStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 1166; Match(ON); - State = 1167; Match(WS); - State = 1168; valueStmt(0); - State = 1169; Match(WS); - State = 1170; Match(GOSUB); - State = 1171; Match(WS); - State = 1172; valueStmt(0); - State = 1183; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 137, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 1174; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1173; Match(WS); - } - } - - State = 1176; Match(T__1); - State = 1178; - switch (Interpreter.AdaptivePredict(_input, 136, _ctx)) - { - case 1: - { - State = 1177; Match(WS); - } - break; - } - State = 1180; valueStmt(0); - } - } - } - State = 1185; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 137, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class OpenStmtContext : ParserRuleContext - { - public ITerminalNode LOCK_WRITE() { return GetToken(VBAParser.LOCK_WRITE, 0); } - public ITerminalNode ACCESS() { return GetToken(VBAParser.ACCESS, 0); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode LOCK_READ_WRITE() { return GetToken(VBAParser.LOCK_READ_WRITE, 0); } - public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } - public ITerminalNode WRITE() { return GetToken(VBAParser.WRITE, 0); } - public ITerminalNode LEN() { return GetToken(VBAParser.LEN, 0); } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } - public ITerminalNode READ() { return GetToken(VBAParser.READ, 0); } - public ITerminalNode SHARED() { return GetToken(VBAParser.SHARED, 0); } - public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } - public ITerminalNode APPEND() { return GetToken(VBAParser.APPEND, 0); } - public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } - public ITerminalNode RANDOM() { return GetToken(VBAParser.RANDOM, 0); } - public ITerminalNode OPEN() { return GetToken(VBAParser.OPEN, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LOCK_READ() { return GetToken(VBAParser.LOCK_READ, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode OUTPUT() { return GetToken(VBAParser.OUTPUT, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ITerminalNode READ_WRITE() { return GetToken(VBAParser.READ_WRITE, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public OpenStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_openStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOpenStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOpenStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOpenStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public OpenStmtContext openStmt() - { - OpenStmtContext _localctx = new OpenStmtContext(_ctx, State); - EnterRule(_localctx, 130, RULE_openStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1186; Match(OPEN); - State = 1187; Match(WS); - State = 1188; valueStmt(0); - State = 1189; Match(WS); - State = 1190; Match(FOR); - State = 1191; Match(WS); - State = 1192; - _la = _input.La(1); - if (!(_la == APPEND || _la == BINARY || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (INPUT - 86)) | (1L << (OUTPUT - 86)) | (1L << (RANDOM - 86)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1197; - switch (Interpreter.AdaptivePredict(_input, 138, _ctx)) - { - case 1: - { - State = 1193; Match(WS); - State = 1194; Match(ACCESS); - State = 1195; Match(WS); - State = 1196; - _la = _input.La(1); - if (!(((((_la - 142)) & ~0x3f) == 0 && ((1L << (_la - 142)) & ((1L << (READ - 142)) | (1L << (READ_WRITE - 142)) | (1L << (WRITE - 142)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - break; - } - State = 1201; - switch (Interpreter.AdaptivePredict(_input, 139, _ctx)) - { - case 1: - { - State = 1199; Match(WS); - State = 1200; - _la = _input.La(1); - if (!(((((_la - 99)) & ~0x3f) == 0 && ((1L << (_la - 99)) & ((1L << (LOCK_READ - 99)) | (1L << (LOCK_WRITE - 99)) | (1L << (LOCK_READ_WRITE - 99)) | (1L << (SHARED - 99)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - break; - } - State = 1203; Match(WS); - State = 1204; Match(AS); - State = 1205; Match(WS); - State = 1206; fileNumber(); - State = 1217; - switch (Interpreter.AdaptivePredict(_input, 142, _ctx)) - { - case 1: - { - State = 1207; Match(WS); - State = 1208; Match(LEN); - State = 1210; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1209; Match(WS); - } - } - - State = 1212; Match(EQ); - State = 1214; - switch (Interpreter.AdaptivePredict(_input, 141, _ctx)) - { - case 1: - { - State = 1213; Match(WS); - } - break; - } - State = 1216; valueStmt(0); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class OutputListContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList outputList_Expression() - { - return GetRuleContexts(); - } - public OutputList_ExpressionContext outputList_Expression(int i) - { - return GetRuleContext(i); - } - public OutputListContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_outputList; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOutputList(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOutputList(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOutputList(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public OutputListContext outputList() - { - OutputListContext _localctx = new OutputListContext(_ctx, State); - EnterRule(_localctx, 132, RULE_outputList); - int _la; - try - { - int _alt; - State = 1252; - switch (Interpreter.AdaptivePredict(_input, 152, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 1219; outputList_Expression(); - State = 1232; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 146, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 1221; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1220; Match(WS); - } - } - - State = 1223; - _la = _input.La(1); - if (!(_la == T__2 || _la == T__1)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1225; - switch (Interpreter.AdaptivePredict(_input, 144, _ctx)) - { - case 1: - { - State = 1224; Match(WS); - } - break; - } - State = 1228; - switch (Interpreter.AdaptivePredict(_input, 145, _ctx)) - { - case 1: - { - State = 1227; outputList_Expression(); - } - break; - } - } - } - } - State = 1234; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 146, _ctx); - } - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 1236; - switch (Interpreter.AdaptivePredict(_input, 147, _ctx)) - { - case 1: - { - State = 1235; outputList_Expression(); - } - break; - } - State = 1248; - _errHandler.Sync(this); - _alt = 1; - do - { - switch (_alt) - { - case 1: - { - { - State = 1239; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1238; Match(WS); - } - } - - State = 1241; - _la = _input.La(1); - if (!(_la == T__2 || _la == T__1)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1243; - switch (Interpreter.AdaptivePredict(_input, 149, _ctx)) - { - case 1: - { - State = 1242; Match(WS); - } - break; - } - State = 1246; - switch (Interpreter.AdaptivePredict(_input, 150, _ctx)) - { - case 1: - { - State = 1245; outputList_Expression(); - } - break; - } - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 1250; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 151, _ctx); - } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class OutputList_ExpressionContext : ParserRuleContext - { - public ITerminalNode TAB() { return GetToken(VBAParser.TAB, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode SPC() { return GetToken(VBAParser.SPC, 0); } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public OutputList_ExpressionContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_outputList_Expression; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterOutputList_Expression(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitOutputList_Expression(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitOutputList_Expression(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public OutputList_ExpressionContext outputList_Expression() - { - OutputList_ExpressionContext _localctx = new OutputList_ExpressionContext(_ctx, State); - EnterRule(_localctx, 134, RULE_outputList_Expression); - int _la; - try - { - State = 1271; - switch (Interpreter.AdaptivePredict(_input, 157, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 1254; valueStmt(0); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 1255; - _la = _input.La(1); - if (!(_la == SPC || _la == TAB)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1269; - switch (Interpreter.AdaptivePredict(_input, 156, _ctx)) - { - case 1: - { - State = 1257; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1256; Match(WS); - } - } - - State = 1259; Match(LPAREN); - State = 1261; - switch (Interpreter.AdaptivePredict(_input, 154, _ctx)) - { - case 1: - { - State = 1260; Match(WS); - } - break; - } - State = 1263; argsCall(); - State = 1265; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1264; Match(WS); - } - } - - State = 1267; Match(RPAREN); - } - break; - } - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class PrintStmtContext : ParserRuleContext - { - public ITerminalNode PRINT() { return GetToken(VBAParser.PRINT, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public OutputListContext outputList() - { - return GetRuleContext(0); - } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public PrintStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_printStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterPrintStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitPrintStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitPrintStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public PrintStmtContext printStmt() - { - PrintStmtContext _localctx = new PrintStmtContext(_ctx, State); - EnterRule(_localctx, 136, RULE_printStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1273; Match(PRINT); - State = 1274; Match(WS); - State = 1275; fileNumber(); - State = 1277; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1276; Match(WS); - } - } - - State = 1279; Match(T__1); - State = 1284; - switch (Interpreter.AdaptivePredict(_input, 160, _ctx)) - { - case 1: - { - State = 1281; - switch (Interpreter.AdaptivePredict(_input, 159, _ctx)) - { - case 1: - { - State = 1280; Match(WS); - } - break; - } - State = 1283; outputList(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class PropertyGetStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgListContext argList() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public ITerminalNode PROPERTY_GET() { return GetToken(VBAParser.PROPERTY_GET, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public ITerminalNode END_PROPERTY() { return GetToken(VBAParser.END_PROPERTY, 0); } - public PropertyGetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_propertyGetStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterPropertyGetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitPropertyGetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitPropertyGetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public PropertyGetStmtContext propertyGetStmt() - { - PropertyGetStmtContext _localctx = new PropertyGetStmtContext(_ctx, State); - EnterRule(_localctx, 138, RULE_propertyGetStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1289; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 1286; visibility(); - State = 1287; Match(WS); - } - } - - State = 1293; - _la = _input.La(1); - if (_la == STATIC) - { - { - State = 1291; Match(STATIC); - State = 1292; Match(WS); - } - } - - State = 1295; Match(PROPERTY_GET); - State = 1296; Match(WS); - State = 1297; ambiguousIdentifier(); - State = 1299; - switch (Interpreter.AdaptivePredict(_input, 163, _ctx)) - { - case 1: - { - State = 1298; typeHint(); - } - break; - } - State = 1305; - switch (Interpreter.AdaptivePredict(_input, 165, _ctx)) - { - case 1: - { - State = 1302; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1301; Match(WS); - } - } - - State = 1304; argList(); - } - break; - } - State = 1309; - switch (Interpreter.AdaptivePredict(_input, 166, _ctx)) - { - case 1: - { - State = 1307; Match(WS); - State = 1308; asTypeClause(); - } - break; - } - State = 1311; endOfStatement(); - State = 1313; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == WS || _la == IDENTIFIER) - { - { - State = 1312; block(); - } - } - - State = 1315; Match(END_PROPERTY); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class PropertySetStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgListContext argList() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public ITerminalNode PROPERTY_SET() { return GetToken(VBAParser.PROPERTY_SET, 0); } - public ITerminalNode END_PROPERTY() { return GetToken(VBAParser.END_PROPERTY, 0); } - public PropertySetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_propertySetStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterPropertySetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitPropertySetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitPropertySetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public PropertySetStmtContext propertySetStmt() - { - PropertySetStmtContext _localctx = new PropertySetStmtContext(_ctx, State); - EnterRule(_localctx, 140, RULE_propertySetStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1320; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 1317; visibility(); - State = 1318; Match(WS); - } - } - - State = 1324; - _la = _input.La(1); - if (_la == STATIC) - { - { - State = 1322; Match(STATIC); - State = 1323; Match(WS); - } - } - - State = 1326; Match(PROPERTY_SET); - State = 1327; Match(WS); - State = 1328; ambiguousIdentifier(); - State = 1333; - switch (Interpreter.AdaptivePredict(_input, 171, _ctx)) - { - case 1: - { - State = 1330; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1329; Match(WS); - } - } - - State = 1332; argList(); - } - break; - } - State = 1335; endOfStatement(); - State = 1337; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == WS || _la == IDENTIFIER) - { - { - State = 1336; block(); - } - } - - State = 1339; Match(END_PROPERTY); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class PropertyLetStmtContext : ParserRuleContext - { - public ITerminalNode PROPERTY_LET() { return GetToken(VBAParser.PROPERTY_LET, 0); } - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgListContext argList() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public ITerminalNode END_PROPERTY() { return GetToken(VBAParser.END_PROPERTY, 0); } - public PropertyLetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_propertyLetStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterPropertyLetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitPropertyLetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitPropertyLetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public PropertyLetStmtContext propertyLetStmt() - { - PropertyLetStmtContext _localctx = new PropertyLetStmtContext(_ctx, State); - EnterRule(_localctx, 142, RULE_propertyLetStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1344; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 1341; visibility(); - State = 1342; Match(WS); - } - } - - State = 1348; - _la = _input.La(1); - if (_la == STATIC) - { - { - State = 1346; Match(STATIC); - State = 1347; Match(WS); - } - } - - State = 1350; Match(PROPERTY_LET); - State = 1351; Match(WS); - State = 1352; ambiguousIdentifier(); - State = 1357; - switch (Interpreter.AdaptivePredict(_input, 176, _ctx)) - { - case 1: - { - State = 1354; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1353; Match(WS); - } - } - - State = 1356; argList(); - } - break; - } - State = 1359; endOfStatement(); - State = 1361; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == WS || _la == IDENTIFIER) - { - { - State = 1360; block(); - } - } - - State = 1363; Match(END_PROPERTY); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class PutStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public ITerminalNode PUT() { return GetToken(VBAParser.PUT, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public PutStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_putStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterPutStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitPutStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitPutStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public PutStmtContext putStmt() - { - PutStmtContext _localctx = new PutStmtContext(_ctx, State); - EnterRule(_localctx, 144, RULE_putStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1365; Match(PUT); - State = 1366; Match(WS); - State = 1367; fileNumber(); - State = 1369; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1368; Match(WS); - } - } - - State = 1371; Match(T__1); - State = 1373; - switch (Interpreter.AdaptivePredict(_input, 179, _ctx)) - { - case 1: - { - State = 1372; Match(WS); - } - break; - } - State = 1376; - switch (Interpreter.AdaptivePredict(_input, 180, _ctx)) - { - case 1: - { - State = 1375; valueStmt(0); - } - break; - } - State = 1379; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1378; Match(WS); - } - } - - State = 1381; Match(T__1); - State = 1383; - switch (Interpreter.AdaptivePredict(_input, 182, _ctx)) - { - case 1: - { - State = 1382; Match(WS); - } - break; - } - State = 1385; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class RaiseEventStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public ITerminalNode RAISEEVENT() { return GetToken(VBAParser.RAISEEVENT, 0); } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public RaiseEventStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_raiseEventStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterRaiseEventStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitRaiseEventStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitRaiseEventStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RaiseEventStmtContext raiseEventStmt() - { - RaiseEventStmtContext _localctx = new RaiseEventStmtContext(_ctx, State); - EnterRule(_localctx, 146, RULE_raiseEventStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1387; Match(RAISEEVENT); - State = 1388; Match(WS); - State = 1389; ambiguousIdentifier(); - State = 1404; - switch (Interpreter.AdaptivePredict(_input, 187, _ctx)) - { - case 1: - { - State = 1391; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1390; Match(WS); - } - } - - State = 1393; Match(LPAREN); - State = 1395; - switch (Interpreter.AdaptivePredict(_input, 184, _ctx)) - { - case 1: - { - State = 1394; Match(WS); - } - break; - } - State = 1401; - switch (Interpreter.AdaptivePredict(_input, 186, _ctx)) - { - case 1: - { - State = 1397; argsCall(); - State = 1399; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1398; Match(WS); - } - } - - } - break; - } - State = 1403; Match(RPAREN); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class RandomizeStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode RANDOMIZE() { return GetToken(VBAParser.RANDOMIZE, 0); } - public RandomizeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_randomizeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterRandomizeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitRandomizeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitRandomizeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RandomizeStmtContext randomizeStmt() - { - RandomizeStmtContext _localctx = new RandomizeStmtContext(_ctx, State); - EnterRule(_localctx, 148, RULE_randomizeStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1406; Match(RANDOMIZE); - State = 1409; - switch (Interpreter.AdaptivePredict(_input, 188, _ctx)) - { - case 1: - { - State = 1407; Match(WS); - State = 1408; valueStmt(0); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class RedimStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList redimSubStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode REDIM() { return GetToken(VBAParser.REDIM, 0); } - public ITerminalNode PRESERVE() { return GetToken(VBAParser.PRESERVE, 0); } - public RedimSubStmtContext redimSubStmt(int i) - { - return GetRuleContext(i); - } - public RedimStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_redimStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterRedimStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitRedimStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitRedimStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RedimStmtContext redimStmt() - { - RedimStmtContext _localctx = new RedimStmtContext(_ctx, State); - EnterRule(_localctx, 150, RULE_redimStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 1411; Match(REDIM); - State = 1412; Match(WS); - State = 1415; - switch (Interpreter.AdaptivePredict(_input, 189, _ctx)) - { - case 1: - { - State = 1413; Match(PRESERVE); - State = 1414; Match(WS); - } - break; - } - State = 1417; redimSubStmt(); - State = 1428; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 192, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 1419; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1418; Match(WS); - } - } - - State = 1421; Match(T__1); - State = 1423; - switch (Interpreter.AdaptivePredict(_input, 191, _ctx)) - { - case 1: - { - State = 1422; Match(WS); - } - break; - } - State = 1425; redimSubStmt(); - } - } - } - State = 1430; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 192, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class RedimSubStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public SubscriptsContext subscripts() - { - return GetRuleContext(0); - } - public RedimSubStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_redimSubStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterRedimSubStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitRedimSubStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitRedimSubStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RedimSubStmtContext redimSubStmt() - { - RedimSubStmtContext _localctx = new RedimSubStmtContext(_ctx, State); - EnterRule(_localctx, 152, RULE_redimSubStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1431; implicitCallStmt_InStmt(); - State = 1433; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1432; Match(WS); - } - } - - State = 1435; Match(LPAREN); - State = 1437; - switch (Interpreter.AdaptivePredict(_input, 194, _ctx)) - { - case 1: - { - State = 1436; Match(WS); - } - break; - } - State = 1439; subscripts(); - State = 1441; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1440; Match(WS); - } - } - - State = 1443; Match(RPAREN); - State = 1446; - switch (Interpreter.AdaptivePredict(_input, 196, _ctx)) - { - case 1: - { - State = 1444; Match(WS); - State = 1445; asTypeClause(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ResetStmtContext : ParserRuleContext - { - public ITerminalNode RESET() { return GetToken(VBAParser.RESET, 0); } - public ResetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_resetStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterResetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitResetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitResetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ResetStmtContext resetStmt() - { - ResetStmtContext _localctx = new ResetStmtContext(_ctx, State); - EnterRule(_localctx, 154, RULE_resetStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1448; Match(RESET); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ResumeStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } - public ResumeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_resumeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterResumeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitResumeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitResumeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ResumeStmtContext resumeStmt() - { - ResumeStmtContext _localctx = new ResumeStmtContext(_ctx, State); - EnterRule(_localctx, 156, RULE_resumeStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1450; Match(RESUME); - State = 1456; - switch (Interpreter.AdaptivePredict(_input, 198, _ctx)) - { - case 1: - { - State = 1451; Match(WS); - State = 1454; - switch (Interpreter.AdaptivePredict(_input, 197, _ctx)) - { - case 1: - { - State = 1452; Match(NEXT); - } - break; - - case 2: - { - State = 1453; ambiguousIdentifier(); - } - break; - } - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ReturnStmtContext : ParserRuleContext - { - public ITerminalNode RETURN() { return GetToken(VBAParser.RETURN, 0); } - public ReturnStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_returnStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterReturnStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitReturnStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitReturnStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ReturnStmtContext returnStmt() - { - ReturnStmtContext _localctx = new ReturnStmtContext(_ctx, State); - EnterRule(_localctx, 158, RULE_returnStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1458; Match(RETURN); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class RmdirStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } - public RmdirStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_rmdirStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterRmdirStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitRmdirStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitRmdirStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RmdirStmtContext rmdirStmt() - { - RmdirStmtContext _localctx = new RmdirStmtContext(_ctx, State); - EnterRule(_localctx, 160, RULE_rmdirStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1460; Match(RMDIR); - State = 1461; Match(WS); - State = 1462; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class RsetStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode RSET() { return GetToken(VBAParser.RSET, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public RsetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_rsetStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterRsetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitRsetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitRsetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RsetStmtContext rsetStmt() - { - RsetStmtContext _localctx = new RsetStmtContext(_ctx, State); - EnterRule(_localctx, 162, RULE_rsetStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1464; Match(RSET); - State = 1465; Match(WS); - State = 1466; implicitCallStmt_InStmt(); - State = 1468; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1467; Match(WS); - } - } - - State = 1470; Match(EQ); - State = 1472; - switch (Interpreter.AdaptivePredict(_input, 200, _ctx)) - { - case 1: - { - State = 1471; Match(WS); - } - break; - } - State = 1474; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SavepictureStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode SAVEPICTURE() { return GetToken(VBAParser.SAVEPICTURE, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public SavepictureStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_savepictureStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSavepictureStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSavepictureStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSavepictureStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SavepictureStmtContext savepictureStmt() - { - SavepictureStmtContext _localctx = new SavepictureStmtContext(_ctx, State); - EnterRule(_localctx, 164, RULE_savepictureStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1476; Match(SAVEPICTURE); - State = 1477; Match(WS); - State = 1478; valueStmt(0); - State = 1480; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1479; Match(WS); - } - } - - State = 1482; Match(T__1); - State = 1484; - switch (Interpreter.AdaptivePredict(_input, 202, _ctx)) - { - case 1: - { - State = 1483; Match(WS); - } - break; - } - State = 1486; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SaveSettingStmtContext : ParserRuleContext - { - public ITerminalNode SAVESETTING() { return GetToken(VBAParser.SAVESETTING, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public SaveSettingStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_saveSettingStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSaveSettingStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSaveSettingStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSaveSettingStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SaveSettingStmtContext saveSettingStmt() - { - SaveSettingStmtContext _localctx = new SaveSettingStmtContext(_ctx, State); - EnterRule(_localctx, 166, RULE_saveSettingStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1488; Match(SAVESETTING); - State = 1489; Match(WS); - State = 1490; valueStmt(0); - State = 1492; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1491; Match(WS); - } - } - - State = 1494; Match(T__1); - State = 1496; - switch (Interpreter.AdaptivePredict(_input, 204, _ctx)) - { - case 1: - { - State = 1495; Match(WS); - } - break; - } - State = 1498; valueStmt(0); - State = 1500; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1499; Match(WS); - } - } - - State = 1502; Match(T__1); - State = 1504; - switch (Interpreter.AdaptivePredict(_input, 206, _ctx)) - { - case 1: - { - State = 1503; Match(WS); - } - break; - } - State = 1506; valueStmt(0); - State = 1508; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1507; Match(WS); - } - } - - State = 1510; Match(T__1); - State = 1512; - switch (Interpreter.AdaptivePredict(_input, 208, _ctx)) - { - case 1: - { - State = 1511; Match(WS); - } - break; - } - State = 1514; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SeekStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public ITerminalNode SEEK() { return GetToken(VBAParser.SEEK, 0); } - public SeekStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_seekStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSeekStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSeekStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSeekStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SeekStmtContext seekStmt() - { - SeekStmtContext _localctx = new SeekStmtContext(_ctx, State); - EnterRule(_localctx, 168, RULE_seekStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1516; Match(SEEK); - State = 1517; Match(WS); - State = 1518; fileNumber(); - State = 1520; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1519; Match(WS); - } - } - - State = 1522; Match(T__1); - State = 1524; - switch (Interpreter.AdaptivePredict(_input, 210, _ctx)) - { - case 1: - { - State = 1523; Match(WS); - } - break; - } - State = 1526; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SelectCaseStmtContext : ParserRuleContext - { - public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode END_SELECT() { return GetToken(VBAParser.END_SELECT, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode SELECT() { return GetToken(VBAParser.SELECT, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public SC_CaseContext sC_Case(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList sC_Case() - { - return GetRuleContexts(); - } - public SelectCaseStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_selectCaseStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSelectCaseStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSelectCaseStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSelectCaseStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SelectCaseStmtContext selectCaseStmt() - { - SelectCaseStmtContext _localctx = new SelectCaseStmtContext(_ctx, State); - EnterRule(_localctx, 170, RULE_selectCaseStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1528; Match(SELECT); - State = 1529; Match(WS); - State = 1530; Match(CASE); - State = 1531; Match(WS); - State = 1532; valueStmt(0); - State = 1533; endOfStatement(); - State = 1537; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la == CASE) - { - { - { - State = 1534; sC_Case(); - } - } - State = 1539; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 1540; Match(END_SELECT); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SC_SelectionContext : ParserRuleContext - { - public SC_SelectionContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_sC_Selection; } } - - public SC_SelectionContext() { } - public virtual void CopyFrom(SC_SelectionContext context) - { - base.CopyFrom(context); - } - } - public partial class CaseCondValueContext : SC_SelectionContext - { - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public CaseCondValueContext(SC_SelectionContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterCaseCondValue(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitCaseCondValue(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitCaseCondValue(this); - else return visitor.VisitChildren(this); - } - } - public partial class CaseCondToContext : SC_SelectionContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public CaseCondToContext(SC_SelectionContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterCaseCondTo(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitCaseCondTo(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitCaseCondTo(this); - else return visitor.VisitChildren(this); - } - } - public partial class CaseCondIsContext : SC_SelectionContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ComparisonOperatorContext comparisonOperator() - { - return GetRuleContext(0); - } - public CaseCondIsContext(SC_SelectionContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterCaseCondIs(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitCaseCondIs(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitCaseCondIs(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SC_SelectionContext sC_Selection() - { - SC_SelectionContext _localctx = new SC_SelectionContext(_ctx, State); - EnterRule(_localctx, 172, RULE_sC_Selection); - int _la; - try - { - State = 1559; - switch (Interpreter.AdaptivePredict(_input, 214, _ctx)) - { - case 1: - _localctx = new CaseCondIsContext(_localctx); - EnterOuterAlt(_localctx, 1); - { - State = 1542; Match(IS); - State = 1544; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1543; Match(WS); - } - } - - State = 1546; comparisonOperator(); - State = 1548; - switch (Interpreter.AdaptivePredict(_input, 213, _ctx)) - { - case 1: - { - State = 1547; Match(WS); - } - break; - } - State = 1550; valueStmt(0); - } - break; - - case 2: - _localctx = new CaseCondToContext(_localctx); - EnterOuterAlt(_localctx, 2); - { - State = 1552; valueStmt(0); - State = 1553; Match(WS); - State = 1554; Match(TO); - State = 1555; Match(WS); - State = 1556; valueStmt(0); - } - break; - - case 3: - _localctx = new CaseCondValueContext(_localctx); - EnterOuterAlt(_localctx, 3); - { - State = 1558; valueStmt(0); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SC_CaseContext : ParserRuleContext - { - public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public SC_CondContext sC_Cond() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public SC_CaseContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_sC_Case; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSC_Case(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSC_Case(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSC_Case(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SC_CaseContext sC_Case() - { - SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); - EnterRule(_localctx, 174, RULE_sC_Case); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1561; Match(CASE); - State = 1562; Match(WS); - State = 1563; sC_Cond(); - State = 1564; endOfStatement(); - State = 1566; - switch (Interpreter.AdaptivePredict(_input, 215, _ctx)) - { - case 1: - { - State = 1565; block(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SC_CondContext : ParserRuleContext - { - public SC_CondContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_sC_Cond; } } - - public SC_CondContext() { } - public virtual void CopyFrom(SC_CondContext context) - { - base.CopyFrom(context); - } - } - public partial class CaseCondSelectionContext : SC_CondContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList sC_Selection() - { - return GetRuleContexts(); - } - public SC_SelectionContext sC_Selection(int i) - { - return GetRuleContext(i); - } - public CaseCondSelectionContext(SC_CondContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterCaseCondSelection(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitCaseCondSelection(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitCaseCondSelection(this); - else return visitor.VisitChildren(this); - } - } - public partial class CaseCondElseContext : SC_CondContext - { - public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } - public CaseCondElseContext(SC_CondContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterCaseCondElse(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitCaseCondElse(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitCaseCondElse(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SC_CondContext sC_Cond() - { - SC_CondContext _localctx = new SC_CondContext(_ctx, State); - EnterRule(_localctx, 176, RULE_sC_Cond); - int _la; - try - { - int _alt; - State = 1583; - switch (Interpreter.AdaptivePredict(_input, 219, _ctx)) - { - case 1: - _localctx = new CaseCondElseContext(_localctx); - EnterOuterAlt(_localctx, 1); - { - State = 1568; Match(ELSE); - } - break; - - case 2: - _localctx = new CaseCondSelectionContext(_localctx); - EnterOuterAlt(_localctx, 2); - { - State = 1569; sC_Selection(); - State = 1580; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 218, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 1571; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1570; Match(WS); - } - } - - State = 1573; Match(T__1); - State = 1575; - switch (Interpreter.AdaptivePredict(_input, 217, _ctx)) - { - case 1: - { - State = 1574; Match(WS); - } - break; - } - State = 1577; sC_Selection(); - } - } - } - State = 1582; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 218, _ctx); - } - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SendkeysStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public SendkeysStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_sendkeysStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSendkeysStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSendkeysStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSendkeysStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SendkeysStmtContext sendkeysStmt() - { - SendkeysStmtContext _localctx = new SendkeysStmtContext(_ctx, State); - EnterRule(_localctx, 178, RULE_sendkeysStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1585; Match(SENDKEYS); - State = 1586; Match(WS); - State = 1587; valueStmt(0); - State = 1596; - switch (Interpreter.AdaptivePredict(_input, 222, _ctx)) - { - case 1: - { - State = 1589; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1588; Match(WS); - } - } - - State = 1591; Match(T__1); - State = 1593; - switch (Interpreter.AdaptivePredict(_input, 221, _ctx)) - { - case 1: - { - State = 1592; Match(WS); - } - break; - } - State = 1595; valueStmt(0); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SetattrStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode SETATTR() { return GetToken(VBAParser.SETATTR, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public SetattrStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_setattrStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSetattrStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSetattrStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSetattrStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SetattrStmtContext setattrStmt() - { - SetattrStmtContext _localctx = new SetattrStmtContext(_ctx, State); - EnterRule(_localctx, 180, RULE_setattrStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1598; Match(SETATTR); - State = 1599; Match(WS); - State = 1600; valueStmt(0); - State = 1602; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1601; Match(WS); - } - } - - State = 1604; Match(T__1); - State = 1606; - switch (Interpreter.AdaptivePredict(_input, 224, _ctx)) - { - case 1: - { - State = 1605; Match(WS); - } - break; - } - State = 1608; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SetStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } - public SetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_setStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SetStmtContext setStmt() - { - SetStmtContext _localctx = new SetStmtContext(_ctx, State); - EnterRule(_localctx, 182, RULE_setStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1610; Match(SET); - State = 1611; Match(WS); - State = 1612; implicitCallStmt_InStmt(); - State = 1614; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1613; Match(WS); - } - } - - State = 1616; Match(EQ); - State = 1618; - switch (Interpreter.AdaptivePredict(_input, 226, _ctx)) - { - case 1: - { - State = 1617; Match(WS); - } - break; - } - State = 1620; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class StopStmtContext : ParserRuleContext - { - public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } - public StopStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_stopStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterStopStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitStopStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitStopStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public StopStmtContext stopStmt() - { - StopStmtContext _localctx = new StopStmtContext(_ctx, State); - EnterRule(_localctx, 184, RULE_stopStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1622; Match(STOP); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SubStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgListContext argList() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public ITerminalNode END_SUB() { return GetToken(VBAParser.END_SUB, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public SubStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_subStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSubStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSubStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSubStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SubStmtContext subStmt() - { - SubStmtContext _localctx = new SubStmtContext(_ctx, State); - EnterRule(_localctx, 186, RULE_subStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1627; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 1624; visibility(); - State = 1625; Match(WS); - } - } - - State = 1631; - _la = _input.La(1); - if (_la == STATIC) - { - { - State = 1629; Match(STATIC); - State = 1630; Match(WS); - } - } - - State = 1633; Match(SUB); - State = 1635; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1634; Match(WS); - } - } - - State = 1637; ambiguousIdentifier(); - State = 1642; - switch (Interpreter.AdaptivePredict(_input, 231, _ctx)) - { - case 1: - { - State = 1639; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1638; Match(WS); - } - } - - State = 1641; argList(); - } - break; - } - State = 1644; endOfStatement(); - State = 1646; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == WS || _la == IDENTIFIER) - { - { - State = 1645; block(); - } - } - - State = 1648; Match(END_SUB); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class TimeStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode TIME() { return GetToken(VBAParser.TIME, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public TimeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_timeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterTimeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitTimeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitTimeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TimeStmtContext timeStmt() - { - TimeStmtContext _localctx = new TimeStmtContext(_ctx, State); - EnterRule(_localctx, 188, RULE_timeStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1650; Match(TIME); - State = 1652; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1651; Match(WS); - } - } - - State = 1654; Match(EQ); - State = 1656; - switch (Interpreter.AdaptivePredict(_input, 234, _ctx)) - { - case 1: - { - State = 1655; Match(WS); - } - break; - } - State = 1658; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class TypeStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList typeStmt_Element() - { - return GetRuleContexts(); - } - public ITerminalNode TYPE() { return GetToken(VBAParser.TYPE, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeStmt_ElementContext typeStmt_Element(int i) - { - return GetRuleContext(i); - } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public ITerminalNode END_TYPE() { return GetToken(VBAParser.END_TYPE, 0); } - public TypeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_typeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterTypeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitTypeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitTypeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TypeStmtContext typeStmt() - { - TypeStmtContext _localctx = new TypeStmtContext(_ctx, State); - EnterRule(_localctx, 190, RULE_typeStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1663; - _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) - { - { - State = 1660; visibility(); - State = 1661; Match(WS); - } - } - - State = 1665; Match(TYPE); - State = 1666; Match(WS); - State = 1667; ambiguousIdentifier(); - State = 1668; endOfStatement(); - State = 1672; - _errHandler.Sync(this); - _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == IDENTIFIER) - { - { - { - State = 1669; typeStmt_Element(); - } - } - State = 1674; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 1675; Match(END_TYPE); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class TypeStmt_ElementContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public SubscriptsContext subscripts() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public TypeStmt_ElementContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_typeStmt_Element; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterTypeStmt_Element(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitTypeStmt_Element(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitTypeStmt_Element(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TypeStmt_ElementContext typeStmt_Element() - { - TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(_ctx, State); - EnterRule(_localctx, 192, RULE_typeStmt_Element); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1677; ambiguousIdentifier(); - State = 1692; - switch (Interpreter.AdaptivePredict(_input, 241, _ctx)) - { - case 1: - { - State = 1679; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1678; Match(WS); - } - } - - State = 1681; Match(LPAREN); - State = 1686; - switch (Interpreter.AdaptivePredict(_input, 239, _ctx)) - { - case 1: - { - State = 1683; - switch (Interpreter.AdaptivePredict(_input, 238, _ctx)) - { - case 1: - { - State = 1682; Match(WS); - } - break; - } - State = 1685; subscripts(); - } - break; - } - State = 1689; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1688; Match(WS); - } - } - - State = 1691; Match(RPAREN); - } - break; - } - State = 1696; - switch (Interpreter.AdaptivePredict(_input, 242, _ctx)) - { - case 1: - { - State = 1694; Match(WS); - State = 1695; asTypeClause(); - } - break; - } - State = 1698; endOfStatement(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class TypeOfStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode TYPEOF() { return GetToken(VBAParser.TYPEOF, 0); } - public TypeContext type() - { - return GetRuleContext(0); - } - public TypeOfStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_typeOfStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterTypeOfStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitTypeOfStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitTypeOfStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TypeOfStmtContext typeOfStmt() - { - TypeOfStmtContext _localctx = new TypeOfStmtContext(_ctx, State); - EnterRule(_localctx, 194, RULE_typeOfStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1700; Match(TYPEOF); - State = 1701; Match(WS); - State = 1702; valueStmt(0); - State = 1707; - switch (Interpreter.AdaptivePredict(_input, 243, _ctx)) - { - case 1: - { - State = 1703; Match(WS); - State = 1704; Match(IS); - State = 1705; Match(WS); - State = 1706; type(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class UnloadStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode UNLOAD() { return GetToken(VBAParser.UNLOAD, 0); } - public UnloadStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_unloadStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterUnloadStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitUnloadStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitUnloadStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public UnloadStmtContext unloadStmt() - { - UnloadStmtContext _localctx = new UnloadStmtContext(_ctx, State); - EnterRule(_localctx, 196, RULE_unloadStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1709; Match(UNLOAD); - State = 1710; Match(WS); - State = 1711; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class UnlockStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ITerminalNode UNLOCK() { return GetToken(VBAParser.UNLOCK, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public UnlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_unlockStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterUnlockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitUnlockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitUnlockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public UnlockStmtContext unlockStmt() - { - UnlockStmtContext _localctx = new UnlockStmtContext(_ctx, State); - EnterRule(_localctx, 198, RULE_unlockStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1713; Match(UNLOCK); - State = 1714; Match(WS); - State = 1715; fileNumber(); - State = 1730; - switch (Interpreter.AdaptivePredict(_input, 247, _ctx)) - { - case 1: - { - State = 1717; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1716; Match(WS); - } - } - - State = 1719; Match(T__1); - State = 1721; - switch (Interpreter.AdaptivePredict(_input, 245, _ctx)) - { - case 1: - { - State = 1720; Match(WS); - } - break; - } - State = 1723; valueStmt(0); - State = 1728; - switch (Interpreter.AdaptivePredict(_input, 246, _ctx)) - { - case 1: - { - State = 1724; Match(WS); - State = 1725; Match(TO); - State = 1726; Match(WS); - State = 1727; valueStmt(0); - } - break; - } - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ValueStmtContext : ParserRuleContext - { - public ValueStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_valueStmt; } } - - public ValueStmtContext() { } - public virtual void CopyFrom(ValueStmtContext context) - { - base.CopyFrom(context); - } - } - public partial class VsAssignContext : ValueStmtContext - { - public ITerminalNode ASSIGN() { return GetToken(VBAParser.ASSIGN, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public VsAssignContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsAssign(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsAssign(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsAssign(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsNotContext : ValueStmtContext - { - public ITerminalNode NOT() { return GetToken(VBAParser.NOT, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public VsNotContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsNot(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsNot(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsNot(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsStructContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsStructContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsStruct(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsStruct(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsStruct(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsTypeOfContext : ValueStmtContext - { - public TypeOfStmtContext typeOfStmt() - { - return GetRuleContext(0); - } - public VsTypeOfContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsTypeOf(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsTypeOf(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsTypeOf(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsICSContext : ValueStmtContext - { - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public VsICSContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsICS(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsICS(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsICS(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsRelationalContext : ValueStmtContext - { - public ITerminalNode GEQ() { return GetToken(VBAParser.GEQ, 0); } - public ITerminalNode NEQ() { return GetToken(VBAParser.NEQ, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode LEQ() { return GetToken(VBAParser.LEQ, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode LT() { return GetToken(VBAParser.LT, 0); } - public ITerminalNode GT() { return GetToken(VBAParser.GT, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsRelationalContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsRelational(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsRelational(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsRelational(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsXorContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode XOR() { return GetToken(VBAParser.XOR, 0); } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsXorContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsXor(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsXor(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsXor(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsAndContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode AND() { return GetToken(VBAParser.AND, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsAndContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsAnd(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsAnd(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsAnd(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsPowContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public ITerminalNode POW() { return GetToken(VBAParser.POW, 0); } - public VsPowContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsPow(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsPow(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsPow(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsAddContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode PLUS() { return GetToken(VBAParser.PLUS, 0); } - public ITerminalNode MINUS() { return GetToken(VBAParser.MINUS, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsAddContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsAdd(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsAdd(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsAdd(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsModContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode MOD() { return GetToken(VBAParser.MOD, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsModContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsMod(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsMod(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsMod(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsIntDivContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode INTDIV() { return GetToken(VBAParser.INTDIV, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsIntDivContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsIntDiv(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsIntDiv(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsIntDiv(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsAmpContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode AMPERSAND() { return GetToken(VBAParser.AMPERSAND, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsAmpContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsAmp(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsAmp(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsAmp(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsAddressOfContext : ValueStmtContext - { - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode ADDRESSOF() { return GetToken(VBAParser.ADDRESSOF, 0); } - public VsAddressOfContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsAddressOf(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsAddressOf(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsAddressOf(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsNewContext : ValueStmtContext - { - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } - public VsNewContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsNew(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsNew(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsNew(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsOrContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode OR() { return GetToken(VBAParser.OR, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsOrContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsOr(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsOr(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsOr(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsMultContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public ITerminalNode MULT() { return GetToken(VBAParser.MULT, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public ITerminalNode DIV() { return GetToken(VBAParser.DIV, 0); } - public VsMultContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsMult(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsMult(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsMult(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsLiteralContext : ValueStmtContext - { - public LiteralContext literal() - { - return GetRuleContext(0); - } - public VsLiteralContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsLiteral(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsLiteral(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsLiteral(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsEqvContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode EQV() { return GetToken(VBAParser.EQV, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsEqvContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsEqv(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsEqv(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsEqv(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsNegationContext : ValueStmtContext - { - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode MINUS() { return GetToken(VBAParser.MINUS, 0); } - public VsNegationContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsNegation(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsNegation(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsNegation(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsImpContext : ValueStmtContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode IMP() { return GetToken(VBAParser.IMP, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public VsImpContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsImp(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsImp(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsImp(this); - else return visitor.VisitChildren(this); - } - } - public partial class VsMidContext : ValueStmtContext - { - public MidStmtContext midStmt() - { - return GetRuleContext(0); - } - public VsMidContext(ValueStmtContext context) { CopyFrom(context); } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVsMid(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVsMid(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVsMid(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ValueStmtContext valueStmt() - { - return valueStmt(0); - } - - private ValueStmtContext valueStmt(int _p) - { - ParserRuleContext _parentctx = _ctx; - int _parentState = State; - ValueStmtContext _localctx = new ValueStmtContext(_ctx, _parentState); - ValueStmtContext _prevctx = _localctx; - int _startState = 200; - EnterRecursionRule(_localctx, 200, RULE_valueStmt, _p); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 1787; - switch (Interpreter.AdaptivePredict(_input, 258, _ctx)) - { - case 1: - { - _localctx = new VsNewContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - - State = 1733; Match(NEW); - State = 1735; - switch (Interpreter.AdaptivePredict(_input, 248, _ctx)) - { - case 1: - { - State = 1734; Match(WS); - } - break; - } - State = 1737; valueStmt(19); - } - break; - - case 2: - { - _localctx = new VsAddressOfContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1738; Match(ADDRESSOF); - State = 1740; - switch (Interpreter.AdaptivePredict(_input, 249, _ctx)) - { - case 1: - { - State = 1739; Match(WS); - } - break; - } - State = 1742; valueStmt(16); - } - break; - - case 3: - { - _localctx = new VsAssignContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1743; implicitCallStmt_InStmt(); - State = 1745; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1744; Match(WS); - } - } - - State = 1747; Match(ASSIGN); - State = 1749; - switch (Interpreter.AdaptivePredict(_input, 251, _ctx)) - { - case 1: - { - State = 1748; Match(WS); - } - break; - } - State = 1751; valueStmt(15); - } - break; - - case 4: - { - _localctx = new VsNegationContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1753; Match(MINUS); - State = 1755; - switch (Interpreter.AdaptivePredict(_input, 252, _ctx)) - { - case 1: - { - State = 1754; Match(WS); - } - break; - } - State = 1757; valueStmt(13); - } - break; - - case 5: - { - _localctx = new VsNotContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1758; Match(NOT); - State = 1760; - switch (Interpreter.AdaptivePredict(_input, 253, _ctx)) - { - case 1: - { - State = 1759; Match(WS); - } - break; - } - State = 1762; valueStmt(6); - } - break; - - case 6: - { - _localctx = new VsLiteralContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1763; literal(); - } - break; - - case 7: - { - _localctx = new VsICSContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1764; implicitCallStmt_InStmt(); - } - break; - - case 8: - { - _localctx = new VsStructContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1765; Match(LPAREN); - State = 1767; - switch (Interpreter.AdaptivePredict(_input, 254, _ctx)) - { - case 1: - { - State = 1766; Match(WS); - } - break; - } - State = 1769; valueStmt(0); - State = 1780; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la == T__1 || _la == WS) - { - { - { - State = 1771; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1770; Match(WS); - } - } - - State = 1773; Match(T__1); - State = 1775; - switch (Interpreter.AdaptivePredict(_input, 256, _ctx)) - { - case 1: - { - State = 1774; Match(WS); - } - break; - } - State = 1777; valueStmt(0); - } - } - State = 1782; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 1783; Match(RPAREN); - } - break; - - case 9: - { - _localctx = new VsTypeOfContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1785; typeOfStmt(); - } - break; - - case 10: - { - _localctx = new VsMidContext(_localctx); - _ctx = _localctx; - _prevctx = _localctx; - State = 1786; midStmt(); - } - break; - } - _ctx.stop = _input.Lt(-1); - State = 1899; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 284, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - if (_parseListeners != null) TriggerExitRuleEvent(); - _prevctx = _localctx; - { - State = 1897; - switch (Interpreter.AdaptivePredict(_input, 283, _ctx)) - { - case 1: - { - _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1789; - if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1791; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1790; Match(WS); - } - } - - State = 1793; Match(POW); - State = 1795; - switch (Interpreter.AdaptivePredict(_input, 260, _ctx)) - { - case 1: - { - State = 1794; Match(WS); - } - break; - } - State = 1797; valueStmt(15); - } - break; - - case 2: - { - _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1798; - if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1800; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1799; Match(WS); - } - } - - State = 1802; - _la = _input.La(1); - if (!(_la == DIV || _la == MULT)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1804; - switch (Interpreter.AdaptivePredict(_input, 262, _ctx)) - { - case 1: - { - State = 1803; Match(WS); - } - break; - } - State = 1806; valueStmt(13); - } - break; - - case 3: - { - _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1807; - if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1809; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1808; Match(WS); - } - } - - State = 1811; Match(INTDIV); - State = 1813; - switch (Interpreter.AdaptivePredict(_input, 264, _ctx)) - { - case 1: - { - State = 1812; Match(WS); - } - break; - } - State = 1815; valueStmt(12); - } - break; - - case 4: - { - _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1816; - if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1818; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1817; Match(WS); - } - } - - State = 1820; Match(MOD); - State = 1822; - switch (Interpreter.AdaptivePredict(_input, 266, _ctx)) - { - case 1: - { - State = 1821; Match(WS); - } - break; - } - State = 1824; valueStmt(11); - } - break; - - case 5: - { - _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1825; - if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1827; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1826; Match(WS); - } - } - - State = 1829; - _la = _input.La(1); - if (!(_la == MINUS || _la == PLUS)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1831; - switch (Interpreter.AdaptivePredict(_input, 268, _ctx)) - { - case 1: - { - State = 1830; Match(WS); - } - break; - } - State = 1833; valueStmt(10); - } - break; - - case 6: - { - _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1834; - if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1836; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1835; Match(WS); - } - } - - State = 1838; Match(AMPERSAND); - State = 1840; - switch (Interpreter.AdaptivePredict(_input, 270, _ctx)) - { - case 1: - { - State = 1839; Match(WS); - } - break; - } - State = 1842; valueStmt(9); - } - break; - - case 7: - { - _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1843; - if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1845; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1844; Match(WS); - } - } - - State = 1847; - _la = _input.La(1); - if (!(_la == IS || _la == LIKE || ((((_la - 190)) & ~0x3f) == 0 && ((1L << (_la - 190)) & ((1L << (EQ - 190)) | (1L << (GEQ - 190)) | (1L << (GT - 190)) | (1L << (LEQ - 190)) | (1L << (LT - 190)) | (1L << (NEQ - 190)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 1849; - switch (Interpreter.AdaptivePredict(_input, 272, _ctx)) - { - case 1: - { - State = 1848; Match(WS); - } - break; - } - State = 1851; valueStmt(8); - } - break; - - case 8: - { - _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1852; - if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1854; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1853; Match(WS); - } - } - - State = 1856; Match(AND); - State = 1858; - switch (Interpreter.AdaptivePredict(_input, 274, _ctx)) - { - case 1: - { - State = 1857; Match(WS); - } - break; - } - State = 1860; valueStmt(6); - } - break; - - case 9: - { - _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1861; - if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1863; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1862; Match(WS); - } - } - - State = 1865; Match(OR); - State = 1867; - switch (Interpreter.AdaptivePredict(_input, 276, _ctx)) - { - case 1: - { - State = 1866; Match(WS); - } - break; - } - State = 1869; valueStmt(5); - } - break; - - case 10: - { - _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1870; - if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1872; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1871; Match(WS); - } - } - - State = 1874; Match(XOR); - State = 1876; - switch (Interpreter.AdaptivePredict(_input, 278, _ctx)) - { - case 1: - { - State = 1875; Match(WS); - } - break; - } - State = 1878; valueStmt(4); - } - break; - - case 11: - { - _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1879; - if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1881; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1880; Match(WS); - } - } - - State = 1883; Match(EQV); - State = 1885; - switch (Interpreter.AdaptivePredict(_input, 280, _ctx)) - { - case 1: - { - State = 1884; Match(WS); - } - break; - } - State = 1887; valueStmt(3); - } - break; - - case 12: - { - _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); - PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1888; - if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1890; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1889; Match(WS); - } - } - - State = 1892; Match(IMP); - State = 1894; - switch (Interpreter.AdaptivePredict(_input, 282, _ctx)) - { - case 1: - { - State = 1893; Match(WS); - } - break; - } - State = 1896; valueStmt(2); - } - break; - } - } - } - State = 1901; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 284, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - UnrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public partial class VariableStmtContext : ParserRuleContext - { - public VariableListStmtContext variableListStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode DIM() { return GetToken(VBAParser.DIM, 0); } - public VisibilityContext visibility() - { - return GetRuleContext(0); - } - public ITerminalNode WITHEVENTS() { return GetToken(VBAParser.WITHEVENTS, 0); } - public VariableStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_variableStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVariableStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVariableStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVariableStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public VariableStmtContext variableStmt() - { - VariableStmtContext _localctx = new VariableStmtContext(_ctx, State); - EnterRule(_localctx, 202, RULE_variableStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1905; - switch (_input.La(1)) - { - case DIM: - { - State = 1902; Match(DIM); - } - break; - case STATIC: - { - State = 1903; Match(STATIC); - } - break; - case FRIEND: - case GLOBAL: - case PRIVATE: - case PUBLIC: - { - State = 1904; visibility(); - } - break; - default: - throw new NoViableAltException(this); - } - State = 1907; Match(WS); - State = 1910; - switch (Interpreter.AdaptivePredict(_input, 286, _ctx)) - { - case 1: - { - State = 1908; Match(WITHEVENTS); - State = 1909; Match(WS); - } - break; - } - State = 1912; variableListStmt(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class VariableListStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList variableSubStmt() - { - return GetRuleContexts(); - } - public VariableSubStmtContext variableSubStmt(int i) - { - return GetRuleContext(i); - } - public VariableListStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_variableListStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVariableListStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVariableListStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVariableListStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public VariableListStmtContext variableListStmt() - { - VariableListStmtContext _localctx = new VariableListStmtContext(_ctx, State); - EnterRule(_localctx, 204, RULE_variableListStmt); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 1914; variableSubStmt(); - State = 1925; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 289, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 1916; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1915; Match(WS); - } - } - - State = 1918; Match(T__1); - State = 1920; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1919; Match(WS); - } - } - - State = 1922; variableSubStmt(); - } - } - } - State = 1927; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 289, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class VariableSubStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public SubscriptsContext subscripts() - { - return GetRuleContext(0); - } - public VariableSubStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_variableSubStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVariableSubStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVariableSubStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVariableSubStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public VariableSubStmtContext variableSubStmt() - { - VariableSubStmtContext _localctx = new VariableSubStmtContext(_ctx, State); - EnterRule(_localctx, 206, RULE_variableSubStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1928; ambiguousIdentifier(); - State = 1946; - switch (Interpreter.AdaptivePredict(_input, 295, _ctx)) - { - case 1: - { - State = 1930; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1929; Match(WS); - } - } - - State = 1932; Match(LPAREN); - State = 1934; - switch (Interpreter.AdaptivePredict(_input, 291, _ctx)) - { - case 1: - { - State = 1933; Match(WS); - } - break; - } - State = 1940; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (LPAREN - 194)) | (1L << (MINUS - 194)) | (1L << (STRINGLITERAL - 194)) | (1L << (OCTLITERAL - 194)) | (1L << (HEXLITERAL - 194)) | (1L << (SHORTLITERAL - 194)) | (1L << (INTEGERLITERAL - 194)) | (1L << (DOUBLELITERAL - 194)) | (1L << (DATELITERAL - 194)) | (1L << (WS - 194)) | (1L << (IDENTIFIER - 194)))) != 0)) - { - { - State = 1936; subscripts(); - State = 1938; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1937; Match(WS); - } - } - - } - } - - State = 1942; Match(RPAREN); - State = 1944; - switch (Interpreter.AdaptivePredict(_input, 294, _ctx)) - { - case 1: - { - State = 1943; Match(WS); - } - break; - } - } - break; - } - State = 1949; - switch (Interpreter.AdaptivePredict(_input, 296, _ctx)) - { - case 1: - { - State = 1948; typeHint(); - } - break; - } - State = 1953; - switch (Interpreter.AdaptivePredict(_input, 297, _ctx)) - { - case 1: - { - State = 1951; Match(WS); - State = 1952; asTypeClause(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class WhileWendStmtContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WEND() { return GetToken(VBAParser.WEND, 0); } - public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public WhileWendStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_whileWendStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterWhileWendStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitWhileWendStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitWhileWendStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public WhileWendStmtContext whileWendStmt() - { - WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); - EnterRule(_localctx, 208, RULE_whileWendStmt); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1955; Match(WHILE); - State = 1956; Match(WS); - State = 1957; valueStmt(0); - State = 1958; endOfStatement(); - State = 1960; - switch (Interpreter.AdaptivePredict(_input, 298, _ctx)) - { - case 1: - { - State = 1959; block(); - } - break; - } - State = 1962; Match(WEND); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class WidthStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WIDTH() { return GetToken(VBAParser.WIDTH, 0); } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public WidthStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_widthStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterWidthStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitWidthStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitWidthStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public WidthStmtContext widthStmt() - { - WidthStmtContext _localctx = new WidthStmtContext(_ctx, State); - EnterRule(_localctx, 210, RULE_widthStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1964; Match(WIDTH); - State = 1965; Match(WS); - State = 1966; fileNumber(); - State = 1968; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1967; Match(WS); - } - } - - State = 1970; Match(T__1); - State = 1972; - switch (Interpreter.AdaptivePredict(_input, 300, _ctx)) - { - case 1: - { - State = 1971; Match(WS); - } - break; - } - State = 1974; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class WithStmtContext : ParserRuleContext - { - public ITerminalNode WITH() { return GetToken(VBAParser.WITH, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode END_WITH() { return GetToken(VBAParser.END_WITH, 0); } - public TypeContext type() - { - return GetRuleContext(0); - } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public EndOfStatementContext endOfStatement() - { - return GetRuleContext(0); - } - public BlockContext block() - { - return GetRuleContext(0); - } - public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } - public WithStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_withStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterWithStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitWithStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitWithStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public WithStmtContext withStmt() - { - WithStmtContext _localctx = new WithStmtContext(_ctx, State); - EnterRule(_localctx, 212, RULE_withStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1976; Match(WITH); - State = 1977; Match(WS); - State = 1982; - switch (Interpreter.AdaptivePredict(_input, 301, _ctx)) - { - case 1: - { - State = 1978; implicitCallStmt_InStmt(); - } - break; - - case 2: - { - { - State = 1979; Match(NEW); - State = 1980; Match(WS); - State = 1981; type(); - } - } - break; - } - State = 1984; endOfStatement(); - State = 1986; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la == WS || _la == IDENTIFIER) - { - { - State = 1985; block(); - } - } - - State = 1988; Match(END_WITH); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class WriteStmtContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public OutputListContext outputList() - { - return GetRuleContext(0); - } - public ITerminalNode WRITE() { return GetToken(VBAParser.WRITE, 0); } - public FileNumberContext fileNumber() - { - return GetRuleContext(0); - } - public WriteStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_writeStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterWriteStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitWriteStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitWriteStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public WriteStmtContext writeStmt() - { - WriteStmtContext _localctx = new WriteStmtContext(_ctx, State); - EnterRule(_localctx, 214, RULE_writeStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 1990; Match(WRITE); - State = 1991; Match(WS); - State = 1992; fileNumber(); - State = 1994; - _la = _input.La(1); - if (_la == WS) - { - { - State = 1993; Match(WS); - } - } - - State = 1996; Match(T__1); - State = 2001; - switch (Interpreter.AdaptivePredict(_input, 305, _ctx)) - { - case 1: - { - State = 1998; - switch (Interpreter.AdaptivePredict(_input, 304, _ctx)) - { - case 1: - { - State = 1997; Match(WS); - } - break; - } - State = 2000; outputList(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class FileNumberContext : ParserRuleContext - { - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public FileNumberContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_fileNumber; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterFileNumber(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitFileNumber(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitFileNumber(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public FileNumberContext fileNumber() - { - FileNumberContext _localctx = new FileNumberContext(_ctx, State); - EnterRule(_localctx, 216, RULE_fileNumber); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2004; - _la = _input.La(1); - if (_la == T__5) - { - { - State = 2003; Match(T__5); - } - } - - State = 2006; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ExplicitCallStmtContext : ParserRuleContext - { - public ECS_ProcedureCallContext eCS_ProcedureCall() - { - return GetRuleContext(0); - } - public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() - { - return GetRuleContext(0); - } - public ExplicitCallStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_explicitCallStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterExplicitCallStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitExplicitCallStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitExplicitCallStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ExplicitCallStmtContext explicitCallStmt() - { - ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); - EnterRule(_localctx, 218, RULE_explicitCallStmt); - try - { - State = 2010; - switch (Interpreter.AdaptivePredict(_input, 307, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 2008; eCS_ProcedureCall(); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 2009; eCS_MemberProcedureCall(); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ECS_ProcedureCallContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode RPAREN(int i) - { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public IReadOnlyList subscripts() - { - return GetRuleContexts(); - } - public SubscriptsContext subscripts(int i) - { - return GetRuleContext(i); - } - public ITerminalNode LPAREN(int i) - { - return GetToken(VBAParser.LPAREN, i); - } - public ECS_ProcedureCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_eCS_ProcedureCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterECS_ProcedureCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitECS_ProcedureCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitECS_ProcedureCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ECS_ProcedureCallContext eCS_ProcedureCall() - { - ECS_ProcedureCallContext _localctx = new ECS_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 220, RULE_eCS_ProcedureCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2012; Match(CALL); - State = 2013; Match(WS); - State = 2014; ambiguousIdentifier(); - State = 2016; - switch (Interpreter.AdaptivePredict(_input, 308, _ctx)) - { - case 1: - { - State = 2015; typeHint(); - } - break; - } - State = 2031; - switch (Interpreter.AdaptivePredict(_input, 312, _ctx)) - { - case 1: - { - State = 2019; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2018; Match(WS); - } - } - - State = 2021; Match(LPAREN); - State = 2023; - switch (Interpreter.AdaptivePredict(_input, 310, _ctx)) - { - case 1: - { - State = 2022; Match(WS); - } - break; - } - State = 2025; argsCall(); - State = 2027; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2026; Match(WS); - } - } - - State = 2029; Match(RPAREN); - } - break; - } - State = 2042; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 314, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2034; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2033; Match(WS); - } - } - - State = 2036; Match(LPAREN); - State = 2037; subscripts(); - State = 2038; Match(RPAREN); - } - } - } - State = 2044; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 314, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ECS_MemberProcedureCallContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public SubscriptsContext subscripts(int i) - { - return GetRuleContext(i); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode RPAREN(int i) - { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public IReadOnlyList subscripts() - { - return GetRuleContexts(); - } - public ITerminalNode LPAREN(int i) - { - return GetToken(VBAParser.LPAREN, i); - } - public ECS_MemberProcedureCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_eCS_MemberProcedureCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterECS_MemberProcedureCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitECS_MemberProcedureCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitECS_MemberProcedureCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() - { - ECS_MemberProcedureCallContext _localctx = new ECS_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 222, RULE_eCS_MemberProcedureCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2045; Match(CALL); - State = 2046; Match(WS); - State = 2048; - switch (Interpreter.AdaptivePredict(_input, 315, _ctx)) - { - case 1: - { - State = 2047; implicitCallStmt_InStmt(); - } - break; - } - State = 2050; Match(T__0); - State = 2051; ambiguousIdentifier(); - State = 2053; - switch (Interpreter.AdaptivePredict(_input, 316, _ctx)) - { - case 1: - { - State = 2052; typeHint(); - } - break; - } - State = 2068; - switch (Interpreter.AdaptivePredict(_input, 320, _ctx)) - { - case 1: - { - State = 2056; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2055; Match(WS); - } - } - - State = 2058; Match(LPAREN); - State = 2060; - switch (Interpreter.AdaptivePredict(_input, 318, _ctx)) - { - case 1: - { - State = 2059; Match(WS); - } - break; - } - State = 2062; argsCall(); - State = 2064; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2063; Match(WS); - } - } - - State = 2066; Match(RPAREN); - } - break; - } - State = 2079; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 322, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2071; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2070; Match(WS); - } - } - - State = 2073; Match(LPAREN); - State = 2074; subscripts(); - State = 2075; Match(RPAREN); - } - } - } - State = 2081; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 322, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ImplicitCallStmt_InBlockContext : ParserRuleContext - { - public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() - { - return GetRuleContext(0); - } - public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() - { - return GetRuleContext(0); - } - public ImplicitCallStmt_InBlockContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_implicitCallStmt_InBlock; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterImplicitCallStmt_InBlock(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitImplicitCallStmt_InBlock(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitImplicitCallStmt_InBlock(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() - { - ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); - EnterRule(_localctx, 224, RULE_implicitCallStmt_InBlock); - try - { - State = 2084; - switch (Interpreter.AdaptivePredict(_input, 323, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 2082; iCS_B_MemberProcedureCall(); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 2083; iCS_B_ProcedureCall(); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ICS_B_MemberProcedureCallContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - return GetRuleContext(0); - } - public SubscriptsContext subscripts(int i) - { - return GetRuleContext(i); - } - public DictionaryCallStmtContext dictionaryCallStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode RPAREN(int i) - { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public IReadOnlyList subscripts() - { - return GetRuleContexts(); - } - public ITerminalNode LPAREN(int i) - { - return GetToken(VBAParser.LPAREN, i); - } - public ICS_B_MemberProcedureCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_iCS_B_MemberProcedureCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterICS_B_MemberProcedureCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitICS_B_MemberProcedureCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitICS_B_MemberProcedureCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() - { - ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 226, RULE_iCS_B_MemberProcedureCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2087; - switch (Interpreter.AdaptivePredict(_input, 324, _ctx)) - { - case 1: - { - State = 2086; implicitCallStmt_InStmt(); - } - break; - } - State = 2089; Match(T__0); - State = 2090; ambiguousIdentifier(); - State = 2092; - switch (Interpreter.AdaptivePredict(_input, 325, _ctx)) - { - case 1: - { - State = 2091; typeHint(); - } - break; - } - State = 2096; - switch (Interpreter.AdaptivePredict(_input, 326, _ctx)) - { - case 1: - { - State = 2094; Match(WS); - State = 2095; argsCall(); - } - break; - } - State = 2102; - switch (Interpreter.AdaptivePredict(_input, 328, _ctx)) - { - case 1: - { - State = 2099; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2098; Match(WS); - } - } - - State = 2101; dictionaryCallStmt(); - } - break; - } - State = 2113; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 330, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2105; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2104; Match(WS); - } - } - - State = 2107; Match(LPAREN); - State = 2108; subscripts(); - State = 2109; Match(RPAREN); - } - } - } - State = 2115; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 330, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ICS_B_ProcedureCallContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode RPAREN(int i) - { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public CertainIdentifierContext certainIdentifier() - { - return GetRuleContext(0); - } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public IReadOnlyList subscripts() - { - return GetRuleContexts(); - } - public SubscriptsContext subscripts(int i) - { - return GetRuleContext(i); - } - public ITerminalNode LPAREN(int i) - { - return GetToken(VBAParser.LPAREN, i); - } - public ICS_B_ProcedureCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_iCS_B_ProcedureCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterICS_B_ProcedureCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitICS_B_ProcedureCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitICS_B_ProcedureCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() - { - ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 228, RULE_iCS_B_ProcedureCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2116; certainIdentifier(); - State = 2119; - switch (Interpreter.AdaptivePredict(_input, 331, _ctx)) - { - case 1: - { - State = 2117; Match(WS); - State = 2118; argsCall(); - } - break; - } - State = 2130; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 333, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2122; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2121; Match(WS); - } - } - - State = 2124; Match(LPAREN); - State = 2125; subscripts(); - State = 2126; Match(RPAREN); - } - } - } - State = 2132; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 333, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ImplicitCallStmt_InStmtContext : ParserRuleContext - { - public ICS_S_MembersCallContext iCS_S_MembersCall() - { - return GetRuleContext(0); - } - public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() - { - return GetRuleContext(0); - } - public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() - { - return GetRuleContext(0); - } - public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() - { - return GetRuleContext(0); - } - public ImplicitCallStmt_InStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_implicitCallStmt_InStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterImplicitCallStmt_InStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitImplicitCallStmt_InStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitImplicitCallStmt_InStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() - { - ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); - EnterRule(_localctx, 230, RULE_implicitCallStmt_InStmt); - try - { - State = 2137; - switch (Interpreter.AdaptivePredict(_input, 334, _ctx)) - { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 2133; iCS_S_MembersCall(); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 2134; iCS_S_VariableOrProcedureCall(); - } - break; - - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 2135; iCS_S_ProcedureOrArrayCall(); - } - break; - - case 4: - EnterOuterAlt(_localctx, 4); - { - State = 2136; iCS_S_DictionaryCall(); - } - break; - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ICS_S_VariableOrProcedureCallContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode RPAREN(int i) - { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public IReadOnlyList subscripts() - { - return GetRuleContexts(); - } - public SubscriptsContext subscripts(int i) - { - return GetRuleContext(i); - } - public DictionaryCallStmtContext dictionaryCallStmt() - { - return GetRuleContext(0); - } - public ITerminalNode LPAREN(int i) - { - return GetToken(VBAParser.LPAREN, i); - } - public ICS_S_VariableOrProcedureCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_iCS_S_VariableOrProcedureCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterICS_S_VariableOrProcedureCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitICS_S_VariableOrProcedureCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitICS_S_VariableOrProcedureCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() - { - ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); - EnterRule(_localctx, 232, RULE_iCS_S_VariableOrProcedureCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2139; ambiguousIdentifier(); - State = 2141; - switch (Interpreter.AdaptivePredict(_input, 335, _ctx)) - { - case 1: - { - State = 2140; typeHint(); - } - break; - } - State = 2147; - switch (Interpreter.AdaptivePredict(_input, 337, _ctx)) - { - case 1: - { - State = 2144; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2143; Match(WS); - } - } - - State = 2146; dictionaryCallStmt(); - } - break; - } - State = 2158; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 339, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2150; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2149; Match(WS); - } - } - - State = 2152; Match(LPAREN); - State = 2153; subscripts(); - State = 2154; Match(RPAREN); - } - } - } - State = 2160; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 339, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ICS_S_ProcedureOrArrayCallContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public ArgsCallContext argsCall() - { - return GetRuleContext(0); - } - public BaseTypeContext baseType() - { - return GetRuleContext(0); - } - public SubscriptsContext subscripts(int i) - { - return GetRuleContext(i); - } - public DictionaryCallStmtContext dictionaryCallStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode RPAREN(int i) - { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public IReadOnlyList subscripts() - { - return GetRuleContexts(); - } - public ITerminalNode LPAREN(int i) - { - return GetToken(VBAParser.LPAREN, i); - } - public ICS_S_ProcedureOrArrayCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_iCS_S_ProcedureOrArrayCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterICS_S_ProcedureOrArrayCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitICS_S_ProcedureOrArrayCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitICS_S_ProcedureOrArrayCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() - { - ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); - EnterRule(_localctx, 234, RULE_iCS_S_ProcedureOrArrayCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2163; - switch (Interpreter.AdaptivePredict(_input, 340, _ctx)) - { - case 1: - { - State = 2161; ambiguousIdentifier(); - } - break; - - case 2: - { - State = 2162; baseType(); - } - break; - } - State = 2166; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND) - { - { - State = 2165; typeHint(); - } - } - - State = 2169; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2168; Match(WS); - } - } - - State = 2171; Match(LPAREN); - State = 2173; - switch (Interpreter.AdaptivePredict(_input, 343, _ctx)) - { - case 1: - { - State = 2172; Match(WS); - } - break; - } - State = 2179; - switch (Interpreter.AdaptivePredict(_input, 345, _ctx)) - { - case 1: - { - State = 2175; argsCall(); - State = 2177; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2176; Match(WS); - } - } - - } - break; - } - State = 2181; Match(RPAREN); - State = 2186; - switch (Interpreter.AdaptivePredict(_input, 347, _ctx)) - { - case 1: - { - State = 2183; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2182; Match(WS); - } - } - - State = 2185; dictionaryCallStmt(); - } - break; - } - State = 2197; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 349, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2189; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2188; Match(WS); - } - } - - State = 2191; Match(LPAREN); - State = 2192; subscripts(); - State = 2193; Match(RPAREN); - } - } - } - State = 2199; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 349, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ICS_S_MembersCallContext : ParserRuleContext - { - public ICS_S_MemberCallContext iCS_S_MemberCall(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public SubscriptsContext subscripts(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList iCS_S_MemberCall() - { - return GetRuleContexts(); - } - public DictionaryCallStmtContext dictionaryCallStmt() - { - return GetRuleContext(0); - } - public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() - { - return GetRuleContext(0); - } - public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode RPAREN(int i) - { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList subscripts() - { - return GetRuleContexts(); - } - public ITerminalNode LPAREN(int i) - { - return GetToken(VBAParser.LPAREN, i); - } - public ICS_S_MembersCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_iCS_S_MembersCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterICS_S_MembersCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitICS_S_MembersCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitICS_S_MembersCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ICS_S_MembersCallContext iCS_S_MembersCall() - { - ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 236, RULE_iCS_S_MembersCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2202; - switch (Interpreter.AdaptivePredict(_input, 350, _ctx)) - { - case 1: - { - State = 2200; iCS_S_VariableOrProcedureCall(); - } - break; - - case 2: - { - State = 2201; iCS_S_ProcedureOrArrayCall(); - } - break; - } - State = 2208; - _errHandler.Sync(this); - _alt = 1; - do - { - switch (_alt) - { - case 1: - { - { - State = 2204; iCS_S_MemberCall(); - State = 2206; - switch (Interpreter.AdaptivePredict(_input, 351, _ctx)) - { - case 1: - { - State = 2205; Match(WS); - } - break; - } - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 2210; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 352, _ctx); - } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); - State = 2216; - switch (Interpreter.AdaptivePredict(_input, 354, _ctx)) - { - case 1: - { - State = 2213; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2212; Match(WS); - } - } - - State = 2215; dictionaryCallStmt(); - } - break; - } - State = 2227; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 356, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2219; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2218; Match(WS); - } - } - - State = 2221; Match(LPAREN); - State = 2222; subscripts(); - State = 2223; Match(RPAREN); - } - } - } - State = 2229; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 356, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ICS_S_MemberCallContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() - { - return GetRuleContext(0); - } - public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() - { - return GetRuleContext(0); - } - public ICS_S_MemberCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_iCS_S_MemberCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterICS_S_MemberCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitICS_S_MemberCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitICS_S_MemberCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ICS_S_MemberCallContext iCS_S_MemberCall() - { - ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 238, RULE_iCS_S_MemberCall); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2230; - _la = _input.La(1); - if (!(_la == T__6 || _la == T__0)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 2232; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2231; Match(WS); - } - } - - State = 2236; - switch (Interpreter.AdaptivePredict(_input, 358, _ctx)) - { - case 1: - { - State = 2234; iCS_S_VariableOrProcedureCall(); - } - break; - - case 2: - { - State = 2235; iCS_S_ProcedureOrArrayCall(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ICS_S_DictionaryCallContext : ParserRuleContext - { - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public DictionaryCallStmtContext dictionaryCallStmt() - { - return GetRuleContext(0); - } - public ICS_S_DictionaryCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_iCS_S_DictionaryCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterICS_S_DictionaryCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitICS_S_DictionaryCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitICS_S_DictionaryCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() - { - ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 240, RULE_iCS_S_DictionaryCall); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2239; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2238; Match(WS); - } - } - - State = 2241; dictionaryCallStmt(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ArgsCallContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList argCall() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ArgCallContext argCall(int i) - { - return GetRuleContext(i); - } - public ArgsCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_argsCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterArgsCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitArgsCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitArgsCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ArgsCallContext argsCall() - { - ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 242, RULE_argsCall); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2255; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 363, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2244; - switch (Interpreter.AdaptivePredict(_input, 360, _ctx)) - { - case 1: - { - State = 2243; argCall(); - } - break; - } - State = 2247; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2246; Match(WS); - } - } - - State = 2249; - _la = _input.La(1); - if (!(_la == T__2 || _la == T__1)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 2251; - switch (Interpreter.AdaptivePredict(_input, 362, _ctx)) - { - case 1: - { - State = 2250; Match(WS); - } - break; - } - } - } - } - State = 2257; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 363, _ctx); - } - State = 2258; argCall(); - State = 2271; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 367, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2260; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2259; Match(WS); - } - } - - State = 2262; - _la = _input.La(1); - if (!(_la == T__2 || _la == T__1)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 2264; - switch (Interpreter.AdaptivePredict(_input, 365, _ctx)) - { - case 1: - { - State = 2263; Match(WS); - } - break; - } - State = 2267; - switch (Interpreter.AdaptivePredict(_input, 366, _ctx)) - { - case 1: - { - State = 2266; argCall(); - } - break; - } - } - } - } - State = 2273; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 367, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ArgCallContext : ParserRuleContext - { - public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } - public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } - public ArgCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_argCall; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterArgCall(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitArgCall(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitArgCall(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ArgCallContext argCall() - { - ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 244, RULE_argCall); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2275; - switch (Interpreter.AdaptivePredict(_input, 368, _ctx)) - { - case 1: - { - State = 2274; Match(LPAREN); - } - break; - } - State = 2279; - switch (Interpreter.AdaptivePredict(_input, 369, _ctx)) - { - case 1: - { - State = 2277; - _la = _input.La(1); - if (!(_la == BYVAL || _la == BYREF || _la == PARAMARRAY)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 2278; Match(WS); - } - break; - } - State = 2282; - _la = _input.La(1); - if (_la == RPAREN) - { - { - State = 2281; Match(RPAREN); - } - } - - State = 2284; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class DictionaryCallStmtContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public DictionaryCallStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dictionaryCallStmt; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterDictionaryCallStmt(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitDictionaryCallStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitDictionaryCallStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DictionaryCallStmtContext dictionaryCallStmt() - { - DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 246, RULE_dictionaryCallStmt); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2286; Match(T__6); - State = 2288; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2287; Match(WS); - } - } - - State = 2290; ambiguousIdentifier(); - State = 2292; - switch (Interpreter.AdaptivePredict(_input, 372, _ctx)) - { - case 1: - { - State = 2291; typeHint(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ArgListContext : ParserRuleContext - { - public ArgContext arg(int i) - { - return GetRuleContext(i); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public IReadOnlyList arg() - { - return GetRuleContexts(); - } - public ArgListContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_argList; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterArgList(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitArgList(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitArgList(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ArgListContext argList() - { - ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 248, RULE_argList); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2294; Match(LPAREN); - State = 2312; - switch (Interpreter.AdaptivePredict(_input, 377, _ctx)) - { - case 1: - { - State = 2296; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2295; Match(WS); - } - } - - State = 2298; arg(); - State = 2309; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 376, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2300; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2299; Match(WS); - } - } - - State = 2302; Match(T__1); - State = 2304; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2303; Match(WS); - } - } - - State = 2306; arg(); - } - } - } - State = 2311; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 376, _ctx); - } - } - break; - } - State = 2315; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2314; Match(WS); - } - } - - State = 2317; Match(RPAREN); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ArgContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ArgDefaultValueContext argDefaultValue() - { - return GetRuleContext(0); - } - public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public TypeHintContext typeHint() - { - return GetRuleContext(0); - } - public ITerminalNode OPTIONAL() { return GetToken(VBAParser.OPTIONAL, 0); } - public AsTypeClauseContext asTypeClause() - { - return GetRuleContext(0); - } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } - public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } - public ArgContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_arg; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterArg(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitArg(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitArg(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ArgContext arg() - { - ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 250, RULE_arg); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2321; - switch (Interpreter.AdaptivePredict(_input, 379, _ctx)) - { - case 1: - { - State = 2319; Match(OPTIONAL); - State = 2320; Match(WS); - } - break; - } - State = 2325; - switch (Interpreter.AdaptivePredict(_input, 380, _ctx)) - { - case 1: - { - State = 2323; - _la = _input.La(1); - if (!(_la == BYVAL || _la == BYREF)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 2324; Match(WS); - } - break; - } - State = 2329; - switch (Interpreter.AdaptivePredict(_input, 381, _ctx)) - { - case 1: - { - State = 2327; Match(PARAMARRAY); - State = 2328; Match(WS); - } - break; - } - State = 2331; ambiguousIdentifier(); - State = 2333; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND) - { - { - State = 2332; typeHint(); - } - } - - State = 2343; - switch (Interpreter.AdaptivePredict(_input, 385, _ctx)) - { - case 1: - { - State = 2336; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2335; Match(WS); - } - } - - State = 2338; Match(LPAREN); - State = 2340; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2339; Match(WS); - } - } - - State = 2342; Match(RPAREN); - } - break; - } - State = 2349; - switch (Interpreter.AdaptivePredict(_input, 387, _ctx)) - { - case 1: - { - State = 2346; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2345; Match(WS); - } - } - - State = 2348; asTypeClause(); - } - break; - } - State = 2355; - switch (Interpreter.AdaptivePredict(_input, 389, _ctx)) - { - case 1: - { - State = 2352; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2351; Match(WS); - } - } - - State = 2354; argDefaultValue(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ArgDefaultValueContext : ParserRuleContext - { - public ValueStmtContext valueStmt() - { - return GetRuleContext(0); - } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ArgDefaultValueContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_argDefaultValue; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterArgDefaultValue(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitArgDefaultValue(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitArgDefaultValue(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ArgDefaultValueContext argDefaultValue() - { - ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 252, RULE_argDefaultValue); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2357; Match(EQ); - State = 2359; - switch (Interpreter.AdaptivePredict(_input, 390, _ctx)) - { - case 1: - { - State = 2358; Match(WS); - } - break; - } - State = 2361; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SubscriptsContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList subscript() - { - return GetRuleContexts(); - } - public SubscriptContext subscript(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public SubscriptsContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_subscripts; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSubscripts(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSubscripts(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSubscripts(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SubscriptsContext subscripts() - { - SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 254, RULE_subscripts); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2363; subscript(); - State = 2374; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 393, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2365; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2364; Match(WS); - } - } - - State = 2367; Match(T__1); - State = 2369; - switch (Interpreter.AdaptivePredict(_input, 392, _ctx)) - { - case 1: - { - State = 2368; Match(WS); - } - break; - } - State = 2371; subscript(); - } - } - } - State = 2376; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 393, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class SubscriptContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList valueStmt() - { - return GetRuleContexts(); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ValueStmtContext valueStmt(int i) - { - return GetRuleContext(i); - } - public SubscriptContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_subscript; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterSubscript(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitSubscript(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitSubscript(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SubscriptContext subscript() - { - SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 256, RULE_subscript); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2382; - switch (Interpreter.AdaptivePredict(_input, 394, _ctx)) - { - case 1: - { - State = 2377; valueStmt(0); - State = 2378; Match(WS); - State = 2379; Match(TO); - State = 2380; Match(WS); - } - break; - } - State = 2384; valueStmt(0); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class AmbiguousIdentifierContext : ParserRuleContext - { - public AmbiguousKeywordContext ambiguousKeyword(int i) - { - return GetRuleContext(i); - } - public ITerminalNode IDENTIFIER(int i) - { - return GetToken(VBAParser.IDENTIFIER, i); - } - public IReadOnlyList ambiguousKeyword() - { - return GetRuleContexts(); - } - public IReadOnlyList IDENTIFIER() { return GetTokens(VBAParser.IDENTIFIER); } - public AmbiguousIdentifierContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ambiguousIdentifier; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterAmbiguousIdentifier(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitAmbiguousIdentifier(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitAmbiguousIdentifier(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public AmbiguousIdentifierContext ambiguousIdentifier() - { - AmbiguousIdentifierContext _localctx = new AmbiguousIdentifierContext(_ctx, State); - EnterRule(_localctx, 258, RULE_ambiguousIdentifier); - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2388; - _errHandler.Sync(this); - _alt = 1; - do - { - switch (_alt) - { - case 1: - { - State = 2388; - switch (_input.La(1)) - { - case IDENTIFIER: - { - State = 2386; Match(IDENTIFIER); - } - break; - case ACCESS: - case ADDRESSOF: - case ALIAS: - case AND: - case ATTRIBUTE: - case APPACTIVATE: - case APPEND: - case AS: - case BEGIN: - case BEEP: - case BINARY: - case BOOLEAN: - case BYVAL: - case BYREF: - case BYTE: - case CALL: - case CASE: - case CHDIR: - case CHDRIVE: - case CLASS: - case CLOSE: - case COLLECTION: - case CONST: - case DATABASE: - case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFDEC: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: - case DELETESETTING: - case DIM: - case DO: - case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: - case END: - case ENUM: - case EQV: - case ERASE: - case ERROR: - case EVENT: - case FALSE: - case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: - case IMP: - case IMPLEMENTS: - case IN: - case INPUT: - case IS: - case INTEGER: - case KILL: - case LOAD: - case LOCK: - case LONG: - case LOOP: - case LEN: - case LET: - case LIB: - case LIKE: - case LSET: - case ME: - case MID: - case MKDIR: - case MOD: - case NAME: - case NEXT: - case NEW: - case NOT: - case NOTHING: - case NULL: - case ON: - case OPEN: - case OPTIONAL: - case OR: - case OUTPUT: - case PARAMARRAY: - case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: - case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: - case REM: - case RESET: - case RESUME: - case RETURN: - case RMDIR: - case RSET: - case SAVEPICTURE: - case SAVESETTING: - case SEEK: - case SELECT: - case SENDKEYS: - case SET: - case SETATTR: - case SHARED: - case SINGLE: - case SPC: - case STATIC: - case STEP: - case STOP: - case STRING: - case SUB: - case TAB: - case TEXT: - case THEN: - case TIME: - case TO: - case TRUE: - case TYPE: - case TYPEOF: - case UNLOAD: - case UNLOCK: - case UNTIL: - case VARIANT: - case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: - case WITHEVENTS: - case WRITE: - case XOR: - { - State = 2387; ambiguousKeyword(); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 2390; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 396, _ctx); - } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class AsTypeClauseContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public TypeContext type() - { - return GetRuleContext(0); - } - public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } - public FieldLengthContext fieldLength() - { - return GetRuleContext(0); - } - public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } - public AsTypeClauseContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_asTypeClause; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterAsTypeClause(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitAsTypeClause(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitAsTypeClause(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public AsTypeClauseContext asTypeClause() - { - AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 260, RULE_asTypeClause); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2392; Match(AS); - State = 2394; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2393; Match(WS); - } - } - - State = 2398; - switch (Interpreter.AdaptivePredict(_input, 398, _ctx)) - { - case 1: - { - State = 2396; Match(NEW); - State = 2397; Match(WS); - } - break; - } - State = 2400; type(); - State = 2405; - switch (Interpreter.AdaptivePredict(_input, 400, _ctx)) - { - case 1: - { - State = 2402; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2401; Match(WS); - } - } - - State = 2404; fieldLength(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class BaseTypeContext : ParserRuleContext - { - public ITerminalNode COLLECTION() { return GetToken(VBAParser.COLLECTION, 0); } - public ITerminalNode INTEGER() { return GetToken(VBAParser.INTEGER, 0); } - public ITerminalNode LONG() { return GetToken(VBAParser.LONG, 0); } - public ITerminalNode VARIANT() { return GetToken(VBAParser.VARIANT, 0); } - public ITerminalNode BYTE() { return GetToken(VBAParser.BYTE, 0); } - public ITerminalNode STRING() { return GetToken(VBAParser.STRING, 0); } - public ITerminalNode BOOLEAN() { return GetToken(VBAParser.BOOLEAN, 0); } - public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } - public ITerminalNode DOUBLE() { return GetToken(VBAParser.DOUBLE, 0); } - public ITerminalNode SINGLE() { return GetToken(VBAParser.SINGLE, 0); } - public BaseTypeContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_baseType; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterBaseType(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitBaseType(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitBaseType(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public BaseTypeContext baseType() - { - BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 262, RULE_baseType); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2407; - _la = _input.La(1); - if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la == INTEGER || _la == LONG || ((((_la - 159)) & ~0x3f) == 0 && ((1L << (_la - 159)) & ((1L << (SINGLE - 159)) | (1L << (STRING - 159)) | (1L << (VARIANT - 159)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class CertainIdentifierContext : ParserRuleContext - { - public AmbiguousKeywordContext ambiguousKeyword(int i) - { - return GetRuleContext(i); - } - public ITerminalNode IDENTIFIER(int i) - { - return GetToken(VBAParser.IDENTIFIER, i); - } - public IReadOnlyList ambiguousKeyword() - { - return GetRuleContexts(); - } - public IReadOnlyList IDENTIFIER() { return GetTokens(VBAParser.IDENTIFIER); } - public CertainIdentifierContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_certainIdentifier; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterCertainIdentifier(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitCertainIdentifier(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitCertainIdentifier(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CertainIdentifierContext certainIdentifier() - { - CertainIdentifierContext _localctx = new CertainIdentifierContext(_ctx, State); - EnterRule(_localctx, 264, RULE_certainIdentifier); - try - { - int _alt; - State = 2424; - switch (_input.La(1)) - { - case IDENTIFIER: - EnterOuterAlt(_localctx, 1); - { - State = 2409; Match(IDENTIFIER); - State = 2414; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 402, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - State = 2412; - switch (_input.La(1)) - { - case ACCESS: - case ADDRESSOF: - case ALIAS: - case AND: - case ATTRIBUTE: - case APPACTIVATE: - case APPEND: - case AS: - case BEGIN: - case BEEP: - case BINARY: - case BOOLEAN: - case BYVAL: - case BYREF: - case BYTE: - case CALL: - case CASE: - case CHDIR: - case CHDRIVE: - case CLASS: - case CLOSE: - case COLLECTION: - case CONST: - case DATABASE: - case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFDEC: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: - case DELETESETTING: - case DIM: - case DO: - case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: - case END: - case ENUM: - case EQV: - case ERASE: - case ERROR: - case EVENT: - case FALSE: - case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: - case IMP: - case IMPLEMENTS: - case IN: - case INPUT: - case IS: - case INTEGER: - case KILL: - case LOAD: - case LOCK: - case LONG: - case LOOP: - case LEN: - case LET: - case LIB: - case LIKE: - case LSET: - case ME: - case MID: - case MKDIR: - case MOD: - case NAME: - case NEXT: - case NEW: - case NOT: - case NOTHING: - case NULL: - case ON: - case OPEN: - case OPTIONAL: - case OR: - case OUTPUT: - case PARAMARRAY: - case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: - case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: - case REM: - case RESET: - case RESUME: - case RETURN: - case RMDIR: - case RSET: - case SAVEPICTURE: - case SAVESETTING: - case SEEK: - case SELECT: - case SENDKEYS: - case SET: - case SETATTR: - case SHARED: - case SINGLE: - case SPC: - case STATIC: - case STEP: - case STOP: - case STRING: - case SUB: - case TAB: - case TEXT: - case THEN: - case TIME: - case TO: - case TRUE: - case TYPE: - case TYPEOF: - case UNLOAD: - case UNLOCK: - case UNTIL: - case VARIANT: - case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: - case WITHEVENTS: - case WRITE: - case XOR: - { - State = 2410; ambiguousKeyword(); - } - break; - case IDENTIFIER: - { - State = 2411; Match(IDENTIFIER); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - State = 2416; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 402, _ctx); - } - } - break; - case ACCESS: - case ADDRESSOF: - case ALIAS: - case AND: - case ATTRIBUTE: - case APPACTIVATE: - case APPEND: - case AS: - case BEGIN: - case BEEP: - case BINARY: - case BOOLEAN: - case BYVAL: - case BYREF: - case BYTE: - case CALL: - case CASE: - case CHDIR: - case CHDRIVE: - case CLASS: - case CLOSE: - case COLLECTION: - case CONST: - case DATABASE: - case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFDEC: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: - case DELETESETTING: - case DIM: - case DO: - case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: - case END: - case ENUM: - case EQV: - case ERASE: - case ERROR: - case EVENT: - case FALSE: - case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: - case IMP: - case IMPLEMENTS: - case IN: - case INPUT: - case IS: - case INTEGER: - case KILL: - case LOAD: - case LOCK: - case LONG: - case LOOP: - case LEN: - case LET: - case LIB: - case LIKE: - case LSET: - case ME: - case MID: - case MKDIR: - case MOD: - case NAME: - case NEXT: - case NEW: - case NOT: - case NOTHING: - case NULL: - case ON: - case OPEN: - case OPTIONAL: - case OR: - case OUTPUT: - case PARAMARRAY: - case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: - case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: - case REM: - case RESET: - case RESUME: - case RETURN: - case RMDIR: - case RSET: - case SAVEPICTURE: - case SAVESETTING: - case SEEK: - case SELECT: - case SENDKEYS: - case SET: - case SETATTR: - case SHARED: - case SINGLE: - case SPC: - case STATIC: - case STEP: - case STOP: - case STRING: - case SUB: - case TAB: - case TEXT: - case THEN: - case TIME: - case TO: - case TRUE: - case TYPE: - case TYPEOF: - case UNLOAD: - case UNLOCK: - case UNTIL: - case VARIANT: - case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: - case WITHEVENTS: - case WRITE: - case XOR: - EnterOuterAlt(_localctx, 2); - { - State = 2417; ambiguousKeyword(); - State = 2420; - _errHandler.Sync(this); - _alt = 1; - do - { - switch (_alt) - { - case 1: - { - State = 2420; - switch (_input.La(1)) - { - case ACCESS: - case ADDRESSOF: - case ALIAS: - case AND: - case ATTRIBUTE: - case APPACTIVATE: - case APPEND: - case AS: - case BEGIN: - case BEEP: - case BINARY: - case BOOLEAN: - case BYVAL: - case BYREF: - case BYTE: - case CALL: - case CASE: - case CHDIR: - case CHDRIVE: - case CLASS: - case CLOSE: - case COLLECTION: - case CONST: - case DATABASE: - case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFDEC: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: - case DELETESETTING: - case DIM: - case DO: - case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: - case END: - case ENUM: - case EQV: - case ERASE: - case ERROR: - case EVENT: - case FALSE: - case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: - case IMP: - case IMPLEMENTS: - case IN: - case INPUT: - case IS: - case INTEGER: - case KILL: - case LOAD: - case LOCK: - case LONG: - case LOOP: - case LEN: - case LET: - case LIB: - case LIKE: - case LSET: - case ME: - case MID: - case MKDIR: - case MOD: - case NAME: - case NEXT: - case NEW: - case NOT: - case NOTHING: - case NULL: - case ON: - case OPEN: - case OPTIONAL: - case OR: - case OUTPUT: - case PARAMARRAY: - case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: - case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: - case REM: - case RESET: - case RESUME: - case RETURN: - case RMDIR: - case RSET: - case SAVEPICTURE: - case SAVESETTING: - case SEEK: - case SELECT: - case SENDKEYS: - case SET: - case SETATTR: - case SHARED: - case SINGLE: - case SPC: - case STATIC: - case STEP: - case STOP: - case STRING: - case SUB: - case TAB: - case TEXT: - case THEN: - case TIME: - case TO: - case TRUE: - case TYPE: - case TYPEOF: - case UNLOAD: - case UNLOCK: - case UNTIL: - case VARIANT: - case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: - case WITHEVENTS: - case WRITE: - case XOR: - { - State = 2418; ambiguousKeyword(); - } - break; - case IDENTIFIER: - { - State = 2419; Match(IDENTIFIER); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 2422; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 404, _ctx); - } while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ComparisonOperatorContext : ParserRuleContext - { - public ITerminalNode GEQ() { return GetToken(VBAParser.GEQ, 0); } - public ITerminalNode NEQ() { return GetToken(VBAParser.NEQ, 0); } - public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } - public ITerminalNode LEQ() { return GetToken(VBAParser.LEQ, 0); } - public ITerminalNode LT() { return GetToken(VBAParser.LT, 0); } - public ITerminalNode GT() { return GetToken(VBAParser.GT, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } - public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_comparisonOperator; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterComparisonOperator(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitComparisonOperator(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitComparisonOperator(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ComparisonOperatorContext comparisonOperator() - { - ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 266, RULE_comparisonOperator); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2426; - _la = _input.La(1); - if (!(_la == IS || _la == LIKE || ((((_la - 190)) & ~0x3f) == 0 && ((1L << (_la - 190)) & ((1L << (EQ - 190)) | (1L << (GEQ - 190)) | (1L << (GT - 190)) | (1L << (LEQ - 190)) | (1L << (LT - 190)) | (1L << (NEQ - 190)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class ComplexTypeContext : ParserRuleContext - { - public IReadOnlyList ambiguousIdentifier() - { - return GetRuleContexts(); - } - public AmbiguousIdentifierContext ambiguousIdentifier(int i) - { - return GetRuleContext(i); - } - public ComplexTypeContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_complexType; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterComplexType(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitComplexType(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitComplexType(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ComplexTypeContext complexType() - { - ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 268, RULE_complexType); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2428; ambiguousIdentifier(); - State = 2433; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 406, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - { - State = 2429; - _la = _input.La(1); - if (!(_la == T__6 || _la == T__0)) - { - _errHandler.RecoverInline(this); - } - Consume(); - State = 2430; ambiguousIdentifier(); - } - } - } - State = 2435; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 406, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class FieldLengthContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public ITerminalNode INTEGERLITERAL() { return GetToken(VBAParser.INTEGERLITERAL, 0); } - public ITerminalNode MULT() { return GetToken(VBAParser.MULT, 0); } - public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } - public FieldLengthContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_fieldLength; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterFieldLength(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitFieldLength(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitFieldLength(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public FieldLengthContext fieldLength() - { - FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 270, RULE_fieldLength); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2436; Match(MULT); - State = 2438; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2437; Match(WS); - } - } - - State = 2442; - switch (_input.La(1)) - { - case INTEGERLITERAL: - { - State = 2440; Match(INTEGERLITERAL); - } - break; - case ACCESS: - case ADDRESSOF: - case ALIAS: - case AND: - case ATTRIBUTE: - case APPACTIVATE: - case APPEND: - case AS: - case BEGIN: - case BEEP: - case BINARY: - case BOOLEAN: - case BYVAL: - case BYREF: - case BYTE: - case CALL: - case CASE: - case CHDIR: - case CHDRIVE: - case CLASS: - case CLOSE: - case COLLECTION: - case CONST: - case DATABASE: - case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFDEC: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: - case DELETESETTING: - case DIM: - case DO: - case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: - case END: - case ENUM: - case EQV: - case ERASE: - case ERROR: - case EVENT: - case FALSE: - case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: - case IMP: - case IMPLEMENTS: - case IN: - case INPUT: - case IS: - case INTEGER: - case KILL: - case LOAD: - case LOCK: - case LONG: - case LOOP: - case LEN: - case LET: - case LIB: - case LIKE: - case LSET: - case ME: - case MID: - case MKDIR: - case MOD: - case NAME: - case NEXT: - case NEW: - case NOT: - case NOTHING: - case NULL: - case ON: - case OPEN: - case OPTIONAL: - case OR: - case OUTPUT: - case PARAMARRAY: - case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: - case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: - case REM: - case RESET: - case RESUME: - case RETURN: - case RMDIR: - case RSET: - case SAVEPICTURE: - case SAVESETTING: - case SEEK: - case SELECT: - case SENDKEYS: - case SET: - case SETATTR: - case SHARED: - case SINGLE: - case SPC: - case STATIC: - case STEP: - case STOP: - case STRING: - case SUB: - case TAB: - case TEXT: - case THEN: - case TIME: - case TO: - case TRUE: - case TYPE: - case TYPEOF: - case UNLOAD: - case UNLOCK: - case UNTIL: - case VARIANT: - case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: - case WITHEVENTS: - case WRITE: - case XOR: - case IDENTIFIER: - { - State = 2441; ambiguousIdentifier(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LetterrangeContext : ParserRuleContext - { - public CertainIdentifierContext certainIdentifier(int i) - { - return GetRuleContext(i); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList certainIdentifier() - { - return GetRuleContexts(); - } - public ITerminalNode MINUS() { return GetToken(VBAParser.MINUS, 0); } - public LetterrangeContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_letterrange; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLetterrange(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLetterrange(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLetterrange(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LetterrangeContext letterrange() - { - LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 272, RULE_letterrange); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2444; certainIdentifier(); - State = 2453; - switch (Interpreter.AdaptivePredict(_input, 411, _ctx)) - { - case 1: - { - State = 2446; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2445; Match(WS); - } - } - - State = 2448; Match(MINUS); - State = 2450; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2449; Match(WS); - } - } - - State = 2452; certainIdentifier(); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LineLabelContext : ParserRuleContext - { - public AmbiguousIdentifierContext ambiguousIdentifier() - { - return GetRuleContext(0); - } - public LineLabelContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_lineLabel; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLineLabel(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLineLabel(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLineLabel(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LineLabelContext lineLabel() - { - LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 274, RULE_lineLabel); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2455; ambiguousIdentifier(); - State = 2456; Match(COLON); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class LiteralContext : ParserRuleContext - { - public ITerminalNode INTEGERLITERAL() { return GetToken(VBAParser.INTEGERLITERAL, 0); } - public ITerminalNode NULL() { return GetToken(VBAParser.NULL, 0); } - public ITerminalNode STRINGLITERAL() { return GetToken(VBAParser.STRINGLITERAL, 0); } - public ITerminalNode FALSE() { return GetToken(VBAParser.FALSE, 0); } - public ITerminalNode TRUE() { return GetToken(VBAParser.TRUE, 0); } - public ITerminalNode NOTHING() { return GetToken(VBAParser.NOTHING, 0); } - public ITerminalNode DATELITERAL() { return GetToken(VBAParser.DATELITERAL, 0); } - public ITerminalNode HEXLITERAL() { return GetToken(VBAParser.HEXLITERAL, 0); } - public ITerminalNode DOUBLELITERAL() { return GetToken(VBAParser.DOUBLELITERAL, 0); } - public ITerminalNode SHORTLITERAL() { return GetToken(VBAParser.SHORTLITERAL, 0); } - public ITerminalNode OCTLITERAL() { return GetToken(VBAParser.OCTLITERAL, 0); } - public LiteralContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_literal; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLiteral(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLiteral(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLiteral(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LiteralContext literal() - { - LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 276, RULE_literal); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2458; - _la = _input.La(1); - if (!(((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & ((1L << (FALSE - 73)) | (1L << (NOTHING - 73)) | (1L << (NULL - 73)))) != 0) || ((((_la - 171)) & ~0x3f) == 0 && ((1L << (_la - 171)) & ((1L << (TRUE - 171)) | (1L << (STRINGLITERAL - 171)) | (1L << (OCTLITERAL - 171)) | (1L << (HEXLITERAL - 171)) | (1L << (SHORTLITERAL - 171)) | (1L << (INTEGERLITERAL - 171)) | (1L << (DOUBLELITERAL - 171)) | (1L << (DATELITERAL - 171)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class TypeContext : ParserRuleContext - { - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public BaseTypeContext baseType() - { - return GetRuleContext(0); - } - public ComplexTypeContext complexType() - { - return GetRuleContext(0); - } - public TypeContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_type; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterType(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitType(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitType(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TypeContext type() - { - TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 278, RULE_type); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2462; - switch (Interpreter.AdaptivePredict(_input, 412, _ctx)) - { - case 1: - { - State = 2460; baseType(); - } - break; - - case 2: - { - State = 2461; complexType(); - } - break; - } - State = 2472; - switch (Interpreter.AdaptivePredict(_input, 415, _ctx)) - { - case 1: - { - State = 2465; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2464; Match(WS); - } - } - - State = 2467; Match(LPAREN); - State = 2469; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2468; Match(WS); - } - } - - State = 2471; Match(RPAREN); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class TypeHintContext : ParserRuleContext - { - public TypeHintContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_typeHint; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterTypeHint(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitTypeHint(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitTypeHint(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TypeHintContext typeHint() - { - TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 280, RULE_typeHint); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2474; - _la = _input.La(1); - if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la == AMPERSAND)) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class VisibilityContext : ParserRuleContext - { - public ITerminalNode FRIEND() { return GetToken(VBAParser.FRIEND, 0); } - public ITerminalNode PUBLIC() { return GetToken(VBAParser.PUBLIC, 0); } - public ITerminalNode GLOBAL() { return GetToken(VBAParser.GLOBAL, 0); } - public ITerminalNode PRIVATE() { return GetToken(VBAParser.PRIVATE, 0); } - public VisibilityContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_visibility; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterVisibility(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitVisibility(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitVisibility(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public VisibilityContext visibility() - { - VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 282, RULE_visibility); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2476; - _la = _input.La(1); - if (!(((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class AmbiguousKeywordContext : ParserRuleContext - { - public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } - public ITerminalNode APPACTIVATE() { return GetToken(VBAParser.APPACTIVATE, 0); } - public ITerminalNode DEFOBJ() { return GetToken(VBAParser.DEFOBJ, 0); } - public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } - public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } - public ITerminalNode RESET() { return GetToken(VBAParser.RESET, 0); } - public ITerminalNode XOR() { return GetToken(VBAParser.XOR, 0); } - public ITerminalNode TIME() { return GetToken(VBAParser.TIME, 0); } - public ITerminalNode RAISEEVENT() { return GetToken(VBAParser.RAISEEVENT, 0); } - public ITerminalNode LOAD() { return GetToken(VBAParser.LOAD, 0); } - public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } - public ITerminalNode DEFSNG() { return GetToken(VBAParser.DEFSNG, 0); } - public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } - public ITerminalNode ENUM() { return GetToken(VBAParser.ENUM, 0); } - public ITerminalNode GLOBAL() { return GetToken(VBAParser.GLOBAL, 0); } - public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } - public ITerminalNode ME() { return GetToken(VBAParser.ME, 0); } - public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } - public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } - public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } - public ITerminalNode WIDTH() { return GetToken(VBAParser.WIDTH, 0); } - public ITerminalNode STRING() { return GetToken(VBAParser.STRING, 0); } - public ITerminalNode MOD() { return GetToken(VBAParser.MOD, 0); } - public ITerminalNode OR() { return GetToken(VBAParser.OR, 0); } - public ITerminalNode DOUBLE() { return GetToken(VBAParser.DOUBLE, 0); } - public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } - public ITerminalNode IN() { return GetToken(VBAParser.IN, 0); } - public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } - public ITerminalNode SAVESETTING() { return GetToken(VBAParser.SAVESETTING, 0); } - public ITerminalNode TEXT() { return GetToken(VBAParser.TEXT, 0); } - public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } - public ITerminalNode PUBLIC() { return GetToken(VBAParser.PUBLIC, 0); } - public ITerminalNode PUT() { return GetToken(VBAParser.PUT, 0); } - public ITerminalNode MKDIR() { return GetToken(VBAParser.MKDIR, 0); } - public ITerminalNode SINGLE() { return GetToken(VBAParser.SINGLE, 0); } - public ITerminalNode ERROR() { return GetToken(VBAParser.ERROR, 0); } - public ITerminalNode TYPE() { return GetToken(VBAParser.TYPE, 0); } - public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } - public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } - public ITerminalNode SPC() { return GetToken(VBAParser.SPC, 0); } - public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } - public ITerminalNode NOT() { return GetToken(VBAParser.NOT, 0); } - public ITerminalNode BEEP() { return GetToken(VBAParser.BEEP, 0); } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } - public ITerminalNode DIM() { return GetToken(VBAParser.DIM, 0); } - public ITerminalNode OUTPUT() { return GetToken(VBAParser.OUTPUT, 0); } - public ITerminalNode KILL() { return GetToken(VBAParser.KILL, 0); } - public ITerminalNode IMPLEMENTS() { return GetToken(VBAParser.IMPLEMENTS, 0); } - public ITerminalNode VERSION() { return GetToken(VBAParser.VERSION, 0); } - public ITerminalNode ACCESS() { return GetToken(VBAParser.ACCESS, 0); } - public ITerminalNode COLLECTION() { return GetToken(VBAParser.COLLECTION, 0); } - public ITerminalNode DECLARE() { return GetToken(VBAParser.DECLARE, 0); } - public ITerminalNode TRUE() { return GetToken(VBAParser.TRUE, 0); } - public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } - public ITerminalNode VARIANT() { return GetToken(VBAParser.VARIANT, 0); } - public ITerminalNode BOOLEAN() { return GetToken(VBAParser.BOOLEAN, 0); } - public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } - public ITerminalNode DEFDBL() { return GetToken(VBAParser.DEFDBL, 0); } - public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } - public ITerminalNode LONG() { return GetToken(VBAParser.LONG, 0); } - public ITerminalNode REM() { return GetToken(VBAParser.REM, 0); } - public ITerminalNode RSET() { return GetToken(VBAParser.RSET, 0); } - public ITerminalNode ADDRESSOF() { return GetToken(VBAParser.ADDRESSOF, 0); } - public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } - public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } - public ITerminalNode TYPEOF() { return GetToken(VBAParser.TYPEOF, 0); } - public ITerminalNode SELECT() { return GetToken(VBAParser.SELECT, 0); } - public ITerminalNode UNLOCK() { return GetToken(VBAParser.UNLOCK, 0); } - public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } - public ITerminalNode ERASE() { return GetToken(VBAParser.ERASE, 0); } - public ITerminalNode INTEGER() { return GetToken(VBAParser.INTEGER, 0); } - public ITerminalNode FALSE() { return GetToken(VBAParser.FALSE, 0); } - public ITerminalNode PRESERVE() { return GetToken(VBAParser.PRESERVE, 0); } - public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } - public ITerminalNode SHARED() { return GetToken(VBAParser.SHARED, 0); } - public ITerminalNode APPEND() { return GetToken(VBAParser.APPEND, 0); } - public ITerminalNode CHDIR() { return GetToken(VBAParser.CHDIR, 0); } - public ITerminalNode PRIVATE() { return GetToken(VBAParser.PRIVATE, 0); } - public ITerminalNode UNLOAD() { return GetToken(VBAParser.UNLOAD, 0); } - public ITerminalNode DEFBYTE() { return GetToken(VBAParser.DEFBYTE, 0); } - public ITerminalNode RETURN() { return GetToken(VBAParser.RETURN, 0); } - public ITerminalNode NULL() { return GetToken(VBAParser.NULL, 0); } - public ITerminalNode NAME() { return GetToken(VBAParser.NAME, 0); } - public ITerminalNode BEGIN() { return GetToken(VBAParser.BEGIN, 0); } - public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } - public ITerminalNode WEND() { return GetToken(VBAParser.WEND, 0); } - public ITerminalNode DEFSTR() { return GetToken(VBAParser.DEFSTR, 0); } - public ITerminalNode IMP() { return GetToken(VBAParser.IMP, 0); } - public ITerminalNode DEFVAR() { return GetToken(VBAParser.DEFVAR, 0); } - public ITerminalNode CHDRIVE() { return GetToken(VBAParser.CHDRIVE, 0); } - public ITerminalNode EVENT() { return GetToken(VBAParser.EVENT, 0); } - public ITerminalNode CONST() { return GetToken(VBAParser.CONST, 0); } - public ITerminalNode ELSEIF() { return GetToken(VBAParser.ELSEIF, 0); } - public ITerminalNode PRINT() { return GetToken(VBAParser.PRINT, 0); } - public ITerminalNode DEFINT() { return GetToken(VBAParser.DEFINT, 0); } - public ITerminalNode NOTHING() { return GetToken(VBAParser.NOTHING, 0); } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public ITerminalNode DATABASE() { return GetToken(VBAParser.DATABASE, 0); } - public ITerminalNode BYTE() { return GetToken(VBAParser.BYTE, 0); } - public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } - public ITerminalNode STEP() { return GetToken(VBAParser.STEP, 0); } - public ITerminalNode SAVEPICTURE() { return GetToken(VBAParser.SAVEPICTURE, 0); } - public ITerminalNode SEEK() { return GetToken(VBAParser.SEEK, 0); } - public ITerminalNode TAB() { return GetToken(VBAParser.TAB, 0); } - public ITerminalNode RANDOM() { return GetToken(VBAParser.RANDOM, 0); } - public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } - public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } - public ITerminalNode DEFCUR() { return GetToken(VBAParser.DEFCUR, 0); } - public ITerminalNode ALIAS() { return GetToken(VBAParser.ALIAS, 0); } - public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } - public ITerminalNode DEFDATE() { return GetToken(VBAParser.DEFDATE, 0); } - public ITerminalNode CLASS() { return GetToken(VBAParser.CLASS, 0); } - public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } - public ITerminalNode FRIEND() { return GetToken(VBAParser.FRIEND, 0); } - public ITerminalNode EQV() { return GetToken(VBAParser.EQV, 0); } - public ITerminalNode READ() { return GetToken(VBAParser.READ, 0); } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ITerminalNode DEFBOOL() { return GetToken(VBAParser.DEFBOOL, 0); } - public ITerminalNode OPEN() { return GetToken(VBAParser.OPEN, 0); } - public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } - public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } - public ITerminalNode AND() { return GetToken(VBAParser.AND, 0); } - public ITerminalNode DEFLNG() { return GetToken(VBAParser.DEFLNG, 0); } - public ITerminalNode MID() { return GetToken(VBAParser.MID, 0); } - public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } - public ITerminalNode WITH() { return GetToken(VBAParser.WITH, 0); } - public ITerminalNode DEFDEC() { return GetToken(VBAParser.DEFDEC, 0); } - public ITerminalNode SETATTR() { return GetToken(VBAParser.SETATTR, 0); } - public ITerminalNode WRITE() { return GetToken(VBAParser.WRITE, 0); } - public ITerminalNode LEN() { return GetToken(VBAParser.LEN, 0); } - public ITerminalNode EACH() { return GetToken(VBAParser.EACH, 0); } - public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } - public ITerminalNode GET() { return GetToken(VBAParser.GET, 0); } - public ITerminalNode FILECOPY() { return GetToken(VBAParser.FILECOPY, 0); } - public ITerminalNode LIB() { return GetToken(VBAParser.LIB, 0); } - public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } - public ITerminalNode OPTIONAL() { return GetToken(VBAParser.OPTIONAL, 0); } - public ITerminalNode REDIM() { return GetToken(VBAParser.REDIM, 0); } - public ITerminalNode END() { return GetToken(VBAParser.END, 0); } - public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } - public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } - public ITerminalNode RANDOMIZE() { return GetToken(VBAParser.RANDOMIZE, 0); } - public ITerminalNode WITHEVENTS() { return GetToken(VBAParser.WITHEVENTS, 0); } - public AmbiguousKeywordContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_ambiguousKeyword; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterAmbiguousKeyword(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitAmbiguousKeyword(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitAmbiguousKeyword(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public AmbiguousKeywordContext ambiguousKeyword() - { - AmbiguousKeywordContext _localctx = new AmbiguousKeywordContext(_ctx, State); - EnterRule(_localctx, 284, RULE_ambiguousKeyword); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2478; - _la = _input.La(1); - if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0))) - { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class RemCommentContext : ParserRuleContext - { - public ITerminalNode REMCOMMENT() { return GetToken(VBAParser.REMCOMMENT, 0); } - public RemCommentContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_remComment; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterRemComment(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitRemComment(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitRemComment(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RemCommentContext remComment() - { - RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 286, RULE_remComment); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2480; Match(REMCOMMENT); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class CommentContext : ParserRuleContext - { - public ITerminalNode COMMENT() { return GetToken(VBAParser.COMMENT, 0); } - public CommentContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_comment; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterComment(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitComment(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitComment(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public CommentContext comment() - { - CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 288, RULE_comment); - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2482; Match(COMMENT); - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class EndOfLineContext : ParserRuleContext - { - public CommentContext comment() - { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode NEWLINE() { return GetToken(VBAParser.NEWLINE, 0); } - public RemCommentContext remComment() - { - return GetRuleContext(0); - } - public EndOfLineContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_endOfLine; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterEndOfLine(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitEndOfLine(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitEndOfLine(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EndOfLineContext endOfLine() - { - EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 290, RULE_endOfLine); - int _la; - try - { - EnterOuterAlt(_localctx, 1); - { - State = 2485; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2484; Match(WS); - } - } - - State = 2490; - switch (_input.La(1)) - { - case NEWLINE: - { - State = 2487; Match(NEWLINE); - } - break; - case COMMENT: - { - State = 2488; comment(); - } - break; - case REMCOMMENT: - { - State = 2489; remComment(); - } - break; - default: - throw new NoViableAltException(this); - } - State = 2493; - switch (Interpreter.AdaptivePredict(_input, 418, _ctx)) - { - case 1: - { - State = 2492; Match(WS); - } - break; - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public partial class EndOfStatementContext : ParserRuleContext - { - public IReadOnlyList endOfLine() - { - return GetRuleContexts(); - } - public ITerminalNode WS(int i) - { - return GetToken(VBAParser.WS, i); - } - public EndOfLineContext endOfLine(int i) - { - return GetRuleContext(i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode COLON(int i) - { - return GetToken(VBAParser.COLON, i); - } - public IReadOnlyList COLON() { return GetTokens(VBAParser.COLON); } - public EndOfStatementContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_endOfStatement; } } - public override void EnterRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterEndOfStatement(this); - } - public override void ExitRule(IParseTreeListener listener) - { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitEndOfStatement(this); - } - public override TResult Accept(IParseTreeVisitor visitor) - { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitEndOfStatement(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EndOfStatementContext endOfStatement() - { - EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 292, RULE_endOfStatement); - int _la; - try - { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2505; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 422, _ctx); - while (_alt != 2 && _alt != global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber) - { - if (_alt == 1) - { - { - State = 2503; - switch (Interpreter.AdaptivePredict(_input, 421, _ctx)) - { - case 1: - { - State = 2495; endOfLine(); - } - break; - - case 2: - { - State = 2497; - _la = _input.La(1); - if (_la == WS) - { - { - State = 2496; Match(WS); - } - } - - State = 2499; Match(COLON); - State = 2501; - switch (Interpreter.AdaptivePredict(_input, 420, _ctx)) - { - case 1: - { - State = 2500; Match(WS); - } - break; - } - } - break; - } - } - } - State = 2507; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input, 422, _ctx); - } - } - } - catch (RecognitionException re) - { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally - { - ExitRule(); - } - return _localctx; - } - - public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) - { - switch (ruleIndex) - { - case 100: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); - } - return true; - } - private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) - { - switch (predIndex) - { - case 0: return Precpred(_ctx, 14); - - case 1: return Precpred(_ctx, 12); - - case 2: return Precpred(_ctx, 11); - - case 3: return Precpred(_ctx, 10); - - case 4: return Precpred(_ctx, 9); - - case 5: return Precpred(_ctx, 8); - - case 6: return Precpred(_ctx, 7); - - case 7: return Precpred(_ctx, 5); - - case 8: return Precpred(_ctx, 4); - - case 9: return Precpred(_ctx, 3); - - case 10: return Precpred(_ctx, 2); - - case 11: return Precpred(_ctx, 1); - } - return true; - } - - public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF4\x9CF\x4\x2" + - "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4" + - "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10" + - "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15" + - "\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A\x4\x1B" + - "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!" + - "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t)\x4*\t" + - "*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31\x4\x32" + - "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37\t\x37" + - "\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x4>\t>\x4?\t?\x4" + - "@\t@\x4\x41\t\x41\x4\x42\t\x42\x4\x43\t\x43\x4\x44\t\x44\x4\x45\t\x45" + - "\x4\x46\t\x46\x4G\tG\x4H\tH\x4I\tI\x4J\tJ\x4K\tK\x4L\tL\x4M\tM\x4N\tN" + - "\x4O\tO\x4P\tP\x4Q\tQ\x4R\tR\x4S\tS\x4T\tT\x4U\tU\x4V\tV\x4W\tW\x4X\t" + - "X\x4Y\tY\x4Z\tZ\x4[\t[\x4\\\t\\\x4]\t]\x4^\t^\x4_\t_\x4`\t`\x4\x61\t\x61" + - "\x4\x62\t\x62\x4\x63\t\x63\x4\x64\t\x64\x4\x65\t\x65\x4\x66\t\x66\x4g" + - "\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\tp\x4" + - "q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\tz\x4" + - "{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4\x82" + - "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87" + - "\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C\x4\x8D" + - "\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92\t\x92" + - "\x4\x93\t\x93\x4\x94\t\x94\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x12D\n\x3\x3" + - "\x3\x3\x3\x3\x3\x3\x3\x5\x3\x133\n\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3\x3" + - "\x5\x3\x13A\n\x3\x3\x3\x3\x3\x5\x3\x13E\n\x3\x3\x3\x3\x3\x5\x3\x142\n" + - "\x3\x3\x3\x3\x3\x5\x3\x146\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3" + - "\x5\x3\x5\x3\x5\x6\x5\x151\n\x5\r\x5\xE\x5\x152\x3\x5\x3\x5\x3\x6\x3\x6" + - "\x5\x6\x159\n\x6\x3\x6\x3\x6\x5\x6\x15D\n\x6\x3\x6\x3\x6\x3\x6\x3\a\x3" + - "\a\x3\a\x6\a\x165\n\a\r\a\xE\a\x166\x3\b\x3\b\x3\b\x3\b\a\b\x16D\n\b\f" + - "\b\xE\b\x170\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5" + - "\t\x17C\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x188" + - "\n\n\x3\v\x3\v\x5\v\x18C\n\v\x3\f\x3\f\x3\f\x3\f\a\f\x192\n\f\f\f\xE\f" + - "\x195\v\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\r\x3\r\x5\r\x19F\n\r\x3\xE" + - "\x3\xE\x3\xE\x3\xE\x5\xE\x1A5\n\xE\x3\xE\x3\xE\x5\xE\x1A9\n\xE\x3\xE\x3" + - "\xE\x5\xE\x1AD\n\xE\x3\xE\x3\xE\x5\xE\x1B1\n\xE\x3\xE\a\xE\x1B4\n\xE\f" + - "\xE\xE\xE\x1B7\v\xE\x3\xF\x3\xF\x3\xF\x3\xF\a\xF\x1BD\n\xF\f\xF\xE\xF" + - "\x1C0\v\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10" + - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10" + - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10" + - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10" + - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10" + - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10" + - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10" + - "\x5\x10\x207\n\x10\x3\x11\x3\x11\x3\x11\x3\x11\x5\x11\x20D\n\x11\x3\x11" + - "\x3\x11\x5\x11\x211\n\x11\x3\x11\x5\x11\x214\n\x11\x3\x12\x3\x12\x3\x13" + - "\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15" + - "\x3\x15\x5\x15\x224\n\x15\x3\x15\x3\x15\x5\x15\x228\n\x15\x3\x15\a\x15" + - "\x22B\n\x15\f\x15\xE\x15\x22E\v\x15\x5\x15\x230\n\x15\x3\x16\x3\x16\x3" + - "\x16\x5\x16\x235\n\x16\x3\x16\x3\x16\x3\x16\x3\x16\x5\x16\x23B\n\x16\x3" + - "\x16\x3\x16\x5\x16\x23F\n\x16\x3\x16\a\x16\x242\n\x16\f\x16\xE\x16\x245" + - "\v\x16\x3\x17\x3\x17\x5\x17\x249\n\x17\x3\x17\x3\x17\x5\x17\x24D\n\x17" + - "\x3\x17\x5\x17\x250\n\x17\x3\x17\x3\x17\x5\x17\x254\n\x17\x3\x17\x3\x17" + - "\x3\x18\x3\x18\x5\x18\x25A\n\x18\x3\x18\x3\x18\x5\x18\x25E\n\x18\x3\x18" + - "\x3\x18\x3\x19\x3\x19\x3\x19\x5\x19\x265\n\x19\x3\x19\x3\x19\x3\x19\x3" + - "\x19\x5\x19\x26B\n\x19\x3\x19\x3\x19\x5\x19\x26F\n\x19\x3\x19\x5\x19\x272" + - "\n\x19\x3\x19\x3\x19\x3\x19\x5\x19\x277\n\x19\x3\x19\x3\x19\x3\x19\x3" + - "\x19\x3\x19\x3\x19\x3\x19\x3\x19\x5\x19\x281\n\x19\x3\x19\x5\x19\x284" + - "\n\x19\x3\x19\x5\x19\x287\n\x19\x3\x19\x3\x19\x5\x19\x28B\n\x19\x3\x1A" + - "\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x291\n\x1A\x3\x1A\x3\x1A\x5\x1A\x295\n\x1A" + - "\x3\x1A\a\x1A\x298\n\x1A\f\x1A\xE\x1A\x29B\v\x1A\x3\x1B\x3\x1B\x3\x1B" + - "\x3\x1B\x5\x1B\x2A1\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2A5\n\x1B\x3\x1B\x3\x1B" + - "\x5\x1B\x2A9\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2AD\n\x1B\x3\x1B\x5\x1B\x2B0" + - "\n\x1B\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2B5\n\x1C\x3\x1C\x3\x1C\x3\x1C\x3" + - "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2C0\n\x1C\x3\x1C\x3\x1C" + - "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C" + - "\x2CD\n\x1C\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x5\x1E\x2D4\n\x1E\x3\x1E" + - "\x3\x1E\x3\x1E\x3\x1E\x3\x1E\a\x1E\x2DB\n\x1E\f\x1E\xE\x1E\x2DE\v\x1E" + - "\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x5\x1F\x2E4\n\x1F\x3\x1F\x3\x1F\x5\x1F\x2E8" + - "\n\x1F\x3\x1F\x5\x1F\x2EB\n\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!" + - "\x3!\x3!\x3\"\x3\"\x3\"\x5\"\x2FA\n\"\x3\"\x3\"\x3\"\x3\"\x5\"\x300\n" + - "\"\x3\"\x3\"\x3#\x3#\x3$\x3$\x3$\x3$\x5$\x30A\n$\x3$\x3$\x5$\x30E\n$\x3" + - "$\x3$\x3%\x3%\x3%\x3%\x3%\x3%\x5%\x318\n%\x3%\x3%\x3%\x3%\x3%\x3%\x5%" + - "\x320\n%\x3%\x3%\x3%\x5%\x325\n%\x3&\x3&\x3&\x3&\x5&\x32B\n&\x3&\x3&\x5" + - "&\x32F\n&\x3&\x5&\x332\n&\x3&\x3&\x5&\x336\n&\x3&\x3&\x3&\x3&\x3&\x3&" + - "\x3&\x3&\x3&\x5&\x341\n&\x3&\x3&\x5&\x345\n&\x3&\x3&\x3&\x5&\x34A\n&\x3" + - "\'\x3\'\x3\'\x5\'\x34F\n\'\x3\'\x3\'\x5\'\x353\n\'\x3\'\x3\'\x5\'\x357" + - "\n\'\x3\'\x3\'\x5\'\x35B\n\'\x3\'\x5\'\x35E\n\'\x3\'\x5\'\x361\n\'\x3" + - "\'\x5\'\x364\n\'\x3\'\x5\'\x367\n\'\x3\'\x3\'\x5\'\x36B\n\'\x3\'\x3\'" + - "\x3(\x3(\x3(\x3(\x5(\x373\n(\x3(\x3(\x5(\x377\n(\x3(\x5(\x37A\n(\x3(\x5" + - "(\x37D\n(\x3(\x3(\x5(\x381\n(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*" + - "\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x5+\x398\n+\x3+\x3+\a+\x39C" + - "\n+\f+\xE+\x39F\v+\x3+\x5+\x3A2\n+\x3+\x3+\x5+\x3A6\n+\x3,\x3,\x3,\x3" + - ",\x3,\x3,\x3,\x5,\x3AF\n,\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3BA" + - "\n.\x3/\x3/\x3/\x5/\x3BF\n/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3\x31" + - "\x3\x31\x3\x31\x5\x31\x3C9\n\x31\x3\x31\x3\x31\x5\x31\x3CD\n\x31\x3\x31" + - "\x6\x31\x3D0\n\x31\r\x31\xE\x31\x3D1\x3\x32\x3\x32\x3\x32\x3\x32\x3\x33" + - "\x3\x33\x5\x33\x3DA\n\x33\x3\x33\x3\x33\x5\x33\x3DE\n\x33\x3\x33\x3\x33" + - "\x5\x33\x3E2\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x3EA" + - "\n\x34\x3\x34\x3\x34\x5\x34\x3EE\n\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3" + - "\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x3FA\n\x36\x3\x36\x3\x36" + - "\x5\x36\x3FE\n\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x405\n\x36" + - "\x5\x36\x407\n\x36\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x40D\n\x37\x3\x37" + - "\x3\x37\x5\x37\x411\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x5\x38\x417\n\x38" + - "\x3\x38\x3\x38\x5\x38\x41B\n\x38\x3\x38\x3\x38\x5\x38\x41F\n\x38\x3\x38" + - "\x3\x38\x3\x39\x3\x39\a\x39\x425\n\x39\f\x39\xE\x39\x428\v\x39\x3\x39" + - "\x5\x39\x42B\n\x39\x3\x39\x3\x39\x3:\x3:\x5:\x431\n:\x3:\x3:\x3:\x3:\x3" + - ":\x3:\x3:\a:\x43A\n:\f:\xE:\x43D\v:\x3;\x3;\x5;\x441\n;\x3;\x3;\x3;\x3" + - ";\x3;\x3;\x3;\a;\x44A\n;\f;\xE;\x44D\v;\x3<\x3<\x3<\x3<\x3<\a<\x454\n" + - "<\f<\xE<\x457\v<\x3=\x3=\x5=\x45B\n=\x3=\x3=\x5=\x45F\n=\x3=\x3=\x5=\x463" + - "\n=\x3=\x3=\x3>\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3?\x3?\x3?\x3?\x3@\x3@\x3" + - "@\x3@\x3@\x3@\x3@\x3@\x5@\x47B\n@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3" + - "\x41\x3\x41\x3\x41\x5\x41\x485\n\x41\x3\x41\x3\x41\x5\x41\x489\n\x41\x3" + - "\x41\a\x41\x48C\n\x41\f\x41\xE\x41\x48F\v\x41\x3\x42\x3\x42\x3\x42\x3" + - "\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x499\n\x42\x3\x42\x3\x42\x5\x42" + - "\x49D\n\x42\x3\x42\a\x42\x4A0\n\x42\f\x42\xE\x42\x4A3\v\x42\x3\x43\x3" + - "\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5" + - "\x43\x4B0\n\x43\x3\x43\x3\x43\x5\x43\x4B4\n\x43\x3\x43\x3\x43\x3\x43\x3" + - "\x43\x3\x43\x3\x43\x3\x43\x5\x43\x4BD\n\x43\x3\x43\x3\x43\x5\x43\x4C1" + - "\n\x43\x3\x43\x5\x43\x4C4\n\x43\x3\x44\x3\x44\x5\x44\x4C8\n\x44\x3\x44" + - "\x3\x44\x5\x44\x4CC\n\x44\x3\x44\x5\x44\x4CF\n\x44\a\x44\x4D1\n\x44\f" + - "\x44\xE\x44\x4D4\v\x44\x3\x44\x5\x44\x4D7\n\x44\x3\x44\x5\x44\x4DA\n\x44" + - "\x3\x44\x3\x44\x5\x44\x4DE\n\x44\x3\x44\x5\x44\x4E1\n\x44\x6\x44\x4E3" + - "\n\x44\r\x44\xE\x44\x4E4\x5\x44\x4E7\n\x44\x3\x45\x3\x45\x3\x45\x5\x45" + - "\x4EC\n\x45\x3\x45\x3\x45\x5\x45\x4F0\n\x45\x3\x45\x3\x45\x5\x45\x4F4" + - "\n\x45\x3\x45\x3\x45\x5\x45\x4F8\n\x45\x5\x45\x4FA\n\x45\x3\x46\x3\x46" + - "\x3\x46\x3\x46\x5\x46\x500\n\x46\x3\x46\x3\x46\x5\x46\x504\n\x46\x3\x46" + - "\x5\x46\x507\n\x46\x3G\x3G\x3G\x5G\x50C\nG\x3G\x3G\x5G\x510\nG\x3G\x3" + - "G\x3G\x3G\x5G\x516\nG\x3G\x5G\x519\nG\x3G\x5G\x51C\nG\x3G\x3G\x5G\x520" + - "\nG\x3G\x3G\x5G\x524\nG\x3G\x3G\x3H\x3H\x3H\x5H\x52B\nH\x3H\x3H\x5H\x52F" + - "\nH\x3H\x3H\x3H\x3H\x5H\x535\nH\x3H\x5H\x538\nH\x3H\x3H\x5H\x53C\nH\x3" + - "H\x3H\x3I\x3I\x3I\x5I\x543\nI\x3I\x3I\x5I\x547\nI\x3I\x3I\x3I\x3I\x5I" + - "\x54D\nI\x3I\x5I\x550\nI\x3I\x3I\x5I\x554\nI\x3I\x3I\x3J\x3J\x3J\x3J\x5" + - "J\x55C\nJ\x3J\x3J\x5J\x560\nJ\x3J\x5J\x563\nJ\x3J\x5J\x566\nJ\x3J\x3J" + - "\x5J\x56A\nJ\x3J\x3J\x3K\x3K\x3K\x3K\x5K\x572\nK\x3K\x3K\x5K\x576\nK\x3" + - "K\x3K\x5K\x57A\nK\x5K\x57C\nK\x3K\x5K\x57F\nK\x3L\x3L\x3L\x5L\x584\nL" + - "\x3M\x3M\x3M\x3M\x5M\x58A\nM\x3M\x3M\x5M\x58E\nM\x3M\x3M\x5M\x592\nM\x3" + - "M\aM\x595\nM\fM\xEM\x598\vM\x3N\x3N\x5N\x59C\nN\x3N\x3N\x5N\x5A0\nN\x3" + - "N\x3N\x5N\x5A4\nN\x3N\x3N\x3N\x5N\x5A9\nN\x3O\x3O\x3P\x3P\x3P\x3P\x5P" + - "\x5B1\nP\x5P\x5B3\nP\x3Q\x3Q\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3S\x5S\x5BF" + - "\nS\x3S\x3S\x5S\x5C3\nS\x3S\x3S\x3T\x3T\x3T\x3T\x5T\x5CB\nT\x3T\x3T\x5" + - "T\x5CF\nT\x3T\x3T\x3U\x3U\x3U\x3U\x5U\x5D7\nU\x3U\x3U\x5U\x5DB\nU\x3U" + - "\x3U\x5U\x5DF\nU\x3U\x3U\x5U\x5E3\nU\x3U\x3U\x5U\x5E7\nU\x3U\x3U\x5U\x5EB" + - "\nU\x3U\x3U\x3V\x3V\x3V\x3V\x5V\x5F3\nV\x3V\x3V\x5V\x5F7\nV\x3V\x3V\x3" + - "W\x3W\x3W\x3W\x3W\x3W\x3W\aW\x602\nW\fW\xEW\x605\vW\x3W\x3W\x3X\x3X\x5" + - "X\x60B\nX\x3X\x3X\x5X\x60F\nX\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x5X" + - "\x61A\nX\x3Y\x3Y\x3Y\x3Y\x3Y\x5Y\x621\nY\x3Z\x3Z\x3Z\x5Z\x626\nZ\x3Z\x3" + - "Z\x5Z\x62A\nZ\x3Z\aZ\x62D\nZ\fZ\xEZ\x630\vZ\x5Z\x632\nZ\x3[\x3[\x3[\x3" + - "[\x5[\x638\n[\x3[\x3[\x5[\x63C\n[\x3[\x5[\x63F\n[\x3\\\x3\\\x3\\\x3\\" + - "\x5\\\x645\n\\\x3\\\x3\\\x5\\\x649\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x5]\x651" + - "\n]\x3]\x3]\x5]\x655\n]\x3]\x3]\x3^\x3^\x3_\x3_\x3_\x5_\x65E\n_\x3_\x3" + - "_\x5_\x662\n_\x3_\x3_\x5_\x666\n_\x3_\x3_\x5_\x66A\n_\x3_\x5_\x66D\n_" + - "\x3_\x3_\x5_\x671\n_\x3_\x3_\x3`\x3`\x5`\x677\n`\x3`\x3`\x5`\x67B\n`\x3" + - "`\x3`\x3\x61\x3\x61\x3\x61\x5\x61\x682\n\x61\x3\x61\x3\x61\x3\x61\x3\x61" + - "\x3\x61\a\x61\x689\n\x61\f\x61\xE\x61\x68C\v\x61\x3\x61\x3\x61\x3\x62" + - "\x3\x62\x5\x62\x692\n\x62\x3\x62\x3\x62\x5\x62\x696\n\x62\x3\x62\x5\x62" + - "\x699\n\x62\x3\x62\x5\x62\x69C\n\x62\x3\x62\x5\x62\x69F\n\x62\x3\x62\x3" + - "\x62\x5\x62\x6A3\n\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63" + - "\x3\x63\x3\x63\x5\x63\x6AE\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3" + - "\x65\x3\x65\x3\x65\x5\x65\x6B8\n\x65\x3\x65\x3\x65\x5\x65\x6BC\n\x65\x3" + - "\x65\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x6C3\n\x65\x5\x65\x6C5\n\x65\x3" + - "\x66\x3\x66\x3\x66\x5\x66\x6CA\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6CF" + - "\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6D4\n\x66\x3\x66\x3\x66\x5\x66\x6D8" + - "\n\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6DE\n\x66\x3\x66\x3\x66\x3" + - "\x66\x5\x66\x6E3\n\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6EA" + - "\n\x66\x3\x66\x3\x66\x5\x66\x6EE\n\x66\x3\x66\x3\x66\x5\x66\x6F2\n\x66" + - "\x3\x66\a\x66\x6F5\n\x66\f\x66\xE\x66\x6F8\v\x66\x3\x66\x3\x66\x3\x66" + - "\x3\x66\x5\x66\x6FE\n\x66\x3\x66\x3\x66\x5\x66\x702\n\x66\x3\x66\x3\x66" + - "\x5\x66\x706\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x70B\n\x66\x3\x66\x3\x66" + - "\x5\x66\x70F\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x714\n\x66\x3\x66\x3\x66" + - "\x5\x66\x718\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x71D\n\x66\x3\x66\x3\x66" + - "\x5\x66\x721\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x726\n\x66\x3\x66\x3\x66" + - "\x5\x66\x72A\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x72F\n\x66\x3\x66\x3\x66" + - "\x5\x66\x733\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x738\n\x66\x3\x66\x3\x66" + - "\x5\x66\x73C\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x741\n\x66\x3\x66\x3\x66" + - "\x5\x66\x745\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x74A\n\x66\x3\x66\x3\x66" + - "\x5\x66\x74E\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x753\n\x66\x3\x66\x3\x66" + - "\x5\x66\x757\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x75C\n\x66\x3\x66\x3\x66" + - "\x5\x66\x760\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x765\n\x66\x3\x66\x3\x66" + - "\x5\x66\x769\n\x66\x3\x66\a\x66\x76C\n\x66\f\x66\xE\x66\x76F\v\x66\x3" + - "g\x3g\x3g\x5g\x774\ng\x3g\x3g\x3g\x5g\x779\ng\x3g\x3g\x3h\x3h\x5h\x77F" + - "\nh\x3h\x3h\x5h\x783\nh\x3h\ah\x786\nh\fh\xEh\x789\vh\x3i\x3i\x5i\x78D" + - "\ni\x3i\x3i\x5i\x791\ni\x3i\x3i\x5i\x795\ni\x5i\x797\ni\x3i\x3i\x5i\x79B" + - "\ni\x5i\x79D\ni\x3i\x5i\x7A0\ni\x3i\x3i\x5i\x7A4\ni\x3j\x3j\x3j\x3j\x3" + - "j\x5j\x7AB\nj\x3j\x3j\x3k\x3k\x3k\x3k\x5k\x7B3\nk\x3k\x3k\x5k\x7B7\nk" + - "\x3k\x3k\x3l\x3l\x3l\x3l\x3l\x3l\x5l\x7C1\nl\x3l\x3l\x5l\x7C5\nl\x3l\x3" + - "l\x3m\x3m\x3m\x3m\x5m\x7CD\nm\x3m\x3m\x5m\x7D1\nm\x3m\x5m\x7D4\nm\x3n" + - "\x5n\x7D7\nn\x3n\x3n\x3o\x3o\x5o\x7DD\no\x3p\x3p\x3p\x3p\x5p\x7E3\np\x3" + - "p\x5p\x7E6\np\x3p\x3p\x5p\x7EA\np\x3p\x3p\x5p\x7EE\np\x3p\x3p\x5p\x7F2" + - "\np\x3p\x5p\x7F5\np\x3p\x3p\x3p\x3p\ap\x7FB\np\fp\xEp\x7FE\vp\x3q\x3q" + - "\x3q\x5q\x803\nq\x3q\x3q\x3q\x5q\x808\nq\x3q\x5q\x80B\nq\x3q\x3q\x5q\x80F" + - "\nq\x3q\x3q\x5q\x813\nq\x3q\x3q\x5q\x817\nq\x3q\x5q\x81A\nq\x3q\x3q\x3" + - "q\x3q\aq\x820\nq\fq\xEq\x823\vq\x3r\x3r\x5r\x827\nr\x3s\x5s\x82A\ns\x3" + - "s\x3s\x3s\x5s\x82F\ns\x3s\x3s\x5s\x833\ns\x3s\x5s\x836\ns\x3s\x5s\x839" + - "\ns\x3s\x5s\x83C\ns\x3s\x3s\x3s\x3s\as\x842\ns\fs\xEs\x845\vs\x3t\x3t" + - "\x3t\x5t\x84A\nt\x3t\x5t\x84D\nt\x3t\x3t\x3t\x3t\at\x853\nt\ft\xEt\x856" + - "\vt\x3u\x3u\x3u\x3u\x5u\x85C\nu\x3v\x3v\x5v\x860\nv\x3v\x5v\x863\nv\x3" + - "v\x5v\x866\nv\x3v\x5v\x869\nv\x3v\x3v\x3v\x3v\av\x86F\nv\fv\xEv\x872\v" + - "v\x3w\x3w\x5w\x876\nw\x3w\x5w\x879\nw\x3w\x5w\x87C\nw\x3w\x3w\x5w\x880" + - "\nw\x3w\x3w\x5w\x884\nw\x5w\x886\nw\x3w\x3w\x5w\x88A\nw\x3w\x5w\x88D\n" + - "w\x3w\x5w\x890\nw\x3w\x3w\x3w\x3w\aw\x896\nw\fw\xEw\x899\vw\x3x\x3x\x5" + - "x\x89D\nx\x3x\x3x\x5x\x8A1\nx\x6x\x8A3\nx\rx\xEx\x8A4\x3x\x5x\x8A8\nx" + - "\x3x\x5x\x8AB\nx\x3x\x5x\x8AE\nx\x3x\x3x\x3x\x3x\ax\x8B4\nx\fx\xEx\x8B7" + - "\vx\x3y\x3y\x5y\x8BB\ny\x3y\x3y\x5y\x8BF\ny\x3z\x5z\x8C2\nz\x3z\x3z\x3" + - "{\x5{\x8C7\n{\x3{\x5{\x8CA\n{\x3{\x3{\x5{\x8CE\n{\a{\x8D0\n{\f{\xE{\x8D3" + - "\v{\x3{\x3{\x5{\x8D7\n{\x3{\x3{\x5{\x8DB\n{\x3{\x5{\x8DE\n{\a{\x8E0\n" + - "{\f{\xE{\x8E3\v{\x3|\x5|\x8E6\n|\x3|\x3|\x5|\x8EA\n|\x3|\x5|\x8ED\n|\x3" + - "|\x3|\x3}\x3}\x5}\x8F3\n}\x3}\x3}\x5}\x8F7\n}\x3~\x3~\x5~\x8FB\n~\x3~" + - "\x3~\x5~\x8FF\n~\x3~\x3~\x5~\x903\n~\x3~\a~\x906\n~\f~\xE~\x909\v~\x5" + - "~\x90B\n~\x3~\x5~\x90E\n~\x3~\x3~\x3\x7F\x3\x7F\x5\x7F\x914\n\x7F\x3\x7F" + - "\x3\x7F\x5\x7F\x918\n\x7F\x3\x7F\x3\x7F\x5\x7F\x91C\n\x7F\x3\x7F\x3\x7F" + - "\x5\x7F\x920\n\x7F\x3\x7F\x5\x7F\x923\n\x7F\x3\x7F\x3\x7F\x5\x7F\x927" + - "\n\x7F\x3\x7F\x5\x7F\x92A\n\x7F\x3\x7F\x5\x7F\x92D\n\x7F\x3\x7F\x5\x7F" + - "\x930\n\x7F\x3\x7F\x5\x7F\x933\n\x7F\x3\x7F\x5\x7F\x936\n\x7F\x3\x80\x3" + - "\x80\x5\x80\x93A\n\x80\x3\x80\x3\x80\x3\x81\x3\x81\x5\x81\x940\n\x81\x3" + - "\x81\x3\x81\x5\x81\x944\n\x81\x3\x81\a\x81\x947\n\x81\f\x81\xE\x81\x94A" + - "\v\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x5\x82\x951\n\x82\x3\x82\x3" + - "\x82\x3\x83\x3\x83\x6\x83\x957\n\x83\r\x83\xE\x83\x958\x3\x84\x3\x84\x5" + - "\x84\x95D\n\x84\x3\x84\x3\x84\x5\x84\x961\n\x84\x3\x84\x3\x84\x5\x84\x965" + - "\n\x84\x3\x84\x5\x84\x968\n\x84\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\a\x86" + - "\x96F\n\x86\f\x86\xE\x86\x972\v\x86\x3\x86\x3\x86\x3\x86\x6\x86\x977\n" + - "\x86\r\x86\xE\x86\x978\x5\x86\x97B\n\x86\x3\x87\x3\x87\x3\x88\x3\x88\x3" + - "\x88\a\x88\x982\n\x88\f\x88\xE\x88\x985\v\x88\x3\x89\x3\x89\x5\x89\x989" + - "\n\x89\x3\x89\x3\x89\x5\x89\x98D\n\x89\x3\x8A\x3\x8A\x5\x8A\x991\n\x8A" + - "\x3\x8A\x3\x8A\x5\x8A\x995\n\x8A\x3\x8A\x5\x8A\x998\n\x8A\x3\x8B\x3\x8B" + - "\x3\x8B\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x5\x8D\x9A1\n\x8D\x3\x8D\x5\x8D\x9A4" + - "\n\x8D\x3\x8D\x3\x8D\x5\x8D\x9A8\n\x8D\x3\x8D\x5\x8D\x9AB\n\x8D\x3\x8E" + - "\x3\x8E\x3\x8F\x3\x8F\x3\x90\x3\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x93" + - "\x5\x93\x9B8\n\x93\x3\x93\x3\x93\x3\x93\x5\x93\x9BD\n\x93\x3\x93\x5\x93" + - "\x9C0\n\x93\x3\x94\x3\x94\x5\x94\x9C4\n\x94\x3\x94\x3\x94\x5\x94\x9C8" + - "\n\x94\a\x94\x9CA\n\x94\f\x94\xE\x94\x9CD\v\x94\x3\x94\x2\x2\x3\xCA\x95" + - "\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18" + - "\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2" + - "\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2" + - "N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2" + - "l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88" + - "\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C" + - "\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0" + - "\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4" + - "\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8" + - "\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC" + - "\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100" + - "\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112" + - "\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E\x2\x120\x2\x122\x2\x124" + - "\x2\x126\x2\x2\x17\x5\x2\x15\x15\"\"\xA9\xA9\x3\x2%\x30\x4\x2\xB2\xB2" + - "\xB6\xB6\x3\x2\x46J\x3\x2yz\a\x2\x11\x11\x15\x15XX\x82\x82\x8D\x8D\x4" + - "\x2\x90\x91\xBA\xBA\x4\x2\x65g\xA0\xA0\x3\x2\b\t\x4\x2\xA2\xA2\xA8\xA8" + - "\x4\x2\xBE\xBE\xC7\xC7\x4\x2\xC6\xC6\xC9\xC9\a\x2YY\x63\x63\xC0\xC3\xC5" + - "\xC5\xC8\xC8\x4\x2\x4\x4\n\n\x4\x2\x17\x18\x83\x83\x3\x2\x17\x18\f\x2" + - "\x16\x16\x19\x19 ##\x34\x34ZZ^^\xA1\xA1\xA6\xA6\xB3\xB3\x6\x2KKvw\xAD" + - "\xAD\xCE\xD4\x4\x2\x3\a\xBC\xBC\x6\x2MMQQ\x86\x86\x8B\x8B\v\x2\v\x37@" + - "\x45K\x63hhnx{|\x81\x86\x8B\x90\x92\xBB\xB4D\x2\x128\x3\x2\x2\x2\x4\x12C" + - "\x3\x2\x2\x2\x6\x147\x3\x2\x2\x2\b\x14D\x3\x2\x2\x2\n\x156\x3\x2\x2\x2" + - "\f\x164\x3\x2\x2\x2\xE\x168\x3\x2\x2\x2\x10\x17B\x3\x2\x2\x2\x12\x187" + - "\x3\x2\x2\x2\x14\x18B\x3\x2\x2\x2\x16\x18D\x3\x2\x2\x2\x18\x19E\x3\x2" + - "\x2\x2\x1A\x1A0\x3\x2\x2\x2\x1C\x1B8\x3\x2\x2\x2\x1E\x206\x3\x2\x2\x2" + - " \x208\x3\x2\x2\x2\"\x215\x3\x2\x2\x2$\x217\x3\x2\x2\x2&\x21B\x3\x2\x2" + - "\x2(\x21F\x3\x2\x2\x2*\x234\x3\x2\x2\x2,\x246\x3\x2\x2\x2.\x257\x3\x2" + - "\x2\x2\x30\x264\x3\x2\x2\x2\x32\x28C\x3\x2\x2\x2\x34\x29C\x3\x2\x2\x2" + - "\x36\x2CC\x3\x2\x2\x2\x38\x2CE\x3\x2\x2\x2:\x2D3\x3\x2\x2\x2<\x2E1\x3" + - "\x2\x2\x2>\x2EE\x3\x2\x2\x2@\x2F2\x3\x2\x2\x2\x42\x2F9\x3\x2\x2\x2\x44" + - "\x303\x3\x2\x2\x2\x46\x305\x3\x2\x2\x2H\x311\x3\x2\x2\x2J\x326\x3\x2\x2" + - "\x2L\x34E\x3\x2\x2\x2N\x36E\x3\x2\x2\x2P\x384\x3\x2\x2\x2R\x388\x3\x2" + - "\x2\x2T\x3A5\x3\x2\x2\x2V\x3A7\x3\x2\x2\x2X\x3B0\x3\x2\x2\x2Z\x3B2\x3" + - "\x2\x2\x2\\\x3BB\x3\x2\x2\x2^\x3C0\x3\x2\x2\x2`\x3C4\x3\x2\x2\x2\x62\x3D3" + - "\x3\x2\x2\x2\x64\x3D9\x3\x2\x2\x2\x66\x3E5\x3\x2\x2\x2h\x3F1\x3\x2\x2" + - "\x2j\x3F5\x3\x2\x2\x2l\x408\x3\x2\x2\x2n\x414\x3\x2\x2\x2p\x422\x3\x2" + - "\x2\x2r\x42E\x3\x2\x2\x2t\x43E\x3\x2\x2\x2v\x44E\x3\x2\x2\x2x\x458\x3" + - "\x2\x2\x2z\x466\x3\x2\x2\x2|\x46A\x3\x2\x2\x2~\x472\x3\x2\x2\x2\x80\x47C" + - "\x3\x2\x2\x2\x82\x490\x3\x2\x2\x2\x84\x4A4\x3\x2\x2\x2\x86\x4E6\x3\x2" + - "\x2\x2\x88\x4F9\x3\x2\x2\x2\x8A\x4FB\x3\x2\x2\x2\x8C\x50B\x3\x2\x2\x2" + - "\x8E\x52A\x3\x2\x2\x2\x90\x542\x3\x2\x2\x2\x92\x557\x3\x2\x2\x2\x94\x56D" + - "\x3\x2\x2\x2\x96\x580\x3\x2\x2\x2\x98\x585\x3\x2\x2\x2\x9A\x599\x3\x2" + - "\x2\x2\x9C\x5AA\x3\x2\x2\x2\x9E\x5AC\x3\x2\x2\x2\xA0\x5B4\x3\x2\x2\x2" + - "\xA2\x5B6\x3\x2\x2\x2\xA4\x5BA\x3\x2\x2\x2\xA6\x5C6\x3\x2\x2\x2\xA8\x5D2" + - "\x3\x2\x2\x2\xAA\x5EE\x3\x2\x2\x2\xAC\x5FA\x3\x2\x2\x2\xAE\x619\x3\x2" + - "\x2\x2\xB0\x61B\x3\x2\x2\x2\xB2\x631\x3\x2\x2\x2\xB4\x633\x3\x2\x2\x2" + - "\xB6\x640\x3\x2\x2\x2\xB8\x64C\x3\x2\x2\x2\xBA\x658\x3\x2\x2\x2\xBC\x65D" + - "\x3\x2\x2\x2\xBE\x674\x3\x2\x2\x2\xC0\x681\x3\x2\x2\x2\xC2\x68F\x3\x2" + - "\x2\x2\xC4\x6A6\x3\x2\x2\x2\xC6\x6AF\x3\x2\x2\x2\xC8\x6B3\x3\x2\x2\x2" + - "\xCA\x6FD\x3\x2\x2\x2\xCC\x773\x3\x2\x2\x2\xCE\x77C\x3\x2\x2\x2\xD0\x78A" + - "\x3\x2\x2\x2\xD2\x7A5\x3\x2\x2\x2\xD4\x7AE\x3\x2\x2\x2\xD6\x7BA\x3\x2" + - "\x2\x2\xD8\x7C8\x3\x2\x2\x2\xDA\x7D6\x3\x2\x2\x2\xDC\x7DC\x3\x2\x2\x2" + - "\xDE\x7DE\x3\x2\x2\x2\xE0\x7FF\x3\x2\x2\x2\xE2\x826\x3\x2\x2\x2\xE4\x829" + - "\x3\x2\x2\x2\xE6\x846\x3\x2\x2\x2\xE8\x85B\x3\x2\x2\x2\xEA\x85D\x3\x2" + - "\x2\x2\xEC\x875\x3\x2\x2\x2\xEE\x89C\x3\x2\x2\x2\xF0\x8B8\x3\x2\x2\x2" + - "\xF2\x8C1\x3\x2\x2\x2\xF4\x8D1\x3\x2\x2\x2\xF6\x8E5\x3\x2\x2\x2\xF8\x8F0" + - "\x3\x2\x2\x2\xFA\x8F8\x3\x2\x2\x2\xFC\x913\x3\x2\x2\x2\xFE\x937\x3\x2" + - "\x2\x2\x100\x93D\x3\x2\x2\x2\x102\x950\x3\x2\x2\x2\x104\x956\x3\x2\x2" + - "\x2\x106\x95A\x3\x2\x2\x2\x108\x969\x3\x2\x2\x2\x10A\x97A\x3\x2\x2\x2" + - "\x10C\x97C\x3\x2\x2\x2\x10E\x97E\x3\x2\x2\x2\x110\x986\x3\x2\x2\x2\x112" + - "\x98E\x3\x2\x2\x2\x114\x999\x3\x2\x2\x2\x116\x99C\x3\x2\x2\x2\x118\x9A0" + - "\x3\x2\x2\x2\x11A\x9AC\x3\x2\x2\x2\x11C\x9AE\x3\x2\x2\x2\x11E\x9B0\x3" + - "\x2\x2\x2\x120\x9B2\x3\x2\x2\x2\x122\x9B4\x3\x2\x2\x2\x124\x9B7\x3\x2" + - "\x2\x2\x126\x9CB\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2\x3" + - "\x12A\x3\x3\x2\x2\x2\x12B\x12D\a\xF3\x2\x2\x12C\x12B\x3\x2\x2\x2\x12C" + - "\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x126\x94\x2\x12F" + - "\x130\x5\x6\x4\x2\x130\x131\x5\x126\x94\x2\x131\x133\x3\x2\x2\x2\x132" + - "\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134\x136" + - "\x5\b\x5\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2" + - "\x2\x2\x137\x139\x5\x126\x94\x2\x138\x13A\x5\f\a\x2\x139\x138\x3\x2\x2" + - "\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x5\x126\x94" + - "\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2\x2\x13E" + - "\x13F\x3\x2\x2\x2\x13F\x141\x5\x126\x94\x2\x140\x142\x5\x16\f\x2\x141" + - "\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x145" + - "\x5\x126\x94\x2\x144\x146\a\xF3\x2\x2\x145\x144\x3\x2\x2\x2\x145\x146" + - "\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xB4\x2\x2\x148\x149\a\xF3" + - "\x2\x2\x149\x14A\a\xD3\x2\x2\x14A\x14B\a\xF3\x2\x2\x14B\x14C\a\x1E\x2" + - "\x2\x14C\a\x3\x2\x2\x2\x14D\x14E\a\x13\x2\x2\x14E\x150\x5\x126\x94\x2" + - "\x14F\x151\x5\n\x6\x2\x150\x14F\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152" + - "\x150\x3\x2\x2\x2\x152\x153\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x155" + - "\a@\x2\x2\x155\t\x3\x2\x2\x2\x156\x158\x5\x104\x83\x2\x157\x159\a\xF3" + - "\x2\x2\x158\x157\x3\x2\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15A\x3\x2\x2" + - "\x2\x15A\x15C\a\xC0\x2\x2\x15B\x15D\a\xF3\x2\x2\x15C\x15B\x3\x2\x2\x2" + - "\x15C\x15D\x3\x2\x2\x2\x15D\x15E\x3\x2\x2\x2\x15E\x15F\x5\x116\x8C\x2" + - "\x15F\x160\x5\x126\x94\x2\x160\v\x3\x2\x2\x2\x161\x162\x5\x1A\xE\x2\x162" + - "\x163\x5\x126\x94\x2\x163\x165\x3\x2\x2\x2\x164\x161\x3\x2\x2\x2\x165" + - "\x166\x3\x2\x2\x2\x166\x164\x3\x2\x2\x2\x166\x167\x3\x2\x2\x2\x167\r\x3" + - "\x2\x2\x2\x168\x16E\x5\x12\n\x2\x169\x16A\x5\x126\x94\x2\x16A\x16B\x5" + - "\x12\n\x2\x16B\x16D\x3\x2\x2\x2\x16C\x169\x3\x2\x2\x2\x16D\x170\x3\x2" + - "\x2\x2\x16E\x16C\x3\x2\x2\x2\x16E\x16F\x3\x2\x2\x2\x16F\x171\x3\x2\x2" + - "\x2\x170\x16E\x3\x2\x2\x2\x171\x172\x5\x126\x94\x2\x172\xF\x3\x2\x2\x2" + - "\x173\x174\a}\x2\x2\x174\x175\a\xF3\x2\x2\x175\x17C\a\xD1\x2\x2\x176\x177" + - "\a\x7F\x2\x2\x177\x178\a\xF3\x2\x2\x178\x17C\t\x2\x2\x2\x179\x17C\a~\x2" + - "\x2\x17A\x17C\a\x80\x2\x2\x17B\x173\x3\x2\x2\x2\x17B\x176\x3\x2\x2\x2" + - "\x17B\x179\x3\x2\x2\x2\x17B\x17A\x3\x2\x2\x2\x17C\x11\x3\x2\x2\x2\x17D" + - "\x188\x5\x122\x92\x2\x17E\x188\x5\x30\x19\x2\x17F\x188\x5:\x1E\x2\x180" + - "\x188\x5\x42\"\x2\x181\x188\x5*\x16\x2\x182\x188\x5^\x30\x2\x183\x188" + - "\x5\xCCg\x2\x184\x188\x5\x10\t\x2\x185\x188\x5\xC0\x61\x2\x186\x188\x5" + - "\x14\v\x2\x187\x17D\x3\x2\x2\x2\x187\x17E\x3\x2\x2\x2\x187\x17F\x3\x2" + - "\x2\x2\x187\x180\x3\x2\x2\x2\x187\x181\x3\x2\x2\x2\x187\x182\x3\x2\x2" + - "\x2\x187\x183\x3\x2\x2\x2\x187\x184\x3\x2\x2\x2\x187\x185\x3\x2\x2\x2" + - "\x187\x186\x3\x2\x2\x2\x188\x13\x3\x2\x2\x2\x189\x18C\x5n\x38\x2\x18A" + - "\x18C\x5p\x39\x2\x18B\x189\x3\x2\x2\x2\x18B\x18A\x3\x2\x2\x2\x18C\x15" + - "\x3\x2\x2\x2\x18D\x193\x5\x18\r\x2\x18E\x18F\x5\x126\x94\x2\x18F\x190" + - "\x5\x18\r\x2\x190\x192\x3\x2\x2\x2\x191\x18E\x3\x2\x2\x2\x192\x195\x3" + - "\x2\x2\x2\x193\x191\x3\x2\x2\x2\x193\x194\x3\x2\x2\x2\x194\x196\x3\x2" + - "\x2\x2\x195\x193\x3\x2\x2\x2\x196\x197\x5\x126\x94\x2\x197\x17\x3\x2\x2" + - "\x2\x198\x19F\x5L\'\x2\x199\x19F\x5\x8CG\x2\x19A\x19F\x5\x8EH\x2\x19B" + - "\x19F\x5\x90I\x2\x19C\x19F\x5\xBC_\x2\x19D\x19F\x5\x14\v\x2\x19E\x198" + - "\x3\x2\x2\x2\x19E\x199\x3\x2\x2\x2\x19E\x19A\x3\x2\x2\x2\x19E\x19B\x3" + - "\x2\x2\x2\x19E\x19C\x3\x2\x2\x2\x19E\x19D\x3\x2\x2\x2\x19F\x19\x3\x2\x2" + - "\x2\x1A0\x1A1\a\xF\x2\x2\x1A1\x1A2\a\xF3\x2\x2\x1A2\x1A4\x5\xE8u\x2\x1A3" + - "\x1A5\a\xF3\x2\x2\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A6" + - "\x3\x2\x2\x2\x1A6\x1A8\a\xC0\x2\x2\x1A7\x1A9\a\xF3\x2\x2\x1A8\x1A7\x3" + - "\x2\x2\x2\x1A8\x1A9\x3\x2\x2\x2\x1A9\x1AA\x3\x2\x2\x2\x1AA\x1B5\x5\x116" + - "\x8C\x2\x1AB\x1AD\a\xF3\x2\x2\x1AC\x1AB\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2" + - "\x2\x1AD\x1AE\x3\x2\x2\x2\x1AE\x1B0\a\t\x2\x2\x1AF\x1B1\a\xF3\x2\x2\x1B0" + - "\x1AF\x3\x2\x2\x2\x1B0\x1B1\x3\x2\x2\x2\x1B1\x1B2\x3\x2\x2\x2\x1B2\x1B4" + - "\x5\x116\x8C\x2\x1B3\x1AC\x3\x2\x2\x2\x1B4\x1B7\x3\x2\x2\x2\x1B5\x1B3" + - "\x3\x2\x2\x2\x1B5\x1B6\x3\x2\x2\x2\x1B6\x1B\x3\x2\x2\x2\x1B7\x1B5\x3\x2" + - "\x2\x2\x1B8\x1BE\x5\x1E\x10\x2\x1B9\x1BA\x5\x126\x94\x2\x1BA\x1BB\x5\x1E" + - "\x10\x2\x1BB\x1BD\x3\x2\x2\x2\x1BC\x1B9\x3\x2\x2\x2\x1BD\x1C0\x3\x2\x2" + - "\x2\x1BE\x1BC\x3\x2\x2\x2\x1BE\x1BF\x3\x2\x2\x2\x1BF\x1C1\x3\x2\x2\x2" + - "\x1C0\x1BE\x3\x2\x2\x2\x1C1\x1C2\x5\x126\x94\x2\x1C2\x1D\x3\x2\x2\x2\x1C3" + - "\x207\x5\x114\x8B\x2\x1C4\x207\x5 \x11\x2\x1C5\x207\x5\x1A\xE\x2\x1C6" + - "\x207\x5\"\x12\x2\x1C7\x207\x5$\x13\x2\x1C8\x207\x5&\x14\x2\x1C9\x207" + - "\x5(\x15\x2\x1CA\x207\x5*\x16\x2\x1CB\x207\x5.\x18\x2\x1CC\x207\x5\x34" + - "\x1B\x2\x1CD\x207\x5\x32\x1A\x2\x1CE\x207\x5\x36\x1C\x2\x1CF\x207\x5\x38" + - "\x1D\x2\x1D0\x207\x5> \x2\x1D1\x207\x5@!\x2\x1D2\x207\x5\x44#\x2\x1D3" + - "\x207\x5\xDCo\x2\x1D4\x207\x5\x46$\x2\x1D5\x207\x5H%\x2\x1D6\x207\x5J" + - "&\x2\x1D7\x207\x5N(\x2\x1D8\x207\x5P)\x2\x1D9\x207\x5R*\x2\x1DA\x207\x5" + - "T+\x2\x1DB\x207\x5^\x30\x2\x1DC\x207\x5`\x31\x2\x1DD\x207\x5\x62\x32\x2" + - "\x1DE\x207\x5\x64\x33\x2\x1DF\x207\x5\x66\x34\x2\x1E0\x207\x5h\x35\x2" + - "\x1E1\x207\x5j\x36\x2\x1E2\x207\x5l\x37\x2\x1E3\x207\x5\x14\v\x2\x1E4" + - "\x207\x5x=\x2\x1E5\x207\x5z>\x2\x1E6\x207\x5|?\x2\x1E7\x207\x5~@\x2\x1E8" + - "\x207\x5\x80\x41\x2\x1E9\x207\x5\x82\x42\x2\x1EA\x207\x5\x84\x43\x2\x1EB" + - "\x207\x5\x8A\x46\x2\x1EC\x207\x5\x92J\x2\x1ED\x207\x5\x94K\x2\x1EE\x207" + - "\x5\x96L\x2\x1EF\x207\x5\x98M\x2\x1F0\x207\x5\x9CO\x2\x1F1\x207\x5\x9E" + - "P\x2\x1F2\x207\x5\xA0Q\x2\x1F3\x207\x5\xA2R\x2\x1F4\x207\x5\xA4S\x2\x1F5" + - "\x207\x5\xA6T\x2\x1F6\x207\x5\xA8U\x2\x1F7\x207\x5\xAAV\x2\x1F8\x207\x5" + - "\xACW\x2\x1F9\x207\x5\xB4[\x2\x1FA\x207\x5\xB6\\\x2\x1FB\x207\x5\xB8]" + - "\x2\x1FC\x207\x5\xBA^\x2\x1FD\x207\x5\xBE`\x2\x1FE\x207\x5\xC6\x64\x2" + - "\x1FF\x207\x5\xC8\x65\x2\x200\x207\x5\xCCg\x2\x201\x207\x5\xD2j\x2\x202" + - "\x207\x5\xD4k\x2\x203\x207\x5\xD6l\x2\x204\x207\x5\xD8m\x2\x205\x207\x5" + - "\xE2r\x2\x206\x1C3\x3\x2\x2\x2\x206\x1C4\x3\x2\x2\x2\x206\x1C5\x3\x2\x2" + - "\x2\x206\x1C6\x3\x2\x2\x2\x206\x1C7\x3\x2\x2\x2\x206\x1C8\x3\x2\x2\x2" + - "\x206\x1C9\x3\x2\x2\x2\x206\x1CA\x3\x2\x2\x2\x206\x1CB\x3\x2\x2\x2\x206" + - "\x1CC\x3\x2\x2\x2\x206\x1CD\x3\x2\x2\x2\x206\x1CE\x3\x2\x2\x2\x206\x1CF" + - "\x3\x2\x2\x2\x206\x1D0\x3\x2\x2\x2\x206\x1D1\x3\x2\x2\x2\x206\x1D2\x3" + - "\x2\x2\x2\x206\x1D3\x3\x2\x2\x2\x206\x1D4\x3\x2\x2\x2\x206\x1D5\x3\x2" + - "\x2\x2\x206\x1D6\x3\x2\x2\x2\x206\x1D7\x3\x2\x2\x2\x206\x1D8\x3\x2\x2" + - "\x2\x206\x1D9\x3\x2\x2\x2\x206\x1DA\x3\x2\x2\x2\x206\x1DB\x3\x2\x2\x2" + - "\x206\x1DC\x3\x2\x2\x2\x206\x1DD\x3\x2\x2\x2\x206\x1DE\x3\x2\x2\x2\x206" + - "\x1DF\x3\x2\x2\x2\x206\x1E0\x3\x2\x2\x2\x206\x1E1\x3\x2\x2\x2\x206\x1E2" + - "\x3\x2\x2\x2\x206\x1E3\x3\x2\x2\x2\x206\x1E4\x3\x2\x2\x2\x206\x1E5\x3" + - "\x2\x2\x2\x206\x1E6\x3\x2\x2\x2\x206\x1E7\x3\x2\x2\x2\x206\x1E8\x3\x2" + - "\x2\x2\x206\x1E9\x3\x2\x2\x2\x206\x1EA\x3\x2\x2\x2\x206\x1EB\x3\x2\x2" + - "\x2\x206\x1EC\x3\x2\x2\x2\x206\x1ED\x3\x2\x2\x2\x206\x1EE\x3\x2\x2\x2" + - "\x206\x1EF\x3\x2\x2\x2\x206\x1F0\x3\x2\x2\x2\x206\x1F1\x3\x2\x2\x2\x206" + - "\x1F2\x3\x2\x2\x2\x206\x1F3\x3\x2\x2\x2\x206\x1F4\x3\x2\x2\x2\x206\x1F5" + - "\x3\x2\x2\x2\x206\x1F6\x3\x2\x2\x2\x206\x1F7\x3\x2\x2\x2\x206\x1F8\x3" + - "\x2\x2\x2\x206\x1F9\x3\x2\x2\x2\x206\x1FA\x3\x2\x2\x2\x206\x1FB\x3\x2" + - "\x2\x2\x206\x1FC\x3\x2\x2\x2\x206\x1FD\x3\x2\x2\x2\x206\x1FE\x3\x2\x2" + - "\x2\x206\x1FF\x3\x2\x2\x2\x206\x200\x3\x2\x2\x2\x206\x201\x3\x2\x2\x2" + - "\x206\x202\x3\x2\x2\x2\x206\x203\x3\x2\x2\x2\x206\x204\x3\x2\x2\x2\x206" + - "\x205\x3\x2\x2\x2\x207\x1F\x3\x2\x2\x2\x208\x209\a\x10\x2\x2\x209\x20A" + - "\a\xF3\x2\x2\x20A\x213\x5\xCA\x66\x2\x20B\x20D\a\xF3\x2\x2\x20C\x20B\x3" + - "\x2\x2\x2\x20C\x20D\x3\x2\x2\x2\x20D\x20E\x3\x2\x2\x2\x20E\x210\a\t\x2" + - "\x2\x20F\x211\a\xF3\x2\x2\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2" + - "\x211\x212\x3\x2\x2\x2\x212\x214\x5\xCA\x66\x2\x213\x20C\x3\x2\x2\x2\x213" + - "\x214\x3\x2\x2\x2\x214!\x3\x2\x2\x2\x215\x216\a\x14\x2\x2\x216#\x3\x2" + - "\x2\x2\x217\x218\a\x1C\x2\x2\x218\x219\a\xF3\x2\x2\x219\x21A\x5\xCA\x66" + - "\x2\x21A%\x3\x2\x2\x2\x21B\x21C\a\x1D\x2\x2\x21C\x21D\a\xF3\x2\x2\x21D" + - "\x21E\x5\xCA\x66\x2\x21E\'\x3\x2\x2\x2\x21F\x22F\a\x1F\x2\x2\x220\x221" + - "\a\xF3\x2\x2\x221\x22C\x5\xDAn\x2\x222\x224\a\xF3\x2\x2\x223\x222\x3\x2" + - "\x2\x2\x223\x224\x3\x2\x2\x2\x224\x225\x3\x2\x2\x2\x225\x227\a\t\x2\x2" + - "\x226\x228\a\xF3\x2\x2\x227\x226\x3\x2\x2\x2\x227\x228\x3\x2\x2\x2\x228" + - "\x229\x3\x2\x2\x2\x229\x22B\x5\xDAn\x2\x22A\x223\x3\x2\x2\x2\x22B\x22E" + - "\x3\x2\x2\x2\x22C\x22A\x3\x2\x2\x2\x22C\x22D\x3\x2\x2\x2\x22D\x230\x3" + - "\x2\x2\x2\x22E\x22C\x3\x2\x2\x2\x22F\x220\x3\x2\x2\x2\x22F\x230\x3\x2" + - "\x2\x2\x230)\x3\x2\x2\x2\x231\x232\x5\x11C\x8F\x2\x232\x233\a\xF3\x2\x2" + - "\x233\x235\x3\x2\x2\x2\x234\x231\x3\x2\x2\x2\x234\x235\x3\x2\x2\x2\x235" + - "\x236\x3\x2\x2\x2\x236\x237\a!\x2\x2\x237\x238\a\xF3\x2\x2\x238\x243\x5" + - ",\x17\x2\x239\x23B\a\xF3\x2\x2\x23A\x239\x3\x2\x2\x2\x23A\x23B\x3\x2\x2" + - "\x2\x23B\x23C\x3\x2\x2\x2\x23C\x23E\a\t\x2\x2\x23D\x23F\a\xF3\x2\x2\x23E" + - "\x23D\x3\x2\x2\x2\x23E\x23F\x3\x2\x2\x2\x23F\x240\x3\x2\x2\x2\x240\x242" + - "\x5,\x17\x2\x241\x23A\x3\x2\x2\x2\x242\x245\x3\x2\x2\x2\x243\x241\x3\x2" + - "\x2\x2\x243\x244\x3\x2\x2\x2\x244+\x3\x2\x2\x2\x245\x243\x3\x2\x2\x2\x246" + - "\x248\x5\x104\x83\x2\x247\x249\x5\x11A\x8E\x2\x248\x247\x3\x2\x2\x2\x248" + - "\x249\x3\x2\x2\x2\x249\x24C\x3\x2\x2\x2\x24A\x24B\a\xF3\x2\x2\x24B\x24D" + - "\x5\x106\x84\x2\x24C\x24A\x3\x2\x2\x2\x24C\x24D\x3\x2\x2\x2\x24D\x24F" + - "\x3\x2\x2\x2\x24E\x250\a\xF3\x2\x2\x24F\x24E\x3\x2\x2\x2\x24F\x250\x3" + - "\x2\x2\x2\x250\x251\x3\x2\x2\x2\x251\x253\a\xC0\x2\x2\x252\x254\a\xF3" + - "\x2\x2\x253\x252\x3\x2\x2\x2\x253\x254\x3\x2\x2\x2\x254\x255\x3\x2\x2" + - "\x2\x255\x256\x5\xCA\x66\x2\x256-\x3\x2\x2\x2\x257\x259\a#\x2\x2\x258" + - "\x25A\a\xF3\x2\x2\x259\x258\x3\x2\x2\x2\x259\x25A\x3\x2\x2\x2\x25A\x25B" + - "\x3\x2\x2\x2\x25B\x25D\a\xC0\x2\x2\x25C\x25E\a\xF3\x2\x2\x25D\x25C\x3" + - "\x2\x2\x2\x25D\x25E\x3\x2\x2\x2\x25E\x25F\x3\x2\x2\x2\x25F\x260\x5\xCA" + - "\x66\x2\x260/\x3\x2\x2\x2\x261\x262\x5\x11C\x8F\x2\x262\x263\a\xF3\x2" + - "\x2\x263\x265\x3\x2\x2\x2\x264\x261\x3\x2\x2\x2\x264\x265\x3\x2\x2\x2" + - "\x265\x266\x3\x2\x2\x2\x266\x267\a$\x2\x2\x267\x26A\a\xF3\x2\x2\x268\x269" + - "\a\x8A\x2\x2\x269\x26B\a\xF3\x2\x2\x26A\x268\x3\x2\x2\x2\x26A\x26B\x3" + - "\x2\x2\x2\x26B\x271\x3\x2\x2\x2\x26C\x26E\aO\x2\x2\x26D\x26F\x5\x11A\x8E" + - "\x2\x26E\x26D\x3\x2\x2\x2\x26E\x26F\x3\x2\x2\x2\x26F\x272\x3\x2\x2\x2" + - "\x270\x272\a\xA7\x2\x2\x271\x26C\x3\x2\x2\x2\x271\x270\x3\x2\x2\x2\x272" + - "\x273\x3\x2\x2\x2\x273\x274\a\xF3\x2\x2\x274\x276\x5\x104\x83\x2\x275" + - "\x277\x5\x11A\x8E\x2\x276\x275\x3\x2\x2\x2\x276\x277\x3\x2\x2\x2\x277" + - "\x278\x3\x2\x2\x2\x278\x279\a\xF3\x2\x2\x279\x27A\a\x62\x2\x2\x27A\x27B" + - "\a\xF3\x2\x2\x27B\x280\a\xCE\x2\x2\x27C\x27D\a\xF3\x2\x2\x27D\x27E\a\r" + - "\x2\x2\x27E\x27F\a\xF3\x2\x2\x27F\x281\a\xCE\x2\x2\x280\x27C\x3\x2\x2" + - "\x2\x280\x281\x3\x2\x2\x2\x281\x286\x3\x2\x2\x2\x282\x284\a\xF3\x2\x2" + - "\x283\x282\x3\x2\x2\x2\x283\x284\x3\x2\x2\x2\x284\x285\x3\x2\x2\x2\x285" + - "\x287\x5\xFA~\x2\x286\x283\x3\x2\x2\x2\x286\x287\x3\x2\x2\x2\x287\x28A" + - "\x3\x2\x2\x2\x288\x289\a\xF3\x2\x2\x289\x28B\x5\x106\x84\x2\x28A\x288" + - "\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x31\x3\x2\x2\x2\x28C\x28D\t\x3" + - "\x2\x2\x28D\x28E\a\xF3\x2\x2\x28E\x299\x5\x112\x8A\x2\x28F\x291\a\xF3" + - "\x2\x2\x290\x28F\x3\x2\x2\x2\x290\x291\x3\x2\x2\x2\x291\x292\x3\x2\x2" + - "\x2\x292\x294\a\t\x2\x2\x293\x295\a\xF3\x2\x2\x294\x293\x3\x2\x2\x2\x294" + - "\x295\x3\x2\x2\x2\x295\x296\x3\x2\x2\x2\x296\x298\x5\x112\x8A\x2\x297" + - "\x290\x3\x2\x2\x2\x298\x29B\x3\x2\x2\x2\x299\x297\x3\x2\x2\x2\x299\x29A" + - "\x3\x2\x2\x2\x29A\x33\x3\x2\x2\x2\x29B\x299\x3\x2\x2\x2\x29C\x29D\a\x31" + - "\x2\x2\x29D\x29E\a\xF3\x2\x2\x29E\x2A0\x5\xCA\x66\x2\x29F\x2A1\a\xF3\x2" + - "\x2\x2A0\x29F\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1\x2A2\x3\x2\x2\x2" + - "\x2A2\x2A4\a\t\x2\x2\x2A3\x2A5\a\xF3\x2\x2\x2A4\x2A3\x3\x2\x2\x2\x2A4" + - "\x2A5\x3\x2\x2\x2\x2A5\x2A6\x3\x2\x2\x2\x2A6\x2AF\x5\xCA\x66\x2\x2A7\x2A9" + - "\a\xF3\x2\x2\x2A8\x2A7\x3\x2\x2\x2\x2A8\x2A9\x3\x2\x2\x2\x2A9\x2AA\x3" + - "\x2\x2\x2\x2AA\x2AC\a\t\x2\x2\x2AB\x2AD\a\xF3\x2\x2\x2AC\x2AB\x3\x2\x2" + - "\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2\x2\x2AE\x2B0\x5\xCA\x66\x2" + - "\x2AF\x2A8\x3\x2\x2\x2\x2AF\x2B0\x3\x2\x2\x2\x2B0\x35\x3\x2\x2\x2\x2B1" + - "\x2B2\a\x33\x2\x2\x2B2\x2B4\x5\x126\x94\x2\x2B3\x2B5\x5\x1C\xF\x2\x2B4" + - "\x2B3\x3\x2\x2\x2\x2B4\x2B5\x3\x2\x2\x2\x2B5\x2B6\x3\x2\x2\x2\x2B6\x2B7" + - "\a_\x2\x2\x2B7\x2CD\x3\x2\x2\x2\x2B8\x2B9\a\x33\x2\x2\x2B9\x2BA\a\xF3" + - "\x2\x2\x2BA\x2BB\t\x4\x2\x2\x2BB\x2BC\a\xF3\x2\x2\x2BC\x2BD\x5\xCA\x66" + - "\x2\x2BD\x2BF\x5\x126\x94\x2\x2BE\x2C0\x5\x1C\xF\x2\x2BF\x2BE\x3\x2\x2" + - "\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2\a_\x2\x2\x2C2" + - "\x2CD\x3\x2\x2\x2\x2C3\x2C4\a\x33\x2\x2\x2C4\x2C5\x5\x126\x94\x2\x2C5" + - "\x2C6\x5\x1C\xF\x2\x2C6\x2C7\a_\x2\x2\x2C7\x2C8\a\xF3\x2\x2\x2C8\x2C9" + - "\t\x4\x2\x2\x2C9\x2CA\a\xF3\x2\x2\x2CA\x2CB\x5\xCA\x66\x2\x2CB\x2CD\x3" + - "\x2\x2\x2\x2CC\x2B1\x3\x2\x2\x2\x2CC\x2B8\x3\x2\x2\x2\x2CC\x2C3\x3\x2" + - "\x2\x2\x2CD\x37\x3\x2\x2\x2\x2CE\x2CF\a@\x2\x2\x2CF\x39\x3\x2\x2\x2\x2D0" + - "\x2D1\x5\x11C\x8F\x2\x2D1\x2D2\a\xF3\x2\x2\x2D2\x2D4\x3\x2\x2\x2\x2D3" + - "\x2D0\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6" + - "\a\x41\x2\x2\x2D6\x2D7\a\xF3\x2\x2\x2D7\x2D8\x5\x104\x83\x2\x2D8\x2DC" + - "\x5\x126\x94\x2\x2D9\x2DB\x5<\x1F\x2\x2DA\x2D9\x3\x2\x2\x2\x2DB\x2DE\x3" + - "\x2\x2\x2\x2DC\x2DA\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2\x2DD\x2DF\x3\x2" + - "\x2\x2\x2DE\x2DC\x3\x2\x2\x2\x2DF\x2E0\a\x38\x2\x2\x2E0;\x3\x2\x2\x2\x2E1" + - "\x2EA\x5\x104\x83\x2\x2E2\x2E4\a\xF3\x2\x2\x2E3\x2E2\x3\x2\x2\x2\x2E3" + - "\x2E4\x3\x2\x2\x2\x2E4\x2E5\x3\x2\x2\x2\x2E5\x2E7\a\xC0\x2\x2\x2E6\x2E8" + - "\a\xF3\x2\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\x3" + - "\x2\x2\x2\x2E9\x2EB\x5\xCA\x66\x2\x2EA\x2E3\x3\x2\x2\x2\x2EA\x2EB\x3\x2" + - "\x2\x2\x2EB\x2EC\x3\x2\x2\x2\x2EC\x2ED\x5\x126\x94\x2\x2ED=\x3\x2\x2\x2" + - "\x2EE\x2EF\a\x43\x2\x2\x2EF\x2F0\a\xF3\x2\x2\x2F0\x2F1\x5\xCA\x66\x2\x2F1" + - "?\x3\x2\x2\x2\x2F2\x2F3\a\x44\x2\x2\x2F3\x2F4\a\xF3\x2\x2\x2F4\x2F5\x5" + - "\xCA\x66\x2\x2F5\x41\x3\x2\x2\x2\x2F6\x2F7\x5\x11C\x8F\x2\x2F7\x2F8\a" + - "\xF3\x2\x2\x2F8\x2FA\x3\x2\x2\x2\x2F9\x2F6\x3\x2\x2\x2\x2F9\x2FA\x3\x2" + - "\x2\x2\x2FA\x2FB\x3\x2\x2\x2\x2FB\x2FC\a\x45\x2\x2\x2FC\x2FD\a\xF3\x2" + - "\x2\x2FD\x2FF\x5\x104\x83\x2\x2FE\x300\a\xF3\x2\x2\x2FF\x2FE\x3\x2\x2" + - "\x2\x2FF\x300\x3\x2\x2\x2\x300\x301\x3\x2\x2\x2\x301\x302\x5\xFA~\x2\x302" + - "\x43\x3\x2\x2\x2\x303\x304\t\x5\x2\x2\x304\x45\x3\x2\x2\x2\x305\x306\a" + - "L\x2\x2\x306\x307\a\xF3\x2\x2\x307\x309\x5\xCA\x66\x2\x308\x30A\a\xF3" + - "\x2\x2\x309\x308\x3\x2\x2\x2\x309\x30A\x3\x2\x2\x2\x30A\x30B\x3\x2\x2" + - "\x2\x30B\x30D\a\t\x2\x2\x30C\x30E\a\xF3\x2\x2\x30D\x30C\x3\x2\x2\x2\x30D" + - "\x30E\x3\x2\x2\x2\x30E\x30F\x3\x2\x2\x2\x30F\x310\x5\xCA\x66\x2\x310G" + - "\x3\x2\x2\x2\x311\x312\aN\x2\x2\x312\x313\a\xF3\x2\x2\x313\x314\a\x35" + - "\x2\x2\x314\x315\a\xF3\x2\x2\x315\x317\x5\x104\x83\x2\x316\x318\x5\x11A" + - "\x8E\x2\x317\x316\x3\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x319\x3\x2\x2" + - "\x2\x319\x31A\a\xF3\x2\x2\x31A\x31B\aW\x2\x2\x31B\x31C\a\xF3\x2\x2\x31C" + - "\x31D\x5\xCA\x66\x2\x31D\x31F\x5\x126\x94\x2\x31E\x320\x5\x1C\xF\x2\x31F" + - "\x31E\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x321\x3\x2\x2\x2\x321\x324" + - "\as\x2\x2\x322\x323\a\xF3\x2\x2\x323\x325\x5\x104\x83\x2\x324\x322\x3" + - "\x2\x2\x2\x324\x325\x3\x2\x2\x2\x325I\x3\x2\x2\x2\x326\x327\aN\x2\x2\x327" + - "\x328\a\xF3\x2\x2\x328\x32A\x5\x104\x83\x2\x329\x32B\x5\x11A\x8E\x2\x32A" + - "\x329\x3\x2\x2\x2\x32A\x32B\x3\x2\x2\x2\x32B\x32E\x3\x2\x2\x2\x32C\x32D" + - "\a\xF3\x2\x2\x32D\x32F\x5\x106\x84\x2\x32E\x32C\x3\x2\x2\x2\x32E\x32F" + - "\x3\x2\x2\x2\x32F\x331\x3\x2\x2\x2\x330\x332\a\xF3\x2\x2\x331\x330\x3" + - "\x2\x2\x2\x331\x332\x3\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x335\a\xC0" + - "\x2\x2\x334\x336\a\xF3\x2\x2\x335\x334\x3\x2\x2\x2\x335\x336\x3\x2\x2" + - "\x2\x336\x337\x3\x2\x2\x2\x337\x338\x5\xCA\x66\x2\x338\x339\a\xF3\x2\x2" + - "\x339\x33A\a\xAC\x2\x2\x33A\x33B\a\xF3\x2\x2\x33B\x340\x5\xCA\x66\x2\x33C" + - "\x33D\a\xF3\x2\x2\x33D\x33E\a\xA4\x2\x2\x33E\x33F\a\xF3\x2\x2\x33F\x341" + - "\x5\xCA\x66\x2\x340\x33C\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x342\x3" + - "\x2\x2\x2\x342\x344\x5\x126\x94\x2\x343\x345\x5\x1C\xF\x2\x344\x343\x3" + - "\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x346\x3\x2\x2\x2\x346\x349\as\x2" + - "\x2\x347\x348\a\xF3\x2\x2\x348\x34A\x5\x104\x83\x2\x349\x347\x3\x2\x2" + - "\x2\x349\x34A\x3\x2\x2\x2\x34AK\x3\x2\x2\x2\x34B\x34C\x5\x11C\x8F\x2\x34C" + - "\x34D\a\xF3\x2\x2\x34D\x34F\x3\x2\x2\x2\x34E\x34B\x3\x2\x2\x2\x34E\x34F" + - "\x3\x2\x2\x2\x34F\x352\x3\x2\x2\x2\x350\x351\a\xA3\x2\x2\x351\x353\a\xF3" + - "\x2\x2\x352\x350\x3\x2\x2\x2\x352\x353\x3\x2\x2\x2\x353\x354\x3\x2\x2" + - "\x2\x354\x356\aO\x2\x2\x355\x357\a\xF3\x2\x2\x356\x355\x3\x2\x2\x2\x356" + - "\x357\x3\x2\x2\x2\x357\x358\x3\x2\x2\x2\x358\x35A\x5\x104\x83\x2\x359" + - "\x35B\x5\x11A\x8E\x2\x35A\x359\x3\x2\x2\x2\x35A\x35B\x3\x2\x2\x2\x35B" + - "\x360\x3\x2\x2\x2\x35C\x35E\a\xF3\x2\x2\x35D\x35C\x3\x2\x2\x2\x35D\x35E" + - "\x3\x2\x2\x2\x35E\x35F\x3\x2\x2\x2\x35F\x361\x5\xFA~\x2\x360\x35D\x3\x2" + - "\x2\x2\x360\x361\x3\x2\x2\x2\x361\x366\x3\x2\x2\x2\x362\x364\a\xF3\x2" + - "\x2\x363\x362\x3\x2\x2\x2\x363\x364\x3\x2\x2\x2\x364\x365\x3\x2\x2\x2" + - "\x365\x367\x5\x106\x84\x2\x366\x363\x3\x2\x2\x2\x366\x367\x3\x2\x2\x2" + - "\x367\x368\x3\x2\x2\x2\x368\x36A\x5\x126\x94\x2\x369\x36B\x5\x1C\xF\x2" + - "\x36A\x369\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36C\x3\x2\x2\x2\x36C" + - "\x36D\a\x39\x2\x2\x36DM\x3\x2\x2\x2\x36E\x36F\aP\x2\x2\x36F\x370\a\xF3" + - "\x2\x2\x370\x372\x5\xDAn\x2\x371\x373\a\xF3\x2\x2\x372\x371\x3\x2\x2\x2" + - "\x372\x373\x3\x2\x2\x2\x373\x374\x3\x2\x2\x2\x374\x376\a\t\x2\x2\x375" + - "\x377\a\xF3\x2\x2\x376\x375\x3\x2\x2\x2\x376\x377\x3\x2\x2\x2\x377\x379" + - "\x3\x2\x2\x2\x378\x37A\x5\xCA\x66\x2\x379\x378\x3\x2\x2\x2\x379\x37A\x3" + - "\x2\x2\x2\x37A\x37C\x3\x2\x2\x2\x37B\x37D\a\xF3\x2\x2\x37C\x37B\x3\x2" + - "\x2\x2\x37C\x37D\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2\x37E\x380\a\t\x2\x2" + - "\x37F\x381\a\xF3\x2\x2\x380\x37F\x3\x2\x2\x2\x380\x381\x3\x2\x2\x2\x381" + - "\x382\x3\x2\x2\x2\x382\x383\x5\xCA\x66\x2\x383O\x3\x2\x2\x2\x384\x385" + - "\aR\x2\x2\x385\x386\a\xF3\x2\x2\x386\x387\x5\xCA\x66\x2\x387Q\x3\x2\x2" + - "\x2\x388\x389\aS\x2\x2\x389\x38A\a\xF3\x2\x2\x38A\x38B\x5\xCA\x66\x2\x38B" + - "S\x3\x2\x2\x2\x38C\x38D\aT\x2\x2\x38D\x38E\a\xF3\x2\x2\x38E\x38F\x5X-" + - "\x2\x38F\x390\a\xF3\x2\x2\x390\x391\a\xAA\x2\x2\x391\x392\a\xF3\x2\x2" + - "\x392\x397\x5\x1E\x10\x2\x393\x394\a\xF3\x2\x2\x394\x395\a\x36\x2\x2\x395" + - "\x396\a\xF3\x2\x2\x396\x398\x5\x1E\x10\x2\x397\x393\x3\x2\x2\x2\x397\x398" + - "\x3\x2\x2\x2\x398\x3A6\x3\x2\x2\x2\x399\x39D\x5V,\x2\x39A\x39C\x5Z.\x2" + - "\x39B\x39A\x3\x2\x2\x2\x39C\x39F\x3\x2\x2\x2\x39D\x39B\x3\x2\x2\x2\x39D" + - "\x39E\x3\x2\x2\x2\x39E\x3A1\x3\x2\x2\x2\x39F\x39D\x3\x2\x2\x2\x3A0\x3A2" + - "\x5\\/\x2\x3A1\x3A0\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2\x2\x3A2\x3A3\x3\x2" + - "\x2\x2\x3A3\x3A4\a:\x2\x2\x3A4\x3A6\x3\x2\x2\x2\x3A5\x38C\x3\x2\x2\x2" + - "\x3A5\x399\x3\x2\x2\x2\x3A6U\x3\x2\x2\x2\x3A7\x3A8\aT\x2\x2\x3A8\x3A9" + - "\a\xF3\x2\x2\x3A9\x3AA\x5X-\x2\x3AA\x3AB\a\xF3\x2\x2\x3AB\x3AC\a\xAA\x2" + - "\x2\x3AC\x3AE\x5\x126\x94\x2\x3AD\x3AF\x5\x1C\xF\x2\x3AE\x3AD\x3\x2\x2" + - "\x2\x3AE\x3AF\x3\x2\x2\x2\x3AFW\x3\x2\x2\x2\x3B0\x3B1\x5\xCA\x66\x2\x3B1" + - "Y\x3\x2\x2\x2\x3B2\x3B3\a\x37\x2\x2\x3B3\x3B4\a\xF3\x2\x2\x3B4\x3B5\x5" + - "X-\x2\x3B5\x3B6\a\xF3\x2\x2\x3B6\x3B7\a\xAA\x2\x2\x3B7\x3B9\x5\x126\x94" + - "\x2\x3B8\x3BA\x5\x1C\xF\x2\x3B9\x3B8\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2" + - "\x3BA[\x3\x2\x2\x2\x3BB\x3BC\a\x36\x2\x2\x3BC\x3BE\x5\x126\x94\x2\x3BD" + - "\x3BF\x5\x1C\xF\x2\x3BE\x3BD\x3\x2\x2\x2\x3BE\x3BF\x3\x2\x2\x2\x3BF]\x3" + - "\x2\x2\x2\x3C0\x3C1\aV\x2\x2\x3C1\x3C2\a\xF3\x2\x2\x3C2\x3C3\x5\x104\x83" + - "\x2\x3C3_\x3\x2\x2\x2\x3C4\x3C5\aX\x2\x2\x3C5\x3C6\a\xF3\x2\x2\x3C6\x3CF" + - "\x5\xDAn\x2\x3C7\x3C9\a\xF3\x2\x2\x3C8\x3C7\x3\x2\x2\x2\x3C8\x3C9\x3\x2" + - "\x2\x2\x3C9\x3CA\x3\x2\x2\x2\x3CA\x3CC\a\t\x2\x2\x3CB\x3CD\a\xF3\x2\x2" + - "\x3CC\x3CB\x3\x2\x2\x2\x3CC\x3CD\x3\x2\x2\x2\x3CD\x3CE\x3\x2\x2\x2\x3CE" + - "\x3D0\x5\xCA\x66\x2\x3CF\x3C8\x3\x2\x2\x2\x3D0\x3D1\x3\x2\x2\x2\x3D1\x3CF" + - "\x3\x2\x2\x2\x3D1\x3D2\x3\x2\x2\x2\x3D2\x61\x3\x2\x2\x2\x3D3\x3D4\a[\x2" + - "\x2\x3D4\x3D5\a\xF3\x2\x2\x3D5\x3D6\x5\xCA\x66\x2\x3D6\x63\x3\x2\x2\x2" + - "\x3D7\x3D8\a\x61\x2\x2\x3D8\x3DA\a\xF3\x2\x2\x3D9\x3D7\x3\x2\x2\x2\x3D9" + - "\x3DA\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DD\x5\xE8u\x2\x3DC\x3DE" + - "\a\xF3\x2\x2\x3DD\x3DC\x3\x2\x2\x2\x3DD\x3DE\x3\x2\x2\x2\x3DE\x3DF\x3" + - "\x2\x2\x2\x3DF\x3E1\a\xC0\x2\x2\x3E0\x3E2\a\xF3\x2\x2\x3E1\x3E0\x3\x2" + - "\x2\x2\x3E1\x3E2\x3\x2\x2\x2\x3E2\x3E3\x3\x2\x2\x2\x3E3\x3E4\x5\xCA\x66" + - "\x2\x3E4\x65\x3\x2\x2\x2\x3E5\x3E6\a\x64\x2\x2\x3E6\x3E7\a\xF3\x2\x2\x3E7" + - "\x3E9\x5\xDAn\x2\x3E8\x3EA\a\xF3\x2\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA" + - "\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2\x2\x3EB\x3ED\a\t\x2\x2\x3EC\x3EE\a\xF3" + - "\x2\x2\x3ED\x3EC\x3\x2\x2\x2\x3ED\x3EE\x3\x2\x2\x2\x3EE\x3EF\x3\x2\x2" + - "\x2\x3EF\x3F0\x5\xCA\x66\x2\x3F0g\x3\x2\x2\x2\x3F1\x3F2\a\\\x2\x2\x3F2" + - "\x3F3\a\xF3\x2\x2\x3F3\x3F4\x5\xCA\x66\x2\x3F4i\x3\x2\x2\x2\x3F5\x3F6" + - "\a]\x2\x2\x3F6\x3F7\a\xF3\x2\x2\x3F7\x406\x5\xCA\x66\x2\x3F8\x3FA\a\xF3" + - "\x2\x2\x3F9\x3F8\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FB\x3\x2\x2" + - "\x2\x3FB\x3FD\a\t\x2\x2\x3FC\x3FE\a\xF3\x2\x2\x3FD\x3FC\x3\x2\x2\x2\x3FD" + - "\x3FE\x3\x2\x2\x2\x3FE\x3FF\x3\x2\x2\x2\x3FF\x404\x5\xCA\x66\x2\x400\x401" + - "\a\xF3\x2\x2\x401\x402\a\xAC\x2\x2\x402\x403\a\xF3\x2\x2\x403\x405\x5" + - "\xCA\x66\x2\x404\x400\x3\x2\x2\x2\x404\x405\x3\x2\x2\x2\x405\x407\x3\x2" + - "\x2\x2\x406\x3F9\x3\x2\x2\x2\x406\x407\x3\x2\x2\x2\x407k\x3\x2\x2\x2\x408" + - "\x409\ah\x2\x2\x409\x40A\a\xF3\x2\x2\x40A\x40C\x5\xE8u\x2\x40B\x40D\a" + - "\xF3\x2\x2\x40C\x40B\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40E\x3\x2" + - "\x2\x2\x40E\x410\a\xC0\x2\x2\x40F\x411\a\xF3\x2\x2\x410\x40F\x3\x2\x2" + - "\x2\x410\x411\x3\x2\x2\x2\x411\x412\x3\x2\x2\x2\x412\x413\x5\xCA\x66\x2" + - "\x413m\x3\x2\x2\x2\x414\x416\ai\x2\x2\x415\x417\a\xF3\x2\x2\x416\x415" + - "\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x418\x3\x2\x2\x2\x418\x41A\x5" + - "\x104\x83\x2\x419\x41B\a\xF3\x2\x2\x41A\x419\x3\x2\x2\x2\x41A\x41B\x3" + - "\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E\a\xC0\x2\x2\x41D\x41F\a\xF3" + - "\x2\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F\x3\x2\x2\x2\x41F\x420\x3\x2\x2" + - "\x2\x420\x421\x5\xCA\x66\x2\x421o\x3\x2\x2\x2\x422\x426\x5r:\x2\x423\x425" + - "\x5t;\x2\x424\x423\x3\x2\x2\x2\x425\x428\x3\x2\x2\x2\x426\x424\x3\x2\x2" + - "\x2\x426\x427\x3\x2\x2\x2\x427\x42A\x3\x2\x2\x2\x428\x426\x3\x2\x2\x2" + - "\x429\x42B\x5v<\x2\x42A\x429\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42C" + - "\x3\x2\x2\x2\x42C\x42D\am\x2\x2\x42Dq\x3\x2\x2\x2\x42E\x430\aj\x2\x2\x42F" + - "\x431\a\xF3\x2\x2\x430\x42F\x3\x2\x2\x2\x430\x431\x3\x2\x2\x2\x431\x432" + - "\x3\x2\x2\x2\x432\x433\x5X-\x2\x433\x434\a\xF3\x2\x2\x434\x435\a\xAA\x2" + - "\x2\x435\x43B\x5\x126\x94\x2\x436\x43A\x5\xE\b\x2\x437\x43A\x5\x16\f\x2" + - "\x438\x43A\x5\x1C\xF\x2\x439\x436\x3\x2\x2\x2\x439\x437\x3\x2\x2\x2\x439" + - "\x438\x3\x2\x2\x2\x43A\x43D\x3\x2\x2\x2\x43B\x439\x3\x2\x2\x2\x43B\x43C" + - "\x3\x2\x2\x2\x43Cs\x3\x2\x2\x2\x43D\x43B\x3\x2\x2\x2\x43E\x440\ak\x2\x2" + - "\x43F\x441\a\xF3\x2\x2\x440\x43F\x3\x2\x2\x2\x440\x441\x3\x2\x2\x2\x441" + - "\x442\x3\x2\x2\x2\x442\x443\x5X-\x2\x443\x444\a\xF3\x2\x2\x444\x445\a" + - "\xAA\x2\x2\x445\x44B\x5\x126\x94\x2\x446\x44A\x5\xE\b\x2\x447\x44A\x5" + - "\x16\f\x2\x448\x44A\x5\x1C\xF\x2\x449\x446\x3\x2\x2\x2\x449\x447\x3\x2" + - "\x2\x2\x449\x448\x3\x2\x2\x2\x44A\x44D\x3\x2\x2\x2\x44B\x449\x3\x2\x2" + - "\x2\x44B\x44C\x3\x2\x2\x2\x44Cu\x3\x2\x2\x2\x44D\x44B\x3\x2\x2\x2\x44E" + - "\x44F\al\x2\x2\x44F\x455\x5\x126\x94\x2\x450\x454\x5\xE\b\x2\x451\x454" + - "\x5\x16\f\x2\x452\x454\x5\x1C\xF\x2\x453\x450\x3\x2\x2\x2\x453\x451\x3" + - "\x2\x2\x2\x453\x452\x3\x2\x2\x2\x454\x457\x3\x2\x2\x2\x455\x453\x3\x2" + - "\x2\x2\x455\x456\x3\x2\x2\x2\x456w\x3\x2\x2\x2\x457\x455\x3\x2\x2\x2\x458" + - "\x45A\ao\x2\x2\x459\x45B\a\xF3\x2\x2\x45A\x459\x3\x2\x2\x2\x45A\x45B\x3" + - "\x2\x2\x2\x45B\x45C\x3\x2\x2\x2\x45C\x45E\a\xC4\x2\x2\x45D\x45F\a\xF3" + - "\x2\x2\x45E\x45D\x3\x2\x2\x2\x45E\x45F\x3\x2\x2\x2\x45F\x460\x3\x2\x2" + - "\x2\x460\x462\x5\xF4{\x2\x461\x463\a\xF3\x2\x2\x462\x461\x3\x2\x2\x2\x462" + - "\x463\x3\x2\x2\x2\x463\x464\x3\x2\x2\x2\x464\x465\a\xCB\x2\x2\x465y\x3" + - "\x2\x2\x2\x466\x467\ap\x2\x2\x467\x468\a\xF3\x2\x2\x468\x469\x5\xCA\x66" + - "\x2\x469{\x3\x2\x2\x2\x46A\x46B\ar\x2\x2\x46B\x46C\a\xF3\x2\x2\x46C\x46D" + - "\x5\xCA\x66\x2\x46D\x46E\a\xF3\x2\x2\x46E\x46F\a\x12\x2\x2\x46F\x470\a" + - "\xF3\x2\x2\x470\x471\x5\xCA\x66\x2\x471}\x3\x2\x2\x2\x472\x473\t\x6\x2" + - "\x2\x473\x47A\a\xF3\x2\x2\x474\x475\aS\x2\x2\x475\x476\a\xF3\x2\x2\x476" + - "\x47B\x5\xCA\x66\x2\x477\x478\a\x95\x2\x2\x478\x479\a\xF3\x2\x2\x479\x47B" + - "\as\x2\x2\x47A\x474\x3\x2\x2\x2\x47A\x477\x3\x2\x2\x2\x47B\x7F\x3\x2\x2" + - "\x2\x47C\x47D\ax\x2\x2\x47D\x47E\a\xF3\x2\x2\x47E\x47F\x5\xCA\x66\x2\x47F" + - "\x480\a\xF3\x2\x2\x480\x481\aS\x2\x2\x481\x482\a\xF3\x2\x2\x482\x48D\x5" + - "\xCA\x66\x2\x483\x485\a\xF3\x2\x2\x484\x483\x3\x2\x2\x2\x484\x485\x3\x2" + - "\x2\x2\x485\x486\x3\x2\x2\x2\x486\x488\a\t\x2\x2\x487\x489\a\xF3\x2\x2" + - "\x488\x487\x3\x2\x2\x2\x488\x489\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48A" + - "\x48C\x5\xCA\x66\x2\x48B\x484\x3\x2\x2\x2\x48C\x48F\x3\x2\x2\x2\x48D\x48B" + - "\x3\x2\x2\x2\x48D\x48E\x3\x2\x2\x2\x48E\x81\x3\x2\x2\x2\x48F\x48D\x3\x2" + - "\x2\x2\x490\x491\ax\x2\x2\x491\x492\a\xF3\x2\x2\x492\x493\x5\xCA\x66\x2" + - "\x493\x494\a\xF3\x2\x2\x494\x495\aR\x2\x2\x495\x496\a\xF3\x2\x2\x496\x4A1" + - "\x5\xCA\x66\x2\x497\x499\a\xF3\x2\x2\x498\x497\x3\x2\x2\x2\x498\x499\x3" + - "\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\a\t\x2\x2\x49B\x49D\a\xF3\x2" + - "\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2\x49D\x49E\x3\x2\x2\x2" + - "\x49E\x4A0\x5\xCA\x66\x2\x49F\x498\x3\x2\x2\x2\x4A0\x4A3\x3\x2\x2\x2\x4A1" + - "\x49F\x3\x2\x2\x2\x4A1\x4A2\x3\x2\x2\x2\x4A2\x83\x3\x2\x2\x2\x4A3\x4A1" + - "\x3\x2\x2\x2\x4A4\x4A5\a{\x2\x2\x4A5\x4A6\a\xF3\x2\x2\x4A6\x4A7\x5\xCA" + - "\x66\x2\x4A7\x4A8\a\xF3\x2\x2\x4A8\x4A9\aN\x2\x2\x4A9\x4AA\a\xF3\x2\x2" + - "\x4AA\x4AF\t\a\x2\x2\x4AB\x4AC\a\xF3\x2\x2\x4AC\x4AD\a\v\x2\x2\x4AD\x4AE" + - "\a\xF3\x2\x2\x4AE\x4B0\t\b\x2\x2\x4AF\x4AB\x3\x2\x2\x2\x4AF\x4B0\x3\x2" + - "\x2\x2\x4B0\x4B3\x3\x2\x2\x2\x4B1\x4B2\a\xF3\x2\x2\x4B2\x4B4\t\t\x2\x2" + - "\x4B3\x4B1\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4\x4B5\x3\x2\x2\x2\x4B5" + - "\x4B6\a\xF3\x2\x2\x4B6\x4B7\a\x12\x2\x2\x4B7\x4B8\a\xF3\x2\x2\x4B8\x4C3" + - "\x5\xDAn\x2\x4B9\x4BA\a\xF3\x2\x2\x4BA\x4BC\a`\x2\x2\x4BB\x4BD\a\xF3\x2" + - "\x2\x4BC\x4BB\x3\x2\x2\x2\x4BC\x4BD\x3\x2\x2\x2\x4BD\x4BE\x3\x2\x2\x2" + - "\x4BE\x4C0\a\xC0\x2\x2\x4BF\x4C1\a\xF3\x2\x2\x4C0\x4BF\x3\x2\x2\x2\x4C0" + - "\x4C1\x3\x2\x2\x2\x4C1\x4C2\x3\x2\x2\x2\x4C2\x4C4\x5\xCA\x66\x2\x4C3\x4B9" + - "\x3\x2\x2\x2\x4C3\x4C4\x3\x2\x2\x2\x4C4\x85\x3\x2\x2\x2\x4C5\x4D2\x5\x88" + - "\x45\x2\x4C6\x4C8\a\xF3\x2\x2\x4C7\x4C6\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2" + - "\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9\x4CB\t\n\x2\x2\x4CA\x4CC\a\xF3\x2\x2\x4CB" + - "\x4CA\x3\x2\x2\x2\x4CB\x4CC\x3\x2\x2\x2\x4CC\x4CE\x3\x2\x2\x2\x4CD\x4CF" + - "\x5\x88\x45\x2\x4CE\x4CD\x3\x2\x2\x2\x4CE\x4CF\x3\x2\x2\x2\x4CF\x4D1\x3" + - "\x2\x2\x2\x4D0\x4C7\x3\x2\x2\x2\x4D1\x4D4\x3\x2\x2\x2\x4D2\x4D0\x3\x2" + - "\x2\x2\x4D2\x4D3\x3\x2\x2\x2\x4D3\x4E7\x3\x2\x2\x2\x4D4\x4D2\x3\x2\x2" + - "\x2\x4D5\x4D7\x5\x88\x45\x2\x4D6\x4D5\x3\x2\x2\x2\x4D6\x4D7\x3\x2\x2\x2" + - "\x4D7\x4E2\x3\x2\x2\x2\x4D8\x4DA\a\xF3\x2\x2\x4D9\x4D8\x3\x2\x2\x2\x4D9" + - "\x4DA\x3\x2\x2\x2\x4DA\x4DB\x3\x2\x2\x2\x4DB\x4DD\t\n\x2\x2\x4DC\x4DE" + - "\a\xF3\x2\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4E0\x3" + - "\x2\x2\x2\x4DF\x4E1\x5\x88\x45\x2\x4E0\x4DF\x3\x2\x2\x2\x4E0\x4E1\x3\x2" + - "\x2\x2\x4E1\x4E3\x3\x2\x2\x2\x4E2\x4D9\x3\x2\x2\x2\x4E3\x4E4\x3\x2\x2" + - "\x2\x4E4\x4E2\x3\x2\x2\x2\x4E4\x4E5\x3\x2\x2\x2\x4E5\x4E7\x3\x2\x2\x2" + - "\x4E6\x4C5\x3\x2\x2\x2\x4E6\x4D6\x3\x2\x2\x2\x4E7\x87\x3\x2\x2\x2\x4E8" + - "\x4FA\x5\xCA\x66\x2\x4E9\x4F7\t\v\x2\x2\x4EA\x4EC\a\xF3\x2\x2\x4EB\x4EA" + - "\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC\x4ED\x3\x2\x2\x2\x4ED\x4EF\a\xC4" + - "\x2\x2\x4EE\x4F0\a\xF3\x2\x2\x4EF\x4EE\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2" + - "\x2\x4F0\x4F1\x3\x2\x2\x2\x4F1\x4F3\x5\xF4{\x2\x4F2\x4F4\a\xF3\x2\x2\x4F3" + - "\x4F2\x3\x2\x2\x2\x4F3\x4F4\x3\x2\x2\x2\x4F4\x4F5\x3\x2\x2\x2\x4F5\x4F6" + - "\a\xCB\x2\x2\x4F6\x4F8\x3\x2\x2\x2\x4F7\x4EB\x3\x2\x2\x2\x4F7\x4F8\x3" + - "\x2\x2\x2\x4F8\x4FA\x3\x2\x2\x2\x4F9\x4E8\x3\x2\x2\x2\x4F9\x4E9\x3\x2" + - "\x2\x2\x4FA\x89\x3\x2\x2\x2\x4FB\x4FC\a\x85\x2\x2\x4FC\x4FD\a\xF3\x2\x2" + - "\x4FD\x4FF\x5\xDAn\x2\x4FE\x500\a\xF3\x2\x2\x4FF\x4FE\x3\x2\x2\x2\x4FF" + - "\x500\x3\x2\x2\x2\x500\x501\x3\x2\x2\x2\x501\x506\a\t\x2\x2\x502\x504" + - "\a\xF3\x2\x2\x503\x502\x3\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x505\x3" + - "\x2\x2\x2\x505\x507\x5\x86\x44\x2\x506\x503\x3\x2\x2\x2\x506\x507\x3\x2" + - "\x2\x2\x507\x8B\x3\x2\x2\x2\x508\x509\x5\x11C\x8F\x2\x509\x50A\a\xF3\x2" + - "\x2\x50A\x50C\x3\x2\x2\x2\x50B\x508\x3\x2\x2\x2\x50B\x50C\x3\x2\x2\x2" + - "\x50C\x50F\x3\x2\x2\x2\x50D\x50E\a\xA3\x2\x2\x50E\x510\a\xF3\x2\x2\x50F" + - "\x50D\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x511\x3\x2\x2\x2\x511\x512" + - "\a\x87\x2\x2\x512\x513\a\xF3\x2\x2\x513\x515\x5\x104\x83\x2\x514\x516" + - "\x5\x11A\x8E\x2\x515\x514\x3\x2\x2\x2\x515\x516\x3\x2\x2\x2\x516\x51B" + - "\x3\x2\x2\x2\x517\x519\a\xF3\x2\x2\x518\x517\x3\x2\x2\x2\x518\x519\x3" + - "\x2\x2\x2\x519\x51A\x3\x2\x2\x2\x51A\x51C\x5\xFA~\x2\x51B\x518\x3\x2\x2" + - "\x2\x51B\x51C\x3\x2\x2\x2\x51C\x51F\x3\x2\x2\x2\x51D\x51E\a\xF3\x2\x2" + - "\x51E\x520\x5\x106\x84\x2\x51F\x51D\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2" + - "\x520\x521\x3\x2\x2\x2\x521\x523\x5\x126\x94\x2\x522\x524\x5\x1C\xF\x2" + - "\x523\x522\x3\x2\x2\x2\x523\x524\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525" + - "\x526\a;\x2\x2\x526\x8D\x3\x2\x2\x2\x527\x528\x5\x11C\x8F\x2\x528\x529" + - "\a\xF3\x2\x2\x529\x52B\x3\x2\x2\x2\x52A\x527\x3\x2\x2\x2\x52A\x52B\x3" + - "\x2\x2\x2\x52B\x52E\x3\x2\x2\x2\x52C\x52D\a\xA3\x2\x2\x52D\x52F\a\xF3" + - "\x2\x2\x52E\x52C\x3\x2\x2\x2\x52E\x52F\x3\x2\x2\x2\x52F\x530\x3\x2\x2" + - "\x2\x530\x531\a\x89\x2\x2\x531\x532\a\xF3\x2\x2\x532\x537\x5\x104\x83" + - "\x2\x533\x535\a\xF3\x2\x2\x534\x533\x3\x2\x2\x2\x534\x535\x3\x2\x2\x2" + - "\x535\x536\x3\x2\x2\x2\x536\x538\x5\xFA~\x2\x537\x534\x3\x2\x2\x2\x537" + - "\x538\x3\x2\x2\x2\x538\x539\x3\x2\x2\x2\x539\x53B\x5\x126\x94\x2\x53A" + - "\x53C\x5\x1C\xF\x2\x53B\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D" + - "\x3\x2\x2\x2\x53D\x53E\a;\x2\x2\x53E\x8F\x3\x2\x2\x2\x53F\x540\x5\x11C" + - "\x8F\x2\x540\x541\a\xF3\x2\x2\x541\x543\x3\x2\x2\x2\x542\x53F\x3\x2\x2" + - "\x2\x542\x543\x3\x2\x2\x2\x543\x546\x3\x2\x2\x2\x544\x545\a\xA3\x2\x2" + - "\x545\x547\a\xF3\x2\x2\x546\x544\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547" + - "\x548\x3\x2\x2\x2\x548\x549\a\x88\x2\x2\x549\x54A\a\xF3\x2\x2\x54A\x54F" + - "\x5\x104\x83\x2\x54B\x54D\a\xF3\x2\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D" + - "\x3\x2\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x550\x5\xFA~\x2\x54F\x54C\x3\x2" + - "\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x551\x3\x2\x2\x2\x551\x553\x5\x126\x94" + - "\x2\x552\x554\x5\x1C\xF\x2\x553\x552\x3\x2\x2\x2\x553\x554\x3\x2\x2\x2" + - "\x554\x555\x3\x2\x2\x2\x555\x556\a;\x2\x2\x556\x91\x3\x2\x2\x2\x557\x558" + - "\a\x8C\x2\x2\x558\x559\a\xF3\x2\x2\x559\x55B\x5\xDAn\x2\x55A\x55C\a\xF3" + - "\x2\x2\x55B\x55A\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x55D\x3\x2\x2" + - "\x2\x55D\x55F\a\t\x2\x2\x55E\x560\a\xF3\x2\x2\x55F\x55E\x3\x2\x2\x2\x55F" + - "\x560\x3\x2\x2\x2\x560\x562\x3\x2\x2\x2\x561\x563\x5\xCA\x66\x2\x562\x561" + - "\x3\x2\x2\x2\x562\x563\x3\x2\x2\x2\x563\x565\x3\x2\x2\x2\x564\x566\a\xF3" + - "\x2\x2\x565\x564\x3\x2\x2\x2\x565\x566\x3\x2\x2\x2\x566\x567\x3\x2\x2" + - "\x2\x567\x569\a\t\x2\x2\x568\x56A\a\xF3\x2\x2\x569\x568\x3\x2\x2\x2\x569" + - "\x56A\x3\x2\x2\x2\x56A\x56B\x3\x2\x2\x2\x56B\x56C\x5\xCA\x66\x2\x56C\x93" + - "\x3\x2\x2\x2\x56D\x56E\a\x8F\x2\x2\x56E\x56F\a\xF3\x2\x2\x56F\x57E\x5" + - "\x104\x83\x2\x570\x572\a\xF3\x2\x2\x571\x570\x3\x2\x2\x2\x571\x572\x3" + - "\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x575\a\xC4\x2\x2\x574\x576\a\xF3" + - "\x2\x2\x575\x574\x3\x2\x2\x2\x575\x576\x3\x2\x2\x2\x576\x57B\x3\x2\x2" + - "\x2\x577\x579\x5\xF4{\x2\x578\x57A\a\xF3\x2\x2\x579\x578\x3\x2\x2\x2\x579" + - "\x57A\x3\x2\x2\x2\x57A\x57C\x3\x2\x2\x2\x57B\x577\x3\x2\x2\x2\x57B\x57C" + - "\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2\x57D\x57F\a\xCB\x2\x2\x57E\x571\x3" + - "\x2\x2\x2\x57E\x57F\x3\x2\x2\x2\x57F\x95\x3\x2\x2\x2\x580\x583\a\x8E\x2" + - "\x2\x581\x582\a\xF3\x2\x2\x582\x584\x5\xCA\x66\x2\x583\x581\x3\x2\x2\x2" + - "\x583\x584\x3\x2\x2\x2\x584\x97\x3\x2\x2\x2\x585\x586\a\x92\x2\x2\x586" + - "\x589\a\xF3\x2\x2\x587\x588\a\x84\x2\x2\x588\x58A\a\xF3\x2\x2\x589\x587" + - "\x3\x2\x2\x2\x589\x58A\x3\x2\x2\x2\x58A\x58B\x3\x2\x2\x2\x58B\x596\x5" + - "\x9AN\x2\x58C\x58E\a\xF3\x2\x2\x58D\x58C\x3\x2\x2\x2\x58D\x58E\x3\x2\x2" + - "\x2\x58E\x58F\x3\x2\x2\x2\x58F\x591\a\t\x2\x2\x590\x592\a\xF3\x2\x2\x591" + - "\x590\x3\x2\x2\x2\x591\x592\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x595" + - "\x5\x9AN\x2\x594\x58D\x3\x2\x2\x2\x595\x598\x3\x2\x2\x2\x596\x594\x3\x2" + - "\x2\x2\x596\x597\x3\x2\x2\x2\x597\x99\x3\x2\x2\x2\x598\x596\x3\x2\x2\x2" + - "\x599\x59B\x5\xE8u\x2\x59A\x59C\a\xF3\x2\x2\x59B\x59A\x3\x2\x2\x2\x59B" + - "\x59C\x3\x2\x2\x2\x59C\x59D\x3\x2\x2\x2\x59D\x59F\a\xC4\x2\x2\x59E\x5A0" + - "\a\xF3\x2\x2\x59F\x59E\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3" + - "\x2\x2\x2\x5A1\x5A3\x5\x100\x81\x2\x5A2\x5A4\a\xF3\x2\x2\x5A3\x5A2\x3" + - "\x2\x2\x2\x5A3\x5A4\x3\x2\x2\x2\x5A4\x5A5\x3\x2\x2\x2\x5A5\x5A8\a\xCB" + - "\x2\x2\x5A6\x5A7\a\xF3\x2\x2\x5A7\x5A9\x5\x106\x84\x2\x5A8\x5A6\x3\x2" + - "\x2\x2\x5A8\x5A9\x3\x2\x2\x2\x5A9\x9B\x3\x2\x2\x2\x5AA\x5AB\a\x94\x2\x2" + - "\x5AB\x9D\x3\x2\x2\x2\x5AC\x5B2\a\x95\x2\x2\x5AD\x5B0\a\xF3\x2\x2\x5AE" + - "\x5B1\as\x2\x2\x5AF\x5B1\x5\x104\x83\x2\x5B0\x5AE\x3\x2\x2\x2\x5B0\x5AF" + - "\x3\x2\x2\x2\x5B1\x5B3\x3\x2\x2\x2\x5B2\x5AD\x3\x2\x2\x2\x5B2\x5B3\x3" + - "\x2\x2\x2\x5B3\x9F\x3\x2\x2\x2\x5B4\x5B5\a\x96\x2\x2\x5B5\xA1\x3\x2\x2" + - "\x2\x5B6\x5B7\a\x97\x2\x2\x5B7\x5B8\a\xF3\x2\x2\x5B8\x5B9\x5\xCA\x66\x2" + - "\x5B9\xA3\x3\x2\x2\x2\x5BA\x5BB\a\x98\x2\x2\x5BB\x5BC\a\xF3\x2\x2\x5BC" + - "\x5BE\x5\xE8u\x2\x5BD\x5BF\a\xF3\x2\x2\x5BE\x5BD\x3\x2\x2\x2\x5BE\x5BF" + - "\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C2\a\xC0\x2\x2\x5C1\x5C3\a\xF3" + - "\x2\x2\x5C2\x5C1\x3\x2\x2\x2\x5C2\x5C3\x3\x2\x2\x2\x5C3\x5C4\x3\x2\x2" + - "\x2\x5C4\x5C5\x5\xCA\x66\x2\x5C5\xA5\x3\x2\x2\x2\x5C6\x5C7\a\x99\x2\x2" + - "\x5C7\x5C8\a\xF3\x2\x2\x5C8\x5CA\x5\xCA\x66\x2\x5C9\x5CB\a\xF3\x2\x2\x5CA" + - "\x5C9\x3\x2\x2\x2\x5CA\x5CB\x3\x2\x2\x2\x5CB\x5CC\x3\x2\x2\x2\x5CC\x5CE" + - "\a\t\x2\x2\x5CD\x5CF\a\xF3\x2\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2" + - "\x2\x2\x5CF\x5D0\x3\x2\x2\x2\x5D0\x5D1\x5\xCA\x66\x2\x5D1\xA7\x3\x2\x2" + - "\x2\x5D2\x5D3\a\x9A\x2\x2\x5D3\x5D4\a\xF3\x2\x2\x5D4\x5D6\x5\xCA\x66\x2" + - "\x5D5\x5D7\a\xF3\x2\x2\x5D6\x5D5\x3\x2\x2\x2\x5D6\x5D7\x3\x2\x2\x2\x5D7" + - "\x5D8\x3\x2\x2\x2\x5D8\x5DA\a\t\x2\x2\x5D9\x5DB\a\xF3\x2\x2\x5DA\x5D9" + - "\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2\x5DB\x5DC\x3\x2\x2\x2\x5DC\x5DE\x5" + - "\xCA\x66\x2\x5DD\x5DF\a\xF3\x2\x2\x5DE\x5DD\x3\x2\x2\x2\x5DE\x5DF\x3\x2" + - "\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E2\a\t\x2\x2\x5E1\x5E3\a\xF3\x2\x2" + - "\x5E2\x5E1\x3\x2\x2\x2\x5E2\x5E3\x3\x2\x2\x2\x5E3\x5E4\x3\x2\x2\x2\x5E4" + - "\x5E6\x5\xCA\x66\x2\x5E5\x5E7\a\xF3\x2\x2\x5E6\x5E5\x3\x2\x2\x2\x5E6\x5E7" + - "\x3\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5EA\a\t\x2\x2\x5E9\x5EB\a\xF3" + - "\x2\x2\x5EA\x5E9\x3\x2\x2\x2\x5EA\x5EB\x3\x2\x2\x2\x5EB\x5EC\x3\x2\x2" + - "\x2\x5EC\x5ED\x5\xCA\x66\x2\x5ED\xA9\x3\x2\x2\x2\x5EE\x5EF\a\x9B\x2\x2" + - "\x5EF\x5F0\a\xF3\x2\x2\x5F0\x5F2\x5\xDAn\x2\x5F1\x5F3\a\xF3\x2\x2\x5F2" + - "\x5F1\x3\x2\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F4\x3\x2\x2\x2\x5F4\x5F6" + - "\a\t\x2\x2\x5F5\x5F7\a\xF3\x2\x2\x5F6\x5F5\x3\x2\x2\x2\x5F6\x5F7\x3\x2" + - "\x2\x2\x5F7\x5F8\x3\x2\x2\x2\x5F8\x5F9\x5\xCA\x66\x2\x5F9\xAB\x3\x2\x2" + - "\x2\x5FA\x5FB\a\x9C\x2\x2\x5FB\x5FC\a\xF3\x2\x2\x5FC\x5FD\a\x1B\x2\x2" + - "\x5FD\x5FE\a\xF3\x2\x2\x5FE\x5FF\x5\xCA\x66\x2\x5FF\x603\x5\x126\x94\x2" + - "\x600\x602\x5\xB0Y\x2\x601\x600\x3\x2\x2\x2\x602\x605\x3\x2\x2\x2\x603" + - "\x601\x3\x2\x2\x2\x603\x604\x3\x2\x2\x2\x604\x606\x3\x2\x2\x2\x605\x603" + - "\x3\x2\x2\x2\x606\x607\a<\x2\x2\x607\xAD\x3\x2\x2\x2\x608\x60A\aY\x2\x2" + - "\x609\x60B\a\xF3\x2\x2\x60A\x609\x3\x2\x2\x2\x60A\x60B\x3\x2\x2\x2\x60B" + - "\x60C\x3\x2\x2\x2\x60C\x60E\x5\x10C\x87\x2\x60D\x60F\a\xF3\x2\x2\x60E" + - "\x60D\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610\x3\x2\x2\x2\x610\x611" + - "\x5\xCA\x66\x2\x611\x61A\x3\x2\x2\x2\x612\x613\x5\xCA\x66\x2\x613\x614" + - "\a\xF3\x2\x2\x614\x615\a\xAC\x2\x2\x615\x616\a\xF3\x2\x2\x616\x617\x5" + - "\xCA\x66\x2\x617\x61A\x3\x2\x2\x2\x618\x61A\x5\xCA\x66\x2\x619\x608\x3" + - "\x2\x2\x2\x619\x612\x3\x2\x2\x2\x619\x618\x3\x2\x2\x2\x61A\xAF\x3\x2\x2" + - "\x2\x61B\x61C\a\x1B\x2\x2\x61C\x61D\a\xF3\x2\x2\x61D\x61E\x5\xB2Z\x2\x61E" + - "\x620\x5\x126\x94\x2\x61F\x621\x5\x1C\xF\x2\x620\x61F\x3\x2\x2\x2\x620" + - "\x621\x3\x2\x2\x2\x621\xB1\x3\x2\x2\x2\x622\x632\a\x36\x2\x2\x623\x62E" + - "\x5\xAEX\x2\x624\x626\a\xF3\x2\x2\x625\x624\x3\x2\x2\x2\x625\x626\x3\x2" + - "\x2\x2\x626\x627\x3\x2\x2\x2\x627\x629\a\t\x2\x2\x628\x62A\a\xF3\x2\x2" + - "\x629\x628\x3\x2\x2\x2\x629\x62A\x3\x2\x2\x2\x62A\x62B\x3\x2\x2\x2\x62B" + - "\x62D\x5\xAEX\x2\x62C\x625\x3\x2\x2\x2\x62D\x630\x3\x2\x2\x2\x62E\x62C" + - "\x3\x2\x2\x2\x62E\x62F\x3\x2\x2\x2\x62F\x632\x3\x2\x2\x2\x630\x62E\x3" + - "\x2\x2\x2\x631\x622\x3\x2\x2\x2\x631\x623\x3\x2\x2\x2\x632\xB3\x3\x2\x2" + - "\x2\x633\x634\a\x9D\x2\x2\x634\x635\a\xF3\x2\x2\x635\x63E\x5\xCA\x66\x2" + - "\x636\x638\a\xF3\x2\x2\x637\x636\x3\x2\x2\x2\x637\x638\x3\x2\x2\x2\x638" + - "\x639\x3\x2\x2\x2\x639\x63B\a\t\x2\x2\x63A\x63C\a\xF3\x2\x2\x63B\x63A" + - "\x3\x2\x2\x2\x63B\x63C\x3\x2\x2\x2\x63C\x63D\x3\x2\x2\x2\x63D\x63F\x5" + - "\xCA\x66\x2\x63E\x637\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\xB5\x3\x2" + - "\x2\x2\x640\x641\a\x9F\x2\x2\x641\x642\a\xF3\x2\x2\x642\x644\x5\xCA\x66" + - "\x2\x643\x645\a\xF3\x2\x2\x644\x643\x3\x2\x2\x2\x644\x645\x3\x2\x2\x2" + - "\x645\x646\x3\x2\x2\x2\x646\x648\a\t\x2\x2\x647\x649\a\xF3\x2\x2\x648" + - "\x647\x3\x2\x2\x2\x648\x649\x3\x2\x2\x2\x649\x64A\x3\x2\x2\x2\x64A\x64B" + - "\x5\xCA\x66\x2\x64B\xB7\x3\x2\x2\x2\x64C\x64D\a\x9E\x2\x2\x64D\x64E\a" + - "\xF3\x2\x2\x64E\x650\x5\xE8u\x2\x64F\x651\a\xF3\x2\x2\x650\x64F\x3\x2" + - "\x2\x2\x650\x651\x3\x2\x2\x2\x651\x652\x3\x2\x2\x2\x652\x654\a\xC0\x2" + - "\x2\x653\x655\a\xF3\x2\x2\x654\x653\x3\x2\x2\x2\x654\x655\x3\x2\x2\x2" + - "\x655\x656\x3\x2\x2\x2\x656\x657\x5\xCA\x66\x2\x657\xB9\x3\x2\x2\x2\x658" + - "\x659\a\xA5\x2\x2\x659\xBB\x3\x2\x2\x2\x65A\x65B\x5\x11C\x8F\x2\x65B\x65C" + - "\a\xF3\x2\x2\x65C\x65E\x3\x2\x2\x2\x65D\x65A\x3\x2\x2\x2\x65D\x65E\x3" + - "\x2\x2\x2\x65E\x661\x3\x2\x2\x2\x65F\x660\a\xA3\x2\x2\x660\x662\a\xF3" + - "\x2\x2\x661\x65F\x3\x2\x2\x2\x661\x662\x3\x2\x2\x2\x662\x663\x3\x2\x2" + - "\x2\x663\x665\a\xA7\x2\x2\x664\x666\a\xF3\x2\x2\x665\x664\x3\x2\x2\x2" + - "\x665\x666\x3\x2\x2\x2\x666\x667\x3\x2\x2\x2\x667\x66C\x5\x104\x83\x2" + - "\x668\x66A\a\xF3\x2\x2\x669\x668\x3\x2\x2\x2\x669\x66A\x3\x2\x2\x2\x66A" + - "\x66B\x3\x2\x2\x2\x66B\x66D\x5\xFA~\x2\x66C\x669\x3\x2\x2\x2\x66C\x66D" + - "\x3\x2\x2\x2\x66D\x66E\x3\x2\x2\x2\x66E\x670\x5\x126\x94\x2\x66F\x671" + - "\x5\x1C\xF\x2\x670\x66F\x3\x2\x2\x2\x670\x671\x3\x2\x2\x2\x671\x672\x3" + - "\x2\x2\x2\x672\x673\a=\x2\x2\x673\xBD\x3\x2\x2\x2\x674\x676\a\xAB\x2\x2" + - "\x675\x677\a\xF3\x2\x2\x676\x675\x3\x2\x2\x2\x676\x677\x3\x2\x2\x2\x677" + - "\x678\x3\x2\x2\x2\x678\x67A\a\xC0\x2\x2\x679\x67B\a\xF3\x2\x2\x67A\x679" + - "\x3\x2\x2\x2\x67A\x67B\x3\x2\x2\x2\x67B\x67C\x3\x2\x2\x2\x67C\x67D\x5" + - "\xCA\x66\x2\x67D\xBF\x3\x2\x2\x2\x67E\x67F\x5\x11C\x8F\x2\x67F\x680\a" + - "\xF3\x2\x2\x680\x682\x3\x2\x2\x2\x681\x67E\x3\x2\x2\x2\x681\x682\x3\x2" + - "\x2\x2\x682\x683\x3\x2\x2\x2\x683\x684\a\xAE\x2\x2\x684\x685\a\xF3\x2" + - "\x2\x685\x686\x5\x104\x83\x2\x686\x68A\x5\x126\x94\x2\x687\x689\x5\xC2" + - "\x62\x2\x688\x687\x3\x2\x2\x2\x689\x68C\x3\x2\x2\x2\x68A\x688\x3\x2\x2" + - "\x2\x68A\x68B\x3\x2\x2\x2\x68B\x68D\x3\x2\x2\x2\x68C\x68A\x3\x2\x2\x2" + - "\x68D\x68E\a>\x2\x2\x68E\xC1\x3\x2\x2\x2\x68F\x69E\x5\x104\x83\x2\x690" + - "\x692\a\xF3\x2\x2\x691\x690\x3\x2\x2\x2\x691\x692\x3\x2\x2\x2\x692\x693" + - "\x3\x2\x2\x2\x693\x698\a\xC4\x2\x2\x694\x696\a\xF3\x2\x2\x695\x694\x3" + - "\x2\x2\x2\x695\x696\x3\x2\x2\x2\x696\x697\x3\x2\x2\x2\x697\x699\x5\x100" + - "\x81\x2\x698\x695\x3\x2\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69B\x3\x2\x2" + - "\x2\x69A\x69C\a\xF3\x2\x2\x69B\x69A\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2" + - "\x69C\x69D\x3\x2\x2\x2\x69D\x69F\a\xCB\x2\x2\x69E\x691\x3\x2\x2\x2\x69E" + - "\x69F\x3\x2\x2\x2\x69F\x6A2\x3\x2\x2\x2\x6A0\x6A1\a\xF3\x2\x2\x6A1\x6A3" + - "\x5\x106\x84\x2\x6A2\x6A0\x3\x2\x2\x2\x6A2\x6A3\x3\x2\x2\x2\x6A3\x6A4" + - "\x3\x2\x2\x2\x6A4\x6A5\x5\x126\x94\x2\x6A5\xC3\x3\x2\x2\x2\x6A6\x6A7\a" + - "\xAF\x2\x2\x6A7\x6A8\a\xF3\x2\x2\x6A8\x6AD\x5\xCA\x66\x2\x6A9\x6AA\a\xF3" + - "\x2\x2\x6AA\x6AB\aY\x2\x2\x6AB\x6AC\a\xF3\x2\x2\x6AC\x6AE\x5\x118\x8D" + - "\x2\x6AD\x6A9\x3\x2\x2\x2\x6AD\x6AE\x3\x2\x2\x2\x6AE\xC5\x3\x2\x2\x2\x6AF" + - "\x6B0\a\xB0\x2\x2\x6B0\x6B1\a\xF3\x2\x2\x6B1\x6B2\x5\xCA\x66\x2\x6B2\xC7" + - "\x3\x2\x2\x2\x6B3\x6B4\a\xB1\x2\x2\x6B4\x6B5\a\xF3\x2\x2\x6B5\x6C4\x5" + - "\xDAn\x2\x6B6\x6B8\a\xF3\x2\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2" + - "\x2\x6B8\x6B9\x3\x2\x2\x2\x6B9\x6BB\a\t\x2\x2\x6BA\x6BC\a\xF3\x2\x2\x6BB" + - "\x6BA\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6C2" + - "\x5\xCA\x66\x2\x6BE\x6BF\a\xF3\x2\x2\x6BF\x6C0\a\xAC\x2\x2\x6C0\x6C1\a" + - "\xF3\x2\x2\x6C1\x6C3\x5\xCA\x66\x2\x6C2\x6BE\x3\x2\x2\x2\x6C2\x6C3\x3" + - "\x2\x2\x2\x6C3\x6C5\x3\x2\x2\x2\x6C4\x6B7\x3\x2\x2\x2\x6C4\x6C5\x3\x2" + - "\x2\x2\x6C5\xC9\x3\x2\x2\x2\x6C6\x6C7\b\x66\x1\x2\x6C7\x6C9\at\x2\x2\x6C8" + - "\x6CA\a\xF3\x2\x2\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA\x6CB" + - "\x3\x2\x2\x2\x6CB\x6FE\x5\xCA\x66\x15\x6CC\x6CE\a\f\x2\x2\x6CD\x6CF\a" + - "\xF3\x2\x2\x6CE\x6CD\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2" + - "\x2\x2\x6D0\x6FE\x5\xCA\x66\x12\x6D1\x6D3\x5\xE8u\x2\x6D2\x6D4\a\xF3\x2" + - "\x2\x6D3\x6D2\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2\x6D4\x6D5\x3\x2\x2\x2" + - "\x6D5\x6D7\a\xBD\x2\x2\x6D6\x6D8\a\xF3\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7" + - "\x6D8\x3\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9\x6DA\x5\xCA\x66\x11\x6DA" + - "\x6FE\x3\x2\x2\x2\x6DB\x6DD\a\xC6\x2\x2\x6DC\x6DE\a\xF3\x2\x2\x6DD\x6DC" + - "\x3\x2\x2\x2\x6DD\x6DE\x3\x2\x2\x2\x6DE\x6DF\x3\x2\x2\x2\x6DF\x6FE\x5" + - "\xCA\x66\xF\x6E0\x6E2\au\x2\x2\x6E1\x6E3\a\xF3\x2\x2\x6E2\x6E1\x3\x2\x2" + - "\x2\x6E2\x6E3\x3\x2\x2\x2\x6E3\x6E4\x3\x2\x2\x2\x6E4\x6FE\x5\xCA\x66\b" + - "\x6E5\x6FE\x5\x116\x8C\x2\x6E6\x6FE\x5\xE8u\x2\x6E7\x6E9\a\xC4\x2\x2\x6E8" + - "\x6EA\a\xF3\x2\x2\x6E9\x6E8\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB" + - "\x3\x2\x2\x2\x6EB\x6F6\x5\xCA\x66\x2\x6EC\x6EE\a\xF3\x2\x2\x6ED\x6EC\x3" + - "\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2\x2\x6EF\x6F1\a\t\x2" + - "\x2\x6F0\x6F2\a\xF3\x2\x2\x6F1\x6F0\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2\x2" + - "\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F5\x5\xCA\x66\x2\x6F4\x6ED\x3\x2\x2\x2\x6F5" + - "\x6F8\x3\x2\x2\x2\x6F6\x6F4\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F9" + - "\x3\x2\x2\x2\x6F8\x6F6\x3\x2\x2\x2\x6F9\x6FA\a\xCB\x2\x2\x6FA\x6FE\x3" + - "\x2\x2\x2\x6FB\x6FE\x5\xC4\x63\x2\x6FC\x6FE\x5x=\x2\x6FD\x6C6\x3\x2\x2" + - "\x2\x6FD\x6CC\x3\x2\x2\x2\x6FD\x6D1\x3\x2\x2\x2\x6FD\x6DB\x3\x2\x2\x2" + - "\x6FD\x6E0\x3\x2\x2\x2\x6FD\x6E5\x3\x2\x2\x2\x6FD\x6E6\x3\x2\x2\x2\x6FD" + - "\x6E7\x3\x2\x2\x2\x6FD\x6FB\x3\x2\x2\x2\x6FD\x6FC\x3\x2\x2\x2\x6FE\x76D" + - "\x3\x2\x2\x2\x6FF\x701\f\x10\x2\x2\x700\x702\a\xF3\x2\x2\x701\x700\x3" + - "\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x703\x3\x2\x2\x2\x703\x705\a\xCA" + - "\x2\x2\x704\x706\a\xF3\x2\x2\x705\x704\x3\x2\x2\x2\x705\x706\x3\x2\x2" + - "\x2\x706\x707\x3\x2\x2\x2\x707\x76C\x5\xCA\x66\x11\x708\x70A\f\xE\x2\x2" + - "\x709\x70B\a\xF3\x2\x2\x70A\x709\x3\x2\x2\x2\x70A\x70B\x3\x2\x2\x2\x70B" + - "\x70C\x3\x2\x2\x2\x70C\x70E\t\f\x2\x2\x70D\x70F\a\xF3\x2\x2\x70E\x70D" + - "\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x710\x3\x2\x2\x2\x710\x76C\x5" + - "\xCA\x66\xF\x711\x713\f\r\x2\x2\x712\x714\a\xF3\x2\x2\x713\x712\x3\x2" + - "\x2\x2\x713\x714\x3\x2\x2\x2\x714\x715\x3\x2\x2\x2\x715\x717\a\xBF\x2" + - "\x2\x716\x718\a\xF3\x2\x2\x717\x716\x3\x2\x2\x2\x717\x718\x3\x2\x2\x2" + - "\x718\x719\x3\x2\x2\x2\x719\x76C\x5\xCA\x66\xE\x71A\x71C\f\f\x2\x2\x71B" + - "\x71D\a\xF3\x2\x2\x71C\x71B\x3\x2\x2\x2\x71C\x71D\x3\x2\x2\x2\x71D\x71E" + - "\x3\x2\x2\x2\x71E\x720\aq\x2\x2\x71F\x721\a\xF3\x2\x2\x720\x71F\x3\x2" + - "\x2\x2\x720\x721\x3\x2\x2\x2\x721\x722\x3\x2\x2\x2\x722\x76C\x5\xCA\x66" + - "\r\x723\x725\f\v\x2\x2\x724\x726\a\xF3\x2\x2\x725\x724\x3\x2\x2\x2\x725" + - "\x726\x3\x2\x2\x2\x726\x727\x3\x2\x2\x2\x727\x729\t\r\x2\x2\x728\x72A" + - "\a\xF3\x2\x2\x729\x728\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A\x72B\x3" + - "\x2\x2\x2\x72B\x76C\x5\xCA\x66\f\x72C\x72E\f\n\x2\x2\x72D\x72F\a\xF3\x2" + - "\x2\x72E\x72D\x3\x2\x2\x2\x72E\x72F\x3\x2\x2\x2\x72F\x730\x3\x2\x2\x2" + - "\x730\x732\a\xBC\x2\x2\x731\x733\a\xF3\x2\x2\x732\x731\x3\x2\x2\x2\x732" + - "\x733\x3\x2\x2\x2\x733\x734\x3\x2\x2\x2\x734\x76C\x5\xCA\x66\v\x735\x737" + - "\f\t\x2\x2\x736\x738\a\xF3\x2\x2\x737\x736\x3\x2\x2\x2\x737\x738\x3\x2" + - "\x2\x2\x738\x739\x3\x2\x2\x2\x739\x73B\t\xE\x2\x2\x73A\x73C\a\xF3\x2\x2" + - "\x73B\x73A\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C\x73D\x3\x2\x2\x2\x73D" + - "\x76C\x5\xCA\x66\n\x73E\x740\f\a\x2\x2\x73F\x741\a\xF3\x2\x2\x740\x73F" + - "\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x742\x3\x2\x2\x2\x742\x744\a\xE" + - "\x2\x2\x743\x745\a\xF3\x2\x2\x744\x743\x3\x2\x2\x2\x744\x745\x3\x2\x2" + - "\x2\x745\x746\x3\x2\x2\x2\x746\x76C\x5\xCA\x66\b\x747\x749\f\x6\x2\x2" + - "\x748\x74A\a\xF3\x2\x2\x749\x748\x3\x2\x2\x2\x749\x74A\x3\x2\x2\x2\x74A" + - "\x74B\x3\x2\x2\x2\x74B\x74D\a\x81\x2\x2\x74C\x74E\a\xF3\x2\x2\x74D\x74C" + - "\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x74F\x3\x2\x2\x2\x74F\x76C\x5" + - "\xCA\x66\a\x750\x752\f\x5\x2\x2\x751\x753\a\xF3\x2\x2\x752\x751\x3\x2" + - "\x2\x2\x752\x753\x3\x2\x2\x2\x753\x754\x3\x2\x2\x2\x754\x756\a\xBB\x2" + - "\x2\x755\x757\a\xF3\x2\x2\x756\x755\x3\x2\x2\x2\x756\x757\x3\x2\x2\x2" + - "\x757\x758\x3\x2\x2\x2\x758\x76C\x5\xCA\x66\x6\x759\x75B\f\x4\x2\x2\x75A" + - "\x75C\a\xF3\x2\x2\x75B\x75A\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D" + - "\x3\x2\x2\x2\x75D\x75F\a\x42\x2\x2\x75E\x760\a\xF3\x2\x2\x75F\x75E\x3" + - "\x2\x2\x2\x75F\x760\x3\x2\x2\x2\x760\x761\x3\x2\x2\x2\x761\x76C\x5\xCA" + - "\x66\x5\x762\x764\f\x3\x2\x2\x763\x765\a\xF3\x2\x2\x764\x763\x3\x2\x2" + - "\x2\x764\x765\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766\x768\aU\x2\x2\x767" + - "\x769\a\xF3\x2\x2\x768\x767\x3\x2\x2\x2\x768\x769\x3\x2\x2\x2\x769\x76A" + - "\x3\x2\x2\x2\x76A\x76C\x5\xCA\x66\x4\x76B\x6FF\x3\x2\x2\x2\x76B\x708\x3" + - "\x2\x2\x2\x76B\x711\x3\x2\x2\x2\x76B\x71A\x3\x2\x2\x2\x76B\x723\x3\x2" + - "\x2\x2\x76B\x72C\x3\x2\x2\x2\x76B\x735\x3\x2\x2\x2\x76B\x73E\x3\x2\x2" + - "\x2\x76B\x747\x3\x2\x2\x2\x76B\x750\x3\x2\x2\x2\x76B\x759\x3\x2\x2\x2" + - "\x76B\x762\x3\x2\x2\x2\x76C\x76F\x3\x2\x2\x2\x76D\x76B\x3\x2\x2\x2\x76D" + - "\x76E\x3\x2\x2\x2\x76E\xCB\x3\x2\x2\x2\x76F\x76D\x3\x2\x2\x2\x770\x774" + - "\a\x32\x2\x2\x771\x774\a\xA3\x2\x2\x772\x774\x5\x11C\x8F\x2\x773\x770" + - "\x3\x2\x2\x2\x773\x771\x3\x2\x2\x2\x773\x772\x3\x2\x2\x2\x774\x775\x3" + - "\x2\x2\x2\x775\x778\a\xF3\x2\x2\x776\x777\a\xB9\x2\x2\x777\x779\a\xF3" + - "\x2\x2\x778\x776\x3\x2\x2\x2\x778\x779\x3\x2\x2\x2\x779\x77A\x3\x2\x2" + - "\x2\x77A\x77B\x5\xCEh\x2\x77B\xCD\x3\x2\x2\x2\x77C\x787\x5\xD0i\x2\x77D" + - "\x77F\a\xF3\x2\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F\x3\x2\x2\x2\x77F\x780" + - "\x3\x2\x2\x2\x780\x782\a\t\x2\x2\x781\x783\a\xF3\x2\x2\x782\x781\x3\x2" + - "\x2\x2\x782\x783\x3\x2\x2\x2\x783\x784\x3\x2\x2\x2\x784\x786\x5\xD0i\x2" + - "\x785\x77E\x3\x2\x2\x2\x786\x789\x3\x2\x2\x2\x787\x785\x3\x2\x2\x2\x787" + - "\x788\x3\x2\x2\x2\x788\xCF\x3\x2\x2\x2\x789\x787\x3\x2\x2\x2\x78A\x79C" + - "\x5\x104\x83\x2\x78B\x78D\a\xF3\x2\x2\x78C\x78B\x3\x2\x2\x2\x78C\x78D" + - "\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x790\a\xC4\x2\x2\x78F\x791\a\xF3" + - "\x2\x2\x790\x78F\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x796\x3\x2\x2" + - "\x2\x792\x794\x5\x100\x81\x2\x793\x795\a\xF3\x2\x2\x794\x793\x3\x2\x2" + - "\x2\x794\x795\x3\x2\x2\x2\x795\x797\x3\x2\x2\x2\x796\x792\x3\x2\x2\x2" + - "\x796\x797\x3\x2\x2\x2\x797\x798\x3\x2\x2\x2\x798\x79A\a\xCB\x2\x2\x799" + - "\x79B\a\xF3\x2\x2\x79A\x799\x3\x2\x2\x2\x79A\x79B\x3\x2\x2\x2\x79B\x79D" + - "\x3\x2\x2\x2\x79C\x78C\x3\x2\x2\x2\x79C\x79D\x3\x2\x2\x2\x79D\x79F\x3" + - "\x2\x2\x2\x79E\x7A0\x5\x11A\x8E\x2\x79F\x79E\x3\x2\x2\x2\x79F\x7A0\x3" + - "\x2\x2\x2\x7A0\x7A3\x3\x2\x2\x2\x7A1\x7A2\a\xF3\x2\x2\x7A2\x7A4\x5\x106" + - "\x84\x2\x7A3\x7A1\x3\x2\x2\x2\x7A3\x7A4\x3\x2\x2\x2\x7A4\xD1\x3\x2\x2" + - "\x2\x7A5\x7A6\a\xB6\x2\x2\x7A6\x7A7\a\xF3\x2\x2\x7A7\x7A8\x5\xCA\x66\x2" + - "\x7A8\x7AA\x5\x126\x94\x2\x7A9\x7AB\x5\x1C\xF\x2\x7AA\x7A9\x3\x2\x2\x2" + - "\x7AA\x7AB\x3\x2\x2\x2\x7AB\x7AC\x3\x2\x2\x2\x7AC\x7AD\a\xB5\x2\x2\x7AD" + - "\xD3\x3\x2\x2\x2\x7AE\x7AF\a\xB7\x2\x2\x7AF\x7B0\a\xF3\x2\x2\x7B0\x7B2" + - "\x5\xDAn\x2\x7B1\x7B3\a\xF3\x2\x2\x7B2\x7B1\x3\x2\x2\x2\x7B2\x7B3\x3\x2" + - "\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B6\a\t\x2\x2\x7B5\x7B7\a\xF3\x2\x2" + - "\x7B6\x7B5\x3\x2\x2\x2\x7B6\x7B7\x3\x2\x2\x2\x7B7\x7B8\x3\x2\x2\x2\x7B8" + - "\x7B9\x5\xCA\x66\x2\x7B9\xD5\x3\x2\x2\x2\x7BA\x7BB\a\xB8\x2\x2\x7BB\x7C0" + - "\a\xF3\x2\x2\x7BC\x7C1\x5\xE8u\x2\x7BD\x7BE\at\x2\x2\x7BE\x7BF\a\xF3\x2" + - "\x2\x7BF\x7C1\x5\x118\x8D\x2\x7C0\x7BC\x3\x2\x2\x2\x7C0\x7BD\x3\x2\x2" + - "\x2\x7C1\x7C2\x3\x2\x2\x2\x7C2\x7C4\x5\x126\x94\x2\x7C3\x7C5\x5\x1C\xF" + - "\x2\x7C4\x7C3\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2\x2\x7C5\x7C6\x3\x2\x2\x2" + - "\x7C6\x7C7\a?\x2\x2\x7C7\xD7\x3\x2\x2\x2\x7C8\x7C9\a\xBA\x2\x2\x7C9\x7CA" + - "\a\xF3\x2\x2\x7CA\x7CC\x5\xDAn\x2\x7CB\x7CD\a\xF3\x2\x2\x7CC\x7CB\x3\x2" + - "\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\x7CE\x3\x2\x2\x2\x7CE\x7D3\a\t\x2\x2" + - "\x7CF\x7D1\a\xF3\x2\x2\x7D0\x7CF\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1" + - "\x7D2\x3\x2\x2\x2\x7D2\x7D4\x5\x86\x44\x2\x7D3\x7D0\x3\x2\x2\x2\x7D3\x7D4" + - "\x3\x2\x2\x2\x7D4\xD9\x3\x2\x2\x2\x7D5\x7D7\a\x5\x2\x2\x7D6\x7D5\x3\x2" + - "\x2\x2\x7D6\x7D7\x3\x2\x2\x2\x7D7\x7D8\x3\x2\x2\x2\x7D8\x7D9\x5\xCA\x66" + - "\x2\x7D9\xDB\x3\x2\x2\x2\x7DA\x7DD\x5\xDEp\x2\x7DB\x7DD\x5\xE0q\x2\x7DC" + - "\x7DA\x3\x2\x2\x2\x7DC\x7DB\x3\x2\x2\x2\x7DD\xDD\x3\x2\x2\x2\x7DE\x7DF" + - "\a\x1A\x2\x2\x7DF\x7E0\a\xF3\x2\x2\x7E0\x7E2\x5\x104\x83\x2\x7E1\x7E3" + - "\x5\x11A\x8E\x2\x7E2\x7E1\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7F1" + - "\x3\x2\x2\x2\x7E4\x7E6\a\xF3\x2\x2\x7E5\x7E4\x3\x2\x2\x2\x7E5\x7E6\x3" + - "\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x7E9\a\xC4\x2\x2\x7E8\x7EA\a\xF3" + - "\x2\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2" + - "\x2\x7EB\x7ED\x5\xF4{\x2\x7EC\x7EE\a\xF3\x2\x2\x7ED\x7EC\x3\x2\x2\x2\x7ED" + - "\x7EE\x3\x2\x2\x2\x7EE\x7EF\x3\x2\x2\x2\x7EF\x7F0\a\xCB\x2\x2\x7F0\x7F2" + - "\x3\x2\x2\x2\x7F1\x7E5\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7FC\x3" + - "\x2\x2\x2\x7F3\x7F5\a\xF3\x2\x2\x7F4\x7F3\x3\x2\x2\x2\x7F4\x7F5\x3\x2" + - "\x2\x2\x7F5\x7F6\x3\x2\x2\x2\x7F6\x7F7\a\xC4\x2\x2\x7F7\x7F8\x5\x100\x81" + - "\x2\x7F8\x7F9\a\xCB\x2\x2\x7F9\x7FB\x3\x2\x2\x2\x7FA\x7F4\x3\x2\x2\x2" + - "\x7FB\x7FE\x3\x2\x2\x2\x7FC\x7FA\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD" + - "\xDF\x3\x2\x2\x2\x7FE\x7FC\x3\x2\x2\x2\x7FF\x800\a\x1A\x2\x2\x800\x802" + - "\a\xF3\x2\x2\x801\x803\x5\xE8u\x2\x802\x801\x3\x2\x2\x2\x802\x803\x3\x2" + - "\x2\x2\x803\x804\x3\x2\x2\x2\x804\x805\a\n\x2\x2\x805\x807\x5\x104\x83" + - "\x2\x806\x808\x5\x11A\x8E\x2\x807\x806\x3\x2\x2\x2\x807\x808\x3\x2\x2" + - "\x2\x808\x816\x3\x2\x2\x2\x809\x80B\a\xF3\x2\x2\x80A\x809\x3\x2\x2\x2" + - "\x80A\x80B\x3\x2\x2\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80E\a\xC4\x2\x2\x80D" + - "\x80F\a\xF3\x2\x2\x80E\x80D\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x810" + - "\x3\x2\x2\x2\x810\x812\x5\xF4{\x2\x811\x813\a\xF3\x2\x2\x812\x811\x3\x2" + - "\x2\x2\x812\x813\x3\x2\x2\x2\x813\x814\x3\x2\x2\x2\x814\x815\a\xCB\x2" + - "\x2\x815\x817\x3\x2\x2\x2\x816\x80A\x3\x2\x2\x2\x816\x817\x3\x2\x2\x2" + - "\x817\x821\x3\x2\x2\x2\x818\x81A\a\xF3\x2\x2\x819\x818\x3\x2\x2\x2\x819" + - "\x81A\x3\x2\x2\x2\x81A\x81B\x3\x2\x2\x2\x81B\x81C\a\xC4\x2\x2\x81C\x81D" + - "\x5\x100\x81\x2\x81D\x81E\a\xCB\x2\x2\x81E\x820\x3\x2\x2\x2\x81F\x819" + - "\x3\x2\x2\x2\x820\x823\x3\x2\x2\x2\x821\x81F\x3\x2\x2\x2\x821\x822\x3" + - "\x2\x2\x2\x822\xE1\x3\x2\x2\x2\x823\x821\x3\x2\x2\x2\x824\x827\x5\xE4" + - "s\x2\x825\x827\x5\xE6t\x2\x826\x824\x3\x2\x2\x2\x826\x825\x3\x2\x2\x2" + - "\x827\xE3\x3\x2\x2\x2\x828\x82A\x5\xE8u\x2\x829\x828\x3\x2\x2\x2\x829" + - "\x82A\x3\x2\x2\x2\x82A\x82B\x3\x2\x2\x2\x82B\x82C\a\n\x2\x2\x82C\x82E" + - "\x5\x104\x83\x2\x82D\x82F\x5\x11A\x8E\x2\x82E\x82D\x3\x2\x2\x2\x82E\x82F" + - "\x3\x2\x2\x2\x82F\x832\x3\x2\x2\x2\x830\x831\a\xF3\x2\x2\x831\x833\x5" + - "\xF4{\x2\x832\x830\x3\x2\x2\x2\x832\x833\x3\x2\x2\x2\x833\x838\x3\x2\x2" + - "\x2\x834\x836\a\xF3\x2\x2\x835\x834\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2" + - "\x836\x837\x3\x2\x2\x2\x837\x839\x5\xF8}\x2\x838\x835\x3\x2\x2\x2\x838" + - "\x839\x3\x2\x2\x2\x839\x843\x3\x2\x2\x2\x83A\x83C\a\xF3\x2\x2\x83B\x83A" + - "\x3\x2\x2\x2\x83B\x83C\x3\x2\x2\x2\x83C\x83D\x3\x2\x2\x2\x83D\x83E\a\xC4" + - "\x2\x2\x83E\x83F\x5\x100\x81\x2\x83F\x840\a\xCB\x2\x2\x840\x842\x3\x2" + - "\x2\x2\x841\x83B\x3\x2\x2\x2\x842\x845\x3\x2\x2\x2\x843\x841\x3\x2\x2" + - "\x2\x843\x844\x3\x2\x2\x2\x844\xE5\x3\x2\x2\x2\x845\x843\x3\x2\x2\x2\x846" + - "\x849\x5\x10A\x86\x2\x847\x848\a\xF3\x2\x2\x848\x84A\x5\xF4{\x2\x849\x847" + - "\x3\x2\x2\x2\x849\x84A\x3\x2\x2\x2\x84A\x854\x3\x2\x2\x2\x84B\x84D\a\xF3" + - "\x2\x2\x84C\x84B\x3\x2\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84E\x3\x2\x2" + - "\x2\x84E\x84F\a\xC4\x2\x2\x84F\x850\x5\x100\x81\x2\x850\x851\a\xCB\x2" + - "\x2\x851\x853\x3\x2\x2\x2\x852\x84C\x3\x2\x2\x2\x853\x856\x3\x2\x2\x2" + - "\x854\x852\x3\x2\x2\x2\x854\x855\x3\x2\x2\x2\x855\xE7\x3\x2\x2\x2\x856" + - "\x854\x3\x2\x2\x2\x857\x85C\x5\xEEx\x2\x858\x85C\x5\xEAv\x2\x859\x85C" + - "\x5\xECw\x2\x85A\x85C\x5\xF2z\x2\x85B\x857\x3\x2\x2\x2\x85B\x858\x3\x2" + - "\x2\x2\x85B\x859\x3\x2\x2\x2\x85B\x85A\x3\x2\x2\x2\x85C\xE9\x3\x2\x2\x2" + - "\x85D\x85F\x5\x104\x83\x2\x85E\x860\x5\x11A\x8E\x2\x85F\x85E\x3\x2\x2" + - "\x2\x85F\x860\x3\x2\x2\x2\x860\x865\x3\x2\x2\x2\x861\x863\a\xF3\x2\x2" + - "\x862\x861\x3\x2\x2\x2\x862\x863\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864" + - "\x866\x5\xF8}\x2\x865\x862\x3\x2\x2\x2\x865\x866\x3\x2\x2\x2\x866\x870" + - "\x3\x2\x2\x2\x867\x869\a\xF3\x2\x2\x868\x867\x3\x2\x2\x2\x868\x869\x3" + - "\x2\x2\x2\x869\x86A\x3\x2\x2\x2\x86A\x86B\a\xC4\x2\x2\x86B\x86C\x5\x100" + - "\x81\x2\x86C\x86D\a\xCB\x2\x2\x86D\x86F\x3\x2\x2\x2\x86E\x868\x3\x2\x2" + - "\x2\x86F\x872\x3\x2\x2\x2\x870\x86E\x3\x2\x2\x2\x870\x871\x3\x2\x2\x2" + - "\x871\xEB\x3\x2\x2\x2\x872\x870\x3\x2\x2\x2\x873\x876\x5\x104\x83\x2\x874" + - "\x876\x5\x108\x85\x2\x875\x873\x3\x2\x2\x2\x875\x874\x3\x2\x2\x2\x876" + - "\x878\x3\x2\x2\x2\x877\x879\x5\x11A\x8E\x2\x878\x877\x3\x2\x2\x2\x878" + - "\x879\x3\x2\x2\x2\x879\x87B\x3\x2\x2\x2\x87A\x87C\a\xF3\x2\x2\x87B\x87A" + - "\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87D\x3\x2\x2\x2\x87D\x87F\a\xC4" + - "\x2\x2\x87E\x880\a\xF3\x2\x2\x87F\x87E\x3\x2\x2\x2\x87F\x880\x3\x2\x2" + - "\x2\x880\x885\x3\x2\x2\x2\x881\x883\x5\xF4{\x2\x882\x884\a\xF3\x2\x2\x883" + - "\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2\x2\x884\x886\x3\x2\x2\x2\x885\x881" + - "\x3\x2\x2\x2\x885\x886\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x88C\a\xCB" + - "\x2\x2\x888\x88A\a\xF3\x2\x2\x889\x888\x3\x2\x2\x2\x889\x88A\x3\x2\x2" + - "\x2\x88A\x88B\x3\x2\x2\x2\x88B\x88D\x5\xF8}\x2\x88C\x889\x3\x2\x2\x2\x88C" + - "\x88D\x3\x2\x2\x2\x88D\x897\x3\x2\x2\x2\x88E\x890\a\xF3\x2\x2\x88F\x88E" + - "\x3\x2\x2\x2\x88F\x890\x3\x2\x2\x2\x890\x891\x3\x2\x2\x2\x891\x892\a\xC4" + - "\x2\x2\x892\x893\x5\x100\x81\x2\x893\x894\a\xCB\x2\x2\x894\x896\x3\x2" + - "\x2\x2\x895\x88F\x3\x2\x2\x2\x896\x899\x3\x2\x2\x2\x897\x895\x3\x2\x2" + - "\x2\x897\x898\x3\x2\x2\x2\x898\xED\x3\x2\x2\x2\x899\x897\x3\x2\x2\x2\x89A" + - "\x89D\x5\xEAv\x2\x89B\x89D\x5\xECw\x2\x89C\x89A\x3\x2\x2\x2\x89C\x89B" + - "\x3\x2\x2\x2\x89C\x89D\x3\x2\x2\x2\x89D\x8A2\x3\x2\x2\x2\x89E\x8A0\x5" + - "\xF0y\x2\x89F\x8A1\a\xF3\x2\x2\x8A0\x89F\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2" + - "\x2\x8A1\x8A3\x3\x2\x2\x2\x8A2\x89E\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2" + - "\x8A4\x8A2\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8AA\x3\x2\x2\x2\x8A6" + - "\x8A8\a\xF3\x2\x2\x8A7\x8A6\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9" + - "\x3\x2\x2\x2\x8A9\x8AB\x5\xF8}\x2\x8AA\x8A7\x3\x2\x2\x2\x8AA\x8AB\x3\x2" + - "\x2\x2\x8AB\x8B5\x3\x2\x2\x2\x8AC\x8AE\a\xF3\x2\x2\x8AD\x8AC\x3\x2\x2" + - "\x2\x8AD\x8AE\x3\x2\x2\x2\x8AE\x8AF\x3\x2\x2\x2\x8AF\x8B0\a\xC4\x2\x2" + - "\x8B0\x8B1\x5\x100\x81\x2\x8B1\x8B2\a\xCB\x2\x2\x8B2\x8B4\x3\x2\x2\x2" + - "\x8B3\x8AD\x3\x2\x2\x2\x8B4\x8B7\x3\x2\x2\x2\x8B5\x8B3\x3\x2\x2\x2\x8B5" + - "\x8B6\x3\x2\x2\x2\x8B6\xEF\x3\x2\x2\x2\x8B7\x8B5\x3\x2\x2\x2\x8B8\x8BA" + - "\t\xF\x2\x2\x8B9\x8BB\a\xF3\x2\x2\x8BA\x8B9\x3\x2\x2\x2\x8BA\x8BB\x3\x2" + - "\x2\x2\x8BB\x8BE\x3\x2\x2\x2\x8BC\x8BF\x5\xEAv\x2\x8BD\x8BF\x5\xECw\x2" + - "\x8BE\x8BC\x3\x2\x2\x2\x8BE\x8BD\x3\x2\x2\x2\x8BF\xF1\x3\x2\x2\x2\x8C0" + - "\x8C2\a\xF3\x2\x2\x8C1\x8C0\x3\x2\x2\x2\x8C1\x8C2\x3\x2\x2\x2\x8C2\x8C3" + - "\x3\x2\x2\x2\x8C3\x8C4\x5\xF8}\x2\x8C4\xF3\x3\x2\x2\x2\x8C5\x8C7\x5\xF6" + - "|\x2\x8C6\x8C5\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2\x2\x8C7\x8C9\x3\x2\x2\x2" + - "\x8C8\x8CA\a\xF3\x2\x2\x8C9\x8C8\x3\x2\x2\x2\x8C9\x8CA\x3\x2\x2\x2\x8CA" + - "\x8CB\x3\x2\x2\x2\x8CB\x8CD\t\n\x2\x2\x8CC\x8CE\a\xF3\x2\x2\x8CD\x8CC" + - "\x3\x2\x2\x2\x8CD\x8CE\x3\x2\x2\x2\x8CE\x8D0\x3\x2\x2\x2\x8CF\x8C6\x3" + - "\x2\x2\x2\x8D0\x8D3\x3\x2\x2\x2\x8D1\x8CF\x3\x2\x2\x2\x8D1\x8D2\x3\x2" + - "\x2\x2\x8D2\x8D4\x3\x2\x2\x2\x8D3\x8D1\x3\x2\x2\x2\x8D4\x8E1\x5\xF6|\x2" + - "\x8D5\x8D7\a\xF3\x2\x2\x8D6\x8D5\x3\x2\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7" + - "\x8D8\x3\x2\x2\x2\x8D8\x8DA\t\n\x2\x2\x8D9\x8DB\a\xF3\x2\x2\x8DA\x8D9" + - "\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8DD\x3\x2\x2\x2\x8DC\x8DE\x5" + - "\xF6|\x2\x8DD\x8DC\x3\x2\x2\x2\x8DD\x8DE\x3\x2\x2\x2\x8DE\x8E0\x3\x2\x2" + - "\x2\x8DF\x8D6\x3\x2\x2\x2\x8E0\x8E3\x3\x2\x2\x2\x8E1\x8DF\x3\x2\x2\x2" + - "\x8E1\x8E2\x3\x2\x2\x2\x8E2\xF5\x3\x2\x2\x2\x8E3\x8E1\x3\x2\x2\x2\x8E4" + - "\x8E6\a\xC4\x2\x2\x8E5\x8E4\x3\x2\x2\x2\x8E5\x8E6\x3\x2\x2\x2\x8E6\x8E9" + - "\x3\x2\x2\x2\x8E7\x8E8\t\x10\x2\x2\x8E8\x8EA\a\xF3\x2\x2\x8E9\x8E7\x3" + - "\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8EC\x3\x2\x2\x2\x8EB\x8ED\a\xCB" + - "\x2\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\x8EE\x3\x2\x2" + - "\x2\x8EE\x8EF\x5\xCA\x66\x2\x8EF\xF7\x3\x2\x2\x2\x8F0\x8F2\a\x4\x2\x2" + - "\x8F1\x8F3\a\xF3\x2\x2\x8F2\x8F1\x3\x2\x2\x2\x8F2\x8F3\x3\x2\x2\x2\x8F3" + - "\x8F4\x3\x2\x2\x2\x8F4\x8F6\x5\x104\x83\x2\x8F5\x8F7\x5\x11A\x8E\x2\x8F6" + - "\x8F5\x3\x2\x2\x2\x8F6\x8F7\x3\x2\x2\x2\x8F7\xF9\x3\x2\x2\x2\x8F8\x90A" + - "\a\xC4\x2\x2\x8F9\x8FB\a\xF3\x2\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3" + - "\x2\x2\x2\x8FB\x8FC\x3\x2\x2\x2\x8FC\x907\x5\xFC\x7F\x2\x8FD\x8FF\a\xF3" + - "\x2\x2\x8FE\x8FD\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2\x8FF\x900\x3\x2\x2" + - "\x2\x900\x902\a\t\x2\x2\x901\x903\a\xF3\x2\x2\x902\x901\x3\x2\x2\x2\x902" + - "\x903\x3\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904\x906\x5\xFC\x7F\x2\x905\x8FE" + - "\x3\x2\x2\x2\x906\x909\x3\x2\x2\x2\x907\x905\x3\x2\x2\x2\x907\x908\x3" + - "\x2\x2\x2\x908\x90B\x3\x2\x2\x2\x909\x907\x3\x2\x2\x2\x90A\x8FA\x3\x2" + - "\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x90D\x3\x2\x2\x2\x90C\x90E\a\xF3\x2" + - "\x2\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2" + - "\x90F\x910\a\xCB\x2\x2\x910\xFB\x3\x2\x2\x2\x911\x912\a|\x2\x2\x912\x914" + - "\a\xF3\x2\x2\x913\x911\x3\x2\x2\x2\x913\x914\x3\x2\x2\x2\x914\x917\x3" + - "\x2\x2\x2\x915\x916\t\x11\x2\x2\x916\x918\a\xF3\x2\x2\x917\x915\x3\x2" + - "\x2\x2\x917\x918\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2\x919\x91A\a\x83\x2" + - "\x2\x91A\x91C\a\xF3\x2\x2\x91B\x919\x3\x2\x2\x2\x91B\x91C\x3\x2\x2\x2" + - "\x91C\x91D\x3\x2\x2\x2\x91D\x91F\x5\x104\x83\x2\x91E\x920\x5\x11A\x8E" + - "\x2\x91F\x91E\x3\x2\x2\x2\x91F\x920\x3\x2\x2\x2\x920\x929\x3\x2\x2\x2" + - "\x921\x923\a\xF3\x2\x2\x922\x921\x3\x2\x2\x2\x922\x923\x3\x2\x2\x2\x923" + - "\x924\x3\x2\x2\x2\x924\x926\a\xC4\x2\x2\x925\x927\a\xF3\x2\x2\x926\x925" + - "\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x928\x3\x2\x2\x2\x928\x92A\a\xCB" + - "\x2\x2\x929\x922\x3\x2\x2\x2\x929\x92A\x3\x2\x2\x2\x92A\x92F\x3\x2\x2" + - "\x2\x92B\x92D\a\xF3\x2\x2\x92C\x92B\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2" + - "\x92D\x92E\x3\x2\x2\x2\x92E\x930\x5\x106\x84\x2\x92F\x92C\x3\x2\x2\x2" + - "\x92F\x930\x3\x2\x2\x2\x930\x935\x3\x2\x2\x2\x931\x933\a\xF3\x2\x2\x932" + - "\x931\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x934\x3\x2\x2\x2\x934\x936" + - "\x5\xFE\x80\x2\x935\x932\x3\x2\x2\x2\x935\x936\x3\x2\x2\x2\x936\xFD\x3" + - "\x2\x2\x2\x937\x939\a\xC0\x2\x2\x938\x93A\a\xF3\x2\x2\x939\x938\x3\x2" + - "\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x3\x2\x2\x2\x93B\x93C\x5\xCA\x66" + - "\x2\x93C\xFF\x3\x2\x2\x2\x93D\x948\x5\x102\x82\x2\x93E\x940\a\xF3\x2\x2" + - "\x93F\x93E\x3\x2\x2\x2\x93F\x940\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941" + - "\x943\a\t\x2\x2\x942\x944\a\xF3\x2\x2\x943\x942\x3\x2\x2\x2\x943\x944" + - "\x3\x2\x2\x2\x944\x945\x3\x2\x2\x2\x945\x947\x5\x102\x82\x2\x946\x93F" + - "\x3\x2\x2\x2\x947\x94A\x3\x2\x2\x2\x948\x946\x3\x2\x2\x2\x948\x949\x3" + - "\x2\x2\x2\x949\x101\x3\x2\x2\x2\x94A\x948\x3\x2\x2\x2\x94B\x94C\x5\xCA" + - "\x66\x2\x94C\x94D\a\xF3\x2\x2\x94D\x94E\a\xAC\x2\x2\x94E\x94F\a\xF3\x2" + - "\x2\x94F\x951\x3\x2\x2\x2\x950\x94B\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2" + - "\x951\x952\x3\x2\x2\x2\x952\x953\x5\xCA\x66\x2\x953\x103\x3\x2\x2\x2\x954" + - "\x957\a\xF4\x2\x2\x955\x957\x5\x11E\x90\x2\x956\x954\x3\x2\x2\x2\x956" + - "\x955\x3\x2\x2\x2\x957\x958\x3\x2\x2\x2\x958\x956\x3\x2\x2\x2\x958\x959" + - "\x3\x2\x2\x2\x959\x105\x3\x2\x2\x2\x95A\x95C\a\x12\x2\x2\x95B\x95D\a\xF3" + - "\x2\x2\x95C\x95B\x3\x2\x2\x2\x95C\x95D\x3\x2\x2\x2\x95D\x960\x3\x2\x2" + - "\x2\x95E\x95F\at\x2\x2\x95F\x961\a\xF3\x2\x2\x960\x95E\x3\x2\x2\x2\x960" + - "\x961\x3\x2\x2\x2\x961\x962\x3\x2\x2\x2\x962\x967\x5\x118\x8D\x2\x963" + - "\x965\a\xF3\x2\x2\x964\x963\x3\x2\x2\x2\x964\x965\x3\x2\x2\x2\x965\x966" + - "\x3\x2\x2\x2\x966\x968\x5\x110\x89\x2\x967\x964\x3\x2\x2\x2\x967\x968" + - "\x3\x2\x2\x2\x968\x107\x3\x2\x2\x2\x969\x96A\t\x12\x2\x2\x96A\x109\x3" + - "\x2\x2\x2\x96B\x970\a\xF4\x2\x2\x96C\x96F\x5\x11E\x90\x2\x96D\x96F\a\xF4" + - "\x2\x2\x96E\x96C\x3\x2\x2\x2\x96E\x96D\x3\x2\x2\x2\x96F\x972\x3\x2\x2" + - "\x2\x970\x96E\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x97B\x3\x2\x2\x2" + - "\x972\x970\x3\x2\x2\x2\x973\x976\x5\x11E\x90\x2\x974\x977\x5\x11E\x90" + - "\x2\x975\x977\a\xF4\x2\x2\x976\x974\x3\x2\x2\x2\x976\x975\x3\x2\x2\x2" + - "\x977\x978\x3\x2\x2\x2\x978\x976\x3\x2\x2\x2\x978\x979\x3\x2\x2\x2\x979" + - "\x97B\x3\x2\x2\x2\x97A\x96B\x3\x2\x2\x2\x97A\x973\x3\x2\x2\x2\x97B\x10B" + - "\x3\x2\x2\x2\x97C\x97D\t\xE\x2\x2\x97D\x10D\x3\x2\x2\x2\x97E\x983\x5\x104" + - "\x83\x2\x97F\x980\t\xF\x2\x2\x980\x982\x5\x104\x83\x2\x981\x97F\x3\x2" + - "\x2\x2\x982\x985\x3\x2\x2\x2\x983\x981\x3\x2\x2\x2\x983\x984\x3\x2\x2" + - "\x2\x984\x10F\x3\x2\x2\x2\x985\x983\x3\x2\x2\x2\x986\x988\a\xC7\x2\x2" + - "\x987\x989\a\xF3\x2\x2\x988\x987\x3\x2\x2\x2\x988\x989\x3\x2\x2\x2\x989" + - "\x98C\x3\x2\x2\x2\x98A\x98D\a\xD2\x2\x2\x98B\x98D\x5\x104\x83\x2\x98C" + - "\x98A\x3\x2\x2\x2\x98C\x98B\x3\x2\x2\x2\x98D\x111\x3\x2\x2\x2\x98E\x997" + - "\x5\x10A\x86\x2\x98F\x991\a\xF3\x2\x2\x990\x98F\x3\x2\x2\x2\x990\x991" + - "\x3\x2\x2\x2\x991\x992\x3\x2\x2\x2\x992\x994\a\xC6\x2\x2\x993\x995\a\xF3" + - "\x2\x2\x994\x993\x3\x2\x2\x2\x994\x995\x3\x2\x2\x2\x995\x996\x3\x2\x2" + - "\x2\x996\x998\x5\x10A\x86\x2\x997\x990\x3\x2\x2\x2\x997\x998\x3\x2\x2" + - "\x2\x998\x113\x3\x2\x2\x2\x999\x99A\x5\x104\x83\x2\x99A\x99B\a\xF1\x2" + - "\x2\x99B\x115\x3\x2\x2\x2\x99C\x99D\t\x13\x2\x2\x99D\x117\x3\x2\x2\x2" + - "\x99E\x9A1\x5\x108\x85\x2\x99F\x9A1\x5\x10E\x88\x2\x9A0\x99E\x3\x2\x2" + - "\x2\x9A0\x99F\x3\x2\x2\x2\x9A1\x9AA\x3\x2\x2\x2\x9A2\x9A4\a\xF3\x2\x2" + - "\x9A3\x9A2\x3\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4\x9A5\x3\x2\x2\x2\x9A5" + - "\x9A7\a\xC4\x2\x2\x9A6\x9A8\a\xF3\x2\x2\x9A7\x9A6\x3\x2\x2\x2\x9A7\x9A8" + - "\x3\x2\x2\x2\x9A8\x9A9\x3\x2\x2\x2\x9A9\x9AB\a\xCB\x2\x2\x9AA\x9A3\x3" + - "\x2\x2\x2\x9AA\x9AB\x3\x2\x2\x2\x9AB\x119\x3\x2\x2\x2\x9AC\x9AD\t\x14" + - "\x2\x2\x9AD\x11B\x3\x2\x2\x2\x9AE\x9AF\t\x15\x2\x2\x9AF\x11D\x3\x2\x2" + - "\x2\x9B0\x9B1\t\x16\x2\x2\x9B1\x11F\x3\x2\x2\x2\x9B2\x9B3\a\xEE\x2\x2" + - "\x9B3\x121\x3\x2\x2\x2\x9B4\x9B5\a\xEF\x2\x2\x9B5\x123\x3\x2\x2\x2\x9B6" + - "\x9B8\a\xF3\x2\x2\x9B7\x9B6\x3\x2\x2\x2\x9B7\x9B8\x3\x2\x2\x2\x9B8\x9BC" + - "\x3\x2\x2\x2\x9B9\x9BD\a\xED\x2\x2\x9BA\x9BD\x5\x122\x92\x2\x9BB\x9BD" + - "\x5\x120\x91\x2\x9BC\x9B9\x3\x2\x2\x2\x9BC\x9BA\x3\x2\x2\x2\x9BC\x9BB" + - "\x3\x2\x2\x2\x9BD\x9BF\x3\x2\x2\x2\x9BE\x9C0\a\xF3\x2\x2\x9BF\x9BE\x3" + - "\x2\x2\x2\x9BF\x9C0\x3\x2\x2\x2\x9C0\x125\x3\x2\x2\x2\x9C1\x9CA\x5\x124" + - "\x93\x2\x9C2\x9C4\a\xF3\x2\x2\x9C3\x9C2\x3\x2\x2\x2\x9C3\x9C4\x3\x2\x2" + - "\x2\x9C4\x9C5\x3\x2\x2\x2\x9C5\x9C7\a\xF1\x2\x2\x9C6\x9C8\a\xF3\x2\x2" + - "\x9C7\x9C6\x3\x2\x2\x2\x9C7\x9C8\x3\x2\x2\x2\x9C8\x9CA\x3\x2\x2\x2\x9C9" + - "\x9C1\x3\x2\x2\x2\x9C9\x9C3\x3\x2\x2\x2\x9CA\x9CD\x3\x2\x2\x2\x9CB\x9C9" + - "\x3\x2\x2\x2\x9CB\x9CC\x3\x2\x2\x2\x9CC\x127\x3\x2\x2\x2\x9CD\x9CB\x3" + - "\x2\x2\x2\x1A9\x12C\x132\x135\x139\x13D\x141\x145\x152\x158\x15C\x166" + - "\x16E\x17B\x187\x18B\x193\x19E\x1A4\x1A8\x1AC\x1B0\x1B5\x1BE\x206\x20C" + - "\x210\x213\x223\x227\x22C\x22F\x234\x23A\x23E\x243\x248\x24C\x24F\x253" + - "\x259\x25D\x264\x26A\x26E\x271\x276\x280\x283\x286\x28A\x290\x294\x299" + - "\x2A0\x2A4\x2A8\x2AC\x2AF\x2B4\x2BF\x2CC\x2D3\x2DC\x2E3\x2E7\x2EA\x2F9" + - "\x2FF\x309\x30D\x317\x31F\x324\x32A\x32E\x331\x335\x340\x344\x349\x34E" + - "\x352\x356\x35A\x35D\x360\x363\x366\x36A\x372\x376\x379\x37C\x380\x397" + - "\x39D\x3A1\x3A5\x3AE\x3B9\x3BE\x3C8\x3CC\x3D1\x3D9\x3DD\x3E1\x3E9\x3ED" + - "\x3F9\x3FD\x404\x406\x40C\x410\x416\x41A\x41E\x426\x42A\x430\x439\x43B" + - "\x440\x449\x44B\x453\x455\x45A\x45E\x462\x47A\x484\x488\x48D\x498\x49C" + - "\x4A1\x4AF\x4B3\x4BC\x4C0\x4C3\x4C7\x4CB\x4CE\x4D2\x4D6\x4D9\x4DD\x4E0" + - "\x4E4\x4E6\x4EB\x4EF\x4F3\x4F7\x4F9\x4FF\x503\x506\x50B\x50F\x515\x518" + - "\x51B\x51F\x523\x52A\x52E\x534\x537\x53B\x542\x546\x54C\x54F\x553\x55B" + - "\x55F\x562\x565\x569\x571\x575\x579\x57B\x57E\x583\x589\x58D\x591\x596" + - "\x59B\x59F\x5A3\x5A8\x5B0\x5B2\x5BE\x5C2\x5CA\x5CE\x5D6\x5DA\x5DE\x5E2" + - "\x5E6\x5EA\x5F2\x5F6\x603\x60A\x60E\x619\x620\x625\x629\x62E\x631\x637" + - "\x63B\x63E\x644\x648\x650\x654\x65D\x661\x665\x669\x66C\x670\x676\x67A" + - "\x681\x68A\x691\x695\x698\x69B\x69E\x6A2\x6AD\x6B7\x6BB\x6C2\x6C4\x6C9" + - "\x6CE\x6D3\x6D7\x6DD\x6E2\x6E9\x6ED\x6F1\x6F6\x6FD\x701\x705\x70A\x70E" + - "\x713\x717\x71C\x720\x725\x729\x72E\x732\x737\x73B\x740\x744\x749\x74D" + - "\x752\x756\x75B\x75F\x764\x768\x76B\x76D\x773\x778\x77E\x782\x787\x78C" + - "\x790\x794\x796\x79A\x79C\x79F\x7A3\x7AA\x7B2\x7B6\x7C0\x7C4\x7CC\x7D0" + - "\x7D3\x7D6\x7DC\x7E2\x7E5\x7E9\x7ED\x7F1\x7F4\x7FC\x802\x807\x80A\x80E" + - "\x812\x816\x819\x821\x826\x829\x82E\x832\x835\x838\x83B\x843\x849\x84C" + - "\x854\x85B\x85F\x862\x865\x868\x870\x875\x878\x87B\x87F\x883\x885\x889" + - "\x88C\x88F\x897\x89C\x8A0\x8A4\x8A7\x8AA\x8AD\x8B5\x8BA\x8BE\x8C1\x8C6" + - "\x8C9\x8CD\x8D1\x8D6\x8DA\x8DD\x8E1\x8E5\x8E9\x8EC\x8F2\x8F6\x8FA\x8FE" + - "\x902\x907\x90A\x90D\x913\x917\x91B\x91F\x922\x926\x929\x92C\x92F\x932" + - "\x935\x939\x93F\x943\x948\x950\x956\x958\x95C\x960\x964\x967\x96E\x970" + - "\x976\x978\x97A\x983\x988\x98C\x990\x994\x997\x9A0\x9A3\x9A7\x9AA\x9B7" + - "\x9BC\x9BF\x9C3\x9C7\x9C9\x9CB"; - public static readonly ATN _ATN = - new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); - } +namespace Rubberduck.Parsing.Grammar { +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using System.Collections.Generic; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public partial class VBAParser : Parser { + public const int + T__7=1, T__6=2, T__5=3, T__4=4, T__3=5, T__2=6, T__1=7, T__0=8, ACCESS=9, + ADDRESSOF=10, ALIAS=11, AND=12, ATTRIBUTE=13, APPACTIVATE=14, APPEND=15, + AS=16, BEGIN=17, BEEP=18, BINARY=19, BOOLEAN=20, BYVAL=21, BYREF=22, BYTE=23, + CALL=24, CASE=25, CHDIR=26, CHDRIVE=27, CLASS=28, CLOSE=29, COLLECTION=30, + CONST=31, DATABASE=32, DATE=33, DECLARE=34, DEFBOOL=35, DEFBYTE=36, DEFDATE=37, + DEFDBL=38, DEFDEC=39, DEFCUR=40, DEFINT=41, DEFLNG=42, DEFOBJ=43, DEFSNG=44, + DEFSTR=45, DEFVAR=46, DELETESETTING=47, DIM=48, DO=49, DOUBLE=50, EACH=51, + ELSE=52, ELSEIF=53, END_ENUM=54, END_FUNCTION=55, END_IF=56, END_PROPERTY=57, + END_SELECT=58, END_SUB=59, END_TYPE=60, END_WITH=61, END=62, ENUM=63, + EQV=64, ERASE=65, ERROR=66, EVENT=67, EXIT_DO=68, EXIT_FOR=69, EXIT_FUNCTION=70, + EXIT_PROPERTY=71, EXIT_SUB=72, FALSE=73, FILECOPY=74, FRIEND=75, FOR=76, + FUNCTION=77, GET=78, GLOBAL=79, GOSUB=80, GOTO=81, IF=82, IMP=83, IMPLEMENTS=84, + IN=85, INPUT=86, IS=87, INTEGER=88, KILL=89, LOAD=90, LOCK=91, LONG=92, + LOOP=93, LEN=94, LET=95, LIB=96, LIKE=97, LINE_INPUT=98, LOCK_READ=99, + LOCK_WRITE=100, LOCK_READ_WRITE=101, LSET=102, ME=103, MID=104, MKDIR=105, + MOD=106, NAME=107, NEXT=108, NEW=109, NOT=110, NOTHING=111, NULL=112, + ON=113, ON_ERROR=114, ON_LOCAL_ERROR=115, OPEN=116, OPTIONAL=117, OPTION_BASE=118, + OPTION_EXPLICIT=119, OPTION_COMPARE=120, OPTION_PRIVATE_MODULE=121, OR=122, + OUTPUT=123, PARAMARRAY=124, PRESERVE=125, PRINT=126, PRIVATE=127, PROPERTY_GET=128, + PROPERTY_LET=129, PROPERTY_SET=130, PTRSAFE=131, PUBLIC=132, PUT=133, + RANDOM=134, RANDOMIZE=135, RAISEEVENT=136, READ=137, READ_WRITE=138, REDIM=139, + REM=140, RESET=141, RESUME=142, RETURN=143, RMDIR=144, RSET=145, SAVEPICTURE=146, + SAVESETTING=147, SEEK=148, SELECT=149, SENDKEYS=150, SET=151, SETATTR=152, + SHARED=153, SINGLE=154, SPC=155, STATIC=156, STEP=157, STOP=158, STRING=159, + SUB=160, TAB=161, TEXT=162, THEN=163, TIME=164, TO=165, TRUE=166, TYPE=167, + TYPEOF=168, UNLOAD=169, UNLOCK=170, UNTIL=171, VARIANT=172, VERSION=173, + WEND=174, WHILE=175, WIDTH=176, WITH=177, WITHEVENTS=178, WRITE=179, XOR=180, + AMPERSAND=181, ASSIGN=182, DIV=183, INTDIV=184, EQ=185, GEQ=186, GT=187, + LEQ=188, LPAREN=189, LT=190, MINUS=191, MULT=192, NEQ=193, PLUS=194, POW=195, + RPAREN=196, L_SQUARE_BRACKET=197, R_SQUARE_BRACKET=198, STRINGLITERAL=199, + OCTLITERAL=200, HEXLITERAL=201, SHORTLITERAL=202, INTEGERLITERAL=203, + DOUBLELITERAL=204, DATELITERAL=205, JANUARY=206, FEBRUARY=207, MARCH=208, + APRIL=209, MAY=210, JUNE=211, JULY=212, AUGUST=213, SEPTEMBER=214, OCTOBER=215, + NOVEMBER=216, DECEMBER=217, JAN=218, FEB=219, MAR=220, APR=221, JUN=222, + JUL=223, AUG=224, SEP=225, OCT=226, NOV=227, DEC=228, LINE_CONTINUATION=229, + NEWLINE=230, REMCOMMENT=231, COMMENT=232, SINGLEQUOTE=233, COLON=234, + UNDERSCORE=235, WS=236, IDENTIFIER=237; + public static readonly string[] tokenNames = { + "", "'@'", "'!'", "'#'", "'$'", "'%'", "';'", "','", "'.'", "ACCESS", + "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", + "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", "CALL", + "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "COLLECTION", "CONST", "DATABASE", + "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", + "DEFCUR", "DEFINT", "DEFLNG", "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", + "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", + "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", + "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", + "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", + "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", + "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", + "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", + "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", + "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", + "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", + "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", + "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", + "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", + "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", + "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", + "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", + "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", + "WRITE", "XOR", "'&'", "':='", "'/'", "'\\'", "'='", "'>='", "'>'", "'<='", + "'('", "'<'", "'-'", "'*'", "'<>'", "'+'", "'^'", "')'", "'['", "']'", + "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", + "DOUBLELITERAL", "DATELITERAL", "JANUARY", "FEBRUARY", "MARCH", "APRIL", + "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", + "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", + "DEC", "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", + "':'", "'_'", "WS", "IDENTIFIER" + }; + public const int + RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, + RULE_moduleConfigElement = 4, RULE_moduleAttributes = 5, RULE_moduleDeclarations = 6, + RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_moduleBody = 9, + RULE_moduleBodyElement = 10, RULE_attributeStmt = 11, RULE_block = 12, + RULE_blockStmt = 13, RULE_appactivateStmt = 14, RULE_beepStmt = 15, RULE_chdirStmt = 16, + RULE_chdriveStmt = 17, RULE_closeStmt = 18, RULE_constStmt = 19, RULE_constSubStmt = 20, + RULE_dateStmt = 21, RULE_declareStmt = 22, RULE_deftypeStmt = 23, RULE_deleteSettingStmt = 24, + RULE_doLoopStmt = 25, RULE_endStmt = 26, RULE_enumerationStmt = 27, RULE_enumerationStmt_Constant = 28, + RULE_eraseStmt = 29, RULE_errorStmt = 30, RULE_eventStmt = 31, RULE_exitStmt = 32, + RULE_filecopyStmt = 33, RULE_forEachStmt = 34, RULE_forNextStmt = 35, + RULE_functionStmt = 36, RULE_getStmt = 37, RULE_goSubStmt = 38, RULE_goToStmt = 39, + RULE_ifThenElseStmt = 40, RULE_ifBlockStmt = 41, RULE_ifConditionStmt = 42, + RULE_ifElseIfBlockStmt = 43, RULE_ifElseBlockStmt = 44, RULE_implementsStmt = 45, + RULE_inputStmt = 46, RULE_killStmt = 47, RULE_letStmt = 48, RULE_lineInputStmt = 49, + RULE_loadStmt = 50, RULE_lockStmt = 51, RULE_lsetStmt = 52, RULE_midStmt = 53, + RULE_mkdirStmt = 54, RULE_nameStmt = 55, RULE_onErrorStmt = 56, RULE_onGoToStmt = 57, + RULE_onGoSubStmt = 58, RULE_openStmt = 59, RULE_outputList = 60, RULE_outputList_Expression = 61, + RULE_printStmt = 62, RULE_propertyGetStmt = 63, RULE_propertySetStmt = 64, + RULE_propertyLetStmt = 65, RULE_putStmt = 66, RULE_raiseEventStmt = 67, + RULE_randomizeStmt = 68, RULE_redimStmt = 69, RULE_redimSubStmt = 70, + RULE_resetStmt = 71, RULE_resumeStmt = 72, RULE_returnStmt = 73, RULE_rmdirStmt = 74, + RULE_rsetStmt = 75, RULE_savepictureStmt = 76, RULE_saveSettingStmt = 77, + RULE_seekStmt = 78, RULE_selectCaseStmt = 79, RULE_sC_Selection = 80, + RULE_sC_Case = 81, RULE_sC_Cond = 82, RULE_sendkeysStmt = 83, RULE_setattrStmt = 84, + RULE_setStmt = 85, RULE_stopStmt = 86, RULE_subStmt = 87, RULE_timeStmt = 88, + RULE_typeStmt = 89, RULE_typeStmt_Element = 90, RULE_typeOfStmt = 91, + RULE_unloadStmt = 92, RULE_unlockStmt = 93, RULE_valueStmt = 94, RULE_variableStmt = 95, + RULE_variableListStmt = 96, RULE_variableSubStmt = 97, RULE_whileWendStmt = 98, + RULE_widthStmt = 99, RULE_withStmt = 100, RULE_writeStmt = 101, RULE_fileNumber = 102, + RULE_explicitCallStmt = 103, RULE_eCS_ProcedureCall = 104, RULE_eCS_MemberProcedureCall = 105, + RULE_implicitCallStmt_InBlock = 106, RULE_iCS_B_MemberProcedureCall = 107, + RULE_iCS_B_ProcedureCall = 108, RULE_implicitCallStmt_InStmt = 109, RULE_iCS_S_VariableOrProcedureCall = 110, + RULE_iCS_S_ProcedureOrArrayCall = 111, RULE_iCS_S_MembersCall = 112, RULE_iCS_S_MemberCall = 113, + RULE_iCS_S_DictionaryCall = 114, RULE_argsCall = 115, RULE_argCall = 116, + RULE_dictionaryCallStmt = 117, RULE_argList = 118, RULE_arg = 119, RULE_argDefaultValue = 120, + RULE_subscripts = 121, RULE_subscript = 122, RULE_ambiguousIdentifier = 123, + RULE_asTypeClause = 124, RULE_baseType = 125, RULE_certainIdentifier = 126, + RULE_comparisonOperator = 127, RULE_complexType = 128, RULE_fieldLength = 129, + RULE_letterrange = 130, RULE_lineLabel = 131, RULE_literal = 132, RULE_type = 133, + RULE_typeHint = 134, RULE_visibility = 135, RULE_ambiguousKeyword = 136, + RULE_remComment = 137, RULE_comment = 138, RULE_endOfLine = 139, RULE_endOfStatement = 140; + public static readonly string[] ruleNames = { + "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", + "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", + "moduleBody", "moduleBodyElement", "attributeStmt", "block", "blockStmt", + "appactivateStmt", "beepStmt", "chdirStmt", "chdriveStmt", "closeStmt", + "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", + "deleteSettingStmt", "doLoopStmt", "endStmt", "enumerationStmt", "enumerationStmt_Constant", + "eraseStmt", "errorStmt", "eventStmt", "exitStmt", "filecopyStmt", "forEachStmt", + "forNextStmt", "functionStmt", "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", + "ifBlockStmt", "ifConditionStmt", "ifElseIfBlockStmt", "ifElseBlockStmt", + "implementsStmt", "inputStmt", "killStmt", "letStmt", "lineInputStmt", + "loadStmt", "lockStmt", "lsetStmt", "midStmt", "mkdirStmt", "nameStmt", + "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", + "outputList_Expression", "printStmt", "propertyGetStmt", "propertySetStmt", + "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", "redimStmt", + "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rmdirStmt", + "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", "selectCaseStmt", + "sC_Selection", "sC_Case", "sC_Cond", "sendkeysStmt", "setattrStmt", "setStmt", + "stopStmt", "subStmt", "timeStmt", "typeStmt", "typeStmt_Element", "typeOfStmt", + "unloadStmt", "unlockStmt", "valueStmt", "variableStmt", "variableListStmt", + "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", "writeStmt", + "fileNumber", "explicitCallStmt", "eCS_ProcedureCall", "eCS_MemberProcedureCall", + "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", + "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", + "iCS_S_MembersCall", "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", + "argCall", "dictionaryCallStmt", "argList", "arg", "argDefaultValue", + "subscripts", "subscript", "ambiguousIdentifier", "asTypeClause", "baseType", + "certainIdentifier", "comparisonOperator", "complexType", "fieldLength", + "letterrange", "lineLabel", "literal", "type", "typeHint", "visibility", + "ambiguousKeyword", "remComment", "comment", "endOfLine", "endOfStatement" + }; + + public override string GrammarFileName { get { return "VBA.g4"; } } + + public override string[] TokenNames { get { return tokenNames; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string SerializedAtn { get { return _serializedATN; } } + + public VBAParser(ITokenStream input) + : base(input) + { + _interp = new ParserATNSimulator(this,_ATN); + } + public partial class StartRuleContext : ParserRuleContext { + public ITerminalNode Eof() { return GetToken(VBAParser.Eof, 0); } + public ModuleContext module() { + return GetRuleContext(0); + } + public StartRuleContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_startRule; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterStartRule(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitStartRule(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitStartRule(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StartRuleContext startRule() { + StartRuleContext _localctx = new StartRuleContext(_ctx, State); + EnterRule(_localctx, 0, RULE_startRule); + try { + EnterOuterAlt(_localctx, 1); + { + State = 282; module(); + State = 283; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleContext : ParserRuleContext { + public EndOfStatementContext endOfStatement(int i) { + return GetRuleContext(i); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ModuleHeaderContext moduleHeader() { + return GetRuleContext(0); + } + public ModuleConfigContext moduleConfig() { + return GetRuleContext(0); + } + public ModuleAttributesContext moduleAttributes() { + return GetRuleContext(0); + } + public ModuleBodyContext moduleBody() { + return GetRuleContext(0); + } + public ModuleDeclarationsContext moduleDeclarations() { + return GetRuleContext(0); + } + public IReadOnlyList endOfStatement() { + return GetRuleContexts(); + } + public ModuleContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_module; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModule(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModule(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModule(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleContext module() { + ModuleContext _localctx = new ModuleContext(_ctx, State); + EnterRule(_localctx, 2, RULE_module); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 286; + switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { + case 1: + { + State = 285; Match(WS); + } + break; + } + State = 288; endOfStatement(); + State = 292; + switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { + case 1: + { + State = 289; moduleHeader(); + State = 290; endOfStatement(); + } + break; + } + State = 295; + switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { + case 1: + { + State = 294; moduleConfig(); + } + break; + } + State = 297; endOfStatement(); + State = 299; + switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { + case 1: + { + State = 298; moduleAttributes(); + } + break; + } + State = 301; endOfStatement(); + State = 303; + switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { + case 1: + { + State = 302; moduleDeclarations(); + } + break; + } + State = 305; endOfStatement(); + State = 307; + switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { + case 1: + { + State = 306; moduleBody(); + } + break; + } + State = 309; endOfStatement(); + State = 311; + _la = _input.La(1); + if (_la==WS) { + { + State = 310; Match(WS); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleHeaderContext : ParserRuleContext { + public ITerminalNode VERSION() { return GetToken(VBAParser.VERSION, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode DOUBLELITERAL() { return GetToken(VBAParser.DOUBLELITERAL, 0); } + public ITerminalNode CLASS() { return GetToken(VBAParser.CLASS, 0); } + public ModuleHeaderContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleHeader; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleHeader(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleHeader(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleHeader(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleHeaderContext moduleHeader() { + ModuleHeaderContext _localctx = new ModuleHeaderContext(_ctx, State); + EnterRule(_localctx, 4, RULE_moduleHeader); + try { + EnterOuterAlt(_localctx, 1); + { + State = 313; Match(VERSION); + State = 314; Match(WS); + State = 315; Match(DOUBLELITERAL); + State = 316; Match(WS); + State = 317; Match(CLASS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleConfigContext : ParserRuleContext { + public IReadOnlyList moduleConfigElement() { + return GetRuleContexts(); + } + public ITerminalNode BEGIN() { return GetToken(VBAParser.BEGIN, 0); } + public ITerminalNode END() { return GetToken(VBAParser.END, 0); } + public ModuleConfigElementContext moduleConfigElement(int i) { + return GetRuleContext(i); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public ModuleConfigContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleConfig; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleConfig(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleConfig(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleConfig(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleConfigContext moduleConfig() { + ModuleConfigContext _localctx = new ModuleConfigContext(_ctx, State); + EnterRule(_localctx, 6, RULE_moduleConfig); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 319; Match(BEGIN); + State = 320; endOfStatement(); + State = 322; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 321; moduleConfigElement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 324; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,7,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + State = 326; Match(END); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleConfigElementContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public LiteralContext literal() { + return GetRuleContext(0); + } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public ModuleConfigElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleConfigElement; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleConfigElement(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleConfigElement(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleConfigElement(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleConfigElementContext moduleConfigElement() { + ModuleConfigElementContext _localctx = new ModuleConfigElementContext(_ctx, State); + EnterRule(_localctx, 8, RULE_moduleConfigElement); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 328; ambiguousIdentifier(); + State = 330; + _la = _input.La(1); + if (_la==WS) { + { + State = 329; Match(WS); + } + } + + State = 332; Match(EQ); + State = 334; + _la = _input.La(1); + if (_la==WS) { + { + State = 333; Match(WS); + } + } + + State = 336; literal(); + State = 337; endOfStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleAttributesContext : ParserRuleContext { + public EndOfStatementContext endOfStatement(int i) { + return GetRuleContext(i); + } + public AttributeStmtContext attributeStmt(int i) { + return GetRuleContext(i); + } + public IReadOnlyList endOfStatement() { + return GetRuleContexts(); + } + public IReadOnlyList attributeStmt() { + return GetRuleContexts(); + } + public ModuleAttributesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleAttributes; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleAttributes(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleAttributes(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleAttributes(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleAttributesContext moduleAttributes() { + ModuleAttributesContext _localctx = new ModuleAttributesContext(_ctx, State); + EnterRule(_localctx, 10, RULE_moduleAttributes); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 342; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 339; attributeStmt(); + State = 340; endOfStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 344; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,10,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleDeclarationsContext : ParserRuleContext { + public EndOfStatementContext endOfStatement(int i) { + return GetRuleContext(i); + } + public ModuleDeclarationsElementContext moduleDeclarationsElement(int i) { + return GetRuleContext(i); + } + public IReadOnlyList moduleDeclarationsElement() { + return GetRuleContexts(); + } + public IReadOnlyList endOfStatement() { + return GetRuleContexts(); + } + public ModuleDeclarationsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleDeclarations; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleDeclarations(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleDeclarations(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleDeclarations(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleDeclarationsContext moduleDeclarations() { + ModuleDeclarationsContext _localctx = new ModuleDeclarationsContext(_ctx, State); + EnterRule(_localctx, 12, RULE_moduleDeclarations); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 346; moduleDeclarationsElement(); + State = 352; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,11,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 347; endOfStatement(); + State = 348; moduleDeclarationsElement(); + } + } + } + State = 354; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,11,_ctx); + } + State = 355; endOfStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleOptionContext : ParserRuleContext { + public ModuleOptionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleOption; } } + + public ModuleOptionContext() { } + public virtual void CopyFrom(ModuleOptionContext context) { + base.CopyFrom(context); + } + } + public partial class OptionExplicitStmtContext : ModuleOptionContext { + public ITerminalNode OPTION_EXPLICIT() { return GetToken(VBAParser.OPTION_EXPLICIT, 0); } + public OptionExplicitStmtContext(ModuleOptionContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOptionExplicitStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOptionExplicitStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOptionExplicitStmt(this); + else return visitor.VisitChildren(this); + } + } + public partial class OptionBaseStmtContext : ModuleOptionContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode OPTION_BASE() { return GetToken(VBAParser.OPTION_BASE, 0); } + public ITerminalNode SHORTLITERAL() { return GetToken(VBAParser.SHORTLITERAL, 0); } + public OptionBaseStmtContext(ModuleOptionContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOptionBaseStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOptionBaseStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOptionBaseStmt(this); + else return visitor.VisitChildren(this); + } + } + public partial class OptionPrivateModuleStmtContext : ModuleOptionContext { + public ITerminalNode OPTION_PRIVATE_MODULE() { return GetToken(VBAParser.OPTION_PRIVATE_MODULE, 0); } + public OptionPrivateModuleStmtContext(ModuleOptionContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOptionPrivateModuleStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOptionPrivateModuleStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOptionPrivateModuleStmt(this); + else return visitor.VisitChildren(this); + } + } + public partial class OptionCompareStmtContext : ModuleOptionContext { + public ITerminalNode TEXT() { return GetToken(VBAParser.TEXT, 0); } + public ITerminalNode OPTION_COMPARE() { return GetToken(VBAParser.OPTION_COMPARE, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode DATABASE() { return GetToken(VBAParser.DATABASE, 0); } + public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } + public OptionCompareStmtContext(ModuleOptionContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOptionCompareStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOptionCompareStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOptionCompareStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleOptionContext moduleOption() { + ModuleOptionContext _localctx = new ModuleOptionContext(_ctx, State); + EnterRule(_localctx, 14, RULE_moduleOption); + int _la; + try { + State = 365; + switch (_input.La(1)) { + case OPTION_BASE: + _localctx = new OptionBaseStmtContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 357; Match(OPTION_BASE); + State = 358; Match(WS); + State = 359; Match(SHORTLITERAL); + } + break; + case OPTION_COMPARE: + _localctx = new OptionCompareStmtContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 360; Match(OPTION_COMPARE); + State = 361; Match(WS); + State = 362; + _la = _input.La(1); + if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + break; + case OPTION_EXPLICIT: + _localctx = new OptionExplicitStmtContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 363; Match(OPTION_EXPLICIT); + } + break; + case OPTION_PRIVATE_MODULE: + _localctx = new OptionPrivateModuleStmtContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 364; Match(OPTION_PRIVATE_MODULE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleDeclarationsElementContext : ParserRuleContext { + public CommentContext comment() { + return GetRuleContext(0); + } + public EnumerationStmtContext enumerationStmt() { + return GetRuleContext(0); + } + public ConstStmtContext constStmt() { + return GetRuleContext(0); + } + public TypeStmtContext typeStmt() { + return GetRuleContext(0); + } + public EventStmtContext eventStmt() { + return GetRuleContext(0); + } + public VariableStmtContext variableStmt() { + return GetRuleContext(0); + } + public ImplementsStmtContext implementsStmt() { + return GetRuleContext(0); + } + public ModuleOptionContext moduleOption() { + return GetRuleContext(0); + } + public DeclareStmtContext declareStmt() { + return GetRuleContext(0); + } + public ModuleDeclarationsElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleDeclarationsElement; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleDeclarationsElement(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleDeclarationsElement(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleDeclarationsElement(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleDeclarationsElementContext moduleDeclarationsElement() { + ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); + EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); + try { + State = 376; + switch ( Interpreter.AdaptivePredict(_input,13,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 367; comment(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 368; declareStmt(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 369; enumerationStmt(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 370; eventStmt(); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 371; constStmt(); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 372; implementsStmt(); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 373; variableStmt(); + } + break; + + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 374; moduleOption(); + } + break; + + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 375; typeStmt(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleBodyContext : ParserRuleContext { + public EndOfStatementContext endOfStatement(int i) { + return GetRuleContext(i); + } + public IReadOnlyList moduleBodyElement() { + return GetRuleContexts(); + } + public IReadOnlyList endOfStatement() { + return GetRuleContexts(); + } + public ModuleBodyElementContext moduleBodyElement(int i) { + return GetRuleContext(i); + } + public ModuleBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleBody; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleBody(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleBody(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleBody(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleBodyContext moduleBody() { + ModuleBodyContext _localctx = new ModuleBodyContext(_ctx, State); + EnterRule(_localctx, 18, RULE_moduleBody); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 378; moduleBodyElement(); + State = 384; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,14,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 379; endOfStatement(); + State = 380; moduleBodyElement(); + } + } + } + State = 386; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,14,_ctx); + } + State = 387; endOfStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleBodyElementContext : ParserRuleContext { + public PropertySetStmtContext propertySetStmt() { + return GetRuleContext(0); + } + public PropertyLetStmtContext propertyLetStmt() { + return GetRuleContext(0); + } + public PropertyGetStmtContext propertyGetStmt() { + return GetRuleContext(0); + } + public SubStmtContext subStmt() { + return GetRuleContext(0); + } + public FunctionStmtContext functionStmt() { + return GetRuleContext(0); + } + public ModuleBodyElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleBodyElement; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterModuleBodyElement(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitModuleBodyElement(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitModuleBodyElement(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ModuleBodyElementContext moduleBodyElement() { + ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); + EnterRule(_localctx, 20, RULE_moduleBodyElement); + try { + State = 394; + switch ( Interpreter.AdaptivePredict(_input,15,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 389; functionStmt(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 390; propertyGetStmt(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 391; propertySetStmt(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 392; propertyLetStmt(); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 393; subStmt(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AttributeStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public LiteralContext literal(int i) { + return GetRuleContext(i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList literal() { + return GetRuleContexts(); + } + public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public AttributeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_attributeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterAttributeStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitAttributeStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitAttributeStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public AttributeStmtContext attributeStmt() { + AttributeStmtContext _localctx = new AttributeStmtContext(_ctx, State); + EnterRule(_localctx, 22, RULE_attributeStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 396; Match(ATTRIBUTE); + State = 397; Match(WS); + State = 398; implicitCallStmt_InStmt(); + State = 400; + _la = _input.La(1); + if (_la==WS) { + { + State = 399; Match(WS); + } + } + + State = 402; Match(EQ); + State = 404; + _la = _input.La(1); + if (_la==WS) { + { + State = 403; Match(WS); + } + } + + State = 406; literal(); + State = 417; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,20,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 408; + _la = _input.La(1); + if (_la==WS) { + { + State = 407; Match(WS); + } + } + + State = 410; Match(T__1); + State = 412; + _la = _input.La(1); + if (_la==WS) { + { + State = 411; Match(WS); + } + } + + State = 414; literal(); + } + } + } + State = 419; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,20,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BlockContext : ParserRuleContext { + public EndOfStatementContext endOfStatement(int i) { + return GetRuleContext(i); + } + public IReadOnlyList blockStmt() { + return GetRuleContexts(); + } + public IReadOnlyList endOfStatement() { + return GetRuleContexts(); + } + public BlockStmtContext blockStmt(int i) { + return GetRuleContext(i); + } + public BlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_block; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterBlock(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public BlockContext block() { + BlockContext _localctx = new BlockContext(_ctx, State); + EnterRule(_localctx, 24, RULE_block); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 420; blockStmt(); + State = 426; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 421; endOfStatement(); + State = 422; blockStmt(); + } + } + } + State = 428; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + } + State = 429; endOfStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BlockStmtContext : ParserRuleContext { + public GoToStmtContext goToStmt() { + return GetRuleContext(0); + } + public LoadStmtContext loadStmt() { + return GetRuleContext(0); + } + public ChdriveStmtContext chdriveStmt() { + return GetRuleContext(0); + } + public EndStmtContext endStmt() { + return GetRuleContext(0); + } + public LetStmtContext letStmt() { + return GetRuleContext(0); + } + public FilecopyStmtContext filecopyStmt() { + return GetRuleContext(0); + } + public RmdirStmtContext rmdirStmt() { + return GetRuleContext(0); + } + public RsetStmtContext rsetStmt() { + return GetRuleContext(0); + } + public EraseStmtContext eraseStmt() { + return GetRuleContext(0); + } + public ChdirStmtContext chdirStmt() { + return GetRuleContext(0); + } + public WriteStmtContext writeStmt() { + return GetRuleContext(0); + } + public ExplicitCallStmtContext explicitCallStmt() { + return GetRuleContext(0); + } + public RandomizeStmtContext randomizeStmt() { + return GetRuleContext(0); + } + public ConstStmtContext constStmt() { + return GetRuleContext(0); + } + public SelectCaseStmtContext selectCaseStmt() { + return GetRuleContext(0); + } + public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { + return GetRuleContext(0); + } + public MkdirStmtContext mkdirStmt() { + return GetRuleContext(0); + } + public RaiseEventStmtContext raiseEventStmt() { + return GetRuleContext(0); + } + public SavepictureStmtContext savepictureStmt() { + return GetRuleContext(0); + } + public ExitStmtContext exitStmt() { + return GetRuleContext(0); + } + public IfThenElseStmtContext ifThenElseStmt() { + return GetRuleContext(0); + } + public OpenStmtContext openStmt() { + return GetRuleContext(0); + } + public SetattrStmtContext setattrStmt() { + return GetRuleContext(0); + } + public SaveSettingStmtContext saveSettingStmt() { + return GetRuleContext(0); + } + public AttributeStmtContext attributeStmt() { + return GetRuleContext(0); + } + public ForEachStmtContext forEachStmt() { + return GetRuleContext(0); + } + public ForNextStmtContext forNextStmt() { + return GetRuleContext(0); + } + public RedimStmtContext redimStmt() { + return GetRuleContext(0); + } + public TimeStmtContext timeStmt() { + return GetRuleContext(0); + } + public OnGoSubStmtContext onGoSubStmt() { + return GetRuleContext(0); + } + public SendkeysStmtContext sendkeysStmt() { + return GetRuleContext(0); + } + public DeleteSettingStmtContext deleteSettingStmt() { + return GetRuleContext(0); + } + public ErrorStmtContext errorStmt() { + return GetRuleContext(0); + } + public SetStmtContext setStmt() { + return GetRuleContext(0); + } + public WithStmtContext withStmt() { + return GetRuleContext(0); + } + public OnErrorStmtContext onErrorStmt() { + return GetRuleContext(0); + } + public WhileWendStmtContext whileWendStmt() { + return GetRuleContext(0); + } + public UnlockStmtContext unlockStmt() { + return GetRuleContext(0); + } + public StopStmtContext stopStmt() { + return GetRuleContext(0); + } + public NameStmtContext nameStmt() { + return GetRuleContext(0); + } + public LineInputStmtContext lineInputStmt() { + return GetRuleContext(0); + } + public DateStmtContext dateStmt() { + return GetRuleContext(0); + } + public InputStmtContext inputStmt() { + return GetRuleContext(0); + } + public ResetStmtContext resetStmt() { + return GetRuleContext(0); + } + public ImplementsStmtContext implementsStmt() { + return GetRuleContext(0); + } + public CloseStmtContext closeStmt() { + return GetRuleContext(0); + } + public GoSubStmtContext goSubStmt() { + return GetRuleContext(0); + } + public KillStmtContext killStmt() { + return GetRuleContext(0); + } + public DeftypeStmtContext deftypeStmt() { + return GetRuleContext(0); + } + public ReturnStmtContext returnStmt() { + return GetRuleContext(0); + } + public LockStmtContext lockStmt() { + return GetRuleContext(0); + } + public DoLoopStmtContext doLoopStmt() { + return GetRuleContext(0); + } + public LineLabelContext lineLabel() { + return GetRuleContext(0); + } + public BeepStmtContext beepStmt() { + return GetRuleContext(0); + } + public AppactivateStmtContext appactivateStmt() { + return GetRuleContext(0); + } + public LsetStmtContext lsetStmt() { + return GetRuleContext(0); + } + public MidStmtContext midStmt() { + return GetRuleContext(0); + } + public GetStmtContext getStmt() { + return GetRuleContext(0); + } + public OnGoToStmtContext onGoToStmt() { + return GetRuleContext(0); + } + public WidthStmtContext widthStmt() { + return GetRuleContext(0); + } + public PrintStmtContext printStmt() { + return GetRuleContext(0); + } + public SeekStmtContext seekStmt() { + return GetRuleContext(0); + } + public ResumeStmtContext resumeStmt() { + return GetRuleContext(0); + } + public VariableStmtContext variableStmt() { + return GetRuleContext(0); + } + public PutStmtContext putStmt() { + return GetRuleContext(0); + } + public UnloadStmtContext unloadStmt() { + return GetRuleContext(0); + } + public BlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_blockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterBlockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitBlockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitBlockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public BlockStmtContext blockStmt() { + BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); + EnterRule(_localctx, 26, RULE_blockStmt); + try { + State = 497; + switch ( Interpreter.AdaptivePredict(_input,22,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 431; lineLabel(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 432; appactivateStmt(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 433; attributeStmt(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 434; beepStmt(); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 435; chdirStmt(); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 436; chdriveStmt(); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 437; closeStmt(); + } + break; + + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 438; constStmt(); + } + break; + + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 439; dateStmt(); + } + break; + + case 10: + EnterOuterAlt(_localctx, 10); + { + State = 440; deleteSettingStmt(); + } + break; + + case 11: + EnterOuterAlt(_localctx, 11); + { + State = 441; deftypeStmt(); + } + break; + + case 12: + EnterOuterAlt(_localctx, 12); + { + State = 442; doLoopStmt(); + } + break; + + case 13: + EnterOuterAlt(_localctx, 13); + { + State = 443; endStmt(); + } + break; + + case 14: + EnterOuterAlt(_localctx, 14); + { + State = 444; eraseStmt(); + } + break; + + case 15: + EnterOuterAlt(_localctx, 15); + { + State = 445; errorStmt(); + } + break; + + case 16: + EnterOuterAlt(_localctx, 16); + { + State = 446; exitStmt(); + } + break; + + case 17: + EnterOuterAlt(_localctx, 17); + { + State = 447; explicitCallStmt(); + } + break; + + case 18: + EnterOuterAlt(_localctx, 18); + { + State = 448; filecopyStmt(); + } + break; + + case 19: + EnterOuterAlt(_localctx, 19); + { + State = 449; forEachStmt(); + } + break; + + case 20: + EnterOuterAlt(_localctx, 20); + { + State = 450; forNextStmt(); + } + break; + + case 21: + EnterOuterAlt(_localctx, 21); + { + State = 451; getStmt(); + } + break; + + case 22: + EnterOuterAlt(_localctx, 22); + { + State = 452; goSubStmt(); + } + break; + + case 23: + EnterOuterAlt(_localctx, 23); + { + State = 453; goToStmt(); + } + break; + + case 24: + EnterOuterAlt(_localctx, 24); + { + State = 454; ifThenElseStmt(); + } + break; + + case 25: + EnterOuterAlt(_localctx, 25); + { + State = 455; implementsStmt(); + } + break; + + case 26: + EnterOuterAlt(_localctx, 26); + { + State = 456; inputStmt(); + } + break; + + case 27: + EnterOuterAlt(_localctx, 27); + { + State = 457; killStmt(); + } + break; + + case 28: + EnterOuterAlt(_localctx, 28); + { + State = 458; letStmt(); + } + break; + + case 29: + EnterOuterAlt(_localctx, 29); + { + State = 459; lineInputStmt(); + } + break; + + case 30: + EnterOuterAlt(_localctx, 30); + { + State = 460; loadStmt(); + } + break; + + case 31: + EnterOuterAlt(_localctx, 31); + { + State = 461; lockStmt(); + } + break; + + case 32: + EnterOuterAlt(_localctx, 32); + { + State = 462; lsetStmt(); + } + break; + + case 33: + EnterOuterAlt(_localctx, 33); + { + State = 463; midStmt(); + } + break; + + case 34: + EnterOuterAlt(_localctx, 34); + { + State = 464; mkdirStmt(); + } + break; + + case 35: + EnterOuterAlt(_localctx, 35); + { + State = 465; nameStmt(); + } + break; + + case 36: + EnterOuterAlt(_localctx, 36); + { + State = 466; onErrorStmt(); + } + break; + + case 37: + EnterOuterAlt(_localctx, 37); + { + State = 467; onGoToStmt(); + } + break; + + case 38: + EnterOuterAlt(_localctx, 38); + { + State = 468; onGoSubStmt(); + } + break; + + case 39: + EnterOuterAlt(_localctx, 39); + { + State = 469; openStmt(); + } + break; + + case 40: + EnterOuterAlt(_localctx, 40); + { + State = 470; printStmt(); + } + break; + + case 41: + EnterOuterAlt(_localctx, 41); + { + State = 471; putStmt(); + } + break; + + case 42: + EnterOuterAlt(_localctx, 42); + { + State = 472; raiseEventStmt(); + } + break; + + case 43: + EnterOuterAlt(_localctx, 43); + { + State = 473; randomizeStmt(); + } + break; + + case 44: + EnterOuterAlt(_localctx, 44); + { + State = 474; redimStmt(); + } + break; + + case 45: + EnterOuterAlt(_localctx, 45); + { + State = 475; resetStmt(); + } + break; + + case 46: + EnterOuterAlt(_localctx, 46); + { + State = 476; resumeStmt(); + } + break; + + case 47: + EnterOuterAlt(_localctx, 47); + { + State = 477; returnStmt(); + } + break; + + case 48: + EnterOuterAlt(_localctx, 48); + { + State = 478; rmdirStmt(); + } + break; + + case 49: + EnterOuterAlt(_localctx, 49); + { + State = 479; rsetStmt(); + } + break; + + case 50: + EnterOuterAlt(_localctx, 50); + { + State = 480; savepictureStmt(); + } + break; + + case 51: + EnterOuterAlt(_localctx, 51); + { + State = 481; saveSettingStmt(); + } + break; + + case 52: + EnterOuterAlt(_localctx, 52); + { + State = 482; seekStmt(); + } + break; + + case 53: + EnterOuterAlt(_localctx, 53); + { + State = 483; selectCaseStmt(); + } + break; + + case 54: + EnterOuterAlt(_localctx, 54); + { + State = 484; sendkeysStmt(); + } + break; + + case 55: + EnterOuterAlt(_localctx, 55); + { + State = 485; setattrStmt(); + } + break; + + case 56: + EnterOuterAlt(_localctx, 56); + { + State = 486; setStmt(); + } + break; + + case 57: + EnterOuterAlt(_localctx, 57); + { + State = 487; stopStmt(); + } + break; + + case 58: + EnterOuterAlt(_localctx, 58); + { + State = 488; timeStmt(); + } + break; + + case 59: + EnterOuterAlt(_localctx, 59); + { + State = 489; unloadStmt(); + } + break; + + case 60: + EnterOuterAlt(_localctx, 60); + { + State = 490; unlockStmt(); + } + break; + + case 61: + EnterOuterAlt(_localctx, 61); + { + State = 491; variableStmt(); + } + break; + + case 62: + EnterOuterAlt(_localctx, 62); + { + State = 492; whileWendStmt(); + } + break; + + case 63: + EnterOuterAlt(_localctx, 63); + { + State = 493; widthStmt(); + } + break; + + case 64: + EnterOuterAlt(_localctx, 64); + { + State = 494; withStmt(); + } + break; + + case 65: + EnterOuterAlt(_localctx, 65); + { + State = 495; writeStmt(); + } + break; + + case 66: + EnterOuterAlt(_localctx, 66); + { + State = 496; implicitCallStmt_InBlock(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AppactivateStmtContext : ParserRuleContext { + public ITerminalNode APPACTIVATE() { return GetToken(VBAParser.APPACTIVATE, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public AppactivateStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_appactivateStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterAppactivateStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitAppactivateStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitAppactivateStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public AppactivateStmtContext appactivateStmt() { + AppactivateStmtContext _localctx = new AppactivateStmtContext(_ctx, State); + EnterRule(_localctx, 28, RULE_appactivateStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 499; Match(APPACTIVATE); + State = 500; Match(WS); + State = 501; valueStmt(0); + State = 510; + switch ( Interpreter.AdaptivePredict(_input,25,_ctx) ) { + case 1: + { + State = 503; + _la = _input.La(1); + if (_la==WS) { + { + State = 502; Match(WS); + } + } + + State = 505; Match(T__1); + State = 507; + switch ( Interpreter.AdaptivePredict(_input,24,_ctx) ) { + case 1: + { + State = 506; Match(WS); + } + break; + } + State = 509; valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BeepStmtContext : ParserRuleContext { + public ITerminalNode BEEP() { return GetToken(VBAParser.BEEP, 0); } + public BeepStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_beepStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterBeepStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitBeepStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitBeepStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public BeepStmtContext beepStmt() { + BeepStmtContext _localctx = new BeepStmtContext(_ctx, State); + EnterRule(_localctx, 30, RULE_beepStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 512; Match(BEEP); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ChdirStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode CHDIR() { return GetToken(VBAParser.CHDIR, 0); } + public ChdirStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_chdirStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterChdirStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitChdirStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitChdirStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ChdirStmtContext chdirStmt() { + ChdirStmtContext _localctx = new ChdirStmtContext(_ctx, State); + EnterRule(_localctx, 32, RULE_chdirStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 514; Match(CHDIR); + State = 515; Match(WS); + State = 516; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ChdriveStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode CHDRIVE() { return GetToken(VBAParser.CHDRIVE, 0); } + public ChdriveStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_chdriveStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterChdriveStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitChdriveStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitChdriveStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ChdriveStmtContext chdriveStmt() { + ChdriveStmtContext _localctx = new ChdriveStmtContext(_ctx, State); + EnterRule(_localctx, 34, RULE_chdriveStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 518; Match(CHDRIVE); + State = 519; Match(WS); + State = 520; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CloseStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } + public IReadOnlyList fileNumber() { + return GetRuleContexts(); + } + public FileNumberContext fileNumber(int i) { + return GetRuleContext(i); + } + public CloseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_closeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterCloseStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitCloseStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitCloseStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CloseStmtContext closeStmt() { + CloseStmtContext _localctx = new CloseStmtContext(_ctx, State); + EnterRule(_localctx, 36, RULE_closeStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 522; Match(CLOSE); + State = 538; + switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { + case 1: + { + State = 523; Match(WS); + State = 524; fileNumber(); + State = 535; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,28,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 526; + _la = _input.La(1); + if (_la==WS) { + { + State = 525; Match(WS); + } + } + + State = 528; Match(T__1); + State = 530; + switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { + case 1: + { + State = 529; Match(WS); + } + break; + } + State = 532; fileNumber(); + } + } + } + State = 537; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,28,_ctx); + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ConstStmtContext : ParserRuleContext { + public ITerminalNode CONST() { return GetToken(VBAParser.CONST, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList constSubStmt() { + return GetRuleContexts(); + } + public ConstSubStmtContext constSubStmt(int i) { + return GetRuleContext(i); + } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public ConstStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_constStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterConstStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitConstStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitConstStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ConstStmtContext constStmt() { + ConstStmtContext _localctx = new ConstStmtContext(_ctx, State); + EnterRule(_localctx, 38, RULE_constStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 543; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 540; visibility(); + State = 541; Match(WS); + } + } + + State = 545; Match(CONST); + State = 546; Match(WS); + State = 547; constSubStmt(); + State = 558; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,33,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 549; + _la = _input.La(1); + if (_la==WS) { + { + State = 548; Match(WS); + } + } + + State = 551; Match(T__1); + State = 553; + _la = _input.La(1); + if (_la==WS) { + { + State = 552; Match(WS); + } + } + + State = 555; constSubStmt(); + } + } + } + State = 560; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,33,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ConstSubStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ConstSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_constSubStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterConstSubStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitConstSubStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitConstSubStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ConstSubStmtContext constSubStmt() { + ConstSubStmtContext _localctx = new ConstSubStmtContext(_ctx, State); + EnterRule(_localctx, 40, RULE_constSubStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 561; ambiguousIdentifier(); + State = 563; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { + { + State = 562; typeHint(); + } + } + + State = 567; + switch ( Interpreter.AdaptivePredict(_input,35,_ctx) ) { + case 1: + { + State = 565; Match(WS); + State = 566; asTypeClause(); + } + break; + } + State = 570; + _la = _input.La(1); + if (_la==WS) { + { + State = 569; Match(WS); + } + } + + State = 572; Match(EQ); + State = 574; + switch ( Interpreter.AdaptivePredict(_input,37,_ctx) ) { + case 1: + { + State = 573; Match(WS); + } + break; + } + State = 576; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DateStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } + public DateStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterDateStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitDateStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitDateStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DateStmtContext dateStmt() { + DateStmtContext _localctx = new DateStmtContext(_ctx, State); + EnterRule(_localctx, 42, RULE_dateStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 578; Match(DATE); + State = 580; + _la = _input.La(1); + if (_la==WS) { + { + State = 579; Match(WS); + } + } + + State = 582; Match(EQ); + State = 584; + switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { + case 1: + { + State = 583; Match(WS); + } + break; + } + State = 586; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DeclareStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode STRINGLITERAL(int i) { + return GetToken(VBAParser.STRINGLITERAL, i); + } + public ITerminalNode PTRSAFE() { return GetToken(VBAParser.PTRSAFE, 0); } + public ITerminalNode DECLARE() { return GetToken(VBAParser.DECLARE, 0); } + public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public TypeHintContext typeHint(int i) { + return GetRuleContext(i); + } + public ArgListContext argList() { + return GetRuleContext(0); + } + public ITerminalNode LIB() { return GetToken(VBAParser.LIB, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } + public IReadOnlyList STRINGLITERAL() { return GetTokens(VBAParser.STRINGLITERAL); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList typeHint() { + return GetRuleContexts(); + } + public ITerminalNode ALIAS() { return GetToken(VBAParser.ALIAS, 0); } + public DeclareStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_declareStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterDeclareStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitDeclareStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitDeclareStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DeclareStmtContext declareStmt() { + DeclareStmtContext _localctx = new DeclareStmtContext(_ctx, State); + EnterRule(_localctx, 44, RULE_declareStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 591; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 588; visibility(); + State = 589; Match(WS); + } + } + + State = 593; Match(DECLARE); + State = 594; Match(WS); + State = 597; + _la = _input.La(1); + if (_la==PTRSAFE) { + { + State = 595; Match(PTRSAFE); + State = 596; Match(WS); + } + } + + State = 604; + switch (_input.La(1)) { + case FUNCTION: + { + { + State = 599; Match(FUNCTION); + State = 601; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { + { + State = 600; typeHint(); + } + } + + } + } + break; + case SUB: + { + State = 603; Match(SUB); + } + break; + default: + throw new NoViableAltException(this); + } + State = 606; Match(WS); + State = 607; ambiguousIdentifier(); + State = 609; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { + { + State = 608; typeHint(); + } + } + + State = 611; Match(WS); + State = 612; Match(LIB); + State = 613; Match(WS); + State = 614; Match(STRINGLITERAL); + State = 619; + switch ( Interpreter.AdaptivePredict(_input,45,_ctx) ) { + case 1: + { + State = 615; Match(WS); + State = 616; Match(ALIAS); + State = 617; Match(WS); + State = 618; Match(STRINGLITERAL); + } + break; + } + State = 625; + switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { + case 1: + { + State = 622; + _la = _input.La(1); + if (_la==WS) { + { + State = 621; Match(WS); + } + } + + State = 624; argList(); + } + break; + } + State = 629; + switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { + case 1: + { + State = 627; Match(WS); + State = 628; asTypeClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DeftypeStmtContext : ParserRuleContext { + public ITerminalNode DEFOBJ() { return GetToken(VBAParser.DEFOBJ, 0); } + public ITerminalNode DEFDEC() { return GetToken(VBAParser.DEFDEC, 0); } + public ITerminalNode DEFINT() { return GetToken(VBAParser.DEFINT, 0); } + public IReadOnlyList letterrange() { + return GetRuleContexts(); + } + public ITerminalNode DEFBOOL() { return GetToken(VBAParser.DEFBOOL, 0); } + public ITerminalNode DEFDBL() { return GetToken(VBAParser.DEFDBL, 0); } + public ITerminalNode DEFBYTE() { return GetToken(VBAParser.DEFBYTE, 0); } + public ITerminalNode DEFSNG() { return GetToken(VBAParser.DEFSNG, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode DEFCUR() { return GetToken(VBAParser.DEFCUR, 0); } + public LetterrangeContext letterrange(int i) { + return GetRuleContext(i); + } + public ITerminalNode DEFDATE() { return GetToken(VBAParser.DEFDATE, 0); } + public ITerminalNode DEFLNG() { return GetToken(VBAParser.DEFLNG, 0); } + public ITerminalNode DEFSTR() { return GetToken(VBAParser.DEFSTR, 0); } + public ITerminalNode DEFVAR() { return GetToken(VBAParser.DEFVAR, 0); } + public DeftypeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_deftypeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterDeftypeStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitDeftypeStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitDeftypeStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DeftypeStmtContext deftypeStmt() { + DeftypeStmtContext _localctx = new DeftypeStmtContext(_ctx, State); + EnterRule(_localctx, 46, RULE_deftypeStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 631; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 632; Match(WS); + State = 633; letterrange(); + State = 644; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,51,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 635; + _la = _input.La(1); + if (_la==WS) { + { + State = 634; Match(WS); + } + } + + State = 637; Match(T__1); + State = 639; + _la = _input.La(1); + if (_la==WS) { + { + State = 638; Match(WS); + } + } + + State = 641; letterrange(); + } + } + } + State = 646; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,51,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DeleteSettingStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public DeleteSettingStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_deleteSettingStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterDeleteSettingStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitDeleteSettingStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitDeleteSettingStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DeleteSettingStmtContext deleteSettingStmt() { + DeleteSettingStmtContext _localctx = new DeleteSettingStmtContext(_ctx, State); + EnterRule(_localctx, 48, RULE_deleteSettingStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 647; Match(DELETESETTING); + State = 648; Match(WS); + State = 649; valueStmt(0); + State = 651; + _la = _input.La(1); + if (_la==WS) { + { + State = 650; Match(WS); + } + } + + State = 653; Match(T__1); + State = 655; + switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { + case 1: + { + State = 654; Match(WS); + } + break; + } + State = 657; valueStmt(0); + State = 666; + switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { + case 1: + { + State = 659; + _la = _input.La(1); + if (_la==WS) { + { + State = 658; Match(WS); + } + } + + State = 661; Match(T__1); + State = 663; + switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { + case 1: + { + State = 662; Match(WS); + } + break; + } + State = 665; valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DoLoopStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } + public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } + public DoLoopStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_doLoopStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterDoLoopStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitDoLoopStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitDoLoopStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DoLoopStmtContext doLoopStmt() { + DoLoopStmtContext _localctx = new DoLoopStmtContext(_ctx, State); + EnterRule(_localctx, 50, RULE_doLoopStmt); + int _la; + try { + State = 695; + switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 668; Match(DO); + State = 669; endOfStatement(); + State = 671; + switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { + case 1: + { + State = 670; block(); + } + break; + } + State = 673; Match(LOOP); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 675; Match(DO); + State = 676; Match(WS); + State = 677; + _la = _input.La(1); + if ( !(_la==UNTIL || _la==WHILE) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 678; Match(WS); + State = 679; valueStmt(0); + State = 680; endOfStatement(); + State = 682; + switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { + case 1: + { + State = 681; block(); + } + break; + } + State = 684; Match(LOOP); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 686; Match(DO); + State = 687; endOfStatement(); + State = 688; block(); + State = 689; Match(LOOP); + State = 690; Match(WS); + State = 691; + _la = _input.La(1); + if ( !(_la==UNTIL || _la==WHILE) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 692; Match(WS); + State = 693; valueStmt(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EndStmtContext : ParserRuleContext { + public ITerminalNode END() { return GetToken(VBAParser.END, 0); } + public EndStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_endStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterEndStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitEndStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitEndStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EndStmtContext endStmt() { + EndStmtContext _localctx = new EndStmtContext(_ctx, State); + EnterRule(_localctx, 52, RULE_endStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 697; Match(END); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EnumerationStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList enumerationStmt_Constant() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public EnumerationStmt_ConstantContext enumerationStmt_Constant(int i) { + return GetRuleContext(i); + } + public ITerminalNode ENUM() { return GetToken(VBAParser.ENUM, 0); } + public ITerminalNode END_ENUM() { return GetToken(VBAParser.END_ENUM, 0); } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public EnumerationStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_enumerationStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterEnumerationStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitEnumerationStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitEnumerationStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EnumerationStmtContext enumerationStmt() { + EnumerationStmtContext _localctx = new EnumerationStmtContext(_ctx, State); + EnterRule(_localctx, 54, RULE_enumerationStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 702; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 699; visibility(); + State = 700; Match(WS); + } + } + + State = 704; Match(ENUM); + State = 705; Match(WS); + State = 706; ambiguousIdentifier(); + State = 707; endOfStatement(); + State = 711; + _errHandler.Sync(this); + _la = _input.La(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==IDENTIFIER) { + { + { + State = 708; enumerationStmt_Constant(); + } + } + State = 713; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 714; Match(END_ENUM); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EnumerationStmt_ConstantContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public EnumerationStmt_ConstantContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_enumerationStmt_Constant; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterEnumerationStmt_Constant(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitEnumerationStmt_Constant(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitEnumerationStmt_Constant(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EnumerationStmt_ConstantContext enumerationStmt_Constant() { + EnumerationStmt_ConstantContext _localctx = new EnumerationStmt_ConstantContext(_ctx, State); + EnterRule(_localctx, 56, RULE_enumerationStmt_Constant); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 716; ambiguousIdentifier(); + State = 725; + switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { + case 1: + { + State = 718; + _la = _input.La(1); + if (_la==WS) { + { + State = 717; Match(WS); + } + } + + State = 720; Match(EQ); + State = 722; + switch ( Interpreter.AdaptivePredict(_input,63,_ctx) ) { + case 1: + { + State = 721; Match(WS); + } + break; + } + State = 724; valueStmt(0); + } + break; + } + State = 727; endOfStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EraseStmtContext : ParserRuleContext { + public ITerminalNode ERASE() { return GetToken(VBAParser.ERASE, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public EraseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eraseStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterEraseStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitEraseStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitEraseStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EraseStmtContext eraseStmt() { + EraseStmtContext _localctx = new EraseStmtContext(_ctx, State); + EnterRule(_localctx, 58, RULE_eraseStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 729; Match(ERASE); + State = 730; Match(WS); + State = 731; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ErrorStmtContext : ParserRuleContext { + public ITerminalNode ERROR() { return GetToken(VBAParser.ERROR, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ErrorStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_errorStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterErrorStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitErrorStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitErrorStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ErrorStmtContext errorStmt() { + ErrorStmtContext _localctx = new ErrorStmtContext(_ctx, State); + EnterRule(_localctx, 60, RULE_errorStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 733; Match(ERROR); + State = 734; Match(WS); + State = 735; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EventStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgListContext argList() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public ITerminalNode EVENT() { return GetToken(VBAParser.EVENT, 0); } + public EventStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eventStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterEventStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitEventStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitEventStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EventStmtContext eventStmt() { + EventStmtContext _localctx = new EventStmtContext(_ctx, State); + EnterRule(_localctx, 62, RULE_eventStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 740; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 737; visibility(); + State = 738; Match(WS); + } + } + + State = 742; Match(EVENT); + State = 743; Match(WS); + State = 744; ambiguousIdentifier(); + State = 746; + _la = _input.La(1); + if (_la==WS) { + { + State = 745; Match(WS); + } + } + + State = 748; argList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ExitStmtContext : ParserRuleContext { + public ITerminalNode EXIT_SUB() { return GetToken(VBAParser.EXIT_SUB, 0); } + public ITerminalNode EXIT_PROPERTY() { return GetToken(VBAParser.EXIT_PROPERTY, 0); } + public ITerminalNode EXIT_FUNCTION() { return GetToken(VBAParser.EXIT_FUNCTION, 0); } + public ITerminalNode EXIT_DO() { return GetToken(VBAParser.EXIT_DO, 0); } + public ITerminalNode EXIT_FOR() { return GetToken(VBAParser.EXIT_FOR, 0); } + public ExitStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_exitStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterExitStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitExitStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitExitStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ExitStmtContext exitStmt() { + ExitStmtContext _localctx = new ExitStmtContext(_ctx, State); + EnterRule(_localctx, 64, RULE_exitStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 750; + _la = _input.La(1); + if ( !(((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (EXIT_DO - 68)) | (1L << (EXIT_FOR - 68)) | (1L << (EXIT_FUNCTION - 68)) | (1L << (EXIT_PROPERTY - 68)) | (1L << (EXIT_SUB - 68)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FilecopyStmtContext : ParserRuleContext { + public ITerminalNode FILECOPY() { return GetToken(VBAParser.FILECOPY, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public FilecopyStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_filecopyStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterFilecopyStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitFilecopyStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitFilecopyStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public FilecopyStmtContext filecopyStmt() { + FilecopyStmtContext _localctx = new FilecopyStmtContext(_ctx, State); + EnterRule(_localctx, 66, RULE_filecopyStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 752; Match(FILECOPY); + State = 753; Match(WS); + State = 754; valueStmt(0); + State = 756; + _la = _input.La(1); + if (_la==WS) { + { + State = 755; Match(WS); + } + } + + State = 758; Match(T__1); + State = 760; + switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { + case 1: + { + State = 759; Match(WS); + } + break; + } + State = 762; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ForEachStmtContext : ParserRuleContext { + public IReadOnlyList ambiguousIdentifier() { + return GetRuleContexts(); + } + public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public AmbiguousIdentifierContext ambiguousIdentifier(int i) { + return GetRuleContext(i); + } + public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } + public ITerminalNode EACH() { return GetToken(VBAParser.EACH, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public ITerminalNode IN() { return GetToken(VBAParser.IN, 0); } + public ForEachStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_forEachStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterForEachStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitForEachStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitForEachStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ForEachStmtContext forEachStmt() { + ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); + EnterRule(_localctx, 68, RULE_forEachStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 764; Match(FOR); + State = 765; Match(WS); + State = 766; Match(EACH); + State = 767; Match(WS); + State = 768; ambiguousIdentifier(); + State = 770; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { + { + State = 769; typeHint(); + } + } + + State = 772; Match(WS); + State = 773; Match(IN); + State = 774; Match(WS); + State = 775; valueStmt(0); + State = 776; endOfStatement(); + State = 778; + switch ( Interpreter.AdaptivePredict(_input,70,_ctx) ) { + case 1: + { + State = 777; block(); + } + break; + } + State = 780; Match(NEXT); + State = 783; + switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { + case 1: + { + State = 781; Match(WS); + State = 782; ambiguousIdentifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ForNextStmtContext : ParserRuleContext { + public IReadOnlyList ambiguousIdentifier() { + return GetRuleContexts(); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public AmbiguousIdentifierContext ambiguousIdentifier(int i) { + return GetRuleContext(i); + } + public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ITerminalNode STEP() { return GetToken(VBAParser.STEP, 0); } + public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public ForNextStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_forNextStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterForNextStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitForNextStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitForNextStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ForNextStmtContext forNextStmt() { + ForNextStmtContext _localctx = new ForNextStmtContext(_ctx, State); + EnterRule(_localctx, 70, RULE_forNextStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 785; Match(FOR); + State = 786; Match(WS); + State = 787; ambiguousIdentifier(); + State = 789; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { + { + State = 788; typeHint(); + } + } + + State = 793; + switch ( Interpreter.AdaptivePredict(_input,73,_ctx) ) { + case 1: + { + State = 791; Match(WS); + State = 792; asTypeClause(); + } + break; + } + State = 796; + _la = _input.La(1); + if (_la==WS) { + { + State = 795; Match(WS); + } + } + + State = 798; Match(EQ); + State = 800; + switch ( Interpreter.AdaptivePredict(_input,75,_ctx) ) { + case 1: + { + State = 799; Match(WS); + } + break; + } + State = 802; valueStmt(0); + State = 803; Match(WS); + State = 804; Match(TO); + State = 805; Match(WS); + State = 806; valueStmt(0); + State = 811; + switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { + case 1: + { + State = 807; Match(WS); + State = 808; Match(STEP); + State = 809; Match(WS); + State = 810; valueStmt(0); + } + break; + } + State = 813; endOfStatement(); + State = 815; + switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { + case 1: + { + State = 814; block(); + } + break; + } + State = 817; Match(NEXT); + State = 820; + switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { + case 1: + { + State = 818; Match(WS); + State = 819; ambiguousIdentifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FunctionStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgListContext argList() { + return GetRuleContext(0); + } + public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode END_FUNCTION() { return GetToken(VBAParser.END_FUNCTION, 0); } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public FunctionStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_functionStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterFunctionStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitFunctionStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitFunctionStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public FunctionStmtContext functionStmt() { + FunctionStmtContext _localctx = new FunctionStmtContext(_ctx, State); + EnterRule(_localctx, 72, RULE_functionStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 825; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 822; visibility(); + State = 823; Match(WS); + } + } + + State = 829; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 827; Match(STATIC); + State = 828; Match(WS); + } + } + + State = 831; Match(FUNCTION); + State = 833; + _la = _input.La(1); + if (_la==WS) { + { + State = 832; Match(WS); + } + } + + State = 835; ambiguousIdentifier(); + State = 837; + switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { + case 1: + { + State = 836; typeHint(); + } + break; + } + State = 843; + switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { + case 1: + { + State = 840; + _la = _input.La(1); + if (_la==WS) { + { + State = 839; Match(WS); + } + } + + State = 842; argList(); + } + break; + } + State = 849; + switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { + case 1: + { + State = 846; + _la = _input.La(1); + if (_la==WS) { + { + State = 845; Match(WS); + } + } + + State = 848; asTypeClause(); + } + break; + } + State = 851; endOfStatement(); + State = 853; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 852; block(); + } + } + + State = 855; Match(END_FUNCTION); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class GetStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public ITerminalNode GET() { return GetToken(VBAParser.GET, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public GetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_getStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterGetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitGetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitGetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public GetStmtContext getStmt() { + GetStmtContext _localctx = new GetStmtContext(_ctx, State); + EnterRule(_localctx, 74, RULE_getStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 857; Match(GET); + State = 858; Match(WS); + State = 859; fileNumber(); + State = 861; + _la = _input.La(1); + if (_la==WS) { + { + State = 860; Match(WS); + } + } + + State = 863; Match(T__1); + State = 865; + switch ( Interpreter.AdaptivePredict(_input,89,_ctx) ) { + case 1: + { + State = 864; Match(WS); + } + break; + } + State = 868; + switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { + case 1: + { + State = 867; valueStmt(0); + } + break; + } + State = 871; + _la = _input.La(1); + if (_la==WS) { + { + State = 870; Match(WS); + } + } + + State = 873; Match(T__1); + State = 875; + switch ( Interpreter.AdaptivePredict(_input,92,_ctx) ) { + case 1: + { + State = 874; Match(WS); + } + break; + } + State = 877; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class GoSubStmtContext : ParserRuleContext { + public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public GoSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_goSubStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterGoSubStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitGoSubStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitGoSubStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public GoSubStmtContext goSubStmt() { + GoSubStmtContext _localctx = new GoSubStmtContext(_ctx, State); + EnterRule(_localctx, 76, RULE_goSubStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 879; Match(GOSUB); + State = 880; Match(WS); + State = 881; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class GoToStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } + public GoToStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_goToStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterGoToStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitGoToStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitGoToStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public GoToStmtContext goToStmt() { + GoToStmtContext _localctx = new GoToStmtContext(_ctx, State); + EnterRule(_localctx, 78, RULE_goToStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 883; Match(GOTO); + State = 884; Match(WS); + State = 885; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfThenElseStmtContext : ParserRuleContext { + public IfThenElseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifThenElseStmt; } } + + public IfThenElseStmtContext() { } + public virtual void CopyFrom(IfThenElseStmtContext context) { + base.CopyFrom(context); + } + } + public partial class BlockIfThenElseContext : IfThenElseStmtContext { + public IfElseIfBlockStmtContext ifElseIfBlockStmt(int i) { + return GetRuleContext(i); + } + public ITerminalNode END_IF() { return GetToken(VBAParser.END_IF, 0); } + public IReadOnlyList ifElseIfBlockStmt() { + return GetRuleContexts(); + } + public IfBlockStmtContext ifBlockStmt() { + return GetRuleContext(0); + } + public IfElseBlockStmtContext ifElseBlockStmt() { + return GetRuleContext(0); + } + public BlockIfThenElseContext(IfThenElseStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterBlockIfThenElse(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitBlockIfThenElse(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitBlockIfThenElse(this); + else return visitor.VisitChildren(this); + } + } + public partial class InlineIfThenElseContext : IfThenElseStmtContext { + public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } + public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList blockStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } + public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + public BlockStmtContext blockStmt(int i) { + return GetRuleContext(i); + } + public InlineIfThenElseContext(IfThenElseStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterInlineIfThenElse(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitInlineIfThenElse(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitInlineIfThenElse(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfThenElseStmtContext ifThenElseStmt() { + IfThenElseStmtContext _localctx = new IfThenElseStmtContext(_ctx, State); + EnterRule(_localctx, 80, RULE_ifThenElseStmt); + int _la; + try { + State = 912; + switch ( Interpreter.AdaptivePredict(_input,96,_ctx) ) { + case 1: + _localctx = new InlineIfThenElseContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 887; Match(IF); + State = 888; Match(WS); + State = 889; ifConditionStmt(); + State = 890; Match(WS); + State = 891; Match(THEN); + State = 892; Match(WS); + State = 893; blockStmt(); + State = 898; + switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { + case 1: + { + State = 894; Match(WS); + State = 895; Match(ELSE); + State = 896; Match(WS); + State = 897; blockStmt(); + } + break; + } + } + break; + + case 2: + _localctx = new BlockIfThenElseContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 900; ifBlockStmt(); + State = 904; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==ELSEIF) { + { + { + State = 901; ifElseIfBlockStmt(); + } + } + State = 906; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 908; + _la = _input.La(1); + if (_la==ELSE) { + { + State = 907; ifElseBlockStmt(); + } + } + + State = 910; Match(END_IF); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfBlockStmtContext : ParserRuleContext { + public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } + public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public IfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifBlockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterIfBlockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitIfBlockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfBlockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfBlockStmtContext ifBlockStmt() { + IfBlockStmtContext _localctx = new IfBlockStmtContext(_ctx, State); + EnterRule(_localctx, 82, RULE_ifBlockStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 914; Match(IF); + State = 915; Match(WS); + State = 916; ifConditionStmt(); + State = 917; Match(WS); + State = 918; Match(THEN); + State = 919; endOfStatement(); + State = 921; + switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { + case 1: + { + State = 920; block(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfConditionStmtContext : ParserRuleContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IfConditionStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifConditionStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterIfConditionStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitIfConditionStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfConditionStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfConditionStmtContext ifConditionStmt() { + IfConditionStmtContext _localctx = new IfConditionStmtContext(_ctx, State); + EnterRule(_localctx, 84, RULE_ifConditionStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 923; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfElseIfBlockStmtContext : ParserRuleContext { + public ITerminalNode ELSEIF() { return GetToken(VBAParser.ELSEIF, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } + public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public IfElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifElseIfBlockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterIfElseIfBlockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitIfElseIfBlockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfElseIfBlockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfElseIfBlockStmtContext ifElseIfBlockStmt() { + IfElseIfBlockStmtContext _localctx = new IfElseIfBlockStmtContext(_ctx, State); + EnterRule(_localctx, 86, RULE_ifElseIfBlockStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 925; Match(ELSEIF); + State = 926; Match(WS); + State = 927; ifConditionStmt(); + State = 928; Match(WS); + State = 929; Match(THEN); + State = 930; endOfStatement(); + State = 932; + switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { + case 1: + { + State = 931; block(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfElseBlockStmtContext : ParserRuleContext { + public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public IfElseBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifElseBlockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterIfElseBlockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitIfElseBlockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitIfElseBlockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public IfElseBlockStmtContext ifElseBlockStmt() { + IfElseBlockStmtContext _localctx = new IfElseBlockStmtContext(_ctx, State); + EnterRule(_localctx, 88, RULE_ifElseBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 934; Match(ELSE); + State = 935; endOfStatement(); + State = 937; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 936; block(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ImplementsStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode IMPLEMENTS() { return GetToken(VBAParser.IMPLEMENTS, 0); } + public ImplementsStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_implementsStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterImplementsStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitImplementsStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitImplementsStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ImplementsStmtContext implementsStmt() { + ImplementsStmtContext _localctx = new ImplementsStmtContext(_ctx, State); + EnterRule(_localctx, 90, RULE_implementsStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 939; Match(IMPLEMENTS); + State = 940; Match(WS); + State = 941; ambiguousIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InputStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public InputStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_inputStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterInputStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitInputStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitInputStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public InputStmtContext inputStmt() { + InputStmtContext _localctx = new InputStmtContext(_ctx, State); + EnterRule(_localctx, 92, RULE_inputStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 943; Match(INPUT); + State = 944; Match(WS); + State = 945; fileNumber(); + State = 954; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 947; + _la = _input.La(1); + if (_la==WS) { + { + State = 946; Match(WS); + } + } + + State = 949; Match(T__1); + State = 951; + switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { + case 1: + { + State = 950; Match(WS); + } + break; + } + State = 953; valueStmt(0); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 956; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,102,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class KillStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode KILL() { return GetToken(VBAParser.KILL, 0); } + public KillStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_killStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterKillStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitKillStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitKillStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public KillStmtContext killStmt() { + KillStmtContext _localctx = new KillStmtContext(_ctx, State); + EnterRule(_localctx, 94, RULE_killStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 958; Match(KILL); + State = 959; Match(WS); + State = 960; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LetStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } + public LetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_letStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LetStmtContext letStmt() { + LetStmtContext _localctx = new LetStmtContext(_ctx, State); + EnterRule(_localctx, 96, RULE_letStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 964; + switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { + case 1: + { + State = 962; Match(LET); + State = 963; Match(WS); + } + break; + } + State = 966; implicitCallStmt_InStmt(); + State = 968; + _la = _input.La(1); + if (_la==WS) { + { + State = 967; Match(WS); + } + } + + State = 970; Match(EQ); + State = 972; + switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { + case 1: + { + State = 971; Match(WS); + } + break; + } + State = 974; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LineInputStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public ITerminalNode LINE_INPUT() { return GetToken(VBAParser.LINE_INPUT, 0); } + public LineInputStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lineInputStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLineInputStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLineInputStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLineInputStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LineInputStmtContext lineInputStmt() { + LineInputStmtContext _localctx = new LineInputStmtContext(_ctx, State); + EnterRule(_localctx, 98, RULE_lineInputStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 976; Match(LINE_INPUT); + State = 977; Match(WS); + State = 978; fileNumber(); + State = 980; + _la = _input.La(1); + if (_la==WS) { + { + State = 979; Match(WS); + } + } + + State = 982; Match(T__1); + State = 984; + switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { + case 1: + { + State = 983; Match(WS); + } + break; + } + State = 986; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LoadStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode LOAD() { return GetToken(VBAParser.LOAD, 0); } + public LoadStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_loadStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLoadStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLoadStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLoadStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LoadStmtContext loadStmt() { + LoadStmtContext _localctx = new LoadStmtContext(_ctx, State); + EnterRule(_localctx, 100, RULE_loadStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 988; Match(LOAD); + State = 989; Match(WS); + State = 990; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LockStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public LockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LockStmtContext lockStmt() { + LockStmtContext _localctx = new LockStmtContext(_ctx, State); + EnterRule(_localctx, 102, RULE_lockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 992; Match(LOCK); + State = 993; Match(WS); + State = 994; valueStmt(0); + State = 1009; + switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { + case 1: + { + State = 996; + _la = _input.La(1); + if (_la==WS) { + { + State = 995; Match(WS); + } + } + + State = 998; Match(T__1); + State = 1000; + switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { + case 1: + { + State = 999; Match(WS); + } + break; + } + State = 1002; valueStmt(0); + State = 1007; + switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { + case 1: + { + State = 1003; Match(WS); + State = 1004; Match(TO); + State = 1005; Match(WS); + State = 1006; valueStmt(0); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LsetStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public LsetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lsetStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLsetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLsetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLsetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LsetStmtContext lsetStmt() { + LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); + EnterRule(_localctx, 104, RULE_lsetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1011; Match(LSET); + State = 1012; Match(WS); + State = 1013; implicitCallStmt_InStmt(); + State = 1015; + _la = _input.La(1); + if (_la==WS) { + { + State = 1014; Match(WS); + } + } + + State = 1017; Match(EQ); + State = 1019; + switch ( Interpreter.AdaptivePredict(_input,113,_ctx) ) { + case 1: + { + State = 1018; Match(WS); + } + break; + } + State = 1021; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MidStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public ITerminalNode MID() { return GetToken(VBAParser.MID, 0); } + public MidStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_midStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterMidStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitMidStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitMidStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MidStmtContext midStmt() { + MidStmtContext _localctx = new MidStmtContext(_ctx, State); + EnterRule(_localctx, 106, RULE_midStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1023; Match(MID); + State = 1025; + _la = _input.La(1); + if (_la==WS) { + { + State = 1024; Match(WS); + } + } + + State = 1027; Match(LPAREN); + State = 1029; + switch ( Interpreter.AdaptivePredict(_input,115,_ctx) ) { + case 1: + { + State = 1028; Match(WS); + } + break; + } + State = 1031; argsCall(); + State = 1033; + _la = _input.La(1); + if (_la==WS) { + { + State = 1032; Match(WS); + } + } + + State = 1035; Match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MkdirStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode MKDIR() { return GetToken(VBAParser.MKDIR, 0); } + public MkdirStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_mkdirStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterMkdirStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitMkdirStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitMkdirStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MkdirStmtContext mkdirStmt() { + MkdirStmtContext _localctx = new MkdirStmtContext(_ctx, State); + EnterRule(_localctx, 108, RULE_mkdirStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1037; Match(MKDIR); + State = 1038; Match(WS); + State = 1039; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NameStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode NAME() { return GetToken(VBAParser.NAME, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } + public NameStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_nameStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterNameStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitNameStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitNameStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public NameStmtContext nameStmt() { + NameStmtContext _localctx = new NameStmtContext(_ctx, State); + EnterRule(_localctx, 110, RULE_nameStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1041; Match(NAME); + State = 1042; Match(WS); + State = 1043; valueStmt(0); + State = 1044; Match(WS); + State = 1045; Match(AS); + State = 1046; Match(WS); + State = 1047; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OnErrorStmtContext : ParserRuleContext { + public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode ON_ERROR() { return GetToken(VBAParser.ON_ERROR, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } + public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } + public ITerminalNode ON_LOCAL_ERROR() { return GetToken(VBAParser.ON_LOCAL_ERROR, 0); } + public OnErrorStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_onErrorStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOnErrorStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOnErrorStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOnErrorStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public OnErrorStmtContext onErrorStmt() { + OnErrorStmtContext _localctx = new OnErrorStmtContext(_ctx, State); + EnterRule(_localctx, 112, RULE_onErrorStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1049; + _la = _input.La(1); + if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1050; Match(WS); + State = 1057; + switch (_input.La(1)) { + case GOTO: + { + State = 1051; Match(GOTO); + State = 1052; Match(WS); + State = 1053; valueStmt(0); + } + break; + case RESUME: + { + State = 1054; Match(RESUME); + State = 1055; Match(WS); + State = 1056; Match(NEXT); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OnGoToStmtContext : ParserRuleContext { + public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public OnGoToStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_onGoToStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOnGoToStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOnGoToStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOnGoToStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public OnGoToStmtContext onGoToStmt() { + OnGoToStmtContext _localctx = new OnGoToStmtContext(_ctx, State); + EnterRule(_localctx, 114, RULE_onGoToStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1059; Match(ON); + State = 1060; Match(WS); + State = 1061; valueStmt(0); + State = 1062; Match(WS); + State = 1063; Match(GOTO); + State = 1064; Match(WS); + State = 1065; valueStmt(0); + State = 1076; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,120,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1067; + _la = _input.La(1); + if (_la==WS) { + { + State = 1066; Match(WS); + } + } + + State = 1069; Match(T__1); + State = 1071; + switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { + case 1: + { + State = 1070; Match(WS); + } + break; + } + State = 1073; valueStmt(0); + } + } + } + State = 1078; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,120,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OnGoSubStmtContext : ParserRuleContext { + public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public OnGoSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_onGoSubStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOnGoSubStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOnGoSubStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOnGoSubStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public OnGoSubStmtContext onGoSubStmt() { + OnGoSubStmtContext _localctx = new OnGoSubStmtContext(_ctx, State); + EnterRule(_localctx, 116, RULE_onGoSubStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1079; Match(ON); + State = 1080; Match(WS); + State = 1081; valueStmt(0); + State = 1082; Match(WS); + State = 1083; Match(GOSUB); + State = 1084; Match(WS); + State = 1085; valueStmt(0); + State = 1096; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,123,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1087; + _la = _input.La(1); + if (_la==WS) { + { + State = 1086; Match(WS); + } + } + + State = 1089; Match(T__1); + State = 1091; + switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { + case 1: + { + State = 1090; Match(WS); + } + break; + } + State = 1093; valueStmt(0); + } + } + } + State = 1098; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,123,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OpenStmtContext : ParserRuleContext { + public ITerminalNode LOCK_WRITE() { return GetToken(VBAParser.LOCK_WRITE, 0); } + public ITerminalNode ACCESS() { return GetToken(VBAParser.ACCESS, 0); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode LOCK_READ_WRITE() { return GetToken(VBAParser.LOCK_READ_WRITE, 0); } + public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } + public ITerminalNode WRITE() { return GetToken(VBAParser.WRITE, 0); } + public ITerminalNode LEN() { return GetToken(VBAParser.LEN, 0); } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } + public ITerminalNode READ() { return GetToken(VBAParser.READ, 0); } + public ITerminalNode SHARED() { return GetToken(VBAParser.SHARED, 0); } + public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } + public ITerminalNode APPEND() { return GetToken(VBAParser.APPEND, 0); } + public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } + public ITerminalNode RANDOM() { return GetToken(VBAParser.RANDOM, 0); } + public ITerminalNode OPEN() { return GetToken(VBAParser.OPEN, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LOCK_READ() { return GetToken(VBAParser.LOCK_READ, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode OUTPUT() { return GetToken(VBAParser.OUTPUT, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ITerminalNode READ_WRITE() { return GetToken(VBAParser.READ_WRITE, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public OpenStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_openStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOpenStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOpenStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOpenStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public OpenStmtContext openStmt() { + OpenStmtContext _localctx = new OpenStmtContext(_ctx, State); + EnterRule(_localctx, 118, RULE_openStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1099; Match(OPEN); + State = 1100; Match(WS); + State = 1101; valueStmt(0); + State = 1102; Match(WS); + State = 1103; Match(FOR); + State = 1104; Match(WS); + State = 1105; + _la = _input.La(1); + if ( !(_la==APPEND || _la==BINARY || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (INPUT - 86)) | (1L << (OUTPUT - 86)) | (1L << (RANDOM - 86)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1110; + switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { + case 1: + { + State = 1106; Match(WS); + State = 1107; Match(ACCESS); + State = 1108; Match(WS); + State = 1109; + _la = _input.La(1); + if ( !(((((_la - 137)) & ~0x3f) == 0 && ((1L << (_la - 137)) & ((1L << (READ - 137)) | (1L << (READ_WRITE - 137)) | (1L << (WRITE - 137)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + break; + } + State = 1114; + switch ( Interpreter.AdaptivePredict(_input,125,_ctx) ) { + case 1: + { + State = 1112; Match(WS); + State = 1113; + _la = _input.La(1); + if ( !(((((_la - 99)) & ~0x3f) == 0 && ((1L << (_la - 99)) & ((1L << (LOCK_READ - 99)) | (1L << (LOCK_WRITE - 99)) | (1L << (LOCK_READ_WRITE - 99)) | (1L << (SHARED - 99)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + break; + } + State = 1116; Match(WS); + State = 1117; Match(AS); + State = 1118; Match(WS); + State = 1119; fileNumber(); + State = 1130; + switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { + case 1: + { + State = 1120; Match(WS); + State = 1121; Match(LEN); + State = 1123; + _la = _input.La(1); + if (_la==WS) { + { + State = 1122; Match(WS); + } + } + + State = 1125; Match(EQ); + State = 1127; + switch ( Interpreter.AdaptivePredict(_input,127,_ctx) ) { + case 1: + { + State = 1126; Match(WS); + } + break; + } + State = 1129; valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OutputListContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList outputList_Expression() { + return GetRuleContexts(); + } + public OutputList_ExpressionContext outputList_Expression(int i) { + return GetRuleContext(i); + } + public OutputListContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_outputList; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOutputList(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOutputList(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOutputList(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public OutputListContext outputList() { + OutputListContext _localctx = new OutputListContext(_ctx, State); + EnterRule(_localctx, 120, RULE_outputList); + int _la; + try { + int _alt; + State = 1165; + switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1132; outputList_Expression(); + State = 1145; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1134; + _la = _input.La(1); + if (_la==WS) { + { + State = 1133; Match(WS); + } + } + + State = 1136; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1138; + switch ( Interpreter.AdaptivePredict(_input,130,_ctx) ) { + case 1: + { + State = 1137; Match(WS); + } + break; + } + State = 1141; + switch ( Interpreter.AdaptivePredict(_input,131,_ctx) ) { + case 1: + { + State = 1140; outputList_Expression(); + } + break; + } + } + } + } + State = 1147; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + } + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1149; + switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { + case 1: + { + State = 1148; outputList_Expression(); + } + break; + } + State = 1161; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1152; + _la = _input.La(1); + if (_la==WS) { + { + State = 1151; Match(WS); + } + } + + State = 1154; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1156; + switch ( Interpreter.AdaptivePredict(_input,135,_ctx) ) { + case 1: + { + State = 1155; Match(WS); + } + break; + } + State = 1159; + switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { + case 1: + { + State = 1158; outputList_Expression(); + } + break; + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1163; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,137,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OutputList_ExpressionContext : ParserRuleContext { + public ITerminalNode TAB() { return GetToken(VBAParser.TAB, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode SPC() { return GetToken(VBAParser.SPC, 0); } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public OutputList_ExpressionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_outputList_Expression; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterOutputList_Expression(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitOutputList_Expression(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitOutputList_Expression(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public OutputList_ExpressionContext outputList_Expression() { + OutputList_ExpressionContext _localctx = new OutputList_ExpressionContext(_ctx, State); + EnterRule(_localctx, 122, RULE_outputList_Expression); + int _la; + try { + State = 1184; + switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1167; valueStmt(0); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1168; + _la = _input.La(1); + if ( !(_la==SPC || _la==TAB) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1182; + switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { + case 1: + { + State = 1170; + _la = _input.La(1); + if (_la==WS) { + { + State = 1169; Match(WS); + } + } + + State = 1172; Match(LPAREN); + State = 1174; + switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { + case 1: + { + State = 1173; Match(WS); + } + break; + } + State = 1176; argsCall(); + State = 1178; + _la = _input.La(1); + if (_la==WS) { + { + State = 1177; Match(WS); + } + } + + State = 1180; Match(RPAREN); + } + break; + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PrintStmtContext : ParserRuleContext { + public ITerminalNode PRINT() { return GetToken(VBAParser.PRINT, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public OutputListContext outputList() { + return GetRuleContext(0); + } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public PrintStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_printStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterPrintStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitPrintStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitPrintStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public PrintStmtContext printStmt() { + PrintStmtContext _localctx = new PrintStmtContext(_ctx, State); + EnterRule(_localctx, 124, RULE_printStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1186; Match(PRINT); + State = 1187; Match(WS); + State = 1188; fileNumber(); + State = 1190; + _la = _input.La(1); + if (_la==WS) { + { + State = 1189; Match(WS); + } + } + + State = 1192; Match(T__1); + State = 1197; + switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { + case 1: + { + State = 1194; + switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { + case 1: + { + State = 1193; Match(WS); + } + break; + } + State = 1196; outputList(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PropertyGetStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgListContext argList() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public ITerminalNode PROPERTY_GET() { return GetToken(VBAParser.PROPERTY_GET, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public ITerminalNode END_PROPERTY() { return GetToken(VBAParser.END_PROPERTY, 0); } + public PropertyGetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_propertyGetStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterPropertyGetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitPropertyGetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitPropertyGetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public PropertyGetStmtContext propertyGetStmt() { + PropertyGetStmtContext _localctx = new PropertyGetStmtContext(_ctx, State); + EnterRule(_localctx, 126, RULE_propertyGetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1202; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 1199; visibility(); + State = 1200; Match(WS); + } + } + + State = 1206; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1204; Match(STATIC); + State = 1205; Match(WS); + } + } + + State = 1208; Match(PROPERTY_GET); + State = 1209; Match(WS); + State = 1210; ambiguousIdentifier(); + State = 1212; + switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { + case 1: + { + State = 1211; typeHint(); + } + break; + } + State = 1218; + switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { + case 1: + { + State = 1215; + _la = _input.La(1); + if (_la==WS) { + { + State = 1214; Match(WS); + } + } + + State = 1217; argList(); + } + break; + } + State = 1222; + switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { + case 1: + { + State = 1220; Match(WS); + State = 1221; asTypeClause(); + } + break; + } + State = 1224; endOfStatement(); + State = 1226; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 1225; block(); + } + } + + State = 1228; Match(END_PROPERTY); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PropertySetStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgListContext argList() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public ITerminalNode PROPERTY_SET() { return GetToken(VBAParser.PROPERTY_SET, 0); } + public ITerminalNode END_PROPERTY() { return GetToken(VBAParser.END_PROPERTY, 0); } + public PropertySetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_propertySetStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterPropertySetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitPropertySetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitPropertySetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public PropertySetStmtContext propertySetStmt() { + PropertySetStmtContext _localctx = new PropertySetStmtContext(_ctx, State); + EnterRule(_localctx, 128, RULE_propertySetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1233; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 1230; visibility(); + State = 1231; Match(WS); + } + } + + State = 1237; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1235; Match(STATIC); + State = 1236; Match(WS); + } + } + + State = 1239; Match(PROPERTY_SET); + State = 1240; Match(WS); + State = 1241; ambiguousIdentifier(); + State = 1246; + switch ( Interpreter.AdaptivePredict(_input,157,_ctx) ) { + case 1: + { + State = 1243; + _la = _input.La(1); + if (_la==WS) { + { + State = 1242; Match(WS); + } + } + + State = 1245; argList(); + } + break; + } + State = 1248; endOfStatement(); + State = 1250; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 1249; block(); + } + } + + State = 1252; Match(END_PROPERTY); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PropertyLetStmtContext : ParserRuleContext { + public ITerminalNode PROPERTY_LET() { return GetToken(VBAParser.PROPERTY_LET, 0); } + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgListContext argList() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public ITerminalNode END_PROPERTY() { return GetToken(VBAParser.END_PROPERTY, 0); } + public PropertyLetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_propertyLetStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterPropertyLetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitPropertyLetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitPropertyLetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public PropertyLetStmtContext propertyLetStmt() { + PropertyLetStmtContext _localctx = new PropertyLetStmtContext(_ctx, State); + EnterRule(_localctx, 130, RULE_propertyLetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1257; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 1254; visibility(); + State = 1255; Match(WS); + } + } + + State = 1261; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1259; Match(STATIC); + State = 1260; Match(WS); + } + } + + State = 1263; Match(PROPERTY_LET); + State = 1264; Match(WS); + State = 1265; ambiguousIdentifier(); + State = 1270; + switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { + case 1: + { + State = 1267; + _la = _input.La(1); + if (_la==WS) { + { + State = 1266; Match(WS); + } + } + + State = 1269; argList(); + } + break; + } + State = 1272; endOfStatement(); + State = 1274; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 1273; block(); + } + } + + State = 1276; Match(END_PROPERTY); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PutStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public ITerminalNode PUT() { return GetToken(VBAParser.PUT, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public PutStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_putStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterPutStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitPutStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitPutStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public PutStmtContext putStmt() { + PutStmtContext _localctx = new PutStmtContext(_ctx, State); + EnterRule(_localctx, 132, RULE_putStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1278; Match(PUT); + State = 1279; Match(WS); + State = 1280; fileNumber(); + State = 1282; + _la = _input.La(1); + if (_la==WS) { + { + State = 1281; Match(WS); + } + } + + State = 1284; Match(T__1); + State = 1286; + switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { + case 1: + { + State = 1285; Match(WS); + } + break; + } + State = 1289; + switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { + case 1: + { + State = 1288; valueStmt(0); + } + break; + } + State = 1292; + _la = _input.La(1); + if (_la==WS) { + { + State = 1291; Match(WS); + } + } + + State = 1294; Match(T__1); + State = 1296; + switch ( Interpreter.AdaptivePredict(_input,168,_ctx) ) { + case 1: + { + State = 1295; Match(WS); + } + break; + } + State = 1298; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RaiseEventStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public ITerminalNode RAISEEVENT() { return GetToken(VBAParser.RAISEEVENT, 0); } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public RaiseEventStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_raiseEventStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterRaiseEventStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitRaiseEventStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitRaiseEventStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public RaiseEventStmtContext raiseEventStmt() { + RaiseEventStmtContext _localctx = new RaiseEventStmtContext(_ctx, State); + EnterRule(_localctx, 134, RULE_raiseEventStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1300; Match(RAISEEVENT); + State = 1301; Match(WS); + State = 1302; ambiguousIdentifier(); + State = 1317; + switch ( Interpreter.AdaptivePredict(_input,173,_ctx) ) { + case 1: + { + State = 1304; + _la = _input.La(1); + if (_la==WS) { + { + State = 1303; Match(WS); + } + } + + State = 1306; Match(LPAREN); + State = 1308; + switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { + case 1: + { + State = 1307; Match(WS); + } + break; + } + State = 1314; + switch ( Interpreter.AdaptivePredict(_input,172,_ctx) ) { + case 1: + { + State = 1310; argsCall(); + State = 1312; + _la = _input.La(1); + if (_la==WS) { + { + State = 1311; Match(WS); + } + } + + } + break; + } + State = 1316; Match(RPAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RandomizeStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode RANDOMIZE() { return GetToken(VBAParser.RANDOMIZE, 0); } + public RandomizeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_randomizeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterRandomizeStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitRandomizeStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitRandomizeStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public RandomizeStmtContext randomizeStmt() { + RandomizeStmtContext _localctx = new RandomizeStmtContext(_ctx, State); + EnterRule(_localctx, 136, RULE_randomizeStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1319; Match(RANDOMIZE); + State = 1322; + switch ( Interpreter.AdaptivePredict(_input,174,_ctx) ) { + case 1: + { + State = 1320; Match(WS); + State = 1321; valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RedimStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList redimSubStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode REDIM() { return GetToken(VBAParser.REDIM, 0); } + public ITerminalNode PRESERVE() { return GetToken(VBAParser.PRESERVE, 0); } + public RedimSubStmtContext redimSubStmt(int i) { + return GetRuleContext(i); + } + public RedimStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_redimStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterRedimStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitRedimStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitRedimStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public RedimStmtContext redimStmt() { + RedimStmtContext _localctx = new RedimStmtContext(_ctx, State); + EnterRule(_localctx, 138, RULE_redimStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1324; Match(REDIM); + State = 1325; Match(WS); + State = 1328; + switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { + case 1: + { + State = 1326; Match(PRESERVE); + State = 1327; Match(WS); + } + break; + } + State = 1330; redimSubStmt(); + State = 1341; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,178,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1332; + _la = _input.La(1); + if (_la==WS) { + { + State = 1331; Match(WS); + } + } + + State = 1334; Match(T__1); + State = 1336; + switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { + case 1: + { + State = 1335; Match(WS); + } + break; + } + State = 1338; redimSubStmt(); + } + } + } + State = 1343; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,178,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RedimSubStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public SubscriptsContext subscripts() { + return GetRuleContext(0); + } + public RedimSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_redimSubStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterRedimSubStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitRedimSubStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitRedimSubStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public RedimSubStmtContext redimSubStmt() { + RedimSubStmtContext _localctx = new RedimSubStmtContext(_ctx, State); + EnterRule(_localctx, 140, RULE_redimSubStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1344; implicitCallStmt_InStmt(); + State = 1346; + _la = _input.La(1); + if (_la==WS) { + { + State = 1345; Match(WS); + } + } + + State = 1348; Match(LPAREN); + State = 1350; + switch ( Interpreter.AdaptivePredict(_input,180,_ctx) ) { + case 1: + { + State = 1349; Match(WS); + } + break; + } + State = 1352; subscripts(); + State = 1354; + _la = _input.La(1); + if (_la==WS) { + { + State = 1353; Match(WS); + } + } + + State = 1356; Match(RPAREN); + State = 1359; + switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { + case 1: + { + State = 1357; Match(WS); + State = 1358; asTypeClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ResetStmtContext : ParserRuleContext { + public ITerminalNode RESET() { return GetToken(VBAParser.RESET, 0); } + public ResetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_resetStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterResetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitResetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitResetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ResetStmtContext resetStmt() { + ResetStmtContext _localctx = new ResetStmtContext(_ctx, State); + EnterRule(_localctx, 142, RULE_resetStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1361; Match(RESET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ResumeStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } + public ResumeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_resumeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterResumeStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitResumeStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitResumeStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ResumeStmtContext resumeStmt() { + ResumeStmtContext _localctx = new ResumeStmtContext(_ctx, State); + EnterRule(_localctx, 144, RULE_resumeStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1363; Match(RESUME); + State = 1369; + switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { + case 1: + { + State = 1364; Match(WS); + State = 1367; + switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { + case 1: + { + State = 1365; Match(NEXT); + } + break; + + case 2: + { + State = 1366; ambiguousIdentifier(); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ReturnStmtContext : ParserRuleContext { + public ITerminalNode RETURN() { return GetToken(VBAParser.RETURN, 0); } + public ReturnStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_returnStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterReturnStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitReturnStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitReturnStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ReturnStmtContext returnStmt() { + ReturnStmtContext _localctx = new ReturnStmtContext(_ctx, State); + EnterRule(_localctx, 146, RULE_returnStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1371; Match(RETURN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RmdirStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } + public RmdirStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_rmdirStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterRmdirStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitRmdirStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitRmdirStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public RmdirStmtContext rmdirStmt() { + RmdirStmtContext _localctx = new RmdirStmtContext(_ctx, State); + EnterRule(_localctx, 148, RULE_rmdirStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1373; Match(RMDIR); + State = 1374; Match(WS); + State = 1375; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RsetStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode RSET() { return GetToken(VBAParser.RSET, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public RsetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_rsetStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterRsetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitRsetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitRsetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public RsetStmtContext rsetStmt() { + RsetStmtContext _localctx = new RsetStmtContext(_ctx, State); + EnterRule(_localctx, 150, RULE_rsetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1377; Match(RSET); + State = 1378; Match(WS); + State = 1379; implicitCallStmt_InStmt(); + State = 1381; + _la = _input.La(1); + if (_la==WS) { + { + State = 1380; Match(WS); + } + } + + State = 1383; Match(EQ); + State = 1385; + switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { + case 1: + { + State = 1384; Match(WS); + } + break; + } + State = 1387; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SavepictureStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode SAVEPICTURE() { return GetToken(VBAParser.SAVEPICTURE, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public SavepictureStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_savepictureStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSavepictureStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSavepictureStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSavepictureStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SavepictureStmtContext savepictureStmt() { + SavepictureStmtContext _localctx = new SavepictureStmtContext(_ctx, State); + EnterRule(_localctx, 152, RULE_savepictureStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1389; Match(SAVEPICTURE); + State = 1390; Match(WS); + State = 1391; valueStmt(0); + State = 1393; + _la = _input.La(1); + if (_la==WS) { + { + State = 1392; Match(WS); + } + } + + State = 1395; Match(T__1); + State = 1397; + switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { + case 1: + { + State = 1396; Match(WS); + } + break; + } + State = 1399; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SaveSettingStmtContext : ParserRuleContext { + public ITerminalNode SAVESETTING() { return GetToken(VBAParser.SAVESETTING, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public SaveSettingStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_saveSettingStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSaveSettingStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSaveSettingStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSaveSettingStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SaveSettingStmtContext saveSettingStmt() { + SaveSettingStmtContext _localctx = new SaveSettingStmtContext(_ctx, State); + EnterRule(_localctx, 154, RULE_saveSettingStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1401; Match(SAVESETTING); + State = 1402; Match(WS); + State = 1403; valueStmt(0); + State = 1405; + _la = _input.La(1); + if (_la==WS) { + { + State = 1404; Match(WS); + } + } + + State = 1407; Match(T__1); + State = 1409; + switch ( Interpreter.AdaptivePredict(_input,190,_ctx) ) { + case 1: + { + State = 1408; Match(WS); + } + break; + } + State = 1411; valueStmt(0); + State = 1413; + _la = _input.La(1); + if (_la==WS) { + { + State = 1412; Match(WS); + } + } + + State = 1415; Match(T__1); + State = 1417; + switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { + case 1: + { + State = 1416; Match(WS); + } + break; + } + State = 1419; valueStmt(0); + State = 1421; + _la = _input.La(1); + if (_la==WS) { + { + State = 1420; Match(WS); + } + } + + State = 1423; Match(T__1); + State = 1425; + switch ( Interpreter.AdaptivePredict(_input,194,_ctx) ) { + case 1: + { + State = 1424; Match(WS); + } + break; + } + State = 1427; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SeekStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public ITerminalNode SEEK() { return GetToken(VBAParser.SEEK, 0); } + public SeekStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_seekStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSeekStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSeekStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSeekStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SeekStmtContext seekStmt() { + SeekStmtContext _localctx = new SeekStmtContext(_ctx, State); + EnterRule(_localctx, 156, RULE_seekStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1429; Match(SEEK); + State = 1430; Match(WS); + State = 1431; fileNumber(); + State = 1433; + _la = _input.La(1); + if (_la==WS) { + { + State = 1432; Match(WS); + } + } + + State = 1435; Match(T__1); + State = 1437; + switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { + case 1: + { + State = 1436; Match(WS); + } + break; + } + State = 1439; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SelectCaseStmtContext : ParserRuleContext { + public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode END_SELECT() { return GetToken(VBAParser.END_SELECT, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode SELECT() { return GetToken(VBAParser.SELECT, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public SC_CaseContext sC_Case(int i) { + return GetRuleContext(i); + } + public IReadOnlyList sC_Case() { + return GetRuleContexts(); + } + public SelectCaseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_selectCaseStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSelectCaseStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSelectCaseStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSelectCaseStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SelectCaseStmtContext selectCaseStmt() { + SelectCaseStmtContext _localctx = new SelectCaseStmtContext(_ctx, State); + EnterRule(_localctx, 158, RULE_selectCaseStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1441; Match(SELECT); + State = 1442; Match(WS); + State = 1443; Match(CASE); + State = 1444; Match(WS); + State = 1445; valueStmt(0); + State = 1446; endOfStatement(); + State = 1450; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==CASE) { + { + { + State = 1447; sC_Case(); + } + } + State = 1452; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 1453; Match(END_SELECT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SC_SelectionContext : ParserRuleContext { + public SC_SelectionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sC_Selection; } } + + public SC_SelectionContext() { } + public virtual void CopyFrom(SC_SelectionContext context) { + base.CopyFrom(context); + } + } + public partial class CaseCondValueContext : SC_SelectionContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public CaseCondValueContext(SC_SelectionContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterCaseCondValue(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitCaseCondValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitCaseCondValue(this); + else return visitor.VisitChildren(this); + } + } + public partial class CaseCondToContext : SC_SelectionContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public CaseCondToContext(SC_SelectionContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterCaseCondTo(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitCaseCondTo(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitCaseCondTo(this); + else return visitor.VisitChildren(this); + } + } + public partial class CaseCondIsContext : SC_SelectionContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ComparisonOperatorContext comparisonOperator() { + return GetRuleContext(0); + } + public CaseCondIsContext(SC_SelectionContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterCaseCondIs(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitCaseCondIs(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitCaseCondIs(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SC_SelectionContext sC_Selection() { + SC_SelectionContext _localctx = new SC_SelectionContext(_ctx, State); + EnterRule(_localctx, 160, RULE_sC_Selection); + int _la; + try { + State = 1472; + switch ( Interpreter.AdaptivePredict(_input,200,_ctx) ) { + case 1: + _localctx = new CaseCondIsContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 1455; Match(IS); + State = 1457; + _la = _input.La(1); + if (_la==WS) { + { + State = 1456; Match(WS); + } + } + + State = 1459; comparisonOperator(); + State = 1461; + switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { + case 1: + { + State = 1460; Match(WS); + } + break; + } + State = 1463; valueStmt(0); + } + break; + + case 2: + _localctx = new CaseCondToContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 1465; valueStmt(0); + State = 1466; Match(WS); + State = 1467; Match(TO); + State = 1468; Match(WS); + State = 1469; valueStmt(0); + } + break; + + case 3: + _localctx = new CaseCondValueContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 1471; valueStmt(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SC_CaseContext : ParserRuleContext { + public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public SC_CondContext sC_Cond() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public SC_CaseContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sC_Case; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSC_Case(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSC_Case(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSC_Case(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SC_CaseContext sC_Case() { + SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); + EnterRule(_localctx, 162, RULE_sC_Case); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1474; Match(CASE); + State = 1475; Match(WS); + State = 1476; sC_Cond(); + State = 1477; endOfStatement(); + State = 1479; + switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { + case 1: + { + State = 1478; block(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SC_CondContext : ParserRuleContext { + public SC_CondContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sC_Cond; } } + + public SC_CondContext() { } + public virtual void CopyFrom(SC_CondContext context) { + base.CopyFrom(context); + } + } + public partial class CaseCondSelectionContext : SC_CondContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList sC_Selection() { + return GetRuleContexts(); + } + public SC_SelectionContext sC_Selection(int i) { + return GetRuleContext(i); + } + public CaseCondSelectionContext(SC_CondContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterCaseCondSelection(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitCaseCondSelection(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitCaseCondSelection(this); + else return visitor.VisitChildren(this); + } + } + public partial class CaseCondElseContext : SC_CondContext { + public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } + public CaseCondElseContext(SC_CondContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterCaseCondElse(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitCaseCondElse(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitCaseCondElse(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SC_CondContext sC_Cond() { + SC_CondContext _localctx = new SC_CondContext(_ctx, State); + EnterRule(_localctx, 164, RULE_sC_Cond); + int _la; + try { + int _alt; + State = 1496; + switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { + case 1: + _localctx = new CaseCondElseContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 1481; Match(ELSE); + } + break; + + case 2: + _localctx = new CaseCondSelectionContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 1482; sC_Selection(); + State = 1493; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,204,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1484; + _la = _input.La(1); + if (_la==WS) { + { + State = 1483; Match(WS); + } + } + + State = 1486; Match(T__1); + State = 1488; + switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { + case 1: + { + State = 1487; Match(WS); + } + break; + } + State = 1490; sC_Selection(); + } + } + } + State = 1495; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,204,_ctx); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SendkeysStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public SendkeysStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sendkeysStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSendkeysStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSendkeysStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSendkeysStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SendkeysStmtContext sendkeysStmt() { + SendkeysStmtContext _localctx = new SendkeysStmtContext(_ctx, State); + EnterRule(_localctx, 166, RULE_sendkeysStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1498; Match(SENDKEYS); + State = 1499; Match(WS); + State = 1500; valueStmt(0); + State = 1509; + switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { + case 1: + { + State = 1502; + _la = _input.La(1); + if (_la==WS) { + { + State = 1501; Match(WS); + } + } + + State = 1504; Match(T__1); + State = 1506; + switch ( Interpreter.AdaptivePredict(_input,207,_ctx) ) { + case 1: + { + State = 1505; Match(WS); + } + break; + } + State = 1508; valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SetattrStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode SETATTR() { return GetToken(VBAParser.SETATTR, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public SetattrStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_setattrStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSetattrStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSetattrStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSetattrStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SetattrStmtContext setattrStmt() { + SetattrStmtContext _localctx = new SetattrStmtContext(_ctx, State); + EnterRule(_localctx, 168, RULE_setattrStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1511; Match(SETATTR); + State = 1512; Match(WS); + State = 1513; valueStmt(0); + State = 1515; + _la = _input.La(1); + if (_la==WS) { + { + State = 1514; Match(WS); + } + } + + State = 1517; Match(T__1); + State = 1519; + switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { + case 1: + { + State = 1518; Match(WS); + } + break; + } + State = 1521; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SetStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } + public SetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_setStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SetStmtContext setStmt() { + SetStmtContext _localctx = new SetStmtContext(_ctx, State); + EnterRule(_localctx, 170, RULE_setStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1523; Match(SET); + State = 1524; Match(WS); + State = 1525; implicitCallStmt_InStmt(); + State = 1527; + _la = _input.La(1); + if (_la==WS) { + { + State = 1526; Match(WS); + } + } + + State = 1529; Match(EQ); + State = 1531; + switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { + case 1: + { + State = 1530; Match(WS); + } + break; + } + State = 1533; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class StopStmtContext : ParserRuleContext { + public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } + public StopStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_stopStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterStopStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitStopStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitStopStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StopStmtContext stopStmt() { + StopStmtContext _localctx = new StopStmtContext(_ctx, State); + EnterRule(_localctx, 172, RULE_stopStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1535; Match(STOP); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgListContext argList() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public ITerminalNode END_SUB() { return GetToken(VBAParser.END_SUB, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public SubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSubStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSubStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSubStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SubStmtContext subStmt() { + SubStmtContext _localctx = new SubStmtContext(_ctx, State); + EnterRule(_localctx, 174, RULE_subStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1540; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 1537; visibility(); + State = 1538; Match(WS); + } + } + + State = 1544; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1542; Match(STATIC); + State = 1543; Match(WS); + } + } + + State = 1546; Match(SUB); + State = 1548; + _la = _input.La(1); + if (_la==WS) { + { + State = 1547; Match(WS); + } + } + + State = 1550; ambiguousIdentifier(); + State = 1555; + switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { + case 1: + { + State = 1552; + _la = _input.La(1); + if (_la==WS) { + { + State = 1551; Match(WS); + } + } + + State = 1554; argList(); + } + break; + } + State = 1557; endOfStatement(); + State = 1559; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 1558; block(); + } + } + + State = 1561; Match(END_SUB); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TimeStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode TIME() { return GetToken(VBAParser.TIME, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public TimeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterTimeStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitTimeStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitTimeStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TimeStmtContext timeStmt() { + TimeStmtContext _localctx = new TimeStmtContext(_ctx, State); + EnterRule(_localctx, 176, RULE_timeStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1563; Match(TIME); + State = 1565; + _la = _input.La(1); + if (_la==WS) { + { + State = 1564; Match(WS); + } + } + + State = 1567; Match(EQ); + State = 1569; + switch ( Interpreter.AdaptivePredict(_input,220,_ctx) ) { + case 1: + { + State = 1568; Match(WS); + } + break; + } + State = 1571; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList typeStmt_Element() { + return GetRuleContexts(); + } + public ITerminalNode TYPE() { return GetToken(VBAParser.TYPE, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeStmt_ElementContext typeStmt_Element(int i) { + return GetRuleContext(i); + } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public ITerminalNode END_TYPE() { return GetToken(VBAParser.END_TYPE, 0); } + public TypeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterTypeStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitTypeStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitTypeStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TypeStmtContext typeStmt() { + TypeStmtContext _localctx = new TypeStmtContext(_ctx, State); + EnterRule(_localctx, 178, RULE_typeStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1576; + _la = _input.La(1); + if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + { + State = 1573; visibility(); + State = 1574; Match(WS); + } + } + + State = 1578; Match(TYPE); + State = 1579; Match(WS); + State = 1580; ambiguousIdentifier(); + State = 1581; endOfStatement(); + State = 1585; + _errHandler.Sync(this); + _la = _input.La(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==IDENTIFIER) { + { + { + State = 1582; typeStmt_Element(); + } + } + State = 1587; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 1588; Match(END_TYPE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeStmt_ElementContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public SubscriptsContext subscripts() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public TypeStmt_ElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeStmt_Element; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterTypeStmt_Element(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitTypeStmt_Element(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitTypeStmt_Element(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TypeStmt_ElementContext typeStmt_Element() { + TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(_ctx, State); + EnterRule(_localctx, 180, RULE_typeStmt_Element); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1590; ambiguousIdentifier(); + State = 1605; + switch ( Interpreter.AdaptivePredict(_input,227,_ctx) ) { + case 1: + { + State = 1592; + _la = _input.La(1); + if (_la==WS) { + { + State = 1591; Match(WS); + } + } + + State = 1594; Match(LPAREN); + State = 1599; + switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { + case 1: + { + State = 1596; + switch ( Interpreter.AdaptivePredict(_input,224,_ctx) ) { + case 1: + { + State = 1595; Match(WS); + } + break; + } + State = 1598; subscripts(); + } + break; + } + State = 1602; + _la = _input.La(1); + if (_la==WS) { + { + State = 1601; Match(WS); + } + } + + State = 1604; Match(RPAREN); + } + break; + } + State = 1609; + switch ( Interpreter.AdaptivePredict(_input,228,_ctx) ) { + case 1: + { + State = 1607; Match(WS); + State = 1608; asTypeClause(); + } + break; + } + State = 1611; endOfStatement(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeOfStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode TYPEOF() { return GetToken(VBAParser.TYPEOF, 0); } + public TypeContext type() { + return GetRuleContext(0); + } + public TypeOfStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeOfStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterTypeOfStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitTypeOfStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitTypeOfStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TypeOfStmtContext typeOfStmt() { + TypeOfStmtContext _localctx = new TypeOfStmtContext(_ctx, State); + EnterRule(_localctx, 182, RULE_typeOfStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1613; Match(TYPEOF); + State = 1614; Match(WS); + State = 1615; valueStmt(0); + State = 1620; + switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { + case 1: + { + State = 1616; Match(WS); + State = 1617; Match(IS); + State = 1618; Match(WS); + State = 1619; type(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class UnloadStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode UNLOAD() { return GetToken(VBAParser.UNLOAD, 0); } + public UnloadStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_unloadStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterUnloadStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitUnloadStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitUnloadStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public UnloadStmtContext unloadStmt() { + UnloadStmtContext _localctx = new UnloadStmtContext(_ctx, State); + EnterRule(_localctx, 184, RULE_unloadStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1622; Match(UNLOAD); + State = 1623; Match(WS); + State = 1624; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class UnlockStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ITerminalNode UNLOCK() { return GetToken(VBAParser.UNLOCK, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public UnlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_unlockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterUnlockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitUnlockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitUnlockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public UnlockStmtContext unlockStmt() { + UnlockStmtContext _localctx = new UnlockStmtContext(_ctx, State); + EnterRule(_localctx, 186, RULE_unlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1626; Match(UNLOCK); + State = 1627; Match(WS); + State = 1628; fileNumber(); + State = 1643; + switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { + case 1: + { + State = 1630; + _la = _input.La(1); + if (_la==WS) { + { + State = 1629; Match(WS); + } + } + + State = 1632; Match(T__1); + State = 1634; + switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { + case 1: + { + State = 1633; Match(WS); + } + break; + } + State = 1636; valueStmt(0); + State = 1641; + switch ( Interpreter.AdaptivePredict(_input,232,_ctx) ) { + case 1: + { + State = 1637; Match(WS); + State = 1638; Match(TO); + State = 1639; Match(WS); + State = 1640; valueStmt(0); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ValueStmtContext : ParserRuleContext { + public ValueStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_valueStmt; } } + + public ValueStmtContext() { } + public virtual void CopyFrom(ValueStmtContext context) { + base.CopyFrom(context); + } + } + public partial class VsAssignContext : ValueStmtContext { + public ITerminalNode ASSIGN() { return GetToken(VBAParser.ASSIGN, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public VsAssignContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsAssign(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsAssign(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsAssign(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsNotContext : ValueStmtContext { + public ITerminalNode NOT() { return GetToken(VBAParser.NOT, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public VsNotContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsNot(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsNot(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsNot(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsStructContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsStructContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsStruct(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsStruct(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsStruct(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsTypeOfContext : ValueStmtContext { + public TypeOfStmtContext typeOfStmt() { + return GetRuleContext(0); + } + public VsTypeOfContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsTypeOf(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsTypeOf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsTypeOf(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsICSContext : ValueStmtContext { + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public VsICSContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsICS(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsICS(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsICS(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsRelationalContext : ValueStmtContext { + public ITerminalNode GEQ() { return GetToken(VBAParser.GEQ, 0); } + public ITerminalNode NEQ() { return GetToken(VBAParser.NEQ, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode LEQ() { return GetToken(VBAParser.LEQ, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode LT() { return GetToken(VBAParser.LT, 0); } + public ITerminalNode GT() { return GetToken(VBAParser.GT, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsRelationalContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsRelational(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsRelational(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsRelational(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsXorContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode XOR() { return GetToken(VBAParser.XOR, 0); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsXorContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsXor(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsXor(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsXor(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsAndContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode AND() { return GetToken(VBAParser.AND, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsAndContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsAnd(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsAnd(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsAnd(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsPowContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public ITerminalNode POW() { return GetToken(VBAParser.POW, 0); } + public VsPowContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsPow(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsPow(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsPow(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsAddContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode PLUS() { return GetToken(VBAParser.PLUS, 0); } + public ITerminalNode MINUS() { return GetToken(VBAParser.MINUS, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsAddContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsAdd(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsAdd(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsAdd(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsModContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode MOD() { return GetToken(VBAParser.MOD, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsModContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsMod(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsMod(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsMod(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsIntDivContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode INTDIV() { return GetToken(VBAParser.INTDIV, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsIntDivContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsIntDiv(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsIntDiv(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsIntDiv(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsAmpContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode AMPERSAND() { return GetToken(VBAParser.AMPERSAND, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsAmpContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsAmp(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsAmp(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsAmp(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsAddressOfContext : ValueStmtContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode ADDRESSOF() { return GetToken(VBAParser.ADDRESSOF, 0); } + public VsAddressOfContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsAddressOf(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsAddressOf(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsAddressOf(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsNewContext : ValueStmtContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } + public VsNewContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsNew(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsNew(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsNew(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsOrContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode OR() { return GetToken(VBAParser.OR, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsOrContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsOr(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsOr(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsOr(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsMultContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode MULT() { return GetToken(VBAParser.MULT, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public ITerminalNode DIV() { return GetToken(VBAParser.DIV, 0); } + public VsMultContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsMult(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsMult(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsMult(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsLiteralContext : ValueStmtContext { + public LiteralContext literal() { + return GetRuleContext(0); + } + public VsLiteralContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsLiteral(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsLiteral(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsLiteral(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsEqvContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode EQV() { return GetToken(VBAParser.EQV, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsEqvContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsEqv(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsEqv(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsEqv(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsNegationContext : ValueStmtContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode MINUS() { return GetToken(VBAParser.MINUS, 0); } + public VsNegationContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsNegation(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsNegation(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsNegation(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsImpContext : ValueStmtContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode IMP() { return GetToken(VBAParser.IMP, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public VsImpContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsImp(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsImp(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsImp(this); + else return visitor.VisitChildren(this); + } + } + public partial class VsMidContext : ValueStmtContext { + public MidStmtContext midStmt() { + return GetRuleContext(0); + } + public VsMidContext(ValueStmtContext context) { CopyFrom(context); } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVsMid(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVsMid(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVsMid(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ValueStmtContext valueStmt() { + return valueStmt(0); + } + + private ValueStmtContext valueStmt(int _p) { + ParserRuleContext _parentctx = _ctx; + int _parentState = State; + ValueStmtContext _localctx = new ValueStmtContext(_ctx, _parentState); + ValueStmtContext _prevctx = _localctx; + int _startState = 188; + EnterRecursionRule(_localctx, 188, RULE_valueStmt, _p); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1700; + switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { + case 1: + { + _localctx = new VsNewContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + State = 1646; Match(NEW); + State = 1648; + switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { + case 1: + { + State = 1647; Match(WS); + } + break; + } + State = 1650; valueStmt(19); + } + break; + + case 2: + { + _localctx = new VsAddressOfContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1651; Match(ADDRESSOF); + State = 1653; + switch ( Interpreter.AdaptivePredict(_input,235,_ctx) ) { + case 1: + { + State = 1652; Match(WS); + } + break; + } + State = 1655; valueStmt(16); + } + break; + + case 3: + { + _localctx = new VsAssignContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1656; implicitCallStmt_InStmt(); + State = 1658; + _la = _input.La(1); + if (_la==WS) { + { + State = 1657; Match(WS); + } + } + + State = 1660; Match(ASSIGN); + State = 1662; + switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { + case 1: + { + State = 1661; Match(WS); + } + break; + } + State = 1664; valueStmt(15); + } + break; + + case 4: + { + _localctx = new VsNegationContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1666; Match(MINUS); + State = 1668; + switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { + case 1: + { + State = 1667; Match(WS); + } + break; + } + State = 1670; valueStmt(13); + } + break; + + case 5: + { + _localctx = new VsNotContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1671; Match(NOT); + State = 1673; + switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { + case 1: + { + State = 1672; Match(WS); + } + break; + } + State = 1675; valueStmt(6); + } + break; + + case 6: + { + _localctx = new VsLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1676; literal(); + } + break; + + case 7: + { + _localctx = new VsICSContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1677; implicitCallStmt_InStmt(); + } + break; + + case 8: + { + _localctx = new VsStructContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1678; Match(LPAREN); + State = 1680; + switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { + case 1: + { + State = 1679; Match(WS); + } + break; + } + State = 1682; valueStmt(0); + State = 1693; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==T__1 || _la==WS) { + { + { + State = 1684; + _la = _input.La(1); + if (_la==WS) { + { + State = 1683; Match(WS); + } + } + + State = 1686; Match(T__1); + State = 1688; + switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { + case 1: + { + State = 1687; Match(WS); + } + break; + } + State = 1690; valueStmt(0); + } + } + State = 1695; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 1696; Match(RPAREN); + } + break; + + case 9: + { + _localctx = new VsTypeOfContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1698; typeOfStmt(); + } + break; + + case 10: + { + _localctx = new VsMidContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1699; midStmt(); + } + break; + } + _ctx.stop = _input.Lt(-1); + State = 1812; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,270,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) TriggerExitRuleEvent(); + _prevctx = _localctx; + { + State = 1810; + switch ( Interpreter.AdaptivePredict(_input,269,_ctx) ) { + case 1: + { + _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1702; + if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); + State = 1704; + _la = _input.La(1); + if (_la==WS) { + { + State = 1703; Match(WS); + } + } + + State = 1706; Match(POW); + State = 1708; + switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { + case 1: + { + State = 1707; Match(WS); + } + break; + } + State = 1710; valueStmt(15); + } + break; + + case 2: + { + _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1711; + if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); + State = 1713; + _la = _input.La(1); + if (_la==WS) { + { + State = 1712; Match(WS); + } + } + + State = 1715; + _la = _input.La(1); + if ( !(_la==DIV || _la==MULT) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1717; + switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { + case 1: + { + State = 1716; Match(WS); + } + break; + } + State = 1719; valueStmt(13); + } + break; + + case 3: + { + _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1720; + if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); + State = 1722; + _la = _input.La(1); + if (_la==WS) { + { + State = 1721; Match(WS); + } + } + + State = 1724; Match(INTDIV); + State = 1726; + switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { + case 1: + { + State = 1725; Match(WS); + } + break; + } + State = 1728; valueStmt(12); + } + break; + + case 4: + { + _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1729; + if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); + State = 1731; + _la = _input.La(1); + if (_la==WS) { + { + State = 1730; Match(WS); + } + } + + State = 1733; Match(MOD); + State = 1735; + switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { + case 1: + { + State = 1734; Match(WS); + } + break; + } + State = 1737; valueStmt(11); + } + break; + + case 5: + { + _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1738; + if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); + State = 1740; + _la = _input.La(1); + if (_la==WS) { + { + State = 1739; Match(WS); + } + } + + State = 1742; + _la = _input.La(1); + if ( !(_la==MINUS || _la==PLUS) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1744; + switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { + case 1: + { + State = 1743; Match(WS); + } + break; + } + State = 1746; valueStmt(10); + } + break; + + case 6: + { + _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1747; + if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); + State = 1749; + _la = _input.La(1); + if (_la==WS) { + { + State = 1748; Match(WS); + } + } + + State = 1751; Match(AMPERSAND); + State = 1753; + switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { + case 1: + { + State = 1752; Match(WS); + } + break; + } + State = 1755; valueStmt(9); + } + break; + + case 7: + { + _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1756; + if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); + State = 1758; + _la = _input.La(1); + if (_la==WS) { + { + State = 1757; Match(WS); + } + } + + State = 1760; + _la = _input.La(1); + if ( !(_la==IS || _la==LIKE || ((((_la - 185)) & ~0x3f) == 0 && ((1L << (_la - 185)) & ((1L << (EQ - 185)) | (1L << (GEQ - 185)) | (1L << (GT - 185)) | (1L << (LEQ - 185)) | (1L << (LT - 185)) | (1L << (NEQ - 185)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1762; + switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { + case 1: + { + State = 1761; Match(WS); + } + break; + } + State = 1764; valueStmt(8); + } + break; + + case 8: + { + _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1765; + if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); + State = 1767; + _la = _input.La(1); + if (_la==WS) { + { + State = 1766; Match(WS); + } + } + + State = 1769; Match(AND); + State = 1771; + switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { + case 1: + { + State = 1770; Match(WS); + } + break; + } + State = 1773; valueStmt(6); + } + break; + + case 9: + { + _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1774; + if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); + State = 1776; + _la = _input.La(1); + if (_la==WS) { + { + State = 1775; Match(WS); + } + } + + State = 1778; Match(OR); + State = 1780; + switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { + case 1: + { + State = 1779; Match(WS); + } + break; + } + State = 1782; valueStmt(5); + } + break; + + case 10: + { + _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1783; + if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); + State = 1785; + _la = _input.La(1); + if (_la==WS) { + { + State = 1784; Match(WS); + } + } + + State = 1787; Match(XOR); + State = 1789; + switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { + case 1: + { + State = 1788; Match(WS); + } + break; + } + State = 1791; valueStmt(4); + } + break; + + case 11: + { + _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1792; + if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); + State = 1794; + _la = _input.La(1); + if (_la==WS) { + { + State = 1793; Match(WS); + } + } + + State = 1796; Match(EQV); + State = 1798; + switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { + case 1: + { + State = 1797; Match(WS); + } + break; + } + State = 1800; valueStmt(3); + } + break; + + case 12: + { + _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1801; + if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); + State = 1803; + _la = _input.La(1); + if (_la==WS) { + { + State = 1802; Match(WS); + } + } + + State = 1805; Match(IMP); + State = 1807; + switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { + case 1: + { + State = 1806; Match(WS); + } + break; + } + State = 1809; valueStmt(2); + } + break; + } + } + } + State = 1814; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,270,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + UnrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public partial class VariableStmtContext : ParserRuleContext { + public VariableListStmtContext variableListStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode DIM() { return GetToken(VBAParser.DIM, 0); } + public VisibilityContext visibility() { + return GetRuleContext(0); + } + public ITerminalNode WITHEVENTS() { return GetToken(VBAParser.WITHEVENTS, 0); } + public VariableStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_variableStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVariableStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVariableStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVariableStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public VariableStmtContext variableStmt() { + VariableStmtContext _localctx = new VariableStmtContext(_ctx, State); + EnterRule(_localctx, 190, RULE_variableStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1818; + switch (_input.La(1)) { + case DIM: + { + State = 1815; Match(DIM); + } + break; + case STATIC: + { + State = 1816; Match(STATIC); + } + break; + case FRIEND: + case GLOBAL: + case PRIVATE: + case PUBLIC: + { + State = 1817; visibility(); + } + break; + default: + throw new NoViableAltException(this); + } + State = 1820; Match(WS); + State = 1823; + switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { + case 1: + { + State = 1821; Match(WITHEVENTS); + State = 1822; Match(WS); + } + break; + } + State = 1825; variableListStmt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VariableListStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList variableSubStmt() { + return GetRuleContexts(); + } + public VariableSubStmtContext variableSubStmt(int i) { + return GetRuleContext(i); + } + public VariableListStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_variableListStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVariableListStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVariableListStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVariableListStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public VariableListStmtContext variableListStmt() { + VariableListStmtContext _localctx = new VariableListStmtContext(_ctx, State); + EnterRule(_localctx, 192, RULE_variableListStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1827; variableSubStmt(); + State = 1838; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,275,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1829; + _la = _input.La(1); + if (_la==WS) { + { + State = 1828; Match(WS); + } + } + + State = 1831; Match(T__1); + State = 1833; + _la = _input.La(1); + if (_la==WS) { + { + State = 1832; Match(WS); + } + } + + State = 1835; variableSubStmt(); + } + } + } + State = 1840; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,275,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VariableSubStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public SubscriptsContext subscripts() { + return GetRuleContext(0); + } + public VariableSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_variableSubStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVariableSubStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVariableSubStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVariableSubStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public VariableSubStmtContext variableSubStmt() { + VariableSubStmtContext _localctx = new VariableSubStmtContext(_ctx, State); + EnterRule(_localctx, 194, RULE_variableSubStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1841; ambiguousIdentifier(); + State = 1859; + switch ( Interpreter.AdaptivePredict(_input,281,_ctx) ) { + case 1: + { + State = 1843; + _la = _input.La(1); + if (_la==WS) { + { + State = 1842; Match(WS); + } + } + + State = 1845; Match(LPAREN); + State = 1847; + switch ( Interpreter.AdaptivePredict(_input,277,_ctx) ) { + case 1: + { + State = 1846; Match(WS); + } + break; + } + State = 1853; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)) | (1L << (LPAREN - 132)) | (1L << (MINUS - 132)))) != 0) || ((((_la - 199)) & ~0x3f) == 0 && ((1L << (_la - 199)) & ((1L << (STRINGLITERAL - 199)) | (1L << (OCTLITERAL - 199)) | (1L << (HEXLITERAL - 199)) | (1L << (SHORTLITERAL - 199)) | (1L << (INTEGERLITERAL - 199)) | (1L << (DOUBLELITERAL - 199)) | (1L << (DATELITERAL - 199)) | (1L << (WS - 199)) | (1L << (IDENTIFIER - 199)))) != 0)) { + { + State = 1849; subscripts(); + State = 1851; + _la = _input.La(1); + if (_la==WS) { + { + State = 1850; Match(WS); + } + } + + } + } + + State = 1855; Match(RPAREN); + State = 1857; + switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { + case 1: + { + State = 1856; Match(WS); + } + break; + } + } + break; + } + State = 1862; + switch ( Interpreter.AdaptivePredict(_input,282,_ctx) ) { + case 1: + { + State = 1861; typeHint(); + } + break; + } + State = 1866; + switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { + case 1: + { + State = 1864; Match(WS); + State = 1865; asTypeClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WhileWendStmtContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode WEND() { return GetToken(VBAParser.WEND, 0); } + public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public WhileWendStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_whileWendStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterWhileWendStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitWhileWendStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitWhileWendStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public WhileWendStmtContext whileWendStmt() { + WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); + EnterRule(_localctx, 196, RULE_whileWendStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1868; Match(WHILE); + State = 1869; Match(WS); + State = 1870; valueStmt(0); + State = 1871; endOfStatement(); + State = 1873; + switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { + case 1: + { + State = 1872; block(); + } + break; + } + State = 1875; Match(WEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WidthStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode WIDTH() { return GetToken(VBAParser.WIDTH, 0); } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public WidthStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_widthStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterWidthStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitWidthStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitWidthStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public WidthStmtContext widthStmt() { + WidthStmtContext _localctx = new WidthStmtContext(_ctx, State); + EnterRule(_localctx, 198, RULE_widthStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1877; Match(WIDTH); + State = 1878; Match(WS); + State = 1879; fileNumber(); + State = 1881; + _la = _input.La(1); + if (_la==WS) { + { + State = 1880; Match(WS); + } + } + + State = 1883; Match(T__1); + State = 1885; + switch ( Interpreter.AdaptivePredict(_input,286,_ctx) ) { + case 1: + { + State = 1884; Match(WS); + } + break; + } + State = 1887; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WithStmtContext : ParserRuleContext { + public ITerminalNode WITH() { return GetToken(VBAParser.WITH, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode END_WITH() { return GetToken(VBAParser.END_WITH, 0); } + public TypeContext type() { + return GetRuleContext(0); + } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public BlockContext block() { + return GetRuleContext(0); + } + public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } + public WithStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_withStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterWithStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitWithStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitWithStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public WithStmtContext withStmt() { + WithStmtContext _localctx = new WithStmtContext(_ctx, State); + EnterRule(_localctx, 200, RULE_withStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1889; Match(WITH); + State = 1890; Match(WS); + State = 1895; + switch ( Interpreter.AdaptivePredict(_input,287,_ctx) ) { + case 1: + { + State = 1891; implicitCallStmt_InStmt(); + } + break; + + case 2: + { + { + State = 1892; Match(NEW); + State = 1893; Match(WS); + State = 1894; type(); + } + } + break; + } + State = 1897; endOfStatement(); + State = 1899; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 1898; block(); + } + } + + State = 1901; Match(END_WITH); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WriteStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public OutputListContext outputList() { + return GetRuleContext(0); + } + public ITerminalNode WRITE() { return GetToken(VBAParser.WRITE, 0); } + public FileNumberContext fileNumber() { + return GetRuleContext(0); + } + public WriteStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_writeStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterWriteStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitWriteStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitWriteStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public WriteStmtContext writeStmt() { + WriteStmtContext _localctx = new WriteStmtContext(_ctx, State); + EnterRule(_localctx, 202, RULE_writeStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1903; Match(WRITE); + State = 1904; Match(WS); + State = 1905; fileNumber(); + State = 1907; + _la = _input.La(1); + if (_la==WS) { + { + State = 1906; Match(WS); + } + } + + State = 1909; Match(T__1); + State = 1914; + switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { + case 1: + { + State = 1911; + switch ( Interpreter.AdaptivePredict(_input,290,_ctx) ) { + case 1: + { + State = 1910; Match(WS); + } + break; + } + State = 1913; outputList(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FileNumberContext : ParserRuleContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public FileNumberContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_fileNumber; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterFileNumber(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitFileNumber(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitFileNumber(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public FileNumberContext fileNumber() { + FileNumberContext _localctx = new FileNumberContext(_ctx, State); + EnterRule(_localctx, 204, RULE_fileNumber); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1917; + _la = _input.La(1); + if (_la==T__5) { + { + State = 1916; Match(T__5); + } + } + + State = 1919; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ExplicitCallStmtContext : ParserRuleContext { + public ECS_ProcedureCallContext eCS_ProcedureCall() { + return GetRuleContext(0); + } + public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { + return GetRuleContext(0); + } + public ExplicitCallStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_explicitCallStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterExplicitCallStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitExplicitCallStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitExplicitCallStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ExplicitCallStmtContext explicitCallStmt() { + ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); + EnterRule(_localctx, 206, RULE_explicitCallStmt); + try { + State = 1923; + switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1921; eCS_ProcedureCall(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1922; eCS_MemberProcedureCall(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ECS_ProcedureCallContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ECS_ProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eCS_ProcedureCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterECS_ProcedureCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitECS_ProcedureCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitECS_ProcedureCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ECS_ProcedureCallContext eCS_ProcedureCall() { + ECS_ProcedureCallContext _localctx = new ECS_ProcedureCallContext(_ctx, State); + EnterRule(_localctx, 208, RULE_eCS_ProcedureCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1925; Match(CALL); + State = 1926; Match(WS); + State = 1927; ambiguousIdentifier(); + State = 1929; + switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { + case 1: + { + State = 1928; typeHint(); + } + break; + } + State = 1944; + switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { + case 1: + { + State = 1932; + _la = _input.La(1); + if (_la==WS) { + { + State = 1931; Match(WS); + } + } + + State = 1934; Match(LPAREN); + State = 1936; + switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { + case 1: + { + State = 1935; Match(WS); + } + break; + } + State = 1938; argsCall(); + State = 1940; + _la = _input.La(1); + if (_la==WS) { + { + State = 1939; Match(WS); + } + } + + State = 1942; Match(RPAREN); + } + break; + } + State = 1955; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,300,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1947; + _la = _input.La(1); + if (_la==WS) { + { + State = 1946; Match(WS); + } + } + + State = 1949; Match(LPAREN); + State = 1950; subscripts(); + State = 1951; Match(RPAREN); + } + } + } + State = 1957; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,300,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ECS_MemberProcedureCallContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ECS_MemberProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eCS_MemberProcedureCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterECS_MemberProcedureCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitECS_MemberProcedureCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitECS_MemberProcedureCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { + ECS_MemberProcedureCallContext _localctx = new ECS_MemberProcedureCallContext(_ctx, State); + EnterRule(_localctx, 210, RULE_eCS_MemberProcedureCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1958; Match(CALL); + State = 1959; Match(WS); + State = 1961; + switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { + case 1: + { + State = 1960; implicitCallStmt_InStmt(); + } + break; + } + State = 1963; Match(T__0); + State = 1964; ambiguousIdentifier(); + State = 1966; + switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { + case 1: + { + State = 1965; typeHint(); + } + break; + } + State = 1981; + switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { + case 1: + { + State = 1969; + _la = _input.La(1); + if (_la==WS) { + { + State = 1968; Match(WS); + } + } + + State = 1971; Match(LPAREN); + State = 1973; + switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + case 1: + { + State = 1972; Match(WS); + } + break; + } + State = 1975; argsCall(); + State = 1977; + _la = _input.La(1); + if (_la==WS) { + { + State = 1976; Match(WS); + } + } + + State = 1979; Match(RPAREN); + } + break; + } + State = 1992; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,308,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1984; + _la = _input.La(1); + if (_la==WS) { + { + State = 1983; Match(WS); + } + } + + State = 1986; Match(LPAREN); + State = 1987; subscripts(); + State = 1988; Match(RPAREN); + } + } + } + State = 1994; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,308,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ImplicitCallStmt_InBlockContext : ParserRuleContext { + public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { + return GetRuleContext(0); + } + public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { + return GetRuleContext(0); + } + public ImplicitCallStmt_InBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_implicitCallStmt_InBlock; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterImplicitCallStmt_InBlock(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitImplicitCallStmt_InBlock(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitImplicitCallStmt_InBlock(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { + ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); + EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); + try { + State = 1997; + switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1995; iCS_B_MemberProcedureCall(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1996; iCS_B_ProcedureCall(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_B_MemberProcedureCallContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public DictionaryCallStmtContext dictionaryCallStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ICS_B_MemberProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_B_MemberProcedureCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterICS_B_MemberProcedureCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitICS_B_MemberProcedureCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_B_MemberProcedureCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { + ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); + EnterRule(_localctx, 214, RULE_iCS_B_MemberProcedureCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2000; + switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { + case 1: + { + State = 1999; implicitCallStmt_InStmt(); + } + break; + } + State = 2002; Match(T__0); + State = 2003; ambiguousIdentifier(); + State = 2005; + switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { + case 1: + { + State = 2004; typeHint(); + } + break; + } + State = 2009; + switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { + case 1: + { + State = 2007; Match(WS); + State = 2008; argsCall(); + } + break; + } + State = 2015; + switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { + case 1: + { + State = 2012; + _la = _input.La(1); + if (_la==WS) { + { + State = 2011; Match(WS); + } + } + + State = 2014; dictionaryCallStmt(); + } + break; + } + State = 2026; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,316,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2018; + _la = _input.La(1); + if (_la==WS) { + { + State = 2017; Match(WS); + } + } + + State = 2020; Match(LPAREN); + State = 2021; subscripts(); + State = 2022; Match(RPAREN); + } + } + } + State = 2028; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,316,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_B_ProcedureCallContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public CertainIdentifierContext certainIdentifier() { + return GetRuleContext(0); + } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ICS_B_ProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_B_ProcedureCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterICS_B_ProcedureCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitICS_B_ProcedureCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_B_ProcedureCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { + ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); + EnterRule(_localctx, 216, RULE_iCS_B_ProcedureCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2029; certainIdentifier(); + State = 2032; + switch ( Interpreter.AdaptivePredict(_input,317,_ctx) ) { + case 1: + { + State = 2030; Match(WS); + State = 2031; argsCall(); + } + break; + } + State = 2043; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,319,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2035; + _la = _input.La(1); + if (_la==WS) { + { + State = 2034; Match(WS); + } + } + + State = 2037; Match(LPAREN); + State = 2038; subscripts(); + State = 2039; Match(RPAREN); + } + } + } + State = 2045; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,319,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ImplicitCallStmt_InStmtContext : ParserRuleContext { + public ICS_S_MembersCallContext iCS_S_MembersCall() { + return GetRuleContext(0); + } + public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + return GetRuleContext(0); + } + public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { + return GetRuleContext(0); + } + public ImplicitCallStmt_InStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_implicitCallStmt_InStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterImplicitCallStmt_InStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitImplicitCallStmt_InStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitImplicitCallStmt_InStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); + EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); + try { + State = 2050; + switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 2046; iCS_S_MembersCall(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 2047; iCS_S_VariableOrProcedureCall(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 2048; iCS_S_ProcedureOrArrayCall(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 2049; iCS_S_DictionaryCall(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_VariableOrProcedureCallContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public DictionaryCallStmtContext dictionaryCallStmt() { + return GetRuleContext(0); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ICS_S_VariableOrProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_VariableOrProcedureCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterICS_S_VariableOrProcedureCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitICS_S_VariableOrProcedureCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_S_VariableOrProcedureCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); + EnterRule(_localctx, 220, RULE_iCS_S_VariableOrProcedureCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2052; ambiguousIdentifier(); + State = 2054; + switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { + case 1: + { + State = 2053; typeHint(); + } + break; + } + State = 2060; + switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { + case 1: + { + State = 2057; + _la = _input.La(1); + if (_la==WS) { + { + State = 2056; Match(WS); + } + } + + State = 2059; dictionaryCallStmt(); + } + break; + } + State = 2071; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,325,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2063; + _la = _input.La(1); + if (_la==WS) { + { + State = 2062; Match(WS); + } + } + + State = 2065; Match(LPAREN); + State = 2066; subscripts(); + State = 2067; Match(RPAREN); + } + } + } + State = 2073; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,325,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_ProcedureOrArrayCallContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public BaseTypeContext baseType() { + return GetRuleContext(0); + } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public DictionaryCallStmtContext dictionaryCallStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ICS_S_ProcedureOrArrayCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_ProcedureOrArrayCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterICS_S_ProcedureOrArrayCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitICS_S_ProcedureOrArrayCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_S_ProcedureOrArrayCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); + EnterRule(_localctx, 222, RULE_iCS_S_ProcedureOrArrayCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2076; + switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { + case 1: + { + State = 2074; ambiguousIdentifier(); + } + break; + + case 2: + { + State = 2075; baseType(); + } + break; + } + State = 2079; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { + { + State = 2078; typeHint(); + } + } + + State = 2082; + _la = _input.La(1); + if (_la==WS) { + { + State = 2081; Match(WS); + } + } + + State = 2084; Match(LPAREN); + State = 2086; + switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { + case 1: + { + State = 2085; Match(WS); + } + break; + } + State = 2092; + switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { + case 1: + { + State = 2088; argsCall(); + State = 2090; + _la = _input.La(1); + if (_la==WS) { + { + State = 2089; Match(WS); + } + } + + } + break; + } + State = 2094; Match(RPAREN); + State = 2099; + switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { + case 1: + { + State = 2096; + _la = _input.La(1); + if (_la==WS) { + { + State = 2095; Match(WS); + } + } + + State = 2098; dictionaryCallStmt(); + } + break; + } + State = 2110; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,335,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2102; + _la = _input.La(1); + if (_la==WS) { + { + State = 2101; Match(WS); + } + } + + State = 2104; Match(LPAREN); + State = 2105; subscripts(); + State = 2106; Match(RPAREN); + } + } + } + State = 2112; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,335,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_MembersCallContext : ParserRuleContext { + public ICS_S_MemberCallContext iCS_S_MemberCall(int i) { + return GetRuleContext(i); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public IReadOnlyList iCS_S_MemberCall() { + return GetRuleContexts(); + } + public DictionaryCallStmtContext dictionaryCallStmt() { + return GetRuleContext(0); + } + public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ICS_S_MembersCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_MembersCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterICS_S_MembersCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitICS_S_MembersCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_S_MembersCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_S_MembersCallContext iCS_S_MembersCall() { + ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); + EnterRule(_localctx, 224, RULE_iCS_S_MembersCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2115; + switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { + case 1: + { + State = 2113; iCS_S_VariableOrProcedureCall(); + } + break; + + case 2: + { + State = 2114; iCS_S_ProcedureOrArrayCall(); + } + break; + } + State = 2121; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 2117; iCS_S_MemberCall(); + State = 2119; + switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { + case 1: + { + State = 2118; Match(WS); + } + break; + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2123; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,338,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + State = 2129; + switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { + case 1: + { + State = 2126; + _la = _input.La(1); + if (_la==WS) { + { + State = 2125; Match(WS); + } + } + + State = 2128; dictionaryCallStmt(); + } + break; + } + State = 2140; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,342,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2132; + _la = _input.La(1); + if (_la==WS) { + { + State = 2131; Match(WS); + } + } + + State = 2134; Match(LPAREN); + State = 2135; subscripts(); + State = 2136; Match(RPAREN); + } + } + } + State = 2142; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,342,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_MemberCallContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + return GetRuleContext(0); + } + public ICS_S_MemberCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_MemberCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterICS_S_MemberCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitICS_S_MemberCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_S_MemberCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_S_MemberCallContext iCS_S_MemberCall() { + ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); + EnterRule(_localctx, 226, RULE_iCS_S_MemberCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2143; + _la = _input.La(1); + if ( !(_la==T__6 || _la==T__0) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2145; + _la = _input.La(1); + if (_la==WS) { + { + State = 2144; Match(WS); + } + } + + State = 2149; + switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { + case 1: + { + State = 2147; iCS_S_VariableOrProcedureCall(); + } + break; + + case 2: + { + State = 2148; iCS_S_ProcedureOrArrayCall(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_DictionaryCallContext : ParserRuleContext { + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public DictionaryCallStmtContext dictionaryCallStmt() { + return GetRuleContext(0); + } + public ICS_S_DictionaryCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_DictionaryCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterICS_S_DictionaryCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitICS_S_DictionaryCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_S_DictionaryCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { + ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); + EnterRule(_localctx, 228, RULE_iCS_S_DictionaryCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2152; + _la = _input.La(1); + if (_la==WS) { + { + State = 2151; Match(WS); + } + } + + State = 2154; dictionaryCallStmt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgsCallContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList argCall() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ArgCallContext argCall(int i) { + return GetRuleContext(i); + } + public ArgsCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argsCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterArgsCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitArgsCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitArgsCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ArgsCallContext argsCall() { + ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); + EnterRule(_localctx, 230, RULE_argsCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2168; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2157; + switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { + case 1: + { + State = 2156; argCall(); + } + break; + } + State = 2160; + _la = _input.La(1); + if (_la==WS) { + { + State = 2159; Match(WS); + } + } + + State = 2162; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2164; + switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { + case 1: + { + State = 2163; Match(WS); + } + break; + } + } + } + } + State = 2170; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + } + State = 2171; argCall(); + State = 2184; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,353,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2173; + _la = _input.La(1); + if (_la==WS) { + { + State = 2172; Match(WS); + } + } + + State = 2175; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2177; + switch ( Interpreter.AdaptivePredict(_input,351,_ctx) ) { + case 1: + { + State = 2176; Match(WS); + } + break; + } + State = 2180; + switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { + case 1: + { + State = 2179; argCall(); + } + break; + } + } + } + } + State = 2186; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,353,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgCallContext : ParserRuleContext { + public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } + public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } + public ArgCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argCall; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterArgCall(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitArgCall(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitArgCall(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ArgCallContext argCall() { + ArgCallContext _localctx = new ArgCallContext(_ctx, State); + EnterRule(_localctx, 232, RULE_argCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2188; + switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { + case 1: + { + State = 2187; Match(LPAREN); + } + break; + } + State = 2192; + switch ( Interpreter.AdaptivePredict(_input,355,_ctx) ) { + case 1: + { + State = 2190; + _la = _input.La(1); + if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2191; Match(WS); + } + break; + } + State = 2195; + _la = _input.La(1); + if (_la==RPAREN) { + { + State = 2194; Match(RPAREN); + } + } + + State = 2197; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DictionaryCallStmtContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public DictionaryCallStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dictionaryCallStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterDictionaryCallStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitDictionaryCallStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitDictionaryCallStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public DictionaryCallStmtContext dictionaryCallStmt() { + DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); + EnterRule(_localctx, 234, RULE_dictionaryCallStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2199; Match(T__6); + State = 2201; + _la = _input.La(1); + if (_la==WS) { + { + State = 2200; Match(WS); + } + } + + State = 2203; ambiguousIdentifier(); + State = 2205; + switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { + case 1: + { + State = 2204; typeHint(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgListContext : ParserRuleContext { + public ArgContext arg(int i) { + return GetRuleContext(i); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public IReadOnlyList arg() { + return GetRuleContexts(); + } + public ArgListContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argList; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterArgList(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitArgList(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitArgList(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ArgListContext argList() { + ArgListContext _localctx = new ArgListContext(_ctx, State); + EnterRule(_localctx, 236, RULE_argList); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2207; Match(LPAREN); + State = 2225; + switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { + case 1: + { + State = 2209; + _la = _input.La(1); + if (_la==WS) { + { + State = 2208; Match(WS); + } + } + + State = 2211; arg(); + State = 2222; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2213; + _la = _input.La(1); + if (_la==WS) { + { + State = 2212; Match(WS); + } + } + + State = 2215; Match(T__1); + State = 2217; + _la = _input.La(1); + if (_la==WS) { + { + State = 2216; Match(WS); + } + } + + State = 2219; arg(); + } + } + } + State = 2224; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + } + } + break; + } + State = 2228; + _la = _input.La(1); + if (_la==WS) { + { + State = 2227; Match(WS); + } + } + + State = 2230; Match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ArgDefaultValueContext argDefaultValue() { + return GetRuleContext(0); + } + public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public ITerminalNode OPTIONAL() { return GetToken(VBAParser.OPTIONAL, 0); } + public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } + public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } + public ArgContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_arg; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterArg(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitArg(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitArg(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ArgContext arg() { + ArgContext _localctx = new ArgContext(_ctx, State); + EnterRule(_localctx, 238, RULE_arg); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2234; + switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { + case 1: + { + State = 2232; Match(OPTIONAL); + State = 2233; Match(WS); + } + break; + } + State = 2238; + switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { + case 1: + { + State = 2236; + _la = _input.La(1); + if ( !(_la==BYVAL || _la==BYREF) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2237; Match(WS); + } + break; + } + State = 2242; + switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { + case 1: + { + State = 2240; Match(PARAMARRAY); + State = 2241; Match(WS); + } + break; + } + State = 2244; ambiguousIdentifier(); + State = 2246; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { + { + State = 2245; typeHint(); + } + } + + State = 2256; + switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { + case 1: + { + State = 2249; + _la = _input.La(1); + if (_la==WS) { + { + State = 2248; Match(WS); + } + } + + State = 2251; Match(LPAREN); + State = 2253; + _la = _input.La(1); + if (_la==WS) { + { + State = 2252; Match(WS); + } + } + + State = 2255; Match(RPAREN); + } + break; + } + State = 2262; + switch ( Interpreter.AdaptivePredict(_input,373,_ctx) ) { + case 1: + { + State = 2259; + _la = _input.La(1); + if (_la==WS) { + { + State = 2258; Match(WS); + } + } + + State = 2261; asTypeClause(); + } + break; + } + State = 2268; + switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { + case 1: + { + State = 2265; + _la = _input.La(1); + if (_la==WS) { + { + State = 2264; Match(WS); + } + } + + State = 2267; argDefaultValue(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgDefaultValueContext : ParserRuleContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ArgDefaultValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argDefaultValue; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterArgDefaultValue(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitArgDefaultValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitArgDefaultValue(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ArgDefaultValueContext argDefaultValue() { + ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); + EnterRule(_localctx, 240, RULE_argDefaultValue); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2270; Match(EQ); + State = 2272; + switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { + case 1: + { + State = 2271; Match(WS); + } + break; + } + State = 2274; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubscriptsContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList subscript() { + return GetRuleContexts(); + } + public SubscriptContext subscript(int i) { + return GetRuleContext(i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public SubscriptsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subscripts; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSubscripts(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSubscripts(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSubscripts(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SubscriptsContext subscripts() { + SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); + EnterRule(_localctx, 242, RULE_subscripts); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2276; subscript(); + State = 2287; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,379,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2278; + _la = _input.La(1); + if (_la==WS) { + { + State = 2277; Match(WS); + } + } + + State = 2280; Match(T__1); + State = 2282; + switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { + case 1: + { + State = 2281; Match(WS); + } + break; + } + State = 2284; subscript(); + } + } + } + State = 2289; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,379,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubscriptContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public SubscriptContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subscript; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterSubscript(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitSubscript(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitSubscript(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SubscriptContext subscript() { + SubscriptContext _localctx = new SubscriptContext(_ctx, State); + EnterRule(_localctx, 244, RULE_subscript); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2295; + switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { + case 1: + { + State = 2290; valueStmt(0); + State = 2291; Match(WS); + State = 2292; Match(TO); + State = 2293; Match(WS); + } + break; + } + State = 2297; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AmbiguousIdentifierContext : ParserRuleContext { + public AmbiguousKeywordContext ambiguousKeyword(int i) { + return GetRuleContext(i); + } + public ITerminalNode IDENTIFIER(int i) { + return GetToken(VBAParser.IDENTIFIER, i); + } + public IReadOnlyList ambiguousKeyword() { + return GetRuleContexts(); + } + public IReadOnlyList IDENTIFIER() { return GetTokens(VBAParser.IDENTIFIER); } + public AmbiguousIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ambiguousIdentifier; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterAmbiguousIdentifier(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitAmbiguousIdentifier(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitAmbiguousIdentifier(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public AmbiguousIdentifierContext ambiguousIdentifier() { + AmbiguousIdentifierContext _localctx = new AmbiguousIdentifierContext(_ctx, State); + EnterRule(_localctx, 246, RULE_ambiguousIdentifier); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2301; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 2301; + switch (_input.La(1)) { + case IDENTIFIER: + { + State = 2299; Match(IDENTIFIER); + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEGIN: + case BEEP: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATABASE: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSE: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + { + State = 2300; ambiguousKeyword(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2303; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,382,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AsTypeClauseContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public TypeContext type() { + return GetRuleContext(0); + } + public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } + public FieldLengthContext fieldLength() { + return GetRuleContext(0); + } + public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } + public AsTypeClauseContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_asTypeClause; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterAsTypeClause(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitAsTypeClause(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitAsTypeClause(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public AsTypeClauseContext asTypeClause() { + AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); + EnterRule(_localctx, 248, RULE_asTypeClause); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2305; Match(AS); + State = 2307; + _la = _input.La(1); + if (_la==WS) { + { + State = 2306; Match(WS); + } + } + + State = 2311; + switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { + case 1: + { + State = 2309; Match(NEW); + State = 2310; Match(WS); + } + break; + } + State = 2313; type(); + State = 2318; + switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { + case 1: + { + State = 2315; + _la = _input.La(1); + if (_la==WS) { + { + State = 2314; Match(WS); + } + } + + State = 2317; fieldLength(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BaseTypeContext : ParserRuleContext { + public ITerminalNode COLLECTION() { return GetToken(VBAParser.COLLECTION, 0); } + public ITerminalNode INTEGER() { return GetToken(VBAParser.INTEGER, 0); } + public ITerminalNode LONG() { return GetToken(VBAParser.LONG, 0); } + public ITerminalNode VARIANT() { return GetToken(VBAParser.VARIANT, 0); } + public ITerminalNode BYTE() { return GetToken(VBAParser.BYTE, 0); } + public ITerminalNode STRING() { return GetToken(VBAParser.STRING, 0); } + public ITerminalNode BOOLEAN() { return GetToken(VBAParser.BOOLEAN, 0); } + public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } + public ITerminalNode DOUBLE() { return GetToken(VBAParser.DOUBLE, 0); } + public ITerminalNode SINGLE() { return GetToken(VBAParser.SINGLE, 0); } + public BaseTypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_baseType; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterBaseType(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitBaseType(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitBaseType(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public BaseTypeContext baseType() { + BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); + EnterRule(_localctx, 250, RULE_baseType); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2320; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la==INTEGER || _la==LONG || ((((_la - 154)) & ~0x3f) == 0 && ((1L << (_la - 154)) & ((1L << (SINGLE - 154)) | (1L << (STRING - 154)) | (1L << (VARIANT - 154)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CertainIdentifierContext : ParserRuleContext { + public AmbiguousKeywordContext ambiguousKeyword(int i) { + return GetRuleContext(i); + } + public ITerminalNode IDENTIFIER(int i) { + return GetToken(VBAParser.IDENTIFIER, i); + } + public IReadOnlyList ambiguousKeyword() { + return GetRuleContexts(); + } + public IReadOnlyList IDENTIFIER() { return GetTokens(VBAParser.IDENTIFIER); } + public CertainIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_certainIdentifier; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterCertainIdentifier(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitCertainIdentifier(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitCertainIdentifier(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CertainIdentifierContext certainIdentifier() { + CertainIdentifierContext _localctx = new CertainIdentifierContext(_ctx, State); + EnterRule(_localctx, 252, RULE_certainIdentifier); + try { + int _alt; + State = 2337; + switch (_input.La(1)) { + case IDENTIFIER: + EnterOuterAlt(_localctx, 1); + { + State = 2322; Match(IDENTIFIER); + State = 2327; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,388,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + State = 2325; + switch (_input.La(1)) { + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEGIN: + case BEEP: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATABASE: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSE: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + { + State = 2323; ambiguousKeyword(); + } + break; + case IDENTIFIER: + { + State = 2324; Match(IDENTIFIER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + State = 2329; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,388,_ctx); + } + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEGIN: + case BEEP: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATABASE: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSE: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + EnterOuterAlt(_localctx, 2); + { + State = 2330; ambiguousKeyword(); + State = 2333; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 2333; + switch (_input.La(1)) { + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEGIN: + case BEEP: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATABASE: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSE: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + { + State = 2331; ambiguousKeyword(); + } + break; + case IDENTIFIER: + { + State = 2332; Match(IDENTIFIER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2335; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,390,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ComparisonOperatorContext : ParserRuleContext { + public ITerminalNode GEQ() { return GetToken(VBAParser.GEQ, 0); } + public ITerminalNode NEQ() { return GetToken(VBAParser.NEQ, 0); } + public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } + public ITerminalNode LEQ() { return GetToken(VBAParser.LEQ, 0); } + public ITerminalNode LT() { return GetToken(VBAParser.LT, 0); } + public ITerminalNode GT() { return GetToken(VBAParser.GT, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } + public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_comparisonOperator; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterComparisonOperator(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitComparisonOperator(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitComparisonOperator(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ComparisonOperatorContext comparisonOperator() { + ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); + EnterRule(_localctx, 254, RULE_comparisonOperator); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2339; + _la = _input.La(1); + if ( !(_la==IS || _la==LIKE || ((((_la - 185)) & ~0x3f) == 0 && ((1L << (_la - 185)) & ((1L << (EQ - 185)) | (1L << (GEQ - 185)) | (1L << (GT - 185)) | (1L << (LEQ - 185)) | (1L << (LT - 185)) | (1L << (NEQ - 185)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ComplexTypeContext : ParserRuleContext { + public IReadOnlyList ambiguousIdentifier() { + return GetRuleContexts(); + } + public AmbiguousIdentifierContext ambiguousIdentifier(int i) { + return GetRuleContext(i); + } + public ComplexTypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_complexType; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterComplexType(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitComplexType(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitComplexType(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ComplexTypeContext complexType() { + ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); + EnterRule(_localctx, 256, RULE_complexType); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2341; ambiguousIdentifier(); + State = 2346; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,392,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2342; + _la = _input.La(1); + if ( !(_la==T__6 || _la==T__0) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2343; ambiguousIdentifier(); + } + } + } + State = 2348; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,392,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FieldLengthContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode INTEGERLITERAL() { return GetToken(VBAParser.INTEGERLITERAL, 0); } + public ITerminalNode MULT() { return GetToken(VBAParser.MULT, 0); } + public ITerminalNode WS() { return GetToken(VBAParser.WS, 0); } + public FieldLengthContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_fieldLength; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterFieldLength(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitFieldLength(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitFieldLength(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public FieldLengthContext fieldLength() { + FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); + EnterRule(_localctx, 258, RULE_fieldLength); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2349; Match(MULT); + State = 2351; + _la = _input.La(1); + if (_la==WS) { + { + State = 2350; Match(WS); + } + } + + State = 2355; + switch (_input.La(1)) { + case INTEGERLITERAL: + { + State = 2353; Match(INTEGERLITERAL); + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEGIN: + case BEEP: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATABASE: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSE: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + case IDENTIFIER: + { + State = 2354; ambiguousIdentifier(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LetterrangeContext : ParserRuleContext { + public CertainIdentifierContext certainIdentifier(int i) { + return GetRuleContext(i); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList certainIdentifier() { + return GetRuleContexts(); + } + public ITerminalNode MINUS() { return GetToken(VBAParser.MINUS, 0); } + public LetterrangeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_letterrange; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLetterrange(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLetterrange(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLetterrange(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LetterrangeContext letterrange() { + LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); + EnterRule(_localctx, 260, RULE_letterrange); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2357; certainIdentifier(); + State = 2366; + switch ( Interpreter.AdaptivePredict(_input,397,_ctx) ) { + case 1: + { + State = 2359; + _la = _input.La(1); + if (_la==WS) { + { + State = 2358; Match(WS); + } + } + + State = 2361; Match(MINUS); + State = 2363; + _la = _input.La(1); + if (_la==WS) { + { + State = 2362; Match(WS); + } + } + + State = 2365; certainIdentifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LineLabelContext : ParserRuleContext { + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public LineLabelContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lineLabel; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLineLabel(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLineLabel(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLineLabel(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LineLabelContext lineLabel() { + LineLabelContext _localctx = new LineLabelContext(_ctx, State); + EnterRule(_localctx, 262, RULE_lineLabel); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2368; ambiguousIdentifier(); + State = 2369; Match(COLON); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LiteralContext : ParserRuleContext { + public ITerminalNode INTEGERLITERAL() { return GetToken(VBAParser.INTEGERLITERAL, 0); } + public ITerminalNode NULL() { return GetToken(VBAParser.NULL, 0); } + public ITerminalNode STRINGLITERAL() { return GetToken(VBAParser.STRINGLITERAL, 0); } + public ITerminalNode FALSE() { return GetToken(VBAParser.FALSE, 0); } + public ITerminalNode TRUE() { return GetToken(VBAParser.TRUE, 0); } + public ITerminalNode NOTHING() { return GetToken(VBAParser.NOTHING, 0); } + public ITerminalNode DATELITERAL() { return GetToken(VBAParser.DATELITERAL, 0); } + public ITerminalNode HEXLITERAL() { return GetToken(VBAParser.HEXLITERAL, 0); } + public ITerminalNode DOUBLELITERAL() { return GetToken(VBAParser.DOUBLELITERAL, 0); } + public ITerminalNode SHORTLITERAL() { return GetToken(VBAParser.SHORTLITERAL, 0); } + public ITerminalNode OCTLITERAL() { return GetToken(VBAParser.OCTLITERAL, 0); } + public LiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_literal; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLiteral(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLiteral(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLiteral(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LiteralContext literal() { + LiteralContext _localctx = new LiteralContext(_ctx, State); + EnterRule(_localctx, 264, RULE_literal); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2371; + _la = _input.La(1); + if ( !(((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & ((1L << (FALSE - 73)) | (1L << (NOTHING - 73)) | (1L << (NULL - 73)))) != 0) || ((((_la - 166)) & ~0x3f) == 0 && ((1L << (_la - 166)) & ((1L << (TRUE - 166)) | (1L << (STRINGLITERAL - 166)) | (1L << (OCTLITERAL - 166)) | (1L << (HEXLITERAL - 166)) | (1L << (SHORTLITERAL - 166)) | (1L << (INTEGERLITERAL - 166)) | (1L << (DOUBLELITERAL - 166)) | (1L << (DATELITERAL - 166)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ITerminalNode LPAREN() { return GetToken(VBAParser.LPAREN, 0); } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } + public BaseTypeContext baseType() { + return GetRuleContext(0); + } + public ComplexTypeContext complexType() { + return GetRuleContext(0); + } + public TypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_type; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterType(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitType(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitType(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TypeContext type() { + TypeContext _localctx = new TypeContext(_ctx, State); + EnterRule(_localctx, 266, RULE_type); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2375; + switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { + case 1: + { + State = 2373; baseType(); + } + break; + + case 2: + { + State = 2374; complexType(); + } + break; + } + State = 2385; + switch ( Interpreter.AdaptivePredict(_input,401,_ctx) ) { + case 1: + { + State = 2378; + _la = _input.La(1); + if (_la==WS) { + { + State = 2377; Match(WS); + } + } + + State = 2380; Match(LPAREN); + State = 2382; + _la = _input.La(1); + if (_la==WS) { + { + State = 2381; Match(WS); + } + } + + State = 2384; Match(RPAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeHintContext : ParserRuleContext { + public TypeHintContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeHint; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterTypeHint(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitTypeHint(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitTypeHint(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public TypeHintContext typeHint() { + TypeHintContext _localctx = new TypeHintContext(_ctx, State); + EnterRule(_localctx, 268, RULE_typeHint); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2387; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VisibilityContext : ParserRuleContext { + public ITerminalNode FRIEND() { return GetToken(VBAParser.FRIEND, 0); } + public ITerminalNode PUBLIC() { return GetToken(VBAParser.PUBLIC, 0); } + public ITerminalNode GLOBAL() { return GetToken(VBAParser.GLOBAL, 0); } + public ITerminalNode PRIVATE() { return GetToken(VBAParser.PRIVATE, 0); } + public VisibilityContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_visibility; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterVisibility(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitVisibility(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitVisibility(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public VisibilityContext visibility() { + VisibilityContext _localctx = new VisibilityContext(_ctx, State); + EnterRule(_localctx, 270, RULE_visibility); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2389; + _la = _input.La(1); + if ( !(((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AmbiguousKeywordContext : ParserRuleContext { + public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } + public ITerminalNode APPACTIVATE() { return GetToken(VBAParser.APPACTIVATE, 0); } + public ITerminalNode DEFOBJ() { return GetToken(VBAParser.DEFOBJ, 0); } + public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } + public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } + public ITerminalNode RESET() { return GetToken(VBAParser.RESET, 0); } + public ITerminalNode XOR() { return GetToken(VBAParser.XOR, 0); } + public ITerminalNode TIME() { return GetToken(VBAParser.TIME, 0); } + public ITerminalNode RAISEEVENT() { return GetToken(VBAParser.RAISEEVENT, 0); } + public ITerminalNode LOAD() { return GetToken(VBAParser.LOAD, 0); } + public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } + public ITerminalNode DEFSNG() { return GetToken(VBAParser.DEFSNG, 0); } + public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } + public ITerminalNode ENUM() { return GetToken(VBAParser.ENUM, 0); } + public ITerminalNode GLOBAL() { return GetToken(VBAParser.GLOBAL, 0); } + public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } + public ITerminalNode ME() { return GetToken(VBAParser.ME, 0); } + public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } + public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } + public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } + public ITerminalNode WIDTH() { return GetToken(VBAParser.WIDTH, 0); } + public ITerminalNode STRING() { return GetToken(VBAParser.STRING, 0); } + public ITerminalNode MOD() { return GetToken(VBAParser.MOD, 0); } + public ITerminalNode OR() { return GetToken(VBAParser.OR, 0); } + public ITerminalNode DOUBLE() { return GetToken(VBAParser.DOUBLE, 0); } + public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } + public ITerminalNode IN() { return GetToken(VBAParser.IN, 0); } + public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } + public ITerminalNode SAVESETTING() { return GetToken(VBAParser.SAVESETTING, 0); } + public ITerminalNode TEXT() { return GetToken(VBAParser.TEXT, 0); } + public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } + public ITerminalNode PUBLIC() { return GetToken(VBAParser.PUBLIC, 0); } + public ITerminalNode PUT() { return GetToken(VBAParser.PUT, 0); } + public ITerminalNode MKDIR() { return GetToken(VBAParser.MKDIR, 0); } + public ITerminalNode SINGLE() { return GetToken(VBAParser.SINGLE, 0); } + public ITerminalNode ERROR() { return GetToken(VBAParser.ERROR, 0); } + public ITerminalNode TYPE() { return GetToken(VBAParser.TYPE, 0); } + public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } + public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } + public ITerminalNode SPC() { return GetToken(VBAParser.SPC, 0); } + public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } + public ITerminalNode NOT() { return GetToken(VBAParser.NOT, 0); } + public ITerminalNode BEEP() { return GetToken(VBAParser.BEEP, 0); } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } + public ITerminalNode DIM() { return GetToken(VBAParser.DIM, 0); } + public ITerminalNode OUTPUT() { return GetToken(VBAParser.OUTPUT, 0); } + public ITerminalNode KILL() { return GetToken(VBAParser.KILL, 0); } + public ITerminalNode IMPLEMENTS() { return GetToken(VBAParser.IMPLEMENTS, 0); } + public ITerminalNode VERSION() { return GetToken(VBAParser.VERSION, 0); } + public ITerminalNode ACCESS() { return GetToken(VBAParser.ACCESS, 0); } + public ITerminalNode COLLECTION() { return GetToken(VBAParser.COLLECTION, 0); } + public ITerminalNode DECLARE() { return GetToken(VBAParser.DECLARE, 0); } + public ITerminalNode TRUE() { return GetToken(VBAParser.TRUE, 0); } + public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } + public ITerminalNode VARIANT() { return GetToken(VBAParser.VARIANT, 0); } + public ITerminalNode BOOLEAN() { return GetToken(VBAParser.BOOLEAN, 0); } + public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } + public ITerminalNode DEFDBL() { return GetToken(VBAParser.DEFDBL, 0); } + public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } + public ITerminalNode LONG() { return GetToken(VBAParser.LONG, 0); } + public ITerminalNode REM() { return GetToken(VBAParser.REM, 0); } + public ITerminalNode RSET() { return GetToken(VBAParser.RSET, 0); } + public ITerminalNode ADDRESSOF() { return GetToken(VBAParser.ADDRESSOF, 0); } + public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } + public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } + public ITerminalNode TYPEOF() { return GetToken(VBAParser.TYPEOF, 0); } + public ITerminalNode SELECT() { return GetToken(VBAParser.SELECT, 0); } + public ITerminalNode UNLOCK() { return GetToken(VBAParser.UNLOCK, 0); } + public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } + public ITerminalNode ERASE() { return GetToken(VBAParser.ERASE, 0); } + public ITerminalNode INTEGER() { return GetToken(VBAParser.INTEGER, 0); } + public ITerminalNode FALSE() { return GetToken(VBAParser.FALSE, 0); } + public ITerminalNode PRESERVE() { return GetToken(VBAParser.PRESERVE, 0); } + public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } + public ITerminalNode SHARED() { return GetToken(VBAParser.SHARED, 0); } + public ITerminalNode APPEND() { return GetToken(VBAParser.APPEND, 0); } + public ITerminalNode CHDIR() { return GetToken(VBAParser.CHDIR, 0); } + public ITerminalNode PRIVATE() { return GetToken(VBAParser.PRIVATE, 0); } + public ITerminalNode UNLOAD() { return GetToken(VBAParser.UNLOAD, 0); } + public ITerminalNode DEFBYTE() { return GetToken(VBAParser.DEFBYTE, 0); } + public ITerminalNode RETURN() { return GetToken(VBAParser.RETURN, 0); } + public ITerminalNode NULL() { return GetToken(VBAParser.NULL, 0); } + public ITerminalNode NAME() { return GetToken(VBAParser.NAME, 0); } + public ITerminalNode BEGIN() { return GetToken(VBAParser.BEGIN, 0); } + public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } + public ITerminalNode WEND() { return GetToken(VBAParser.WEND, 0); } + public ITerminalNode DEFSTR() { return GetToken(VBAParser.DEFSTR, 0); } + public ITerminalNode IMP() { return GetToken(VBAParser.IMP, 0); } + public ITerminalNode DEFVAR() { return GetToken(VBAParser.DEFVAR, 0); } + public ITerminalNode CHDRIVE() { return GetToken(VBAParser.CHDRIVE, 0); } + public ITerminalNode EVENT() { return GetToken(VBAParser.EVENT, 0); } + public ITerminalNode CONST() { return GetToken(VBAParser.CONST, 0); } + public ITerminalNode ELSEIF() { return GetToken(VBAParser.ELSEIF, 0); } + public ITerminalNode PRINT() { return GetToken(VBAParser.PRINT, 0); } + public ITerminalNode DEFINT() { return GetToken(VBAParser.DEFINT, 0); } + public ITerminalNode NOTHING() { return GetToken(VBAParser.NOTHING, 0); } + public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } + public ITerminalNode DATABASE() { return GetToken(VBAParser.DATABASE, 0); } + public ITerminalNode BYTE() { return GetToken(VBAParser.BYTE, 0); } + public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } + public ITerminalNode STEP() { return GetToken(VBAParser.STEP, 0); } + public ITerminalNode SAVEPICTURE() { return GetToken(VBAParser.SAVEPICTURE, 0); } + public ITerminalNode SEEK() { return GetToken(VBAParser.SEEK, 0); } + public ITerminalNode TAB() { return GetToken(VBAParser.TAB, 0); } + public ITerminalNode RANDOM() { return GetToken(VBAParser.RANDOM, 0); } + public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } + public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } + public ITerminalNode DEFCUR() { return GetToken(VBAParser.DEFCUR, 0); } + public ITerminalNode ALIAS() { return GetToken(VBAParser.ALIAS, 0); } + public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } + public ITerminalNode DEFDATE() { return GetToken(VBAParser.DEFDATE, 0); } + public ITerminalNode CLASS() { return GetToken(VBAParser.CLASS, 0); } + public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } + public ITerminalNode FRIEND() { return GetToken(VBAParser.FRIEND, 0); } + public ITerminalNode EQV() { return GetToken(VBAParser.EQV, 0); } + public ITerminalNode READ() { return GetToken(VBAParser.READ, 0); } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ITerminalNode DEFBOOL() { return GetToken(VBAParser.DEFBOOL, 0); } + public ITerminalNode OPEN() { return GetToken(VBAParser.OPEN, 0); } + public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } + public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } + public ITerminalNode AND() { return GetToken(VBAParser.AND, 0); } + public ITerminalNode DEFLNG() { return GetToken(VBAParser.DEFLNG, 0); } + public ITerminalNode MID() { return GetToken(VBAParser.MID, 0); } + public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } + public ITerminalNode WITH() { return GetToken(VBAParser.WITH, 0); } + public ITerminalNode DEFDEC() { return GetToken(VBAParser.DEFDEC, 0); } + public ITerminalNode SETATTR() { return GetToken(VBAParser.SETATTR, 0); } + public ITerminalNode WRITE() { return GetToken(VBAParser.WRITE, 0); } + public ITerminalNode LEN() { return GetToken(VBAParser.LEN, 0); } + public ITerminalNode EACH() { return GetToken(VBAParser.EACH, 0); } + public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } + public ITerminalNode GET() { return GetToken(VBAParser.GET, 0); } + public ITerminalNode FILECOPY() { return GetToken(VBAParser.FILECOPY, 0); } + public ITerminalNode LIB() { return GetToken(VBAParser.LIB, 0); } + public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public ITerminalNode OPTIONAL() { return GetToken(VBAParser.OPTIONAL, 0); } + public ITerminalNode REDIM() { return GetToken(VBAParser.REDIM, 0); } + public ITerminalNode END() { return GetToken(VBAParser.END, 0); } + public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } + public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } + public ITerminalNode RANDOMIZE() { return GetToken(VBAParser.RANDOMIZE, 0); } + public ITerminalNode WITHEVENTS() { return GetToken(VBAParser.WITHEVENTS, 0); } + public AmbiguousKeywordContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ambiguousKeyword; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterAmbiguousKeyword(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitAmbiguousKeyword(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitAmbiguousKeyword(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public AmbiguousKeywordContext ambiguousKeyword() { + AmbiguousKeywordContext _localctx = new AmbiguousKeywordContext(_ctx, State); + EnterRule(_localctx, 272, RULE_ambiguousKeyword); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2391; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RemCommentContext : ParserRuleContext { + public ITerminalNode REMCOMMENT() { return GetToken(VBAParser.REMCOMMENT, 0); } + public RemCommentContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_remComment; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterRemComment(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitRemComment(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitRemComment(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public RemCommentContext remComment() { + RemCommentContext _localctx = new RemCommentContext(_ctx, State); + EnterRule(_localctx, 274, RULE_remComment); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2393; Match(REMCOMMENT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CommentContext : ParserRuleContext { + public ITerminalNode COMMENT() { return GetToken(VBAParser.COMMENT, 0); } + public CommentContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_comment; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterComment(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitComment(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitComment(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CommentContext comment() { + CommentContext _localctx = new CommentContext(_ctx, State); + EnterRule(_localctx, 276, RULE_comment); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2395; Match(COMMENT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EndOfLineContext : ParserRuleContext { + public CommentContext comment() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode NEWLINE() { return GetToken(VBAParser.NEWLINE, 0); } + public RemCommentContext remComment() { + return GetRuleContext(0); + } + public EndOfLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_endOfLine; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterEndOfLine(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitEndOfLine(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitEndOfLine(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EndOfLineContext endOfLine() { + EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); + EnterRule(_localctx, 278, RULE_endOfLine); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2398; + _la = _input.La(1); + if (_la==WS) { + { + State = 2397; Match(WS); + } + } + + State = 2403; + switch (_input.La(1)) { + case NEWLINE: + { + State = 2400; Match(NEWLINE); + } + break; + case COMMENT: + { + State = 2401; comment(); + } + break; + case REMCOMMENT: + { + State = 2402; remComment(); + } + break; + default: + throw new NoViableAltException(this); + } + State = 2406; + switch ( Interpreter.AdaptivePredict(_input,404,_ctx) ) { + case 1: + { + State = 2405; Match(WS); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EndOfStatementContext : ParserRuleContext { + public IReadOnlyList endOfLine() { + return GetRuleContexts(); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public EndOfLineContext endOfLine(int i) { + return GetRuleContext(i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode COLON(int i) { + return GetToken(VBAParser.COLON, i); + } + public IReadOnlyList COLON() { return GetTokens(VBAParser.COLON); } + public EndOfStatementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_endOfStatement; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterEndOfStatement(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitEndOfStatement(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitEndOfStatement(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public EndOfStatementContext endOfStatement() { + EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); + EnterRule(_localctx, 280, RULE_endOfStatement); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2418; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,408,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + State = 2416; + switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { + case 1: + { + State = 2408; endOfLine(); + } + break; + + case 2: + { + State = 2410; + _la = _input.La(1); + if (_la==WS) { + { + State = 2409; Match(WS); + } + } + + State = 2412; Match(COLON); + State = 2414; + switch ( Interpreter.AdaptivePredict(_input,406,_ctx) ) { + case 1: + { + State = 2413; Match(WS); + } + break; + } + } + break; + } + } + } + State = 2420; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,408,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 94: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + } + return true; + } + private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { + switch (predIndex) { + case 0: return Precpred(_ctx, 14); + + case 1: return Precpred(_ctx, 12); + + case 2: return Precpred(_ctx, 11); + + case 3: return Precpred(_ctx, 10); + + case 4: return Precpred(_ctx, 9); + + case 5: return Precpred(_ctx, 8); + + case 6: return Precpred(_ctx, 7); + + case 7: return Precpred(_ctx, 5); + + case 8: return Precpred(_ctx, 4); + + case 9: return Precpred(_ctx, 3); + + case 10: return Precpred(_ctx, 2); + + case 11: return Precpred(_ctx, 1); + } + return true; + } + + public static readonly string _serializedATN = + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xEF\x978\x4\x2"+ + "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ + "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ + "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ + "\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A\x4\x1B"+ + "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!"+ + "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t)\x4*\t"+ + "*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31\x4\x32"+ + "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37\t\x37"+ + "\x4\x38\t\x38\x4\x39\t\x39\x4:\t:\x4;\t;\x4<\t<\x4=\t=\x4>\t>\x4?\t?\x4"+ + "@\t@\x4\x41\t\x41\x4\x42\t\x42\x4\x43\t\x43\x4\x44\t\x44\x4\x45\t\x45"+ + "\x4\x46\t\x46\x4G\tG\x4H\tH\x4I\tI\x4J\tJ\x4K\tK\x4L\tL\x4M\tM\x4N\tN"+ + "\x4O\tO\x4P\tP\x4Q\tQ\x4R\tR\x4S\tS\x4T\tT\x4U\tU\x4V\tV\x4W\tW\x4X\t"+ + "X\x4Y\tY\x4Z\tZ\x4[\t[\x4\\\t\\\x4]\t]\x4^\t^\x4_\t_\x4`\t`\x4\x61\t\x61"+ + "\x4\x62\t\x62\x4\x63\t\x63\x4\x64\t\x64\x4\x65\t\x65\x4\x66\t\x66\x4g"+ + "\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\tp\x4"+ + "q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\tz\x4"+ + "{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4\x82"+ + "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ + "\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C\x4\x8D"+ + "\t\x8D\x4\x8E\t\x8E\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x121\n\x3\x3\x3\x3\x3"+ + "\x3\x3\x3\x3\x5\x3\x127\n\x3\x3\x3\x5\x3\x12A\n\x3\x3\x3\x3\x3\x5\x3\x12E"+ + "\n\x3\x3\x3\x3\x3\x5\x3\x132\n\x3\x3\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3"+ + "\x3\x5\x3\x13A\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3"+ + "\x5\x6\x5\x145\n\x5\r\x5\xE\x5\x146\x3\x5\x3\x5\x3\x6\x3\x6\x5\x6\x14D"+ + "\n\x6\x3\x6\x3\x6\x5\x6\x151\n\x6\x3\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x6"+ + "\a\x159\n\a\r\a\xE\a\x15A\x3\b\x3\b\x3\b\x3\b\a\b\x161\n\b\f\b\xE\b\x164"+ + "\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x170\n\t\x3"+ + "\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x17B\n\n\x3\v\x3\v\x3"+ + "\v\x3\v\a\v\x181\n\v\f\v\xE\v\x184\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3"+ + "\f\x5\f\x18D\n\f\x3\r\x3\r\x3\r\x3\r\x5\r\x193\n\r\x3\r\x3\r\x5\r\x197"+ + "\n\r\x3\r\x3\r\x5\r\x19B\n\r\x3\r\x3\r\x5\r\x19F\n\r\x3\r\a\r\x1A2\n\r"+ + "\f\r\xE\r\x1A5\v\r\x3\xE\x3\xE\x3\xE\x3\xE\a\xE\x1AB\n\xE\f\xE\xE\xE\x1AE"+ + "\v\xE\x3\xE\x3\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5"+ + "\xF\x1F4\n\xF\x3\x10\x3\x10\x3\x10\x3\x10\x5\x10\x1FA\n\x10\x3\x10\x3"+ + "\x10\x5\x10\x1FE\n\x10\x3\x10\x5\x10\x201\n\x10\x3\x11\x3\x11\x3\x12\x3"+ + "\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3"+ + "\x14\x5\x14\x211\n\x14\x3\x14\x3\x14\x5\x14\x215\n\x14\x3\x14\a\x14\x218"+ + "\n\x14\f\x14\xE\x14\x21B\v\x14\x5\x14\x21D\n\x14\x3\x15\x3\x15\x3\x15"+ + "\x5\x15\x222\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x228\n\x15\x3\x15"+ + "\x3\x15\x5\x15\x22C\n\x15\x3\x15\a\x15\x22F\n\x15\f\x15\xE\x15\x232\v"+ + "\x15\x3\x16\x3\x16\x5\x16\x236\n\x16\x3\x16\x3\x16\x5\x16\x23A\n\x16\x3"+ + "\x16\x5\x16\x23D\n\x16\x3\x16\x3\x16\x5\x16\x241\n\x16\x3\x16\x3\x16\x3"+ + "\x17\x3\x17\x5\x17\x247\n\x17\x3\x17\x3\x17\x5\x17\x24B\n\x17\x3\x17\x3"+ + "\x17\x3\x18\x3\x18\x3\x18\x5\x18\x252\n\x18\x3\x18\x3\x18\x3\x18\x3\x18"+ + "\x5\x18\x258\n\x18\x3\x18\x3\x18\x5\x18\x25C\n\x18\x3\x18\x5\x18\x25F"+ + "\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x264\n\x18\x3\x18\x3\x18\x3\x18\x3"+ + "\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x26E\n\x18\x3\x18\x5\x18\x271"+ + "\n\x18\x3\x18\x5\x18\x274\n\x18\x3\x18\x3\x18\x5\x18\x278\n\x18\x3\x19"+ + "\x3\x19\x3\x19\x3\x19\x5\x19\x27E\n\x19\x3\x19\x3\x19\x5\x19\x282\n\x19"+ + "\x3\x19\a\x19\x285\n\x19\f\x19\xE\x19\x288\v\x19\x3\x1A\x3\x1A\x3\x1A"+ + "\x3\x1A\x5\x1A\x28E\n\x1A\x3\x1A\x3\x1A\x5\x1A\x292\n\x1A\x3\x1A\x3\x1A"+ + "\x5\x1A\x296\n\x1A\x3\x1A\x3\x1A\x5\x1A\x29A\n\x1A\x3\x1A\x5\x1A\x29D"+ + "\n\x1A\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2A2\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ + "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2AD\n\x1B\x3\x1B\x3\x1B"+ + "\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B"+ + "\x2BA\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x2C1\n\x1D\x3\x1D"+ + "\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x2C8\n\x1D\f\x1D\xE\x1D\x2CB\v\x1D"+ + "\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x2D1\n\x1E\x3\x1E\x3\x1E\x5\x1E\x2D5"+ + "\n\x1E\x3\x1E\x5\x1E\x2D8\n\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3"+ + "\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x5!\x2E7\n!\x3!\x3!\x3!\x3!\x5!\x2ED"+ + "\n!\x3!\x3!\x3\"\x3\"\x3#\x3#\x3#\x3#\x5#\x2F7\n#\x3#\x3#\x5#\x2FB\n#"+ + "\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x305\n$\x3$\x3$\x3$\x3$\x3$\x3$\x5"+ + "$\x30D\n$\x3$\x3$\x3$\x5$\x312\n$\x3%\x3%\x3%\x3%\x5%\x318\n%\x3%\x3%"+ + "\x5%\x31C\n%\x3%\x5%\x31F\n%\x3%\x3%\x5%\x323\n%\x3%\x3%\x3%\x3%\x3%\x3"+ + "%\x3%\x3%\x3%\x5%\x32E\n%\x3%\x3%\x5%\x332\n%\x3%\x3%\x3%\x5%\x337\n%"+ + "\x3&\x3&\x3&\x5&\x33C\n&\x3&\x3&\x5&\x340\n&\x3&\x3&\x5&\x344\n&\x3&\x3"+ + "&\x5&\x348\n&\x3&\x5&\x34B\n&\x3&\x5&\x34E\n&\x3&\x5&\x351\n&\x3&\x5&"+ + "\x354\n&\x3&\x3&\x5&\x358\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x360\n\'"+ + "\x3\'\x3\'\x5\'\x364\n\'\x3\'\x5\'\x367\n\'\x3\'\x5\'\x36A\n\'\x3\'\x3"+ + "\'\x5\'\x36E\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3"+ + "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x385\n*\x3*\x3*\a*\x389\n*\f*\xE"+ + "*\x38C\v*\x3*\x5*\x38F\n*\x3*\x3*\x5*\x393\n*\x3+\x3+\x3+\x3+\x3+\x3+"+ + "\x3+\x5+\x39C\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3A7\n-\x3.\x3"+ + ".\x3.\x5.\x3AC\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30\x3B6"+ + "\n\x30\x3\x30\x3\x30\x5\x30\x3BA\n\x30\x3\x30\x6\x30\x3BD\n\x30\r\x30"+ + "\xE\x30\x3BE\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5\x32\x3C7\n\x32"+ + "\x3\x32\x3\x32\x5\x32\x3CB\n\x32\x3\x32\x3\x32\x5\x32\x3CF\n\x32\x3\x32"+ + "\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x3D7\n\x33\x3\x33\x3\x33\x5"+ + "\x33\x3DB\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35"+ + "\x3\x35\x3\x35\x5\x35\x3E7\n\x35\x3\x35\x3\x35\x5\x35\x3EB\n\x35\x3\x35"+ + "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x3F2\n\x35\x5\x35\x3F4\n\x35\x3\x36"+ + "\x3\x36\x3\x36\x3\x36\x5\x36\x3FA\n\x36\x3\x36\x3\x36\x5\x36\x3FE\n\x36"+ + "\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x404\n\x37\x3\x37\x3\x37\x5\x37\x408"+ + "\n\x37\x3\x37\x3\x37\x5\x37\x40C\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3"+ + "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ + ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x424\n:\x3;\x3;\x3;\x3;\x3;\x3;\x3;"+ + "\x3;\x5;\x42E\n;\x3;\x3;\x5;\x432\n;\x3;\a;\x435\n;\f;\xE;\x438\v;\x3"+ + "<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x442\n<\x3<\x3<\x5<\x446\n<\x3<\a<\x449"+ + "\n<\f<\xE<\x44C\v<\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x459"+ + "\n=\x3=\x3=\x5=\x45D\n=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x466\n=\x3=\x3"+ + "=\x5=\x46A\n=\x3=\x5=\x46D\n=\x3>\x3>\x5>\x471\n>\x3>\x3>\x5>\x475\n>"+ + "\x3>\x5>\x478\n>\a>\x47A\n>\f>\xE>\x47D\v>\x3>\x5>\x480\n>\x3>\x5>\x483"+ + "\n>\x3>\x3>\x5>\x487\n>\x3>\x5>\x48A\n>\x6>\x48C\n>\r>\xE>\x48D\x5>\x490"+ + "\n>\x3?\x3?\x3?\x5?\x495\n?\x3?\x3?\x5?\x499\n?\x3?\x3?\x5?\x49D\n?\x3"+ + "?\x3?\x5?\x4A1\n?\x5?\x4A3\n?\x3@\x3@\x3@\x3@\x5@\x4A9\n@\x3@\x3@\x5@"+ + "\x4AD\n@\x3@\x5@\x4B0\n@\x3\x41\x3\x41\x3\x41\x5\x41\x4B5\n\x41\x3\x41"+ + "\x3\x41\x5\x41\x4B9\n\x41\x3\x41\x3\x41\x3\x41\x3\x41\x5\x41\x4BF\n\x41"+ + "\x3\x41\x5\x41\x4C2\n\x41\x3\x41\x5\x41\x4C5\n\x41\x3\x41\x3\x41\x5\x41"+ + "\x4C9\n\x41\x3\x41\x3\x41\x5\x41\x4CD\n\x41\x3\x41\x3\x41\x3\x42\x3\x42"+ + "\x3\x42\x5\x42\x4D4\n\x42\x3\x42\x3\x42\x5\x42\x4D8\n\x42\x3\x42\x3\x42"+ + "\x3\x42\x3\x42\x5\x42\x4DE\n\x42\x3\x42\x5\x42\x4E1\n\x42\x3\x42\x3\x42"+ + "\x5\x42\x4E5\n\x42\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x4EC\n\x43"+ + "\x3\x43\x3\x43\x5\x43\x4F0\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x4F6"+ + "\n\x43\x3\x43\x5\x43\x4F9\n\x43\x3\x43\x3\x43\x5\x43\x4FD\n\x43\x3\x43"+ + "\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44\x5\x44\x505\n\x44\x3\x44\x3\x44\x5"+ + "\x44\x509\n\x44\x3\x44\x5\x44\x50C\n\x44\x3\x44\x5\x44\x50F\n\x44\x3\x44"+ + "\x3\x44\x5\x44\x513\n\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5"+ + "\x45\x51B\n\x45\x3\x45\x3\x45\x5\x45\x51F\n\x45\x3\x45\x3\x45\x5\x45\x523"+ + "\n\x45\x5\x45\x525\n\x45\x3\x45\x5\x45\x528\n\x45\x3\x46\x3\x46\x3\x46"+ + "\x5\x46\x52D\n\x46\x3G\x3G\x3G\x3G\x5G\x533\nG\x3G\x3G\x5G\x537\nG\x3"+ + "G\x3G\x5G\x53B\nG\x3G\aG\x53E\nG\fG\xEG\x541\vG\x3H\x3H\x5H\x545\nH\x3"+ + "H\x3H\x5H\x549\nH\x3H\x3H\x5H\x54D\nH\x3H\x3H\x3H\x5H\x552\nH\x3I\x3I"+ + "\x3J\x3J\x3J\x3J\x5J\x55A\nJ\x5J\x55C\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3"+ + "M\x3M\x3M\x5M\x568\nM\x3M\x3M\x5M\x56C\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N"+ + "\x574\nN\x3N\x3N\x5N\x578\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x580\nO\x3O\x3"+ + "O\x5O\x584\nO\x3O\x3O\x5O\x588\nO\x3O\x3O\x5O\x58C\nO\x3O\x3O\x5O\x590"+ + "\nO\x3O\x3O\x5O\x594\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x59C\nP\x3P\x3P\x5"+ + "P\x5A0\nP\x3P\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x5AB\nQ\fQ\xEQ\x5AE\v"+ + "Q\x3Q\x3Q\x3R\x3R\x5R\x5B4\nR\x3R\x3R\x5R\x5B8\nR\x3R\x3R\x3R\x3R\x3R"+ + "\x3R\x3R\x3R\x3R\x5R\x5C3\nR\x3S\x3S\x3S\x3S\x3S\x5S\x5CA\nS\x3T\x3T\x3"+ + "T\x5T\x5CF\nT\x3T\x3T\x5T\x5D3\nT\x3T\aT\x5D6\nT\fT\xET\x5D9\vT\x5T\x5DB"+ + "\nT\x3U\x3U\x3U\x3U\x5U\x5E1\nU\x3U\x3U\x5U\x5E5\nU\x3U\x5U\x5E8\nU\x3"+ + "V\x3V\x3V\x3V\x5V\x5EE\nV\x3V\x3V\x5V\x5F2\nV\x3V\x3V\x3W\x3W\x3W\x3W"+ + "\x5W\x5FA\nW\x3W\x3W\x5W\x5FE\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x607"+ + "\nY\x3Y\x3Y\x5Y\x60B\nY\x3Y\x3Y\x5Y\x60F\nY\x3Y\x3Y\x5Y\x613\nY\x3Y\x5"+ + "Y\x616\nY\x3Y\x3Y\x5Y\x61A\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x620\nZ\x3Z\x3Z\x5Z"+ + "\x624\nZ\x3Z\x3Z\x3[\x3[\x3[\x5[\x62B\n[\x3[\x3[\x3[\x3[\x3[\a[\x632\n"+ + "[\f[\xE[\x635\v[\x3[\x3[\x3\\\x3\\\x5\\\x63B\n\\\x3\\\x3\\\x5\\\x63F\n"+ + "\\\x3\\\x5\\\x642\n\\\x3\\\x5\\\x645\n\\\x3\\\x5\\\x648\n\\\x3\\\x3\\"+ + "\x5\\\x64C\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3]\x3]\x5]\x657\n]\x3^\x3"+ + "^\x3^\x3^\x3_\x3_\x3_\x3_\x5_\x661\n_\x3_\x3_\x5_\x665\n_\x3_\x3_\x3_"+ + "\x3_\x3_\x5_\x66C\n_\x5_\x66E\n_\x3`\x3`\x3`\x5`\x673\n`\x3`\x3`\x3`\x5"+ + "`\x678\n`\x3`\x3`\x3`\x5`\x67D\n`\x3`\x3`\x5`\x681\n`\x3`\x3`\x3`\x3`"+ + "\x5`\x687\n`\x3`\x3`\x3`\x5`\x68C\n`\x3`\x3`\x3`\x3`\x3`\x5`\x693\n`\x3"+ + "`\x3`\x5`\x697\n`\x3`\x3`\x5`\x69B\n`\x3`\a`\x69E\n`\f`\xE`\x6A1\v`\x3"+ + "`\x3`\x3`\x3`\x5`\x6A7\n`\x3`\x3`\x5`\x6AB\n`\x3`\x3`\x5`\x6AF\n`\x3`"+ + "\x3`\x3`\x5`\x6B4\n`\x3`\x3`\x5`\x6B8\n`\x3`\x3`\x3`\x5`\x6BD\n`\x3`\x3"+ + "`\x5`\x6C1\n`\x3`\x3`\x3`\x5`\x6C6\n`\x3`\x3`\x5`\x6CA\n`\x3`\x3`\x3`"+ + "\x5`\x6CF\n`\x3`\x3`\x5`\x6D3\n`\x3`\x3`\x3`\x5`\x6D8\n`\x3`\x3`\x5`\x6DC"+ + "\n`\x3`\x3`\x3`\x5`\x6E1\n`\x3`\x3`\x5`\x6E5\n`\x3`\x3`\x3`\x5`\x6EA\n"+ + "`\x3`\x3`\x5`\x6EE\n`\x3`\x3`\x3`\x5`\x6F3\n`\x3`\x3`\x5`\x6F7\n`\x3`"+ + "\x3`\x3`\x5`\x6FC\n`\x3`\x3`\x5`\x700\n`\x3`\x3`\x3`\x5`\x705\n`\x3`\x3"+ + "`\x5`\x709\n`\x3`\x3`\x3`\x5`\x70E\n`\x3`\x3`\x5`\x712\n`\x3`\a`\x715"+ + "\n`\f`\xE`\x718\v`\x3\x61\x3\x61\x3\x61\x5\x61\x71D\n\x61\x3\x61\x3\x61"+ + "\x3\x61\x5\x61\x722\n\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62\x728\n\x62"+ + "\x3\x62\x3\x62\x5\x62\x72C\n\x62\x3\x62\a\x62\x72F\n\x62\f\x62\xE\x62"+ + "\x732\v\x62\x3\x63\x3\x63\x5\x63\x736\n\x63\x3\x63\x3\x63\x5\x63\x73A"+ + "\n\x63\x3\x63\x3\x63\x5\x63\x73E\n\x63\x5\x63\x740\n\x63\x3\x63\x3\x63"+ + "\x5\x63\x744\n\x63\x5\x63\x746\n\x63\x3\x63\x5\x63\x749\n\x63\x3\x63\x3"+ + "\x63\x5\x63\x74D\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x5\x64\x754"+ + "\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x75C\n\x65\x3"+ + "\x65\x3\x65\x5\x65\x760\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3\x66"+ + "\x3\x66\x3\x66\x5\x66\x76A\n\x66\x3\x66\x3\x66\x5\x66\x76E\n\x66\x3\x66"+ + "\x3\x66\x3g\x3g\x3g\x3g\x5g\x776\ng\x3g\x3g\x5g\x77A\ng\x3g\x5g\x77D\n"+ + "g\x3h\x5h\x780\nh\x3h\x3h\x3i\x3i\x5i\x786\ni\x3j\x3j\x3j\x3j\x5j\x78C"+ + "\nj\x3j\x5j\x78F\nj\x3j\x3j\x5j\x793\nj\x3j\x3j\x5j\x797\nj\x3j\x3j\x5"+ + "j\x79B\nj\x3j\x5j\x79E\nj\x3j\x3j\x3j\x3j\aj\x7A4\nj\fj\xEj\x7A7\vj\x3"+ + "k\x3k\x3k\x5k\x7AC\nk\x3k\x3k\x3k\x5k\x7B1\nk\x3k\x5k\x7B4\nk\x3k\x3k"+ + "\x5k\x7B8\nk\x3k\x3k\x5k\x7BC\nk\x3k\x3k\x5k\x7C0\nk\x3k\x5k\x7C3\nk\x3"+ + "k\x3k\x3k\x3k\ak\x7C9\nk\fk\xEk\x7CC\vk\x3l\x3l\x5l\x7D0\nl\x3m\x5m\x7D3"+ + "\nm\x3m\x3m\x3m\x5m\x7D8\nm\x3m\x3m\x5m\x7DC\nm\x3m\x5m\x7DF\nm\x3m\x5"+ + "m\x7E2\nm\x3m\x5m\x7E5\nm\x3m\x3m\x3m\x3m\am\x7EB\nm\fm\xEm\x7EE\vm\x3"+ + "n\x3n\x3n\x5n\x7F3\nn\x3n\x5n\x7F6\nn\x3n\x3n\x3n\x3n\an\x7FC\nn\fn\xE"+ + "n\x7FF\vn\x3o\x3o\x3o\x3o\x5o\x805\no\x3p\x3p\x5p\x809\np\x3p\x5p\x80C"+ + "\np\x3p\x5p\x80F\np\x3p\x5p\x812\np\x3p\x3p\x3p\x3p\ap\x818\np\fp\xEp"+ + "\x81B\vp\x3q\x3q\x5q\x81F\nq\x3q\x5q\x822\nq\x3q\x5q\x825\nq\x3q\x3q\x5"+ + "q\x829\nq\x3q\x3q\x5q\x82D\nq\x5q\x82F\nq\x3q\x3q\x5q\x833\nq\x3q\x5q"+ + "\x836\nq\x3q\x5q\x839\nq\x3q\x3q\x3q\x3q\aq\x83F\nq\fq\xEq\x842\vq\x3"+ + "r\x3r\x5r\x846\nr\x3r\x3r\x5r\x84A\nr\x6r\x84C\nr\rr\xEr\x84D\x3r\x5r"+ + "\x851\nr\x3r\x5r\x854\nr\x3r\x5r\x857\nr\x3r\x3r\x3r\x3r\ar\x85D\nr\f"+ + "r\xEr\x860\vr\x3s\x3s\x5s\x864\ns\x3s\x3s\x5s\x868\ns\x3t\x5t\x86B\nt"+ + "\x3t\x3t\x3u\x5u\x870\nu\x3u\x5u\x873\nu\x3u\x3u\x5u\x877\nu\au\x879\n"+ + "u\fu\xEu\x87C\vu\x3u\x3u\x5u\x880\nu\x3u\x3u\x5u\x884\nu\x3u\x5u\x887"+ + "\nu\au\x889\nu\fu\xEu\x88C\vu\x3v\x5v\x88F\nv\x3v\x3v\x5v\x893\nv\x3v"+ + "\x5v\x896\nv\x3v\x3v\x3w\x3w\x5w\x89C\nw\x3w\x3w\x5w\x8A0\nw\x3x\x3x\x5"+ + "x\x8A4\nx\x3x\x3x\x5x\x8A8\nx\x3x\x3x\x5x\x8AC\nx\x3x\ax\x8AF\nx\fx\xE"+ + "x\x8B2\vx\x5x\x8B4\nx\x3x\x5x\x8B7\nx\x3x\x3x\x3y\x3y\x5y\x8BD\ny\x3y"+ + "\x3y\x5y\x8C1\ny\x3y\x3y\x5y\x8C5\ny\x3y\x3y\x5y\x8C9\ny\x3y\x5y\x8CC"+ + "\ny\x3y\x3y\x5y\x8D0\ny\x3y\x5y\x8D3\ny\x3y\x5y\x8D6\ny\x3y\x5y\x8D9\n"+ + "y\x3y\x5y\x8DC\ny\x3y\x5y\x8DF\ny\x3z\x3z\x5z\x8E3\nz\x3z\x3z\x3{\x3{"+ + "\x5{\x8E9\n{\x3{\x3{\x5{\x8ED\n{\x3{\a{\x8F0\n{\f{\xE{\x8F3\v{\x3|\x3"+ + "|\x3|\x3|\x3|\x5|\x8FA\n|\x3|\x3|\x3}\x3}\x6}\x900\n}\r}\xE}\x901\x3~"+ + "\x3~\x5~\x906\n~\x3~\x3~\x5~\x90A\n~\x3~\x3~\x5~\x90E\n~\x3~\x5~\x911"+ + "\n~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\a\x80\x918\n\x80\f\x80\xE\x80\x91B"+ + "\v\x80\x3\x80\x3\x80\x3\x80\x6\x80\x920\n\x80\r\x80\xE\x80\x921\x5\x80"+ + "\x924\n\x80\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\a\x82\x92B\n\x82\f\x82"+ + "\xE\x82\x92E\v\x82\x3\x83\x3\x83\x5\x83\x932\n\x83\x3\x83\x3\x83\x5\x83"+ + "\x936\n\x83\x3\x84\x3\x84\x5\x84\x93A\n\x84\x3\x84\x3\x84\x5\x84\x93E"+ + "\n\x84\x3\x84\x5\x84\x941\n\x84\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3"+ + "\x87\x3\x87\x5\x87\x94A\n\x87\x3\x87\x5\x87\x94D\n\x87\x3\x87\x3\x87\x5"+ + "\x87\x951\n\x87\x3\x87\x5\x87\x954\n\x87\x3\x88\x3\x88\x3\x89\x3\x89\x3"+ + "\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8D\x5\x8D\x961\n\x8D\x3\x8D"+ + "\x3\x8D\x3\x8D\x5\x8D\x966\n\x8D\x3\x8D\x5\x8D\x969\n\x8D\x3\x8E\x3\x8E"+ + "\x5\x8E\x96D\n\x8E\x3\x8E\x3\x8E\x5\x8E\x971\n\x8E\a\x8E\x973\n\x8E\f"+ + "\x8E\xE\x8E\x976\v\x8E\x3\x8E\x2\x2\x3\xBE\x8F\x2\x2\x4\x2\x6\x2\b\x2"+ + "\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E"+ + "\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2"+ + ":\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2"+ + "X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2"+ + "v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2"+ + "\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2"+ + "\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2"+ + "\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2"+ + "\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2"+ + "\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2"+ + "\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104"+ + "\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116"+ + "\x2\x118\x2\x11A\x2\x2\x17\x5\x2\x15\x15\"\"\xA4\xA4\x3\x2%\x30\x4\x2"+ + "\xAD\xAD\xB1\xB1\x3\x2\x46J\x3\x2tu\a\x2\x11\x11\x15\x15XX}}\x88\x88\x4"+ + "\x2\x8B\x8C\xB5\xB5\x4\x2\x65g\x9B\x9B\x3\x2\b\t\x4\x2\x9D\x9D\xA3\xA3"+ + "\x4\x2\xB9\xB9\xC2\xC2\x4\x2\xC1\xC1\xC4\xC4\a\x2YY\x63\x63\xBB\xBE\xC0"+ + "\xC0\xC3\xC3\x4\x2\x4\x4\n\n\x4\x2\x17\x18~~\x3\x2\x17\x18\f\x2\x16\x16"+ + "\x19\x19 ##\x34\x34ZZ^^\x9C\x9C\xA1\xA1\xAE\xAE\x6\x2KKqr\xA8\xA8\xC9"+ + "\xCF\x4\x2\x3\a\xB7\xB7\x6\x2MMQQ\x81\x81\x86\x86\n\x2\v\x37@\x45K\x63"+ + "hsvw|\x81\x86\x8B\x8D\xB6\xAE8\x2\x11C\x3\x2\x2\x2\x4\x120\x3\x2\x2\x2"+ + "\x6\x13B\x3\x2\x2\x2\b\x141\x3\x2\x2\x2\n\x14A\x3\x2\x2\x2\f\x158\x3\x2"+ + "\x2\x2\xE\x15C\x3\x2\x2\x2\x10\x16F\x3\x2\x2\x2\x12\x17A\x3\x2\x2\x2\x14"+ + "\x17C\x3\x2\x2\x2\x16\x18C\x3\x2\x2\x2\x18\x18E\x3\x2\x2\x2\x1A\x1A6\x3"+ + "\x2\x2\x2\x1C\x1F3\x3\x2\x2\x2\x1E\x1F5\x3\x2\x2\x2 \x202\x3\x2\x2\x2"+ + "\"\x204\x3\x2\x2\x2$\x208\x3\x2\x2\x2&\x20C\x3\x2\x2\x2(\x221\x3\x2\x2"+ + "\x2*\x233\x3\x2\x2\x2,\x244\x3\x2\x2\x2.\x251\x3\x2\x2\x2\x30\x279\x3"+ + "\x2\x2\x2\x32\x289\x3\x2\x2\x2\x34\x2B9\x3\x2\x2\x2\x36\x2BB\x3\x2\x2"+ + "\x2\x38\x2C0\x3\x2\x2\x2:\x2CE\x3\x2\x2\x2<\x2DB\x3\x2\x2\x2>\x2DF\x3"+ + "\x2\x2\x2@\x2E6\x3\x2\x2\x2\x42\x2F0\x3\x2\x2\x2\x44\x2F2\x3\x2\x2\x2"+ + "\x46\x2FE\x3\x2\x2\x2H\x313\x3\x2\x2\x2J\x33B\x3\x2\x2\x2L\x35B\x3\x2"+ + "\x2\x2N\x371\x3\x2\x2\x2P\x375\x3\x2\x2\x2R\x392\x3\x2\x2\x2T\x394\x3"+ + "\x2\x2\x2V\x39D\x3\x2\x2\x2X\x39F\x3\x2\x2\x2Z\x3A8\x3\x2\x2\x2\\\x3AD"+ + "\x3\x2\x2\x2^\x3B1\x3\x2\x2\x2`\x3C0\x3\x2\x2\x2\x62\x3C6\x3\x2\x2\x2"+ + "\x64\x3D2\x3\x2\x2\x2\x66\x3DE\x3\x2\x2\x2h\x3E2\x3\x2\x2\x2j\x3F5\x3"+ + "\x2\x2\x2l\x401\x3\x2\x2\x2n\x40F\x3\x2\x2\x2p\x413\x3\x2\x2\x2r\x41B"+ + "\x3\x2\x2\x2t\x425\x3\x2\x2\x2v\x439\x3\x2\x2\x2x\x44D\x3\x2\x2\x2z\x48F"+ + "\x3\x2\x2\x2|\x4A2\x3\x2\x2\x2~\x4A4\x3\x2\x2\x2\x80\x4B4\x3\x2\x2\x2"+ + "\x82\x4D3\x3\x2\x2\x2\x84\x4EB\x3\x2\x2\x2\x86\x500\x3\x2\x2\x2\x88\x516"+ + "\x3\x2\x2\x2\x8A\x529\x3\x2\x2\x2\x8C\x52E\x3\x2\x2\x2\x8E\x542\x3\x2"+ + "\x2\x2\x90\x553\x3\x2\x2\x2\x92\x555\x3\x2\x2\x2\x94\x55D\x3\x2\x2\x2"+ + "\x96\x55F\x3\x2\x2\x2\x98\x563\x3\x2\x2\x2\x9A\x56F\x3\x2\x2\x2\x9C\x57B"+ + "\x3\x2\x2\x2\x9E\x597\x3\x2\x2\x2\xA0\x5A3\x3\x2\x2\x2\xA2\x5C2\x3\x2"+ + "\x2\x2\xA4\x5C4\x3\x2\x2\x2\xA6\x5DA\x3\x2\x2\x2\xA8\x5DC\x3\x2\x2\x2"+ + "\xAA\x5E9\x3\x2\x2\x2\xAC\x5F5\x3\x2\x2\x2\xAE\x601\x3\x2\x2\x2\xB0\x606"+ + "\x3\x2\x2\x2\xB2\x61D\x3\x2\x2\x2\xB4\x62A\x3\x2\x2\x2\xB6\x638\x3\x2"+ + "\x2\x2\xB8\x64F\x3\x2\x2\x2\xBA\x658\x3\x2\x2\x2\xBC\x65C\x3\x2\x2\x2"+ + "\xBE\x6A6\x3\x2\x2\x2\xC0\x71C\x3\x2\x2\x2\xC2\x725\x3\x2\x2\x2\xC4\x733"+ + "\x3\x2\x2\x2\xC6\x74E\x3\x2\x2\x2\xC8\x757\x3\x2\x2\x2\xCA\x763\x3\x2"+ + "\x2\x2\xCC\x771\x3\x2\x2\x2\xCE\x77F\x3\x2\x2\x2\xD0\x785\x3\x2\x2\x2"+ + "\xD2\x787\x3\x2\x2\x2\xD4\x7A8\x3\x2\x2\x2\xD6\x7CF\x3\x2\x2\x2\xD8\x7D2"+ + "\x3\x2\x2\x2\xDA\x7EF\x3\x2\x2\x2\xDC\x804\x3\x2\x2\x2\xDE\x806\x3\x2"+ + "\x2\x2\xE0\x81E\x3\x2\x2\x2\xE2\x845\x3\x2\x2\x2\xE4\x861\x3\x2\x2\x2"+ + "\xE6\x86A\x3\x2\x2\x2\xE8\x87A\x3\x2\x2\x2\xEA\x88E\x3\x2\x2\x2\xEC\x899"+ + "\x3\x2\x2\x2\xEE\x8A1\x3\x2\x2\x2\xF0\x8BC\x3\x2\x2\x2\xF2\x8E0\x3\x2"+ + "\x2\x2\xF4\x8E6\x3\x2\x2\x2\xF6\x8F9\x3\x2\x2\x2\xF8\x8FF\x3\x2\x2\x2"+ + "\xFA\x903\x3\x2\x2\x2\xFC\x912\x3\x2\x2\x2\xFE\x923\x3\x2\x2\x2\x100\x925"+ + "\x3\x2\x2\x2\x102\x927\x3\x2\x2\x2\x104\x92F\x3\x2\x2\x2\x106\x937\x3"+ + "\x2\x2\x2\x108\x942\x3\x2\x2\x2\x10A\x945\x3\x2\x2\x2\x10C\x949\x3\x2"+ + "\x2\x2\x10E\x955\x3\x2\x2\x2\x110\x957\x3\x2\x2\x2\x112\x959\x3\x2\x2"+ + "\x2\x114\x95B\x3\x2\x2\x2\x116\x95D\x3\x2\x2\x2\x118\x960\x3\x2\x2\x2"+ + "\x11A\x974\x3\x2\x2\x2\x11C\x11D\x5\x4\x3\x2\x11D\x11E\a\x2\x2\x3\x11E"+ + "\x3\x3\x2\x2\x2\x11F\x121\a\xEE\x2\x2\x120\x11F\x3\x2\x2\x2\x120\x121"+ + "\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x126\x5\x11A\x8E\x2\x123\x124"+ + "\x5\x6\x4\x2\x124\x125\x5\x11A\x8E\x2\x125\x127\x3\x2\x2\x2\x126\x123"+ + "\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x129\x3\x2\x2\x2\x128\x12A\x5"+ + "\b\x5\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x12B\x3\x2\x2"+ + "\x2\x12B\x12D\x5\x11A\x8E\x2\x12C\x12E\x5\f\a\x2\x12D\x12C\x3\x2\x2\x2"+ + "\x12D\x12E\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x131\x5\x11A\x8E\x2"+ + "\x130\x132\x5\xE\b\x2\x131\x130\x3\x2\x2\x2\x131\x132\x3\x2\x2\x2\x132"+ + "\x133\x3\x2\x2\x2\x133\x135\x5\x11A\x8E\x2\x134\x136\x5\x14\v\x2\x135"+ + "\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139"+ + "\x5\x11A\x8E\x2\x138\x13A\a\xEE\x2\x2\x139\x138\x3\x2\x2\x2\x139\x13A"+ + "\x3\x2\x2\x2\x13A\x5\x3\x2\x2\x2\x13B\x13C\a\xAF\x2\x2\x13C\x13D\a\xEE"+ + "\x2\x2\x13D\x13E\a\xCE\x2\x2\x13E\x13F\a\xEE\x2\x2\x13F\x140\a\x1E\x2"+ + "\x2\x140\a\x3\x2\x2\x2\x141\x142\a\x13\x2\x2\x142\x144\x5\x11A\x8E\x2"+ + "\x143\x145\x5\n\x6\x2\x144\x143\x3\x2\x2\x2\x145\x146\x3\x2\x2\x2\x146"+ + "\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2\x148\x149"+ + "\a@\x2\x2\x149\t\x3\x2\x2\x2\x14A\x14C\x5\xF8}\x2\x14B\x14D\a\xEE\x2\x2"+ + "\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E"+ + "\x150\a\xBB\x2\x2\x14F\x151\a\xEE\x2\x2\x150\x14F\x3\x2\x2\x2\x150\x151"+ + "\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\x5\x10A\x86\x2\x153\x154"+ + "\x5\x11A\x8E\x2\x154\v\x3\x2\x2\x2\x155\x156\x5\x18\r\x2\x156\x157\x5"+ + "\x11A\x8E\x2\x157\x159\x3\x2\x2\x2\x158\x155\x3\x2\x2\x2\x159\x15A\x3"+ + "\x2\x2\x2\x15A\x158\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B\r\x3\x2\x2"+ + "\x2\x15C\x162\x5\x12\n\x2\x15D\x15E\x5\x11A\x8E\x2\x15E\x15F\x5\x12\n"+ + "\x2\x15F\x161\x3\x2\x2\x2\x160\x15D\x3\x2\x2\x2\x161\x164\x3\x2\x2\x2"+ + "\x162\x160\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x165\x3\x2\x2\x2\x164"+ + "\x162\x3\x2\x2\x2\x165\x166\x5\x11A\x8E\x2\x166\xF\x3\x2\x2\x2\x167\x168"+ + "\ax\x2\x2\x168\x169\a\xEE\x2\x2\x169\x170\a\xCC\x2\x2\x16A\x16B\az\x2"+ + "\x2\x16B\x16C\a\xEE\x2\x2\x16C\x170\t\x2\x2\x2\x16D\x170\ay\x2\x2\x16E"+ + "\x170\a{\x2\x2\x16F\x167\x3\x2\x2\x2\x16F\x16A\x3\x2\x2\x2\x16F\x16D\x3"+ + "\x2\x2\x2\x16F\x16E\x3\x2\x2\x2\x170\x11\x3\x2\x2\x2\x171\x17B\x5\x116"+ + "\x8C\x2\x172\x17B\x5.\x18\x2\x173\x17B\x5\x38\x1D\x2\x174\x17B\x5@!\x2"+ + "\x175\x17B\x5(\x15\x2\x176\x17B\x5\\/\x2\x177\x17B\x5\xC0\x61\x2\x178"+ + "\x17B\x5\x10\t\x2\x179\x17B\x5\xB4[\x2\x17A\x171\x3\x2\x2\x2\x17A\x172"+ + "\x3\x2\x2\x2\x17A\x173\x3\x2\x2\x2\x17A\x174\x3\x2\x2\x2\x17A\x175\x3"+ + "\x2\x2\x2\x17A\x176\x3\x2\x2\x2\x17A\x177\x3\x2\x2\x2\x17A\x178\x3\x2"+ + "\x2\x2\x17A\x179\x3\x2\x2\x2\x17B\x13\x3\x2\x2\x2\x17C\x182\x5\x16\f\x2"+ + "\x17D\x17E\x5\x11A\x8E\x2\x17E\x17F\x5\x16\f\x2\x17F\x181\x3\x2\x2\x2"+ + "\x180\x17D\x3\x2\x2\x2\x181\x184\x3\x2\x2\x2\x182\x180\x3\x2\x2\x2\x182"+ + "\x183\x3\x2\x2\x2\x183\x185\x3\x2\x2\x2\x184\x182\x3\x2\x2\x2\x185\x186"+ + "\x5\x11A\x8E\x2\x186\x15\x3\x2\x2\x2\x187\x18D\x5J&\x2\x188\x18D\x5\x80"+ + "\x41\x2\x189\x18D\x5\x82\x42\x2\x18A\x18D\x5\x84\x43\x2\x18B\x18D\x5\xB0"+ + "Y\x2\x18C\x187\x3\x2\x2\x2\x18C\x188\x3\x2\x2\x2\x18C\x189\x3\x2\x2\x2"+ + "\x18C\x18A\x3\x2\x2\x2\x18C\x18B\x3\x2\x2\x2\x18D\x17\x3\x2\x2\x2\x18E"+ + "\x18F\a\xF\x2\x2\x18F\x190\a\xEE\x2\x2\x190\x192\x5\xDCo\x2\x191\x193"+ + "\a\xEE\x2\x2\x192\x191\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2\x193\x194\x3"+ + "\x2\x2\x2\x194\x196\a\xBB\x2\x2\x195\x197\a\xEE\x2\x2\x196\x195\x3\x2"+ + "\x2\x2\x196\x197\x3\x2\x2\x2\x197\x198\x3\x2\x2\x2\x198\x1A3\x5\x10A\x86"+ + "\x2\x199\x19B\a\xEE\x2\x2\x19A\x199\x3\x2\x2\x2\x19A\x19B\x3\x2\x2\x2"+ + "\x19B\x19C\x3\x2\x2\x2\x19C\x19E\a\t\x2\x2\x19D\x19F\a\xEE\x2\x2\x19E"+ + "\x19D\x3\x2\x2\x2\x19E\x19F\x3\x2\x2\x2\x19F\x1A0\x3\x2\x2\x2\x1A0\x1A2"+ + "\x5\x10A\x86\x2\x1A1\x19A\x3\x2\x2\x2\x1A2\x1A5\x3\x2\x2\x2\x1A3\x1A1"+ + "\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x19\x3\x2\x2\x2\x1A5\x1A3\x3\x2"+ + "\x2\x2\x1A6\x1AC\x5\x1C\xF\x2\x1A7\x1A8\x5\x11A\x8E\x2\x1A8\x1A9\x5\x1C"+ + "\xF\x2\x1A9\x1AB\x3\x2\x2\x2\x1AA\x1A7\x3\x2\x2\x2\x1AB\x1AE\x3\x2\x2"+ + "\x2\x1AC\x1AA\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\x3\x2\x2\x2"+ + "\x1AE\x1AC\x3\x2\x2\x2\x1AF\x1B0\x5\x11A\x8E\x2\x1B0\x1B\x3\x2\x2\x2\x1B1"+ + "\x1F4\x5\x108\x85\x2\x1B2\x1F4\x5\x1E\x10\x2\x1B3\x1F4\x5\x18\r\x2\x1B4"+ + "\x1F4\x5 \x11\x2\x1B5\x1F4\x5\"\x12\x2\x1B6\x1F4\x5$\x13\x2\x1B7\x1F4"+ + "\x5&\x14\x2\x1B8\x1F4\x5(\x15\x2\x1B9\x1F4\x5,\x17\x2\x1BA\x1F4\x5\x32"+ + "\x1A\x2\x1BB\x1F4\x5\x30\x19\x2\x1BC\x1F4\x5\x34\x1B\x2\x1BD\x1F4\x5\x36"+ + "\x1C\x2\x1BE\x1F4\x5<\x1F\x2\x1BF\x1F4\x5> \x2\x1C0\x1F4\x5\x42\"\x2\x1C1"+ + "\x1F4\x5\xD0i\x2\x1C2\x1F4\x5\x44#\x2\x1C3\x1F4\x5\x46$\x2\x1C4\x1F4\x5"+ + "H%\x2\x1C5\x1F4\x5L\'\x2\x1C6\x1F4\x5N(\x2\x1C7\x1F4\x5P)\x2\x1C8\x1F4"+ + "\x5R*\x2\x1C9\x1F4\x5\\/\x2\x1CA\x1F4\x5^\x30\x2\x1CB\x1F4\x5`\x31\x2"+ + "\x1CC\x1F4\x5\x62\x32\x2\x1CD\x1F4\x5\x64\x33\x2\x1CE\x1F4\x5\x66\x34"+ + "\x2\x1CF\x1F4\x5h\x35\x2\x1D0\x1F4\x5j\x36\x2\x1D1\x1F4\x5l\x37\x2\x1D2"+ + "\x1F4\x5n\x38\x2\x1D3\x1F4\x5p\x39\x2\x1D4\x1F4\x5r:\x2\x1D5\x1F4\x5t"+ + ";\x2\x1D6\x1F4\x5v<\x2\x1D7\x1F4\x5x=\x2\x1D8\x1F4\x5~@\x2\x1D9\x1F4\x5"+ + "\x86\x44\x2\x1DA\x1F4\x5\x88\x45\x2\x1DB\x1F4\x5\x8A\x46\x2\x1DC\x1F4"+ + "\x5\x8CG\x2\x1DD\x1F4\x5\x90I\x2\x1DE\x1F4\x5\x92J\x2\x1DF\x1F4\x5\x94"+ + "K\x2\x1E0\x1F4\x5\x96L\x2\x1E1\x1F4\x5\x98M\x2\x1E2\x1F4\x5\x9AN\x2\x1E3"+ + "\x1F4\x5\x9CO\x2\x1E4\x1F4\x5\x9EP\x2\x1E5\x1F4\x5\xA0Q\x2\x1E6\x1F4\x5"+ + "\xA8U\x2\x1E7\x1F4\x5\xAAV\x2\x1E8\x1F4\x5\xACW\x2\x1E9\x1F4\x5\xAEX\x2"+ + "\x1EA\x1F4\x5\xB2Z\x2\x1EB\x1F4\x5\xBA^\x2\x1EC\x1F4\x5\xBC_\x2\x1ED\x1F4"+ + "\x5\xC0\x61\x2\x1EE\x1F4\x5\xC6\x64\x2\x1EF\x1F4\x5\xC8\x65\x2\x1F0\x1F4"+ + "\x5\xCA\x66\x2\x1F1\x1F4\x5\xCCg\x2\x1F2\x1F4\x5\xD6l\x2\x1F3\x1B1\x3"+ + "\x2\x2\x2\x1F3\x1B2\x3\x2\x2\x2\x1F3\x1B3\x3\x2\x2\x2\x1F3\x1B4\x3\x2"+ + "\x2\x2\x1F3\x1B5\x3\x2\x2\x2\x1F3\x1B6\x3\x2\x2\x2\x1F3\x1B7\x3\x2\x2"+ + "\x2\x1F3\x1B8\x3\x2\x2\x2\x1F3\x1B9\x3\x2\x2\x2\x1F3\x1BA\x3\x2\x2\x2"+ + "\x1F3\x1BB\x3\x2\x2\x2\x1F3\x1BC\x3\x2\x2\x2\x1F3\x1BD\x3\x2\x2\x2\x1F3"+ + "\x1BE\x3\x2\x2\x2\x1F3\x1BF\x3\x2\x2\x2\x1F3\x1C0\x3\x2\x2\x2\x1F3\x1C1"+ + "\x3\x2\x2\x2\x1F3\x1C2\x3\x2\x2\x2\x1F3\x1C3\x3\x2\x2\x2\x1F3\x1C4\x3"+ + "\x2\x2\x2\x1F3\x1C5\x3\x2\x2\x2\x1F3\x1C6\x3\x2\x2\x2\x1F3\x1C7\x3\x2"+ + "\x2\x2\x1F3\x1C8\x3\x2\x2\x2\x1F3\x1C9\x3\x2\x2\x2\x1F3\x1CA\x3\x2\x2"+ + "\x2\x1F3\x1CB\x3\x2\x2\x2\x1F3\x1CC\x3\x2\x2\x2\x1F3\x1CD\x3\x2\x2\x2"+ + "\x1F3\x1CE\x3\x2\x2\x2\x1F3\x1CF\x3\x2\x2\x2\x1F3\x1D0\x3\x2\x2\x2\x1F3"+ + "\x1D1\x3\x2\x2\x2\x1F3\x1D2\x3\x2\x2\x2\x1F3\x1D3\x3\x2\x2\x2\x1F3\x1D4"+ + "\x3\x2\x2\x2\x1F3\x1D5\x3\x2\x2\x2\x1F3\x1D6\x3\x2\x2\x2\x1F3\x1D7\x3"+ + "\x2\x2\x2\x1F3\x1D8\x3\x2\x2\x2\x1F3\x1D9\x3\x2\x2\x2\x1F3\x1DA\x3\x2"+ + "\x2\x2\x1F3\x1DB\x3\x2\x2\x2\x1F3\x1DC\x3\x2\x2\x2\x1F3\x1DD\x3\x2\x2"+ + "\x2\x1F3\x1DE\x3\x2\x2\x2\x1F3\x1DF\x3\x2\x2\x2\x1F3\x1E0\x3\x2\x2\x2"+ + "\x1F3\x1E1\x3\x2\x2\x2\x1F3\x1E2\x3\x2\x2\x2\x1F3\x1E3\x3\x2\x2\x2\x1F3"+ + "\x1E4\x3\x2\x2\x2\x1F3\x1E5\x3\x2\x2\x2\x1F3\x1E6\x3\x2\x2\x2\x1F3\x1E7"+ + "\x3\x2\x2\x2\x1F3\x1E8\x3\x2\x2\x2\x1F3\x1E9\x3\x2\x2\x2\x1F3\x1EA\x3"+ + "\x2\x2\x2\x1F3\x1EB\x3\x2\x2\x2\x1F3\x1EC\x3\x2\x2\x2\x1F3\x1ED\x3\x2"+ + "\x2\x2\x1F3\x1EE\x3\x2\x2\x2\x1F3\x1EF\x3\x2\x2\x2\x1F3\x1F0\x3\x2\x2"+ + "\x2\x1F3\x1F1\x3\x2\x2\x2\x1F3\x1F2\x3\x2\x2\x2\x1F4\x1D\x3\x2\x2\x2\x1F5"+ + "\x1F6\a\x10\x2\x2\x1F6\x1F7\a\xEE\x2\x2\x1F7\x200\x5\xBE`\x2\x1F8\x1FA"+ + "\a\xEE\x2\x2\x1F9\x1F8\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\x3"+ + "\x2\x2\x2\x1FB\x1FD\a\t\x2\x2\x1FC\x1FE\a\xEE\x2\x2\x1FD\x1FC\x3\x2\x2"+ + "\x2\x1FD\x1FE\x3\x2\x2\x2\x1FE\x1FF\x3\x2\x2\x2\x1FF\x201\x5\xBE`\x2\x200"+ + "\x1F9\x3\x2\x2\x2\x200\x201\x3\x2\x2\x2\x201\x1F\x3\x2\x2\x2\x202\x203"+ + "\a\x14\x2\x2\x203!\x3\x2\x2\x2\x204\x205\a\x1C\x2\x2\x205\x206\a\xEE\x2"+ + "\x2\x206\x207\x5\xBE`\x2\x207#\x3\x2\x2\x2\x208\x209\a\x1D\x2\x2\x209"+ + "\x20A\a\xEE\x2\x2\x20A\x20B\x5\xBE`\x2\x20B%\x3\x2\x2\x2\x20C\x21C\a\x1F"+ + "\x2\x2\x20D\x20E\a\xEE\x2\x2\x20E\x219\x5\xCEh\x2\x20F\x211\a\xEE\x2\x2"+ + "\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x212\x3\x2\x2\x2\x212"+ + "\x214\a\t\x2\x2\x213\x215\a\xEE\x2\x2\x214\x213\x3\x2\x2\x2\x214\x215"+ + "\x3\x2\x2\x2\x215\x216\x3\x2\x2\x2\x216\x218\x5\xCEh\x2\x217\x210\x3\x2"+ + "\x2\x2\x218\x21B\x3\x2\x2\x2\x219\x217\x3\x2\x2\x2\x219\x21A\x3\x2\x2"+ + "\x2\x21A\x21D\x3\x2\x2\x2\x21B\x219\x3\x2\x2\x2\x21C\x20D\x3\x2\x2\x2"+ + "\x21C\x21D\x3\x2\x2\x2\x21D\'\x3\x2\x2\x2\x21E\x21F\x5\x110\x89\x2\x21F"+ + "\x220\a\xEE\x2\x2\x220\x222\x3\x2\x2\x2\x221\x21E\x3\x2\x2\x2\x221\x222"+ + "\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\a!\x2\x2\x224\x225\a\xEE"+ + "\x2\x2\x225\x230\x5*\x16\x2\x226\x228\a\xEE\x2\x2\x227\x226\x3\x2\x2\x2"+ + "\x227\x228\x3\x2\x2\x2\x228\x229\x3\x2\x2\x2\x229\x22B\a\t\x2\x2\x22A"+ + "\x22C\a\xEE\x2\x2\x22B\x22A\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C\x22D"+ + "\x3\x2\x2\x2\x22D\x22F\x5*\x16\x2\x22E\x227\x3\x2\x2\x2\x22F\x232\x3\x2"+ + "\x2\x2\x230\x22E\x3\x2\x2\x2\x230\x231\x3\x2\x2\x2\x231)\x3\x2\x2\x2\x232"+ + "\x230\x3\x2\x2\x2\x233\x235\x5\xF8}\x2\x234\x236\x5\x10E\x88\x2\x235\x234"+ + "\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236\x239\x3\x2\x2\x2\x237\x238\a\xEE"+ + "\x2\x2\x238\x23A\x5\xFA~\x2\x239\x237\x3\x2\x2\x2\x239\x23A\x3\x2\x2\x2"+ + "\x23A\x23C\x3\x2\x2\x2\x23B\x23D\a\xEE\x2\x2\x23C\x23B\x3\x2\x2\x2\x23C"+ + "\x23D\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E\x240\a\xBB\x2\x2\x23F\x241"+ + "\a\xEE\x2\x2\x240\x23F\x3\x2\x2\x2\x240\x241\x3\x2\x2\x2\x241\x242\x3"+ + "\x2\x2\x2\x242\x243\x5\xBE`\x2\x243+\x3\x2\x2\x2\x244\x246\a#\x2\x2\x245"+ + "\x247\a\xEE\x2\x2\x246\x245\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248"+ + "\x3\x2\x2\x2\x248\x24A\a\xBB\x2\x2\x249\x24B\a\xEE\x2\x2\x24A\x249\x3"+ + "\x2\x2\x2\x24A\x24B\x3\x2\x2\x2\x24B\x24C\x3\x2\x2\x2\x24C\x24D\x5\xBE"+ + "`\x2\x24D-\x3\x2\x2\x2\x24E\x24F\x5\x110\x89\x2\x24F\x250\a\xEE\x2\x2"+ + "\x250\x252\x3\x2\x2\x2\x251\x24E\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252"+ + "\x253\x3\x2\x2\x2\x253\x254\a$\x2\x2\x254\x257\a\xEE\x2\x2\x255\x256\a"+ + "\x85\x2\x2\x256\x258\a\xEE\x2\x2\x257\x255\x3\x2\x2\x2\x257\x258\x3\x2"+ + "\x2\x2\x258\x25E\x3\x2\x2\x2\x259\x25B\aO\x2\x2\x25A\x25C\x5\x10E\x88"+ + "\x2\x25B\x25A\x3\x2\x2\x2\x25B\x25C\x3\x2\x2\x2\x25C\x25F\x3\x2\x2\x2"+ + "\x25D\x25F\a\xA2\x2\x2\x25E\x259\x3\x2\x2\x2\x25E\x25D\x3\x2\x2\x2\x25F"+ + "\x260\x3\x2\x2\x2\x260\x261\a\xEE\x2\x2\x261\x263\x5\xF8}\x2\x262\x264"+ + "\x5\x10E\x88\x2\x263\x262\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x265"+ + "\x3\x2\x2\x2\x265\x266\a\xEE\x2\x2\x266\x267\a\x62\x2\x2\x267\x268\a\xEE"+ + "\x2\x2\x268\x26D\a\xC9\x2\x2\x269\x26A\a\xEE\x2\x2\x26A\x26B\a\r\x2\x2"+ + "\x26B\x26C\a\xEE\x2\x2\x26C\x26E\a\xC9\x2\x2\x26D\x269\x3\x2\x2\x2\x26D"+ + "\x26E\x3\x2\x2\x2\x26E\x273\x3\x2\x2\x2\x26F\x271\a\xEE\x2\x2\x270\x26F"+ + "\x3\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272\x274\x5"+ + "\xEEx\x2\x273\x270\x3\x2\x2\x2\x273\x274\x3\x2\x2\x2\x274\x277\x3\x2\x2"+ + "\x2\x275\x276\a\xEE\x2\x2\x276\x278\x5\xFA~\x2\x277\x275\x3\x2\x2\x2\x277"+ + "\x278\x3\x2\x2\x2\x278/\x3\x2\x2\x2\x279\x27A\t\x3\x2\x2\x27A\x27B\a\xEE"+ + "\x2\x2\x27B\x286\x5\x106\x84\x2\x27C\x27E\a\xEE\x2\x2\x27D\x27C\x3\x2"+ + "\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x27F\x3\x2\x2\x2\x27F\x281\a\t\x2\x2"+ + "\x280\x282\a\xEE\x2\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2\x282"+ + "\x283\x3\x2\x2\x2\x283\x285\x5\x106\x84\x2\x284\x27D\x3\x2\x2\x2\x285"+ + "\x288\x3\x2\x2\x2\x286\x284\x3\x2\x2\x2\x286\x287\x3\x2\x2\x2\x287\x31"+ + "\x3\x2\x2\x2\x288\x286\x3\x2\x2\x2\x289\x28A\a\x31\x2\x2\x28A\x28B\a\xEE"+ + "\x2\x2\x28B\x28D\x5\xBE`\x2\x28C\x28E\a\xEE\x2\x2\x28D\x28C\x3\x2\x2\x2"+ + "\x28D\x28E\x3\x2\x2\x2\x28E\x28F\x3\x2\x2\x2\x28F\x291\a\t\x2\x2\x290"+ + "\x292\a\xEE\x2\x2\x291\x290\x3\x2\x2\x2\x291\x292\x3\x2\x2\x2\x292\x293"+ + "\x3\x2\x2\x2\x293\x29C\x5\xBE`\x2\x294\x296\a\xEE\x2\x2\x295\x294\x3\x2"+ + "\x2\x2\x295\x296\x3\x2\x2\x2\x296\x297\x3\x2\x2\x2\x297\x299\a\t\x2\x2"+ + "\x298\x29A\a\xEE\x2\x2\x299\x298\x3\x2\x2\x2\x299\x29A\x3\x2\x2\x2\x29A"+ + "\x29B\x3\x2\x2\x2\x29B\x29D\x5\xBE`\x2\x29C\x295\x3\x2\x2\x2\x29C\x29D"+ + "\x3\x2\x2\x2\x29D\x33\x3\x2\x2\x2\x29E\x29F\a\x33\x2\x2\x29F\x2A1\x5\x11A"+ + "\x8E\x2\x2A0\x2A2\x5\x1A\xE\x2\x2A1\x2A0\x3\x2\x2\x2\x2A1\x2A2\x3\x2\x2"+ + "\x2\x2A2\x2A3\x3\x2\x2\x2\x2A3\x2A4\a_\x2\x2\x2A4\x2BA\x3\x2\x2\x2\x2A5"+ + "\x2A6\a\x33\x2\x2\x2A6\x2A7\a\xEE\x2\x2\x2A7\x2A8\t\x4\x2\x2\x2A8\x2A9"+ + "\a\xEE\x2\x2\x2A9\x2AA\x5\xBE`\x2\x2AA\x2AC\x5\x11A\x8E\x2\x2AB\x2AD\x5"+ + "\x1A\xE\x2\x2AC\x2AB\x3\x2\x2\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE\x3\x2"+ + "\x2\x2\x2AE\x2AF\a_\x2\x2\x2AF\x2BA\x3\x2\x2\x2\x2B0\x2B1\a\x33\x2\x2"+ + "\x2B1\x2B2\x5\x11A\x8E\x2\x2B2\x2B3\x5\x1A\xE\x2\x2B3\x2B4\a_\x2\x2\x2B4"+ + "\x2B5\a\xEE\x2\x2\x2B5\x2B6\t\x4\x2\x2\x2B6\x2B7\a\xEE\x2\x2\x2B7\x2B8"+ + "\x5\xBE`\x2\x2B8\x2BA\x3\x2\x2\x2\x2B9\x29E\x3\x2\x2\x2\x2B9\x2A5\x3\x2"+ + "\x2\x2\x2B9\x2B0\x3\x2\x2\x2\x2BA\x35\x3\x2\x2\x2\x2BB\x2BC\a@\x2\x2\x2BC"+ + "\x37\x3\x2\x2\x2\x2BD\x2BE\x5\x110\x89\x2\x2BE\x2BF\a\xEE\x2\x2\x2BF\x2C1"+ + "\x3\x2\x2\x2\x2C0\x2BD\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2\x3"+ + "\x2\x2\x2\x2C2\x2C3\a\x41\x2\x2\x2C3\x2C4\a\xEE\x2\x2\x2C4\x2C5\x5\xF8"+ + "}\x2\x2C5\x2C9\x5\x11A\x8E\x2\x2C6\x2C8\x5:\x1E\x2\x2C7\x2C6\x3\x2\x2"+ + "\x2\x2C8\x2CB\x3\x2\x2\x2\x2C9\x2C7\x3\x2\x2\x2\x2C9\x2CA\x3\x2\x2\x2"+ + "\x2CA\x2CC\x3\x2\x2\x2\x2CB\x2C9\x3\x2\x2\x2\x2CC\x2CD\a\x38\x2\x2\x2CD"+ + "\x39\x3\x2\x2\x2\x2CE\x2D7\x5\xF8}\x2\x2CF\x2D1\a\xEE\x2\x2\x2D0\x2CF"+ + "\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2\x2D1\x2D2\x3\x2\x2\x2\x2D2\x2D4\a\xBB"+ + "\x2\x2\x2D3\x2D5\a\xEE\x2\x2\x2D4\x2D3\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2"+ + "\x2\x2D5\x2D6\x3\x2\x2\x2\x2D6\x2D8\x5\xBE`\x2\x2D7\x2D0\x3\x2\x2\x2\x2D7"+ + "\x2D8\x3\x2\x2\x2\x2D8\x2D9\x3\x2\x2\x2\x2D9\x2DA\x5\x11A\x8E\x2\x2DA"+ + ";\x3\x2\x2\x2\x2DB\x2DC\a\x43\x2\x2\x2DC\x2DD\a\xEE\x2\x2\x2DD\x2DE\x5"+ + "\xBE`\x2\x2DE=\x3\x2\x2\x2\x2DF\x2E0\a\x44\x2\x2\x2E0\x2E1\a\xEE\x2\x2"+ + "\x2E1\x2E2\x5\xBE`\x2\x2E2?\x3\x2\x2\x2\x2E3\x2E4\x5\x110\x89\x2\x2E4"+ + "\x2E5\a\xEE\x2\x2\x2E5\x2E7\x3\x2\x2\x2\x2E6\x2E3\x3\x2\x2\x2\x2E6\x2E7"+ + "\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\a\x45\x2\x2\x2E9\x2EA\a\xEE"+ + "\x2\x2\x2EA\x2EC\x5\xF8}\x2\x2EB\x2ED\a\xEE\x2\x2\x2EC\x2EB\x3\x2\x2\x2"+ + "\x2EC\x2ED\x3\x2\x2\x2\x2ED\x2EE\x3\x2\x2\x2\x2EE\x2EF\x5\xEEx\x2\x2EF"+ + "\x41\x3\x2\x2\x2\x2F0\x2F1\t\x5\x2\x2\x2F1\x43\x3\x2\x2\x2\x2F2\x2F3\a"+ + "L\x2\x2\x2F3\x2F4\a\xEE\x2\x2\x2F4\x2F6\x5\xBE`\x2\x2F5\x2F7\a\xEE\x2"+ + "\x2\x2F6\x2F5\x3\x2\x2\x2\x2F6\x2F7\x3\x2\x2\x2\x2F7\x2F8\x3\x2\x2\x2"+ + "\x2F8\x2FA\a\t\x2\x2\x2F9\x2FB\a\xEE\x2\x2\x2FA\x2F9\x3\x2\x2\x2\x2FA"+ + "\x2FB\x3\x2\x2\x2\x2FB\x2FC\x3\x2\x2\x2\x2FC\x2FD\x5\xBE`\x2\x2FD\x45"+ + "\x3\x2\x2\x2\x2FE\x2FF\aN\x2\x2\x2FF\x300\a\xEE\x2\x2\x300\x301\a\x35"+ + "\x2\x2\x301\x302\a\xEE\x2\x2\x302\x304\x5\xF8}\x2\x303\x305\x5\x10E\x88"+ + "\x2\x304\x303\x3\x2\x2\x2\x304\x305\x3\x2\x2\x2\x305\x306\x3\x2\x2\x2"+ + "\x306\x307\a\xEE\x2\x2\x307\x308\aW\x2\x2\x308\x309\a\xEE\x2\x2\x309\x30A"+ + "\x5\xBE`\x2\x30A\x30C\x5\x11A\x8E\x2\x30B\x30D\x5\x1A\xE\x2\x30C\x30B"+ + "\x3\x2\x2\x2\x30C\x30D\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x311\an"+ + "\x2\x2\x30F\x310\a\xEE\x2\x2\x310\x312\x5\xF8}\x2\x311\x30F\x3\x2\x2\x2"+ + "\x311\x312\x3\x2\x2\x2\x312G\x3\x2\x2\x2\x313\x314\aN\x2\x2\x314\x315"+ + "\a\xEE\x2\x2\x315\x317\x5\xF8}\x2\x316\x318\x5\x10E\x88\x2\x317\x316\x3"+ + "\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x31B\x3\x2\x2\x2\x319\x31A\a\xEE"+ + "\x2\x2\x31A\x31C\x5\xFA~\x2\x31B\x319\x3\x2\x2\x2\x31B\x31C\x3\x2\x2\x2"+ + "\x31C\x31E\x3\x2\x2\x2\x31D\x31F\a\xEE\x2\x2\x31E\x31D\x3\x2\x2\x2\x31E"+ + "\x31F\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x322\a\xBB\x2\x2\x321\x323"+ + "\a\xEE\x2\x2\x322\x321\x3\x2\x2\x2\x322\x323\x3\x2\x2\x2\x323\x324\x3"+ + "\x2\x2\x2\x324\x325\x5\xBE`\x2\x325\x326\a\xEE\x2\x2\x326\x327\a\xA7\x2"+ + "\x2\x327\x328\a\xEE\x2\x2\x328\x32D\x5\xBE`\x2\x329\x32A\a\xEE\x2\x2\x32A"+ + "\x32B\a\x9F\x2\x2\x32B\x32C\a\xEE\x2\x2\x32C\x32E\x5\xBE`\x2\x32D\x329"+ + "\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2\x32E\x32F\x3\x2\x2\x2\x32F\x331\x5"+ + "\x11A\x8E\x2\x330\x332\x5\x1A\xE\x2\x331\x330\x3\x2\x2\x2\x331\x332\x3"+ + "\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x336\an\x2\x2\x334\x335\a\xEE\x2"+ + "\x2\x335\x337\x5\xF8}\x2\x336\x334\x3\x2\x2\x2\x336\x337\x3\x2\x2\x2\x337"+ + "I\x3\x2\x2\x2\x338\x339\x5\x110\x89\x2\x339\x33A\a\xEE\x2\x2\x33A\x33C"+ + "\x3\x2\x2\x2\x33B\x338\x3\x2\x2\x2\x33B\x33C\x3\x2\x2\x2\x33C\x33F\x3"+ + "\x2\x2\x2\x33D\x33E\a\x9E\x2\x2\x33E\x340\a\xEE\x2\x2\x33F\x33D\x3\x2"+ + "\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x343\aO\x2\x2"+ + "\x342\x344\a\xEE\x2\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344"+ + "\x345\x3\x2\x2\x2\x345\x347\x5\xF8}\x2\x346\x348\x5\x10E\x88\x2\x347\x346"+ + "\x3\x2\x2\x2\x347\x348\x3\x2\x2\x2\x348\x34D\x3\x2\x2\x2\x349\x34B\a\xEE"+ + "\x2\x2\x34A\x349\x3\x2\x2\x2\x34A\x34B\x3\x2\x2\x2\x34B\x34C\x3\x2\x2"+ + "\x2\x34C\x34E\x5\xEEx\x2\x34D\x34A\x3\x2\x2\x2\x34D\x34E\x3\x2\x2\x2\x34E"+ + "\x353\x3\x2\x2\x2\x34F\x351\a\xEE\x2\x2\x350\x34F\x3\x2\x2\x2\x350\x351"+ + "\x3\x2\x2\x2\x351\x352\x3\x2\x2\x2\x352\x354\x5\xFA~\x2\x353\x350\x3\x2"+ + "\x2\x2\x353\x354\x3\x2\x2\x2\x354\x355\x3\x2\x2\x2\x355\x357\x5\x11A\x8E"+ + "\x2\x356\x358\x5\x1A\xE\x2\x357\x356\x3\x2\x2\x2\x357\x358\x3\x2\x2\x2"+ + "\x358\x359\x3\x2\x2\x2\x359\x35A\a\x39\x2\x2\x35AK\x3\x2\x2\x2\x35B\x35C"+ + "\aP\x2\x2\x35C\x35D\a\xEE\x2\x2\x35D\x35F\x5\xCEh\x2\x35E\x360\a\xEE\x2"+ + "\x2\x35F\x35E\x3\x2\x2\x2\x35F\x360\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2"+ + "\x361\x363\a\t\x2\x2\x362\x364\a\xEE\x2\x2\x363\x362\x3\x2\x2\x2\x363"+ + "\x364\x3\x2\x2\x2\x364\x366\x3\x2\x2\x2\x365\x367\x5\xBE`\x2\x366\x365"+ + "\x3\x2\x2\x2\x366\x367\x3\x2\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\a\xEE"+ + "\x2\x2\x369\x368\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2"+ + "\x2\x36B\x36D\a\t\x2\x2\x36C\x36E\a\xEE\x2\x2\x36D\x36C\x3\x2\x2\x2\x36D"+ + "\x36E\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x5\xBE`\x2\x370M\x3"+ + "\x2\x2\x2\x371\x372\aR\x2\x2\x372\x373\a\xEE\x2\x2\x373\x374\x5\xBE`\x2"+ + "\x374O\x3\x2\x2\x2\x375\x376\aS\x2\x2\x376\x377\a\xEE\x2\x2\x377\x378"+ + "\x5\xBE`\x2\x378Q\x3\x2\x2\x2\x379\x37A\aT\x2\x2\x37A\x37B\a\xEE\x2\x2"+ + "\x37B\x37C\x5V,\x2\x37C\x37D\a\xEE\x2\x2\x37D\x37E\a\xA5\x2\x2\x37E\x37F"+ + "\a\xEE\x2\x2\x37F\x384\x5\x1C\xF\x2\x380\x381\a\xEE\x2\x2\x381\x382\a"+ + "\x36\x2\x2\x382\x383\a\xEE\x2\x2\x383\x385\x5\x1C\xF\x2\x384\x380\x3\x2"+ + "\x2\x2\x384\x385\x3\x2\x2\x2\x385\x393\x3\x2\x2\x2\x386\x38A\x5T+\x2\x387"+ + "\x389\x5X-\x2\x388\x387\x3\x2\x2\x2\x389\x38C\x3\x2\x2\x2\x38A\x388\x3"+ + "\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B\x38E\x3\x2\x2\x2\x38C\x38A\x3\x2"+ + "\x2\x2\x38D\x38F\x5Z.\x2\x38E\x38D\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2\x38F"+ + "\x390\x3\x2\x2\x2\x390\x391\a:\x2\x2\x391\x393\x3\x2\x2\x2\x392\x379\x3"+ + "\x2\x2\x2\x392\x386\x3\x2\x2\x2\x393S\x3\x2\x2\x2\x394\x395\aT\x2\x2\x395"+ + "\x396\a\xEE\x2\x2\x396\x397\x5V,\x2\x397\x398\a\xEE\x2\x2\x398\x399\a"+ + "\xA5\x2\x2\x399\x39B\x5\x11A\x8E\x2\x39A\x39C\x5\x1A\xE\x2\x39B\x39A\x3"+ + "\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39CU\x3\x2\x2\x2\x39D\x39E\x5\xBE`\x2"+ + "\x39EW\x3\x2\x2\x2\x39F\x3A0\a\x37\x2\x2\x3A0\x3A1\a\xEE\x2\x2\x3A1\x3A2"+ + "\x5V,\x2\x3A2\x3A3\a\xEE\x2\x2\x3A3\x3A4\a\xA5\x2\x2\x3A4\x3A6\x5\x11A"+ + "\x8E\x2\x3A5\x3A7\x5\x1A\xE\x2\x3A6\x3A5\x3\x2\x2\x2\x3A6\x3A7\x3\x2\x2"+ + "\x2\x3A7Y\x3\x2\x2\x2\x3A8\x3A9\a\x36\x2\x2\x3A9\x3AB\x5\x11A\x8E\x2\x3AA"+ + "\x3AC\x5\x1A\xE\x2\x3AB\x3AA\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC[\x3"+ + "\x2\x2\x2\x3AD\x3AE\aV\x2\x2\x3AE\x3AF\a\xEE\x2\x2\x3AF\x3B0\x5\xF8}\x2"+ + "\x3B0]\x3\x2\x2\x2\x3B1\x3B2\aX\x2\x2\x3B2\x3B3\a\xEE\x2\x2\x3B3\x3BC"+ + "\x5\xCEh\x2\x3B4\x3B6\a\xEE\x2\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2"+ + "\x2\x2\x3B6\x3B7\x3\x2\x2\x2\x3B7\x3B9\a\t\x2\x2\x3B8\x3BA\a\xEE\x2\x2"+ + "\x3B9\x3B8\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BB\x3\x2\x2\x2\x3BB"+ + "\x3BD\x5\xBE`\x2\x3BC\x3B5\x3\x2\x2\x2\x3BD\x3BE\x3\x2\x2\x2\x3BE\x3BC"+ + "\x3\x2\x2\x2\x3BE\x3BF\x3\x2\x2\x2\x3BF_\x3\x2\x2\x2\x3C0\x3C1\a[\x2\x2"+ + "\x3C1\x3C2\a\xEE\x2\x2\x3C2\x3C3\x5\xBE`\x2\x3C3\x61\x3\x2\x2\x2\x3C4"+ + "\x3C5\a\x61\x2\x2\x3C5\x3C7\a\xEE\x2\x2\x3C6\x3C4\x3\x2\x2\x2\x3C6\x3C7"+ + "\x3\x2\x2\x2\x3C7\x3C8\x3\x2\x2\x2\x3C8\x3CA\x5\xDCo\x2\x3C9\x3CB\a\xEE"+ + "\x2\x2\x3CA\x3C9\x3\x2\x2\x2\x3CA\x3CB\x3\x2\x2\x2\x3CB\x3CC\x3\x2\x2"+ + "\x2\x3CC\x3CE\a\xBB\x2\x2\x3CD\x3CF\a\xEE\x2\x2\x3CE\x3CD\x3\x2\x2\x2"+ + "\x3CE\x3CF\x3\x2\x2\x2\x3CF\x3D0\x3\x2\x2\x2\x3D0\x3D1\x5\xBE`\x2\x3D1"+ + "\x63\x3\x2\x2\x2\x3D2\x3D3\a\x64\x2\x2\x3D3\x3D4\a\xEE\x2\x2\x3D4\x3D6"+ + "\x5\xCEh\x2\x3D5\x3D7\a\xEE\x2\x2\x3D6\x3D5\x3\x2\x2\x2\x3D6\x3D7\x3\x2"+ + "\x2\x2\x3D7\x3D8\x3\x2\x2\x2\x3D8\x3DA\a\t\x2\x2\x3D9\x3DB\a\xEE\x2\x2"+ + "\x3DA\x3D9\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DC\x3\x2\x2\x2\x3DC"+ + "\x3DD\x5\xBE`\x2\x3DD\x65\x3\x2\x2\x2\x3DE\x3DF\a\\\x2\x2\x3DF\x3E0\a"+ + "\xEE\x2\x2\x3E0\x3E1\x5\xBE`\x2\x3E1g\x3\x2\x2\x2\x3E2\x3E3\a]\x2\x2\x3E3"+ + "\x3E4\a\xEE\x2\x2\x3E4\x3F3\x5\xBE`\x2\x3E5\x3E7\a\xEE\x2\x2\x3E6\x3E5"+ + "\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7\x3E8\x3\x2\x2\x2\x3E8\x3EA\a\t"+ + "\x2\x2\x3E9\x3EB\a\xEE\x2\x2\x3EA\x3E9\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2"+ + "\x2\x3EB\x3EC\x3\x2\x2\x2\x3EC\x3F1\x5\xBE`\x2\x3ED\x3EE\a\xEE\x2\x2\x3EE"+ + "\x3EF\a\xA7\x2\x2\x3EF\x3F0\a\xEE\x2\x2\x3F0\x3F2\x5\xBE`\x2\x3F1\x3ED"+ + "\x3\x2\x2\x2\x3F1\x3F2\x3\x2\x2\x2\x3F2\x3F4\x3\x2\x2\x2\x3F3\x3E6\x3"+ + "\x2\x2\x2\x3F3\x3F4\x3\x2\x2\x2\x3F4i\x3\x2\x2\x2\x3F5\x3F6\ah\x2\x2\x3F6"+ + "\x3F7\a\xEE\x2\x2\x3F7\x3F9\x5\xDCo\x2\x3F8\x3FA\a\xEE\x2\x2\x3F9\x3F8"+ + "\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FB\x3\x2\x2\x2\x3FB\x3FD\a\xBB"+ + "\x2\x2\x3FC\x3FE\a\xEE\x2\x2\x3FD\x3FC\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2"+ + "\x2\x3FE\x3FF\x3\x2\x2\x2\x3FF\x400\x5\xBE`\x2\x400k\x3\x2\x2\x2\x401"+ + "\x403\aj\x2\x2\x402\x404\a\xEE\x2\x2\x403\x402\x3\x2\x2\x2\x403\x404\x3"+ + "\x2\x2\x2\x404\x405\x3\x2\x2\x2\x405\x407\a\xBF\x2\x2\x406\x408\a\xEE"+ + "\x2\x2\x407\x406\x3\x2\x2\x2\x407\x408\x3\x2\x2\x2\x408\x409\x3\x2\x2"+ + "\x2\x409\x40B\x5\xE8u\x2\x40A\x40C\a\xEE\x2\x2\x40B\x40A\x3\x2\x2\x2\x40B"+ + "\x40C\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40E\a\xC6\x2\x2\x40Em\x3"+ + "\x2\x2\x2\x40F\x410\ak\x2\x2\x410\x411\a\xEE\x2\x2\x411\x412\x5\xBE`\x2"+ + "\x412o\x3\x2\x2\x2\x413\x414\am\x2\x2\x414\x415\a\xEE\x2\x2\x415\x416"+ + "\x5\xBE`\x2\x416\x417\a\xEE\x2\x2\x417\x418\a\x12\x2\x2\x418\x419\a\xEE"+ + "\x2\x2\x419\x41A\x5\xBE`\x2\x41Aq\x3\x2\x2\x2\x41B\x41C\t\x6\x2\x2\x41C"+ + "\x423\a\xEE\x2\x2\x41D\x41E\aS\x2\x2\x41E\x41F\a\xEE\x2\x2\x41F\x424\x5"+ + "\xBE`\x2\x420\x421\a\x90\x2\x2\x421\x422\a\xEE\x2\x2\x422\x424\an\x2\x2"+ + "\x423\x41D\x3\x2\x2\x2\x423\x420\x3\x2\x2\x2\x424s\x3\x2\x2\x2\x425\x426"+ + "\as\x2\x2\x426\x427\a\xEE\x2\x2\x427\x428\x5\xBE`\x2\x428\x429\a\xEE\x2"+ + "\x2\x429\x42A\aS\x2\x2\x42A\x42B\a\xEE\x2\x2\x42B\x436\x5\xBE`\x2\x42C"+ + "\x42E\a\xEE\x2\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E\x42F"+ + "\x3\x2\x2\x2\x42F\x431\a\t\x2\x2\x430\x432\a\xEE\x2\x2\x431\x430\x3\x2"+ + "\x2\x2\x431\x432\x3\x2\x2\x2\x432\x433\x3\x2\x2\x2\x433\x435\x5\xBE`\x2"+ + "\x434\x42D\x3\x2\x2\x2\x435\x438\x3\x2\x2\x2\x436\x434\x3\x2\x2\x2\x436"+ + "\x437\x3\x2\x2\x2\x437u\x3\x2\x2\x2\x438\x436\x3\x2\x2\x2\x439\x43A\a"+ + "s\x2\x2\x43A\x43B\a\xEE\x2\x2\x43B\x43C\x5\xBE`\x2\x43C\x43D\a\xEE\x2"+ + "\x2\x43D\x43E\aR\x2\x2\x43E\x43F\a\xEE\x2\x2\x43F\x44A\x5\xBE`\x2\x440"+ + "\x442\a\xEE\x2\x2\x441\x440\x3\x2\x2\x2\x441\x442\x3\x2\x2\x2\x442\x443"+ + "\x3\x2\x2\x2\x443\x445\a\t\x2\x2\x444\x446\a\xEE\x2\x2\x445\x444\x3\x2"+ + "\x2\x2\x445\x446\x3\x2\x2\x2\x446\x447\x3\x2\x2\x2\x447\x449\x5\xBE`\x2"+ + "\x448\x441\x3\x2\x2\x2\x449\x44C\x3\x2\x2\x2\x44A\x448\x3\x2\x2\x2\x44A"+ + "\x44B\x3\x2\x2\x2\x44Bw\x3\x2\x2\x2\x44C\x44A\x3\x2\x2\x2\x44D\x44E\a"+ + "v\x2\x2\x44E\x44F\a\xEE\x2\x2\x44F\x450\x5\xBE`\x2\x450\x451\a\xEE\x2"+ + "\x2\x451\x452\aN\x2\x2\x452\x453\a\xEE\x2\x2\x453\x458\t\a\x2\x2\x454"+ + "\x455\a\xEE\x2\x2\x455\x456\a\v\x2\x2\x456\x457\a\xEE\x2\x2\x457\x459"+ + "\t\b\x2\x2\x458\x454\x3\x2\x2\x2\x458\x459\x3\x2\x2\x2\x459\x45C\x3\x2"+ + "\x2\x2\x45A\x45B\a\xEE\x2\x2\x45B\x45D\t\t\x2\x2\x45C\x45A\x3\x2\x2\x2"+ + "\x45C\x45D\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xEE\x2\x2\x45F"+ + "\x460\a\x12\x2\x2\x460\x461\a\xEE\x2\x2\x461\x46C\x5\xCEh\x2\x462\x463"+ + "\a\xEE\x2\x2\x463\x465\a`\x2\x2\x464\x466\a\xEE\x2\x2\x465\x464\x3\x2"+ + "\x2\x2\x465\x466\x3\x2\x2\x2\x466\x467\x3\x2\x2\x2\x467\x469\a\xBB\x2"+ + "\x2\x468\x46A\a\xEE\x2\x2\x469\x468\x3\x2\x2\x2\x469\x46A\x3\x2\x2\x2"+ + "\x46A\x46B\x3\x2\x2\x2\x46B\x46D\x5\xBE`\x2\x46C\x462\x3\x2\x2\x2\x46C"+ + "\x46D\x3\x2\x2\x2\x46Dy\x3\x2\x2\x2\x46E\x47B\x5|?\x2\x46F\x471\a\xEE"+ + "\x2\x2\x470\x46F\x3\x2\x2\x2\x470\x471\x3\x2\x2\x2\x471\x472\x3\x2\x2"+ + "\x2\x472\x474\t\n\x2\x2\x473\x475\a\xEE\x2\x2\x474\x473\x3\x2\x2\x2\x474"+ + "\x475\x3\x2\x2\x2\x475\x477\x3\x2\x2\x2\x476\x478\x5|?\x2\x477\x476\x3"+ + "\x2\x2\x2\x477\x478\x3\x2\x2\x2\x478\x47A\x3\x2\x2\x2\x479\x470\x3\x2"+ + "\x2\x2\x47A\x47D\x3\x2\x2\x2\x47B\x479\x3\x2\x2\x2\x47B\x47C\x3\x2\x2"+ + "\x2\x47C\x490\x3\x2\x2\x2\x47D\x47B\x3\x2\x2\x2\x47E\x480\x5|?\x2\x47F"+ + "\x47E\x3\x2\x2\x2\x47F\x480\x3\x2\x2\x2\x480\x48B\x3\x2\x2\x2\x481\x483"+ + "\a\xEE\x2\x2\x482\x481\x3\x2\x2\x2\x482\x483\x3\x2\x2\x2\x483\x484\x3"+ + "\x2\x2\x2\x484\x486\t\n\x2\x2\x485\x487\a\xEE\x2\x2\x486\x485\x3\x2\x2"+ + "\x2\x486\x487\x3\x2\x2\x2\x487\x489\x3\x2\x2\x2\x488\x48A\x5|?\x2\x489"+ + "\x488\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48A\x48C\x3\x2\x2\x2\x48B\x482"+ + "\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x48B\x3\x2\x2\x2\x48D\x48E\x3"+ + "\x2\x2\x2\x48E\x490\x3\x2\x2\x2\x48F\x46E\x3\x2\x2\x2\x48F\x47F\x3\x2"+ + "\x2\x2\x490{\x3\x2\x2\x2\x491\x4A3\x5\xBE`\x2\x492\x4A0\t\v\x2\x2\x493"+ + "\x495\a\xEE\x2\x2\x494\x493\x3\x2\x2\x2\x494\x495\x3\x2\x2\x2\x495\x496"+ + "\x3\x2\x2\x2\x496\x498\a\xBF\x2\x2\x497\x499\a\xEE\x2\x2\x498\x497\x3"+ + "\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xE8"+ + "u\x2\x49B\x49D\a\xEE\x2\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2"+ + "\x49D\x49E\x3\x2\x2\x2\x49E\x49F\a\xC6\x2\x2\x49F\x4A1\x3\x2\x2\x2\x4A0"+ + "\x494\x3\x2\x2\x2\x4A0\x4A1\x3\x2\x2\x2\x4A1\x4A3\x3\x2\x2\x2\x4A2\x491"+ + "\x3\x2\x2\x2\x4A2\x492\x3\x2\x2\x2\x4A3}\x3\x2\x2\x2\x4A4\x4A5\a\x80\x2"+ + "\x2\x4A5\x4A6\a\xEE\x2\x2\x4A6\x4A8\x5\xCEh\x2\x4A7\x4A9\a\xEE\x2\x2\x4A8"+ + "\x4A7\x3\x2\x2\x2\x4A8\x4A9\x3\x2\x2\x2\x4A9\x4AA\x3\x2\x2\x2\x4AA\x4AF"+ + "\a\t\x2\x2\x4AB\x4AD\a\xEE\x2\x2\x4AC\x4AB\x3\x2\x2\x2\x4AC\x4AD\x3\x2"+ + "\x2\x2\x4AD\x4AE\x3\x2\x2\x2\x4AE\x4B0\x5z>\x2\x4AF\x4AC\x3\x2\x2\x2\x4AF"+ + "\x4B0\x3\x2\x2\x2\x4B0\x7F\x3\x2\x2\x2\x4B1\x4B2\x5\x110\x89\x2\x4B2\x4B3"+ + "\a\xEE\x2\x2\x4B3\x4B5\x3\x2\x2\x2\x4B4\x4B1\x3\x2\x2\x2\x4B4\x4B5\x3"+ + "\x2\x2\x2\x4B5\x4B8\x3\x2\x2\x2\x4B6\x4B7\a\x9E\x2\x2\x4B7\x4B9\a\xEE"+ + "\x2\x2\x4B8\x4B6\x3\x2\x2\x2\x4B8\x4B9\x3\x2\x2\x2\x4B9\x4BA\x3\x2\x2"+ + "\x2\x4BA\x4BB\a\x82\x2\x2\x4BB\x4BC\a\xEE\x2\x2\x4BC\x4BE\x5\xF8}\x2\x4BD"+ + "\x4BF\x5\x10E\x88\x2\x4BE\x4BD\x3\x2\x2\x2\x4BE\x4BF\x3\x2\x2\x2\x4BF"+ + "\x4C4\x3\x2\x2\x2\x4C0\x4C2\a\xEE\x2\x2\x4C1\x4C0\x3\x2\x2\x2\x4C1\x4C2"+ + "\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x4C5\x5\xEEx\x2\x4C4\x4C1\x3\x2"+ + "\x2\x2\x4C4\x4C5\x3\x2\x2\x2\x4C5\x4C8\x3\x2\x2\x2\x4C6\x4C7\a\xEE\x2"+ + "\x2\x4C7\x4C9\x5\xFA~\x2\x4C8\x4C6\x3\x2\x2\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9"+ + "\x4CA\x3\x2\x2\x2\x4CA\x4CC\x5\x11A\x8E\x2\x4CB\x4CD\x5\x1A\xE\x2\x4CC"+ + "\x4CB\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE\x4CF"+ + "\a;\x2\x2\x4CF\x81\x3\x2\x2\x2\x4D0\x4D1\x5\x110\x89\x2\x4D1\x4D2\a\xEE"+ + "\x2\x2\x4D2\x4D4\x3\x2\x2\x2\x4D3\x4D0\x3\x2\x2\x2\x4D3\x4D4\x3\x2\x2"+ + "\x2\x4D4\x4D7\x3\x2\x2\x2\x4D5\x4D6\a\x9E\x2\x2\x4D6\x4D8\a\xEE\x2\x2"+ + "\x4D7\x4D5\x3\x2\x2\x2\x4D7\x4D8\x3\x2\x2\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9"+ + "\x4DA\a\x84\x2\x2\x4DA\x4DB\a\xEE\x2\x2\x4DB\x4E0\x5\xF8}\x2\x4DC\x4DE"+ + "\a\xEE\x2\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4DF\x3"+ + "\x2\x2\x2\x4DF\x4E1\x5\xEEx\x2\x4E0\x4DD\x3\x2\x2\x2\x4E0\x4E1\x3\x2\x2"+ + "\x2\x4E1\x4E2\x3\x2\x2\x2\x4E2\x4E4\x5\x11A\x8E\x2\x4E3\x4E5\x5\x1A\xE"+ + "\x2\x4E4\x4E3\x3\x2\x2\x2\x4E4\x4E5\x3\x2\x2\x2\x4E5\x4E6\x3\x2\x2\x2"+ + "\x4E6\x4E7\a;\x2\x2\x4E7\x83\x3\x2\x2\x2\x4E8\x4E9\x5\x110\x89\x2\x4E9"+ + "\x4EA\a\xEE\x2\x2\x4EA\x4EC\x3\x2\x2\x2\x4EB\x4E8\x3\x2\x2\x2\x4EB\x4EC"+ + "\x3\x2\x2\x2\x4EC\x4EF\x3\x2\x2\x2\x4ED\x4EE\a\x9E\x2\x2\x4EE\x4F0\a\xEE"+ + "\x2\x2\x4EF\x4ED\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F1\x3\x2\x2"+ + "\x2\x4F1\x4F2\a\x83\x2\x2\x4F2\x4F3\a\xEE\x2\x2\x4F3\x4F8\x5\xF8}\x2\x4F4"+ + "\x4F6\a\xEE\x2\x2\x4F5\x4F4\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6\x4F7"+ + "\x3\x2\x2\x2\x4F7\x4F9\x5\xEEx\x2\x4F8\x4F5\x3\x2\x2\x2\x4F8\x4F9\x3\x2"+ + "\x2\x2\x4F9\x4FA\x3\x2\x2\x2\x4FA\x4FC\x5\x11A\x8E\x2\x4FB\x4FD\x5\x1A"+ + "\xE\x2\x4FC\x4FB\x3\x2\x2\x2\x4FC\x4FD\x3\x2\x2\x2\x4FD\x4FE\x3\x2\x2"+ + "\x2\x4FE\x4FF\a;\x2\x2\x4FF\x85\x3\x2\x2\x2\x500\x501\a\x87\x2\x2\x501"+ + "\x502\a\xEE\x2\x2\x502\x504\x5\xCEh\x2\x503\x505\a\xEE\x2\x2\x504\x503"+ + "\x3\x2\x2\x2\x504\x505\x3\x2\x2\x2\x505\x506\x3\x2\x2\x2\x506\x508\a\t"+ + "\x2\x2\x507\x509\a\xEE\x2\x2\x508\x507\x3\x2\x2\x2\x508\x509\x3\x2\x2"+ + "\x2\x509\x50B\x3\x2\x2\x2\x50A\x50C\x5\xBE`\x2\x50B\x50A\x3\x2\x2\x2\x50B"+ + "\x50C\x3\x2\x2\x2\x50C\x50E\x3\x2\x2\x2\x50D\x50F\a\xEE\x2\x2\x50E\x50D"+ + "\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x512\a\t"+ + "\x2\x2\x511\x513\a\xEE\x2\x2\x512\x511\x3\x2\x2\x2\x512\x513\x3\x2\x2"+ + "\x2\x513\x514\x3\x2\x2\x2\x514\x515\x5\xBE`\x2\x515\x87\x3\x2\x2\x2\x516"+ + "\x517\a\x8A\x2\x2\x517\x518\a\xEE\x2\x2\x518\x527\x5\xF8}\x2\x519\x51B"+ + "\a\xEE\x2\x2\x51A\x519\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51C\x3"+ + "\x2\x2\x2\x51C\x51E\a\xBF\x2\x2\x51D\x51F\a\xEE\x2\x2\x51E\x51D\x3\x2"+ + "\x2\x2\x51E\x51F\x3\x2\x2\x2\x51F\x524\x3\x2\x2\x2\x520\x522\x5\xE8u\x2"+ + "\x521\x523\a\xEE\x2\x2\x522\x521\x3\x2\x2\x2\x522\x523\x3\x2\x2\x2\x523"+ + "\x525\x3\x2\x2\x2\x524\x520\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x526"+ + "\x3\x2\x2\x2\x526\x528\a\xC6\x2\x2\x527\x51A\x3\x2\x2\x2\x527\x528\x3"+ + "\x2\x2\x2\x528\x89\x3\x2\x2\x2\x529\x52C\a\x89\x2\x2\x52A\x52B\a\xEE\x2"+ + "\x2\x52B\x52D\x5\xBE`\x2\x52C\x52A\x3\x2\x2\x2\x52C\x52D\x3\x2\x2\x2\x52D"+ + "\x8B\x3\x2\x2\x2\x52E\x52F\a\x8D\x2\x2\x52F\x532\a\xEE\x2\x2\x530\x531"+ + "\a\x7F\x2\x2\x531\x533\a\xEE\x2\x2\x532\x530\x3\x2\x2\x2\x532\x533\x3"+ + "\x2\x2\x2\x533\x534\x3\x2\x2\x2\x534\x53F\x5\x8EH\x2\x535\x537\a\xEE\x2"+ + "\x2\x536\x535\x3\x2\x2\x2\x536\x537\x3\x2\x2\x2\x537\x538\x3\x2\x2\x2"+ + "\x538\x53A\a\t\x2\x2\x539\x53B\a\xEE\x2\x2\x53A\x539\x3\x2\x2\x2\x53A"+ + "\x53B\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53E\x5\x8EH\x2\x53D\x536"+ + "\x3\x2\x2\x2\x53E\x541\x3\x2\x2\x2\x53F\x53D\x3\x2\x2\x2\x53F\x540\x3"+ + "\x2\x2\x2\x540\x8D\x3\x2\x2\x2\x541\x53F\x3\x2\x2\x2\x542\x544\x5\xDC"+ + "o\x2\x543\x545\a\xEE\x2\x2\x544\x543\x3\x2\x2\x2\x544\x545\x3\x2\x2\x2"+ + "\x545\x546\x3\x2\x2\x2\x546\x548\a\xBF\x2\x2\x547\x549\a\xEE\x2\x2\x548"+ + "\x547\x3\x2\x2\x2\x548\x549\x3\x2\x2\x2\x549\x54A\x3\x2\x2\x2\x54A\x54C"+ + "\x5\xF4{\x2\x54B\x54D\a\xEE\x2\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D\x3\x2"+ + "\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x551\a\xC6\x2\x2\x54F\x550\a\xEE\x2"+ + "\x2\x550\x552\x5\xFA~\x2\x551\x54F\x3\x2\x2\x2\x551\x552\x3\x2\x2\x2\x552"+ + "\x8F\x3\x2\x2\x2\x553\x554\a\x8F\x2\x2\x554\x91\x3\x2\x2\x2\x555\x55B"+ + "\a\x90\x2\x2\x556\x559\a\xEE\x2\x2\x557\x55A\an\x2\x2\x558\x55A\x5\xF8"+ + "}\x2\x559\x557\x3\x2\x2\x2\x559\x558\x3\x2\x2\x2\x55A\x55C\x3\x2\x2\x2"+ + "\x55B\x556\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x93\x3\x2\x2\x2\x55D"+ + "\x55E\a\x91\x2\x2\x55E\x95\x3\x2\x2\x2\x55F\x560\a\x92\x2\x2\x560\x561"+ + "\a\xEE\x2\x2\x561\x562\x5\xBE`\x2\x562\x97\x3\x2\x2\x2\x563\x564\a\x93"+ + "\x2\x2\x564\x565\a\xEE\x2\x2\x565\x567\x5\xDCo\x2\x566\x568\a\xEE\x2\x2"+ + "\x567\x566\x3\x2\x2\x2\x567\x568\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569"+ + "\x56B\a\xBB\x2\x2\x56A\x56C\a\xEE\x2\x2\x56B\x56A\x3\x2\x2\x2\x56B\x56C"+ + "\x3\x2\x2\x2\x56C\x56D\x3\x2\x2\x2\x56D\x56E\x5\xBE`\x2\x56E\x99\x3\x2"+ + "\x2\x2\x56F\x570\a\x94\x2\x2\x570\x571\a\xEE\x2\x2\x571\x573\x5\xBE`\x2"+ + "\x572\x574\a\xEE\x2\x2\x573\x572\x3\x2\x2\x2\x573\x574\x3\x2\x2\x2\x574"+ + "\x575\x3\x2\x2\x2\x575\x577\a\t\x2\x2\x576\x578\a\xEE\x2\x2\x577\x576"+ + "\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\x3\x2\x2\x2\x579\x57A\x5"+ + "\xBE`\x2\x57A\x9B\x3\x2\x2\x2\x57B\x57C\a\x95\x2\x2\x57C\x57D\a\xEE\x2"+ + "\x2\x57D\x57F\x5\xBE`\x2\x57E\x580\a\xEE\x2\x2\x57F\x57E\x3\x2\x2\x2\x57F"+ + "\x580\x3\x2\x2\x2\x580\x581\x3\x2\x2\x2\x581\x583\a\t\x2\x2\x582\x584"+ + "\a\xEE\x2\x2\x583\x582\x3\x2\x2\x2\x583\x584\x3\x2\x2\x2\x584\x585\x3"+ + "\x2\x2\x2\x585\x587\x5\xBE`\x2\x586\x588\a\xEE\x2\x2\x587\x586\x3\x2\x2"+ + "\x2\x587\x588\x3\x2\x2\x2\x588\x589\x3\x2\x2\x2\x589\x58B\a\t\x2\x2\x58A"+ + "\x58C\a\xEE\x2\x2\x58B\x58A\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x58D"+ + "\x3\x2\x2\x2\x58D\x58F\x5\xBE`\x2\x58E\x590\a\xEE\x2\x2\x58F\x58E\x3\x2"+ + "\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x591\x3\x2\x2\x2\x591\x593\a\t\x2\x2"+ + "\x592\x594\a\xEE\x2\x2\x593\x592\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594"+ + "\x595\x3\x2\x2\x2\x595\x596\x5\xBE`\x2\x596\x9D\x3\x2\x2\x2\x597\x598"+ + "\a\x96\x2\x2\x598\x599\a\xEE\x2\x2\x599\x59B\x5\xCEh\x2\x59A\x59C\a\xEE"+ + "\x2\x2\x59B\x59A\x3\x2\x2\x2\x59B\x59C\x3\x2\x2\x2\x59C\x59D\x3\x2\x2"+ + "\x2\x59D\x59F\a\t\x2\x2\x59E\x5A0\a\xEE\x2\x2\x59F\x59E\x3\x2\x2\x2\x59F"+ + "\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1\x5A2\x5\xBE`\x2\x5A2\x9F"+ + "\x3\x2\x2\x2\x5A3\x5A4\a\x97\x2\x2\x5A4\x5A5\a\xEE\x2\x2\x5A5\x5A6\a\x1B"+ + "\x2\x2\x5A6\x5A7\a\xEE\x2\x2\x5A7\x5A8\x5\xBE`\x2\x5A8\x5AC\x5\x11A\x8E"+ + "\x2\x5A9\x5AB\x5\xA4S\x2\x5AA\x5A9\x3\x2\x2\x2\x5AB\x5AE\x3\x2\x2\x2\x5AC"+ + "\x5AA\x3\x2\x2\x2\x5AC\x5AD\x3\x2\x2\x2\x5AD\x5AF\x3\x2\x2\x2\x5AE\x5AC"+ + "\x3\x2\x2\x2\x5AF\x5B0\a<\x2\x2\x5B0\xA1\x3\x2\x2\x2\x5B1\x5B3\aY\x2\x2"+ + "\x5B2\x5B4\a\xEE\x2\x2\x5B3\x5B2\x3\x2\x2\x2\x5B3\x5B4\x3\x2\x2\x2\x5B4"+ + "\x5B5\x3\x2\x2\x2\x5B5\x5B7\x5\x100\x81\x2\x5B6\x5B8\a\xEE\x2\x2\x5B7"+ + "\x5B6\x3\x2\x2\x2\x5B7\x5B8\x3\x2\x2\x2\x5B8\x5B9\x3\x2\x2\x2\x5B9\x5BA"+ + "\x5\xBE`\x2\x5BA\x5C3\x3\x2\x2\x2\x5BB\x5BC\x5\xBE`\x2\x5BC\x5BD\a\xEE"+ + "\x2\x2\x5BD\x5BE\a\xA7\x2\x2\x5BE\x5BF\a\xEE\x2\x2\x5BF\x5C0\x5\xBE`\x2"+ + "\x5C0\x5C3\x3\x2\x2\x2\x5C1\x5C3\x5\xBE`\x2\x5C2\x5B1\x3\x2\x2\x2\x5C2"+ + "\x5BB\x3\x2\x2\x2\x5C2\x5C1\x3\x2\x2\x2\x5C3\xA3\x3\x2\x2\x2\x5C4\x5C5"+ + "\a\x1B\x2\x2\x5C5\x5C6\a\xEE\x2\x2\x5C6\x5C7\x5\xA6T\x2\x5C7\x5C9\x5\x11A"+ + "\x8E\x2\x5C8\x5CA\x5\x1A\xE\x2\x5C9\x5C8\x3\x2\x2\x2\x5C9\x5CA\x3\x2\x2"+ + "\x2\x5CA\xA5\x3\x2\x2\x2\x5CB\x5DB\a\x36\x2\x2\x5CC\x5D7\x5\xA2R\x2\x5CD"+ + "\x5CF\a\xEE\x2\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0"+ + "\x3\x2\x2\x2\x5D0\x5D2\a\t\x2\x2\x5D1\x5D3\a\xEE\x2\x2\x5D2\x5D1\x3\x2"+ + "\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D6\x5\xA2R\x2"+ + "\x5D5\x5CE\x3\x2\x2\x2\x5D6\x5D9\x3\x2\x2\x2\x5D7\x5D5\x3\x2\x2\x2\x5D7"+ + "\x5D8\x3\x2\x2\x2\x5D8\x5DB\x3\x2\x2\x2\x5D9\x5D7\x3\x2\x2\x2\x5DA\x5CB"+ + "\x3\x2\x2\x2\x5DA\x5CC\x3\x2\x2\x2\x5DB\xA7\x3\x2\x2\x2\x5DC\x5DD\a\x98"+ + "\x2\x2\x5DD\x5DE\a\xEE\x2\x2\x5DE\x5E7\x5\xBE`\x2\x5DF\x5E1\a\xEE\x2\x2"+ + "\x5E0\x5DF\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2"+ + "\x5E4\a\t\x2\x2\x5E3\x5E5\a\xEE\x2\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5"+ + "\x3\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2\x5E6\x5E8\x5\xBE`\x2\x5E7\x5E0\x3\x2"+ + "\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\xA9\x3\x2\x2\x2\x5E9\x5EA\a\x9A\x2\x2"+ + "\x5EA\x5EB\a\xEE\x2\x2\x5EB\x5ED\x5\xBE`\x2\x5EC\x5EE\a\xEE\x2\x2\x5ED"+ + "\x5EC\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5EF\x3\x2\x2\x2\x5EF\x5F1"+ + "\a\t\x2\x2\x5F0\x5F2\a\xEE\x2\x2\x5F1\x5F0\x3\x2\x2\x2\x5F1\x5F2\x3\x2"+ + "\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F4\x5\xBE`\x2\x5F4\xAB\x3\x2\x2\x2"+ + "\x5F5\x5F6\a\x99\x2\x2\x5F6\x5F7\a\xEE\x2\x2\x5F7\x5F9\x5\xDCo\x2\x5F8"+ + "\x5FA\a\xEE\x2\x2\x5F9\x5F8\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2\x5FA\x5FB"+ + "\x3\x2\x2\x2\x5FB\x5FD\a\xBB\x2\x2\x5FC\x5FE\a\xEE\x2\x2\x5FD\x5FC\x3"+ + "\x2\x2\x2\x5FD\x5FE\x3\x2\x2\x2\x5FE\x5FF\x3\x2\x2\x2\x5FF\x600\x5\xBE"+ + "`\x2\x600\xAD\x3\x2\x2\x2\x601\x602\a\xA0\x2\x2\x602\xAF\x3\x2\x2\x2\x603"+ + "\x604\x5\x110\x89\x2\x604\x605\a\xEE\x2\x2\x605\x607\x3\x2\x2\x2\x606"+ + "\x603\x3\x2\x2\x2\x606\x607\x3\x2\x2\x2\x607\x60A\x3\x2\x2\x2\x608\x609"+ + "\a\x9E\x2\x2\x609\x60B\a\xEE\x2\x2\x60A\x608\x3\x2\x2\x2\x60A\x60B\x3"+ + "\x2\x2\x2\x60B\x60C\x3\x2\x2\x2\x60C\x60E\a\xA2\x2\x2\x60D\x60F\a\xEE"+ + "\x2\x2\x60E\x60D\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610\x3\x2\x2"+ + "\x2\x610\x615\x5\xF8}\x2\x611\x613\a\xEE\x2\x2\x612\x611\x3\x2\x2\x2\x612"+ + "\x613\x3\x2\x2\x2\x613\x614\x3\x2\x2\x2\x614\x616\x5\xEEx\x2\x615\x612"+ + "\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\x617\x3\x2\x2\x2\x617\x619\x5"+ + "\x11A\x8E\x2\x618\x61A\x5\x1A\xE\x2\x619\x618\x3\x2\x2\x2\x619\x61A\x3"+ + "\x2\x2\x2\x61A\x61B\x3\x2\x2\x2\x61B\x61C\a=\x2\x2\x61C\xB1\x3\x2\x2\x2"+ + "\x61D\x61F\a\xA6\x2\x2\x61E\x620\a\xEE\x2\x2\x61F\x61E\x3\x2\x2\x2\x61F"+ + "\x620\x3\x2\x2\x2\x620\x621\x3\x2\x2\x2\x621\x623\a\xBB\x2\x2\x622\x624"+ + "\a\xEE\x2\x2\x623\x622\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x625\x3"+ + "\x2\x2\x2\x625\x626\x5\xBE`\x2\x626\xB3\x3\x2\x2\x2\x627\x628\x5\x110"+ + "\x89\x2\x628\x629\a\xEE\x2\x2\x629\x62B\x3\x2\x2\x2\x62A\x627\x3\x2\x2"+ + "\x2\x62A\x62B\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62D\a\xA9\x2\x2"+ + "\x62D\x62E\a\xEE\x2\x2\x62E\x62F\x5\xF8}\x2\x62F\x633\x5\x11A\x8E\x2\x630"+ + "\x632\x5\xB6\\\x2\x631\x630\x3\x2\x2\x2\x632\x635\x3\x2\x2\x2\x633\x631"+ + "\x3\x2\x2\x2\x633\x634\x3\x2\x2\x2\x634\x636\x3\x2\x2\x2\x635\x633\x3"+ + "\x2\x2\x2\x636\x637\a>\x2\x2\x637\xB5\x3\x2\x2\x2\x638\x647\x5\xF8}\x2"+ + "\x639\x63B\a\xEE\x2\x2\x63A\x639\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B"+ + "\x63C\x3\x2\x2\x2\x63C\x641\a\xBF\x2\x2\x63D\x63F\a\xEE\x2\x2\x63E\x63D"+ + "\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x640\x3\x2\x2\x2\x640\x642\x5"+ + "\xF4{\x2\x641\x63E\x3\x2\x2\x2\x641\x642\x3\x2\x2\x2\x642\x644\x3\x2\x2"+ + "\x2\x643\x645\a\xEE\x2\x2\x644\x643\x3\x2\x2\x2\x644\x645\x3\x2\x2\x2"+ + "\x645\x646\x3\x2\x2\x2\x646\x648\a\xC6\x2\x2\x647\x63A\x3\x2\x2\x2\x647"+ + "\x648\x3\x2\x2\x2\x648\x64B\x3\x2\x2\x2\x649\x64A\a\xEE\x2\x2\x64A\x64C"+ + "\x5\xFA~\x2\x64B\x649\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x3\x2"+ + "\x2\x2\x64D\x64E\x5\x11A\x8E\x2\x64E\xB7\x3\x2\x2\x2\x64F\x650\a\xAA\x2"+ + "\x2\x650\x651\a\xEE\x2\x2\x651\x656\x5\xBE`\x2\x652\x653\a\xEE\x2\x2\x653"+ + "\x654\aY\x2\x2\x654\x655\a\xEE\x2\x2\x655\x657\x5\x10C\x87\x2\x656\x652"+ + "\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\xB9\x3\x2\x2\x2\x658\x659\a\xAB"+ + "\x2\x2\x659\x65A\a\xEE\x2\x2\x65A\x65B\x5\xBE`\x2\x65B\xBB\x3\x2\x2\x2"+ + "\x65C\x65D\a\xAC\x2\x2\x65D\x65E\a\xEE\x2\x2\x65E\x66D\x5\xCEh\x2\x65F"+ + "\x661\a\xEE\x2\x2\x660\x65F\x3\x2\x2\x2\x660\x661\x3\x2\x2\x2\x661\x662"+ + "\x3\x2\x2\x2\x662\x664\a\t\x2\x2\x663\x665\a\xEE\x2\x2\x664\x663\x3\x2"+ + "\x2\x2\x664\x665\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2\x666\x66B\x5\xBE`\x2"+ + "\x667\x668\a\xEE\x2\x2\x668\x669\a\xA7\x2\x2\x669\x66A\a\xEE\x2\x2\x66A"+ + "\x66C\x5\xBE`\x2\x66B\x667\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x66E"+ + "\x3\x2\x2\x2\x66D\x660\x3\x2\x2\x2\x66D\x66E\x3\x2\x2\x2\x66E\xBD\x3\x2"+ + "\x2\x2\x66F\x670\b`\x1\x2\x670\x672\ao\x2\x2\x671\x673\a\xEE\x2\x2\x672"+ + "\x671\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x6A7"+ + "\x5\xBE`\x15\x675\x677\a\f\x2\x2\x676\x678\a\xEE\x2\x2\x677\x676\x3\x2"+ + "\x2\x2\x677\x678\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x6A7\x5\xBE`\x12"+ + "\x67A\x67C\x5\xDCo\x2\x67B\x67D\a\xEE\x2\x2\x67C\x67B\x3\x2\x2\x2\x67C"+ + "\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x680\a\xB8\x2\x2\x67F\x681"+ + "\a\xEE\x2\x2\x680\x67F\x3\x2\x2\x2\x680\x681\x3\x2\x2\x2\x681\x682\x3"+ + "\x2\x2\x2\x682\x683\x5\xBE`\x11\x683\x6A7\x3\x2\x2\x2\x684\x686\a\xC1"+ + "\x2\x2\x685\x687\a\xEE\x2\x2\x686\x685\x3\x2\x2\x2\x686\x687\x3\x2\x2"+ + "\x2\x687\x688\x3\x2\x2\x2\x688\x6A7\x5\xBE`\xF\x689\x68B\ap\x2\x2\x68A"+ + "\x68C\a\xEE\x2\x2\x68B\x68A\x3\x2\x2\x2\x68B\x68C\x3\x2\x2\x2\x68C\x68D"+ + "\x3\x2\x2\x2\x68D\x6A7\x5\xBE`\b\x68E\x6A7\x5\x10A\x86\x2\x68F\x6A7\x5"+ + "\xDCo\x2\x690\x692\a\xBF\x2\x2\x691\x693\a\xEE\x2\x2\x692\x691\x3\x2\x2"+ + "\x2\x692\x693\x3\x2\x2\x2\x693\x694\x3\x2\x2\x2\x694\x69F\x5\xBE`\x2\x695"+ + "\x697\a\xEE\x2\x2\x696\x695\x3\x2\x2\x2\x696\x697\x3\x2\x2\x2\x697\x698"+ + "\x3\x2\x2\x2\x698\x69A\a\t\x2\x2\x699\x69B\a\xEE\x2\x2\x69A\x699\x3\x2"+ + "\x2\x2\x69A\x69B\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2\x69C\x69E\x5\xBE`\x2"+ + "\x69D\x696\x3\x2\x2\x2\x69E\x6A1\x3\x2\x2\x2\x69F\x69D\x3\x2\x2\x2\x69F"+ + "\x6A0\x3\x2\x2\x2\x6A0\x6A2\x3\x2\x2\x2\x6A1\x69F\x3\x2\x2\x2\x6A2\x6A3"+ + "\a\xC6\x2\x2\x6A3\x6A7\x3\x2\x2\x2\x6A4\x6A7\x5\xB8]\x2\x6A5\x6A7\x5l"+ + "\x37\x2\x6A6\x66F\x3\x2\x2\x2\x6A6\x675\x3\x2\x2\x2\x6A6\x67A\x3\x2\x2"+ + "\x2\x6A6\x684\x3\x2\x2\x2\x6A6\x689\x3\x2\x2\x2\x6A6\x68E\x3\x2\x2\x2"+ + "\x6A6\x68F\x3\x2\x2\x2\x6A6\x690\x3\x2\x2\x2\x6A6\x6A4\x3\x2\x2\x2\x6A6"+ + "\x6A5\x3\x2\x2\x2\x6A7\x716\x3\x2\x2\x2\x6A8\x6AA\f\x10\x2\x2\x6A9\x6AB"+ + "\a\xEE\x2\x2\x6AA\x6A9\x3\x2\x2\x2\x6AA\x6AB\x3\x2\x2\x2\x6AB\x6AC\x3"+ + "\x2\x2\x2\x6AC\x6AE\a\xC5\x2\x2\x6AD\x6AF\a\xEE\x2\x2\x6AE\x6AD\x3\x2"+ + "\x2\x2\x6AE\x6AF\x3\x2\x2\x2\x6AF\x6B0\x3\x2\x2\x2\x6B0\x715\x5\xBE`\x11"+ + "\x6B1\x6B3\f\xE\x2\x2\x6B2\x6B4\a\xEE\x2\x2\x6B3\x6B2\x3\x2\x2\x2\x6B3"+ + "\x6B4\x3\x2\x2\x2\x6B4\x6B5\x3\x2\x2\x2\x6B5\x6B7\t\f\x2\x2\x6B6\x6B8"+ + "\a\xEE\x2\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6B9\x3"+ + "\x2\x2\x2\x6B9\x715\x5\xBE`\xF\x6BA\x6BC\f\r\x2\x2\x6BB\x6BD\a\xEE\x2"+ + "\x2\x6BC\x6BB\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6BE\x3\x2\x2\x2"+ + "\x6BE\x6C0\a\xBA\x2\x2\x6BF\x6C1\a\xEE\x2\x2\x6C0\x6BF\x3\x2\x2\x2\x6C0"+ + "\x6C1\x3\x2\x2\x2\x6C1\x6C2\x3\x2\x2\x2\x6C2\x715\x5\xBE`\xE\x6C3\x6C5"+ + "\f\f\x2\x2\x6C4\x6C6\a\xEE\x2\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5\x6C6\x3\x2"+ + "\x2\x2\x6C6\x6C7\x3\x2\x2\x2\x6C7\x6C9\al\x2\x2\x6C8\x6CA\a\xEE\x2\x2"+ + "\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA\x6CB\x3\x2\x2\x2\x6CB"+ + "\x715\x5\xBE`\r\x6CC\x6CE\f\v\x2\x2\x6CD\x6CF\a\xEE\x2\x2\x6CE\x6CD\x3"+ + "\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2\x2\x2\x6D0\x6D2\t\r\x2"+ + "\x2\x6D1\x6D3\a\xEE\x2\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2"+ + "\x6D3\x6D4\x3\x2\x2\x2\x6D4\x715\x5\xBE`\f\x6D5\x6D7\f\n\x2\x2\x6D6\x6D8"+ + "\a\xEE\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8\x6D9\x3"+ + "\x2\x2\x2\x6D9\x6DB\a\xB7\x2\x2\x6DA\x6DC\a\xEE\x2\x2\x6DB\x6DA\x3\x2"+ + "\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x715\x5\xBE`\v"+ + "\x6DE\x6E0\f\t\x2\x2\x6DF\x6E1\a\xEE\x2\x2\x6E0\x6DF\x3\x2\x2\x2\x6E0"+ + "\x6E1\x3\x2\x2\x2\x6E1\x6E2\x3\x2\x2\x2\x6E2\x6E4\t\xE\x2\x2\x6E3\x6E5"+ + "\a\xEE\x2\x2\x6E4\x6E3\x3\x2\x2\x2\x6E4\x6E5\x3\x2\x2\x2\x6E5\x6E6\x3"+ + "\x2\x2\x2\x6E6\x715\x5\xBE`\n\x6E7\x6E9\f\a\x2\x2\x6E8\x6EA\a\xEE\x2\x2"+ + "\x6E9\x6E8\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB\x3\x2\x2\x2\x6EB"+ + "\x6ED\a\xE\x2\x2\x6EC\x6EE\a\xEE\x2\x2\x6ED\x6EC\x3\x2\x2\x2\x6ED\x6EE"+ + "\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2\x2\x6EF\x715\x5\xBE`\b\x6F0\x6F2\f\x6"+ + "\x2\x2\x6F1\x6F3\a\xEE\x2\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2"+ + "\x2\x6F3\x6F4\x3\x2\x2\x2\x6F4\x6F6\a|\x2\x2\x6F5\x6F7\a\xEE\x2\x2\x6F6"+ + "\x6F5\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F8\x3\x2\x2\x2\x6F8\x715"+ + "\x5\xBE`\a\x6F9\x6FB\f\x5\x2\x2\x6FA\x6FC\a\xEE\x2\x2\x6FB\x6FA\x3\x2"+ + "\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x6FD\x3\x2\x2\x2\x6FD\x6FF\a\xB6\x2"+ + "\x2\x6FE\x700\a\xEE\x2\x2\x6FF\x6FE\x3\x2\x2\x2\x6FF\x700\x3\x2\x2\x2"+ + "\x700\x701\x3\x2\x2\x2\x701\x715\x5\xBE`\x6\x702\x704\f\x4\x2\x2\x703"+ + "\x705\a\xEE\x2\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706"+ + "\x3\x2\x2\x2\x706\x708\a\x42\x2\x2\x707\x709\a\xEE\x2\x2\x708\x707\x3"+ + "\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A\x715\x5\xBE"+ + "`\x5\x70B\x70D\f\x3\x2\x2\x70C\x70E\a\xEE\x2\x2\x70D\x70C\x3\x2\x2\x2"+ + "\x70D\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x711\aU\x2\x2\x710\x712"+ + "\a\xEE\x2\x2\x711\x710\x3\x2\x2\x2\x711\x712\x3\x2\x2\x2\x712\x713\x3"+ + "\x2\x2\x2\x713\x715\x5\xBE`\x4\x714\x6A8\x3\x2\x2\x2\x714\x6B1\x3\x2\x2"+ + "\x2\x714\x6BA\x3\x2\x2\x2\x714\x6C3\x3\x2\x2\x2\x714\x6CC\x3\x2\x2\x2"+ + "\x714\x6D5\x3\x2\x2\x2\x714\x6DE\x3\x2\x2\x2\x714\x6E7\x3\x2\x2\x2\x714"+ + "\x6F0\x3\x2\x2\x2\x714\x6F9\x3\x2\x2\x2\x714\x702\x3\x2\x2\x2\x714\x70B"+ + "\x3\x2\x2\x2\x715\x718\x3\x2\x2\x2\x716\x714\x3\x2\x2\x2\x716\x717\x3"+ + "\x2\x2\x2\x717\xBF\x3\x2\x2\x2\x718\x716\x3\x2\x2\x2\x719\x71D\a\x32\x2"+ + "\x2\x71A\x71D\a\x9E\x2\x2\x71B\x71D\x5\x110\x89\x2\x71C\x719\x3\x2\x2"+ + "\x2\x71C\x71A\x3\x2\x2\x2\x71C\x71B\x3\x2\x2\x2\x71D\x71E\x3\x2\x2\x2"+ + "\x71E\x721\a\xEE\x2\x2\x71F\x720\a\xB4\x2\x2\x720\x722\a\xEE\x2\x2\x721"+ + "\x71F\x3\x2\x2\x2\x721\x722\x3\x2\x2\x2\x722\x723\x3\x2\x2\x2\x723\x724"+ + "\x5\xC2\x62\x2\x724\xC1\x3\x2\x2\x2\x725\x730\x5\xC4\x63\x2\x726\x728"+ + "\a\xEE\x2\x2\x727\x726\x3\x2\x2\x2\x727\x728\x3\x2\x2\x2\x728\x729\x3"+ + "\x2\x2\x2\x729\x72B\a\t\x2\x2\x72A\x72C\a\xEE\x2\x2\x72B\x72A\x3\x2\x2"+ + "\x2\x72B\x72C\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D\x72F\x5\xC4\x63\x2"+ + "\x72E\x727\x3\x2\x2\x2\x72F\x732\x3\x2\x2\x2\x730\x72E\x3\x2\x2\x2\x730"+ + "\x731\x3\x2\x2\x2\x731\xC3\x3\x2\x2\x2\x732\x730\x3\x2\x2\x2\x733\x745"+ + "\x5\xF8}\x2\x734\x736\a\xEE\x2\x2\x735\x734\x3\x2\x2\x2\x735\x736\x3\x2"+ + "\x2\x2\x736\x737\x3\x2\x2\x2\x737\x739\a\xBF\x2\x2\x738\x73A\a\xEE\x2"+ + "\x2\x739\x738\x3\x2\x2\x2\x739\x73A\x3\x2\x2\x2\x73A\x73F\x3\x2\x2\x2"+ + "\x73B\x73D\x5\xF4{\x2\x73C\x73E\a\xEE\x2\x2\x73D\x73C\x3\x2\x2\x2\x73D"+ + "\x73E\x3\x2\x2\x2\x73E\x740\x3\x2\x2\x2\x73F\x73B\x3\x2\x2\x2\x73F\x740"+ + "\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\a\xC6\x2\x2\x742\x744\a\xEE"+ + "\x2\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2\x2\x2\x744\x746\x3\x2\x2"+ + "\x2\x745\x735\x3\x2\x2\x2\x745\x746\x3\x2\x2\x2\x746\x748\x3\x2\x2\x2"+ + "\x747\x749\x5\x10E\x88\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2"+ + "\x749\x74C\x3\x2\x2\x2\x74A\x74B\a\xEE\x2\x2\x74B\x74D\x5\xFA~\x2\x74C"+ + "\x74A\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\xC5\x3\x2\x2\x2\x74E\x74F"+ + "\a\xB1\x2\x2\x74F\x750\a\xEE\x2\x2\x750\x751\x5\xBE`\x2\x751\x753\x5\x11A"+ + "\x8E\x2\x752\x754\x5\x1A\xE\x2\x753\x752\x3\x2\x2\x2\x753\x754\x3\x2\x2"+ + "\x2\x754\x755\x3\x2\x2\x2\x755\x756\a\xB0\x2\x2\x756\xC7\x3\x2\x2\x2\x757"+ + "\x758\a\xB2\x2\x2\x758\x759\a\xEE\x2\x2\x759\x75B\x5\xCEh\x2\x75A\x75C"+ + "\a\xEE\x2\x2\x75B\x75A\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D\x3"+ + "\x2\x2\x2\x75D\x75F\a\t\x2\x2\x75E\x760\a\xEE\x2\x2\x75F\x75E\x3\x2\x2"+ + "\x2\x75F\x760\x3\x2\x2\x2\x760\x761\x3\x2\x2\x2\x761\x762\x5\xBE`\x2\x762"+ + "\xC9\x3\x2\x2\x2\x763\x764\a\xB3\x2\x2\x764\x769\a\xEE\x2\x2\x765\x76A"+ + "\x5\xDCo\x2\x766\x767\ao\x2\x2\x767\x768\a\xEE\x2\x2\x768\x76A\x5\x10C"+ + "\x87\x2\x769\x765\x3\x2\x2\x2\x769\x766\x3\x2\x2\x2\x76A\x76B\x3\x2\x2"+ + "\x2\x76B\x76D\x5\x11A\x8E\x2\x76C\x76E\x5\x1A\xE\x2\x76D\x76C\x3\x2\x2"+ + "\x2\x76D\x76E\x3\x2\x2\x2\x76E\x76F\x3\x2\x2\x2\x76F\x770\a?\x2\x2\x770"+ + "\xCB\x3\x2\x2\x2\x771\x772\a\xB5\x2\x2\x772\x773\a\xEE\x2\x2\x773\x775"+ + "\x5\xCEh\x2\x774\x776\a\xEE\x2\x2\x775\x774\x3\x2\x2\x2\x775\x776\x3\x2"+ + "\x2\x2\x776\x777\x3\x2\x2\x2\x777\x77C\a\t\x2\x2\x778\x77A\a\xEE\x2\x2"+ + "\x779\x778\x3\x2\x2\x2\x779\x77A\x3\x2\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B"+ + "\x77D\x5z>\x2\x77C\x779\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\xCD\x3"+ + "\x2\x2\x2\x77E\x780\a\x5\x2\x2\x77F\x77E\x3\x2\x2\x2\x77F\x780\x3\x2\x2"+ + "\x2\x780\x781\x3\x2\x2\x2\x781\x782\x5\xBE`\x2\x782\xCF\x3\x2\x2\x2\x783"+ + "\x786\x5\xD2j\x2\x784\x786\x5\xD4k\x2\x785\x783\x3\x2\x2\x2\x785\x784"+ + "\x3\x2\x2\x2\x786\xD1\x3\x2\x2\x2\x787\x788\a\x1A\x2\x2\x788\x789\a\xEE"+ + "\x2\x2\x789\x78B\x5\xF8}\x2\x78A\x78C\x5\x10E\x88\x2\x78B\x78A\x3\x2\x2"+ + "\x2\x78B\x78C\x3\x2\x2\x2\x78C\x79A\x3\x2\x2\x2\x78D\x78F\a\xEE\x2\x2"+ + "\x78E\x78D\x3\x2\x2\x2\x78E\x78F\x3\x2\x2\x2\x78F\x790\x3\x2\x2\x2\x790"+ + "\x792\a\xBF\x2\x2\x791\x793\a\xEE\x2\x2\x792\x791\x3\x2\x2\x2\x792\x793"+ + "\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794\x796\x5\xE8u\x2\x795\x797\a\xEE"+ + "\x2\x2\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x798\x3\x2\x2"+ + "\x2\x798\x799\a\xC6\x2\x2\x799\x79B\x3\x2\x2\x2\x79A\x78E\x3\x2\x2\x2"+ + "\x79A\x79B\x3\x2\x2\x2\x79B\x7A5\x3\x2\x2\x2\x79C\x79E\a\xEE\x2\x2\x79D"+ + "\x79C\x3\x2\x2\x2\x79D\x79E\x3\x2\x2\x2\x79E\x79F\x3\x2\x2\x2\x79F\x7A0"+ + "\a\xBF\x2\x2\x7A0\x7A1\x5\xF4{\x2\x7A1\x7A2\a\xC6\x2\x2\x7A2\x7A4\x3\x2"+ + "\x2\x2\x7A3\x79D\x3\x2\x2\x2\x7A4\x7A7\x3\x2\x2\x2\x7A5\x7A3\x3\x2\x2"+ + "\x2\x7A5\x7A6\x3\x2\x2\x2\x7A6\xD3\x3\x2\x2\x2\x7A7\x7A5\x3\x2\x2\x2\x7A8"+ + "\x7A9\a\x1A\x2\x2\x7A9\x7AB\a\xEE\x2\x2\x7AA\x7AC\x5\xDCo\x2\x7AB\x7AA"+ + "\x3\x2\x2\x2\x7AB\x7AC\x3\x2\x2\x2\x7AC\x7AD\x3\x2\x2\x2\x7AD\x7AE\a\n"+ + "\x2\x2\x7AE\x7B0\x5\xF8}\x2\x7AF\x7B1\x5\x10E\x88\x2\x7B0\x7AF\x3\x2\x2"+ + "\x2\x7B0\x7B1\x3\x2\x2\x2\x7B1\x7BF\x3\x2\x2\x2\x7B2\x7B4\a\xEE\x2\x2"+ + "\x7B3\x7B2\x3\x2\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B5\x3\x2\x2\x2\x7B5"+ + "\x7B7\a\xBF\x2\x2\x7B6\x7B8\a\xEE\x2\x2\x7B7\x7B6\x3\x2\x2\x2\x7B7\x7B8"+ + "\x3\x2\x2\x2\x7B8\x7B9\x3\x2\x2\x2\x7B9\x7BB\x5\xE8u\x2\x7BA\x7BC\a\xEE"+ + "\x2\x2\x7BB\x7BA\x3\x2\x2\x2\x7BB\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2"+ + "\x2\x7BD\x7BE\a\xC6\x2\x2\x7BE\x7C0\x3\x2\x2\x2\x7BF\x7B3\x3\x2\x2\x2"+ + "\x7BF\x7C0\x3\x2\x2\x2\x7C0\x7CA\x3\x2\x2\x2\x7C1\x7C3\a\xEE\x2\x2\x7C2"+ + "\x7C1\x3\x2\x2\x2\x7C2\x7C3\x3\x2\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C5"+ + "\a\xBF\x2\x2\x7C5\x7C6\x5\xF4{\x2\x7C6\x7C7\a\xC6\x2\x2\x7C7\x7C9\x3\x2"+ + "\x2\x2\x7C8\x7C2\x3\x2\x2\x2\x7C9\x7CC\x3\x2\x2\x2\x7CA\x7C8\x3\x2\x2"+ + "\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB\xD5\x3\x2\x2\x2\x7CC\x7CA\x3\x2\x2\x2\x7CD"+ + "\x7D0\x5\xD8m\x2\x7CE\x7D0\x5\xDAn\x2\x7CF\x7CD\x3\x2\x2\x2\x7CF\x7CE"+ + "\x3\x2\x2\x2\x7D0\xD7\x3\x2\x2\x2\x7D1\x7D3\x5\xDCo\x2\x7D2\x7D1\x3\x2"+ + "\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\x7D5\a\n\x2\x2"+ + "\x7D5\x7D7\x5\xF8}\x2\x7D6\x7D8\x5\x10E\x88\x2\x7D7\x7D6\x3\x2\x2\x2\x7D7"+ + "\x7D8\x3\x2\x2\x2\x7D8\x7DB\x3\x2\x2\x2\x7D9\x7DA\a\xEE\x2\x2\x7DA\x7DC"+ + "\x5\xE8u\x2\x7DB\x7D9\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\x7E1\x3\x2"+ + "\x2\x2\x7DD\x7DF\a\xEE\x2\x2\x7DE\x7DD\x3\x2\x2\x2\x7DE\x7DF\x3\x2\x2"+ + "\x2\x7DF\x7E0\x3\x2\x2\x2\x7E0\x7E2\x5\xECw\x2\x7E1\x7DE\x3\x2\x2\x2\x7E1"+ + "\x7E2\x3\x2\x2\x2\x7E2\x7EC\x3\x2\x2\x2\x7E3\x7E5\a\xEE\x2\x2\x7E4\x7E3"+ + "\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7E7\a\xBF"+ + "\x2\x2\x7E7\x7E8\x5\xF4{\x2\x7E8\x7E9\a\xC6\x2\x2\x7E9\x7EB\x3\x2\x2\x2"+ + "\x7EA\x7E4\x3\x2\x2\x2\x7EB\x7EE\x3\x2\x2\x2\x7EC\x7EA\x3\x2\x2\x2\x7EC"+ + "\x7ED\x3\x2\x2\x2\x7ED\xD9\x3\x2\x2\x2\x7EE\x7EC\x3\x2\x2\x2\x7EF\x7F2"+ + "\x5\xFE\x80\x2\x7F0\x7F1\a\xEE\x2\x2\x7F1\x7F3\x5\xE8u\x2\x7F2\x7F0\x3"+ + "\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7FD\x3\x2\x2\x2\x7F4\x7F6\a\xEE"+ + "\x2\x2\x7F5\x7F4\x3\x2\x2\x2\x7F5\x7F6\x3\x2\x2\x2\x7F6\x7F7\x3\x2\x2"+ + "\x2\x7F7\x7F8\a\xBF\x2\x2\x7F8\x7F9\x5\xF4{\x2\x7F9\x7FA\a\xC6\x2\x2\x7FA"+ + "\x7FC\x3\x2\x2\x2\x7FB\x7F5\x3\x2\x2\x2\x7FC\x7FF\x3\x2\x2\x2\x7FD\x7FB"+ + "\x3\x2\x2\x2\x7FD\x7FE\x3\x2\x2\x2\x7FE\xDB\x3\x2\x2\x2\x7FF\x7FD\x3\x2"+ + "\x2\x2\x800\x805\x5\xE2r\x2\x801\x805\x5\xDEp\x2\x802\x805\x5\xE0q\x2"+ + "\x803\x805\x5\xE6t\x2\x804\x800\x3\x2\x2\x2\x804\x801\x3\x2\x2\x2\x804"+ + "\x802\x3\x2\x2\x2\x804\x803\x3\x2\x2\x2\x805\xDD\x3\x2\x2\x2\x806\x808"+ + "\x5\xF8}\x2\x807\x809\x5\x10E\x88\x2\x808\x807\x3\x2\x2\x2\x808\x809\x3"+ + "\x2\x2\x2\x809\x80E\x3\x2\x2\x2\x80A\x80C\a\xEE\x2\x2\x80B\x80A\x3\x2"+ + "\x2\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80D\x3\x2\x2\x2\x80D\x80F\x5\xECw\x2"+ + "\x80E\x80B\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x819\x3\x2\x2\x2\x810"+ + "\x812\a\xEE\x2\x2\x811\x810\x3\x2\x2\x2\x811\x812\x3\x2\x2\x2\x812\x813"+ + "\x3\x2\x2\x2\x813\x814\a\xBF\x2\x2\x814\x815\x5\xF4{\x2\x815\x816\a\xC6"+ + "\x2\x2\x816\x818\x3\x2\x2\x2\x817\x811\x3\x2\x2\x2\x818\x81B\x3\x2\x2"+ + "\x2\x819\x817\x3\x2\x2\x2\x819\x81A\x3\x2\x2\x2\x81A\xDF\x3\x2\x2\x2\x81B"+ + "\x819\x3\x2\x2\x2\x81C\x81F\x5\xF8}\x2\x81D\x81F\x5\xFC\x7F\x2\x81E\x81C"+ + "\x3\x2\x2\x2\x81E\x81D\x3\x2\x2\x2\x81F\x821\x3\x2\x2\x2\x820\x822\x5"+ + "\x10E\x88\x2\x821\x820\x3\x2\x2\x2\x821\x822\x3\x2\x2\x2\x822\x824\x3"+ + "\x2\x2\x2\x823\x825\a\xEE\x2\x2\x824\x823\x3\x2\x2\x2\x824\x825\x3\x2"+ + "\x2\x2\x825\x826\x3\x2\x2\x2\x826\x828\a\xBF\x2\x2\x827\x829\a\xEE\x2"+ + "\x2\x828\x827\x3\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x82E\x3\x2\x2\x2"+ + "\x82A\x82C\x5\xE8u\x2\x82B\x82D\a\xEE\x2\x2\x82C\x82B\x3\x2\x2\x2\x82C"+ + "\x82D\x3\x2\x2\x2\x82D\x82F\x3\x2\x2\x2\x82E\x82A\x3\x2\x2\x2\x82E\x82F"+ + "\x3\x2\x2\x2\x82F\x830\x3\x2\x2\x2\x830\x835\a\xC6\x2\x2\x831\x833\a\xEE"+ + "\x2\x2\x832\x831\x3\x2\x2\x2\x832\x833\x3\x2\x2\x2\x833\x834\x3\x2\x2"+ + "\x2\x834\x836\x5\xECw\x2\x835\x832\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836"+ + "\x840\x3\x2\x2\x2\x837\x839\a\xEE\x2\x2\x838\x837\x3\x2\x2\x2\x838\x839"+ + "\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83B\a\xBF\x2\x2\x83B\x83C\x5"+ + "\xF4{\x2\x83C\x83D\a\xC6\x2\x2\x83D\x83F\x3\x2\x2\x2\x83E\x838\x3\x2\x2"+ + "\x2\x83F\x842\x3\x2\x2\x2\x840\x83E\x3\x2\x2\x2\x840\x841\x3\x2\x2\x2"+ + "\x841\xE1\x3\x2\x2\x2\x842\x840\x3\x2\x2\x2\x843\x846\x5\xDEp\x2\x844"+ + "\x846\x5\xE0q\x2\x845\x843\x3\x2\x2\x2\x845\x844\x3\x2\x2\x2\x845\x846"+ + "\x3\x2\x2\x2\x846\x84B\x3\x2\x2\x2\x847\x849\x5\xE4s\x2\x848\x84A\a\xEE"+ + "\x2\x2\x849\x848\x3\x2\x2\x2\x849\x84A\x3\x2\x2\x2\x84A\x84C\x3\x2\x2"+ + "\x2\x84B\x847\x3\x2\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84B\x3\x2\x2\x2"+ + "\x84D\x84E\x3\x2\x2\x2\x84E\x853\x3\x2\x2\x2\x84F\x851\a\xEE\x2\x2\x850"+ + "\x84F\x3\x2\x2\x2\x850\x851\x3\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x854"+ + "\x5\xECw\x2\x853\x850\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\x85E\x3\x2"+ + "\x2\x2\x855\x857\a\xEE\x2\x2\x856\x855\x3\x2\x2\x2\x856\x857\x3\x2\x2"+ + "\x2\x857\x858\x3\x2\x2\x2\x858\x859\a\xBF\x2\x2\x859\x85A\x5\xF4{\x2\x85A"+ + "\x85B\a\xC6\x2\x2\x85B\x85D\x3\x2\x2\x2\x85C\x856\x3\x2\x2\x2\x85D\x860"+ + "\x3\x2\x2\x2\x85E\x85C\x3\x2\x2\x2\x85E\x85F\x3\x2\x2\x2\x85F\xE3\x3\x2"+ + "\x2\x2\x860\x85E\x3\x2\x2\x2\x861\x863\t\xF\x2\x2\x862\x864\a\xEE\x2\x2"+ + "\x863\x862\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x867\x3\x2\x2\x2\x865"+ + "\x868\x5\xDEp\x2\x866\x868\x5\xE0q\x2\x867\x865\x3\x2\x2\x2\x867\x866"+ + "\x3\x2\x2\x2\x868\xE5\x3\x2\x2\x2\x869\x86B\a\xEE\x2\x2\x86A\x869\x3\x2"+ + "\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86C\x3\x2\x2\x2\x86C\x86D\x5\xECw\x2"+ + "\x86D\xE7\x3\x2\x2\x2\x86E\x870\x5\xEAv\x2\x86F\x86E\x3\x2\x2\x2\x86F"+ + "\x870\x3\x2\x2\x2\x870\x872\x3\x2\x2\x2\x871\x873\a\xEE\x2\x2\x872\x871"+ + "\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2\x873\x874\x3\x2\x2\x2\x874\x876\t\n"+ + "\x2\x2\x875\x877\a\xEE\x2\x2\x876\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2"+ + "\x2\x877\x879\x3\x2\x2\x2\x878\x86F\x3\x2\x2\x2\x879\x87C\x3\x2\x2\x2"+ + "\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87D\x3\x2\x2\x2\x87C"+ + "\x87A\x3\x2\x2\x2\x87D\x88A\x5\xEAv\x2\x87E\x880\a\xEE\x2\x2\x87F\x87E"+ + "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2\x881\x883\t\n"+ + "\x2\x2\x882\x884\a\xEE\x2\x2\x883\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2"+ + "\x2\x884\x886\x3\x2\x2\x2\x885\x887\x5\xEAv\x2\x886\x885\x3\x2\x2\x2\x886"+ + "\x887\x3\x2\x2\x2\x887\x889\x3\x2\x2\x2\x888\x87F\x3\x2\x2\x2\x889\x88C"+ + "\x3\x2\x2\x2\x88A\x888\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\xE9\x3\x2"+ + "\x2\x2\x88C\x88A\x3\x2\x2\x2\x88D\x88F\a\xBF\x2\x2\x88E\x88D\x3\x2\x2"+ + "\x2\x88E\x88F\x3\x2\x2\x2\x88F\x892\x3\x2\x2\x2\x890\x891\t\x10\x2\x2"+ + "\x891\x893\a\xEE\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893"+ + "\x895\x3\x2\x2\x2\x894\x896\a\xC6\x2\x2\x895\x894\x3\x2\x2\x2\x895\x896"+ + "\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\x898\x5\xBE`\x2\x898\xEB\x3\x2"+ + "\x2\x2\x899\x89B\a\x4\x2\x2\x89A\x89C\a\xEE\x2\x2\x89B\x89A\x3\x2\x2\x2"+ + "\x89B\x89C\x3\x2\x2\x2\x89C\x89D\x3\x2\x2\x2\x89D\x89F\x5\xF8}\x2\x89E"+ + "\x8A0\x5\x10E\x88\x2\x89F\x89E\x3\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0"+ + "\xED\x3\x2\x2\x2\x8A1\x8B3\a\xBF\x2\x2\x8A2\x8A4\a\xEE\x2\x2\x8A3\x8A2"+ + "\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8B0\x5"+ + "\xF0y\x2\x8A6\x8A8\a\xEE\x2\x2\x8A7\x8A6\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2"+ + "\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AB\a\t\x2\x2\x8AA\x8AC\a\xEE\x2\x2\x8AB"+ + "\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AF"+ + "\x5\xF0y\x2\x8AE\x8A7\x3\x2\x2\x2\x8AF\x8B2\x3\x2\x2\x2\x8B0\x8AE\x3\x2"+ + "\x2\x2\x8B0\x8B1\x3\x2\x2\x2\x8B1\x8B4\x3\x2\x2\x2\x8B2\x8B0\x3\x2\x2"+ + "\x2\x8B3\x8A3\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B6\x3\x2\x2\x2"+ + "\x8B5\x8B7\a\xEE\x2\x2\x8B6\x8B5\x3\x2\x2\x2\x8B6\x8B7\x3\x2\x2\x2\x8B7"+ + "\x8B8\x3\x2\x2\x2\x8B8\x8B9\a\xC6\x2\x2\x8B9\xEF\x3\x2\x2\x2\x8BA\x8BB"+ + "\aw\x2\x2\x8BB\x8BD\a\xEE\x2\x2\x8BC\x8BA\x3\x2\x2\x2\x8BC\x8BD\x3\x2"+ + "\x2\x2\x8BD\x8C0\x3\x2\x2\x2\x8BE\x8BF\t\x11\x2\x2\x8BF\x8C1\a\xEE\x2"+ + "\x2\x8C0\x8BE\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C4\x3\x2\x2\x2"+ + "\x8C2\x8C3\a~\x2\x2\x8C3\x8C5\a\xEE\x2\x2\x8C4\x8C2\x3\x2\x2\x2\x8C4\x8C5"+ + "\x3\x2\x2\x2\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C8\x5\xF8}\x2\x8C7\x8C9\x5\x10E"+ + "\x88\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9\x8D2\x3\x2\x2"+ + "\x2\x8CA\x8CC\a\xEE\x2\x2\x8CB\x8CA\x3\x2\x2\x2\x8CB\x8CC\x3\x2\x2\x2"+ + "\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\a\xBF\x2\x2\x8CE\x8D0\a\xEE\x2\x2\x8CF"+ + "\x8CE\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2\x2\x8D1\x8D3"+ + "\a\xC6\x2\x2\x8D2\x8CB\x3\x2\x2\x2\x8D2\x8D3\x3\x2\x2\x2\x8D3\x8D8\x3"+ + "\x2\x2\x2\x8D4\x8D6\a\xEE\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D5\x8D6\x3\x2"+ + "\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7\x8D9\x5\xFA~\x2\x8D8\x8D5\x3\x2\x2\x2"+ + "\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8DE\x3\x2\x2\x2\x8DA\x8DC\a\xEE\x2\x2\x8DB"+ + "\x8DA\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DD\x3\x2\x2\x2\x8DD\x8DF"+ + "\x5\xF2z\x2\x8DE\x8DB\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF\xF1\x3\x2"+ + "\x2\x2\x8E0\x8E2\a\xBB\x2\x2\x8E1\x8E3\a\xEE\x2\x2\x8E2\x8E1\x3\x2\x2"+ + "\x2\x8E2\x8E3\x3\x2\x2\x2\x8E3\x8E4\x3\x2\x2\x2\x8E4\x8E5\x5\xBE`\x2\x8E5"+ + "\xF3\x3\x2\x2\x2\x8E6\x8F1\x5\xF6|\x2\x8E7\x8E9\a\xEE\x2\x2\x8E8\x8E7"+ + "\x3\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8EC\a\t"+ + "\x2\x2\x8EB\x8ED\a\xEE\x2\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2"+ + "\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\x8F0\x5\xF6|\x2\x8EF\x8E8\x3\x2\x2\x2\x8F0"+ + "\x8F3\x3\x2\x2\x2\x8F1\x8EF\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\xF5"+ + "\x3\x2\x2\x2\x8F3\x8F1\x3\x2\x2\x2\x8F4\x8F5\x5\xBE`\x2\x8F5\x8F6\a\xEE"+ + "\x2\x2\x8F6\x8F7\a\xA7\x2\x2\x8F7\x8F8\a\xEE\x2\x2\x8F8\x8FA\x3\x2\x2"+ + "\x2\x8F9\x8F4\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2"+ + "\x8FB\x8FC\x5\xBE`\x2\x8FC\xF7\x3\x2\x2\x2\x8FD\x900\a\xEF\x2\x2\x8FE"+ + "\x900\x5\x112\x8A\x2\x8FF\x8FD\x3\x2\x2\x2\x8FF\x8FE\x3\x2\x2\x2\x900"+ + "\x901\x3\x2\x2\x2\x901\x8FF\x3\x2\x2\x2\x901\x902\x3\x2\x2\x2\x902\xF9"+ + "\x3\x2\x2\x2\x903\x905\a\x12\x2\x2\x904\x906\a\xEE\x2\x2\x905\x904\x3"+ + "\x2\x2\x2\x905\x906\x3\x2\x2\x2\x906\x909\x3\x2\x2\x2\x907\x908\ao\x2"+ + "\x2\x908\x90A\a\xEE\x2\x2\x909\x907\x3\x2\x2\x2\x909\x90A\x3\x2\x2\x2"+ + "\x90A\x90B\x3\x2\x2\x2\x90B\x910\x5\x10C\x87\x2\x90C\x90E\a\xEE\x2\x2"+ + "\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F"+ + "\x911\x5\x104\x83\x2\x910\x90D\x3\x2\x2\x2\x910\x911\x3\x2\x2\x2\x911"+ + "\xFB\x3\x2\x2\x2\x912\x913\t\x12\x2\x2\x913\xFD\x3\x2\x2\x2\x914\x919"+ + "\a\xEF\x2\x2\x915\x918\x5\x112\x8A\x2\x916\x918\a\xEF\x2\x2\x917\x915"+ + "\x3\x2\x2\x2\x917\x916\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2\x919\x917\x3"+ + "\x2\x2\x2\x919\x91A\x3\x2\x2\x2\x91A\x924\x3\x2\x2\x2\x91B\x919\x3\x2"+ + "\x2\x2\x91C\x91F\x5\x112\x8A\x2\x91D\x920\x5\x112\x8A\x2\x91E\x920\a\xEF"+ + "\x2\x2\x91F\x91D\x3\x2\x2\x2\x91F\x91E\x3\x2\x2\x2\x920\x921\x3\x2\x2"+ + "\x2\x921\x91F\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x924\x3\x2\x2\x2"+ + "\x923\x914\x3\x2\x2\x2\x923\x91C\x3\x2\x2\x2\x924\xFF\x3\x2\x2\x2\x925"+ + "\x926\t\xE\x2\x2\x926\x101\x3\x2\x2\x2\x927\x92C\x5\xF8}\x2\x928\x929"+ + "\t\xF\x2\x2\x929\x92B\x5\xF8}\x2\x92A\x928\x3\x2\x2\x2\x92B\x92E\x3\x2"+ + "\x2\x2\x92C\x92A\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2\x92D\x103\x3\x2\x2"+ + "\x2\x92E\x92C\x3\x2\x2\x2\x92F\x931\a\xC2\x2\x2\x930\x932\a\xEE\x2\x2"+ + "\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x935\x3\x2\x2\x2\x933"+ + "\x936\a\xCD\x2\x2\x934\x936\x5\xF8}\x2\x935\x933\x3\x2\x2\x2\x935\x934"+ + "\x3\x2\x2\x2\x936\x105\x3\x2\x2\x2\x937\x940\x5\xFE\x80\x2\x938\x93A\a"+ + "\xEE\x2\x2\x939\x938\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x3\x2"+ + "\x2\x2\x93B\x93D\a\xC1\x2\x2\x93C\x93E\a\xEE\x2\x2\x93D\x93C\x3\x2\x2"+ + "\x2\x93D\x93E\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x941\x5\xFE\x80\x2"+ + "\x940\x939\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941\x107\x3\x2\x2\x2\x942"+ + "\x943\x5\xF8}\x2\x943\x944\a\xEC\x2\x2\x944\x109\x3\x2\x2\x2\x945\x946"+ + "\t\x13\x2\x2\x946\x10B\x3\x2\x2\x2\x947\x94A\x5\xFC\x7F\x2\x948\x94A\x5"+ + "\x102\x82\x2\x949\x947\x3\x2\x2\x2\x949\x948\x3\x2\x2\x2\x94A\x953\x3"+ + "\x2\x2\x2\x94B\x94D\a\xEE\x2\x2\x94C\x94B\x3\x2\x2\x2\x94C\x94D\x3\x2"+ + "\x2\x2\x94D\x94E\x3\x2\x2\x2\x94E\x950\a\xBF\x2\x2\x94F\x951\a\xEE\x2"+ + "\x2\x950\x94F\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x3\x2\x2\x2"+ + "\x952\x954\a\xC6\x2\x2\x953\x94C\x3\x2\x2\x2\x953\x954\x3\x2\x2\x2\x954"+ + "\x10D\x3\x2\x2\x2\x955\x956\t\x14\x2\x2\x956\x10F\x3\x2\x2\x2\x957\x958"+ + "\t\x15\x2\x2\x958\x111\x3\x2\x2\x2\x959\x95A\t\x16\x2\x2\x95A\x113\x3"+ + "\x2\x2\x2\x95B\x95C\a\xE9\x2\x2\x95C\x115\x3\x2\x2\x2\x95D\x95E\a\xEA"+ + "\x2\x2\x95E\x117\x3\x2\x2\x2\x95F\x961\a\xEE\x2\x2\x960\x95F\x3\x2\x2"+ + "\x2\x960\x961\x3\x2\x2\x2\x961\x965\x3\x2\x2\x2\x962\x966\a\xE8\x2\x2"+ + "\x963\x966\x5\x116\x8C\x2\x964\x966\x5\x114\x8B\x2\x965\x962\x3\x2\x2"+ + "\x2\x965\x963\x3\x2\x2\x2\x965\x964\x3\x2\x2\x2\x966\x968\x3\x2\x2\x2"+ + "\x967\x969\a\xEE\x2\x2\x968\x967\x3\x2\x2\x2\x968\x969\x3\x2\x2\x2\x969"+ + "\x119\x3\x2\x2\x2\x96A\x973\x5\x118\x8D\x2\x96B\x96D\a\xEE\x2\x2\x96C"+ + "\x96B\x3\x2\x2\x2\x96C\x96D\x3\x2\x2\x2\x96D\x96E\x3\x2\x2\x2\x96E\x970"+ + "\a\xEC\x2\x2\x96F\x971\a\xEE\x2\x2\x970\x96F\x3\x2\x2\x2\x970\x971\x3"+ + "\x2\x2\x2\x971\x973\x3\x2\x2\x2\x972\x96A\x3\x2\x2\x2\x972\x96C\x3\x2"+ + "\x2\x2\x973\x976\x3\x2\x2\x2\x974\x972\x3\x2\x2\x2\x974\x975\x3\x2\x2"+ + "\x2\x975\x11B\x3\x2\x2\x2\x976\x974\x3\x2\x2\x2\x19B\x120\x126\x129\x12D"+ + "\x131\x135\x139\x146\x14C\x150\x15A\x162\x16F\x17A\x182\x18C\x192\x196"+ + "\x19A\x19E\x1A3\x1AC\x1F3\x1F9\x1FD\x200\x210\x214\x219\x21C\x221\x227"+ + "\x22B\x230\x235\x239\x23C\x240\x246\x24A\x251\x257\x25B\x25E\x263\x26D"+ + "\x270\x273\x277\x27D\x281\x286\x28D\x291\x295\x299\x29C\x2A1\x2AC\x2B9"+ + "\x2C0\x2C9\x2D0\x2D4\x2D7\x2E6\x2EC\x2F6\x2FA\x304\x30C\x311\x317\x31B"+ + "\x31E\x322\x32D\x331\x336\x33B\x33F\x343\x347\x34A\x34D\x350\x353\x357"+ + "\x35F\x363\x366\x369\x36D\x384\x38A\x38E\x392\x39B\x3A6\x3AB\x3B5\x3B9"+ + "\x3BE\x3C6\x3CA\x3CE\x3D6\x3DA\x3E6\x3EA\x3F1\x3F3\x3F9\x3FD\x403\x407"+ + "\x40B\x423\x42D\x431\x436\x441\x445\x44A\x458\x45C\x465\x469\x46C\x470"+ + "\x474\x477\x47B\x47F\x482\x486\x489\x48D\x48F\x494\x498\x49C\x4A0\x4A2"+ + "\x4A8\x4AC\x4AF\x4B4\x4B8\x4BE\x4C1\x4C4\x4C8\x4CC\x4D3\x4D7\x4DD\x4E0"+ + "\x4E4\x4EB\x4EF\x4F5\x4F8\x4FC\x504\x508\x50B\x50E\x512\x51A\x51E\x522"+ + "\x524\x527\x52C\x532\x536\x53A\x53F\x544\x548\x54C\x551\x559\x55B\x567"+ + "\x56B\x573\x577\x57F\x583\x587\x58B\x58F\x593\x59B\x59F\x5AC\x5B3\x5B7"+ + "\x5C2\x5C9\x5CE\x5D2\x5D7\x5DA\x5E0\x5E4\x5E7\x5ED\x5F1\x5F9\x5FD\x606"+ + "\x60A\x60E\x612\x615\x619\x61F\x623\x62A\x633\x63A\x63E\x641\x644\x647"+ + "\x64B\x656\x660\x664\x66B\x66D\x672\x677\x67C\x680\x686\x68B\x692\x696"+ + "\x69A\x69F\x6A6\x6AA\x6AE\x6B3\x6B7\x6BC\x6C0\x6C5\x6C9\x6CE\x6D2\x6D7"+ + "\x6DB\x6E0\x6E4\x6E9\x6ED\x6F2\x6F6\x6FB\x6FF\x704\x708\x70D\x711\x714"+ + "\x716\x71C\x721\x727\x72B\x730\x735\x739\x73D\x73F\x743\x745\x748\x74C"+ + "\x753\x75B\x75F\x769\x76D\x775\x779\x77C\x77F\x785\x78B\x78E\x792\x796"+ + "\x79A\x79D\x7A5\x7AB\x7B0\x7B3\x7B7\x7BB\x7BF\x7C2\x7CA\x7CF\x7D2\x7D7"+ + "\x7DB\x7DE\x7E1\x7E4\x7EC\x7F2\x7F5\x7FD\x804\x808\x80B\x80E\x811\x819"+ + "\x81E\x821\x824\x828\x82C\x82E\x832\x835\x838\x840\x845\x849\x84D\x850"+ + "\x853\x856\x85E\x863\x867\x86A\x86F\x872\x876\x87A\x87F\x883\x886\x88A"+ + "\x88E\x892\x895\x89B\x89F\x8A3\x8A7\x8AB\x8B0\x8B3\x8B6\x8BC\x8C0\x8C4"+ + "\x8C8\x8CB\x8CF\x8D2\x8D5\x8D8\x8DB\x8DE\x8E2\x8E8\x8EC\x8F1\x8F9\x8FF"+ + "\x901\x905\x909\x90D\x910\x917\x919\x91F\x921\x923\x92C\x931\x935\x939"+ + "\x93D\x940\x949\x94C\x950\x953\x960\x965\x968\x96C\x970\x972\x974"; + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); +} } // namespace Rubberduck.Parsing.Grammar diff --git a/Rubberduck.Parsing/Grammar/VBAVisitor.cs b/Rubberduck.Parsing/Grammar/VBAVisitor.cs index 2ec6485765..6a04a1d75b 100644 --- a/Rubberduck.Parsing/Grammar/VBAVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAVisitor.cs @@ -17,1277 +17,1233 @@ // Missing XML comment for publicly visible type or member '...' #pragma warning disable 1591 -namespace Rubberduck.Parsing.Grammar -{ - using Antlr4.Runtime.Misc; - using Antlr4.Runtime.Tree; - using IToken = Antlr4.Runtime.IToken; - - /// - /// This interface defines a complete generic visitor for a parse tree produced - /// by . - /// - /// The return type of the visit operation. - [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] - [System.CLSCompliant(false)] - public interface IVBAVisitor : IParseTreeVisitor - { - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSeekStmt([NotNull] VBAParser.SeekStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitFileNumber([NotNull] VBAParser.FileNumberContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitType([NotNull] VBAParser.TypeContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRsetStmt([NotNull] VBAParser.RsetStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitInputStmt([NotNull] VBAParser.InputStmtContext context); - - /// - /// Visit a parse tree produced by the vsAdd - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsAdd([NotNull] VBAParser.VsAddContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLsetStmt([NotNull] VBAParser.LsetStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitResetStmt([NotNull] VBAParser.ResetStmtContext context); - - /// - /// Visit a parse tree produced by the vsNew - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsNew([NotNull] VBAParser.VsNewContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRemComment([NotNull] VBAParser.RemCommentContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTimeStmt([NotNull] VBAParser.TimeStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitBlock([NotNull] VBAParser.BlockContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSetStmt([NotNull] VBAParser.SetStmtContext context); - - /// - /// Visit a parse tree produced by the vsNegation - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsNegation([NotNull] VBAParser.VsNegationContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitFieldLength([NotNull] VBAParser.FieldLengthContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModule([NotNull] VBAParser.ModuleContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitComplexType([NotNull] VBAParser.ComplexTypeContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context); - - /// - /// Visit a parse tree produced by the vsICS - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsICS([NotNull] VBAParser.VsICSContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitOutputList([NotNull] VBAParser.OutputListContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context); - - /// - /// Visit a parse tree produced by the vsIntDiv - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsIntDiv([NotNull] VBAParser.VsIntDivContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleBody([NotNull] VBAParser.ModuleBodyContext context); - - /// - /// Visit a parse tree produced by the caseCondSelection - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitWidthStmt([NotNull] VBAParser.WidthStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitWithStmt([NotNull] VBAParser.WithStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitArgCall([NotNull] VBAParser.ArgCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitNameStmt([NotNull] VBAParser.NameStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTypeHint([NotNull] VBAParser.TypeHintContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDateStmt([NotNull] VBAParser.DateStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context); - - /// - /// Visit a parse tree produced by the optionCompareStmt - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRedimStmt([NotNull] VBAParser.RedimStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLiteral([NotNull] VBAParser.LiteralContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitErrorStmt([NotNull] VBAParser.ErrorStmtContext context); - - /// - /// Visit a parse tree produced by the vsAddressOf - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitArg([NotNull] VBAParser.ArgContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context); - - /// - /// Visit a parse tree produced by the vsMult - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsMult([NotNull] VBAParser.VsMultContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEventStmt([NotNull] VBAParser.EventStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLockStmt([NotNull] VBAParser.LockStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitResumeStmt([NotNull] VBAParser.ResumeStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); - - /// - /// Visit a parse tree produced by the optionExplicitStmt - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context); - - /// - /// Visit a parse tree produced by the vsNot - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsNot([NotNull] VBAParser.VsNotContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEndOfLine([NotNull] VBAParser.EndOfLineContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitStartRule([NotNull] VBAParser.StartRuleContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitWriteStmt([NotNull] VBAParser.WriteStmtContext context); - - /// - /// Visit a parse tree produced by the vsAnd - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsAnd([NotNull] VBAParser.VsAndContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEndStmt([NotNull] VBAParser.EndStmtContext context); - - /// - /// Visit a parse tree produced by the blockIfThenElse - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); - - /// - /// Visit a parse tree produced by the vsAmp - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsAmp([NotNull] VBAParser.VsAmpContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitForNextStmt([NotNull] VBAParser.ForNextStmtContext context); - - /// - /// Visit a parse tree produced by the caseCondTo - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitCaseCondTo([NotNull] VBAParser.CaseCondToContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context); - - /// - /// Visit a parse tree produced by the vsImp - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsImp([NotNull] VBAParser.VsImpContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitExitStmt([NotNull] VBAParser.ExitStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitArgList([NotNull] VBAParser.ArgListContext context); - - /// - /// Visit a parse tree produced by the vsStruct - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsStruct([NotNull] VBAParser.VsStructContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSubscripts([NotNull] VBAParser.SubscriptsContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLetterrange([NotNull] VBAParser.LetterrangeContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLetStmt([NotNull] VBAParser.LetStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSubStmt([NotNull] VBAParser.SubStmtContext context); - - /// - /// Visit a parse tree produced by the optionBaseStmt - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context); - - /// - /// Visit a parse tree produced by the vsRelational - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsRelational([NotNull] VBAParser.VsRelationalContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitChdirStmt([NotNull] VBAParser.ChdirStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTypeStmt([NotNull] VBAParser.TypeStmtContext context); - - /// - /// Visit a parse tree produced by the inlineIfThenElse - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context); - - /// - /// Visit a parse tree produced by the optionPrivateModuleStmt - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitPutStmt([NotNull] VBAParser.PutStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); - - /// - /// Visit a parse tree produced by the vsAssign - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsAssign([NotNull] VBAParser.VsAssignContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSubscript([NotNull] VBAParser.SubscriptContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitVisibility([NotNull] VBAParser.VisibilityContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitBeepStmt([NotNull] VBAParser.BeepStmtContext context); - - /// - /// Visit a parse tree produced by the vsTypeOf - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context); - - /// - /// Visit a parse tree produced by the caseCondValue - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitReturnStmt([NotNull] VBAParser.ReturnStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context); - - /// - /// Visit a parse tree produced by the vsMod - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsMod([NotNull] VBAParser.VsModContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitKillStmt([NotNull] VBAParser.KillStmtContext context); - - /// - /// Visit a parse tree produced by the vsOr - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsOr([NotNull] VBAParser.VsOrContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context); - - /// - /// Visit a parse tree produced by the caseCondElse - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitGetStmt([NotNull] VBAParser.GetStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLineLabel([NotNull] VBAParser.LineLabelContext context); - - /// - /// Visit a parse tree produced by the caseCondIs - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitArgsCall([NotNull] VBAParser.ArgsCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLoadStmt([NotNull] VBAParser.LoadStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitBaseType([NotNull] VBAParser.BaseTypeContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitOpenStmt([NotNull] VBAParser.OpenStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitCloseStmt([NotNull] VBAParser.CloseStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSC_Case([NotNull] VBAParser.SC_CaseContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context); - - /// - /// Visit a parse tree produced by the vsXor - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsXor([NotNull] VBAParser.VsXorContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitGoToStmt([NotNull] VBAParser.GoToStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); - - /// - /// Visit a parse tree produced by the vsPow - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsPow([NotNull] VBAParser.VsPowContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitPrintStmt([NotNull] VBAParser.PrintStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleConfig([NotNull] VBAParser.ModuleConfigContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitBlockStmt([NotNull] VBAParser.BlockStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEraseStmt([NotNull] VBAParser.EraseStmtContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context); - - /// - /// Visit a parse tree produced by the vsLiteral - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsLiteral([NotNull] VBAParser.VsLiteralContext context); - - /// - /// Visit a parse tree produced by the vsEqv - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsEqv([NotNull] VBAParser.VsEqvContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitComment([NotNull] VBAParser.CommentContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); - - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroStmt([NotNull] VBAParser.MacroStmtContext context); - - /// - /// Visit a parse tree produced by the vsMid - /// labeled alternative in . - /// - /// The parse tree. - /// The visitor result. - Result VisitVsMid([NotNull] VBAParser.VsMidContext context); - } +namespace Rubberduck.Parsing.Grammar { +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using IToken = Antlr4.Runtime.IToken; + +/// +/// This interface defines a complete generic visitor for a parse tree produced +/// by . +/// +/// The return type of the visit operation. +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.3")] +[System.CLSCompliant(false)] +public interface IVBAVisitor : IParseTreeVisitor { + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSeekStmt([NotNull] VBAParser.SeekStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitFileNumber([NotNull] VBAParser.FileNumberContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitArgDefaultValue([NotNull] VBAParser.ArgDefaultValueContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitPropertyLetStmt([NotNull] VBAParser.PropertyLetStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleAttributes([NotNull] VBAParser.ModuleAttributesContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitType([NotNull] VBAParser.TypeContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitRsetStmt([NotNull] VBAParser.RsetStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitInputStmt([NotNull] VBAParser.InputStmtContext context); + + /// + /// Visit a parse tree produced by the vsAdd + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsAdd([NotNull] VBAParser.VsAddContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLsetStmt([NotNull] VBAParser.LsetStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDeclareStmt([NotNull] VBAParser.DeclareStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitImplicitCallStmt_InBlock([NotNull] VBAParser.ImplicitCallStmt_InBlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitResetStmt([NotNull] VBAParser.ResetStmtContext context); + + /// + /// Visit a parse tree produced by the vsNew + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsNew([NotNull] VBAParser.VsNewContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitRemComment([NotNull] VBAParser.RemCommentContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTimeStmt([NotNull] VBAParser.TimeStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitBlock([NotNull] VBAParser.BlockContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSetStmt([NotNull] VBAParser.SetStmtContext context); + + /// + /// Visit a parse tree produced by the vsNegation + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsNegation([NotNull] VBAParser.VsNegationContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitOnErrorStmt([NotNull] VBAParser.OnErrorStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitFieldLength([NotNull] VBAParser.FieldLengthContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDictionaryCallStmt([NotNull] VBAParser.DictionaryCallStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitGoSubStmt([NotNull] VBAParser.GoSubStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitRedimSubStmt([NotNull] VBAParser.RedimSubStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitAttributeStmt([NotNull] VBAParser.AttributeStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEnumerationStmt_Constant([NotNull] VBAParser.EnumerationStmt_ConstantContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModule([NotNull] VBAParser.ModuleContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitComplexType([NotNull] VBAParser.ComplexTypeContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleHeader([NotNull] VBAParser.ModuleHeaderContext context); + + /// + /// Visit a parse tree produced by the vsICS + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsICS([NotNull] VBAParser.VsICSContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitImplicitCallStmt_InStmt([NotNull] VBAParser.ImplicitCallStmt_InStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleDeclarations([NotNull] VBAParser.ModuleDeclarationsContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitOnGoSubStmt([NotNull] VBAParser.OnGoSubStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitOutputList([NotNull] VBAParser.OutputListContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSelectCaseStmt([NotNull] VBAParser.SelectCaseStmtContext context); + + /// + /// Visit a parse tree produced by the vsIntDiv + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsIntDiv([NotNull] VBAParser.VsIntDivContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleBody([NotNull] VBAParser.ModuleBodyContext context); + + /// + /// Visit a parse tree produced by the caseCondSelection + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitCaseCondSelection([NotNull] VBAParser.CaseCondSelectionContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitWidthStmt([NotNull] VBAParser.WidthStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitWithStmt([NotNull] VBAParser.WithStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitArgCall([NotNull] VBAParser.ArgCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitNameStmt([NotNull] VBAParser.NameStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTypeHint([NotNull] VBAParser.TypeHintContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDateStmt([NotNull] VBAParser.DateStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEndOfStatement([NotNull] VBAParser.EndOfStatementContext context); + + /// + /// Visit a parse tree produced by the optionCompareStmt + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitRedimStmt([NotNull] VBAParser.RedimStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLiteral([NotNull] VBAParser.LiteralContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitAsTypeClause([NotNull] VBAParser.AsTypeClauseContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitErrorStmt([NotNull] VBAParser.ErrorStmtContext context); + + /// + /// Visit a parse tree produced by the vsAddressOf + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsAddressOf([NotNull] VBAParser.VsAddressOfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitArg([NotNull] VBAParser.ArgContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfElseBlockStmt([NotNull] VBAParser.IfElseBlockStmtContext context); + + /// + /// Visit a parse tree produced by the vsMult + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsMult([NotNull] VBAParser.VsMultContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEventStmt([NotNull] VBAParser.EventStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLockStmt([NotNull] VBAParser.LockStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitResumeStmt([NotNull] VBAParser.ResumeStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); + + /// + /// Visit a parse tree produced by the optionExplicitStmt + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitOptionExplicitStmt([NotNull] VBAParser.OptionExplicitStmtContext context); + + /// + /// Visit a parse tree produced by the vsNot + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsNot([NotNull] VBAParser.VsNotContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDeftypeStmt([NotNull] VBAParser.DeftypeStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEndOfLine([NotNull] VBAParser.EndOfLineContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStartRule([NotNull] VBAParser.StartRuleContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitWriteStmt([NotNull] VBAParser.WriteStmtContext context); + + /// + /// Visit a parse tree produced by the vsAnd + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsAnd([NotNull] VBAParser.VsAndContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEndStmt([NotNull] VBAParser.EndStmtContext context); + + /// + /// Visit a parse tree produced by the blockIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); + + /// + /// Visit a parse tree produced by the vsAmp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsAmp([NotNull] VBAParser.VsAmpContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitAmbiguousKeyword([NotNull] VBAParser.AmbiguousKeywordContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitForNextStmt([NotNull] VBAParser.ForNextStmtContext context); + + /// + /// Visit a parse tree produced by the caseCondTo + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitCaseCondTo([NotNull] VBAParser.CaseCondToContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCertainIdentifier([NotNull] VBAParser.CertainIdentifierContext context); + + /// + /// Visit a parse tree produced by the vsImp + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsImp([NotNull] VBAParser.VsImpContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_S_MembersCall([NotNull] VBAParser.ICS_S_MembersCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitExitStmt([NotNull] VBAParser.ExitStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitArgList([NotNull] VBAParser.ArgListContext context); + + /// + /// Visit a parse tree produced by the vsStruct + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsStruct([NotNull] VBAParser.VsStructContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSubscripts([NotNull] VBAParser.SubscriptsContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLetterrange([NotNull] VBAParser.LetterrangeContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLetStmt([NotNull] VBAParser.LetStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitPropertySetStmt([NotNull] VBAParser.PropertySetStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSubStmt([NotNull] VBAParser.SubStmtContext context); + + /// + /// Visit a parse tree produced by the optionBaseStmt + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitOptionBaseStmt([NotNull] VBAParser.OptionBaseStmtContext context); + + /// + /// Visit a parse tree produced by the vsRelational + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsRelational([NotNull] VBAParser.VsRelationalContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitChdirStmt([NotNull] VBAParser.ChdirStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLineInputStmt([NotNull] VBAParser.LineInputStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTypeStmt([NotNull] VBAParser.TypeStmtContext context); + + /// + /// Visit a parse tree produced by the inlineIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_S_MemberCall([NotNull] VBAParser.ICS_S_MemberCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitOutputList_Expression([NotNull] VBAParser.OutputList_ExpressionContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitTypeOfStmt([NotNull] VBAParser.TypeOfStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitAmbiguousIdentifier([NotNull] VBAParser.AmbiguousIdentifierContext context); + + /// + /// Visit a parse tree produced by the optionPrivateModuleStmt + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitOptionPrivateModuleStmt([NotNull] VBAParser.OptionPrivateModuleStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitPutStmt([NotNull] VBAParser.PutStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_S_DictionaryCall([NotNull] VBAParser.ICS_S_DictionaryCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); + + /// + /// Visit a parse tree produced by the vsAssign + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsAssign([NotNull] VBAParser.VsAssignContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSubscript([NotNull] VBAParser.SubscriptContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitVisibility([NotNull] VBAParser.VisibilityContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitBeepStmt([NotNull] VBAParser.BeepStmtContext context); + + /// + /// Visit a parse tree produced by the vsTypeOf + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsTypeOf([NotNull] VBAParser.VsTypeOfContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitComparisonOperator([NotNull] VBAParser.ComparisonOperatorContext context); + + /// + /// Visit a parse tree produced by the caseCondValue + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitCaseCondValue([NotNull] VBAParser.CaseCondValueContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitWhileWendStmt([NotNull] VBAParser.WhileWendStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitReturnStmt([NotNull] VBAParser.ReturnStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfConditionStmt([NotNull] VBAParser.IfConditionStmtContext context); + + /// + /// Visit a parse tree produced by the vsMod + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsMod([NotNull] VBAParser.VsModContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitKillStmt([NotNull] VBAParser.KillStmtContext context); + + /// + /// Visit a parse tree produced by the vsOr + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsOr([NotNull] VBAParser.VsOrContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitVariableSubStmt([NotNull] VBAParser.VariableSubStmtContext context); + + /// + /// Visit a parse tree produced by the caseCondElse + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitGetStmt([NotNull] VBAParser.GetStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitRaiseEventStmt([NotNull] VBAParser.RaiseEventStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLineLabel([NotNull] VBAParser.LineLabelContext context); + + /// + /// Visit a parse tree produced by the caseCondIs + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitCaseCondIs([NotNull] VBAParser.CaseCondIsContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitOnGoToStmt([NotNull] VBAParser.OnGoToStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitArgsCall([NotNull] VBAParser.ArgsCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleConfigElement([NotNull] VBAParser.ModuleConfigElementContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitLoadStmt([NotNull] VBAParser.LoadStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitBaseType([NotNull] VBAParser.BaseTypeContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_S_ProcedureOrArrayCall([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitOpenStmt([NotNull] VBAParser.OpenStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfBlockStmt([NotNull] VBAParser.IfBlockStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitImplementsStmt([NotNull] VBAParser.ImplementsStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCloseStmt([NotNull] VBAParser.CloseStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSC_Case([NotNull] VBAParser.SC_CaseContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_B_ProcedureCall([NotNull] VBAParser.ICS_B_ProcedureCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitUnlockStmt([NotNull] VBAParser.UnlockStmtContext context); + + /// + /// Visit a parse tree produced by the vsXor + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsXor([NotNull] VBAParser.VsXorContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitGoToStmt([NotNull] VBAParser.GoToStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context); + + /// + /// Visit a parse tree produced by the vsPow + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsPow([NotNull] VBAParser.VsPowContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitPrintStmt([NotNull] VBAParser.PrintStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleConfig([NotNull] VBAParser.ModuleConfigContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_S_VariableOrProcedureCall([NotNull] VBAParser.ICS_S_VariableOrProcedureCallContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleDeclarationsElement([NotNull] VBAParser.ModuleDeclarationsElementContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitBlockStmt([NotNull] VBAParser.BlockStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEraseStmt([NotNull] VBAParser.EraseStmtContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitEnumerationStmt([NotNull] VBAParser.EnumerationStmtContext context); + + /// + /// Visit a parse tree produced by the vsLiteral + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsLiteral([NotNull] VBAParser.VsLiteralContext context); + + /// + /// Visit a parse tree produced by the vsEqv + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsEqv([NotNull] VBAParser.VsEqvContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitComment([NotNull] VBAParser.CommentContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); + + /// + /// Visit a parse tree produced by the vsMid + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitVsMid([NotNull] VBAParser.VsMidContext context); +} } // namespace Rubberduck.Parsing.Grammar From 66033ec5efca892435ee3b318abb0686eb7dd49e Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Wed, 2 Mar 2016 21:51:08 +0100 Subject: [PATCH 07/17] fix failing tests because of missing vbe.Version mock property --- RubberduckTests/Mocks/MockVbeBuilder.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/RubberduckTests/Mocks/MockVbeBuilder.cs b/RubberduckTests/Mocks/MockVbeBuilder.cs index e1535d91e7..e31c192193 100644 --- a/RubberduckTests/Mocks/MockVbeBuilder.cs +++ b/RubberduckTests/Mocks/MockVbeBuilder.cs @@ -42,6 +42,7 @@ public MockVbeBuilder AddProject(Mock project) } _vbe.SetupGet(vbe => vbe.ActiveVBProject).Returns(project.Object); + _vbe.SetupGet(vbe => vbe.Version).Returns("7.1"); _vbProjects = CreateProjectsMock(); _vbe.SetupGet(m => m.VBProjects).Returns(() => _vbProjects.Object); From a77bda273814ba3e6938a9b62e96d2aa56c60256 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Wed, 2 Mar 2016 21:55:48 +0100 Subject: [PATCH 08/17] add EMPTY keyword --- Rubberduck.Parsing/Grammar/VBA.g4 | 3 +- Rubberduck.Parsing/Grammar/VBALexer.cs | 2023 ++++++++++++----------- Rubberduck.Parsing/Grammar/VBAParser.cs | 1241 +++++++------- 3 files changed, 1637 insertions(+), 1630 deletions(-) diff --git a/Rubberduck.Parsing/Grammar/VBA.g4 b/Rubberduck.Parsing/Grammar/VBA.g4 index 6bf4433228..a24405afeb 100644 --- a/Rubberduck.Parsing/Grammar/VBA.g4 +++ b/Rubberduck.Parsing/Grammar/VBA.g4 @@ -559,7 +559,7 @@ letterrange : certainIdentifier (WS? MINUS WS? certainIdentifier)?; lineLabel : ambiguousIdentifier ':'; -literal : HEXLITERAL | OCTLITERAL | DATELITERAL | DOUBLELITERAL | INTEGERLITERAL | SHORTLITERAL | STRINGLITERAL | TRUE | FALSE | NOTHING | NULL; +literal : HEXLITERAL | OCTLITERAL | DATELITERAL | DOUBLELITERAL | INTEGERLITERAL | SHORTLITERAL | STRINGLITERAL | TRUE | FALSE | NOTHING | NULL | EMPTY; type : (baseType | complexType) (WS? LPAREN WS? RPAREN)?; @@ -650,6 +650,7 @@ DOUBLE : D O U B L E; EACH : E A C H; ELSE : E L S E; ELSEIF : E L S E I F; +EMPTY : E M P T Y; END_ENUM : E N D WS E N U M; END_FUNCTION : E N D WS F U N C T I O N; END_IF : E N D WS I F; diff --git a/Rubberduck.Parsing/Grammar/VBALexer.cs b/Rubberduck.Parsing/Grammar/VBALexer.cs index d289b49dc9..e732cb6807 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -34,36 +34,36 @@ public const int CONST=31, DATABASE=32, DATE=33, DECLARE=34, DEFBOOL=35, DEFBYTE=36, DEFDATE=37, DEFDBL=38, DEFDEC=39, DEFCUR=40, DEFINT=41, DEFLNG=42, DEFOBJ=43, DEFSNG=44, DEFSTR=45, DEFVAR=46, DELETESETTING=47, DIM=48, DO=49, DOUBLE=50, EACH=51, - ELSE=52, ELSEIF=53, END_ENUM=54, END_FUNCTION=55, END_IF=56, END_PROPERTY=57, - END_SELECT=58, END_SUB=59, END_TYPE=60, END_WITH=61, END=62, ENUM=63, - EQV=64, ERASE=65, ERROR=66, EVENT=67, EXIT_DO=68, EXIT_FOR=69, EXIT_FUNCTION=70, - EXIT_PROPERTY=71, EXIT_SUB=72, FALSE=73, FILECOPY=74, FRIEND=75, FOR=76, - FUNCTION=77, GET=78, GLOBAL=79, GOSUB=80, GOTO=81, IF=82, IMP=83, IMPLEMENTS=84, - IN=85, INPUT=86, IS=87, INTEGER=88, KILL=89, LOAD=90, LOCK=91, LONG=92, - LOOP=93, LEN=94, LET=95, LIB=96, LIKE=97, LINE_INPUT=98, LOCK_READ=99, - LOCK_WRITE=100, LOCK_READ_WRITE=101, LSET=102, ME=103, MID=104, MKDIR=105, - MOD=106, NAME=107, NEXT=108, NEW=109, NOT=110, NOTHING=111, NULL=112, - ON=113, ON_ERROR=114, ON_LOCAL_ERROR=115, OPEN=116, OPTIONAL=117, OPTION_BASE=118, - OPTION_EXPLICIT=119, OPTION_COMPARE=120, OPTION_PRIVATE_MODULE=121, OR=122, - OUTPUT=123, PARAMARRAY=124, PRESERVE=125, PRINT=126, PRIVATE=127, PROPERTY_GET=128, - PROPERTY_LET=129, PROPERTY_SET=130, PTRSAFE=131, PUBLIC=132, PUT=133, - RANDOM=134, RANDOMIZE=135, RAISEEVENT=136, READ=137, READ_WRITE=138, REDIM=139, - REM=140, RESET=141, RESUME=142, RETURN=143, RMDIR=144, RSET=145, SAVEPICTURE=146, - SAVESETTING=147, SEEK=148, SELECT=149, SENDKEYS=150, SET=151, SETATTR=152, - SHARED=153, SINGLE=154, SPC=155, STATIC=156, STEP=157, STOP=158, STRING=159, - SUB=160, TAB=161, TEXT=162, THEN=163, TIME=164, TO=165, TRUE=166, TYPE=167, - TYPEOF=168, UNLOAD=169, UNLOCK=170, UNTIL=171, VARIANT=172, VERSION=173, - WEND=174, WHILE=175, WIDTH=176, WITH=177, WITHEVENTS=178, WRITE=179, XOR=180, - AMPERSAND=181, ASSIGN=182, DIV=183, INTDIV=184, EQ=185, GEQ=186, GT=187, - LEQ=188, LPAREN=189, LT=190, MINUS=191, MULT=192, NEQ=193, PLUS=194, POW=195, - RPAREN=196, L_SQUARE_BRACKET=197, R_SQUARE_BRACKET=198, STRINGLITERAL=199, - OCTLITERAL=200, HEXLITERAL=201, SHORTLITERAL=202, INTEGERLITERAL=203, - DOUBLELITERAL=204, DATELITERAL=205, JANUARY=206, FEBRUARY=207, MARCH=208, - APRIL=209, MAY=210, JUNE=211, JULY=212, AUGUST=213, SEPTEMBER=214, OCTOBER=215, - NOVEMBER=216, DECEMBER=217, JAN=218, FEB=219, MAR=220, APR=221, JUN=222, - JUL=223, AUG=224, SEP=225, OCT=226, NOV=227, DEC=228, LINE_CONTINUATION=229, - NEWLINE=230, REMCOMMENT=231, COMMENT=232, SINGLEQUOTE=233, COLON=234, - UNDERSCORE=235, WS=236, IDENTIFIER=237; + ELSE=52, ELSEIF=53, EMPTY=54, END_ENUM=55, END_FUNCTION=56, END_IF=57, + END_PROPERTY=58, END_SELECT=59, END_SUB=60, END_TYPE=61, END_WITH=62, + END=63, ENUM=64, EQV=65, ERASE=66, ERROR=67, EVENT=68, EXIT_DO=69, EXIT_FOR=70, + EXIT_FUNCTION=71, EXIT_PROPERTY=72, EXIT_SUB=73, FALSE=74, FILECOPY=75, + FRIEND=76, FOR=77, FUNCTION=78, GET=79, GLOBAL=80, GOSUB=81, GOTO=82, + IF=83, IMP=84, IMPLEMENTS=85, IN=86, INPUT=87, IS=88, INTEGER=89, KILL=90, + LOAD=91, LOCK=92, LONG=93, LOOP=94, LEN=95, LET=96, LIB=97, LIKE=98, LINE_INPUT=99, + LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, ME=104, + MID=105, MKDIR=106, MOD=107, NAME=108, NEXT=109, NEW=110, NOT=111, NOTHING=112, + NULL=113, ON=114, ON_ERROR=115, ON_LOCAL_ERROR=116, OPEN=117, OPTIONAL=118, + OPTION_BASE=119, OPTION_EXPLICIT=120, OPTION_COMPARE=121, OPTION_PRIVATE_MODULE=122, + OR=123, OUTPUT=124, PARAMARRAY=125, PRESERVE=126, PRINT=127, PRIVATE=128, + PROPERTY_GET=129, PROPERTY_LET=130, PROPERTY_SET=131, PTRSAFE=132, PUBLIC=133, + PUT=134, RANDOM=135, RANDOMIZE=136, RAISEEVENT=137, READ=138, READ_WRITE=139, + REDIM=140, REM=141, RESET=142, RESUME=143, RETURN=144, RMDIR=145, RSET=146, + SAVEPICTURE=147, SAVESETTING=148, SEEK=149, SELECT=150, SENDKEYS=151, + SET=152, SETATTR=153, SHARED=154, SINGLE=155, SPC=156, STATIC=157, STEP=158, + STOP=159, STRING=160, SUB=161, TAB=162, TEXT=163, THEN=164, TIME=165, + TO=166, TRUE=167, TYPE=168, TYPEOF=169, UNLOAD=170, UNLOCK=171, UNTIL=172, + VARIANT=173, VERSION=174, WEND=175, WHILE=176, WIDTH=177, WITH=178, WITHEVENTS=179, + WRITE=180, XOR=181, AMPERSAND=182, ASSIGN=183, DIV=184, INTDIV=185, EQ=186, + GEQ=187, GT=188, LEQ=189, LPAREN=190, LT=191, MINUS=192, MULT=193, NEQ=194, + PLUS=195, POW=196, RPAREN=197, L_SQUARE_BRACKET=198, R_SQUARE_BRACKET=199, + STRINGLITERAL=200, OCTLITERAL=201, HEXLITERAL=202, SHORTLITERAL=203, INTEGERLITERAL=204, + DOUBLELITERAL=205, DATELITERAL=206, JANUARY=207, FEBRUARY=208, MARCH=209, + APRIL=210, MAY=211, JUNE=212, JULY=213, AUGUST=214, SEPTEMBER=215, OCTOBER=216, + NOVEMBER=217, DECEMBER=218, JAN=219, FEB=220, MAR=221, APR=222, JUN=223, + JUL=224, AUG=225, SEP=226, OCT=227, NOV=228, DEC=229, LINE_CONTINUATION=230, + NEWLINE=231, REMCOMMENT=232, COMMENT=233, SINGLEQUOTE=234, COLON=235, + UNDERSCORE=236, WS=237, IDENTIFIER=238; public static string[] modeNames = { "DEFAULT_MODE" }; @@ -102,7 +102,7 @@ public const int "'\\u00DB'", "'\\u00DC'", "'\\u00DD'", "'\\u00DE'", "'\\u00DF'", "'\\u00E0'", "'\\u00E1'", "'\\u00E2'", "'\\u00E3'", "'\\u00E4'", "'\\u00E5'", "'\\u00E6'", "'\\u00E7'", "'\\u00E8'", "'\\u00E9'", "'\\u00EA'", "'\\u00EB'", "'\\u00EC'", - "'\\u00ED'" + "'\\u00ED'", "'\\u00EE'" }; public static readonly string[] ruleNames = { "T__7", "T__6", "T__5", "T__4", "T__3", "T__2", "T__1", "T__0", "ACCESS", @@ -111,13 +111,13 @@ public const int "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "COLLECTION", "CONST", "DATABASE", "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", "DEFCUR", "DEFINT", "DEFLNG", "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", - "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", - "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", - "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", - "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", - "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", - "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", - "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", + "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "EMPTY", + "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", + "END_TYPE", "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", + "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", + "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", + "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", + "LOCK", "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", @@ -162,7 +162,7 @@ public VBALexer(ICharStream input) public override string SerializedAtn { get { return _serializedATN; } } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xEF\x8EA\b\x1\x4"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF0\x8F2\b\x1\x4"+ "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b"+ "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4"+ "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15"+ @@ -207,981 +207,986 @@ public VBALexer(ICharStream input) "\x105\t\x105\x4\x106\t\x106\x4\x107\t\x107\x4\x108\t\x108\x4\x109\t\x109"+ "\x4\x10A\t\x10A\x4\x10B\t\x10B\x4\x10C\t\x10C\x4\x10D\t\x10D\x4\x10E\t"+ "\x10E\x4\x10F\t\x10F\x4\x110\t\x110\x4\x111\t\x111\x4\x112\t\x112\x4\x113"+ - "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x3\x2\x3\x2\x3\x3\x3\x3\x3\x4\x3"+ - "\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3\t\x3\n\x3\n\x3"+ - "\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3"+ - "\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE"+ - "\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3"+ - "\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3"+ - "\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3"+ - "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3"+ - "\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x17\x3"+ - "\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3"+ - "\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3"+ - "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3"+ - "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3"+ - "\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3"+ - "\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3 \x3"+ - " \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"\x3\"\x3#\x3"+ - "#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3%\x3%\x3%"+ - "\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'\x3\'\x3\'\x3"+ - "\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3)\x3)"+ - "\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x3,\x3,\x3"+ - ",\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3."+ - "\x3.\x3/\x3/\x3/\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3"+ - "\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3"+ - "\x31\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3"+ - "\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3"+ - "\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3"+ - "\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x38\x3"+ - "\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3"+ - "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3:\x3:\x3"+ - ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3;\x3;\x3;\x3;"+ - "\x3;\x3;\x3;\x3;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3=\x3"+ - "=\x3=\x3=\x3=\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3@"+ - "\x3@\x3@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x3\x42"+ - "\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x44\x3\x44"+ - "\x3\x44\x3\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45"+ - "\x3\x45\x3\x45\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46"+ - "\x3\x46\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3H\x3"+ - "H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3I\x3I\x3I\x3I\x3I"+ - "\x3I\x3I\x3I\x3I\x3J\x3J\x3J\x3J\x3J\x3J\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3"+ - "K\x3K\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x3N\x3N\x3N\x3N\x3N"+ - "\x3N\x3N\x3N\x3N\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x3Q\x3Q\x3"+ - "Q\x3Q\x3Q\x3Q\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3T\x3T\x3T\x3T\x3U\x3U"+ - "\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3V\x3V\x3V\x3W\x3W\x3W\x3W\x3W\x3"+ - "W\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Z\x3Z\x3Z\x3Z\x3Z\x3["+ - "\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3^\x3^"+ - "\x3^\x3^\x3^\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3\x61\x3\x61\x3\x61\x3\x61"+ - "\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63"+ - "\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x64\x3\x64\x3\x64\x3\x64"+ - "\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65"+ - "\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66"+ - "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66"+ - "\x3\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3h\x3h\x3h\x3i\x3i\x3i\x3i"+ - "\x3j\x3j\x3j\x3j\x3j\x3j\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3l\x3m\x3m\x3"+ - "m\x3m\x3m\x3n\x3n\x3n\x3n\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3p\x3p\x3p"+ - "\x3p\x3q\x3q\x3q\x3q\x3q\x3r\x3r\x3r\x3s\x3s\x3s\x3s\x3s\x3s\x3s\x3s\x3"+ - "s\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3u\x3u"+ - "\x3u\x3u\x3u\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3w\x3w\x3w\x3w\x3w\x3"+ - "w\x3w\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x"+ - "\x3x\x3x\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3"+ - "y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z"+ - "\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3{\x3{\x3{\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3"+ - "}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~"+ - "\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80"+ - "\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81"+ - "\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82"+ - "\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82"+ - "\x3\x82\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83"+ - "\x3\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84"+ - "\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86"+ - "\x3\x86\x3\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87"+ - "\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88"+ - "\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89"+ - "\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B"+ - "\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8C"+ - "\x3\x8C\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E"+ - "\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F"+ - "\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91"+ - "\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x93\x3\x93"+ - "\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93"+ - "\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94"+ - "\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96\x3\x96"+ - "\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97"+ - "\x3\x97\x3\x97\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99"+ - "\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A"+ - "\x3\x9A\x3\x9A\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C"+ - "\x3\x9C\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D"+ - "\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F"+ - "\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1"+ - "\x3\xA1\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3"+ - "\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5"+ - "\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8"+ - "\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9"+ - "\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB"+ - "\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC"+ - "\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE"+ - "\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF"+ - "\x3\xAF\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1"+ - "\x3\xB1\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3"+ - "\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB4"+ - "\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6"+ - "\x3\xB6\x3\xB7\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xBA\x3\xBA"+ - "\x3\xBB\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBD\x3\xBE\x3\xBE"+ - "\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC1\x3\xC1\x3\xC2\x3\xC2\x3\xC2\x3\xC3"+ - "\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC7\x3\xC7\x3\xC8"+ - "\x3\xC8\x3\xC8\x3\xC8\a\xC8\x731\n\xC8\f\xC8\xE\xC8\x734\v\xC8\x3\xC8"+ - "\x3\xC8\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x6\xC9\x73C\n\xC9\r\xC9\xE\xC9\x73D"+ - "\x3\xC9\x5\xC9\x741\n\xC9\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x6\xCA\x747\n\xCA"+ - "\r\xCA\xE\xCA\x748\x3\xCA\x5\xCA\x74C\n\xCA\x3\xCB\x3\xCB\x5\xCB\x750"+ - "\n\xCB\x3\xCB\x6\xCB\x753\n\xCB\r\xCB\xE\xCB\x754\x3\xCB\x5\xCB\x758\n"+ - "\xCB\x3\xCC\x3\xCC\x3\xCC\x3\xCC\x5\xCC\x75E\n\xCC\x3\xCD\x3\xCD\x5\xCD"+ - "\x762\n\xCD\x3\xCD\a\xCD\x765\n\xCD\f\xCD\xE\xCD\x768\v\xCD\x3\xCD\x3"+ - "\xCD\x6\xCD\x76C\n\xCD\r\xCD\xE\xCD\x76D\x3\xCD\x3\xCD\x3\xCD\x5\xCD\x773"+ - "\n\xCD\x3\xCE\x3\xCE\x3\xCE\x3\xCE\x3\xCF\x3\xCF\x5\xCF\x77B\n\xCF\x3"+ - "\xCF\x3\xCF\x3\xCF\x3\xCF\x5\xCF\x781\n\xCF\x3\xD0\x3\xD0\x3\xD0\x3\xD0"+ - "\x3\xD0\x3\xD0\x5\xD0\x789\n\xD0\x3\xD1\x6\xD1\x78C\n\xD1\r\xD1\xE\xD1"+ - "\x78D\x3\xD1\x5\xD1\x791\n\xD1\x3\xD2\x5\xD2\x794\n\xD2\x3\xD2\x5\xD2"+ - "\x797\n\xD2\x3\xD2\x5\xD2\x79A\n\xD2\x3\xD3\x3\xD3\x5\xD3\x79E\n\xD3\x3"+ - "\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD4\x3"+ - "\xD4\x3\xD4\x5\xD4\x7AC\n\xD4\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5"+ - "\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x7B9\n\xD5\x3\xD6\x6\xD6\x7BC"+ - "\n\xD6\r\xD6\xE\xD6\x7BD\x3\xD6\x3\xD6\x3\xD6\x6\xD6\x7C3\n\xD6\r\xD6"+ - "\xE\xD6\x7C4\x3\xD6\x3\xD6\x6\xD6\x7C9\n\xD6\r\xD6\xE\xD6\x7CA\x3\xD6"+ - "\x3\xD6\x6\xD6\x7CF\n\xD6\r\xD6\xE\xD6\x7D0\x5\xD6\x7D3\n\xD6\x3\xD6\x5"+ - "\xD6\x7D6\n\xD6\x5\xD6\x7D8\n\xD6\x3\xD7\x5\xD7\x7DB\n\xD7\x3\xD7\x3\xD7"+ - "\x5\xD7\x7DF\n\xD7\x3\xD8\x5\xD8\x7E2\n\xD8\x3\xD8\x3\xD8\x3\xD8\x3\xD8"+ - "\x3\xD8\x3\xD8\x3\xD8\x3\xD8\x5\xD8\x7EC\n\xD8\x3\xD9\x3\xD9\x3\xD9\x3"+ - "\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3"+ - "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3"+ - "\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3"+ - "\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3"+ - "\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3"+ - "\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3\xE2\x3"+ - "\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3"+ - "\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3"+ - "\xE4\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3\xE6\x3\xE6\x3"+ - "\xE6\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE9\x3"+ - "\xE9\x3\xE9\x3\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEB\x3\xEB\x3\xEB\x3"+ - "\xEB\x3\xEC\x3\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED\x3\xED\x3\xED\x3\xEE\x3"+ - "\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xF0\x6\xF0\x871\n\xF0"+ - "\r\xF0\xE\xF0\x872\x3\xF0\x3\xF0\x5\xF0\x877\n\xF0\x3\xF0\x3\xF0\x3\xF0"+ - "\x3\xF0\x3\xF1\x6\xF1\x87E\n\xF1\r\xF1\xE\xF1\x87F\x3\xF2\x5\xF2\x883"+ - "\n\xF2\x3\xF2\x3\xF2\x3\xF2\x3\xF2\a\xF2\x889\n\xF2\f\xF2\xE\xF2\x88C"+ - "\v\xF2\x3\xF3\x3\xF3\x3\xF3\a\xF3\x891\n\xF3\f\xF3\xE\xF3\x894\v\xF3\x3"+ - "\xF4\x3\xF4\x3\xF5\x3\xF5\x3\xF6\x3\xF6\x3\xF7\x3\xF7\x6\xF7\x89E\n\xF7"+ - "\r\xF7\xE\xF7\x89F\x3\xF8\x6\xF8\x8A3\n\xF8\r\xF8\xE\xF8\x8A4\x3\xF8\x3"+ - "\xF8\x6\xF8\x8A9\n\xF8\r\xF8\xE\xF8\x8AA\x3\xF8\x3\xF8\x5\xF8\x8AF\n\xF8"+ - "\x3\xF9\x3\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x3\xFD\x3\xFD"+ - "\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101\x3\x101\x3\x102\x3"+ - "\x102\x3\x103\x3\x103\x3\x104\x3\x104\x3\x105\x3\x105\x3\x106\x3\x106"+ + "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x4\x116\t\x116\x3\x2\x3\x2\x3\x3"+ + "\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3"+ + "\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3"+ + "\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3"+ + "\xE\x3\xE\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3"+ + "\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3"+ + "\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3"+ + "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3"+ + "\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3"+ + "\x18\x3\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3"+ + "\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3"+ + "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3"+ + "\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3"+ + "\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3"+ + " \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\""+ + "\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$"+ + "\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'"+ + "\x3\'\x3\'\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3"+ + ")\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+"+ + "\x3+\x3,\x3,\x3,\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3"+ + ".\x3.\x3.\x3.\x3.\x3/\x3/\x3/\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3"+ + "\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3"+ + "\x30\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3"+ + "\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3"+ + "\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3"+ + "\x36\x3\x36\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3"+ + "\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3"+ + "\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ + ":\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;"+ + "\x3;\x3;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3"+ + "=\x3=\x3=\x3=\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3?"+ + "\x3?\x3?\x3?\x3?\x3@\x3@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3"+ + "\x42\x3\x42\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3"+ + "\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3"+ + "\x45\x3\x45\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3"+ + "G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H\x3H"+ + "\x3H\x3H\x3H\x3H\x3H\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3"+ + "I\x3I\x3J\x3J\x3J\x3J\x3J\x3J\x3J\x3J\x3J\x3K\x3K\x3K\x3K\x3K\x3K\x3L"+ + "\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x3M\x3M\x3M\x3N\x3N\x3"+ + "N\x3N\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3Q\x3Q\x3Q"+ + "\x3Q\x3Q\x3Q\x3Q\x3R\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3S\x3S\x3T\x3T\x3"+ + "T\x3U\x3U\x3U\x3U\x3V\x3V\x3V\x3V\x3V\x3V\x3V\x3V\x3V\x3V\x3V\x3W\x3W"+ + "\x3W\x3X\x3X\x3X\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Z\x3Z\x3Z\x3Z\x3Z\x3Z\x3Z\x3"+ + "Z\x3[\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3"+ + "^\x3^\x3^\x3^\x3^\x3_\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3\x61\x3\x61\x3"+ + "\x61\x3\x61\x3\x62\x3\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3"+ + "\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3"+ + "\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3"+ + "\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3"+ + "\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3"+ + "g\x3g\x3g\x3g\x3h\x3h\x3h\x3h\x3h\x3i\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x3k"+ + "\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3m\x3m\x3m\x3m\x3m\x3n\x3n\x3n\x3n\x3"+ + "n\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3r"+ + "\x3r\x3r\x3r\x3r\x3s\x3s\x3s\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3u\x3"+ + "u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3v\x3v\x3v\x3v"+ + "\x3v\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3"+ + "x\x3x\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y"+ + "\x3y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3"+ + "z\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{"+ + "\x3{\x3{\x3{\x3{\x3{\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3"+ + "~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3"+ + "\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3"+ + "\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82\x3"+ + "\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3"+ + "\x82\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3"+ + "\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3"+ + "\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3"+ + "\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3"+ + "\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88\x3"+ + "\x88\x3\x88\x3\x88\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3"+ + "\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3"+ + "\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3"+ + "\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3"+ + "\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3"+ + "\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90\x3\x90\x3\x90\x3\x90\x3"+ + "\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3"+ + "\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3"+ + "\x93\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3"+ + "\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3"+ + "\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3"+ + "\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x98\x3\x98\x3\x98\x3"+ + "\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99\x3"+ + "\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9B\x3\x9B\x3"+ + "\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3"+ + "\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3"+ + "\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3"+ + "\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3"+ + "\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4\x3"+ + "\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA6\x3\xA6\x3"+ + "\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3"+ + "\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3"+ + "\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3"+ + "\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3"+ + "\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3"+ + "\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xB0\x3"+ + "\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3"+ + "\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3"+ + "\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3"+ + "\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6\x3\xB6\x3"+ + "\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xBA\x3"+ + "\xBA\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBE\x3\xBE\x3"+ + "\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC1\x3\xC1\x3\xC2\x3\xC2\x3\xC3\x3"+ + "\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC7\x3\xC7\x3"+ + "\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xC9\x3\xC9\a\xC9\x739\n\xC9\f\xC9\xE\xC9"+ + "\x73C\v\xC9\x3\xC9\x3\xC9\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x6\xCA\x744\n\xCA"+ + "\r\xCA\xE\xCA\x745\x3\xCA\x5\xCA\x749\n\xCA\x3\xCB\x3\xCB\x3\xCB\x3\xCB"+ + "\x6\xCB\x74F\n\xCB\r\xCB\xE\xCB\x750\x3\xCB\x5\xCB\x754\n\xCB\x3\xCC\x3"+ + "\xCC\x5\xCC\x758\n\xCC\x3\xCC\x6\xCC\x75B\n\xCC\r\xCC\xE\xCC\x75C\x3\xCC"+ + "\x5\xCC\x760\n\xCC\x3\xCD\x3\xCD\x3\xCD\x3\xCD\x5\xCD\x766\n\xCD\x3\xCE"+ + "\x3\xCE\x5\xCE\x76A\n\xCE\x3\xCE\a\xCE\x76D\n\xCE\f\xCE\xE\xCE\x770\v"+ + "\xCE\x3\xCE\x3\xCE\x6\xCE\x774\n\xCE\r\xCE\xE\xCE\x775\x3\xCE\x3\xCE\x3"+ + "\xCE\x5\xCE\x77B\n\xCE\x3\xCF\x3\xCF\x3\xCF\x3\xCF\x3\xD0\x3\xD0\x5\xD0"+ + "\x783\n\xD0\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x5\xD0\x789\n\xD0\x3\xD1\x3\xD1"+ + "\x3\xD1\x3\xD1\x3\xD1\x3\xD1\x5\xD1\x791\n\xD1\x3\xD2\x6\xD2\x794\n\xD2"+ + "\r\xD2\xE\xD2\x795\x3\xD2\x5\xD2\x799\n\xD2\x3\xD3\x5\xD3\x79C\n\xD3\x3"+ + "\xD3\x5\xD3\x79F\n\xD3\x3\xD3\x5\xD3\x7A2\n\xD3\x3\xD4\x3\xD4\x5\xD4\x7A6"+ + "\n\xD4\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5"+ + "\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x7B4\n\xD5\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3"+ + "\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x5\xD6\x7C1\n\xD6\x3\xD7"+ + "\x6\xD7\x7C4\n\xD7\r\xD7\xE\xD7\x7C5\x3\xD7\x3\xD7\x3\xD7\x6\xD7\x7CB"+ + "\n\xD7\r\xD7\xE\xD7\x7CC\x3\xD7\x3\xD7\x6\xD7\x7D1\n\xD7\r\xD7\xE\xD7"+ + "\x7D2\x3\xD7\x3\xD7\x6\xD7\x7D7\n\xD7\r\xD7\xE\xD7\x7D8\x5\xD7\x7DB\n"+ + "\xD7\x3\xD7\x5\xD7\x7DE\n\xD7\x5\xD7\x7E0\n\xD7\x3\xD8\x5\xD8\x7E3\n\xD8"+ + "\x3\xD8\x3\xD8\x5\xD8\x7E7\n\xD8\x3\xD9\x5\xD9\x7EA\n\xD9\x3\xD9\x3\xD9"+ + "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x5\xD9\x7F4\n\xD9\x3\xDA\x3"+ + "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDB\x3\xDB\x3\xDB\x3"+ + "\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3"+ + "\xDC\x3\xDC\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDE\x3\xDE\x3"+ + "\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE0\x3"+ + "\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3"+ + "\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE3\x3"+ + "\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4\x3"+ + "\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3"+ + "\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE7\x3"+ + "\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3"+ + "\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEB\x3\xEB\x3\xEB\x3\xEB\x3\xEC\x3"+ + "\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED\x3\xED\x3\xED\x3\xEE\x3\xEE\x3\xEE\x3"+ + "\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF1\x6"+ + "\xF1\x879\n\xF1\r\xF1\xE\xF1\x87A\x3\xF1\x3\xF1\x5\xF1\x87F\n\xF1\x3\xF1"+ + "\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x6\xF2\x886\n\xF2\r\xF2\xE\xF2\x887\x3\xF3"+ + "\x5\xF3\x88B\n\xF3\x3\xF3\x3\xF3\x3\xF3\x3\xF3\a\xF3\x891\n\xF3\f\xF3"+ + "\xE\xF3\x894\v\xF3\x3\xF4\x3\xF4\x3\xF4\a\xF4\x899\n\xF4\f\xF4\xE\xF4"+ + "\x89C\v\xF4\x3\xF5\x3\xF5\x3\xF6\x3\xF6\x3\xF7\x3\xF7\x3\xF8\x3\xF8\x6"+ + "\xF8\x8A6\n\xF8\r\xF8\xE\xF8\x8A7\x3\xF9\x6\xF9\x8AB\n\xF9\r\xF9\xE\xF9"+ + "\x8AC\x3\xF9\x3\xF9\x6\xF9\x8B1\n\xF9\r\xF9\xE\xF9\x8B2\x3\xF9\x3\xF9"+ + "\x5\xF9\x8B7\n\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x3\xFD\x3"+ + "\xFD\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101\x3\x101\x3\x102"+ + "\x3\x102\x3\x103\x3\x103\x3\x104\x3\x104\x3\x105\x3\x105\x3\x106\x3\x106"+ "\x3\x107\x3\x107\x3\x108\x3\x108\x3\x109\x3\x109\x3\x10A\x3\x10A\x3\x10B"+ "\x3\x10B\x3\x10C\x3\x10C\x3\x10D\x3\x10D\x3\x10E\x3\x10E\x3\x10F\x3\x10F"+ "\x3\x110\x3\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113\x3\x113\x3\x114"+ - "\x3\x114\x3\x115\x3\x115\x2\x2\x2\x116\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2"+ - "\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE"+ - "\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2"+ - "\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D"+ - "\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2%I\x2&K\x2\'"+ - "M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31\x61\x2\x32\x63"+ - "\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2\x39q\x2:s\x2;u"+ - "\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43\x85\x2\x44\x87"+ - "\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93\x2K\x95\x2L\x97"+ - "\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5\x2T\xA7\x2U\xA9"+ - "\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\\xB7\x2]\xB9\x2^"+ - "\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5\x2\x64\xC7\x2\x65"+ - "\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k\xD5\x2l\xD7\x2m\xD9"+ - "\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2t\xE7\x2u\xE9\x2v\xEB"+ - "\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7\x2}\xF9\x2~\xFB\x2\x7F"+ - "\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83\x105\x2\x84\x107\x2\x85"+ - "\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89\x111\x2\x8A\x113\x2\x8B"+ - "\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F\x11D\x2\x90\x11F\x2\x91"+ - "\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95\x129\x2\x96\x12B\x2\x97"+ - "\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B\x135\x2\x9C\x137\x2\x9D"+ - "\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1\x141\x2\xA2\x143\x2\xA3"+ - "\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7\x14D\x2\xA8\x14F\x2\xA9"+ - "\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD\x159\x2\xAE\x15B\x2\xAF"+ - "\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3\x165\x2\xB4\x167\x2\xB5"+ - "\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9\x171\x2\xBA\x173\x2\xBB"+ - "\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF\x17D\x2\xC0\x17F\x2\xC1"+ - "\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5\x189\x2\xC6\x18B\x2\xC7"+ - "\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB\x195\x2\xCC\x197\x2\xCD"+ - "\x199\x2\xCE\x19B\x2\xCF\x19D\x2\x2\x19F\x2\x2\x1A1\x2\x2\x1A3\x2\x2\x1A5"+ - "\x2\x2\x1A7\x2\x2\x1A9\x2\x2\x1AB\x2\x2\x1AD\x2\x2\x1AF\x2\x2\x1B1\x2"+ - "\xD0\x1B3\x2\xD1\x1B5\x2\xD2\x1B7\x2\xD3\x1B9\x2\xD4\x1BB\x2\xD5\x1BD"+ - "\x2\xD6\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5\x2\xDA\x1C7\x2\xDB\x1C9"+ - "\x2\xDC\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1\x2\xE0\x1D3\x2\xE1\x1D5"+ - "\x2\xE2\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD\x2\xE6\x1DF\x2\xE7\x1E1"+ - "\x2\xE8\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9\x2\xEC\x1EB\x2\xED\x1ED"+ - "\x2\xEE\x1EF\x2\xEF\x1F1\x2\x2\x1F3\x2\x2\x1F5\x2\x2\x1F7\x2\x2\x1F9\x2"+ - "\x2\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2\x2\x203\x2\x2\x205\x2\x2"+ - "\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2\x20F\x2\x2\x211\x2\x2\x213"+ - "\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B\x2\x2\x21D\x2\x2\x21F\x2"+ - "\x2\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227\x2\x2\x229\x2\x2\x3\x2)\x5\x2"+ - "\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x5\x2%%((\x42\x42\x4\x2./\x31"+ - "\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\"\x5\x2\f\f\xF\xF\x202A\x202B\v\x2\v"+ - "\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\v\x2\x43\\\x61"+ - "\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x3\x2\x32;\f"+ - "\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE"+ - "\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65"+ - "\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2K"+ - "Kkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2"+ - "RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2"+ - "YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x90B\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2"+ - "\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2"+ - "\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3"+ - "\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2"+ - "\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2"+ - "%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3"+ - "\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35"+ - "\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2"+ - "=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2"+ - "\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3"+ - "\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2"+ - "\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2"+ - "_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2"+ - "\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3"+ - "\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2"+ - "\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2"+ - "\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2"+ - "\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F"+ - "\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2"+ - "\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2"+ - "\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5"+ - "\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2"+ - "\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2"+ - "\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB"+ - "\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2"+ - "\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2"+ - "\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1"+ - "\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2"+ - "\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2"+ - "\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7"+ - "\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2"+ - "\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2"+ - "\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD"+ - "\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2"+ - "\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3"+ - "\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2"+ - "\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3"+ - "\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2"+ - "\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3"+ - "\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2"+ - "\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3"+ - "\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2"+ - "\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3"+ - "\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2"+ - "\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3"+ - "\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2"+ - "\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3"+ - "\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2"+ - "\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3"+ - "\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2"+ - "\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3"+ - "\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2"+ - "\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3"+ - "\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2"+ - "\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3"+ - "\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x1B1\x3\x2\x2\x2"+ - "\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2\x2\x2\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3"+ - "\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2"+ - "\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3"+ - "\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2"+ - "\x2\x1CF\x3\x2\x2\x2\x2\x1D1\x3\x2\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3"+ - "\x2\x2\x2\x2\x1D7\x3\x2\x2\x2\x2\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2"+ - "\x2\x1DD\x3\x2\x2\x2\x2\x1DF\x3\x2\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3"+ - "\x2\x2\x2\x2\x1E5\x3\x2\x2\x2\x2\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2"+ - "\x2\x1EB\x3\x2\x2\x2\x2\x1ED\x3\x2\x2\x2\x2\x1EF\x3\x2\x2\x2\x3\x22B\x3"+ - "\x2\x2\x2\x5\x22D\x3\x2\x2\x2\a\x22F\x3\x2\x2\x2\t\x231\x3\x2\x2\x2\v"+ - "\x233\x3\x2\x2\x2\r\x235\x3\x2\x2\x2\xF\x237\x3\x2\x2\x2\x11\x239\x3\x2"+ - "\x2\x2\x13\x23B\x3\x2\x2\x2\x15\x242\x3\x2\x2\x2\x17\x24C\x3\x2\x2\x2"+ - "\x19\x252\x3\x2\x2\x2\x1B\x256\x3\x2\x2\x2\x1D\x260\x3\x2\x2\x2\x1F\x26C"+ - "\x3\x2\x2\x2!\x273\x3\x2\x2\x2#\x276\x3\x2\x2\x2%\x27C\x3\x2\x2\x2\'\x281"+ - "\x3\x2\x2\x2)\x288\x3\x2\x2\x2+\x290\x3\x2\x2\x2-\x296\x3\x2\x2\x2/\x29C"+ - "\x3\x2\x2\x2\x31\x2A1\x3\x2\x2\x2\x33\x2A6\x3\x2\x2\x2\x35\x2AB\x3\x2"+ - "\x2\x2\x37\x2B1\x3\x2\x2\x2\x39\x2B9\x3\x2\x2\x2;\x2BF\x3\x2\x2\x2=\x2C5"+ - "\x3\x2\x2\x2?\x2D0\x3\x2\x2\x2\x41\x2D6\x3\x2\x2\x2\x43\x2DF\x3\x2\x2"+ - "\x2\x45\x2E4\x3\x2\x2\x2G\x2EC\x3\x2\x2\x2I\x2F4\x3\x2\x2\x2K\x2FC\x3"+ - "\x2\x2\x2M\x304\x3\x2\x2\x2O\x30B\x3\x2\x2\x2Q\x312\x3\x2\x2\x2S\x319"+ - "\x3\x2\x2\x2U\x320\x3\x2\x2\x2W\x327\x3\x2\x2\x2Y\x32E\x3\x2\x2\x2[\x335"+ - "\x3\x2\x2\x2]\x33C\x3\x2\x2\x2_\x343\x3\x2\x2\x2\x61\x351\x3\x2\x2\x2"+ - "\x63\x355\x3\x2\x2\x2\x65\x358\x3\x2\x2\x2g\x35F\x3\x2\x2\x2i\x364\x3"+ - "\x2\x2\x2k\x369\x3\x2\x2\x2m\x370\x3\x2\x2\x2o\x379\x3\x2\x2\x2q\x386"+ - "\x3\x2\x2\x2s\x38D\x3\x2\x2\x2u\x39A\x3\x2\x2\x2w\x3A5\x3\x2\x2\x2y\x3AD"+ - "\x3\x2\x2\x2{\x3B6\x3\x2\x2\x2}\x3BF\x3\x2\x2\x2\x7F\x3C3\x3\x2\x2\x2"+ - "\x81\x3C8\x3\x2\x2\x2\x83\x3CC\x3\x2\x2\x2\x85\x3D2\x3\x2\x2\x2\x87\x3D8"+ - "\x3\x2\x2\x2\x89\x3DE\x3\x2\x2\x2\x8B\x3E6\x3\x2\x2\x2\x8D\x3EF\x3\x2"+ - "\x2\x2\x8F\x3FD\x3\x2\x2\x2\x91\x40B\x3\x2\x2\x2\x93\x414\x3\x2\x2\x2"+ - "\x95\x41A\x3\x2\x2\x2\x97\x423\x3\x2\x2\x2\x99\x42A\x3\x2\x2\x2\x9B\x42E"+ - "\x3\x2\x2\x2\x9D\x437\x3\x2\x2\x2\x9F\x43B\x3\x2\x2\x2\xA1\x442\x3\x2"+ - "\x2\x2\xA3\x448\x3\x2\x2\x2\xA5\x44D\x3\x2\x2\x2\xA7\x450\x3\x2\x2\x2"+ - "\xA9\x454\x3\x2\x2\x2\xAB\x45F\x3\x2\x2\x2\xAD\x462\x3\x2\x2\x2\xAF\x468"+ - "\x3\x2\x2\x2\xB1\x46B\x3\x2\x2\x2\xB3\x473\x3\x2\x2\x2\xB5\x478\x3\x2"+ - "\x2\x2\xB7\x47D\x3\x2\x2\x2\xB9\x482\x3\x2\x2\x2\xBB\x487\x3\x2\x2\x2"+ - "\xBD\x48C\x3\x2\x2\x2\xBF\x490\x3\x2\x2\x2\xC1\x494\x3\x2\x2\x2\xC3\x498"+ - "\x3\x2\x2\x2\xC5\x49D\x3\x2\x2\x2\xC7\x4A8\x3\x2\x2\x2\xC9\x4B2\x3\x2"+ - "\x2\x2\xCB\x4BD\x3\x2\x2\x2\xCD\x4CD\x3\x2\x2\x2\xCF\x4D2\x3\x2\x2\x2"+ - "\xD1\x4D5\x3\x2\x2\x2\xD3\x4D9\x3\x2\x2\x2\xD5\x4DF\x3\x2\x2\x2\xD7\x4E3"+ - "\x3\x2\x2\x2\xD9\x4E8\x3\x2\x2\x2\xDB\x4ED\x3\x2\x2\x2\xDD\x4F1\x3\x2"+ - "\x2\x2\xDF\x4F5\x3\x2\x2\x2\xE1\x4FD\x3\x2\x2\x2\xE3\x502\x3\x2\x2\x2"+ - "\xE5\x505\x3\x2\x2\x2\xE7\x50E\x3\x2\x2\x2\xE9\x51D\x3\x2\x2\x2\xEB\x522"+ - "\x3\x2\x2\x2\xED\x52B\x3\x2\x2\x2\xEF\x537\x3\x2\x2\x2\xF1\x547\x3\x2"+ - "\x2\x2\xF3\x556\x3\x2\x2\x2\xF5\x56C\x3\x2\x2\x2\xF7\x56F\x3\x2\x2\x2"+ - "\xF9\x576\x3\x2\x2\x2\xFB\x581\x3\x2\x2\x2\xFD\x58A\x3\x2\x2\x2\xFF\x590"+ - "\x3\x2\x2\x2\x101\x598\x3\x2\x2\x2\x103\x5A5\x3\x2\x2\x2\x105\x5B2\x3"+ - "\x2\x2\x2\x107\x5BF\x3\x2\x2\x2\x109\x5C7\x3\x2\x2\x2\x10B\x5CE\x3\x2"+ - "\x2\x2\x10D\x5D2\x3\x2\x2\x2\x10F\x5D9\x3\x2\x2\x2\x111\x5E3\x3\x2\x2"+ - "\x2\x113\x5EE\x3\x2\x2\x2\x115\x5F3\x3\x2\x2\x2\x117\x5FE\x3\x2\x2\x2"+ - "\x119\x604\x3\x2\x2\x2\x11B\x608\x3\x2\x2\x2\x11D\x60E\x3\x2\x2\x2\x11F"+ - "\x615\x3\x2\x2\x2\x121\x61C\x3\x2\x2\x2\x123\x622\x3\x2\x2\x2\x125\x627"+ - "\x3\x2\x2\x2\x127\x633\x3\x2\x2\x2\x129\x63F\x3\x2\x2\x2\x12B\x644\x3"+ - "\x2\x2\x2\x12D\x64B\x3\x2\x2\x2\x12F\x654\x3\x2\x2\x2\x131\x658\x3\x2"+ - "\x2\x2\x133\x660\x3\x2\x2\x2\x135\x667\x3\x2\x2\x2\x137\x66E\x3\x2\x2"+ - "\x2\x139\x672\x3\x2\x2\x2\x13B\x679\x3\x2\x2\x2\x13D\x67E\x3\x2\x2\x2"+ - "\x13F\x683\x3\x2\x2\x2\x141\x68A\x3\x2\x2\x2\x143\x68E\x3\x2\x2\x2\x145"+ - "\x692\x3\x2\x2\x2\x147\x697\x3\x2\x2\x2\x149\x69C\x3\x2\x2\x2\x14B\x6A1"+ - "\x3\x2\x2\x2\x14D\x6A4\x3\x2\x2\x2\x14F\x6A9\x3\x2\x2\x2\x151\x6AE\x3"+ - "\x2\x2\x2\x153\x6B5\x3\x2\x2\x2\x155\x6BC\x3\x2\x2\x2\x157\x6C3\x3\x2"+ - "\x2\x2\x159\x6C9\x3\x2\x2\x2\x15B\x6D1\x3\x2\x2\x2\x15D\x6D9\x3\x2\x2"+ - "\x2\x15F\x6DE\x3\x2\x2\x2\x161\x6E4\x3\x2\x2\x2\x163\x6EA\x3\x2\x2\x2"+ - "\x165\x6EF\x3\x2\x2\x2\x167\x6FA\x3\x2\x2\x2\x169\x700\x3\x2\x2\x2\x16B"+ - "\x704\x3\x2\x2\x2\x16D\x706\x3\x2\x2\x2\x16F\x709\x3\x2\x2\x2\x171\x70B"+ - "\x3\x2\x2\x2\x173\x70D\x3\x2\x2\x2\x175\x70F\x3\x2\x2\x2\x177\x712\x3"+ - "\x2\x2\x2\x179\x714\x3\x2\x2\x2\x17B\x717\x3\x2\x2\x2\x17D\x719\x3\x2"+ - "\x2\x2\x17F\x71B\x3\x2\x2\x2\x181\x71D\x3\x2\x2\x2\x183\x71F\x3\x2\x2"+ - "\x2\x185\x722\x3\x2\x2\x2\x187\x724\x3\x2\x2\x2\x189\x726\x3\x2\x2\x2"+ - "\x18B\x728\x3\x2\x2\x2\x18D\x72A\x3\x2\x2\x2\x18F\x72C\x3\x2\x2\x2\x191"+ - "\x737\x3\x2\x2\x2\x193\x742\x3\x2\x2\x2\x195\x74F\x3\x2\x2\x2\x197\x759"+ - "\x3\x2\x2\x2\x199\x761\x3\x2\x2\x2\x19B\x774\x3\x2\x2\x2\x19D\x780\x3"+ - "\x2\x2\x2\x19F\x782\x3\x2\x2\x2\x1A1\x790\x3\x2\x2\x2\x1A3\x793\x3\x2"+ - "\x2\x2\x1A5\x79D\x3\x2\x2\x2\x1A7\x7AB\x3\x2\x2\x2\x1A9\x7B8\x3\x2\x2"+ - "\x2\x1AB\x7D7\x3\x2\x2\x2\x1AD\x7DA\x3\x2\x2\x2\x1AF\x7E1\x3\x2\x2\x2"+ - "\x1B1\x7ED\x3\x2\x2\x2\x1B3\x7F5\x3\x2\x2\x2\x1B5\x7FE\x3\x2\x2\x2\x1B7"+ - "\x804\x3\x2\x2\x2\x1B9\x80A\x3\x2\x2\x2\x1BB\x80E\x3\x2\x2\x2\x1BD\x813"+ - "\x3\x2\x2\x2\x1BF\x818\x3\x2\x2\x2\x1C1\x81F\x3\x2\x2\x2\x1C3\x829\x3"+ - "\x2\x2\x2\x1C5\x831\x3\x2\x2\x2\x1C7\x83A\x3\x2\x2\x2\x1C9\x843\x3\x2"+ - "\x2\x2\x1CB\x847\x3\x2\x2\x2\x1CD\x84B\x3\x2\x2\x2\x1CF\x84F\x3\x2\x2"+ - "\x2\x1D1\x853\x3\x2\x2\x2\x1D3\x857\x3\x2\x2\x2\x1D5\x85B\x3\x2\x2\x2"+ - "\x1D7\x85F\x3\x2\x2\x2\x1D9\x863\x3\x2\x2\x2\x1DB\x867\x3\x2\x2\x2\x1DD"+ - "\x86B\x3\x2\x2\x2\x1DF\x870\x3\x2\x2\x2\x1E1\x87D\x3\x2\x2\x2\x1E3\x882"+ - "\x3\x2\x2\x2\x1E5\x88D\x3\x2\x2\x2\x1E7\x895\x3\x2\x2\x2\x1E9\x897\x3"+ - "\x2\x2\x2\x1EB\x899\x3\x2\x2\x2\x1ED\x89D\x3\x2\x2\x2\x1EF\x8AE\x3\x2"+ - "\x2\x2\x1F1\x8B0\x3\x2\x2\x2\x1F3\x8B2\x3\x2\x2\x2\x1F5\x8B4\x3\x2\x2"+ - "\x2\x1F7\x8B6\x3\x2\x2\x2\x1F9\x8B8\x3\x2\x2\x2\x1FB\x8BA\x3\x2\x2\x2"+ - "\x1FD\x8BC\x3\x2\x2\x2\x1FF\x8BE\x3\x2\x2\x2\x201\x8C0\x3\x2\x2\x2\x203"+ - "\x8C2\x3\x2\x2\x2\x205\x8C4\x3\x2\x2\x2\x207\x8C6\x3\x2\x2\x2\x209\x8C8"+ - "\x3\x2\x2\x2\x20B\x8CA\x3\x2\x2\x2\x20D\x8CC\x3\x2\x2\x2\x20F\x8CE\x3"+ - "\x2\x2\x2\x211\x8D0\x3\x2\x2\x2\x213\x8D2\x3\x2\x2\x2\x215\x8D4\x3\x2"+ - "\x2\x2\x217\x8D6\x3\x2\x2\x2\x219\x8D8\x3\x2\x2\x2\x21B\x8DA\x3\x2\x2"+ - "\x2\x21D\x8DC\x3\x2\x2\x2\x21F\x8DE\x3\x2\x2\x2\x221\x8E0\x3\x2\x2\x2"+ - "\x223\x8E2\x3\x2\x2\x2\x225\x8E4\x3\x2\x2\x2\x227\x8E6\x3\x2\x2\x2\x229"+ - "\x8E8\x3\x2\x2\x2\x22B\x22C\a\x42\x2\x2\x22C\x4\x3\x2\x2\x2\x22D\x22E"+ - "\a#\x2\x2\x22E\x6\x3\x2\x2\x2\x22F\x230\a%\x2\x2\x230\b\x3\x2\x2\x2\x231"+ - "\x232\a&\x2\x2\x232\n\x3\x2\x2\x2\x233\x234\a\'\x2\x2\x234\f\x3\x2\x2"+ - "\x2\x235\x236\a=\x2\x2\x236\xE\x3\x2\x2\x2\x237\x238\a.\x2\x2\x238\x10"+ - "\x3\x2\x2\x2\x239\x23A\a\x30\x2\x2\x23A\x12\x3\x2\x2\x2\x23B\x23C\x5\x1F7"+ - "\xFC\x2\x23C\x23D\x5\x1FB\xFE\x2\x23D\x23E\x5\x1FB\xFE\x2\x23E\x23F\x5"+ - "\x1FF\x100\x2\x23F\x240\x5\x21B\x10E\x2\x240\x241\x5\x21B\x10E\x2\x241"+ - "\x14\x3\x2\x2\x2\x242\x243\x5\x1F7\xFC\x2\x243\x244\x5\x1FD\xFF\x2\x244"+ - "\x245\x5\x1FD\xFF\x2\x245\x246\x5\x219\x10D\x2\x246\x247\x5\x1FF\x100"+ - "\x2\x247\x248\x5\x21B\x10E\x2\x248\x249\x5\x21B\x10E\x2\x249\x24A\x5\x213"+ - "\x10A\x2\x24A\x24B\x5\x201\x101\x2\x24B\x16\x3\x2\x2\x2\x24C\x24D\x5\x1F7"+ - "\xFC\x2\x24D\x24E\x5\x20D\x107\x2\x24E\x24F\x5\x207\x104\x2\x24F\x250"+ - "\x5\x1F7\xFC\x2\x250\x251\x5\x21B\x10E\x2\x251\x18\x3\x2\x2\x2\x252\x253"+ - "\x5\x1F7\xFC\x2\x253\x254\x5\x211\x109\x2\x254\x255\x5\x1FD\xFF\x2\x255"+ - "\x1A\x3\x2\x2\x2\x256\x257\x5\x1F7\xFC\x2\x257\x258\x5\x21D\x10F\x2\x258"+ - "\x259\x5\x21D\x10F\x2\x259\x25A\x5\x219\x10D\x2\x25A\x25B\x5\x207\x104"+ - "\x2\x25B\x25C\x5\x1F9\xFD\x2\x25C\x25D\x5\x21F\x110\x2\x25D\x25E\x5\x21D"+ - "\x10F\x2\x25E\x25F\x5\x1FF\x100\x2\x25F\x1C\x3\x2\x2\x2\x260\x261\x5\x1F7"+ - "\xFC\x2\x261\x262\x5\x215\x10B\x2\x262\x263\x5\x215\x10B\x2\x263\x264"+ - "\x5\x1F7\xFC\x2\x264\x265\x5\x1FB\xFE\x2\x265\x266\x5\x21D\x10F\x2\x266"+ - "\x267\x5\x207\x104\x2\x267\x268\x5\x221\x111\x2\x268\x269\x5\x1F7\xFC"+ - "\x2\x269\x26A\x5\x21D\x10F\x2\x26A\x26B\x5\x1FF\x100\x2\x26B\x1E\x3\x2"+ - "\x2\x2\x26C\x26D\x5\x1F7\xFC\x2\x26D\x26E\x5\x215\x10B\x2\x26E\x26F\x5"+ - "\x215\x10B\x2\x26F\x270\x5\x1FF\x100\x2\x270\x271\x5\x211\x109\x2\x271"+ - "\x272\x5\x1FD\xFF\x2\x272 \x3\x2\x2\x2\x273\x274\x5\x1F7\xFC\x2\x274\x275"+ - "\x5\x21B\x10E\x2\x275\"\x3\x2\x2\x2\x276\x277\x5\x1F9\xFD\x2\x277\x278"+ - "\x5\x1FF\x100\x2\x278\x279\x5\x203\x102\x2\x279\x27A\x5\x207\x104\x2\x27A"+ - "\x27B\x5\x211\x109\x2\x27B$\x3\x2\x2\x2\x27C\x27D\x5\x1F9\xFD\x2\x27D"+ - "\x27E\x5\x1FF\x100\x2\x27E\x27F\x5\x1FF\x100\x2\x27F\x280\x5\x215\x10B"+ - "\x2\x280&\x3\x2\x2\x2\x281\x282\x5\x1F9\xFD\x2\x282\x283\x5\x207\x104"+ - "\x2\x283\x284\x5\x211\x109\x2\x284\x285\x5\x1F7\xFC\x2\x285\x286\x5\x219"+ - "\x10D\x2\x286\x287\x5\x227\x114\x2\x287(\x3\x2\x2\x2\x288\x289\x5\x1F9"+ - "\xFD\x2\x289\x28A\x5\x213\x10A\x2\x28A\x28B\x5\x213\x10A\x2\x28B\x28C"+ - "\x5\x20D\x107\x2\x28C\x28D\x5\x1FF\x100\x2\x28D\x28E\x5\x1F7\xFC\x2\x28E"+ - "\x28F\x5\x211\x109\x2\x28F*\x3\x2\x2\x2\x290\x291\x5\x1F9\xFD\x2\x291"+ - "\x292\x5\x227\x114\x2\x292\x293\x5\x221\x111\x2\x293\x294\x5\x1F7\xFC"+ - "\x2\x294\x295\x5\x20D\x107\x2\x295,\x3\x2\x2\x2\x296\x297\x5\x1F9\xFD"+ - "\x2\x297\x298\x5\x227\x114\x2\x298\x299\x5\x219\x10D\x2\x299\x29A\x5\x1FF"+ - "\x100\x2\x29A\x29B\x5\x201\x101\x2\x29B.\x3\x2\x2\x2\x29C\x29D\x5\x1F9"+ - "\xFD\x2\x29D\x29E\x5\x227\x114\x2\x29E\x29F\x5\x21D\x10F\x2\x29F\x2A0"+ - "\x5\x1FF\x100\x2\x2A0\x30\x3\x2\x2\x2\x2A1\x2A2\x5\x1FB\xFE\x2\x2A2\x2A3"+ - "\x5\x1F7\xFC\x2\x2A3\x2A4\x5\x20D\x107\x2\x2A4\x2A5\x5\x20D\x107\x2\x2A5"+ - "\x32\x3\x2\x2\x2\x2A6\x2A7\x5\x1FB\xFE\x2\x2A7\x2A8\x5\x1F7\xFC\x2\x2A8"+ - "\x2A9\x5\x21B\x10E\x2\x2A9\x2AA\x5\x1FF\x100\x2\x2AA\x34\x3\x2\x2\x2\x2AB"+ - "\x2AC\x5\x1FB\xFE\x2\x2AC\x2AD\x5\x205\x103\x2\x2AD\x2AE\x5\x1FD\xFF\x2"+ - "\x2AE\x2AF\x5\x207\x104\x2\x2AF\x2B0\x5\x219\x10D\x2\x2B0\x36\x3\x2\x2"+ - "\x2\x2B1\x2B2\x5\x1FB\xFE\x2\x2B2\x2B3\x5\x205\x103\x2\x2B3\x2B4\x5\x1FD"+ - "\xFF\x2\x2B4\x2B5\x5\x219\x10D\x2\x2B5\x2B6\x5\x207\x104\x2\x2B6\x2B7"+ - "\x5\x221\x111\x2\x2B7\x2B8\x5\x1FF\x100\x2\x2B8\x38\x3\x2\x2\x2\x2B9\x2BA"+ - "\x5\x1FB\xFE\x2\x2BA\x2BB\x5\x20D\x107\x2\x2BB\x2BC\x5\x1F7\xFC\x2\x2BC"+ - "\x2BD\x5\x21B\x10E\x2\x2BD\x2BE\x5\x21B\x10E\x2\x2BE:\x3\x2\x2\x2\x2BF"+ - "\x2C0\x5\x1FB\xFE\x2\x2C0\x2C1\x5\x20D\x107\x2\x2C1\x2C2\x5\x213\x10A"+ - "\x2\x2C2\x2C3\x5\x21B\x10E\x2\x2C3\x2C4\x5\x1FF\x100\x2\x2C4<\x3\x2\x2"+ - "\x2\x2C5\x2C6\x5\x1FB\xFE\x2\x2C6\x2C7\x5\x213\x10A\x2\x2C7\x2C8\x5\x20D"+ - "\x107\x2\x2C8\x2C9\x5\x20D\x107\x2\x2C9\x2CA\x5\x1FF\x100\x2\x2CA\x2CB"+ - "\x5\x1FB\xFE\x2\x2CB\x2CC\x5\x21D\x10F\x2\x2CC\x2CD\x5\x207\x104\x2\x2CD"+ - "\x2CE\x5\x213\x10A\x2\x2CE\x2CF\x5\x211\x109\x2\x2CF>\x3\x2\x2\x2\x2D0"+ - "\x2D1\x5\x1FB\xFE\x2\x2D1\x2D2\x5\x213\x10A\x2\x2D2\x2D3\x5\x211\x109"+ - "\x2\x2D3\x2D4\x5\x21B\x10E\x2\x2D4\x2D5\x5\x21D\x10F\x2\x2D5@\x3\x2\x2"+ - "\x2\x2D6\x2D7\x5\x1FD\xFF\x2\x2D7\x2D8\x5\x1F7\xFC\x2\x2D8\x2D9\x5\x21D"+ - "\x10F\x2\x2D9\x2DA\x5\x1F7\xFC\x2\x2DA\x2DB\x5\x1F9\xFD\x2\x2DB\x2DC\x5"+ - "\x1F7\xFC\x2\x2DC\x2DD\x5\x21B\x10E\x2\x2DD\x2DE\x5\x1FF\x100\x2\x2DE"+ - "\x42\x3\x2\x2\x2\x2DF\x2E0\x5\x1FD\xFF\x2\x2E0\x2E1\x5\x1F7\xFC\x2\x2E1"+ - "\x2E2\x5\x21D\x10F\x2\x2E2\x2E3\x5\x1FF\x100\x2\x2E3\x44\x3\x2\x2\x2\x2E4"+ - "\x2E5\x5\x1FD\xFF\x2\x2E5\x2E6\x5\x1FF\x100\x2\x2E6\x2E7\x5\x1FB\xFE\x2"+ - "\x2E7\x2E8\x5\x20D\x107\x2\x2E8\x2E9\x5\x1F7\xFC\x2\x2E9\x2EA\x5\x219"+ - "\x10D\x2\x2EA\x2EB\x5\x1FF\x100\x2\x2EB\x46\x3\x2\x2\x2\x2EC\x2ED\x5\x1FD"+ - "\xFF\x2\x2ED\x2EE\x5\x1FF\x100\x2\x2EE\x2EF\x5\x201\x101\x2\x2EF\x2F0"+ - "\x5\x1F9\xFD\x2\x2F0\x2F1\x5\x213\x10A\x2\x2F1\x2F2\x5\x213\x10A\x2\x2F2"+ - "\x2F3\x5\x20D\x107\x2\x2F3H\x3\x2\x2\x2\x2F4\x2F5\x5\x1FD\xFF\x2\x2F5"+ - "\x2F6\x5\x1FF\x100\x2\x2F6\x2F7\x5\x201\x101\x2\x2F7\x2F8\x5\x1F9\xFD"+ - "\x2\x2F8\x2F9\x5\x227\x114\x2\x2F9\x2FA\x5\x21D\x10F\x2\x2FA\x2FB\x5\x1FF"+ - "\x100\x2\x2FBJ\x3\x2\x2\x2\x2FC\x2FD\x5\x1FD\xFF\x2\x2FD\x2FE\x5\x1FF"+ - "\x100\x2\x2FE\x2FF\x5\x201\x101\x2\x2FF\x300\x5\x1FD\xFF\x2\x300\x301"+ - "\x5\x1F7\xFC\x2\x301\x302\x5\x21D\x10F\x2\x302\x303\x5\x1FF\x100\x2\x303"+ - "L\x3\x2\x2\x2\x304\x305\x5\x1FD\xFF\x2\x305\x306\x5\x1FF\x100\x2\x306"+ - "\x307\x5\x201\x101\x2\x307\x308\x5\x1FD\xFF\x2\x308\x309\x5\x1F9\xFD\x2"+ - "\x309\x30A\x5\x20D\x107\x2\x30AN\x3\x2\x2\x2\x30B\x30C\x5\x1FD\xFF\x2"+ - "\x30C\x30D\x5\x1FF\x100\x2\x30D\x30E\x5\x201\x101\x2\x30E\x30F\x5\x1FD"+ - "\xFF\x2\x30F\x310\x5\x1FF\x100\x2\x310\x311\x5\x1FB\xFE\x2\x311P\x3\x2"+ - "\x2\x2\x312\x313\x5\x1FD\xFF\x2\x313\x314\x5\x1FF\x100\x2\x314\x315\x5"+ - "\x201\x101\x2\x315\x316\x5\x1FB\xFE\x2\x316\x317\x5\x21F\x110\x2\x317"+ - "\x318\x5\x219\x10D\x2\x318R\x3\x2\x2\x2\x319\x31A\x5\x1FD\xFF\x2\x31A"+ - "\x31B\x5\x1FF\x100\x2\x31B\x31C\x5\x201\x101\x2\x31C\x31D\x5\x207\x104"+ - "\x2\x31D\x31E\x5\x211\x109\x2\x31E\x31F\x5\x21D\x10F\x2\x31FT\x3\x2\x2"+ - "\x2\x320\x321\x5\x1FD\xFF\x2\x321\x322\x5\x1FF\x100\x2\x322\x323\x5\x201"+ - "\x101\x2\x323\x324\x5\x20D\x107\x2\x324\x325\x5\x211\x109\x2\x325\x326"+ - "\x5\x203\x102\x2\x326V\x3\x2\x2\x2\x327\x328\x5\x1FD\xFF\x2\x328\x329"+ - "\x5\x1FF\x100\x2\x329\x32A\x5\x201\x101\x2\x32A\x32B\x5\x213\x10A\x2\x32B"+ - "\x32C\x5\x1F9\xFD\x2\x32C\x32D\x5\x209\x105\x2\x32DX\x3\x2\x2\x2\x32E"+ - "\x32F\x5\x1FD\xFF\x2\x32F\x330\x5\x1FF\x100\x2\x330\x331\x5\x201\x101"+ - "\x2\x331\x332\x5\x21B\x10E\x2\x332\x333\x5\x211\x109\x2\x333\x334\x5\x203"+ - "\x102\x2\x334Z\x3\x2\x2\x2\x335\x336\x5\x1FD\xFF\x2\x336\x337\x5\x1FF"+ - "\x100\x2\x337\x338\x5\x201\x101\x2\x338\x339\x5\x21B\x10E\x2\x339\x33A"+ - "\x5\x21D\x10F\x2\x33A\x33B\x5\x219\x10D\x2\x33B\\\x3\x2\x2\x2\x33C\x33D"+ - "\x5\x1FD\xFF\x2\x33D\x33E\x5\x1FF\x100\x2\x33E\x33F\x5\x201\x101\x2\x33F"+ - "\x340\x5\x221\x111\x2\x340\x341\x5\x1F7\xFC\x2\x341\x342\x5\x219\x10D"+ - "\x2\x342^\x3\x2\x2\x2\x343\x344\x5\x1FD\xFF\x2\x344\x345\x5\x1FF\x100"+ - "\x2\x345\x346\x5\x20D\x107\x2\x346\x347\x5\x1FF\x100\x2\x347\x348\x5\x21D"+ - "\x10F\x2\x348\x349\x5\x1FF\x100\x2\x349\x34A\x5\x21B\x10E\x2\x34A\x34B"+ - "\x5\x1FF\x100\x2\x34B\x34C\x5\x21D\x10F\x2\x34C\x34D\x5\x21D\x10F\x2\x34D"+ - "\x34E\x5\x207\x104\x2\x34E\x34F\x5\x211\x109\x2\x34F\x350\x5\x203\x102"+ - "\x2\x350`\x3\x2\x2\x2\x351\x352\x5\x1FD\xFF\x2\x352\x353\x5\x207\x104"+ - "\x2\x353\x354\x5\x20F\x108\x2\x354\x62\x3\x2\x2\x2\x355\x356\x5\x1FD\xFF"+ - "\x2\x356\x357\x5\x213\x10A\x2\x357\x64\x3\x2\x2\x2\x358\x359\x5\x1FD\xFF"+ - "\x2\x359\x35A\x5\x213\x10A\x2\x35A\x35B\x5\x21F\x110\x2\x35B\x35C\x5\x1F9"+ - "\xFD\x2\x35C\x35D\x5\x20D\x107\x2\x35D\x35E\x5\x1FF\x100\x2\x35E\x66\x3"+ - "\x2\x2\x2\x35F\x360\x5\x1FF\x100\x2\x360\x361\x5\x1F7\xFC\x2\x361\x362"+ - "\x5\x1FB\xFE\x2\x362\x363\x5\x205\x103\x2\x363h\x3\x2\x2\x2\x364\x365"+ - "\x5\x1FF\x100\x2\x365\x366\x5\x20D\x107\x2\x366\x367\x5\x21B\x10E\x2\x367"+ - "\x368\x5\x1FF\x100\x2\x368j\x3\x2\x2\x2\x369\x36A\x5\x1FF\x100\x2\x36A"+ - "\x36B\x5\x20D\x107\x2\x36B\x36C\x5\x21B\x10E\x2\x36C\x36D\x5\x1FF\x100"+ - "\x2\x36D\x36E\x5\x207\x104\x2\x36E\x36F\x5\x201\x101\x2\x36Fl\x3\x2\x2"+ - "\x2\x370\x371\x5\x1FF\x100\x2\x371\x372\x5\x211\x109\x2\x372\x373\x5\x1FD"+ - "\xFF\x2\x373\x374\x5\x1ED\xF7\x2\x374\x375\x5\x1FF\x100\x2\x375\x376\x5"+ - "\x211\x109\x2\x376\x377\x5\x21F\x110\x2\x377\x378\x5\x20F\x108\x2\x378"+ - "n\x3\x2\x2\x2\x379\x37A\x5\x1FF\x100\x2\x37A\x37B\x5\x211\x109\x2\x37B"+ - "\x37C\x5\x1FD\xFF\x2\x37C\x37D\x5\x1ED\xF7\x2\x37D\x37E\x5\x201\x101\x2"+ - "\x37E\x37F\x5\x21F\x110\x2\x37F\x380\x5\x211\x109\x2\x380\x381\x5\x1FB"+ - "\xFE\x2\x381\x382\x5\x21D\x10F\x2\x382\x383\x5\x207\x104\x2\x383\x384"+ - "\x5\x213\x10A\x2\x384\x385\x5\x211\x109\x2\x385p\x3\x2\x2\x2\x386\x387"+ - "\x5\x1FF\x100\x2\x387\x388\x5\x211\x109\x2\x388\x389\x5\x1FD\xFF\x2\x389"+ - "\x38A\x5\x1ED\xF7\x2\x38A\x38B\x5\x207\x104\x2\x38B\x38C\x5\x201\x101"+ - "\x2\x38Cr\x3\x2\x2\x2\x38D\x38E\x5\x1FF\x100\x2\x38E\x38F\x5\x211\x109"+ - "\x2\x38F\x390\x5\x1FD\xFF\x2\x390\x391\x5\x1ED\xF7\x2\x391\x392\x5\x215"+ - "\x10B\x2\x392\x393\x5\x219\x10D\x2\x393\x394\x5\x213\x10A\x2\x394\x395"+ - "\x5\x215\x10B\x2\x395\x396\x5\x1FF\x100\x2\x396\x397\x5\x219\x10D\x2\x397"+ - "\x398\x5\x21D\x10F\x2\x398\x399\x5\x227\x114\x2\x399t\x3\x2\x2\x2\x39A"+ - "\x39B\x5\x1FF\x100\x2\x39B\x39C\x5\x211\x109\x2\x39C\x39D\x5\x1FD\xFF"+ - "\x2\x39D\x39E\x5\x1ED\xF7\x2\x39E\x39F\x5\x21B\x10E\x2\x39F\x3A0\x5\x1FF"+ - "\x100\x2\x3A0\x3A1\x5\x20D\x107\x2\x3A1\x3A2\x5\x1FF\x100\x2\x3A2\x3A3"+ - "\x5\x1FB\xFE\x2\x3A3\x3A4\x5\x21D\x10F\x2\x3A4v\x3\x2\x2\x2\x3A5\x3A6"+ - "\x5\x1FF\x100\x2\x3A6\x3A7\x5\x211\x109\x2\x3A7\x3A8\x5\x1FD\xFF\x2\x3A8"+ - "\x3A9\x5\x1ED\xF7\x2\x3A9\x3AA\x5\x21B\x10E\x2\x3AA\x3AB\x5\x21F\x110"+ - "\x2\x3AB\x3AC\x5\x1F9\xFD\x2\x3ACx\x3\x2\x2\x2\x3AD\x3AE\x5\x1FF\x100"+ - "\x2\x3AE\x3AF\x5\x211\x109\x2\x3AF\x3B0\x5\x1FD\xFF\x2\x3B0\x3B1\x5\x1ED"+ - "\xF7\x2\x3B1\x3B2\x5\x21D\x10F\x2\x3B2\x3B3\x5\x227\x114\x2\x3B3\x3B4"+ - "\x5\x215\x10B\x2\x3B4\x3B5\x5\x1FF\x100\x2\x3B5z\x3\x2\x2\x2\x3B6\x3B7"+ - "\x5\x1FF\x100\x2\x3B7\x3B8\x5\x211\x109\x2\x3B8\x3B9\x5\x1FD\xFF\x2\x3B9"+ - "\x3BA\x5\x1ED\xF7\x2\x3BA\x3BB\x5\x223\x112\x2\x3BB\x3BC\x5\x207\x104"+ - "\x2\x3BC\x3BD\x5\x21D\x10F\x2\x3BD\x3BE\x5\x205\x103\x2\x3BE|\x3\x2\x2"+ - "\x2\x3BF\x3C0\x5\x1FF\x100\x2\x3C0\x3C1\x5\x211\x109\x2\x3C1\x3C2\x5\x1FD"+ - "\xFF\x2\x3C2~\x3\x2\x2\x2\x3C3\x3C4\x5\x1FF\x100\x2\x3C4\x3C5\x5\x211"+ - "\x109\x2\x3C5\x3C6\x5\x21F\x110\x2\x3C6\x3C7\x5\x20F\x108\x2\x3C7\x80"+ - "\x3\x2\x2\x2\x3C8\x3C9\x5\x1FF\x100\x2\x3C9\x3CA\x5\x217\x10C\x2\x3CA"+ - "\x3CB\x5\x221\x111\x2\x3CB\x82\x3\x2\x2\x2\x3CC\x3CD\x5\x1FF\x100\x2\x3CD"+ - "\x3CE\x5\x219\x10D\x2\x3CE\x3CF\x5\x1F7\xFC\x2\x3CF\x3D0\x5\x21B\x10E"+ - "\x2\x3D0\x3D1\x5\x1FF\x100\x2\x3D1\x84\x3\x2\x2\x2\x3D2\x3D3\x5\x1FF\x100"+ - "\x2\x3D3\x3D4\x5\x219\x10D\x2\x3D4\x3D5\x5\x219\x10D\x2\x3D5\x3D6\x5\x213"+ - "\x10A\x2\x3D6\x3D7\x5\x219\x10D\x2\x3D7\x86\x3\x2\x2\x2\x3D8\x3D9\x5\x1FF"+ - "\x100\x2\x3D9\x3DA\x5\x221\x111\x2\x3DA\x3DB\x5\x1FF\x100\x2\x3DB\x3DC"+ - "\x5\x211\x109\x2\x3DC\x3DD\x5\x21D\x10F\x2\x3DD\x88\x3\x2\x2\x2\x3DE\x3DF"+ - "\x5\x1FF\x100\x2\x3DF\x3E0\x5\x225\x113\x2\x3E0\x3E1\x5\x207\x104\x2\x3E1"+ - "\x3E2\x5\x21D\x10F\x2\x3E2\x3E3\x5\x1ED\xF7\x2\x3E3\x3E4\x5\x1FD\xFF\x2"+ - "\x3E4\x3E5\x5\x213\x10A\x2\x3E5\x8A\x3\x2\x2\x2\x3E6\x3E7\x5\x1FF\x100"+ - "\x2\x3E7\x3E8\x5\x225\x113\x2\x3E8\x3E9\x5\x207\x104\x2\x3E9\x3EA\x5\x21D"+ - "\x10F\x2\x3EA\x3EB\x5\x1ED\xF7\x2\x3EB\x3EC\x5\x201\x101\x2\x3EC\x3ED"+ - "\x5\x213\x10A\x2\x3ED\x3EE\x5\x219\x10D\x2\x3EE\x8C\x3\x2\x2\x2\x3EF\x3F0"+ - "\x5\x1FF\x100\x2\x3F0\x3F1\x5\x225\x113\x2\x3F1\x3F2\x5\x207\x104\x2\x3F2"+ - "\x3F3\x5\x21D\x10F\x2\x3F3\x3F4\x5\x1ED\xF7\x2\x3F4\x3F5\x5\x201\x101"+ - "\x2\x3F5\x3F6\x5\x21F\x110\x2\x3F6\x3F7\x5\x211\x109\x2\x3F7\x3F8\x5\x1FB"+ - "\xFE\x2\x3F8\x3F9\x5\x21D\x10F\x2\x3F9\x3FA\x5\x207\x104\x2\x3FA\x3FB"+ - "\x5\x213\x10A\x2\x3FB\x3FC\x5\x211\x109\x2\x3FC\x8E\x3\x2\x2\x2\x3FD\x3FE"+ - "\x5\x1FF\x100\x2\x3FE\x3FF\x5\x225\x113\x2\x3FF\x400\x5\x207\x104\x2\x400"+ - "\x401\x5\x21D\x10F\x2\x401\x402\x5\x1ED\xF7\x2\x402\x403\x5\x215\x10B"+ - "\x2\x403\x404\x5\x219\x10D\x2\x404\x405\x5\x213\x10A\x2\x405\x406\x5\x215"+ - "\x10B\x2\x406\x407\x5\x1FF\x100\x2\x407\x408\x5\x219\x10D\x2\x408\x409"+ - "\x5\x21D\x10F\x2\x409\x40A\x5\x227\x114\x2\x40A\x90\x3\x2\x2\x2\x40B\x40C"+ - "\x5\x1FF\x100\x2\x40C\x40D\x5\x225\x113\x2\x40D\x40E\x5\x207\x104\x2\x40E"+ - "\x40F\x5\x21D\x10F\x2\x40F\x410\x5\x1ED\xF7\x2\x410\x411\x5\x21B\x10E"+ - "\x2\x411\x412\x5\x21F\x110\x2\x412\x413\x5\x1F9\xFD\x2\x413\x92\x3\x2"+ - "\x2\x2\x414\x415\x5\x201\x101\x2\x415\x416\x5\x1F7\xFC\x2\x416\x417\x5"+ - "\x20D\x107\x2\x417\x418\x5\x21B\x10E\x2\x418\x419\x5\x1FF\x100\x2\x419"+ - "\x94\x3\x2\x2\x2\x41A\x41B\x5\x201\x101\x2\x41B\x41C\x5\x207\x104\x2\x41C"+ - "\x41D\x5\x20D\x107\x2\x41D\x41E\x5\x1FF\x100\x2\x41E\x41F\x5\x1FB\xFE"+ - "\x2\x41F\x420\x5\x213\x10A\x2\x420\x421\x5\x215\x10B\x2\x421\x422\x5\x227"+ - "\x114\x2\x422\x96\x3\x2\x2\x2\x423\x424\x5\x201\x101\x2\x424\x425\x5\x219"+ - "\x10D\x2\x425\x426\x5\x207\x104\x2\x426\x427\x5\x1FF\x100\x2\x427\x428"+ - "\x5\x211\x109\x2\x428\x429\x5\x1FD\xFF\x2\x429\x98\x3\x2\x2\x2\x42A\x42B"+ - "\x5\x201\x101\x2\x42B\x42C\x5\x213\x10A\x2\x42C\x42D\x5\x219\x10D\x2\x42D"+ - "\x9A\x3\x2\x2\x2\x42E\x42F\x5\x201\x101\x2\x42F\x430\x5\x21F\x110\x2\x430"+ - "\x431\x5\x211\x109\x2\x431\x432\x5\x1FB\xFE\x2\x432\x433\x5\x21D\x10F"+ - "\x2\x433\x434\x5\x207\x104\x2\x434\x435\x5\x213\x10A\x2\x435\x436\x5\x211"+ - "\x109\x2\x436\x9C\x3\x2\x2\x2\x437\x438\x5\x203\x102\x2\x438\x439\x5\x1FF"+ - "\x100\x2\x439\x43A\x5\x21D\x10F\x2\x43A\x9E\x3\x2\x2\x2\x43B\x43C\x5\x203"+ - "\x102\x2\x43C\x43D\x5\x20D\x107\x2\x43D\x43E\x5\x213\x10A\x2\x43E\x43F"+ - "\x5\x1F9\xFD\x2\x43F\x440\x5\x1F7\xFC\x2\x440\x441\x5\x20D\x107\x2\x441"+ - "\xA0\x3\x2\x2\x2\x442\x443\x5\x203\x102\x2\x443\x444\x5\x213\x10A\x2\x444"+ - "\x445\x5\x21B\x10E\x2\x445\x446\x5\x21F\x110\x2\x446\x447\x5\x1F9\xFD"+ - "\x2\x447\xA2\x3\x2\x2\x2\x448\x449\x5\x203\x102\x2\x449\x44A\x5\x213\x10A"+ - "\x2\x44A\x44B\x5\x21D\x10F\x2\x44B\x44C\x5\x213\x10A\x2\x44C\xA4\x3\x2"+ - "\x2\x2\x44D\x44E\x5\x207\x104\x2\x44E\x44F\x5\x201\x101\x2\x44F\xA6\x3"+ - "\x2\x2\x2\x450\x451\x5\x207\x104\x2\x451\x452\x5\x20F\x108\x2\x452\x453"+ - "\x5\x215\x10B\x2\x453\xA8\x3\x2\x2\x2\x454\x455\x5\x207\x104\x2\x455\x456"+ - "\x5\x20F\x108\x2\x456\x457\x5\x215\x10B\x2\x457\x458\x5\x20D\x107\x2\x458"+ - "\x459\x5\x1FF\x100\x2\x459\x45A\x5\x20F\x108\x2\x45A\x45B\x5\x1FF\x100"+ - "\x2\x45B\x45C\x5\x211\x109\x2\x45C\x45D\x5\x21D\x10F\x2\x45D\x45E\x5\x21B"+ - "\x10E\x2\x45E\xAA\x3\x2\x2\x2\x45F\x460\x5\x207\x104\x2\x460\x461\x5\x211"+ - "\x109\x2\x461\xAC\x3\x2\x2\x2\x462\x463\x5\x207\x104\x2\x463\x464\x5\x211"+ - "\x109\x2\x464\x465\x5\x215\x10B\x2\x465\x466\x5\x21F\x110\x2\x466\x467"+ - "\x5\x21D\x10F\x2\x467\xAE\x3\x2\x2\x2\x468\x469\x5\x207\x104\x2\x469\x46A"+ - "\x5\x21B\x10E\x2\x46A\xB0\x3\x2\x2\x2\x46B\x46C\x5\x207\x104\x2\x46C\x46D"+ - "\x5\x211\x109\x2\x46D\x46E\x5\x21D\x10F\x2\x46E\x46F\x5\x1FF\x100\x2\x46F"+ - "\x470\x5\x203\x102\x2\x470\x471\x5\x1FF\x100\x2\x471\x472\x5\x219\x10D"+ - "\x2\x472\xB2\x3\x2\x2\x2\x473\x474\x5\x20B\x106\x2\x474\x475\x5\x207\x104"+ - "\x2\x475\x476\x5\x20D\x107\x2\x476\x477\x5\x20D\x107\x2\x477\xB4\x3\x2"+ - "\x2\x2\x478\x479\x5\x20D\x107\x2\x479\x47A\x5\x213\x10A\x2\x47A\x47B\x5"+ - "\x1F7\xFC\x2\x47B\x47C\x5\x1FD\xFF\x2\x47C\xB6\x3\x2\x2\x2\x47D\x47E\x5"+ - "\x20D\x107\x2\x47E\x47F\x5\x213\x10A\x2\x47F\x480\x5\x1FB\xFE\x2\x480"+ - "\x481\x5\x20B\x106\x2\x481\xB8\x3\x2\x2\x2\x482\x483\x5\x20D\x107\x2\x483"+ - "\x484\x5\x213\x10A\x2\x484\x485\x5\x211\x109\x2\x485\x486\x5\x203\x102"+ - "\x2\x486\xBA\x3\x2\x2\x2\x487\x488\x5\x20D\x107\x2\x488\x489\x5\x213\x10A"+ - "\x2\x489\x48A\x5\x213\x10A\x2\x48A\x48B\x5\x215\x10B\x2\x48B\xBC\x3\x2"+ - "\x2\x2\x48C\x48D\x5\x20D\x107\x2\x48D\x48E\x5\x1FF\x100\x2\x48E\x48F\x5"+ - "\x211\x109\x2\x48F\xBE\x3\x2\x2\x2\x490\x491\x5\x20D\x107\x2\x491\x492"+ - "\x5\x1FF\x100\x2\x492\x493\x5\x21D\x10F\x2\x493\xC0\x3\x2\x2\x2\x494\x495"+ - "\x5\x20D\x107\x2\x495\x496\x5\x207\x104\x2\x496\x497\x5\x1F9\xFD\x2\x497"+ - "\xC2\x3\x2\x2\x2\x498\x499\x5\x20D\x107\x2\x499\x49A\x5\x207\x104\x2\x49A"+ - "\x49B\x5\x20B\x106\x2\x49B\x49C\x5\x1FF\x100\x2\x49C\xC4\x3\x2\x2\x2\x49D"+ - "\x49E\x5\x20D\x107\x2\x49E\x49F\x5\x207\x104\x2\x49F\x4A0\x5\x211\x109"+ - "\x2\x4A0\x4A1\x5\x1FF\x100\x2\x4A1\x4A2\x5\x1ED\xF7\x2\x4A2\x4A3\x5\x207"+ - "\x104\x2\x4A3\x4A4\x5\x211\x109\x2\x4A4\x4A5\x5\x215\x10B\x2\x4A5\x4A6"+ - "\x5\x21F\x110\x2\x4A6\x4A7\x5\x21D\x10F\x2\x4A7\xC6\x3\x2\x2\x2\x4A8\x4A9"+ - "\x5\x20D\x107\x2\x4A9\x4AA\x5\x213\x10A\x2\x4AA\x4AB\x5\x1FB\xFE\x2\x4AB"+ - "\x4AC\x5\x20B\x106\x2\x4AC\x4AD\x5\x1ED\xF7\x2\x4AD\x4AE\x5\x219\x10D"+ - "\x2\x4AE\x4AF\x5\x1FF\x100\x2\x4AF\x4B0\x5\x1F7\xFC\x2\x4B0\x4B1\x5\x1FD"+ - "\xFF\x2\x4B1\xC8\x3\x2\x2\x2\x4B2\x4B3\x5\x20D\x107\x2\x4B3\x4B4\x5\x213"+ - "\x10A\x2\x4B4\x4B5\x5\x1FB\xFE\x2\x4B5\x4B6\x5\x20B\x106\x2\x4B6\x4B7"+ - "\x5\x1ED\xF7\x2\x4B7\x4B8\x5\x223\x112\x2\x4B8\x4B9\x5\x219\x10D\x2\x4B9"+ - "\x4BA\x5\x207\x104\x2\x4BA\x4BB\x5\x21D\x10F\x2\x4BB\x4BC\x5\x1FF\x100"+ - "\x2\x4BC\xCA\x3\x2\x2\x2\x4BD\x4BE\x5\x20D\x107\x2\x4BE\x4BF\x5\x213\x10A"+ - "\x2\x4BF\x4C0\x5\x1FB\xFE\x2\x4C0\x4C1\x5\x20B\x106\x2\x4C1\x4C2\x5\x1ED"+ - "\xF7\x2\x4C2\x4C3\x5\x219\x10D\x2\x4C3\x4C4\x5\x1FF\x100\x2\x4C4\x4C5"+ - "\x5\x1F7\xFC\x2\x4C5\x4C6\x5\x1FD\xFF\x2\x4C6\x4C7\x5\x1ED\xF7\x2\x4C7"+ - "\x4C8\x5\x223\x112\x2\x4C8\x4C9\x5\x219\x10D\x2\x4C9\x4CA\x5\x207\x104"+ - "\x2\x4CA\x4CB\x5\x21D\x10F\x2\x4CB\x4CC\x5\x1FF\x100\x2\x4CC\xCC\x3\x2"+ - "\x2\x2\x4CD\x4CE\x5\x20D\x107\x2\x4CE\x4CF\x5\x21B\x10E\x2\x4CF\x4D0\x5"+ - "\x1FF\x100\x2\x4D0\x4D1\x5\x21D\x10F\x2\x4D1\xCE\x3\x2\x2\x2\x4D2\x4D3"+ - "\x5\x20F\x108\x2\x4D3\x4D4\x5\x1FF\x100\x2\x4D4\xD0\x3\x2\x2\x2\x4D5\x4D6"+ - "\x5\x20F\x108\x2\x4D6\x4D7\x5\x207\x104\x2\x4D7\x4D8\x5\x1FD\xFF\x2\x4D8"+ - "\xD2\x3\x2\x2\x2\x4D9\x4DA\x5\x20F\x108\x2\x4DA\x4DB\x5\x20B\x106\x2\x4DB"+ - "\x4DC\x5\x1FD\xFF\x2\x4DC\x4DD\x5\x207\x104\x2\x4DD\x4DE\x5\x219\x10D"+ - "\x2\x4DE\xD4\x3\x2\x2\x2\x4DF\x4E0\x5\x20F\x108\x2\x4E0\x4E1\x5\x213\x10A"+ - "\x2\x4E1\x4E2\x5\x1FD\xFF\x2\x4E2\xD6\x3\x2\x2\x2\x4E3\x4E4\x5\x211\x109"+ - "\x2\x4E4\x4E5\x5\x1F7\xFC\x2\x4E5\x4E6\x5\x20F\x108\x2\x4E6\x4E7\x5\x1FF"+ - "\x100\x2\x4E7\xD8\x3\x2\x2\x2\x4E8\x4E9\x5\x211\x109\x2\x4E9\x4EA\x5\x1FF"+ - "\x100\x2\x4EA\x4EB\x5\x225\x113\x2\x4EB\x4EC\x5\x21D\x10F\x2\x4EC\xDA"+ - "\x3\x2\x2\x2\x4ED\x4EE\x5\x211\x109\x2\x4EE\x4EF\x5\x1FF\x100\x2\x4EF"+ - "\x4F0\x5\x223\x112\x2\x4F0\xDC\x3\x2\x2\x2\x4F1\x4F2\x5\x211\x109\x2\x4F2"+ - "\x4F3\x5\x213\x10A\x2\x4F3\x4F4\x5\x21D\x10F\x2\x4F4\xDE\x3\x2\x2\x2\x4F5"+ - "\x4F6\x5\x211\x109\x2\x4F6\x4F7\x5\x213\x10A\x2\x4F7\x4F8\x5\x21D\x10F"+ - "\x2\x4F8\x4F9\x5\x205\x103\x2\x4F9\x4FA\x5\x207\x104\x2\x4FA\x4FB\x5\x211"+ - "\x109\x2\x4FB\x4FC\x5\x203\x102\x2\x4FC\xE0\x3\x2\x2\x2\x4FD\x4FE\x5\x211"+ - "\x109\x2\x4FE\x4FF\x5\x21F\x110\x2\x4FF\x500\x5\x20D\x107\x2\x500\x501"+ - "\x5\x20D\x107\x2\x501\xE2\x3\x2\x2\x2\x502\x503\x5\x213\x10A\x2\x503\x504"+ - "\x5\x211\x109\x2\x504\xE4\x3\x2\x2\x2\x505\x506\x5\x213\x10A\x2\x506\x507"+ - "\x5\x211\x109\x2\x507\x508\x5\x1ED\xF7\x2\x508\x509\x5\x1FF\x100\x2\x509"+ - "\x50A\x5\x219\x10D\x2\x50A\x50B\x5\x219\x10D\x2\x50B\x50C\x5\x213\x10A"+ - "\x2\x50C\x50D\x5\x219\x10D\x2\x50D\xE6\x3\x2\x2\x2\x50E\x50F\x5\x213\x10A"+ - "\x2\x50F\x510\x5\x211\x109\x2\x510\x511\x5\x1ED\xF7\x2\x511\x512\x5\x20D"+ - "\x107\x2\x512\x513\x5\x213\x10A\x2\x513\x514\x5\x1FB\xFE\x2\x514\x515"+ - "\x5\x1F7\xFC\x2\x515\x516\x5\x20D\x107\x2\x516\x517\x5\x1ED\xF7\x2\x517"+ - "\x518\x5\x1FF\x100\x2\x518\x519\x5\x219\x10D\x2\x519\x51A\x5\x219\x10D"+ - "\x2\x51A\x51B\x5\x213\x10A\x2\x51B\x51C\x5\x219\x10D\x2\x51C\xE8\x3\x2"+ - "\x2\x2\x51D\x51E\x5\x213\x10A\x2\x51E\x51F\x5\x215\x10B\x2\x51F\x520\x5"+ - "\x1FF\x100\x2\x520\x521\x5\x211\x109\x2\x521\xEA\x3\x2\x2\x2\x522\x523"+ - "\x5\x213\x10A\x2\x523\x524\x5\x215\x10B\x2\x524\x525\x5\x21D\x10F\x2\x525"+ - "\x526\x5\x207\x104\x2\x526\x527\x5\x213\x10A\x2\x527\x528\x5\x211\x109"+ - "\x2\x528\x529\x5\x1F7\xFC\x2\x529\x52A\x5\x20D\x107\x2\x52A\xEC\x3\x2"+ - "\x2\x2\x52B\x52C\x5\x213\x10A\x2\x52C\x52D\x5\x215\x10B\x2\x52D\x52E\x5"+ - "\x21D\x10F\x2\x52E\x52F\x5\x207\x104\x2\x52F\x530\x5\x213\x10A\x2\x530"+ - "\x531\x5\x211\x109\x2\x531\x532\x5\x1ED\xF7\x2\x532\x533\x5\x1F9\xFD\x2"+ - "\x533\x534\x5\x1F7\xFC\x2\x534\x535\x5\x21B\x10E\x2\x535\x536\x5\x1FF"+ - "\x100\x2\x536\xEE\x3\x2\x2\x2\x537\x538\x5\x213\x10A\x2\x538\x539\x5\x215"+ - "\x10B\x2\x539\x53A\x5\x21D\x10F\x2\x53A\x53B\x5\x207\x104\x2\x53B\x53C"+ - "\x5\x213\x10A\x2\x53C\x53D\x5\x211\x109\x2\x53D\x53E\x5\x1ED\xF7\x2\x53E"+ - "\x53F\x5\x1FF\x100\x2\x53F\x540\x5\x225\x113\x2\x540\x541\x5\x215\x10B"+ - "\x2\x541\x542\x5\x20D\x107\x2\x542\x543\x5\x207\x104\x2\x543\x544\x5\x1FB"+ - "\xFE\x2\x544\x545\x5\x207\x104\x2\x545\x546\x5\x21D\x10F\x2\x546\xF0\x3"+ - "\x2\x2\x2\x547\x548\x5\x213\x10A\x2\x548\x549\x5\x215\x10B\x2\x549\x54A"+ - "\x5\x21D\x10F\x2\x54A\x54B\x5\x207\x104\x2\x54B\x54C\x5\x213\x10A\x2\x54C"+ - "\x54D\x5\x211\x109\x2\x54D\x54E\x5\x1ED\xF7\x2\x54E\x54F\x5\x1FB\xFE\x2"+ - "\x54F\x550\x5\x213\x10A\x2\x550\x551\x5\x20F\x108\x2\x551\x552\x5\x215"+ - "\x10B\x2\x552\x553\x5\x1F7\xFC\x2\x553\x554\x5\x219\x10D\x2\x554\x555"+ - "\x5\x1FF\x100\x2\x555\xF2\x3\x2\x2\x2\x556\x557\x5\x213\x10A\x2\x557\x558"+ - "\x5\x215\x10B\x2\x558\x559\x5\x21D\x10F\x2\x559\x55A\x5\x207\x104\x2\x55A"+ - "\x55B\x5\x213\x10A\x2\x55B\x55C\x5\x211\x109\x2\x55C\x55D\x5\x1ED\xF7"+ - "\x2\x55D\x55E\x5\x215\x10B\x2\x55E\x55F\x5\x219\x10D\x2\x55F\x560\x5\x207"+ - "\x104\x2\x560\x561\x5\x221\x111\x2\x561\x562\x5\x1F7\xFC\x2\x562\x563"+ - "\x5\x21D\x10F\x2\x563\x564\x5\x1FF\x100\x2\x564\x565\x5\x1ED\xF7\x2\x565"+ - "\x566\x5\x20F\x108\x2\x566\x567\x5\x213\x10A\x2\x567\x568\x5\x1FD\xFF"+ - "\x2\x568\x569\x5\x21F\x110\x2\x569\x56A\x5\x20D\x107\x2\x56A\x56B\x5\x1FF"+ - "\x100\x2\x56B\xF4\x3\x2\x2\x2\x56C\x56D\x5\x213\x10A\x2\x56D\x56E\x5\x219"+ - "\x10D\x2\x56E\xF6\x3\x2\x2\x2\x56F\x570\x5\x213\x10A\x2\x570\x571\x5\x21F"+ - "\x110\x2\x571\x572\x5\x21D\x10F\x2\x572\x573\x5\x215\x10B\x2\x573\x574"+ - "\x5\x21F\x110\x2\x574\x575\x5\x21D\x10F\x2\x575\xF8\x3\x2\x2\x2\x576\x577"+ - "\x5\x215\x10B\x2\x577\x578\x5\x1F7\xFC\x2\x578\x579\x5\x219\x10D\x2\x579"+ - "\x57A\x5\x1F7\xFC\x2\x57A\x57B\x5\x20F\x108\x2\x57B\x57C\x5\x1F7\xFC\x2"+ - "\x57C\x57D\x5\x219\x10D\x2\x57D\x57E\x5\x219\x10D\x2\x57E\x57F\x5\x1F7"+ - "\xFC\x2\x57F\x580\x5\x227\x114\x2\x580\xFA\x3\x2\x2\x2\x581\x582\x5\x215"+ - "\x10B\x2\x582\x583\x5\x219\x10D\x2\x583\x584\x5\x1FF\x100\x2\x584\x585"+ - "\x5\x21B\x10E\x2\x585\x586\x5\x1FF\x100\x2\x586\x587\x5\x219\x10D\x2\x587"+ - "\x588\x5\x221\x111\x2\x588\x589\x5\x1FF\x100\x2\x589\xFC\x3\x2\x2\x2\x58A"+ - "\x58B\x5\x215\x10B\x2\x58B\x58C\x5\x219\x10D\x2\x58C\x58D\x5\x207\x104"+ - "\x2\x58D\x58E\x5\x211\x109\x2\x58E\x58F\x5\x21D\x10F\x2\x58F\xFE\x3\x2"+ - "\x2\x2\x590\x591\x5\x215\x10B\x2\x591\x592\x5\x219\x10D\x2\x592\x593\x5"+ - "\x207\x104\x2\x593\x594\x5\x221\x111\x2\x594\x595\x5\x1F7\xFC\x2\x595"+ - "\x596\x5\x21D\x10F\x2\x596\x597\x5\x1FF\x100\x2\x597\x100\x3\x2\x2\x2"+ - "\x598\x599\x5\x215\x10B\x2\x599\x59A\x5\x219\x10D\x2\x59A\x59B\x5\x213"+ - "\x10A\x2\x59B\x59C\x5\x215\x10B\x2\x59C\x59D\x5\x1FF\x100\x2\x59D\x59E"+ - "\x5\x219\x10D\x2\x59E\x59F\x5\x21D\x10F\x2\x59F\x5A0\x5\x227\x114\x2\x5A0"+ - "\x5A1\x5\x1ED\xF7\x2\x5A1\x5A2\x5\x203\x102\x2\x5A2\x5A3\x5\x1FF\x100"+ - "\x2\x5A3\x5A4\x5\x21D\x10F\x2\x5A4\x102\x3\x2\x2\x2\x5A5\x5A6\x5\x215"+ - "\x10B\x2\x5A6\x5A7\x5\x219\x10D\x2\x5A7\x5A8\x5\x213\x10A\x2\x5A8\x5A9"+ - "\x5\x215\x10B\x2\x5A9\x5AA\x5\x1FF\x100\x2\x5AA\x5AB\x5\x219\x10D\x2\x5AB"+ - "\x5AC\x5\x21D\x10F\x2\x5AC\x5AD\x5\x227\x114\x2\x5AD\x5AE\x5\x1ED\xF7"+ - "\x2\x5AE\x5AF\x5\x20D\x107\x2\x5AF\x5B0\x5\x1FF\x100\x2\x5B0\x5B1\x5\x21D"+ - "\x10F\x2\x5B1\x104\x3\x2\x2\x2\x5B2\x5B3\x5\x215\x10B\x2\x5B3\x5B4\x5"+ - "\x219\x10D\x2\x5B4\x5B5\x5\x213\x10A\x2\x5B5\x5B6\x5\x215\x10B\x2\x5B6"+ - "\x5B7\x5\x1FF\x100\x2\x5B7\x5B8\x5\x219\x10D\x2\x5B8\x5B9\x5\x21D\x10F"+ - "\x2\x5B9\x5BA\x5\x227\x114\x2\x5BA\x5BB\x5\x1ED\xF7\x2\x5BB\x5BC\x5\x21B"+ - "\x10E\x2\x5BC\x5BD\x5\x1FF\x100\x2\x5BD\x5BE\x5\x21D\x10F\x2\x5BE\x106"+ - "\x3\x2\x2\x2\x5BF\x5C0\x5\x215\x10B\x2\x5C0\x5C1\x5\x21D\x10F\x2\x5C1"+ - "\x5C2\x5\x219\x10D\x2\x5C2\x5C3\x5\x21B\x10E\x2\x5C3\x5C4\x5\x1F7\xFC"+ - "\x2\x5C4\x5C5\x5\x201\x101\x2\x5C5\x5C6\x5\x1FF\x100\x2\x5C6\x108\x3\x2"+ - "\x2\x2\x5C7\x5C8\x5\x215\x10B\x2\x5C8\x5C9\x5\x21F\x110\x2\x5C9\x5CA\x5"+ - "\x1F9\xFD\x2\x5CA\x5CB\x5\x20D\x107\x2\x5CB\x5CC\x5\x207\x104\x2\x5CC"+ - "\x5CD\x5\x1FB\xFE\x2\x5CD\x10A\x3\x2\x2\x2\x5CE\x5CF\x5\x215\x10B\x2\x5CF"+ - "\x5D0\x5\x21F\x110\x2\x5D0\x5D1\x5\x21D\x10F\x2\x5D1\x10C\x3\x2\x2\x2"+ - "\x5D2\x5D3\x5\x219\x10D\x2\x5D3\x5D4\x5\x1F7\xFC\x2\x5D4\x5D5\x5\x211"+ - "\x109\x2\x5D5\x5D6\x5\x1FD\xFF\x2\x5D6\x5D7\x5\x213\x10A\x2\x5D7\x5D8"+ - "\x5\x20F\x108\x2\x5D8\x10E\x3\x2\x2\x2\x5D9\x5DA\x5\x219\x10D\x2\x5DA"+ - "\x5DB\x5\x1F7\xFC\x2\x5DB\x5DC\x5\x211\x109\x2\x5DC\x5DD\x5\x1FD\xFF\x2"+ - "\x5DD\x5DE\x5\x213\x10A\x2\x5DE\x5DF\x5\x20F\x108\x2\x5DF\x5E0\x5\x207"+ - "\x104\x2\x5E0\x5E1\x5\x229\x115\x2\x5E1\x5E2\x5\x1FF\x100\x2\x5E2\x110"+ - "\x3\x2\x2\x2\x5E3\x5E4\x5\x219\x10D\x2\x5E4\x5E5\x5\x1F7\xFC\x2\x5E5\x5E6"+ - "\x5\x207\x104\x2\x5E6\x5E7\x5\x21B\x10E\x2\x5E7\x5E8\x5\x1FF\x100\x2\x5E8"+ - "\x5E9\x5\x1FF\x100\x2\x5E9\x5EA\x5\x221\x111\x2\x5EA\x5EB\x5\x1FF\x100"+ - "\x2\x5EB\x5EC\x5\x211\x109\x2\x5EC\x5ED\x5\x21D\x10F\x2\x5ED\x112\x3\x2"+ - "\x2\x2\x5EE\x5EF\x5\x219\x10D\x2\x5EF\x5F0\x5\x1FF\x100\x2\x5F0\x5F1\x5"+ - "\x1F7\xFC\x2\x5F1\x5F2\x5\x1FD\xFF\x2\x5F2\x114\x3\x2\x2\x2\x5F3\x5F4"+ - "\x5\x219\x10D\x2\x5F4\x5F5\x5\x1FF\x100\x2\x5F5\x5F6\x5\x1F7\xFC\x2\x5F6"+ - "\x5F7\x5\x1FD\xFF\x2\x5F7\x5F8\x5\x1ED\xF7\x2\x5F8\x5F9\x5\x223\x112\x2"+ - "\x5F9\x5FA\x5\x219\x10D\x2\x5FA\x5FB\x5\x207\x104\x2\x5FB\x5FC\x5\x21D"+ - "\x10F\x2\x5FC\x5FD\x5\x1FF\x100\x2\x5FD\x116\x3\x2\x2\x2\x5FE\x5FF\x5"+ - "\x219\x10D\x2\x5FF\x600\x5\x1FF\x100\x2\x600\x601\x5\x1FD\xFF\x2\x601"+ - "\x602\x5\x207\x104\x2\x602\x603\x5\x20F\x108\x2\x603\x118\x3\x2\x2\x2"+ - "\x604\x605\x5\x219\x10D\x2\x605\x606\x5\x1FF\x100\x2\x606\x607\x5\x20F"+ - "\x108\x2\x607\x11A\x3\x2\x2\x2\x608\x609\x5\x219\x10D\x2\x609\x60A\x5"+ - "\x1FF\x100\x2\x60A\x60B\x5\x21B\x10E\x2\x60B\x60C\x5\x1FF\x100\x2\x60C"+ - "\x60D\x5\x21D\x10F\x2\x60D\x11C\x3\x2\x2\x2\x60E\x60F\x5\x219\x10D\x2"+ - "\x60F\x610\x5\x1FF\x100\x2\x610\x611\x5\x21B\x10E\x2\x611\x612\x5\x21F"+ - "\x110\x2\x612\x613\x5\x20F\x108\x2\x613\x614\x5\x1FF\x100\x2\x614\x11E"+ - "\x3\x2\x2\x2\x615\x616\x5\x219\x10D\x2\x616\x617\x5\x1FF\x100\x2\x617"+ - "\x618\x5\x21D\x10F\x2\x618\x619\x5\x21F\x110\x2\x619\x61A\x5\x219\x10D"+ - "\x2\x61A\x61B\x5\x211\x109\x2\x61B\x120\x3\x2\x2\x2\x61C\x61D\x5\x219"+ - "\x10D\x2\x61D\x61E\x5\x20F\x108\x2\x61E\x61F\x5\x1FD\xFF\x2\x61F\x620"+ - "\x5\x207\x104\x2\x620\x621\x5\x219\x10D\x2\x621\x122\x3\x2\x2\x2\x622"+ - "\x623\x5\x219\x10D\x2\x623\x624\x5\x21B\x10E\x2\x624\x625\x5\x1FF\x100"+ - "\x2\x625\x626\x5\x21D\x10F\x2\x626\x124\x3\x2\x2\x2\x627\x628\x5\x21B"+ - "\x10E\x2\x628\x629\x5\x1F7\xFC\x2\x629\x62A\x5\x221\x111\x2\x62A\x62B"+ - "\x5\x1FF\x100\x2\x62B\x62C\x5\x215\x10B\x2\x62C\x62D\x5\x207\x104\x2\x62D"+ - "\x62E\x5\x1FB\xFE\x2\x62E\x62F\x5\x21D\x10F\x2\x62F\x630\x5\x21F\x110"+ - "\x2\x630\x631\x5\x219\x10D\x2\x631\x632\x5\x1FF\x100\x2\x632\x126\x3\x2"+ - "\x2\x2\x633\x634\x5\x21B\x10E\x2\x634\x635\x5\x1F7\xFC\x2\x635\x636\x5"+ - "\x221\x111\x2\x636\x637\x5\x1FF\x100\x2\x637\x638\x5\x21B\x10E\x2\x638"+ - "\x639\x5\x1FF\x100\x2\x639\x63A\x5\x21D\x10F\x2\x63A\x63B\x5\x21D\x10F"+ - "\x2\x63B\x63C\x5\x207\x104\x2\x63C\x63D\x5\x211\x109\x2\x63D\x63E\x5\x203"+ - "\x102\x2\x63E\x128\x3\x2\x2\x2\x63F\x640\x5\x21B\x10E\x2\x640\x641\x5"+ - "\x1FF\x100\x2\x641\x642\x5\x1FF\x100\x2\x642\x643\x5\x20B\x106\x2\x643"+ - "\x12A\x3\x2\x2\x2\x644\x645\x5\x21B\x10E\x2\x645\x646\x5\x1FF\x100\x2"+ - "\x646\x647\x5\x20D\x107\x2\x647\x648\x5\x1FF\x100\x2\x648\x649\x5\x1FB"+ - "\xFE\x2\x649\x64A\x5\x21D\x10F\x2\x64A\x12C\x3\x2\x2\x2\x64B\x64C\x5\x21B"+ - "\x10E\x2\x64C\x64D\x5\x1FF\x100\x2\x64D\x64E\x5\x211\x109\x2\x64E\x64F"+ - "\x5\x1FD\xFF\x2\x64F\x650\x5\x20B\x106\x2\x650\x651\x5\x1FF\x100\x2\x651"+ - "\x652\x5\x227\x114\x2\x652\x653\x5\x21B\x10E\x2\x653\x12E\x3\x2\x2\x2"+ - "\x654\x655\x5\x21B\x10E\x2\x655\x656\x5\x1FF\x100\x2\x656\x657\x5\x21D"+ - "\x10F\x2\x657\x130\x3\x2\x2\x2\x658\x659\x5\x21B\x10E\x2\x659\x65A\x5"+ - "\x1FF\x100\x2\x65A\x65B\x5\x21D\x10F\x2\x65B\x65C\x5\x1F7\xFC\x2\x65C"+ - "\x65D\x5\x21D\x10F\x2\x65D\x65E\x5\x21D\x10F\x2\x65E\x65F\x5\x219\x10D"+ - "\x2\x65F\x132\x3\x2\x2\x2\x660\x661\x5\x21B\x10E\x2\x661\x662\x5\x205"+ - "\x103\x2\x662\x663\x5\x1F7\xFC\x2\x663\x664\x5\x219\x10D\x2\x664\x665"+ - "\x5\x1FF\x100\x2\x665\x666\x5\x1FD\xFF\x2\x666\x134\x3\x2\x2\x2\x667\x668"+ - "\x5\x21B\x10E\x2\x668\x669\x5\x207\x104\x2\x669\x66A\x5\x211\x109\x2\x66A"+ - "\x66B\x5\x203\x102\x2\x66B\x66C\x5\x20D\x107\x2\x66C\x66D\x5\x1FF\x100"+ - "\x2\x66D\x136\x3\x2\x2\x2\x66E\x66F\x5\x21B\x10E\x2\x66F\x670\x5\x215"+ - "\x10B\x2\x670\x671\x5\x1FB\xFE\x2\x671\x138\x3\x2\x2\x2\x672\x673\x5\x21B"+ - "\x10E\x2\x673\x674\x5\x21D\x10F\x2\x674\x675\x5\x1F7\xFC\x2\x675\x676"+ - "\x5\x21D\x10F\x2\x676\x677\x5\x207\x104\x2\x677\x678\x5\x1FB\xFE\x2\x678"+ - "\x13A\x3\x2\x2\x2\x679\x67A\x5\x21B\x10E\x2\x67A\x67B\x5\x21D\x10F\x2"+ - "\x67B\x67C\x5\x1FF\x100\x2\x67C\x67D\x5\x215\x10B\x2\x67D\x13C\x3\x2\x2"+ - "\x2\x67E\x67F\x5\x21B\x10E\x2\x67F\x680\x5\x21D\x10F\x2\x680\x681\x5\x213"+ - "\x10A\x2\x681\x682\x5\x215\x10B\x2\x682\x13E\x3\x2\x2\x2\x683\x684\x5"+ - "\x21B\x10E\x2\x684\x685\x5\x21D\x10F\x2\x685\x686\x5\x219\x10D\x2\x686"+ - "\x687\x5\x207\x104\x2\x687\x688\x5\x211\x109\x2\x688\x689\x5\x203\x102"+ - "\x2\x689\x140\x3\x2\x2\x2\x68A\x68B\x5\x21B\x10E\x2\x68B\x68C\x5\x21F"+ - "\x110\x2\x68C\x68D\x5\x1F9\xFD\x2\x68D\x142\x3\x2\x2\x2\x68E\x68F\x5\x21D"+ - "\x10F\x2\x68F\x690\x5\x1F7\xFC\x2\x690\x691\x5\x1F9\xFD\x2\x691\x144\x3"+ - "\x2\x2\x2\x692\x693\x5\x21D\x10F\x2\x693\x694\x5\x1FF\x100\x2\x694\x695"+ - "\x5\x225\x113\x2\x695\x696\x5\x21D\x10F\x2\x696\x146\x3\x2\x2\x2\x697"+ - "\x698\x5\x21D\x10F\x2\x698\x699\x5\x205\x103\x2\x699\x69A\x5\x1FF\x100"+ - "\x2\x69A\x69B\x5\x211\x109\x2\x69B\x148\x3\x2\x2\x2\x69C\x69D\x5\x21D"+ - "\x10F\x2\x69D\x69E\x5\x207\x104\x2\x69E\x69F\x5\x20F\x108\x2\x69F\x6A0"+ - "\x5\x1FF\x100\x2\x6A0\x14A\x3\x2\x2\x2\x6A1\x6A2\x5\x21D\x10F\x2\x6A2"+ - "\x6A3\x5\x213\x10A\x2\x6A3\x14C\x3\x2\x2\x2\x6A4\x6A5\x5\x21D\x10F\x2"+ - "\x6A5\x6A6\x5\x219\x10D\x2\x6A6\x6A7\x5\x21F\x110\x2\x6A7\x6A8\x5\x1FF"+ - "\x100\x2\x6A8\x14E\x3\x2\x2\x2\x6A9\x6AA\x5\x21D\x10F\x2\x6AA\x6AB\x5"+ - "\x227\x114\x2\x6AB\x6AC\x5\x215\x10B\x2\x6AC\x6AD\x5\x1FF\x100\x2\x6AD"+ - "\x150\x3\x2\x2\x2\x6AE\x6AF\x5\x21D\x10F\x2\x6AF\x6B0\x5\x227\x114\x2"+ - "\x6B0\x6B1\x5\x215\x10B\x2\x6B1\x6B2\x5\x1FF\x100\x2\x6B2\x6B3\x5\x213"+ - "\x10A\x2\x6B3\x6B4\x5\x201\x101\x2\x6B4\x152\x3\x2\x2\x2\x6B5\x6B6\x5"+ - "\x21F\x110\x2\x6B6\x6B7\x5\x211\x109\x2\x6B7\x6B8\x5\x20D\x107\x2\x6B8"+ - "\x6B9\x5\x213\x10A\x2\x6B9\x6BA\x5\x1F7\xFC\x2\x6BA\x6BB\x5\x1FD\xFF\x2"+ - "\x6BB\x154\x3\x2\x2\x2\x6BC\x6BD\x5\x21F\x110\x2\x6BD\x6BE\x5\x211\x109"+ - "\x2\x6BE\x6BF\x5\x20D\x107\x2\x6BF\x6C0\x5\x213\x10A\x2\x6C0\x6C1\x5\x1FB"+ - "\xFE\x2\x6C1\x6C2\x5\x20B\x106\x2\x6C2\x156\x3\x2\x2\x2\x6C3\x6C4\x5\x21F"+ - "\x110\x2\x6C4\x6C5\x5\x211\x109\x2\x6C5\x6C6\x5\x21D\x10F\x2\x6C6\x6C7"+ - "\x5\x207\x104\x2\x6C7\x6C8\x5\x20D\x107\x2\x6C8\x158\x3\x2\x2\x2\x6C9"+ - "\x6CA\x5\x221\x111\x2\x6CA\x6CB\x5\x1F7\xFC\x2\x6CB\x6CC\x5\x219\x10D"+ - "\x2\x6CC\x6CD\x5\x207\x104\x2\x6CD\x6CE\x5\x1F7\xFC\x2\x6CE\x6CF\x5\x211"+ - "\x109\x2\x6CF\x6D0\x5\x21D\x10F\x2\x6D0\x15A\x3\x2\x2\x2\x6D1\x6D2\x5"+ - "\x221\x111\x2\x6D2\x6D3\x5\x1FF\x100\x2\x6D3\x6D4\x5\x219\x10D\x2\x6D4"+ - "\x6D5\x5\x21B\x10E\x2\x6D5\x6D6\x5\x207\x104\x2\x6D6\x6D7\x5\x213\x10A"+ - "\x2\x6D7\x6D8\x5\x211\x109\x2\x6D8\x15C\x3\x2\x2\x2\x6D9\x6DA\x5\x223"+ - "\x112\x2\x6DA\x6DB\x5\x1FF\x100\x2\x6DB\x6DC\x5\x211\x109\x2\x6DC\x6DD"+ - "\x5\x1FD\xFF\x2\x6DD\x15E\x3\x2\x2\x2\x6DE\x6DF\x5\x223\x112\x2\x6DF\x6E0"+ - "\x5\x205\x103\x2\x6E0\x6E1\x5\x207\x104\x2\x6E1\x6E2\x5\x20D\x107\x2\x6E2"+ - "\x6E3\x5\x1FF\x100\x2\x6E3\x160\x3\x2\x2\x2\x6E4\x6E5\x5\x223\x112\x2"+ - "\x6E5\x6E6\x5\x207\x104\x2\x6E6\x6E7\x5\x1FD\xFF\x2\x6E7\x6E8\x5\x21D"+ - "\x10F\x2\x6E8\x6E9\x5\x205\x103\x2\x6E9\x162\x3\x2\x2\x2\x6EA\x6EB\x5"+ - "\x223\x112\x2\x6EB\x6EC\x5\x207\x104\x2\x6EC\x6ED\x5\x21D\x10F\x2\x6ED"+ - "\x6EE\x5\x205\x103\x2\x6EE\x164\x3\x2\x2\x2\x6EF\x6F0\x5\x223\x112\x2"+ - "\x6F0\x6F1\x5\x207\x104\x2\x6F1\x6F2\x5\x21D\x10F\x2\x6F2\x6F3\x5\x205"+ - "\x103\x2\x6F3\x6F4\x5\x1FF\x100\x2\x6F4\x6F5\x5\x221\x111\x2\x6F5\x6F6"+ - "\x5\x1FF\x100\x2\x6F6\x6F7\x5\x211\x109\x2\x6F7\x6F8\x5\x21D\x10F\x2\x6F8"+ - "\x6F9\x5\x21B\x10E\x2\x6F9\x166\x3\x2\x2\x2\x6FA\x6FB\x5\x223\x112\x2"+ - "\x6FB\x6FC\x5\x219\x10D\x2\x6FC\x6FD\x5\x207\x104\x2\x6FD\x6FE\x5\x21D"+ - "\x10F\x2\x6FE\x6FF\x5\x1FF\x100\x2\x6FF\x168\x3\x2\x2\x2\x700\x701\x5"+ - "\x225\x113\x2\x701\x702\x5\x213\x10A\x2\x702\x703\x5\x219\x10D\x2\x703"+ - "\x16A\x3\x2\x2\x2\x704\x705\a(\x2\x2\x705\x16C\x3\x2\x2\x2\x706\x707\a"+ - "<\x2\x2\x707\x708\a?\x2\x2\x708\x16E\x3\x2\x2\x2\x709\x70A\a\x31\x2\x2"+ - "\x70A\x170\x3\x2\x2\x2\x70B\x70C\a^\x2\x2\x70C\x172\x3\x2\x2\x2\x70D\x70E"+ - "\a?\x2\x2\x70E\x174\x3\x2\x2\x2\x70F\x710\a@\x2\x2\x710\x711\a?\x2\x2"+ - "\x711\x176\x3\x2\x2\x2\x712\x713\a@\x2\x2\x713\x178\x3\x2\x2\x2\x714\x715"+ - "\a>\x2\x2\x715\x716\a?\x2\x2\x716\x17A\x3\x2\x2\x2\x717\x718\a*\x2\x2"+ - "\x718\x17C\x3\x2\x2\x2\x719\x71A\a>\x2\x2\x71A\x17E\x3\x2\x2\x2\x71B\x71C"+ - "\a/\x2\x2\x71C\x180\x3\x2\x2\x2\x71D\x71E\a,\x2\x2\x71E\x182\x3\x2\x2"+ - "\x2\x71F\x720\a>\x2\x2\x720\x721\a@\x2\x2\x721\x184\x3\x2\x2\x2\x722\x723"+ - "\a-\x2\x2\x723\x186\x3\x2\x2\x2\x724\x725\a`\x2\x2\x725\x188\x3\x2\x2"+ - "\x2\x726\x727\a+\x2\x2\x727\x18A\x3\x2\x2\x2\x728\x729\a]\x2\x2\x729\x18C"+ - "\x3\x2\x2\x2\x72A\x72B\a_\x2\x2\x72B\x18E\x3\x2\x2\x2\x72C\x732\a$\x2"+ - "\x2\x72D\x731\n\x2\x2\x2\x72E\x72F\a$\x2\x2\x72F\x731\a$\x2\x2\x730\x72D"+ - "\x3\x2\x2\x2\x730\x72E\x3\x2\x2\x2\x731\x734\x3\x2\x2\x2\x732\x730\x3"+ - "\x2\x2\x2\x732\x733\x3\x2\x2\x2\x733\x735\x3\x2\x2\x2\x734\x732\x3\x2"+ - "\x2\x2\x735\x736\a$\x2\x2\x736\x190\x3\x2\x2\x2\x737\x738\a(\x2\x2\x738"+ - "\x739\aQ\x2\x2\x739\x73B\x3\x2\x2\x2\x73A\x73C\t\x3\x2\x2\x73B\x73A\x3"+ - "\x2\x2\x2\x73C\x73D\x3\x2\x2\x2\x73D\x73B\x3\x2\x2\x2\x73D\x73E\x3\x2"+ - "\x2\x2\x73E\x740\x3\x2\x2\x2\x73F\x741\a(\x2\x2\x740\x73F\x3\x2\x2\x2"+ - "\x740\x741\x3\x2\x2\x2\x741\x192\x3\x2\x2\x2\x742\x743\a(\x2\x2\x743\x744"+ - "\aJ\x2\x2\x744\x746\x3\x2\x2\x2\x745\x747\t\x4\x2\x2\x746\x745\x3\x2\x2"+ - "\x2\x747\x748\x3\x2\x2\x2\x748\x746\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2"+ - "\x749\x74B\x3\x2\x2\x2\x74A\x74C\a(\x2\x2\x74B\x74A\x3\x2\x2\x2\x74B\x74C"+ - "\x3\x2\x2\x2\x74C\x194\x3\x2\x2\x2\x74D\x750\x5\x185\xC3\x2\x74E\x750"+ - "\x5\x17F\xC0\x2\x74F\x74D\x3\x2\x2\x2\x74F\x74E\x3\x2\x2\x2\x74F\x750"+ - "\x3\x2\x2\x2\x750\x752\x3\x2\x2\x2\x751\x753\x5\x1F3\xFA\x2\x752\x751"+ - "\x3\x2\x2\x2\x753\x754\x3\x2\x2\x2\x754\x752\x3\x2\x2\x2\x754\x755\x3"+ - "\x2\x2\x2\x755\x757\x3\x2\x2\x2\x756\x758\t\x5\x2\x2\x757\x756\x3\x2\x2"+ - "\x2\x757\x758\x3\x2\x2\x2\x758\x196\x3\x2\x2\x2\x759\x75D\x5\x195\xCB"+ - "\x2\x75A\x75B\x5\x1FF\x100\x2\x75B\x75C\x5\x195\xCB\x2\x75C\x75E\x3\x2"+ - "\x2\x2\x75D\x75A\x3\x2\x2\x2\x75D\x75E\x3\x2\x2\x2\x75E\x198\x3\x2\x2"+ - "\x2\x75F\x762\x5\x185\xC3\x2\x760\x762\x5\x17F\xC0\x2\x761\x75F\x3\x2"+ - "\x2\x2\x761\x760\x3\x2\x2\x2\x761\x762\x3\x2\x2\x2\x762\x766\x3\x2\x2"+ - "\x2\x763\x765\x5\x1F3\xFA\x2\x764\x763\x3\x2\x2\x2\x765\x768\x3\x2\x2"+ - "\x2\x766\x764\x3\x2\x2\x2\x766\x767\x3\x2\x2\x2\x767\x769\x3\x2\x2\x2"+ - "\x768\x766\x3\x2\x2\x2\x769\x76B\a\x30\x2\x2\x76A\x76C\x5\x1F3\xFA\x2"+ - "\x76B\x76A\x3\x2\x2\x2\x76C\x76D\x3\x2\x2\x2\x76D\x76B\x3\x2\x2\x2\x76D"+ - "\x76E\x3\x2\x2\x2\x76E\x772\x3\x2\x2\x2\x76F\x770\x5\x1FF\x100\x2\x770"+ - "\x771\x5\x195\xCB\x2\x771\x773\x3\x2\x2\x2\x772\x76F\x3\x2\x2\x2\x772"+ - "\x773\x3\x2\x2\x2\x773\x19A\x3\x2\x2\x2\x774\x775\a%\x2\x2\x775\x776\x5"+ - "\x19D\xCF\x2\x776\x777\a%\x2\x2\x777\x19C\x3\x2\x2\x2\x778\x77A\x5\x19F"+ - "\xD0\x2\x779\x77B\x5\x1ED\xF7\x2\x77A\x779\x3\x2\x2\x2\x77A\x77B\x3\x2"+ - "\x2\x2\x77B\x77C\x3\x2\x2\x2\x77C\x77D\x5\x1AB\xD6\x2\x77D\x781\x3\x2"+ - "\x2\x2\x77E\x781\x5\x19F\xD0\x2\x77F\x781\x5\x1AB\xD6\x2\x780\x778\x3"+ - "\x2\x2\x2\x780\x77E\x3\x2\x2\x2\x780\x77F\x3\x2\x2\x2\x781\x19E\x3\x2"+ - "\x2\x2\x782\x783\x5\x1A1\xD1\x2\x783\x784\x5\x1A3\xD2\x2\x784\x788\x5"+ - "\x1A1\xD1\x2\x785\x786\x5\x1A3\xD2\x2\x786\x787\x5\x1A1\xD1\x2\x787\x789"+ - "\x3\x2\x2\x2\x788\x785\x3\x2\x2\x2\x788\x789\x3\x2\x2\x2\x789\x1A0\x3"+ - "\x2\x2\x2\x78A\x78C\x5\x1F3\xFA\x2\x78B\x78A\x3\x2\x2\x2\x78C\x78D\x3"+ - "\x2\x2\x2\x78D\x78B\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x791\x3\x2"+ - "\x2\x2\x78F\x791\x5\x1A5\xD3\x2\x790\x78B\x3\x2\x2\x2\x790\x78F\x3\x2"+ - "\x2\x2\x791\x1A2\x3\x2\x2\x2\x792\x794\x5\x1ED\xF7\x2\x793\x792\x3\x2"+ - "\x2\x2\x793\x794\x3\x2\x2\x2\x794\x796\x3\x2\x2\x2\x795\x797\t\x6\x2\x2"+ - "\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x799\x3\x2\x2\x2\x798"+ - "\x79A\x5\x1ED\xF7\x2\x799\x798\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2\x79A"+ - "\x1A4\x3\x2\x2\x2\x79B\x79E\x5\x1A7\xD4\x2\x79C\x79E\x5\x1A9\xD5\x2\x79D"+ - "\x79B\x3\x2\x2\x2\x79D\x79C\x3\x2\x2\x2\x79E\x1A6\x3\x2\x2\x2\x79F\x7AC"+ - "\x5\x1B1\xD9\x2\x7A0\x7AC\x5\x1B3\xDA\x2\x7A1\x7AC\x5\x1B5\xDB\x2\x7A2"+ - "\x7AC\x5\x1B7\xDC\x2\x7A3\x7AC\x5\x1B9\xDD\x2\x7A4\x7AC\x5\x1BB\xDE\x2"+ - "\x7A5\x7AC\x5\x1BD\xDF\x2\x7A6\x7AC\x5\x1BF\xE0\x2\x7A7\x7AC\x5\x1C1\xE1"+ - "\x2\x7A8\x7AC\x5\x1C3\xE2\x2\x7A9\x7AC\x5\x1C5\xE3\x2\x7AA\x7AC\x5\x1C7"+ - "\xE4\x2\x7AB\x79F\x3\x2\x2\x2\x7AB\x7A0\x3\x2\x2\x2\x7AB\x7A1\x3\x2\x2"+ - "\x2\x7AB\x7A2\x3\x2\x2\x2\x7AB\x7A3\x3\x2\x2\x2\x7AB\x7A4\x3\x2\x2\x2"+ - "\x7AB\x7A5\x3\x2\x2\x2\x7AB\x7A6\x3\x2\x2\x2\x7AB\x7A7\x3\x2\x2\x2\x7AB"+ - "\x7A8\x3\x2\x2\x2\x7AB\x7A9\x3\x2\x2\x2\x7AB\x7AA\x3\x2\x2\x2\x7AC\x1A8"+ - "\x3\x2\x2\x2\x7AD\x7B9\x5\x1C9\xE5\x2\x7AE\x7B9\x5\x1CB\xE6\x2\x7AF\x7B9"+ - "\x5\x1CD\xE7\x2\x7B0\x7B9\x5\x1CF\xE8\x2\x7B1\x7B9\x5\x1D1\xE9\x2\x7B2"+ - "\x7B9\x5\x1D3\xEA\x2\x7B3\x7B9\x5\x1D5\xEB\x2\x7B4\x7B9\x5\x1D7\xEC\x2"+ - "\x7B5\x7B9\x5\x1D9\xED\x2\x7B6\x7B9\x5\x1DB\xEE\x2\x7B7\x7B9\x5\x1DD\xEF"+ - "\x2\x7B8\x7AD\x3\x2\x2\x2\x7B8\x7AE\x3\x2\x2\x2\x7B8\x7AF\x3\x2\x2\x2"+ - "\x7B8\x7B0\x3\x2\x2\x2\x7B8\x7B1\x3\x2\x2\x2\x7B8\x7B2\x3\x2\x2\x2\x7B8"+ - "\x7B3\x3\x2\x2\x2\x7B8\x7B4\x3\x2\x2\x2\x7B8\x7B5\x3\x2\x2\x2\x7B8\x7B6"+ - "\x3\x2\x2\x2\x7B8\x7B7\x3\x2\x2\x2\x7B9\x1AA\x3\x2\x2\x2\x7BA\x7BC\x5"+ - "\x1F3\xFA\x2\x7BB\x7BA\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BB\x3"+ - "\x2\x2\x2\x7BD\x7BE\x3\x2\x2\x2\x7BE\x7BF\x3\x2\x2\x2\x7BF\x7C0\x5\x1AF"+ - "\xD8\x2\x7C0\x7D8\x3\x2\x2\x2\x7C1\x7C3\x5\x1F3\xFA\x2\x7C2\x7C1\x3\x2"+ - "\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C2\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2"+ - "\x2\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C8\x5\x1AD\xD7\x2\x7C7\x7C9\x5\x1F3\xFA"+ - "\x2\x7C8\x7C7\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\x7C8\x3\x2\x2\x2"+ - "\x7CA\x7CB\x3\x2\x2\x2\x7CB\x7D2\x3\x2\x2\x2\x7CC\x7CE\x5\x1AD\xD7\x2"+ - "\x7CD\x7CF\x5\x1F3\xFA\x2\x7CE\x7CD\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2"+ - "\x7D0\x7CE\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1\x7D3\x3\x2\x2\x2\x7D2"+ - "\x7CC\x3\x2\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D5\x3\x2\x2\x2\x7D4\x7D6"+ - "\x5\x1AF\xD8\x2\x7D5\x7D4\x3\x2\x2\x2\x7D5\x7D6\x3\x2\x2\x2\x7D6\x7D8"+ - "\x3\x2\x2\x2\x7D7\x7BB\x3\x2\x2\x2\x7D7\x7C2\x3\x2\x2\x2\x7D8\x1AC\x3"+ - "\x2\x2\x2\x7D9\x7DB\x5\x1ED\xF7\x2\x7DA\x7D9\x3\x2\x2\x2\x7DA\x7DB\x3"+ - "\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\x7DE\t\a\x2\x2\x7DD\x7DF\x5\x1ED"+ - "\xF7\x2\x7DE\x7DD\x3\x2\x2\x2\x7DE\x7DF\x3\x2\x2\x2\x7DF\x1AE\x3\x2\x2"+ - "\x2\x7E0\x7E2\x5\x1ED\xF7\x2\x7E1\x7E0\x3\x2\x2\x2\x7E1\x7E2\x3\x2\x2"+ - "\x2\x7E2\x7EB\x3\x2\x2\x2\x7E3\x7E4\x5\x1F7\xFC\x2\x7E4\x7E5\x5\x20F\x108"+ - "\x2\x7E5\x7EC\x3\x2\x2\x2\x7E6\x7E7\x5\x215\x10B\x2\x7E7\x7E8\x5\x20F"+ - "\x108\x2\x7E8\x7EC\x3\x2\x2\x2\x7E9\x7EC\x5\x1F7\xFC\x2\x7EA\x7EC\x5\x215"+ - "\x10B\x2\x7EB\x7E3\x3\x2\x2\x2\x7EB\x7E6\x3\x2\x2\x2\x7EB\x7E9\x3\x2\x2"+ - "\x2\x7EB\x7EA\x3\x2\x2\x2\x7EC\x1B0\x3\x2\x2\x2\x7ED\x7EE\x5\x209\x105"+ - "\x2\x7EE\x7EF\x5\x1F7\xFC\x2\x7EF\x7F0\x5\x211\x109\x2\x7F0\x7F1\x5\x21F"+ - "\x110\x2\x7F1\x7F2\x5\x1F7\xFC\x2\x7F2\x7F3\x5\x219\x10D\x2\x7F3\x7F4"+ - "\x5\x227\x114\x2\x7F4\x1B2\x3\x2\x2\x2\x7F5\x7F6\x5\x201\x101\x2\x7F6"+ - "\x7F7\x5\x1FF\x100\x2\x7F7\x7F8\x5\x1F9\xFD\x2\x7F8\x7F9\x5\x219\x10D"+ - "\x2\x7F9\x7FA\x5\x21F\x110\x2\x7FA\x7FB\x5\x1F7\xFC\x2\x7FB\x7FC\x5\x219"+ - "\x10D\x2\x7FC\x7FD\x5\x227\x114\x2\x7FD\x1B4\x3\x2\x2\x2\x7FE\x7FF\x5"+ - "\x20F\x108\x2\x7FF\x800\x5\x1F7\xFC\x2\x800\x801\x5\x219\x10D\x2\x801"+ - "\x802\x5\x1FB\xFE\x2\x802\x803\x5\x205\x103\x2\x803\x1B6\x3\x2\x2\x2\x804"+ - "\x805\x5\x1F7\xFC\x2\x805\x806\x5\x215\x10B\x2\x806\x807\x5\x219\x10D"+ - "\x2\x807\x808\x5\x207\x104\x2\x808\x809\x5\x20D\x107\x2\x809\x1B8\x3\x2"+ - "\x2\x2\x80A\x80B\x5\x20F\x108\x2\x80B\x80C\x5\x1F7\xFC\x2\x80C\x80D\x5"+ - "\x227\x114\x2\x80D\x1BA\x3\x2\x2\x2\x80E\x80F\x5\x209\x105\x2\x80F\x810"+ - "\x5\x21F\x110\x2\x810\x811\x5\x211\x109\x2\x811\x812\x5\x1FF\x100\x2\x812"+ - "\x1BC\x3\x2\x2\x2\x813\x814\x5\x209\x105\x2\x814\x815\x5\x21F\x110\x2"+ - "\x815\x816\x5\x20D\x107\x2\x816\x817\x5\x227\x114\x2\x817\x1BE\x3\x2\x2"+ - "\x2\x818\x819\x5\x1F7\xFC\x2\x819\x81A\x5\x21F\x110\x2\x81A\x81B\x5\x203"+ - "\x102\x2\x81B\x81C\x5\x21F\x110\x2\x81C\x81D\x5\x21B\x10E\x2\x81D\x81E"+ - "\x5\x21D\x10F\x2\x81E\x1C0\x3\x2\x2\x2\x81F\x820\x5\x21B\x10E\x2\x820"+ - "\x821\x5\x1FF\x100\x2\x821\x822\x5\x215\x10B\x2\x822\x823\x5\x21D\x10F"+ - "\x2\x823\x824\x5\x1FF\x100\x2\x824\x825\x5\x20F\x108\x2\x825\x826\x5\x1F9"+ - "\xFD\x2\x826\x827\x5\x1FF\x100\x2\x827\x828\x5\x219\x10D\x2\x828\x1C2"+ - "\x3\x2\x2\x2\x829\x82A\x5\x213\x10A\x2\x82A\x82B\x5\x1FB\xFE\x2\x82B\x82C"+ - "\x5\x21D\x10F\x2\x82C\x82D\x5\x213\x10A\x2\x82D\x82E\x5\x1F9\xFD\x2\x82E"+ - "\x82F\x5\x1FF\x100\x2\x82F\x830\x5\x219\x10D\x2\x830\x1C4\x3\x2\x2\x2"+ - "\x831\x832\x5\x211\x109\x2\x832\x833\x5\x213\x10A\x2\x833\x834\x5\x221"+ - "\x111\x2\x834\x835\x5\x1FF\x100\x2\x835\x836\x5\x20F\x108\x2\x836\x837"+ - "\x5\x1F9\xFD\x2\x837\x838\x5\x1FF\x100\x2\x838\x839\x5\x219\x10D\x2\x839"+ - "\x1C6\x3\x2\x2\x2\x83A\x83B\x5\x1FD\xFF\x2\x83B\x83C\x5\x1FF\x100\x2\x83C"+ - "\x83D\x5\x1FB\xFE\x2\x83D\x83E\x5\x1FF\x100\x2\x83E\x83F\x5\x20F\x108"+ - "\x2\x83F\x840\x5\x1F9\xFD\x2\x840\x841\x5\x1FF\x100\x2\x841\x842\x5\x219"+ - "\x10D\x2\x842\x1C8\x3\x2\x2\x2\x843\x844\x5\x209\x105\x2\x844\x845\x5"+ - "\x1F7\xFC\x2\x845\x846\x5\x211\x109\x2\x846\x1CA\x3\x2\x2\x2\x847\x848"+ - "\x5\x201\x101\x2\x848\x849\x5\x1FF\x100\x2\x849\x84A\x5\x1F9\xFD\x2\x84A"+ - "\x1CC\x3\x2\x2\x2\x84B\x84C\x5\x20F\x108\x2\x84C\x84D\x5\x1F7\xFC\x2\x84D"+ - "\x84E\x5\x219\x10D\x2\x84E\x1CE\x3\x2\x2\x2\x84F\x850\x5\x1F7\xFC\x2\x850"+ - "\x851\x5\x215\x10B\x2\x851\x852\x5\x219\x10D\x2\x852\x1D0\x3\x2\x2\x2"+ - "\x853\x854\x5\x209\x105\x2\x854\x855\x5\x21F\x110\x2\x855\x856\x5\x211"+ - "\x109\x2\x856\x1D2\x3\x2\x2\x2\x857\x858\x5\x209\x105\x2\x858\x859\x5"+ - "\x21F\x110\x2\x859\x85A\x5\x20D\x107\x2\x85A\x1D4\x3\x2\x2\x2\x85B\x85C"+ - "\x5\x1F7\xFC\x2\x85C\x85D\x5\x21F\x110\x2\x85D\x85E\x5\x203\x102\x2\x85E"+ - "\x1D6\x3\x2\x2\x2\x85F\x860\x5\x21B\x10E\x2\x860\x861\x5\x1FF\x100\x2"+ - "\x861\x862\x5\x215\x10B\x2\x862\x1D8\x3\x2\x2\x2\x863\x864\x5\x213\x10A"+ - "\x2\x864\x865\x5\x1FB\xFE\x2\x865\x866\x5\x21D\x10F\x2\x866\x1DA\x3\x2"+ - "\x2\x2\x867\x868\x5\x211\x109\x2\x868\x869\x5\x213\x10A\x2\x869\x86A\x5"+ - "\x221\x111\x2\x86A\x1DC\x3\x2\x2\x2\x86B\x86C\x5\x1FD\xFF\x2\x86C\x86D"+ - "\x5\x1FF\x100\x2\x86D\x86E\x5\x1FB\xFE\x2\x86E\x1DE\x3\x2\x2\x2\x86F\x871"+ - "\t\b\x2\x2\x870\x86F\x3\x2\x2\x2\x871\x872\x3\x2\x2\x2\x872\x870\x3\x2"+ - "\x2\x2\x872\x873\x3\x2\x2\x2\x873\x874\x3\x2\x2\x2\x874\x876\x5\x1EB\xF6"+ - "\x2\x875\x877\a\xF\x2\x2\x876\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877"+ - "\x878\x3\x2\x2\x2\x878\x879\a\f\x2\x2\x879\x87A\x3\x2\x2\x2\x87A\x87B"+ - "\b\xF0\x2\x2\x87B\x1E0\x3\x2\x2\x2\x87C\x87E\t\t\x2\x2\x87D\x87C\x3\x2"+ - "\x2\x2\x87E\x87F\x3\x2\x2\x2\x87F\x87D\x3\x2\x2\x2\x87F\x880\x3\x2\x2"+ - "\x2\x880\x1E2\x3\x2\x2\x2\x881\x883\x5\x1E9\xF5\x2\x882\x881\x3\x2\x2"+ - "\x2\x882\x883\x3\x2\x2\x2\x883\x884\x3\x2\x2\x2\x884\x885\x5\x119\x8D"+ - "\x2\x885\x88A\x5\x1ED\xF7\x2\x886\x889\x5\x1DF\xF0\x2\x887\x889\n\t\x2"+ - "\x2\x888\x886\x3\x2\x2\x2\x888\x887\x3\x2\x2\x2\x889\x88C\x3\x2\x2\x2"+ - "\x88A\x888\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\x1E4\x3\x2\x2\x2\x88C"+ - "\x88A\x3\x2\x2\x2\x88D\x892\x5\x1E7\xF4\x2\x88E\x891\x5\x1DF\xF0\x2\x88F"+ + "\x3\x114\x3\x115\x3\x115\x3\x116\x3\x116\x2\x2\x2\x117\x3\x2\x3\x5\x2"+ + "\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17"+ + "\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14"+ + "\'\x2\x15)\x2\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2"+ + "\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$"+ + "G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31"+ + "\x61\x2\x32\x63\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2"+ + "\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43"+ + "\x85\x2\x44\x87\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93"+ + "\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5"+ + "\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\"+ + "\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5"+ + "\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k"+ + "\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2"+ + "t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7"+ + "\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83"+ + "\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89"+ + "\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F"+ + "\x11D\x2\x90\x11F\x2\x91\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95"+ + "\x129\x2\x96\x12B\x2\x97\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B"+ + "\x135\x2\x9C\x137\x2\x9D\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1"+ + "\x141\x2\xA2\x143\x2\xA3\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7"+ + "\x14D\x2\xA8\x14F\x2\xA9\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD"+ + "\x159\x2\xAE\x15B\x2\xAF\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3"+ + "\x165\x2\xB4\x167\x2\xB5\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9"+ + "\x171\x2\xBA\x173\x2\xBB\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF"+ + "\x17D\x2\xC0\x17F\x2\xC1\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5"+ + "\x189\x2\xC6\x18B\x2\xC7\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB"+ + "\x195\x2\xCC\x197\x2\xCD\x199\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\x2"+ + "\x1A1\x2\x2\x1A3\x2\x2\x1A5\x2\x2\x1A7\x2\x2\x1A9\x2\x2\x1AB\x2\x2\x1AD"+ + "\x2\x2\x1AF\x2\x2\x1B1\x2\x2\x1B3\x2\xD1\x1B5\x2\xD2\x1B7\x2\xD3\x1B9"+ + "\x2\xD4\x1BB\x2\xD5\x1BD\x2\xD6\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5"+ + "\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1"+ + "\x2\xE0\x1D3\x2\xE1\x1D5\x2\xE2\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD"+ + "\x2\xE6\x1DF\x2\xE7\x1E1\x2\xE8\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9"+ + "\x2\xEC\x1EB\x2\xED\x1ED\x2\xEE\x1EF\x2\xEF\x1F1\x2\xF0\x1F3\x2\x2\x1F5"+ + "\x2\x2\x1F7\x2\x2\x1F9\x2\x2\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2"+ + "\x2\x203\x2\x2\x205\x2\x2\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2"+ + "\x20F\x2\x2\x211\x2\x2\x213\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B"+ + "\x2\x2\x21D\x2\x2\x21F\x2\x2\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227\x2"+ + "\x2\x229\x2\x2\x22B\x2\x2\x3\x2)\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32"+ + ";\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\""+ + "\x5\x2\f\f\xF\xF\x202A\x202B\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~"+ + "~\x6\x2\f\f\xF\xF##^_\v\x2\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE"+ + "\xE6\xE6\xF8\xF8\xFE\xFE\x3\x2\x32;\f\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6"+ + "\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44"+ + "\x44\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4"+ + "\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4"+ + "\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4"+ + "\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||"+ + "\x913\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2"+ + "\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2"+ + "\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19"+ + "\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2"+ + "\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)"+ + "\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3"+ + "\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2"+ + "\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41"+ + "\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2"+ + "I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2"+ + "\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2"+ + "\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2"+ + "\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2"+ + "k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2"+ + "\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2"+ + "\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2"+ + "\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3"+ + "\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2"+ + "\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2"+ + "\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3"+ + "\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2"+ + "\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2"+ + "\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3"+ + "\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2"+ + "\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2"+ + "\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3"+ + "\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2"+ + "\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2"+ + "\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3"+ + "\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2"+ + "\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2"+ + "\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3"+ + "\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2"+ + "\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2"+ + "\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2"+ + "\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2"+ + "\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2"+ + "\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2"+ + "\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2"+ + "\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2"+ + "\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2"+ + "\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2"+ + "\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2"+ + "\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2"+ + "\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2"+ + "\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2"+ + "\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2"+ + "\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2"+ + "\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2"+ + "\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2"+ + "\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2"+ + "\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2"+ + "\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2"+ + "\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2"+ + "\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2"+ + "\x19B\x3\x2\x2\x2\x2\x19D\x3\x2\x2\x2\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2"+ + "\x2\x2\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2"+ + "\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2"+ + "\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2"+ + "\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2\x1CF\x3\x2\x2\x2\x2\x1D1\x3\x2"+ + "\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3\x2\x2\x2\x2\x1D7\x3\x2\x2\x2\x2"+ + "\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2\x2\x1DD\x3\x2\x2\x2\x2\x1DF\x3\x2"+ + "\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3\x2\x2\x2\x2\x1E5\x3\x2\x2\x2\x2"+ + "\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2\x2\x1EB\x3\x2\x2\x2\x2\x1ED\x3\x2"+ + "\x2\x2\x2\x1EF\x3\x2\x2\x2\x2\x1F1\x3\x2\x2\x2\x3\x22D\x3\x2\x2\x2\x5"+ + "\x22F\x3\x2\x2\x2\a\x231\x3\x2\x2\x2\t\x233\x3\x2\x2\x2\v\x235\x3\x2\x2"+ + "\x2\r\x237\x3\x2\x2\x2\xF\x239\x3\x2\x2\x2\x11\x23B\x3\x2\x2\x2\x13\x23D"+ + "\x3\x2\x2\x2\x15\x244\x3\x2\x2\x2\x17\x24E\x3\x2\x2\x2\x19\x254\x3\x2"+ + "\x2\x2\x1B\x258\x3\x2\x2\x2\x1D\x262\x3\x2\x2\x2\x1F\x26E\x3\x2\x2\x2"+ + "!\x275\x3\x2\x2\x2#\x278\x3\x2\x2\x2%\x27E\x3\x2\x2\x2\'\x283\x3\x2\x2"+ + "\x2)\x28A\x3\x2\x2\x2+\x292\x3\x2\x2\x2-\x298\x3\x2\x2\x2/\x29E\x3\x2"+ + "\x2\x2\x31\x2A3\x3\x2\x2\x2\x33\x2A8\x3\x2\x2\x2\x35\x2AD\x3\x2\x2\x2"+ + "\x37\x2B3\x3\x2\x2\x2\x39\x2BB\x3\x2\x2\x2;\x2C1\x3\x2\x2\x2=\x2C7\x3"+ + "\x2\x2\x2?\x2D2\x3\x2\x2\x2\x41\x2D8\x3\x2\x2\x2\x43\x2E1\x3\x2\x2\x2"+ + "\x45\x2E6\x3\x2\x2\x2G\x2EE\x3\x2\x2\x2I\x2F6\x3\x2\x2\x2K\x2FE\x3\x2"+ + "\x2\x2M\x306\x3\x2\x2\x2O\x30D\x3\x2\x2\x2Q\x314\x3\x2\x2\x2S\x31B\x3"+ + "\x2\x2\x2U\x322\x3\x2\x2\x2W\x329\x3\x2\x2\x2Y\x330\x3\x2\x2\x2[\x337"+ + "\x3\x2\x2\x2]\x33E\x3\x2\x2\x2_\x345\x3\x2\x2\x2\x61\x353\x3\x2\x2\x2"+ + "\x63\x357\x3\x2\x2\x2\x65\x35A\x3\x2\x2\x2g\x361\x3\x2\x2\x2i\x366\x3"+ + "\x2\x2\x2k\x36B\x3\x2\x2\x2m\x372\x3\x2\x2\x2o\x378\x3\x2\x2\x2q\x381"+ + "\x3\x2\x2\x2s\x38E\x3\x2\x2\x2u\x395\x3\x2\x2\x2w\x3A2\x3\x2\x2\x2y\x3AD"+ + "\x3\x2\x2\x2{\x3B5\x3\x2\x2\x2}\x3BE\x3\x2\x2\x2\x7F\x3C7\x3\x2\x2\x2"+ + "\x81\x3CB\x3\x2\x2\x2\x83\x3D0\x3\x2\x2\x2\x85\x3D4\x3\x2\x2\x2\x87\x3DA"+ + "\x3\x2\x2\x2\x89\x3E0\x3\x2\x2\x2\x8B\x3E6\x3\x2\x2\x2\x8D\x3EE\x3\x2"+ + "\x2\x2\x8F\x3F7\x3\x2\x2\x2\x91\x405\x3\x2\x2\x2\x93\x413\x3\x2\x2\x2"+ + "\x95\x41C\x3\x2\x2\x2\x97\x422\x3\x2\x2\x2\x99\x42B\x3\x2\x2\x2\x9B\x432"+ + "\x3\x2\x2\x2\x9D\x436\x3\x2\x2\x2\x9F\x43F\x3\x2\x2\x2\xA1\x443\x3\x2"+ + "\x2\x2\xA3\x44A\x3\x2\x2\x2\xA5\x450\x3\x2\x2\x2\xA7\x455\x3\x2\x2\x2"+ + "\xA9\x458\x3\x2\x2\x2\xAB\x45C\x3\x2\x2\x2\xAD\x467\x3\x2\x2\x2\xAF\x46A"+ + "\x3\x2\x2\x2\xB1\x470\x3\x2\x2\x2\xB3\x473\x3\x2\x2\x2\xB5\x47B\x3\x2"+ + "\x2\x2\xB7\x480\x3\x2\x2\x2\xB9\x485\x3\x2\x2\x2\xBB\x48A\x3\x2\x2\x2"+ + "\xBD\x48F\x3\x2\x2\x2\xBF\x494\x3\x2\x2\x2\xC1\x498\x3\x2\x2\x2\xC3\x49C"+ + "\x3\x2\x2\x2\xC5\x4A0\x3\x2\x2\x2\xC7\x4A5\x3\x2\x2\x2\xC9\x4B0\x3\x2"+ + "\x2\x2\xCB\x4BA\x3\x2\x2\x2\xCD\x4C5\x3\x2\x2\x2\xCF\x4D5\x3\x2\x2\x2"+ + "\xD1\x4DA\x3\x2\x2\x2\xD3\x4DD\x3\x2\x2\x2\xD5\x4E1\x3\x2\x2\x2\xD7\x4E7"+ + "\x3\x2\x2\x2\xD9\x4EB\x3\x2\x2\x2\xDB\x4F0\x3\x2\x2\x2\xDD\x4F5\x3\x2"+ + "\x2\x2\xDF\x4F9\x3\x2\x2\x2\xE1\x4FD\x3\x2\x2\x2\xE3\x505\x3\x2\x2\x2"+ + "\xE5\x50A\x3\x2\x2\x2\xE7\x50D\x3\x2\x2\x2\xE9\x516\x3\x2\x2\x2\xEB\x525"+ + "\x3\x2\x2\x2\xED\x52A\x3\x2\x2\x2\xEF\x533\x3\x2\x2\x2\xF1\x53F\x3\x2"+ + "\x2\x2\xF3\x54F\x3\x2\x2\x2\xF5\x55E\x3\x2\x2\x2\xF7\x574\x3\x2\x2\x2"+ + "\xF9\x577\x3\x2\x2\x2\xFB\x57E\x3\x2\x2\x2\xFD\x589\x3\x2\x2\x2\xFF\x592"+ + "\x3\x2\x2\x2\x101\x598\x3\x2\x2\x2\x103\x5A0\x3\x2\x2\x2\x105\x5AD\x3"+ + "\x2\x2\x2\x107\x5BA\x3\x2\x2\x2\x109\x5C7\x3\x2\x2\x2\x10B\x5CF\x3\x2"+ + "\x2\x2\x10D\x5D6\x3\x2\x2\x2\x10F\x5DA\x3\x2\x2\x2\x111\x5E1\x3\x2\x2"+ + "\x2\x113\x5EB\x3\x2\x2\x2\x115\x5F6\x3\x2\x2\x2\x117\x5FB\x3\x2\x2\x2"+ + "\x119\x606\x3\x2\x2\x2\x11B\x60C\x3\x2\x2\x2\x11D\x610\x3\x2\x2\x2\x11F"+ + "\x616\x3\x2\x2\x2\x121\x61D\x3\x2\x2\x2\x123\x624\x3\x2\x2\x2\x125\x62A"+ + "\x3\x2\x2\x2\x127\x62F\x3\x2\x2\x2\x129\x63B\x3\x2\x2\x2\x12B\x647\x3"+ + "\x2\x2\x2\x12D\x64C\x3\x2\x2\x2\x12F\x653\x3\x2\x2\x2\x131\x65C\x3\x2"+ + "\x2\x2\x133\x660\x3\x2\x2\x2\x135\x668\x3\x2\x2\x2\x137\x66F\x3\x2\x2"+ + "\x2\x139\x676\x3\x2\x2\x2\x13B\x67A\x3\x2\x2\x2\x13D\x681\x3\x2\x2\x2"+ + "\x13F\x686\x3\x2\x2\x2\x141\x68B\x3\x2\x2\x2\x143\x692\x3\x2\x2\x2\x145"+ + "\x696\x3\x2\x2\x2\x147\x69A\x3\x2\x2\x2\x149\x69F\x3\x2\x2\x2\x14B\x6A4"+ + "\x3\x2\x2\x2\x14D\x6A9\x3\x2\x2\x2\x14F\x6AC\x3\x2\x2\x2\x151\x6B1\x3"+ + "\x2\x2\x2\x153\x6B6\x3\x2\x2\x2\x155\x6BD\x3\x2\x2\x2\x157\x6C4\x3\x2"+ + "\x2\x2\x159\x6CB\x3\x2\x2\x2\x15B\x6D1\x3\x2\x2\x2\x15D\x6D9\x3\x2\x2"+ + "\x2\x15F\x6E1\x3\x2\x2\x2\x161\x6E6\x3\x2\x2\x2\x163\x6EC\x3\x2\x2\x2"+ + "\x165\x6F2\x3\x2\x2\x2\x167\x6F7\x3\x2\x2\x2\x169\x702\x3\x2\x2\x2\x16B"+ + "\x708\x3\x2\x2\x2\x16D\x70C\x3\x2\x2\x2\x16F\x70E\x3\x2\x2\x2\x171\x711"+ + "\x3\x2\x2\x2\x173\x713\x3\x2\x2\x2\x175\x715\x3\x2\x2\x2\x177\x717\x3"+ + "\x2\x2\x2\x179\x71A\x3\x2\x2\x2\x17B\x71C\x3\x2\x2\x2\x17D\x71F\x3\x2"+ + "\x2\x2\x17F\x721\x3\x2\x2\x2\x181\x723\x3\x2\x2\x2\x183\x725\x3\x2\x2"+ + "\x2\x185\x727\x3\x2\x2\x2\x187\x72A\x3\x2\x2\x2\x189\x72C\x3\x2\x2\x2"+ + "\x18B\x72E\x3\x2\x2\x2\x18D\x730\x3\x2\x2\x2\x18F\x732\x3\x2\x2\x2\x191"+ + "\x734\x3\x2\x2\x2\x193\x73F\x3\x2\x2\x2\x195\x74A\x3\x2\x2\x2\x197\x757"+ + "\x3\x2\x2\x2\x199\x761\x3\x2\x2\x2\x19B\x769\x3\x2\x2\x2\x19D\x77C\x3"+ + "\x2\x2\x2\x19F\x788\x3\x2\x2\x2\x1A1\x78A\x3\x2\x2\x2\x1A3\x798\x3\x2"+ + "\x2\x2\x1A5\x79B\x3\x2\x2\x2\x1A7\x7A5\x3\x2\x2\x2\x1A9\x7B3\x3\x2\x2"+ + "\x2\x1AB\x7C0\x3\x2\x2\x2\x1AD\x7DF\x3\x2\x2\x2\x1AF\x7E2\x3\x2\x2\x2"+ + "\x1B1\x7E9\x3\x2\x2\x2\x1B3\x7F5\x3\x2\x2\x2\x1B5\x7FD\x3\x2\x2\x2\x1B7"+ + "\x806\x3\x2\x2\x2\x1B9\x80C\x3\x2\x2\x2\x1BB\x812\x3\x2\x2\x2\x1BD\x816"+ + "\x3\x2\x2\x2\x1BF\x81B\x3\x2\x2\x2\x1C1\x820\x3\x2\x2\x2\x1C3\x827\x3"+ + "\x2\x2\x2\x1C5\x831\x3\x2\x2\x2\x1C7\x839\x3\x2\x2\x2\x1C9\x842\x3\x2"+ + "\x2\x2\x1CB\x84B\x3\x2\x2\x2\x1CD\x84F\x3\x2\x2\x2\x1CF\x853\x3\x2\x2"+ + "\x2\x1D1\x857\x3\x2\x2\x2\x1D3\x85B\x3\x2\x2\x2\x1D5\x85F\x3\x2\x2\x2"+ + "\x1D7\x863\x3\x2\x2\x2\x1D9\x867\x3\x2\x2\x2\x1DB\x86B\x3\x2\x2\x2\x1DD"+ + "\x86F\x3\x2\x2\x2\x1DF\x873\x3\x2\x2\x2\x1E1\x878\x3\x2\x2\x2\x1E3\x885"+ + "\x3\x2\x2\x2\x1E5\x88A\x3\x2\x2\x2\x1E7\x895\x3\x2\x2\x2\x1E9\x89D\x3"+ + "\x2\x2\x2\x1EB\x89F\x3\x2\x2\x2\x1ED\x8A1\x3\x2\x2\x2\x1EF\x8A5\x3\x2"+ + "\x2\x2\x1F1\x8B6\x3\x2\x2\x2\x1F3\x8B8\x3\x2\x2\x2\x1F5\x8BA\x3\x2\x2"+ + "\x2\x1F7\x8BC\x3\x2\x2\x2\x1F9\x8BE\x3\x2\x2\x2\x1FB\x8C0\x3\x2\x2\x2"+ + "\x1FD\x8C2\x3\x2\x2\x2\x1FF\x8C4\x3\x2\x2\x2\x201\x8C6\x3\x2\x2\x2\x203"+ + "\x8C8\x3\x2\x2\x2\x205\x8CA\x3\x2\x2\x2\x207\x8CC\x3\x2\x2\x2\x209\x8CE"+ + "\x3\x2\x2\x2\x20B\x8D0\x3\x2\x2\x2\x20D\x8D2\x3\x2\x2\x2\x20F\x8D4\x3"+ + "\x2\x2\x2\x211\x8D6\x3\x2\x2\x2\x213\x8D8\x3\x2\x2\x2\x215\x8DA\x3\x2"+ + "\x2\x2\x217\x8DC\x3\x2\x2\x2\x219\x8DE\x3\x2\x2\x2\x21B\x8E0\x3\x2\x2"+ + "\x2\x21D\x8E2\x3\x2\x2\x2\x21F\x8E4\x3\x2\x2\x2\x221\x8E6\x3\x2\x2\x2"+ + "\x223\x8E8\x3\x2\x2\x2\x225\x8EA\x3\x2\x2\x2\x227\x8EC\x3\x2\x2\x2\x229"+ + "\x8EE\x3\x2\x2\x2\x22B\x8F0\x3\x2\x2\x2\x22D\x22E\a\x42\x2\x2\x22E\x4"+ + "\x3\x2\x2\x2\x22F\x230\a#\x2\x2\x230\x6\x3\x2\x2\x2\x231\x232\a%\x2\x2"+ + "\x232\b\x3\x2\x2\x2\x233\x234\a&\x2\x2\x234\n\x3\x2\x2\x2\x235\x236\a"+ + "\'\x2\x2\x236\f\x3\x2\x2\x2\x237\x238\a=\x2\x2\x238\xE\x3\x2\x2\x2\x239"+ + "\x23A\a.\x2\x2\x23A\x10\x3\x2\x2\x2\x23B\x23C\a\x30\x2\x2\x23C\x12\x3"+ + "\x2\x2\x2\x23D\x23E\x5\x1F9\xFD\x2\x23E\x23F\x5\x1FD\xFF\x2\x23F\x240"+ + "\x5\x1FD\xFF\x2\x240\x241\x5\x201\x101\x2\x241\x242\x5\x21D\x10F\x2\x242"+ + "\x243\x5\x21D\x10F\x2\x243\x14\x3\x2\x2\x2\x244\x245\x5\x1F9\xFD\x2\x245"+ + "\x246\x5\x1FF\x100\x2\x246\x247\x5\x1FF\x100\x2\x247\x248\x5\x21B\x10E"+ + "\x2\x248\x249\x5\x201\x101\x2\x249\x24A\x5\x21D\x10F\x2\x24A\x24B\x5\x21D"+ + "\x10F\x2\x24B\x24C\x5\x215\x10B\x2\x24C\x24D\x5\x203\x102\x2\x24D\x16"+ + "\x3\x2\x2\x2\x24E\x24F\x5\x1F9\xFD\x2\x24F\x250\x5\x20F\x108\x2\x250\x251"+ + "\x5\x209\x105\x2\x251\x252\x5\x1F9\xFD\x2\x252\x253\x5\x21D\x10F\x2\x253"+ + "\x18\x3\x2\x2\x2\x254\x255\x5\x1F9\xFD\x2\x255\x256\x5\x213\x10A\x2\x256"+ + "\x257\x5\x1FF\x100\x2\x257\x1A\x3\x2\x2\x2\x258\x259\x5\x1F9\xFD\x2\x259"+ + "\x25A\x5\x21F\x110\x2\x25A\x25B\x5\x21F\x110\x2\x25B\x25C\x5\x21B\x10E"+ + "\x2\x25C\x25D\x5\x209\x105\x2\x25D\x25E\x5\x1FB\xFE\x2\x25E\x25F\x5\x221"+ + "\x111\x2\x25F\x260\x5\x21F\x110\x2\x260\x261\x5\x201\x101\x2\x261\x1C"+ + "\x3\x2\x2\x2\x262\x263\x5\x1F9\xFD\x2\x263\x264\x5\x217\x10C\x2\x264\x265"+ + "\x5\x217\x10C\x2\x265\x266\x5\x1F9\xFD\x2\x266\x267\x5\x1FD\xFF\x2\x267"+ + "\x268\x5\x21F\x110\x2\x268\x269\x5\x209\x105\x2\x269\x26A\x5\x223\x112"+ + "\x2\x26A\x26B\x5\x1F9\xFD\x2\x26B\x26C\x5\x21F\x110\x2\x26C\x26D\x5\x201"+ + "\x101\x2\x26D\x1E\x3\x2\x2\x2\x26E\x26F\x5\x1F9\xFD\x2\x26F\x270\x5\x217"+ + "\x10C\x2\x270\x271\x5\x217\x10C\x2\x271\x272\x5\x201\x101\x2\x272\x273"+ + "\x5\x213\x10A\x2\x273\x274\x5\x1FF\x100\x2\x274 \x3\x2\x2\x2\x275\x276"+ + "\x5\x1F9\xFD\x2\x276\x277\x5\x21D\x10F\x2\x277\"\x3\x2\x2\x2\x278\x279"+ + "\x5\x1FB\xFE\x2\x279\x27A\x5\x201\x101\x2\x27A\x27B\x5\x205\x103\x2\x27B"+ + "\x27C\x5\x209\x105\x2\x27C\x27D\x5\x213\x10A\x2\x27D$\x3\x2\x2\x2\x27E"+ + "\x27F\x5\x1FB\xFE\x2\x27F\x280\x5\x201\x101\x2\x280\x281\x5\x201\x101"+ + "\x2\x281\x282\x5\x217\x10C\x2\x282&\x3\x2\x2\x2\x283\x284\x5\x1FB\xFE"+ + "\x2\x284\x285\x5\x209\x105\x2\x285\x286\x5\x213\x10A\x2\x286\x287\x5\x1F9"+ + "\xFD\x2\x287\x288\x5\x21B\x10E\x2\x288\x289\x5\x229\x115\x2\x289(\x3\x2"+ + "\x2\x2\x28A\x28B\x5\x1FB\xFE\x2\x28B\x28C\x5\x215\x10B\x2\x28C\x28D\x5"+ + "\x215\x10B\x2\x28D\x28E\x5\x20F\x108\x2\x28E\x28F\x5\x201\x101\x2\x28F"+ + "\x290\x5\x1F9\xFD\x2\x290\x291\x5\x213\x10A\x2\x291*\x3\x2\x2\x2\x292"+ + "\x293\x5\x1FB\xFE\x2\x293\x294\x5\x229\x115\x2\x294\x295\x5\x223\x112"+ + "\x2\x295\x296\x5\x1F9\xFD\x2\x296\x297\x5\x20F\x108\x2\x297,\x3\x2\x2"+ + "\x2\x298\x299\x5\x1FB\xFE\x2\x299\x29A\x5\x229\x115\x2\x29A\x29B\x5\x21B"+ + "\x10E\x2\x29B\x29C\x5\x201\x101\x2\x29C\x29D\x5\x203\x102\x2\x29D.\x3"+ + "\x2\x2\x2\x29E\x29F\x5\x1FB\xFE\x2\x29F\x2A0\x5\x229\x115\x2\x2A0\x2A1"+ + "\x5\x21F\x110\x2\x2A1\x2A2\x5\x201\x101\x2\x2A2\x30\x3\x2\x2\x2\x2A3\x2A4"+ + "\x5\x1FD\xFF\x2\x2A4\x2A5\x5\x1F9\xFD\x2\x2A5\x2A6\x5\x20F\x108\x2\x2A6"+ + "\x2A7\x5\x20F\x108\x2\x2A7\x32\x3\x2\x2\x2\x2A8\x2A9\x5\x1FD\xFF\x2\x2A9"+ + "\x2AA\x5\x1F9\xFD\x2\x2AA\x2AB\x5\x21D\x10F\x2\x2AB\x2AC\x5\x201\x101"+ + "\x2\x2AC\x34\x3\x2\x2\x2\x2AD\x2AE\x5\x1FD\xFF\x2\x2AE\x2AF\x5\x207\x104"+ + "\x2\x2AF\x2B0\x5\x1FF\x100\x2\x2B0\x2B1\x5\x209\x105\x2\x2B1\x2B2\x5\x21B"+ + "\x10E\x2\x2B2\x36\x3\x2\x2\x2\x2B3\x2B4\x5\x1FD\xFF\x2\x2B4\x2B5\x5\x207"+ + "\x104\x2\x2B5\x2B6\x5\x1FF\x100\x2\x2B6\x2B7\x5\x21B\x10E\x2\x2B7\x2B8"+ + "\x5\x209\x105\x2\x2B8\x2B9\x5\x223\x112\x2\x2B9\x2BA\x5\x201\x101\x2\x2BA"+ + "\x38\x3\x2\x2\x2\x2BB\x2BC\x5\x1FD\xFF\x2\x2BC\x2BD\x5\x20F\x108\x2\x2BD"+ + "\x2BE\x5\x1F9\xFD\x2\x2BE\x2BF\x5\x21D\x10F\x2\x2BF\x2C0\x5\x21D\x10F"+ + "\x2\x2C0:\x3\x2\x2\x2\x2C1\x2C2\x5\x1FD\xFF\x2\x2C2\x2C3\x5\x20F\x108"+ + "\x2\x2C3\x2C4\x5\x215\x10B\x2\x2C4\x2C5\x5\x21D\x10F\x2\x2C5\x2C6\x5\x201"+ + "\x101\x2\x2C6<\x3\x2\x2\x2\x2C7\x2C8\x5\x1FD\xFF\x2\x2C8\x2C9\x5\x215"+ + "\x10B\x2\x2C9\x2CA\x5\x20F\x108\x2\x2CA\x2CB\x5\x20F\x108\x2\x2CB\x2CC"+ + "\x5\x201\x101\x2\x2CC\x2CD\x5\x1FD\xFF\x2\x2CD\x2CE\x5\x21F\x110\x2\x2CE"+ + "\x2CF\x5\x209\x105\x2\x2CF\x2D0\x5\x215\x10B\x2\x2D0\x2D1\x5\x213\x10A"+ + "\x2\x2D1>\x3\x2\x2\x2\x2D2\x2D3\x5\x1FD\xFF\x2\x2D3\x2D4\x5\x215\x10B"+ + "\x2\x2D4\x2D5\x5\x213\x10A\x2\x2D5\x2D6\x5\x21D\x10F\x2\x2D6\x2D7\x5\x21F"+ + "\x110\x2\x2D7@\x3\x2\x2\x2\x2D8\x2D9\x5\x1FF\x100\x2\x2D9\x2DA\x5\x1F9"+ + "\xFD\x2\x2DA\x2DB\x5\x21F\x110\x2\x2DB\x2DC\x5\x1F9\xFD\x2\x2DC\x2DD\x5"+ + "\x1FB\xFE\x2\x2DD\x2DE\x5\x1F9\xFD\x2\x2DE\x2DF\x5\x21D\x10F\x2\x2DF\x2E0"+ + "\x5\x201\x101\x2\x2E0\x42\x3\x2\x2\x2\x2E1\x2E2\x5\x1FF\x100\x2\x2E2\x2E3"+ + "\x5\x1F9\xFD\x2\x2E3\x2E4\x5\x21F\x110\x2\x2E4\x2E5\x5\x201\x101\x2\x2E5"+ + "\x44\x3\x2\x2\x2\x2E6\x2E7\x5\x1FF\x100\x2\x2E7\x2E8\x5\x201\x101\x2\x2E8"+ + "\x2E9\x5\x1FD\xFF\x2\x2E9\x2EA\x5\x20F\x108\x2\x2EA\x2EB\x5\x1F9\xFD\x2"+ + "\x2EB\x2EC\x5\x21B\x10E\x2\x2EC\x2ED\x5\x201\x101\x2\x2ED\x46\x3\x2\x2"+ + "\x2\x2EE\x2EF\x5\x1FF\x100\x2\x2EF\x2F0\x5\x201\x101\x2\x2F0\x2F1\x5\x203"+ + "\x102\x2\x2F1\x2F2\x5\x1FB\xFE\x2\x2F2\x2F3\x5\x215\x10B\x2\x2F3\x2F4"+ + "\x5\x215\x10B\x2\x2F4\x2F5\x5\x20F\x108\x2\x2F5H\x3\x2\x2\x2\x2F6\x2F7"+ + "\x5\x1FF\x100\x2\x2F7\x2F8\x5\x201\x101\x2\x2F8\x2F9\x5\x203\x102\x2\x2F9"+ + "\x2FA\x5\x1FB\xFE\x2\x2FA\x2FB\x5\x229\x115\x2\x2FB\x2FC\x5\x21F\x110"+ + "\x2\x2FC\x2FD\x5\x201\x101\x2\x2FDJ\x3\x2\x2\x2\x2FE\x2FF\x5\x1FF\x100"+ + "\x2\x2FF\x300\x5\x201\x101\x2\x300\x301\x5\x203\x102\x2\x301\x302\x5\x1FF"+ + "\x100\x2\x302\x303\x5\x1F9\xFD\x2\x303\x304\x5\x21F\x110\x2\x304\x305"+ + "\x5\x201\x101\x2\x305L\x3\x2\x2\x2\x306\x307\x5\x1FF\x100\x2\x307\x308"+ + "\x5\x201\x101\x2\x308\x309\x5\x203\x102\x2\x309\x30A\x5\x1FF\x100\x2\x30A"+ + "\x30B\x5\x1FB\xFE\x2\x30B\x30C\x5\x20F\x108\x2\x30CN\x3\x2\x2\x2\x30D"+ + "\x30E\x5\x1FF\x100\x2\x30E\x30F\x5\x201\x101\x2\x30F\x310\x5\x203\x102"+ + "\x2\x310\x311\x5\x1FF\x100\x2\x311\x312\x5\x201\x101\x2\x312\x313\x5\x1FD"+ + "\xFF\x2\x313P\x3\x2\x2\x2\x314\x315\x5\x1FF\x100\x2\x315\x316\x5\x201"+ + "\x101\x2\x316\x317\x5\x203\x102\x2\x317\x318\x5\x1FD\xFF\x2\x318\x319"+ + "\x5\x221\x111\x2\x319\x31A\x5\x21B\x10E\x2\x31AR\x3\x2\x2\x2\x31B\x31C"+ + "\x5\x1FF\x100\x2\x31C\x31D\x5\x201\x101\x2\x31D\x31E\x5\x203\x102\x2\x31E"+ + "\x31F\x5\x209\x105\x2\x31F\x320\x5\x213\x10A\x2\x320\x321\x5\x21F\x110"+ + "\x2\x321T\x3\x2\x2\x2\x322\x323\x5\x1FF\x100\x2\x323\x324\x5\x201\x101"+ + "\x2\x324\x325\x5\x203\x102\x2\x325\x326\x5\x20F\x108\x2\x326\x327\x5\x213"+ + "\x10A\x2\x327\x328\x5\x205\x103\x2\x328V\x3\x2\x2\x2\x329\x32A\x5\x1FF"+ + "\x100\x2\x32A\x32B\x5\x201\x101\x2\x32B\x32C\x5\x203\x102\x2\x32C\x32D"+ + "\x5\x215\x10B\x2\x32D\x32E\x5\x1FB\xFE\x2\x32E\x32F\x5\x20B\x106\x2\x32F"+ + "X\x3\x2\x2\x2\x330\x331\x5\x1FF\x100\x2\x331\x332\x5\x201\x101\x2\x332"+ + "\x333\x5\x203\x102\x2\x333\x334\x5\x21D\x10F\x2\x334\x335\x5\x213\x10A"+ + "\x2\x335\x336\x5\x205\x103\x2\x336Z\x3\x2\x2\x2\x337\x338\x5\x1FF\x100"+ + "\x2\x338\x339\x5\x201\x101\x2\x339\x33A\x5\x203\x102\x2\x33A\x33B\x5\x21D"+ + "\x10F\x2\x33B\x33C\x5\x21F\x110\x2\x33C\x33D\x5\x21B\x10E\x2\x33D\\\x3"+ + "\x2\x2\x2\x33E\x33F\x5\x1FF\x100\x2\x33F\x340\x5\x201\x101\x2\x340\x341"+ + "\x5\x203\x102\x2\x341\x342\x5\x223\x112\x2\x342\x343\x5\x1F9\xFD\x2\x343"+ + "\x344\x5\x21B\x10E\x2\x344^\x3\x2\x2\x2\x345\x346\x5\x1FF\x100\x2\x346"+ + "\x347\x5\x201\x101\x2\x347\x348\x5\x20F\x108\x2\x348\x349\x5\x201\x101"+ + "\x2\x349\x34A\x5\x21F\x110\x2\x34A\x34B\x5\x201\x101\x2\x34B\x34C\x5\x21D"+ + "\x10F\x2\x34C\x34D\x5\x201\x101\x2\x34D\x34E\x5\x21F\x110\x2\x34E\x34F"+ + "\x5\x21F\x110\x2\x34F\x350\x5\x209\x105\x2\x350\x351\x5\x213\x10A\x2\x351"+ + "\x352\x5\x205\x103\x2\x352`\x3\x2\x2\x2\x353\x354\x5\x1FF\x100\x2\x354"+ + "\x355\x5\x209\x105\x2\x355\x356\x5\x211\x109\x2\x356\x62\x3\x2\x2\x2\x357"+ + "\x358\x5\x1FF\x100\x2\x358\x359\x5\x215\x10B\x2\x359\x64\x3\x2\x2\x2\x35A"+ + "\x35B\x5\x1FF\x100\x2\x35B\x35C\x5\x215\x10B\x2\x35C\x35D\x5\x221\x111"+ + "\x2\x35D\x35E\x5\x1FB\xFE\x2\x35E\x35F\x5\x20F\x108\x2\x35F\x360\x5\x201"+ + "\x101\x2\x360\x66\x3\x2\x2\x2\x361\x362\x5\x201\x101\x2\x362\x363\x5\x1F9"+ + "\xFD\x2\x363\x364\x5\x1FD\xFF\x2\x364\x365\x5\x207\x104\x2\x365h\x3\x2"+ + "\x2\x2\x366\x367\x5\x201\x101\x2\x367\x368\x5\x20F\x108\x2\x368\x369\x5"+ + "\x21D\x10F\x2\x369\x36A\x5\x201\x101\x2\x36Aj\x3\x2\x2\x2\x36B\x36C\x5"+ + "\x201\x101\x2\x36C\x36D\x5\x20F\x108\x2\x36D\x36E\x5\x21D\x10F\x2\x36E"+ + "\x36F\x5\x201\x101\x2\x36F\x370\x5\x209\x105\x2\x370\x371\x5\x203\x102"+ + "\x2\x371l\x3\x2\x2\x2\x372\x373\x5\x201\x101\x2\x373\x374\x5\x211\x109"+ + "\x2\x374\x375\x5\x217\x10C\x2\x375\x376\x5\x21F\x110\x2\x376\x377\x5\x229"+ + "\x115\x2\x377n\x3\x2\x2\x2\x378\x379\x5\x201\x101\x2\x379\x37A\x5\x213"+ + "\x10A\x2\x37A\x37B\x5\x1FF\x100\x2\x37B\x37C\x5\x1EF\xF8\x2\x37C\x37D"+ + "\x5\x201\x101\x2\x37D\x37E\x5\x213\x10A\x2\x37E\x37F\x5\x221\x111\x2\x37F"+ + "\x380\x5\x211\x109\x2\x380p\x3\x2\x2\x2\x381\x382\x5\x201\x101\x2\x382"+ + "\x383\x5\x213\x10A\x2\x383\x384\x5\x1FF\x100\x2\x384\x385\x5\x1EF\xF8"+ + "\x2\x385\x386\x5\x203\x102\x2\x386\x387\x5\x221\x111\x2\x387\x388\x5\x213"+ + "\x10A\x2\x388\x389\x5\x1FD\xFF\x2\x389\x38A\x5\x21F\x110\x2\x38A\x38B"+ + "\x5\x209\x105\x2\x38B\x38C\x5\x215\x10B\x2\x38C\x38D\x5\x213\x10A\x2\x38D"+ + "r\x3\x2\x2\x2\x38E\x38F\x5\x201\x101\x2\x38F\x390\x5\x213\x10A\x2\x390"+ + "\x391\x5\x1FF\x100\x2\x391\x392\x5\x1EF\xF8\x2\x392\x393\x5\x209\x105"+ + "\x2\x393\x394\x5\x203\x102\x2\x394t\x3\x2\x2\x2\x395\x396\x5\x201\x101"+ + "\x2\x396\x397\x5\x213\x10A\x2\x397\x398\x5\x1FF\x100\x2\x398\x399\x5\x1EF"+ + "\xF8\x2\x399\x39A\x5\x217\x10C\x2\x39A\x39B\x5\x21B\x10E\x2\x39B\x39C"+ + "\x5\x215\x10B\x2\x39C\x39D\x5\x217\x10C\x2\x39D\x39E\x5\x201\x101\x2\x39E"+ + "\x39F\x5\x21B\x10E\x2\x39F\x3A0\x5\x21F\x110\x2\x3A0\x3A1\x5\x229\x115"+ + "\x2\x3A1v\x3\x2\x2\x2\x3A2\x3A3\x5\x201\x101\x2\x3A3\x3A4\x5\x213\x10A"+ + "\x2\x3A4\x3A5\x5\x1FF\x100\x2\x3A5\x3A6\x5\x1EF\xF8\x2\x3A6\x3A7\x5\x21D"+ + "\x10F\x2\x3A7\x3A8\x5\x201\x101\x2\x3A8\x3A9\x5\x20F\x108\x2\x3A9\x3AA"+ + "\x5\x201\x101\x2\x3AA\x3AB\x5\x1FD\xFF\x2\x3AB\x3AC\x5\x21F\x110\x2\x3AC"+ + "x\x3\x2\x2\x2\x3AD\x3AE\x5\x201\x101\x2\x3AE\x3AF\x5\x213\x10A\x2\x3AF"+ + "\x3B0\x5\x1FF\x100\x2\x3B0\x3B1\x5\x1EF\xF8\x2\x3B1\x3B2\x5\x21D\x10F"+ + "\x2\x3B2\x3B3\x5\x221\x111\x2\x3B3\x3B4\x5\x1FB\xFE\x2\x3B4z\x3\x2\x2"+ + "\x2\x3B5\x3B6\x5\x201\x101\x2\x3B6\x3B7\x5\x213\x10A\x2\x3B7\x3B8\x5\x1FF"+ + "\x100\x2\x3B8\x3B9\x5\x1EF\xF8\x2\x3B9\x3BA\x5\x21F\x110\x2\x3BA\x3BB"+ + "\x5\x229\x115\x2\x3BB\x3BC\x5\x217\x10C\x2\x3BC\x3BD\x5\x201\x101\x2\x3BD"+ + "|\x3\x2\x2\x2\x3BE\x3BF\x5\x201\x101\x2\x3BF\x3C0\x5\x213\x10A\x2\x3C0"+ + "\x3C1\x5\x1FF\x100\x2\x3C1\x3C2\x5\x1EF\xF8\x2\x3C2\x3C3\x5\x225\x113"+ + "\x2\x3C3\x3C4\x5\x209\x105\x2\x3C4\x3C5\x5\x21F\x110\x2\x3C5\x3C6\x5\x207"+ + "\x104\x2\x3C6~\x3\x2\x2\x2\x3C7\x3C8\x5\x201\x101\x2\x3C8\x3C9\x5\x213"+ + "\x10A\x2\x3C9\x3CA\x5\x1FF\x100\x2\x3CA\x80\x3\x2\x2\x2\x3CB\x3CC\x5\x201"+ + "\x101\x2\x3CC\x3CD\x5\x213\x10A\x2\x3CD\x3CE\x5\x221\x111\x2\x3CE\x3CF"+ + "\x5\x211\x109\x2\x3CF\x82\x3\x2\x2\x2\x3D0\x3D1\x5\x201\x101\x2\x3D1\x3D2"+ + "\x5\x219\x10D\x2\x3D2\x3D3\x5\x223\x112\x2\x3D3\x84\x3\x2\x2\x2\x3D4\x3D5"+ + "\x5\x201\x101\x2\x3D5\x3D6\x5\x21B\x10E\x2\x3D6\x3D7\x5\x1F9\xFD\x2\x3D7"+ + "\x3D8\x5\x21D\x10F\x2\x3D8\x3D9\x5\x201\x101\x2\x3D9\x86\x3\x2\x2\x2\x3DA"+ + "\x3DB\x5\x201\x101\x2\x3DB\x3DC\x5\x21B\x10E\x2\x3DC\x3DD\x5\x21B\x10E"+ + "\x2\x3DD\x3DE\x5\x215\x10B\x2\x3DE\x3DF\x5\x21B\x10E\x2\x3DF\x88\x3\x2"+ + "\x2\x2\x3E0\x3E1\x5\x201\x101\x2\x3E1\x3E2\x5\x223\x112\x2\x3E2\x3E3\x5"+ + "\x201\x101\x2\x3E3\x3E4\x5\x213\x10A\x2\x3E4\x3E5\x5\x21F\x110\x2\x3E5"+ + "\x8A\x3\x2\x2\x2\x3E6\x3E7\x5\x201\x101\x2\x3E7\x3E8\x5\x227\x114\x2\x3E8"+ + "\x3E9\x5\x209\x105\x2\x3E9\x3EA\x5\x21F\x110\x2\x3EA\x3EB\x5\x1EF\xF8"+ + "\x2\x3EB\x3EC\x5\x1FF\x100\x2\x3EC\x3ED\x5\x215\x10B\x2\x3ED\x8C\x3\x2"+ + "\x2\x2\x3EE\x3EF\x5\x201\x101\x2\x3EF\x3F0\x5\x227\x114\x2\x3F0\x3F1\x5"+ + "\x209\x105\x2\x3F1\x3F2\x5\x21F\x110\x2\x3F2\x3F3\x5\x1EF\xF8\x2\x3F3"+ + "\x3F4\x5\x203\x102\x2\x3F4\x3F5\x5\x215\x10B\x2\x3F5\x3F6\x5\x21B\x10E"+ + "\x2\x3F6\x8E\x3\x2\x2\x2\x3F7\x3F8\x5\x201\x101\x2\x3F8\x3F9\x5\x227\x114"+ + "\x2\x3F9\x3FA\x5\x209\x105\x2\x3FA\x3FB\x5\x21F\x110\x2\x3FB\x3FC\x5\x1EF"+ + "\xF8\x2\x3FC\x3FD\x5\x203\x102\x2\x3FD\x3FE\x5\x221\x111\x2\x3FE\x3FF"+ + "\x5\x213\x10A\x2\x3FF\x400\x5\x1FD\xFF\x2\x400\x401\x5\x21F\x110\x2\x401"+ + "\x402\x5\x209\x105\x2\x402\x403\x5\x215\x10B\x2\x403\x404\x5\x213\x10A"+ + "\x2\x404\x90\x3\x2\x2\x2\x405\x406\x5\x201\x101\x2\x406\x407\x5\x227\x114"+ + "\x2\x407\x408\x5\x209\x105\x2\x408\x409\x5\x21F\x110\x2\x409\x40A\x5\x1EF"+ + "\xF8\x2\x40A\x40B\x5\x217\x10C\x2\x40B\x40C\x5\x21B\x10E\x2\x40C\x40D"+ + "\x5\x215\x10B\x2\x40D\x40E\x5\x217\x10C\x2\x40E\x40F\x5\x201\x101\x2\x40F"+ + "\x410\x5\x21B\x10E\x2\x410\x411\x5\x21F\x110\x2\x411\x412\x5\x229\x115"+ + "\x2\x412\x92\x3\x2\x2\x2\x413\x414\x5\x201\x101\x2\x414\x415\x5\x227\x114"+ + "\x2\x415\x416\x5\x209\x105\x2\x416\x417\x5\x21F\x110\x2\x417\x418\x5\x1EF"+ + "\xF8\x2\x418\x419\x5\x21D\x10F\x2\x419\x41A\x5\x221\x111\x2\x41A\x41B"+ + "\x5\x1FB\xFE\x2\x41B\x94\x3\x2\x2\x2\x41C\x41D\x5\x203\x102\x2\x41D\x41E"+ + "\x5\x1F9\xFD\x2\x41E\x41F\x5\x20F\x108\x2\x41F\x420\x5\x21D\x10F\x2\x420"+ + "\x421\x5\x201\x101\x2\x421\x96\x3\x2\x2\x2\x422\x423\x5\x203\x102\x2\x423"+ + "\x424\x5\x209\x105\x2\x424\x425\x5\x20F\x108\x2\x425\x426\x5\x201\x101"+ + "\x2\x426\x427\x5\x1FD\xFF\x2\x427\x428\x5\x215\x10B\x2\x428\x429\x5\x217"+ + "\x10C\x2\x429\x42A\x5\x229\x115\x2\x42A\x98\x3\x2\x2\x2\x42B\x42C\x5\x203"+ + "\x102\x2\x42C\x42D\x5\x21B\x10E\x2\x42D\x42E\x5\x209\x105\x2\x42E\x42F"+ + "\x5\x201\x101\x2\x42F\x430\x5\x213\x10A\x2\x430\x431\x5\x1FF\x100\x2\x431"+ + "\x9A\x3\x2\x2\x2\x432\x433\x5\x203\x102\x2\x433\x434\x5\x215\x10B\x2\x434"+ + "\x435\x5\x21B\x10E\x2\x435\x9C\x3\x2\x2\x2\x436\x437\x5\x203\x102\x2\x437"+ + "\x438\x5\x221\x111\x2\x438\x439\x5\x213\x10A\x2\x439\x43A\x5\x1FD\xFF"+ + "\x2\x43A\x43B\x5\x21F\x110\x2\x43B\x43C\x5\x209\x105\x2\x43C\x43D\x5\x215"+ + "\x10B\x2\x43D\x43E\x5\x213\x10A\x2\x43E\x9E\x3\x2\x2\x2\x43F\x440\x5\x205"+ + "\x103\x2\x440\x441\x5\x201\x101\x2\x441\x442\x5\x21F\x110\x2\x442\xA0"+ + "\x3\x2\x2\x2\x443\x444\x5\x205\x103\x2\x444\x445\x5\x20F\x108\x2\x445"+ + "\x446\x5\x215\x10B\x2\x446\x447\x5\x1FB\xFE\x2\x447\x448\x5\x1F9\xFD\x2"+ + "\x448\x449\x5\x20F\x108\x2\x449\xA2\x3\x2\x2\x2\x44A\x44B\x5\x205\x103"+ + "\x2\x44B\x44C\x5\x215\x10B\x2\x44C\x44D\x5\x21D\x10F\x2\x44D\x44E\x5\x221"+ + "\x111\x2\x44E\x44F\x5\x1FB\xFE\x2\x44F\xA4\x3\x2\x2\x2\x450\x451\x5\x205"+ + "\x103\x2\x451\x452\x5\x215\x10B\x2\x452\x453\x5\x21F\x110\x2\x453\x454"+ + "\x5\x215\x10B\x2\x454\xA6\x3\x2\x2\x2\x455\x456\x5\x209\x105\x2\x456\x457"+ + "\x5\x203\x102\x2\x457\xA8\x3\x2\x2\x2\x458\x459\x5\x209\x105\x2\x459\x45A"+ + "\x5\x211\x109\x2\x45A\x45B\x5\x217\x10C\x2\x45B\xAA\x3\x2\x2\x2\x45C\x45D"+ + "\x5\x209\x105\x2\x45D\x45E\x5\x211\x109\x2\x45E\x45F\x5\x217\x10C\x2\x45F"+ + "\x460\x5\x20F\x108\x2\x460\x461\x5\x201\x101\x2\x461\x462\x5\x211\x109"+ + "\x2\x462\x463\x5\x201\x101\x2\x463\x464\x5\x213\x10A\x2\x464\x465\x5\x21F"+ + "\x110\x2\x465\x466\x5\x21D\x10F\x2\x466\xAC\x3\x2\x2\x2\x467\x468\x5\x209"+ + "\x105\x2\x468\x469\x5\x213\x10A\x2\x469\xAE\x3\x2\x2\x2\x46A\x46B\x5\x209"+ + "\x105\x2\x46B\x46C\x5\x213\x10A\x2\x46C\x46D\x5\x217\x10C\x2\x46D\x46E"+ + "\x5\x221\x111\x2\x46E\x46F\x5\x21F\x110\x2\x46F\xB0\x3\x2\x2\x2\x470\x471"+ + "\x5\x209\x105\x2\x471\x472\x5\x21D\x10F\x2\x472\xB2\x3\x2\x2\x2\x473\x474"+ + "\x5\x209\x105\x2\x474\x475\x5\x213\x10A\x2\x475\x476\x5\x21F\x110\x2\x476"+ + "\x477\x5\x201\x101\x2\x477\x478\x5\x205\x103\x2\x478\x479\x5\x201\x101"+ + "\x2\x479\x47A\x5\x21B\x10E\x2\x47A\xB4\x3\x2\x2\x2\x47B\x47C\x5\x20D\x107"+ + "\x2\x47C\x47D\x5\x209\x105\x2\x47D\x47E\x5\x20F\x108\x2\x47E\x47F\x5\x20F"+ + "\x108\x2\x47F\xB6\x3\x2\x2\x2\x480\x481\x5\x20F\x108\x2\x481\x482\x5\x215"+ + "\x10B\x2\x482\x483\x5\x1F9\xFD\x2\x483\x484\x5\x1FF\x100\x2\x484\xB8\x3"+ + "\x2\x2\x2\x485\x486\x5\x20F\x108\x2\x486\x487\x5\x215\x10B\x2\x487\x488"+ + "\x5\x1FD\xFF\x2\x488\x489\x5\x20D\x107\x2\x489\xBA\x3\x2\x2\x2\x48A\x48B"+ + "\x5\x20F\x108\x2\x48B\x48C\x5\x215\x10B\x2\x48C\x48D\x5\x213\x10A\x2\x48D"+ + "\x48E\x5\x205\x103\x2\x48E\xBC\x3\x2\x2\x2\x48F\x490\x5\x20F\x108\x2\x490"+ + "\x491\x5\x215\x10B\x2\x491\x492\x5\x215\x10B\x2\x492\x493\x5\x217\x10C"+ + "\x2\x493\xBE\x3\x2\x2\x2\x494\x495\x5\x20F\x108\x2\x495\x496\x5\x201\x101"+ + "\x2\x496\x497\x5\x213\x10A\x2\x497\xC0\x3\x2\x2\x2\x498\x499\x5\x20F\x108"+ + "\x2\x499\x49A\x5\x201\x101\x2\x49A\x49B\x5\x21F\x110\x2\x49B\xC2\x3\x2"+ + "\x2\x2\x49C\x49D\x5\x20F\x108\x2\x49D\x49E\x5\x209\x105\x2\x49E\x49F\x5"+ + "\x1FB\xFE\x2\x49F\xC4\x3\x2\x2\x2\x4A0\x4A1\x5\x20F\x108\x2\x4A1\x4A2"+ + "\x5\x209\x105\x2\x4A2\x4A3\x5\x20D\x107\x2\x4A3\x4A4\x5\x201\x101\x2\x4A4"+ + "\xC6\x3\x2\x2\x2\x4A5\x4A6\x5\x20F\x108\x2\x4A6\x4A7\x5\x209\x105\x2\x4A7"+ + "\x4A8\x5\x213\x10A\x2\x4A8\x4A9\x5\x201\x101\x2\x4A9\x4AA\x5\x1EF\xF8"+ + "\x2\x4AA\x4AB\x5\x209\x105\x2\x4AB\x4AC\x5\x213\x10A\x2\x4AC\x4AD\x5\x217"+ + "\x10C\x2\x4AD\x4AE\x5\x221\x111\x2\x4AE\x4AF\x5\x21F\x110\x2\x4AF\xC8"+ + "\x3\x2\x2\x2\x4B0\x4B1\x5\x20F\x108\x2\x4B1\x4B2\x5\x215\x10B\x2\x4B2"+ + "\x4B3\x5\x1FD\xFF\x2\x4B3\x4B4\x5\x20D\x107\x2\x4B4\x4B5\x5\x1EF\xF8\x2"+ + "\x4B5\x4B6\x5\x21B\x10E\x2\x4B6\x4B7\x5\x201\x101\x2\x4B7\x4B8\x5\x1F9"+ + "\xFD\x2\x4B8\x4B9\x5\x1FF\x100\x2\x4B9\xCA\x3\x2\x2\x2\x4BA\x4BB\x5\x20F"+ + "\x108\x2\x4BB\x4BC\x5\x215\x10B\x2\x4BC\x4BD\x5\x1FD\xFF\x2\x4BD\x4BE"+ + "\x5\x20D\x107\x2\x4BE\x4BF\x5\x1EF\xF8\x2\x4BF\x4C0\x5\x225\x113\x2\x4C0"+ + "\x4C1\x5\x21B\x10E\x2\x4C1\x4C2\x5\x209\x105\x2\x4C2\x4C3\x5\x21F\x110"+ + "\x2\x4C3\x4C4\x5\x201\x101\x2\x4C4\xCC\x3\x2\x2\x2\x4C5\x4C6\x5\x20F\x108"+ + "\x2\x4C6\x4C7\x5\x215\x10B\x2\x4C7\x4C8\x5\x1FD\xFF\x2\x4C8\x4C9\x5\x20D"+ + "\x107\x2\x4C9\x4CA\x5\x1EF\xF8\x2\x4CA\x4CB\x5\x21B\x10E\x2\x4CB\x4CC"+ + "\x5\x201\x101\x2\x4CC\x4CD\x5\x1F9\xFD\x2\x4CD\x4CE\x5\x1FF\x100\x2\x4CE"+ + "\x4CF\x5\x1EF\xF8\x2\x4CF\x4D0\x5\x225\x113\x2\x4D0\x4D1\x5\x21B\x10E"+ + "\x2\x4D1\x4D2\x5\x209\x105\x2\x4D2\x4D3\x5\x21F\x110\x2\x4D3\x4D4\x5\x201"+ + "\x101\x2\x4D4\xCE\x3\x2\x2\x2\x4D5\x4D6\x5\x20F\x108\x2\x4D6\x4D7\x5\x21D"+ + "\x10F\x2\x4D7\x4D8\x5\x201\x101\x2\x4D8\x4D9\x5\x21F\x110\x2\x4D9\xD0"+ + "\x3\x2\x2\x2\x4DA\x4DB\x5\x211\x109\x2\x4DB\x4DC\x5\x201\x101\x2\x4DC"+ + "\xD2\x3\x2\x2\x2\x4DD\x4DE\x5\x211\x109\x2\x4DE\x4DF\x5\x209\x105\x2\x4DF"+ + "\x4E0\x5\x1FF\x100\x2\x4E0\xD4\x3\x2\x2\x2\x4E1\x4E2\x5\x211\x109\x2\x4E2"+ + "\x4E3\x5\x20D\x107\x2\x4E3\x4E4\x5\x1FF\x100\x2\x4E4\x4E5\x5\x209\x105"+ + "\x2\x4E5\x4E6\x5\x21B\x10E\x2\x4E6\xD6\x3\x2\x2\x2\x4E7\x4E8\x5\x211\x109"+ + "\x2\x4E8\x4E9\x5\x215\x10B\x2\x4E9\x4EA\x5\x1FF\x100\x2\x4EA\xD8\x3\x2"+ + "\x2\x2\x4EB\x4EC\x5\x213\x10A\x2\x4EC\x4ED\x5\x1F9\xFD\x2\x4ED\x4EE\x5"+ + "\x211\x109\x2\x4EE\x4EF\x5\x201\x101\x2\x4EF\xDA\x3\x2\x2\x2\x4F0\x4F1"+ + "\x5\x213\x10A\x2\x4F1\x4F2\x5\x201\x101\x2\x4F2\x4F3\x5\x227\x114\x2\x4F3"+ + "\x4F4\x5\x21F\x110\x2\x4F4\xDC\x3\x2\x2\x2\x4F5\x4F6\x5\x213\x10A\x2\x4F6"+ + "\x4F7\x5\x201\x101\x2\x4F7\x4F8\x5\x225\x113\x2\x4F8\xDE\x3\x2\x2\x2\x4F9"+ + "\x4FA\x5\x213\x10A\x2\x4FA\x4FB\x5\x215\x10B\x2\x4FB\x4FC\x5\x21F\x110"+ + "\x2\x4FC\xE0\x3\x2\x2\x2\x4FD\x4FE\x5\x213\x10A\x2\x4FE\x4FF\x5\x215\x10B"+ + "\x2\x4FF\x500\x5\x21F\x110\x2\x500\x501\x5\x207\x104\x2\x501\x502\x5\x209"+ + "\x105\x2\x502\x503\x5\x213\x10A\x2\x503\x504\x5\x205\x103\x2\x504\xE2"+ + "\x3\x2\x2\x2\x505\x506\x5\x213\x10A\x2\x506\x507\x5\x221\x111\x2\x507"+ + "\x508\x5\x20F\x108\x2\x508\x509\x5\x20F\x108\x2\x509\xE4\x3\x2\x2\x2\x50A"+ + "\x50B\x5\x215\x10B\x2\x50B\x50C\x5\x213\x10A\x2\x50C\xE6\x3\x2\x2\x2\x50D"+ + "\x50E\x5\x215\x10B\x2\x50E\x50F\x5\x213\x10A\x2\x50F\x510\x5\x1EF\xF8"+ + "\x2\x510\x511\x5\x201\x101\x2\x511\x512\x5\x21B\x10E\x2\x512\x513\x5\x21B"+ + "\x10E\x2\x513\x514\x5\x215\x10B\x2\x514\x515\x5\x21B\x10E\x2\x515\xE8"+ + "\x3\x2\x2\x2\x516\x517\x5\x215\x10B\x2\x517\x518\x5\x213\x10A\x2\x518"+ + "\x519\x5\x1EF\xF8\x2\x519\x51A\x5\x20F\x108\x2\x51A\x51B\x5\x215\x10B"+ + "\x2\x51B\x51C\x5\x1FD\xFF\x2\x51C\x51D\x5\x1F9\xFD\x2\x51D\x51E\x5\x20F"+ + "\x108\x2\x51E\x51F\x5\x1EF\xF8\x2\x51F\x520\x5\x201\x101\x2\x520\x521"+ + "\x5\x21B\x10E\x2\x521\x522\x5\x21B\x10E\x2\x522\x523\x5\x215\x10B\x2\x523"+ + "\x524\x5\x21B\x10E\x2\x524\xEA\x3\x2\x2\x2\x525\x526\x5\x215\x10B\x2\x526"+ + "\x527\x5\x217\x10C\x2\x527\x528\x5\x201\x101\x2\x528\x529\x5\x213\x10A"+ + "\x2\x529\xEC\x3\x2\x2\x2\x52A\x52B\x5\x215\x10B\x2\x52B\x52C\x5\x217\x10C"+ + "\x2\x52C\x52D\x5\x21F\x110\x2\x52D\x52E\x5\x209\x105\x2\x52E\x52F\x5\x215"+ + "\x10B\x2\x52F\x530\x5\x213\x10A\x2\x530\x531\x5\x1F9\xFD\x2\x531\x532"+ + "\x5\x20F\x108\x2\x532\xEE\x3\x2\x2\x2\x533\x534\x5\x215\x10B\x2\x534\x535"+ + "\x5\x217\x10C\x2\x535\x536\x5\x21F\x110\x2\x536\x537\x5\x209\x105\x2\x537"+ + "\x538\x5\x215\x10B\x2\x538\x539\x5\x213\x10A\x2\x539\x53A\x5\x1EF\xF8"+ + "\x2\x53A\x53B\x5\x1FB\xFE\x2\x53B\x53C\x5\x1F9\xFD\x2\x53C\x53D\x5\x21D"+ + "\x10F\x2\x53D\x53E\x5\x201\x101\x2\x53E\xF0\x3\x2\x2\x2\x53F\x540\x5\x215"+ + "\x10B\x2\x540\x541\x5\x217\x10C\x2\x541\x542\x5\x21F\x110\x2\x542\x543"+ + "\x5\x209\x105\x2\x543\x544\x5\x215\x10B\x2\x544\x545\x5\x213\x10A\x2\x545"+ + "\x546\x5\x1EF\xF8\x2\x546\x547\x5\x201\x101\x2\x547\x548\x5\x227\x114"+ + "\x2\x548\x549\x5\x217\x10C\x2\x549\x54A\x5\x20F\x108\x2\x54A\x54B\x5\x209"+ + "\x105\x2\x54B\x54C\x5\x1FD\xFF\x2\x54C\x54D\x5\x209\x105\x2\x54D\x54E"+ + "\x5\x21F\x110\x2\x54E\xF2\x3\x2\x2\x2\x54F\x550\x5\x215\x10B\x2\x550\x551"+ + "\x5\x217\x10C\x2\x551\x552\x5\x21F\x110\x2\x552\x553\x5\x209\x105\x2\x553"+ + "\x554\x5\x215\x10B\x2\x554\x555\x5\x213\x10A\x2\x555\x556\x5\x1EF\xF8"+ + "\x2\x556\x557\x5\x1FD\xFF\x2\x557\x558\x5\x215\x10B\x2\x558\x559\x5\x211"+ + "\x109\x2\x559\x55A\x5\x217\x10C\x2\x55A\x55B\x5\x1F9\xFD\x2\x55B\x55C"+ + "\x5\x21B\x10E\x2\x55C\x55D\x5\x201\x101\x2\x55D\xF4\x3\x2\x2\x2\x55E\x55F"+ + "\x5\x215\x10B\x2\x55F\x560\x5\x217\x10C\x2\x560\x561\x5\x21F\x110\x2\x561"+ + "\x562\x5\x209\x105\x2\x562\x563\x5\x215\x10B\x2\x563\x564\x5\x213\x10A"+ + "\x2\x564\x565\x5\x1EF\xF8\x2\x565\x566\x5\x217\x10C\x2\x566\x567\x5\x21B"+ + "\x10E\x2\x567\x568\x5\x209\x105\x2\x568\x569\x5\x223\x112\x2\x569\x56A"+ + "\x5\x1F9\xFD\x2\x56A\x56B\x5\x21F\x110\x2\x56B\x56C\x5\x201\x101\x2\x56C"+ + "\x56D\x5\x1EF\xF8\x2\x56D\x56E\x5\x211\x109\x2\x56E\x56F\x5\x215\x10B"+ + "\x2\x56F\x570\x5\x1FF\x100\x2\x570\x571\x5\x221\x111\x2\x571\x572\x5\x20F"+ + "\x108\x2\x572\x573\x5\x201\x101\x2\x573\xF6\x3\x2\x2\x2\x574\x575\x5\x215"+ + "\x10B\x2\x575\x576\x5\x21B\x10E\x2\x576\xF8\x3\x2\x2\x2\x577\x578\x5\x215"+ + "\x10B\x2\x578\x579\x5\x221\x111\x2\x579\x57A\x5\x21F\x110\x2\x57A\x57B"+ + "\x5\x217\x10C\x2\x57B\x57C\x5\x221\x111\x2\x57C\x57D\x5\x21F\x110\x2\x57D"+ + "\xFA\x3\x2\x2\x2\x57E\x57F\x5\x217\x10C\x2\x57F\x580\x5\x1F9\xFD\x2\x580"+ + "\x581\x5\x21B\x10E\x2\x581\x582\x5\x1F9\xFD\x2\x582\x583\x5\x211\x109"+ + "\x2\x583\x584\x5\x1F9\xFD\x2\x584\x585\x5\x21B\x10E\x2\x585\x586\x5\x21B"+ + "\x10E\x2\x586\x587\x5\x1F9\xFD\x2\x587\x588\x5\x229\x115\x2\x588\xFC\x3"+ + "\x2\x2\x2\x589\x58A\x5\x217\x10C\x2\x58A\x58B\x5\x21B\x10E\x2\x58B\x58C"+ + "\x5\x201\x101\x2\x58C\x58D\x5\x21D\x10F\x2\x58D\x58E\x5\x201\x101\x2\x58E"+ + "\x58F\x5\x21B\x10E\x2\x58F\x590\x5\x223\x112\x2\x590\x591\x5\x201\x101"+ + "\x2\x591\xFE\x3\x2\x2\x2\x592\x593\x5\x217\x10C\x2\x593\x594\x5\x21B\x10E"+ + "\x2\x594\x595\x5\x209\x105\x2\x595\x596\x5\x213\x10A\x2\x596\x597\x5\x21F"+ + "\x110\x2\x597\x100\x3\x2\x2\x2\x598\x599\x5\x217\x10C\x2\x599\x59A\x5"+ + "\x21B\x10E\x2\x59A\x59B\x5\x209\x105\x2\x59B\x59C\x5\x223\x112\x2\x59C"+ + "\x59D\x5\x1F9\xFD\x2\x59D\x59E\x5\x21F\x110\x2\x59E\x59F\x5\x201\x101"+ + "\x2\x59F\x102\x3\x2\x2\x2\x5A0\x5A1\x5\x217\x10C\x2\x5A1\x5A2\x5\x21B"+ + "\x10E\x2\x5A2\x5A3\x5\x215\x10B\x2\x5A3\x5A4\x5\x217\x10C\x2\x5A4\x5A5"+ + "\x5\x201\x101\x2\x5A5\x5A6\x5\x21B\x10E\x2\x5A6\x5A7\x5\x21F\x110\x2\x5A7"+ + "\x5A8\x5\x229\x115\x2\x5A8\x5A9\x5\x1EF\xF8\x2\x5A9\x5AA\x5\x205\x103"+ + "\x2\x5AA\x5AB\x5\x201\x101\x2\x5AB\x5AC\x5\x21F\x110\x2\x5AC\x104\x3\x2"+ + "\x2\x2\x5AD\x5AE\x5\x217\x10C\x2\x5AE\x5AF\x5\x21B\x10E\x2\x5AF\x5B0\x5"+ + "\x215\x10B\x2\x5B0\x5B1\x5\x217\x10C\x2\x5B1\x5B2\x5\x201\x101\x2\x5B2"+ + "\x5B3\x5\x21B\x10E\x2\x5B3\x5B4\x5\x21F\x110\x2\x5B4\x5B5\x5\x229\x115"+ + "\x2\x5B5\x5B6\x5\x1EF\xF8\x2\x5B6\x5B7\x5\x20F\x108\x2\x5B7\x5B8\x5\x201"+ + "\x101\x2\x5B8\x5B9\x5\x21F\x110\x2\x5B9\x106\x3\x2\x2\x2\x5BA\x5BB\x5"+ + "\x217\x10C\x2\x5BB\x5BC\x5\x21B\x10E\x2\x5BC\x5BD\x5\x215\x10B\x2\x5BD"+ + "\x5BE\x5\x217\x10C\x2\x5BE\x5BF\x5\x201\x101\x2\x5BF\x5C0\x5\x21B\x10E"+ + "\x2\x5C0\x5C1\x5\x21F\x110\x2\x5C1\x5C2\x5\x229\x115\x2\x5C2\x5C3\x5\x1EF"+ + "\xF8\x2\x5C3\x5C4\x5\x21D\x10F\x2\x5C4\x5C5\x5\x201\x101\x2\x5C5\x5C6"+ + "\x5\x21F\x110\x2\x5C6\x108\x3\x2\x2\x2\x5C7\x5C8\x5\x217\x10C\x2\x5C8"+ + "\x5C9\x5\x21F\x110\x2\x5C9\x5CA\x5\x21B\x10E\x2\x5CA\x5CB\x5\x21D\x10F"+ + "\x2\x5CB\x5CC\x5\x1F9\xFD\x2\x5CC\x5CD\x5\x203\x102\x2\x5CD\x5CE\x5\x201"+ + "\x101\x2\x5CE\x10A\x3\x2\x2\x2\x5CF\x5D0\x5\x217\x10C\x2\x5D0\x5D1\x5"+ + "\x221\x111\x2\x5D1\x5D2\x5\x1FB\xFE\x2\x5D2\x5D3\x5\x20F\x108\x2\x5D3"+ + "\x5D4\x5\x209\x105\x2\x5D4\x5D5\x5\x1FD\xFF\x2\x5D5\x10C\x3\x2\x2\x2\x5D6"+ + "\x5D7\x5\x217\x10C\x2\x5D7\x5D8\x5\x221\x111\x2\x5D8\x5D9\x5\x21F\x110"+ + "\x2\x5D9\x10E\x3\x2\x2\x2\x5DA\x5DB\x5\x21B\x10E\x2\x5DB\x5DC\x5\x1F9"+ + "\xFD\x2\x5DC\x5DD\x5\x213\x10A\x2\x5DD\x5DE\x5\x1FF\x100\x2\x5DE\x5DF"+ + "\x5\x215\x10B\x2\x5DF\x5E0\x5\x211\x109\x2\x5E0\x110\x3\x2\x2\x2\x5E1"+ + "\x5E2\x5\x21B\x10E\x2\x5E2\x5E3\x5\x1F9\xFD\x2\x5E3\x5E4\x5\x213\x10A"+ + "\x2\x5E4\x5E5\x5\x1FF\x100\x2\x5E5\x5E6\x5\x215\x10B\x2\x5E6\x5E7\x5\x211"+ + "\x109\x2\x5E7\x5E8\x5\x209\x105\x2\x5E8\x5E9\x5\x22B\x116\x2\x5E9\x5EA"+ + "\x5\x201\x101\x2\x5EA\x112\x3\x2\x2\x2\x5EB\x5EC\x5\x21B\x10E\x2\x5EC"+ + "\x5ED\x5\x1F9\xFD\x2\x5ED\x5EE\x5\x209\x105\x2\x5EE\x5EF\x5\x21D\x10F"+ + "\x2\x5EF\x5F0\x5\x201\x101\x2\x5F0\x5F1\x5\x201\x101\x2\x5F1\x5F2\x5\x223"+ + "\x112\x2\x5F2\x5F3\x5\x201\x101\x2\x5F3\x5F4\x5\x213\x10A\x2\x5F4\x5F5"+ + "\x5\x21F\x110\x2\x5F5\x114\x3\x2\x2\x2\x5F6\x5F7\x5\x21B\x10E\x2\x5F7"+ + "\x5F8\x5\x201\x101\x2\x5F8\x5F9\x5\x1F9\xFD\x2\x5F9\x5FA\x5\x1FF\x100"+ + "\x2\x5FA\x116\x3\x2\x2\x2\x5FB\x5FC\x5\x21B\x10E\x2\x5FC\x5FD\x5\x201"+ + "\x101\x2\x5FD\x5FE\x5\x1F9\xFD\x2\x5FE\x5FF\x5\x1FF\x100\x2\x5FF\x600"+ + "\x5\x1EF\xF8\x2\x600\x601\x5\x225\x113\x2\x601\x602\x5\x21B\x10E\x2\x602"+ + "\x603\x5\x209\x105\x2\x603\x604\x5\x21F\x110\x2\x604\x605\x5\x201\x101"+ + "\x2\x605\x118\x3\x2\x2\x2\x606\x607\x5\x21B\x10E\x2\x607\x608\x5\x201"+ + "\x101\x2\x608\x609\x5\x1FF\x100\x2\x609\x60A\x5\x209\x105\x2\x60A\x60B"+ + "\x5\x211\x109\x2\x60B\x11A\x3\x2\x2\x2\x60C\x60D\x5\x21B\x10E\x2\x60D"+ + "\x60E\x5\x201\x101\x2\x60E\x60F\x5\x211\x109\x2\x60F\x11C\x3\x2\x2\x2"+ + "\x610\x611\x5\x21B\x10E\x2\x611\x612\x5\x201\x101\x2\x612\x613\x5\x21D"+ + "\x10F\x2\x613\x614\x5\x201\x101\x2\x614\x615\x5\x21F\x110\x2\x615\x11E"+ + "\x3\x2\x2\x2\x616\x617\x5\x21B\x10E\x2\x617\x618\x5\x201\x101\x2\x618"+ + "\x619\x5\x21D\x10F\x2\x619\x61A\x5\x221\x111\x2\x61A\x61B\x5\x211\x109"+ + "\x2\x61B\x61C\x5\x201\x101\x2\x61C\x120\x3\x2\x2\x2\x61D\x61E\x5\x21B"+ + "\x10E\x2\x61E\x61F\x5\x201\x101\x2\x61F\x620\x5\x21F\x110\x2\x620\x621"+ + "\x5\x221\x111\x2\x621\x622\x5\x21B\x10E\x2\x622\x623\x5\x213\x10A\x2\x623"+ + "\x122\x3\x2\x2\x2\x624\x625\x5\x21B\x10E\x2\x625\x626\x5\x211\x109\x2"+ + "\x626\x627\x5\x1FF\x100\x2\x627\x628\x5\x209\x105\x2\x628\x629\x5\x21B"+ + "\x10E\x2\x629\x124\x3\x2\x2\x2\x62A\x62B\x5\x21B\x10E\x2\x62B\x62C\x5"+ + "\x21D\x10F\x2\x62C\x62D\x5\x201\x101\x2\x62D\x62E\x5\x21F\x110\x2\x62E"+ + "\x126\x3\x2\x2\x2\x62F\x630\x5\x21D\x10F\x2\x630\x631\x5\x1F9\xFD\x2\x631"+ + "\x632\x5\x223\x112\x2\x632\x633\x5\x201\x101\x2\x633\x634\x5\x217\x10C"+ + "\x2\x634\x635\x5\x209\x105\x2\x635\x636\x5\x1FD\xFF\x2\x636\x637\x5\x21F"+ + "\x110\x2\x637\x638\x5\x221\x111\x2\x638\x639\x5\x21B\x10E\x2\x639\x63A"+ + "\x5\x201\x101\x2\x63A\x128\x3\x2\x2\x2\x63B\x63C\x5\x21D\x10F\x2\x63C"+ + "\x63D\x5\x1F9\xFD\x2\x63D\x63E\x5\x223\x112\x2\x63E\x63F\x5\x201\x101"+ + "\x2\x63F\x640\x5\x21D\x10F\x2\x640\x641\x5\x201\x101\x2\x641\x642\x5\x21F"+ + "\x110\x2\x642\x643\x5\x21F\x110\x2\x643\x644\x5\x209\x105\x2\x644\x645"+ + "\x5\x213\x10A\x2\x645\x646\x5\x205\x103\x2\x646\x12A\x3\x2\x2\x2\x647"+ + "\x648\x5\x21D\x10F\x2\x648\x649\x5\x201\x101\x2\x649\x64A\x5\x201\x101"+ + "\x2\x64A\x64B\x5\x20D\x107\x2\x64B\x12C\x3\x2\x2\x2\x64C\x64D\x5\x21D"+ + "\x10F\x2\x64D\x64E\x5\x201\x101\x2\x64E\x64F\x5\x20F\x108\x2\x64F\x650"+ + "\x5\x201\x101\x2\x650\x651\x5\x1FD\xFF\x2\x651\x652\x5\x21F\x110\x2\x652"+ + "\x12E\x3\x2\x2\x2\x653\x654\x5\x21D\x10F\x2\x654\x655\x5\x201\x101\x2"+ + "\x655\x656\x5\x213\x10A\x2\x656\x657\x5\x1FF\x100\x2\x657\x658\x5\x20D"+ + "\x107\x2\x658\x659\x5\x201\x101\x2\x659\x65A\x5\x229\x115\x2\x65A\x65B"+ + "\x5\x21D\x10F\x2\x65B\x130\x3\x2\x2\x2\x65C\x65D\x5\x21D\x10F\x2\x65D"+ + "\x65E\x5\x201\x101\x2\x65E\x65F\x5\x21F\x110\x2\x65F\x132\x3\x2\x2\x2"+ + "\x660\x661\x5\x21D\x10F\x2\x661\x662\x5\x201\x101\x2\x662\x663\x5\x21F"+ + "\x110\x2\x663\x664\x5\x1F9\xFD\x2\x664\x665\x5\x21F\x110\x2\x665\x666"+ + "\x5\x21F\x110\x2\x666\x667\x5\x21B\x10E\x2\x667\x134\x3\x2\x2\x2\x668"+ + "\x669\x5\x21D\x10F\x2\x669\x66A\x5\x207\x104\x2\x66A\x66B\x5\x1F9\xFD"+ + "\x2\x66B\x66C\x5\x21B\x10E\x2\x66C\x66D\x5\x201\x101\x2\x66D\x66E\x5\x1FF"+ + "\x100\x2\x66E\x136\x3\x2\x2\x2\x66F\x670\x5\x21D\x10F\x2\x670\x671\x5"+ + "\x209\x105\x2\x671\x672\x5\x213\x10A\x2\x672\x673\x5\x205\x103\x2\x673"+ + "\x674\x5\x20F\x108\x2\x674\x675\x5\x201\x101\x2\x675\x138\x3\x2\x2\x2"+ + "\x676\x677\x5\x21D\x10F\x2\x677\x678\x5\x217\x10C\x2\x678\x679\x5\x1FD"+ + "\xFF\x2\x679\x13A\x3\x2\x2\x2\x67A\x67B\x5\x21D\x10F\x2\x67B\x67C\x5\x21F"+ + "\x110\x2\x67C\x67D\x5\x1F9\xFD\x2\x67D\x67E\x5\x21F\x110\x2\x67E\x67F"+ + "\x5\x209\x105\x2\x67F\x680\x5\x1FD\xFF\x2\x680\x13C\x3\x2\x2\x2\x681\x682"+ + "\x5\x21D\x10F\x2\x682\x683\x5\x21F\x110\x2\x683\x684\x5\x201\x101\x2\x684"+ + "\x685\x5\x217\x10C\x2\x685\x13E\x3\x2\x2\x2\x686\x687\x5\x21D\x10F\x2"+ + "\x687\x688\x5\x21F\x110\x2\x688\x689\x5\x215\x10B\x2\x689\x68A\x5\x217"+ + "\x10C\x2\x68A\x140\x3\x2\x2\x2\x68B\x68C\x5\x21D\x10F\x2\x68C\x68D\x5"+ + "\x21F\x110\x2\x68D\x68E\x5\x21B\x10E\x2\x68E\x68F\x5\x209\x105\x2\x68F"+ + "\x690\x5\x213\x10A\x2\x690\x691\x5\x205\x103\x2\x691\x142\x3\x2\x2\x2"+ + "\x692\x693\x5\x21D\x10F\x2\x693\x694\x5\x221\x111\x2\x694\x695\x5\x1FB"+ + "\xFE\x2\x695\x144\x3\x2\x2\x2\x696\x697\x5\x21F\x110\x2\x697\x698\x5\x1F9"+ + "\xFD\x2\x698\x699\x5\x1FB\xFE\x2\x699\x146\x3\x2\x2\x2\x69A\x69B\x5\x21F"+ + "\x110\x2\x69B\x69C\x5\x201\x101\x2\x69C\x69D\x5\x227\x114\x2\x69D\x69E"+ + "\x5\x21F\x110\x2\x69E\x148\x3\x2\x2\x2\x69F\x6A0\x5\x21F\x110\x2\x6A0"+ + "\x6A1\x5\x207\x104\x2\x6A1\x6A2\x5\x201\x101\x2\x6A2\x6A3\x5\x213\x10A"+ + "\x2\x6A3\x14A\x3\x2\x2\x2\x6A4\x6A5\x5\x21F\x110\x2\x6A5\x6A6\x5\x209"+ + "\x105\x2\x6A6\x6A7\x5\x211\x109\x2\x6A7\x6A8\x5\x201\x101\x2\x6A8\x14C"+ + "\x3\x2\x2\x2\x6A9\x6AA\x5\x21F\x110\x2\x6AA\x6AB\x5\x215\x10B\x2\x6AB"+ + "\x14E\x3\x2\x2\x2\x6AC\x6AD\x5\x21F\x110\x2\x6AD\x6AE\x5\x21B\x10E\x2"+ + "\x6AE\x6AF\x5\x221\x111\x2\x6AF\x6B0\x5\x201\x101\x2\x6B0\x150\x3\x2\x2"+ + "\x2\x6B1\x6B2\x5\x21F\x110\x2\x6B2\x6B3\x5\x229\x115\x2\x6B3\x6B4\x5\x217"+ + "\x10C\x2\x6B4\x6B5\x5\x201\x101\x2\x6B5\x152\x3\x2\x2\x2\x6B6\x6B7\x5"+ + "\x21F\x110\x2\x6B7\x6B8\x5\x229\x115\x2\x6B8\x6B9\x5\x217\x10C\x2\x6B9"+ + "\x6BA\x5\x201\x101\x2\x6BA\x6BB\x5\x215\x10B\x2\x6BB\x6BC\x5\x203\x102"+ + "\x2\x6BC\x154\x3\x2\x2\x2\x6BD\x6BE\x5\x221\x111\x2\x6BE\x6BF\x5\x213"+ + "\x10A\x2\x6BF\x6C0\x5\x20F\x108\x2\x6C0\x6C1\x5\x215\x10B\x2\x6C1\x6C2"+ + "\x5\x1F9\xFD\x2\x6C2\x6C3\x5\x1FF\x100\x2\x6C3\x156\x3\x2\x2\x2\x6C4\x6C5"+ + "\x5\x221\x111\x2\x6C5\x6C6\x5\x213\x10A\x2\x6C6\x6C7\x5\x20F\x108\x2\x6C7"+ + "\x6C8\x5\x215\x10B\x2\x6C8\x6C9\x5\x1FD\xFF\x2\x6C9\x6CA\x5\x20D\x107"+ + "\x2\x6CA\x158\x3\x2\x2\x2\x6CB\x6CC\x5\x221\x111\x2\x6CC\x6CD\x5\x213"+ + "\x10A\x2\x6CD\x6CE\x5\x21F\x110\x2\x6CE\x6CF\x5\x209\x105\x2\x6CF\x6D0"+ + "\x5\x20F\x108\x2\x6D0\x15A\x3\x2\x2\x2\x6D1\x6D2\x5\x223\x112\x2\x6D2"+ + "\x6D3\x5\x1F9\xFD\x2\x6D3\x6D4\x5\x21B\x10E\x2\x6D4\x6D5\x5\x209\x105"+ + "\x2\x6D5\x6D6\x5\x1F9\xFD\x2\x6D6\x6D7\x5\x213\x10A\x2\x6D7\x6D8\x5\x21F"+ + "\x110\x2\x6D8\x15C\x3\x2\x2\x2\x6D9\x6DA\x5\x223\x112\x2\x6DA\x6DB\x5"+ + "\x201\x101\x2\x6DB\x6DC\x5\x21B\x10E\x2\x6DC\x6DD\x5\x21D\x10F\x2\x6DD"+ + "\x6DE\x5\x209\x105\x2\x6DE\x6DF\x5\x215\x10B\x2\x6DF\x6E0\x5\x213\x10A"+ + "\x2\x6E0\x15E\x3\x2\x2\x2\x6E1\x6E2\x5\x225\x113\x2\x6E2\x6E3\x5\x201"+ + "\x101\x2\x6E3\x6E4\x5\x213\x10A\x2\x6E4\x6E5\x5\x1FF\x100\x2\x6E5\x160"+ + "\x3\x2\x2\x2\x6E6\x6E7\x5\x225\x113\x2\x6E7\x6E8\x5\x207\x104\x2\x6E8"+ + "\x6E9\x5\x209\x105\x2\x6E9\x6EA\x5\x20F\x108\x2\x6EA\x6EB\x5\x201\x101"+ + "\x2\x6EB\x162\x3\x2\x2\x2\x6EC\x6ED\x5\x225\x113\x2\x6ED\x6EE\x5\x209"+ + "\x105\x2\x6EE\x6EF\x5\x1FF\x100\x2\x6EF\x6F0\x5\x21F\x110\x2\x6F0\x6F1"+ + "\x5\x207\x104\x2\x6F1\x164\x3\x2\x2\x2\x6F2\x6F3\x5\x225\x113\x2\x6F3"+ + "\x6F4\x5\x209\x105\x2\x6F4\x6F5\x5\x21F\x110\x2\x6F5\x6F6\x5\x207\x104"+ + "\x2\x6F6\x166\x3\x2\x2\x2\x6F7\x6F8\x5\x225\x113\x2\x6F8\x6F9\x5\x209"+ + "\x105\x2\x6F9\x6FA\x5\x21F\x110\x2\x6FA\x6FB\x5\x207\x104\x2\x6FB\x6FC"+ + "\x5\x201\x101\x2\x6FC\x6FD\x5\x223\x112\x2\x6FD\x6FE\x5\x201\x101\x2\x6FE"+ + "\x6FF\x5\x213\x10A\x2\x6FF\x700\x5\x21F\x110\x2\x700\x701\x5\x21D\x10F"+ + "\x2\x701\x168\x3\x2\x2\x2\x702\x703\x5\x225\x113\x2\x703\x704\x5\x21B"+ + "\x10E\x2\x704\x705\x5\x209\x105\x2\x705\x706\x5\x21F\x110\x2\x706\x707"+ + "\x5\x201\x101\x2\x707\x16A\x3\x2\x2\x2\x708\x709\x5\x227\x114\x2\x709"+ + "\x70A\x5\x215\x10B\x2\x70A\x70B\x5\x21B\x10E\x2\x70B\x16C\x3\x2\x2\x2"+ + "\x70C\x70D\a(\x2\x2\x70D\x16E\x3\x2\x2\x2\x70E\x70F\a<\x2\x2\x70F\x710"+ + "\a?\x2\x2\x710\x170\x3\x2\x2\x2\x711\x712\a\x31\x2\x2\x712\x172\x3\x2"+ + "\x2\x2\x713\x714\a^\x2\x2\x714\x174\x3\x2\x2\x2\x715\x716\a?\x2\x2\x716"+ + "\x176\x3\x2\x2\x2\x717\x718\a@\x2\x2\x718\x719\a?\x2\x2\x719\x178\x3\x2"+ + "\x2\x2\x71A\x71B\a@\x2\x2\x71B\x17A\x3\x2\x2\x2\x71C\x71D\a>\x2\x2\x71D"+ + "\x71E\a?\x2\x2\x71E\x17C\x3\x2\x2\x2\x71F\x720\a*\x2\x2\x720\x17E\x3\x2"+ + "\x2\x2\x721\x722\a>\x2\x2\x722\x180\x3\x2\x2\x2\x723\x724\a/\x2\x2\x724"+ + "\x182\x3\x2\x2\x2\x725\x726\a,\x2\x2\x726\x184\x3\x2\x2\x2\x727\x728\a"+ + ">\x2\x2\x728\x729\a@\x2\x2\x729\x186\x3\x2\x2\x2\x72A\x72B\a-\x2\x2\x72B"+ + "\x188\x3\x2\x2\x2\x72C\x72D\a`\x2\x2\x72D\x18A\x3\x2\x2\x2\x72E\x72F\a"+ + "+\x2\x2\x72F\x18C\x3\x2\x2\x2\x730\x731\a]\x2\x2\x731\x18E\x3\x2\x2\x2"+ + "\x732\x733\a_\x2\x2\x733\x190\x3\x2\x2\x2\x734\x73A\a$\x2\x2\x735\x739"+ + "\n\x2\x2\x2\x736\x737\a$\x2\x2\x737\x739\a$\x2\x2\x738\x735\x3\x2\x2\x2"+ + "\x738\x736\x3\x2\x2\x2\x739\x73C\x3\x2\x2\x2\x73A\x738\x3\x2\x2\x2\x73A"+ + "\x73B\x3\x2\x2\x2\x73B\x73D\x3\x2\x2\x2\x73C\x73A\x3\x2\x2\x2\x73D\x73E"+ + "\a$\x2\x2\x73E\x192\x3\x2\x2\x2\x73F\x740\a(\x2\x2\x740\x741\aQ\x2\x2"+ + "\x741\x743\x3\x2\x2\x2\x742\x744\t\x3\x2\x2\x743\x742\x3\x2\x2\x2\x744"+ + "\x745\x3\x2\x2\x2\x745\x743\x3\x2\x2\x2\x745\x746\x3\x2\x2\x2\x746\x748"+ + "\x3\x2\x2\x2\x747\x749\a(\x2\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2"+ + "\x2\x2\x749\x194\x3\x2\x2\x2\x74A\x74B\a(\x2\x2\x74B\x74C\aJ\x2\x2\x74C"+ + "\x74E\x3\x2\x2\x2\x74D\x74F\t\x4\x2\x2\x74E\x74D\x3\x2\x2\x2\x74F\x750"+ + "\x3\x2\x2\x2\x750\x74E\x3\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751\x753\x3"+ + "\x2\x2\x2\x752\x754\a(\x2\x2\x753\x752\x3\x2\x2\x2\x753\x754\x3\x2\x2"+ + "\x2\x754\x196\x3\x2\x2\x2\x755\x758\x5\x187\xC4\x2\x756\x758\x5\x181\xC1"+ + "\x2\x757\x755\x3\x2\x2\x2\x757\x756\x3\x2\x2\x2\x757\x758\x3\x2\x2\x2"+ + "\x758\x75A\x3\x2\x2\x2\x759\x75B\x5\x1F5\xFB\x2\x75A\x759\x3\x2\x2\x2"+ + "\x75B\x75C\x3\x2\x2\x2\x75C\x75A\x3\x2\x2\x2\x75C\x75D\x3\x2\x2\x2\x75D"+ + "\x75F\x3\x2\x2\x2\x75E\x760\t\x5\x2\x2\x75F\x75E\x3\x2\x2\x2\x75F\x760"+ + "\x3\x2\x2\x2\x760\x198\x3\x2\x2\x2\x761\x765\x5\x197\xCC\x2\x762\x763"+ + "\x5\x201\x101\x2\x763\x764\x5\x197\xCC\x2\x764\x766\x3\x2\x2\x2\x765\x762"+ + "\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766\x19A\x3\x2\x2\x2\x767\x76A\x5"+ + "\x187\xC4\x2\x768\x76A\x5\x181\xC1\x2\x769\x767\x3\x2\x2\x2\x769\x768"+ + "\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2\x76A\x76E\x3\x2\x2\x2\x76B\x76D\x5"+ + "\x1F5\xFB\x2\x76C\x76B\x3\x2\x2\x2\x76D\x770\x3\x2\x2\x2\x76E\x76C\x3"+ + "\x2\x2\x2\x76E\x76F\x3\x2\x2\x2\x76F\x771\x3\x2\x2\x2\x770\x76E\x3\x2"+ + "\x2\x2\x771\x773\a\x30\x2\x2\x772\x774\x5\x1F5\xFB\x2\x773\x772\x3\x2"+ + "\x2\x2\x774\x775\x3\x2\x2\x2\x775\x773\x3\x2\x2\x2\x775\x776\x3\x2\x2"+ + "\x2\x776\x77A\x3\x2\x2\x2\x777\x778\x5\x201\x101\x2\x778\x779\x5\x197"+ + "\xCC\x2\x779\x77B\x3\x2\x2\x2\x77A\x777\x3\x2\x2\x2\x77A\x77B\x3\x2\x2"+ + "\x2\x77B\x19C\x3\x2\x2\x2\x77C\x77D\a%\x2\x2\x77D\x77E\x5\x19F\xD0\x2"+ + "\x77E\x77F\a%\x2\x2\x77F\x19E\x3\x2\x2\x2\x780\x782\x5\x1A1\xD1\x2\x781"+ + "\x783\x5\x1EF\xF8\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783"+ + "\x784\x3\x2\x2\x2\x784\x785\x5\x1AD\xD7\x2\x785\x789\x3\x2\x2\x2\x786"+ + "\x789\x5\x1A1\xD1\x2\x787\x789\x5\x1AD\xD7\x2\x788\x780\x3\x2\x2\x2\x788"+ + "\x786\x3\x2\x2\x2\x788\x787\x3\x2\x2\x2\x789\x1A0\x3\x2\x2\x2\x78A\x78B"+ + "\x5\x1A3\xD2\x2\x78B\x78C\x5\x1A5\xD3\x2\x78C\x790\x5\x1A3\xD2\x2\x78D"+ + "\x78E\x5\x1A5\xD3\x2\x78E\x78F\x5\x1A3\xD2\x2\x78F\x791\x3\x2\x2\x2\x790"+ + "\x78D\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x1A2\x3\x2\x2\x2\x792\x794"+ + "\x5\x1F5\xFB\x2\x793\x792\x3\x2\x2\x2\x794\x795\x3\x2\x2\x2\x795\x793"+ + "\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796\x799\x3\x2\x2\x2\x797\x799\x5"+ + "\x1A7\xD4\x2\x798\x793\x3\x2\x2\x2\x798\x797\x3\x2\x2\x2\x799\x1A4\x3"+ + "\x2\x2\x2\x79A\x79C\x5\x1EF\xF8\x2\x79B\x79A\x3\x2\x2\x2\x79B\x79C\x3"+ + "\x2\x2\x2\x79C\x79E\x3\x2\x2\x2\x79D\x79F\t\x6\x2\x2\x79E\x79D\x3\x2\x2"+ + "\x2\x79E\x79F\x3\x2\x2\x2\x79F\x7A1\x3\x2\x2\x2\x7A0\x7A2\x5\x1EF\xF8"+ + "\x2\x7A1\x7A0\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x1A6\x3\x2\x2\x2"+ + "\x7A3\x7A6\x5\x1A9\xD5\x2\x7A4\x7A6\x5\x1AB\xD6\x2\x7A5\x7A3\x3\x2\x2"+ + "\x2\x7A5\x7A4\x3\x2\x2\x2\x7A6\x1A8\x3\x2\x2\x2\x7A7\x7B4\x5\x1B3\xDA"+ + "\x2\x7A8\x7B4\x5\x1B5\xDB\x2\x7A9\x7B4\x5\x1B7\xDC\x2\x7AA\x7B4\x5\x1B9"+ + "\xDD\x2\x7AB\x7B4\x5\x1BB\xDE\x2\x7AC\x7B4\x5\x1BD\xDF\x2\x7AD\x7B4\x5"+ + "\x1BF\xE0\x2\x7AE\x7B4\x5\x1C1\xE1\x2\x7AF\x7B4\x5\x1C3\xE2\x2\x7B0\x7B4"+ + "\x5\x1C5\xE3\x2\x7B1\x7B4\x5\x1C7\xE4\x2\x7B2\x7B4\x5\x1C9\xE5\x2\x7B3"+ + "\x7A7\x3\x2\x2\x2\x7B3\x7A8\x3\x2\x2\x2\x7B3\x7A9\x3\x2\x2\x2\x7B3\x7AA"+ + "\x3\x2\x2\x2\x7B3\x7AB\x3\x2\x2\x2\x7B3\x7AC\x3\x2\x2\x2\x7B3\x7AD\x3"+ + "\x2\x2\x2\x7B3\x7AE\x3\x2\x2\x2\x7B3\x7AF\x3\x2\x2\x2\x7B3\x7B0\x3\x2"+ + "\x2\x2\x7B3\x7B1\x3\x2\x2\x2\x7B3\x7B2\x3\x2\x2\x2\x7B4\x1AA\x3\x2\x2"+ + "\x2\x7B5\x7C1\x5\x1CB\xE6\x2\x7B6\x7C1\x5\x1CD\xE7\x2\x7B7\x7C1\x5\x1CF"+ + "\xE8\x2\x7B8\x7C1\x5\x1D1\xE9\x2\x7B9\x7C1\x5\x1D3\xEA\x2\x7BA\x7C1\x5"+ + "\x1D5\xEB\x2\x7BB\x7C1\x5\x1D7\xEC\x2\x7BC\x7C1\x5\x1D9\xED\x2\x7BD\x7C1"+ + "\x5\x1DB\xEE\x2\x7BE\x7C1\x5\x1DD\xEF\x2\x7BF\x7C1\x5\x1DF\xF0\x2\x7C0"+ + "\x7B5\x3\x2\x2\x2\x7C0\x7B6\x3\x2\x2\x2\x7C0\x7B7\x3\x2\x2\x2\x7C0\x7B8"+ + "\x3\x2\x2\x2\x7C0\x7B9\x3\x2\x2\x2\x7C0\x7BA\x3\x2\x2\x2\x7C0\x7BB\x3"+ + "\x2\x2\x2\x7C0\x7BC\x3\x2\x2\x2\x7C0\x7BD\x3\x2\x2\x2\x7C0\x7BE\x3\x2"+ + "\x2\x2\x7C0\x7BF\x3\x2\x2\x2\x7C1\x1AC\x3\x2\x2\x2\x7C2\x7C4\x5\x1F5\xFB"+ + "\x2\x7C3\x7C2\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2\x2\x7C5\x7C3\x3\x2\x2\x2"+ + "\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C7\x3\x2\x2\x2\x7C7\x7C8\x5\x1B1\xD9\x2"+ + "\x7C8\x7E0\x3\x2\x2\x2\x7C9\x7CB\x5\x1F5\xFB\x2\x7CA\x7C9\x3\x2\x2\x2"+ + "\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CA\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD"+ + "\x7CE\x3\x2\x2\x2\x7CE\x7D0\x5\x1AF\xD8\x2\x7CF\x7D1\x5\x1F5\xFB\x2\x7D0"+ + "\x7CF\x3\x2\x2\x2\x7D1\x7D2\x3\x2\x2\x2\x7D2\x7D0\x3\x2\x2\x2\x7D2\x7D3"+ + "\x3\x2\x2\x2\x7D3\x7DA\x3\x2\x2\x2\x7D4\x7D6\x5\x1AF\xD8\x2\x7D5\x7D7"+ + "\x5\x1F5\xFB\x2\x7D6\x7D5\x3\x2\x2\x2\x7D7\x7D8\x3\x2\x2\x2\x7D8\x7D6"+ + "\x3\x2\x2\x2\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7DB\x3\x2\x2\x2\x7DA\x7D4\x3"+ + "\x2\x2\x2\x7DA\x7DB\x3\x2\x2\x2\x7DB\x7DD\x3\x2\x2\x2\x7DC\x7DE\x5\x1B1"+ + "\xD9\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE\x7E0\x3\x2\x2"+ + "\x2\x7DF\x7C3\x3\x2\x2\x2\x7DF\x7CA\x3\x2\x2\x2\x7E0\x1AE\x3\x2\x2\x2"+ + "\x7E1\x7E3\x5\x1EF\xF8\x2\x7E2\x7E1\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2"+ + "\x7E3\x7E4\x3\x2\x2\x2\x7E4\x7E6\t\a\x2\x2\x7E5\x7E7\x5\x1EF\xF8\x2\x7E6"+ + "\x7E5\x3\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x1B0\x3\x2\x2\x2\x7E8\x7EA"+ + "\x5\x1EF\xF8\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7F3"+ + "\x3\x2\x2\x2\x7EB\x7EC\x5\x1F9\xFD\x2\x7EC\x7ED\x5\x211\x109\x2\x7ED\x7F4"+ + "\x3\x2\x2\x2\x7EE\x7EF\x5\x217\x10C\x2\x7EF\x7F0\x5\x211\x109\x2\x7F0"+ + "\x7F4\x3\x2\x2\x2\x7F1\x7F4\x5\x1F9\xFD\x2\x7F2\x7F4\x5\x217\x10C\x2\x7F3"+ + "\x7EB\x3\x2\x2\x2\x7F3\x7EE\x3\x2\x2\x2\x7F3\x7F1\x3\x2\x2\x2\x7F3\x7F2"+ + "\x3\x2\x2\x2\x7F4\x1B2\x3\x2\x2\x2\x7F5\x7F6\x5\x20B\x106\x2\x7F6\x7F7"+ + "\x5\x1F9\xFD\x2\x7F7\x7F8\x5\x213\x10A\x2\x7F8\x7F9\x5\x221\x111\x2\x7F9"+ + "\x7FA\x5\x1F9\xFD\x2\x7FA\x7FB\x5\x21B\x10E\x2\x7FB\x7FC\x5\x229\x115"+ + "\x2\x7FC\x1B4\x3\x2\x2\x2\x7FD\x7FE\x5\x203\x102\x2\x7FE\x7FF\x5\x201"+ + "\x101\x2\x7FF\x800\x5\x1FB\xFE\x2\x800\x801\x5\x21B\x10E\x2\x801\x802"+ + "\x5\x221\x111\x2\x802\x803\x5\x1F9\xFD\x2\x803\x804\x5\x21B\x10E\x2\x804"+ + "\x805\x5\x229\x115\x2\x805\x1B6\x3\x2\x2\x2\x806\x807\x5\x211\x109\x2"+ + "\x807\x808\x5\x1F9\xFD\x2\x808\x809\x5\x21B\x10E\x2\x809\x80A\x5\x1FD"+ + "\xFF\x2\x80A\x80B\x5\x207\x104\x2\x80B\x1B8\x3\x2\x2\x2\x80C\x80D\x5\x1F9"+ + "\xFD\x2\x80D\x80E\x5\x217\x10C\x2\x80E\x80F\x5\x21B\x10E\x2\x80F\x810"+ + "\x5\x209\x105\x2\x810\x811\x5\x20F\x108\x2\x811\x1BA\x3\x2\x2\x2\x812"+ + "\x813\x5\x211\x109\x2\x813\x814\x5\x1F9\xFD\x2\x814\x815\x5\x229\x115"+ + "\x2\x815\x1BC\x3\x2\x2\x2\x816\x817\x5\x20B\x106\x2\x817\x818\x5\x221"+ + "\x111\x2\x818\x819\x5\x213\x10A\x2\x819\x81A\x5\x201\x101\x2\x81A\x1BE"+ + "\x3\x2\x2\x2\x81B\x81C\x5\x20B\x106\x2\x81C\x81D\x5\x221\x111\x2\x81D"+ + "\x81E\x5\x20F\x108\x2\x81E\x81F\x5\x229\x115\x2\x81F\x1C0\x3\x2\x2\x2"+ + "\x820\x821\x5\x1F9\xFD\x2\x821\x822\x5\x221\x111\x2\x822\x823\x5\x205"+ + "\x103\x2\x823\x824\x5\x221\x111\x2\x824\x825\x5\x21D\x10F\x2\x825\x826"+ + "\x5\x21F\x110\x2\x826\x1C2\x3\x2\x2\x2\x827\x828\x5\x21D\x10F\x2\x828"+ + "\x829\x5\x201\x101\x2\x829\x82A\x5\x217\x10C\x2\x82A\x82B\x5\x21F\x110"+ + "\x2\x82B\x82C\x5\x201\x101\x2\x82C\x82D\x5\x211\x109\x2\x82D\x82E\x5\x1FB"+ + "\xFE\x2\x82E\x82F\x5\x201\x101\x2\x82F\x830\x5\x21B\x10E\x2\x830\x1C4"+ + "\x3\x2\x2\x2\x831\x832\x5\x215\x10B\x2\x832\x833\x5\x1FD\xFF\x2\x833\x834"+ + "\x5\x21F\x110\x2\x834\x835\x5\x215\x10B\x2\x835\x836\x5\x1FB\xFE\x2\x836"+ + "\x837\x5\x201\x101\x2\x837\x838\x5\x21B\x10E\x2\x838\x1C6\x3\x2\x2\x2"+ + "\x839\x83A\x5\x213\x10A\x2\x83A\x83B\x5\x215\x10B\x2\x83B\x83C\x5\x223"+ + "\x112\x2\x83C\x83D\x5\x201\x101\x2\x83D\x83E\x5\x211\x109\x2\x83E\x83F"+ + "\x5\x1FB\xFE\x2\x83F\x840\x5\x201\x101\x2\x840\x841\x5\x21B\x10E\x2\x841"+ + "\x1C8\x3\x2\x2\x2\x842\x843\x5\x1FF\x100\x2\x843\x844\x5\x201\x101\x2"+ + "\x844\x845\x5\x1FD\xFF\x2\x845\x846\x5\x201\x101\x2\x846\x847\x5\x211"+ + "\x109\x2\x847\x848\x5\x1FB\xFE\x2\x848\x849\x5\x201\x101\x2\x849\x84A"+ + "\x5\x21B\x10E\x2\x84A\x1CA\x3\x2\x2\x2\x84B\x84C\x5\x20B\x106\x2\x84C"+ + "\x84D\x5\x1F9\xFD\x2\x84D\x84E\x5\x213\x10A\x2\x84E\x1CC\x3\x2\x2\x2\x84F"+ + "\x850\x5\x203\x102\x2\x850\x851\x5\x201\x101\x2\x851\x852\x5\x1FB\xFE"+ + "\x2\x852\x1CE\x3\x2\x2\x2\x853\x854\x5\x211\x109\x2\x854\x855\x5\x1F9"+ + "\xFD\x2\x855\x856\x5\x21B\x10E\x2\x856\x1D0\x3\x2\x2\x2\x857\x858\x5\x1F9"+ + "\xFD\x2\x858\x859\x5\x217\x10C\x2\x859\x85A\x5\x21B\x10E\x2\x85A\x1D2"+ + "\x3\x2\x2\x2\x85B\x85C\x5\x20B\x106\x2\x85C\x85D\x5\x221\x111\x2\x85D"+ + "\x85E\x5\x213\x10A\x2\x85E\x1D4\x3\x2\x2\x2\x85F\x860\x5\x20B\x106\x2"+ + "\x860\x861\x5\x221\x111\x2\x861\x862\x5\x20F\x108\x2\x862\x1D6\x3\x2\x2"+ + "\x2\x863\x864\x5\x1F9\xFD\x2\x864\x865\x5\x221\x111\x2\x865\x866\x5\x205"+ + "\x103\x2\x866\x1D8\x3\x2\x2\x2\x867\x868\x5\x21D\x10F\x2\x868\x869\x5"+ + "\x201\x101\x2\x869\x86A\x5\x217\x10C\x2\x86A\x1DA\x3\x2\x2\x2\x86B\x86C"+ + "\x5\x215\x10B\x2\x86C\x86D\x5\x1FD\xFF\x2\x86D\x86E\x5\x21F\x110\x2\x86E"+ + "\x1DC\x3\x2\x2\x2\x86F\x870\x5\x213\x10A\x2\x870\x871\x5\x215\x10B\x2"+ + "\x871\x872\x5\x223\x112\x2\x872\x1DE\x3\x2\x2\x2\x873\x874\x5\x1FF\x100"+ + "\x2\x874\x875\x5\x201\x101\x2\x875\x876\x5\x1FD\xFF\x2\x876\x1E0\x3\x2"+ + "\x2\x2\x877\x879\t\b\x2\x2\x878\x877\x3\x2\x2\x2\x879\x87A\x3\x2\x2\x2"+ + "\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C"+ + "\x87E\x5\x1ED\xF7\x2\x87D\x87F\a\xF\x2\x2\x87E\x87D\x3\x2\x2\x2\x87E\x87F"+ + "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\a\f\x2\x2\x881\x882\x3\x2"+ + "\x2\x2\x882\x883\b\xF1\x2\x2\x883\x1E2\x3\x2\x2\x2\x884\x886\t\t\x2\x2"+ + "\x885\x884\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x885\x3\x2\x2\x2\x887"+ + "\x888\x3\x2\x2\x2\x888\x1E4\x3\x2\x2\x2\x889\x88B\x5\x1EB\xF6\x2\x88A"+ + "\x889\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\x88C\x3\x2\x2\x2\x88C\x88D"+ + "\x5\x11B\x8E\x2\x88D\x892\x5\x1EF\xF8\x2\x88E\x891\x5\x1E1\xF1\x2\x88F"+ "\x891\n\t\x2\x2\x890\x88E\x3\x2\x2\x2\x890\x88F\x3\x2\x2\x2\x891\x894"+ "\x3\x2\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893\x1E6\x3"+ - "\x2\x2\x2\x894\x892\x3\x2\x2\x2\x895\x896\a)\x2\x2\x896\x1E8\x3\x2\x2"+ - "\x2\x897\x898\a<\x2\x2\x898\x1EA\x3\x2\x2\x2\x899\x89A\a\x61\x2\x2\x89A"+ - "\x1EC\x3\x2\x2\x2\x89B\x89E\t\b\x2\x2\x89C\x89E\x5\x1DF\xF0\x2\x89D\x89B"+ - "\x3\x2\x2\x2\x89D\x89C\x3\x2\x2\x2\x89E\x89F\x3\x2\x2\x2\x89F\x89D\x3"+ - "\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x1EE\x3\x2\x2\x2\x8A1\x8A3\n\n\x2"+ - "\x2\x8A2\x8A1\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A2\x3\x2\x2\x2"+ - "\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8AF\x3\x2\x2\x2\x8A6\x8A8\x5\x18B\xC6\x2"+ - "\x8A7\x8A9\n\v\x2\x2\x8A8\x8A7\x3\x2\x2\x2\x8A9\x8AA\x3\x2\x2\x2\x8AA"+ - "\x8A8\x3\x2\x2\x2\x8AA\x8AB\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD"+ - "\x5\x18D\xC7\x2\x8AD\x8AF\x3\x2\x2\x2\x8AE\x8A2\x3\x2\x2\x2\x8AE\x8A6"+ - "\x3\x2\x2\x2\x8AF\x1F0\x3\x2\x2\x2\x8B0\x8B1\t\f\x2\x2\x8B1\x1F2\x3\x2"+ - "\x2\x2\x8B2\x8B3\t\r\x2\x2\x8B3\x1F4\x3\x2\x2\x2\x8B4\x8B5\t\xE\x2\x2"+ - "\x8B5\x1F6\x3\x2\x2\x2\x8B6\x8B7\t\xF\x2\x2\x8B7\x1F8\x3\x2\x2\x2\x8B8"+ - "\x8B9\t\x10\x2\x2\x8B9\x1FA\x3\x2\x2\x2\x8BA\x8BB\t\x11\x2\x2\x8BB\x1FC"+ - "\x3\x2\x2\x2\x8BC\x8BD\t\x12\x2\x2\x8BD\x1FE\x3\x2\x2\x2\x8BE\x8BF\t\x13"+ - "\x2\x2\x8BF\x200\x3\x2\x2\x2\x8C0\x8C1\t\x14\x2\x2\x8C1\x202\x3\x2\x2"+ - "\x2\x8C2\x8C3\t\x15\x2\x2\x8C3\x204\x3\x2\x2\x2\x8C4\x8C5\t\x16\x2\x2"+ - "\x8C5\x206\x3\x2\x2\x2\x8C6\x8C7\t\x17\x2\x2\x8C7\x208\x3\x2\x2\x2\x8C8"+ - "\x8C9\t\x18\x2\x2\x8C9\x20A\x3\x2\x2\x2\x8CA\x8CB\t\x19\x2\x2\x8CB\x20C"+ - "\x3\x2\x2\x2\x8CC\x8CD\t\x1A\x2\x2\x8CD\x20E\x3\x2\x2\x2\x8CE\x8CF\t\x1B"+ - "\x2\x2\x8CF\x210\x3\x2\x2\x2\x8D0\x8D1\t\x1C\x2\x2\x8D1\x212\x3\x2\x2"+ - "\x2\x8D2\x8D3\t\x1D\x2\x2\x8D3\x214\x3\x2\x2\x2\x8D4\x8D5\t\x1E\x2\x2"+ - "\x8D5\x216\x3\x2\x2\x2\x8D6\x8D7\t\x1F\x2\x2\x8D7\x218\x3\x2\x2\x2\x8D8"+ - "\x8D9\t \x2\x2\x8D9\x21A\x3\x2\x2\x2\x8DA\x8DB\t!\x2\x2\x8DB\x21C\x3\x2"+ - "\x2\x2\x8DC\x8DD\t\"\x2\x2\x8DD\x21E\x3\x2\x2\x2\x8DE\x8DF\t#\x2\x2\x8DF"+ - "\x220\x3\x2\x2\x2\x8E0\x8E1\t$\x2\x2\x8E1\x222\x3\x2\x2\x2\x8E2\x8E3\t"+ - "%\x2\x2\x8E3\x224\x3\x2\x2\x2\x8E4\x8E5\t&\x2\x2\x8E5\x226\x3\x2\x2\x2"+ - "\x8E6\x8E7\t\'\x2\x2\x8E7\x228\x3\x2\x2\x2\x8E8\x8E9\t(\x2\x2\x8E9\x22A"+ - "\x3\x2\x2\x2\x34\x2\x730\x732\x73D\x740\x748\x74B\x74F\x754\x757\x75D"+ - "\x761\x766\x76D\x772\x77A\x780\x788\x78D\x790\x793\x796\x799\x79D\x7AB"+ - "\x7B8\x7BD\x7C4\x7CA\x7D0\x7D2\x7D5\x7D7\x7DA\x7DE\x7E1\x7EB\x872\x876"+ - "\x87F\x882\x888\x88A\x890\x892\x89D\x89F\x8A4\x8AA\x8AE\x3\b\x2\x2"; + "\x2\x2\x2\x894\x892\x3\x2\x2\x2\x895\x89A\x5\x1E9\xF5\x2\x896\x899\x5"+ + "\x1E1\xF1\x2\x897\x899\n\t\x2\x2\x898\x896\x3\x2\x2\x2\x898\x897\x3\x2"+ + "\x2\x2\x899\x89C\x3\x2\x2\x2\x89A\x898\x3\x2\x2\x2\x89A\x89B\x3\x2\x2"+ + "\x2\x89B\x1E8\x3\x2\x2\x2\x89C\x89A\x3\x2\x2\x2\x89D\x89E\a)\x2\x2\x89E"+ + "\x1EA\x3\x2\x2\x2\x89F\x8A0\a<\x2\x2\x8A0\x1EC\x3\x2\x2\x2\x8A1\x8A2\a"+ + "\x61\x2\x2\x8A2\x1EE\x3\x2\x2\x2\x8A3\x8A6\t\b\x2\x2\x8A4\x8A6\x5\x1E1"+ + "\xF1\x2\x8A5\x8A3\x3\x2\x2\x2\x8A5\x8A4\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2"+ + "\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x1F0\x3\x2\x2\x2"+ + "\x8A9\x8AB\n\n\x2\x2\x8AA\x8A9\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC"+ + "\x8AA\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8B7\x3\x2\x2\x2\x8AE\x8B0"+ + "\x5\x18D\xC7\x2\x8AF\x8B1\n\v\x2\x2\x8B0\x8AF\x3\x2\x2\x2\x8B1\x8B2\x3"+ + "\x2\x2\x2\x8B2\x8B0\x3\x2\x2\x2\x8B2\x8B3\x3\x2\x2\x2\x8B3\x8B4\x3\x2"+ + "\x2\x2\x8B4\x8B5\x5\x18F\xC8\x2\x8B5\x8B7\x3\x2\x2\x2\x8B6\x8AA\x3\x2"+ + "\x2\x2\x8B6\x8AE\x3\x2\x2\x2\x8B7\x1F2\x3\x2\x2\x2\x8B8\x8B9\t\f\x2\x2"+ + "\x8B9\x1F4\x3\x2\x2\x2\x8BA\x8BB\t\r\x2\x2\x8BB\x1F6\x3\x2\x2\x2\x8BC"+ + "\x8BD\t\xE\x2\x2\x8BD\x1F8\x3\x2\x2\x2\x8BE\x8BF\t\xF\x2\x2\x8BF\x1FA"+ + "\x3\x2\x2\x2\x8C0\x8C1\t\x10\x2\x2\x8C1\x1FC\x3\x2\x2\x2\x8C2\x8C3\t\x11"+ + "\x2\x2\x8C3\x1FE\x3\x2\x2\x2\x8C4\x8C5\t\x12\x2\x2\x8C5\x200\x3\x2\x2"+ + "\x2\x8C6\x8C7\t\x13\x2\x2\x8C7\x202\x3\x2\x2\x2\x8C8\x8C9\t\x14\x2\x2"+ + "\x8C9\x204\x3\x2\x2\x2\x8CA\x8CB\t\x15\x2\x2\x8CB\x206\x3\x2\x2\x2\x8CC"+ + "\x8CD\t\x16\x2\x2\x8CD\x208\x3\x2\x2\x2\x8CE\x8CF\t\x17\x2\x2\x8CF\x20A"+ + "\x3\x2\x2\x2\x8D0\x8D1\t\x18\x2\x2\x8D1\x20C\x3\x2\x2\x2\x8D2\x8D3\t\x19"+ + "\x2\x2\x8D3\x20E\x3\x2\x2\x2\x8D4\x8D5\t\x1A\x2\x2\x8D5\x210\x3\x2\x2"+ + "\x2\x8D6\x8D7\t\x1B\x2\x2\x8D7\x212\x3\x2\x2\x2\x8D8\x8D9\t\x1C\x2\x2"+ + "\x8D9\x214\x3\x2\x2\x2\x8DA\x8DB\t\x1D\x2\x2\x8DB\x216\x3\x2\x2\x2\x8DC"+ + "\x8DD\t\x1E\x2\x2\x8DD\x218\x3\x2\x2\x2\x8DE\x8DF\t\x1F\x2\x2\x8DF\x21A"+ + "\x3\x2\x2\x2\x8E0\x8E1\t \x2\x2\x8E1\x21C\x3\x2\x2\x2\x8E2\x8E3\t!\x2"+ + "\x2\x8E3\x21E\x3\x2\x2\x2\x8E4\x8E5\t\"\x2\x2\x8E5\x220\x3\x2\x2\x2\x8E6"+ + "\x8E7\t#\x2\x2\x8E7\x222\x3\x2\x2\x2\x8E8\x8E9\t$\x2\x2\x8E9\x224\x3\x2"+ + "\x2\x2\x8EA\x8EB\t%\x2\x2\x8EB\x226\x3\x2\x2\x2\x8EC\x8ED\t&\x2\x2\x8ED"+ + "\x228\x3\x2\x2\x2\x8EE\x8EF\t\'\x2\x2\x8EF\x22A\x3\x2\x2\x2\x8F0\x8F1"+ + "\t(\x2\x2\x8F1\x22C\x3\x2\x2\x2\x34\x2\x738\x73A\x745\x748\x750\x753\x757"+ + "\x75C\x75F\x765\x769\x76E\x775\x77A\x782\x788\x790\x795\x798\x79B\x79E"+ + "\x7A1\x7A5\x7B3\x7C0\x7C5\x7CC\x7D2\x7D8\x7DA\x7DD\x7DF\x7E2\x7E6\x7E9"+ + "\x7F3\x87A\x87E\x887\x88A\x890\x892\x898\x89A\x8A5\x8A7\x8AC\x8B2\x8B6"+ + "\x3\b\x2\x2"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 52fe6e794c..e40ad5770b 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -36,36 +36,36 @@ public const int CONST=31, DATABASE=32, DATE=33, DECLARE=34, DEFBOOL=35, DEFBYTE=36, DEFDATE=37, DEFDBL=38, DEFDEC=39, DEFCUR=40, DEFINT=41, DEFLNG=42, DEFOBJ=43, DEFSNG=44, DEFSTR=45, DEFVAR=46, DELETESETTING=47, DIM=48, DO=49, DOUBLE=50, EACH=51, - ELSE=52, ELSEIF=53, END_ENUM=54, END_FUNCTION=55, END_IF=56, END_PROPERTY=57, - END_SELECT=58, END_SUB=59, END_TYPE=60, END_WITH=61, END=62, ENUM=63, - EQV=64, ERASE=65, ERROR=66, EVENT=67, EXIT_DO=68, EXIT_FOR=69, EXIT_FUNCTION=70, - EXIT_PROPERTY=71, EXIT_SUB=72, FALSE=73, FILECOPY=74, FRIEND=75, FOR=76, - FUNCTION=77, GET=78, GLOBAL=79, GOSUB=80, GOTO=81, IF=82, IMP=83, IMPLEMENTS=84, - IN=85, INPUT=86, IS=87, INTEGER=88, KILL=89, LOAD=90, LOCK=91, LONG=92, - LOOP=93, LEN=94, LET=95, LIB=96, LIKE=97, LINE_INPUT=98, LOCK_READ=99, - LOCK_WRITE=100, LOCK_READ_WRITE=101, LSET=102, ME=103, MID=104, MKDIR=105, - MOD=106, NAME=107, NEXT=108, NEW=109, NOT=110, NOTHING=111, NULL=112, - ON=113, ON_ERROR=114, ON_LOCAL_ERROR=115, OPEN=116, OPTIONAL=117, OPTION_BASE=118, - OPTION_EXPLICIT=119, OPTION_COMPARE=120, OPTION_PRIVATE_MODULE=121, OR=122, - OUTPUT=123, PARAMARRAY=124, PRESERVE=125, PRINT=126, PRIVATE=127, PROPERTY_GET=128, - PROPERTY_LET=129, PROPERTY_SET=130, PTRSAFE=131, PUBLIC=132, PUT=133, - RANDOM=134, RANDOMIZE=135, RAISEEVENT=136, READ=137, READ_WRITE=138, REDIM=139, - REM=140, RESET=141, RESUME=142, RETURN=143, RMDIR=144, RSET=145, SAVEPICTURE=146, - SAVESETTING=147, SEEK=148, SELECT=149, SENDKEYS=150, SET=151, SETATTR=152, - SHARED=153, SINGLE=154, SPC=155, STATIC=156, STEP=157, STOP=158, STRING=159, - SUB=160, TAB=161, TEXT=162, THEN=163, TIME=164, TO=165, TRUE=166, TYPE=167, - TYPEOF=168, UNLOAD=169, UNLOCK=170, UNTIL=171, VARIANT=172, VERSION=173, - WEND=174, WHILE=175, WIDTH=176, WITH=177, WITHEVENTS=178, WRITE=179, XOR=180, - AMPERSAND=181, ASSIGN=182, DIV=183, INTDIV=184, EQ=185, GEQ=186, GT=187, - LEQ=188, LPAREN=189, LT=190, MINUS=191, MULT=192, NEQ=193, PLUS=194, POW=195, - RPAREN=196, L_SQUARE_BRACKET=197, R_SQUARE_BRACKET=198, STRINGLITERAL=199, - OCTLITERAL=200, HEXLITERAL=201, SHORTLITERAL=202, INTEGERLITERAL=203, - DOUBLELITERAL=204, DATELITERAL=205, JANUARY=206, FEBRUARY=207, MARCH=208, - APRIL=209, MAY=210, JUNE=211, JULY=212, AUGUST=213, SEPTEMBER=214, OCTOBER=215, - NOVEMBER=216, DECEMBER=217, JAN=218, FEB=219, MAR=220, APR=221, JUN=222, - JUL=223, AUG=224, SEP=225, OCT=226, NOV=227, DEC=228, LINE_CONTINUATION=229, - NEWLINE=230, REMCOMMENT=231, COMMENT=232, SINGLEQUOTE=233, COLON=234, - UNDERSCORE=235, WS=236, IDENTIFIER=237; + ELSE=52, ELSEIF=53, EMPTY=54, END_ENUM=55, END_FUNCTION=56, END_IF=57, + END_PROPERTY=58, END_SELECT=59, END_SUB=60, END_TYPE=61, END_WITH=62, + END=63, ENUM=64, EQV=65, ERASE=66, ERROR=67, EVENT=68, EXIT_DO=69, EXIT_FOR=70, + EXIT_FUNCTION=71, EXIT_PROPERTY=72, EXIT_SUB=73, FALSE=74, FILECOPY=75, + FRIEND=76, FOR=77, FUNCTION=78, GET=79, GLOBAL=80, GOSUB=81, GOTO=82, + IF=83, IMP=84, IMPLEMENTS=85, IN=86, INPUT=87, IS=88, INTEGER=89, KILL=90, + LOAD=91, LOCK=92, LONG=93, LOOP=94, LEN=95, LET=96, LIB=97, LIKE=98, LINE_INPUT=99, + LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, ME=104, + MID=105, MKDIR=106, MOD=107, NAME=108, NEXT=109, NEW=110, NOT=111, NOTHING=112, + NULL=113, ON=114, ON_ERROR=115, ON_LOCAL_ERROR=116, OPEN=117, OPTIONAL=118, + OPTION_BASE=119, OPTION_EXPLICIT=120, OPTION_COMPARE=121, OPTION_PRIVATE_MODULE=122, + OR=123, OUTPUT=124, PARAMARRAY=125, PRESERVE=126, PRINT=127, PRIVATE=128, + PROPERTY_GET=129, PROPERTY_LET=130, PROPERTY_SET=131, PTRSAFE=132, PUBLIC=133, + PUT=134, RANDOM=135, RANDOMIZE=136, RAISEEVENT=137, READ=138, READ_WRITE=139, + REDIM=140, REM=141, RESET=142, RESUME=143, RETURN=144, RMDIR=145, RSET=146, + SAVEPICTURE=147, SAVESETTING=148, SEEK=149, SELECT=150, SENDKEYS=151, + SET=152, SETATTR=153, SHARED=154, SINGLE=155, SPC=156, STATIC=157, STEP=158, + STOP=159, STRING=160, SUB=161, TAB=162, TEXT=163, THEN=164, TIME=165, + TO=166, TRUE=167, TYPE=168, TYPEOF=169, UNLOAD=170, UNLOCK=171, UNTIL=172, + VARIANT=173, VERSION=174, WEND=175, WHILE=176, WIDTH=177, WITH=178, WITHEVENTS=179, + WRITE=180, XOR=181, AMPERSAND=182, ASSIGN=183, DIV=184, INTDIV=185, EQ=186, + GEQ=187, GT=188, LEQ=189, LPAREN=190, LT=191, MINUS=192, MULT=193, NEQ=194, + PLUS=195, POW=196, RPAREN=197, L_SQUARE_BRACKET=198, R_SQUARE_BRACKET=199, + STRINGLITERAL=200, OCTLITERAL=201, HEXLITERAL=202, SHORTLITERAL=203, INTEGERLITERAL=204, + DOUBLELITERAL=205, DATELITERAL=206, JANUARY=207, FEBRUARY=208, MARCH=209, + APRIL=210, MAY=211, JUNE=212, JULY=213, AUGUST=214, SEPTEMBER=215, OCTOBER=216, + NOVEMBER=217, DECEMBER=218, JAN=219, FEB=220, MAR=221, APR=222, JUN=223, + JUL=224, AUG=225, SEP=226, OCT=227, NOV=228, DEC=229, LINE_CONTINUATION=230, + NEWLINE=231, REMCOMMENT=232, COMMENT=233, SINGLEQUOTE=234, COLON=235, + UNDERSCORE=236, WS=237, IDENTIFIER=238; public static readonly string[] tokenNames = { "", "'@'", "'!'", "'#'", "'$'", "'%'", "';'", "','", "'.'", "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", @@ -73,13 +73,13 @@ public const int "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "COLLECTION", "CONST", "DATABASE", "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", "DEFCUR", "DEFINT", "DEFLNG", "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", - "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", - "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", - "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", - "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", - "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", - "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", - "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", + "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "EMPTY", + "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", + "END_TYPE", "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", + "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", + "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", + "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", + "LOCK", "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", @@ -2399,7 +2399,7 @@ public ConstStmtContext constStmt() { { State = 543; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 540; visibility(); State = 541; Match(WS); @@ -2682,7 +2682,7 @@ public DeclareStmtContext declareStmt() { { State = 591; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 588; visibility(); State = 589; Match(WS); @@ -3207,7 +3207,7 @@ public EnumerationStmtContext enumerationStmt() { { State = 702; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 699; visibility(); State = 700; Match(WS); @@ -3221,7 +3221,7 @@ public EnumerationStmtContext enumerationStmt() { State = 711; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==IDENTIFIER) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { { { State = 708; enumerationStmt_Constant(); @@ -3471,7 +3471,7 @@ public EventStmtContext eventStmt() { { State = 740; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 737; visibility(); State = 738; Match(WS); @@ -3539,7 +3539,7 @@ public ExitStmtContext exitStmt() { { State = 750; _la = _input.La(1); - if ( !(((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (EXIT_DO - 68)) | (1L << (EXIT_FOR - 68)) | (1L << (EXIT_FUNCTION - 68)) | (1L << (EXIT_PROPERTY - 68)) | (1L << (EXIT_SUB - 68)))) != 0)) ) { + if ( !(((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (EXIT_DO - 69)) | (1L << (EXIT_FOR - 69)) | (1L << (EXIT_FUNCTION - 69)) | (1L << (EXIT_PROPERTY - 69)) | (1L << (EXIT_SUB - 69)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -3940,7 +3940,7 @@ public FunctionStmtContext functionStmt() { { State = 825; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 822; visibility(); State = 823; Match(WS); @@ -4009,7 +4009,7 @@ public FunctionStmtContext functionStmt() { State = 851; endOfStatement(); State = 853; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { State = 852; block(); } @@ -4603,7 +4603,7 @@ public IfElseBlockStmtContext ifElseBlockStmt() { State = 935; endOfStatement(); State = 937; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { State = 936; block(); } @@ -5714,7 +5714,7 @@ public OpenStmtContext openStmt() { State = 1104; Match(WS); State = 1105; _la = _input.La(1); - if ( !(_la==APPEND || _la==BINARY || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (INPUT - 86)) | (1L << (OUTPUT - 86)) | (1L << (RANDOM - 86)))) != 0)) ) { + if ( !(_la==APPEND || _la==BINARY || ((((_la - 87)) & ~0x3f) == 0 && ((1L << (_la - 87)) & ((1L << (INPUT - 87)) | (1L << (OUTPUT - 87)) | (1L << (RANDOM - 87)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -5727,7 +5727,7 @@ public OpenStmtContext openStmt() { State = 1108; Match(WS); State = 1109; _la = _input.La(1); - if ( !(((((_la - 137)) & ~0x3f) == 0 && ((1L << (_la - 137)) & ((1L << (READ - 137)) | (1L << (READ_WRITE - 137)) | (1L << (WRITE - 137)))) != 0)) ) { + if ( !(((((_la - 138)) & ~0x3f) == 0 && ((1L << (_la - 138)) & ((1L << (READ - 138)) | (1L << (READ_WRITE - 138)) | (1L << (WRITE - 138)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -5741,7 +5741,7 @@ public OpenStmtContext openStmt() { State = 1112; Match(WS); State = 1113; _la = _input.La(1); - if ( !(((((_la - 99)) & ~0x3f) == 0 && ((1L << (_la - 99)) & ((1L << (LOCK_READ - 99)) | (1L << (LOCK_WRITE - 99)) | (1L << (LOCK_READ_WRITE - 99)) | (1L << (SHARED - 99)))) != 0)) ) { + if ( !(((((_la - 100)) & ~0x3f) == 0 && ((1L << (_la - 100)) & ((1L << (LOCK_READ - 100)) | (1L << (LOCK_WRITE - 100)) | (1L << (LOCK_READ_WRITE - 100)) | (1L << (SHARED - 100)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -6205,7 +6205,7 @@ public PropertyGetStmtContext propertyGetStmt() { { State = 1202; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 1199; visibility(); State = 1200; Match(WS); @@ -6260,7 +6260,7 @@ public PropertyGetStmtContext propertyGetStmt() { State = 1224; endOfStatement(); State = 1226; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { State = 1225; block(); } @@ -6333,7 +6333,7 @@ public PropertySetStmtContext propertySetStmt() { { State = 1233; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 1230; visibility(); State = 1231; Match(WS); @@ -6371,7 +6371,7 @@ public PropertySetStmtContext propertySetStmt() { State = 1248; endOfStatement(); State = 1250; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { State = 1249; block(); } @@ -6444,7 +6444,7 @@ public PropertyLetStmtContext propertyLetStmt() { { State = 1257; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 1254; visibility(); State = 1255; Match(WS); @@ -6482,7 +6482,7 @@ public PropertyLetStmtContext propertyLetStmt() { State = 1272; endOfStatement(); State = 1274; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { State = 1273; block(); } @@ -8238,7 +8238,7 @@ public SubStmtContext subStmt() { { State = 1540; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 1537; visibility(); State = 1538; Match(WS); @@ -8283,7 +8283,7 @@ public SubStmtContext subStmt() { State = 1557; endOfStatement(); State = 1559; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { State = 1558; block(); } @@ -8425,7 +8425,7 @@ public TypeStmtContext typeStmt() { { State = 1576; _la = _input.La(1); - if (((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) { + if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { State = 1573; visibility(); State = 1574; Match(WS); @@ -8439,7 +8439,7 @@ public TypeStmtContext typeStmt() { State = 1585; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==IDENTIFIER) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { { { State = 1582; typeStmt_Element(); @@ -9751,7 +9751,7 @@ private ValueStmtContext valueStmt(int _p) { State = 1760; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 185)) & ~0x3f) == 0 && ((1L << (_la - 185)) & ((1L << (EQ - 185)) | (1L << (GEQ - 185)) | (1L << (GT - 185)) | (1L << (LEQ - 185)) | (1L << (LT - 185)) | (1L << (NEQ - 185)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 186)) & ~0x3f) == 0 && ((1L << (_la - 186)) & ((1L << (EQ - 186)) | (1L << (GEQ - 186)) | (1L << (GT - 186)) | (1L << (LEQ - 186)) | (1L << (LT - 186)) | (1L << (NEQ - 186)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -10166,7 +10166,7 @@ public VariableSubStmtContext variableSubStmt() { } State = 1853; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)) | (1L << (LPAREN - 132)) | (1L << (MINUS - 132)))) != 0) || ((((_la - 199)) & ~0x3f) == 0 && ((1L << (_la - 199)) & ((1L << (STRINGLITERAL - 199)) | (1L << (OCTLITERAL - 199)) | (1L << (HEXLITERAL - 199)) | (1L << (SHORTLITERAL - 199)) | (1L << (INTEGERLITERAL - 199)) | (1L << (DOUBLELITERAL - 199)) | (1L << (DATELITERAL - 199)) | (1L << (WS - 199)) | (1L << (IDENTIFIER - 199)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << EMPTY) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)) | (1L << (LPAREN - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (SHORTLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DOUBLELITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0)) { { State = 1849; subscripts(); State = 1851; @@ -10433,7 +10433,7 @@ public WithStmtContext withStmt() { State = 1897; endOfStatement(); State = 1899; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { State = 1898; block(); } @@ -13039,7 +13039,7 @@ public BaseTypeContext baseType() { { State = 2320; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la==INTEGER || _la==LONG || ((((_la - 154)) & ~0x3f) == 0 && ((1L << (_la - 154)) & ((1L << (SINGLE - 154)) | (1L << (STRING - 154)) | (1L << (VARIANT - 154)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la==INTEGER || _la==LONG || ((((_la - 155)) & ~0x3f) == 0 && ((1L << (_la - 155)) & ((1L << (SINGLE - 155)) | (1L << (STRING - 155)) | (1L << (VARIANT - 155)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -13648,7 +13648,7 @@ public ComparisonOperatorContext comparisonOperator() { { State = 2339; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 185)) & ~0x3f) == 0 && ((1L << (_la - 185)) & ((1L << (EQ - 185)) | (1L << (GEQ - 185)) | (1L << (GT - 185)) | (1L << (LEQ - 185)) | (1L << (LT - 185)) | (1L << (NEQ - 185)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 186)) & ~0x3f) == 0 && ((1L << (_la - 186)) & ((1L << (EQ - 186)) | (1L << (GEQ - 186)) | (1L << (GT - 186)) | (1L << (LEQ - 186)) | (1L << (LT - 186)) | (1L << (NEQ - 186)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14088,6 +14088,7 @@ public partial class LiteralContext : ParserRuleContext { public ITerminalNode HEXLITERAL() { return GetToken(VBAParser.HEXLITERAL, 0); } public ITerminalNode DOUBLELITERAL() { return GetToken(VBAParser.DOUBLELITERAL, 0); } public ITerminalNode SHORTLITERAL() { return GetToken(VBAParser.SHORTLITERAL, 0); } + public ITerminalNode EMPTY() { return GetToken(VBAParser.EMPTY, 0); } public ITerminalNode OCTLITERAL() { return GetToken(VBAParser.OCTLITERAL, 0); } public LiteralContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) @@ -14119,7 +14120,7 @@ public LiteralContext literal() { { State = 2371; _la = _input.La(1); - if ( !(((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & ((1L << (FALSE - 73)) | (1L << (NOTHING - 73)) | (1L << (NULL - 73)))) != 0) || ((((_la - 166)) & ~0x3f) == 0 && ((1L << (_la - 166)) & ((1L << (TRUE - 166)) | (1L << (STRINGLITERAL - 166)) | (1L << (OCTLITERAL - 166)) | (1L << (HEXLITERAL - 166)) | (1L << (SHORTLITERAL - 166)) | (1L << (INTEGERLITERAL - 166)) | (1L << (DOUBLELITERAL - 166)) | (1L << (DATELITERAL - 166)))) != 0)) ) { + if ( !(((((_la - 54)) & ~0x3f) == 0 && ((1L << (_la - 54)) & ((1L << (EMPTY - 54)) | (1L << (FALSE - 54)) | (1L << (NOTHING - 54)) | (1L << (NULL - 54)))) != 0) || ((((_la - 167)) & ~0x3f) == 0 && ((1L << (_la - 167)) & ((1L << (TRUE - 167)) | (1L << (STRINGLITERAL - 167)) | (1L << (OCTLITERAL - 167)) | (1L << (HEXLITERAL - 167)) | (1L << (SHORTLITERAL - 167)) | (1L << (INTEGERLITERAL - 167)) | (1L << (DOUBLELITERAL - 167)) | (1L << (DATELITERAL - 167)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14312,7 +14313,7 @@ public VisibilityContext visibility() { { State = 2389; _la = _input.La(1); - if ( !(((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (FRIEND - 75)) | (1L << (GLOBAL - 75)) | (1L << (PRIVATE - 75)) | (1L << (PUBLIC - 75)))) != 0)) ) { + if ( !(((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14504,7 +14505,7 @@ public AmbiguousKeywordContext ambiguousKeyword() { { State = 2391; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END) | (1L << ENUM))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)) | (1L << (PRIVATE - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RANDOMIZE - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (REDIM - 132)) | (1L << (REM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RMDIR - 132)) | (1L << (RSET - 132)) | (1L << (SAVEPICTURE - 132)) | (1L << (SAVESETTING - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SENDKEYS - 132)) | (1L << (SET - 132)) | (1L << (SETATTR - 132)) | (1L << (SHARED - 132)) | (1L << (SINGLE - 132)) | (1L << (SPC - 132)) | (1L << (STATIC - 132)) | (1L << (STEP - 132)) | (1L << (STOP - 132)) | (1L << (STRING - 132)) | (1L << (SUB - 132)) | (1L << (TAB - 132)) | (1L << (TEXT - 132)) | (1L << (THEN - 132)) | (1L << (TIME - 132)) | (1L << (TO - 132)) | (1L << (TRUE - 132)) | (1L << (TYPE - 132)) | (1L << (TYPEOF - 132)) | (1L << (UNLOAD - 132)) | (1L << (UNLOCK - 132)) | (1L << (UNTIL - 132)) | (1L << (VARIANT - 132)) | (1L << (VERSION - 132)) | (1L << (WEND - 132)) | (1L << (WHILE - 132)) | (1L << (WIDTH - 132)) | (1L << (WITH - 132)) | (1L << (WITHEVENTS - 132)) | (1L << (WRITE - 132)) | (1L << (XOR - 132)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14831,7 +14832,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xEF\x978\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF0\x978\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -15044,121 +15045,121 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2"+ "\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104"+ "\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116"+ - "\x2\x118\x2\x11A\x2\x2\x17\x5\x2\x15\x15\"\"\xA4\xA4\x3\x2%\x30\x4\x2"+ - "\xAD\xAD\xB1\xB1\x3\x2\x46J\x3\x2tu\a\x2\x11\x11\x15\x15XX}}\x88\x88\x4"+ - "\x2\x8B\x8C\xB5\xB5\x4\x2\x65g\x9B\x9B\x3\x2\b\t\x4\x2\x9D\x9D\xA3\xA3"+ - "\x4\x2\xB9\xB9\xC2\xC2\x4\x2\xC1\xC1\xC4\xC4\a\x2YY\x63\x63\xBB\xBE\xC0"+ - "\xC0\xC3\xC3\x4\x2\x4\x4\n\n\x4\x2\x17\x18~~\x3\x2\x17\x18\f\x2\x16\x16"+ - "\x19\x19 ##\x34\x34ZZ^^\x9C\x9C\xA1\xA1\xAE\xAE\x6\x2KKqr\xA8\xA8\xC9"+ - "\xCF\x4\x2\x3\a\xB7\xB7\x6\x2MMQQ\x81\x81\x86\x86\n\x2\v\x37@\x45K\x63"+ - "hsvw|\x81\x86\x8B\x8D\xB6\xAE8\x2\x11C\x3\x2\x2\x2\x4\x120\x3\x2\x2\x2"+ - "\x6\x13B\x3\x2\x2\x2\b\x141\x3\x2\x2\x2\n\x14A\x3\x2\x2\x2\f\x158\x3\x2"+ - "\x2\x2\xE\x15C\x3\x2\x2\x2\x10\x16F\x3\x2\x2\x2\x12\x17A\x3\x2\x2\x2\x14"+ - "\x17C\x3\x2\x2\x2\x16\x18C\x3\x2\x2\x2\x18\x18E\x3\x2\x2\x2\x1A\x1A6\x3"+ - "\x2\x2\x2\x1C\x1F3\x3\x2\x2\x2\x1E\x1F5\x3\x2\x2\x2 \x202\x3\x2\x2\x2"+ - "\"\x204\x3\x2\x2\x2$\x208\x3\x2\x2\x2&\x20C\x3\x2\x2\x2(\x221\x3\x2\x2"+ - "\x2*\x233\x3\x2\x2\x2,\x244\x3\x2\x2\x2.\x251\x3\x2\x2\x2\x30\x279\x3"+ - "\x2\x2\x2\x32\x289\x3\x2\x2\x2\x34\x2B9\x3\x2\x2\x2\x36\x2BB\x3\x2\x2"+ - "\x2\x38\x2C0\x3\x2\x2\x2:\x2CE\x3\x2\x2\x2<\x2DB\x3\x2\x2\x2>\x2DF\x3"+ - "\x2\x2\x2@\x2E6\x3\x2\x2\x2\x42\x2F0\x3\x2\x2\x2\x44\x2F2\x3\x2\x2\x2"+ - "\x46\x2FE\x3\x2\x2\x2H\x313\x3\x2\x2\x2J\x33B\x3\x2\x2\x2L\x35B\x3\x2"+ - "\x2\x2N\x371\x3\x2\x2\x2P\x375\x3\x2\x2\x2R\x392\x3\x2\x2\x2T\x394\x3"+ - "\x2\x2\x2V\x39D\x3\x2\x2\x2X\x39F\x3\x2\x2\x2Z\x3A8\x3\x2\x2\x2\\\x3AD"+ - "\x3\x2\x2\x2^\x3B1\x3\x2\x2\x2`\x3C0\x3\x2\x2\x2\x62\x3C6\x3\x2\x2\x2"+ - "\x64\x3D2\x3\x2\x2\x2\x66\x3DE\x3\x2\x2\x2h\x3E2\x3\x2\x2\x2j\x3F5\x3"+ - "\x2\x2\x2l\x401\x3\x2\x2\x2n\x40F\x3\x2\x2\x2p\x413\x3\x2\x2\x2r\x41B"+ - "\x3\x2\x2\x2t\x425\x3\x2\x2\x2v\x439\x3\x2\x2\x2x\x44D\x3\x2\x2\x2z\x48F"+ - "\x3\x2\x2\x2|\x4A2\x3\x2\x2\x2~\x4A4\x3\x2\x2\x2\x80\x4B4\x3\x2\x2\x2"+ - "\x82\x4D3\x3\x2\x2\x2\x84\x4EB\x3\x2\x2\x2\x86\x500\x3\x2\x2\x2\x88\x516"+ - "\x3\x2\x2\x2\x8A\x529\x3\x2\x2\x2\x8C\x52E\x3\x2\x2\x2\x8E\x542\x3\x2"+ - "\x2\x2\x90\x553\x3\x2\x2\x2\x92\x555\x3\x2\x2\x2\x94\x55D\x3\x2\x2\x2"+ - "\x96\x55F\x3\x2\x2\x2\x98\x563\x3\x2\x2\x2\x9A\x56F\x3\x2\x2\x2\x9C\x57B"+ - "\x3\x2\x2\x2\x9E\x597\x3\x2\x2\x2\xA0\x5A3\x3\x2\x2\x2\xA2\x5C2\x3\x2"+ - "\x2\x2\xA4\x5C4\x3\x2\x2\x2\xA6\x5DA\x3\x2\x2\x2\xA8\x5DC\x3\x2\x2\x2"+ - "\xAA\x5E9\x3\x2\x2\x2\xAC\x5F5\x3\x2\x2\x2\xAE\x601\x3\x2\x2\x2\xB0\x606"+ - "\x3\x2\x2\x2\xB2\x61D\x3\x2\x2\x2\xB4\x62A\x3\x2\x2\x2\xB6\x638\x3\x2"+ - "\x2\x2\xB8\x64F\x3\x2\x2\x2\xBA\x658\x3\x2\x2\x2\xBC\x65C\x3\x2\x2\x2"+ - "\xBE\x6A6\x3\x2\x2\x2\xC0\x71C\x3\x2\x2\x2\xC2\x725\x3\x2\x2\x2\xC4\x733"+ - "\x3\x2\x2\x2\xC6\x74E\x3\x2\x2\x2\xC8\x757\x3\x2\x2\x2\xCA\x763\x3\x2"+ - "\x2\x2\xCC\x771\x3\x2\x2\x2\xCE\x77F\x3\x2\x2\x2\xD0\x785\x3\x2\x2\x2"+ - "\xD2\x787\x3\x2\x2\x2\xD4\x7A8\x3\x2\x2\x2\xD6\x7CF\x3\x2\x2\x2\xD8\x7D2"+ - "\x3\x2\x2\x2\xDA\x7EF\x3\x2\x2\x2\xDC\x804\x3\x2\x2\x2\xDE\x806\x3\x2"+ - "\x2\x2\xE0\x81E\x3\x2\x2\x2\xE2\x845\x3\x2\x2\x2\xE4\x861\x3\x2\x2\x2"+ - "\xE6\x86A\x3\x2\x2\x2\xE8\x87A\x3\x2\x2\x2\xEA\x88E\x3\x2\x2\x2\xEC\x899"+ - "\x3\x2\x2\x2\xEE\x8A1\x3\x2\x2\x2\xF0\x8BC\x3\x2\x2\x2\xF2\x8E0\x3\x2"+ - "\x2\x2\xF4\x8E6\x3\x2\x2\x2\xF6\x8F9\x3\x2\x2\x2\xF8\x8FF\x3\x2\x2\x2"+ - "\xFA\x903\x3\x2\x2\x2\xFC\x912\x3\x2\x2\x2\xFE\x923\x3\x2\x2\x2\x100\x925"+ - "\x3\x2\x2\x2\x102\x927\x3\x2\x2\x2\x104\x92F\x3\x2\x2\x2\x106\x937\x3"+ - "\x2\x2\x2\x108\x942\x3\x2\x2\x2\x10A\x945\x3\x2\x2\x2\x10C\x949\x3\x2"+ - "\x2\x2\x10E\x955\x3\x2\x2\x2\x110\x957\x3\x2\x2\x2\x112\x959\x3\x2\x2"+ - "\x2\x114\x95B\x3\x2\x2\x2\x116\x95D\x3\x2\x2\x2\x118\x960\x3\x2\x2\x2"+ - "\x11A\x974\x3\x2\x2\x2\x11C\x11D\x5\x4\x3\x2\x11D\x11E\a\x2\x2\x3\x11E"+ - "\x3\x3\x2\x2\x2\x11F\x121\a\xEE\x2\x2\x120\x11F\x3\x2\x2\x2\x120\x121"+ - "\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x126\x5\x11A\x8E\x2\x123\x124"+ - "\x5\x6\x4\x2\x124\x125\x5\x11A\x8E\x2\x125\x127\x3\x2\x2\x2\x126\x123"+ - "\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x129\x3\x2\x2\x2\x128\x12A\x5"+ - "\b\x5\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x12B\x3\x2\x2"+ - "\x2\x12B\x12D\x5\x11A\x8E\x2\x12C\x12E\x5\f\a\x2\x12D\x12C\x3\x2\x2\x2"+ - "\x12D\x12E\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x131\x5\x11A\x8E\x2"+ - "\x130\x132\x5\xE\b\x2\x131\x130\x3\x2\x2\x2\x131\x132\x3\x2\x2\x2\x132"+ - "\x133\x3\x2\x2\x2\x133\x135\x5\x11A\x8E\x2\x134\x136\x5\x14\v\x2\x135"+ - "\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139"+ - "\x5\x11A\x8E\x2\x138\x13A\a\xEE\x2\x2\x139\x138\x3\x2\x2\x2\x139\x13A"+ - "\x3\x2\x2\x2\x13A\x5\x3\x2\x2\x2\x13B\x13C\a\xAF\x2\x2\x13C\x13D\a\xEE"+ - "\x2\x2\x13D\x13E\a\xCE\x2\x2\x13E\x13F\a\xEE\x2\x2\x13F\x140\a\x1E\x2"+ - "\x2\x140\a\x3\x2\x2\x2\x141\x142\a\x13\x2\x2\x142\x144\x5\x11A\x8E\x2"+ - "\x143\x145\x5\n\x6\x2\x144\x143\x3\x2\x2\x2\x145\x146\x3\x2\x2\x2\x146"+ - "\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2\x148\x149"+ - "\a@\x2\x2\x149\t\x3\x2\x2\x2\x14A\x14C\x5\xF8}\x2\x14B\x14D\a\xEE\x2\x2"+ - "\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E"+ - "\x150\a\xBB\x2\x2\x14F\x151\a\xEE\x2\x2\x150\x14F\x3\x2\x2\x2\x150\x151"+ - "\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\x5\x10A\x86\x2\x153\x154"+ - "\x5\x11A\x8E\x2\x154\v\x3\x2\x2\x2\x155\x156\x5\x18\r\x2\x156\x157\x5"+ - "\x11A\x8E\x2\x157\x159\x3\x2\x2\x2\x158\x155\x3\x2\x2\x2\x159\x15A\x3"+ - "\x2\x2\x2\x15A\x158\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B\r\x3\x2\x2"+ - "\x2\x15C\x162\x5\x12\n\x2\x15D\x15E\x5\x11A\x8E\x2\x15E\x15F\x5\x12\n"+ - "\x2\x15F\x161\x3\x2\x2\x2\x160\x15D\x3\x2\x2\x2\x161\x164\x3\x2\x2\x2"+ - "\x162\x160\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x165\x3\x2\x2\x2\x164"+ - "\x162\x3\x2\x2\x2\x165\x166\x5\x11A\x8E\x2\x166\xF\x3\x2\x2\x2\x167\x168"+ - "\ax\x2\x2\x168\x169\a\xEE\x2\x2\x169\x170\a\xCC\x2\x2\x16A\x16B\az\x2"+ - "\x2\x16B\x16C\a\xEE\x2\x2\x16C\x170\t\x2\x2\x2\x16D\x170\ay\x2\x2\x16E"+ - "\x170\a{\x2\x2\x16F\x167\x3\x2\x2\x2\x16F\x16A\x3\x2\x2\x2\x16F\x16D\x3"+ - "\x2\x2\x2\x16F\x16E\x3\x2\x2\x2\x170\x11\x3\x2\x2\x2\x171\x17B\x5\x116"+ - "\x8C\x2\x172\x17B\x5.\x18\x2\x173\x17B\x5\x38\x1D\x2\x174\x17B\x5@!\x2"+ - "\x175\x17B\x5(\x15\x2\x176\x17B\x5\\/\x2\x177\x17B\x5\xC0\x61\x2\x178"+ - "\x17B\x5\x10\t\x2\x179\x17B\x5\xB4[\x2\x17A\x171\x3\x2\x2\x2\x17A\x172"+ - "\x3\x2\x2\x2\x17A\x173\x3\x2\x2\x2\x17A\x174\x3\x2\x2\x2\x17A\x175\x3"+ - "\x2\x2\x2\x17A\x176\x3\x2\x2\x2\x17A\x177\x3\x2\x2\x2\x17A\x178\x3\x2"+ - "\x2\x2\x17A\x179\x3\x2\x2\x2\x17B\x13\x3\x2\x2\x2\x17C\x182\x5\x16\f\x2"+ - "\x17D\x17E\x5\x11A\x8E\x2\x17E\x17F\x5\x16\f\x2\x17F\x181\x3\x2\x2\x2"+ - "\x180\x17D\x3\x2\x2\x2\x181\x184\x3\x2\x2\x2\x182\x180\x3\x2\x2\x2\x182"+ - "\x183\x3\x2\x2\x2\x183\x185\x3\x2\x2\x2\x184\x182\x3\x2\x2\x2\x185\x186"+ - "\x5\x11A\x8E\x2\x186\x15\x3\x2\x2\x2\x187\x18D\x5J&\x2\x188\x18D\x5\x80"+ - "\x41\x2\x189\x18D\x5\x82\x42\x2\x18A\x18D\x5\x84\x43\x2\x18B\x18D\x5\xB0"+ - "Y\x2\x18C\x187\x3\x2\x2\x2\x18C\x188\x3\x2\x2\x2\x18C\x189\x3\x2\x2\x2"+ - "\x18C\x18A\x3\x2\x2\x2\x18C\x18B\x3\x2\x2\x2\x18D\x17\x3\x2\x2\x2\x18E"+ - "\x18F\a\xF\x2\x2\x18F\x190\a\xEE\x2\x2\x190\x192\x5\xDCo\x2\x191\x193"+ - "\a\xEE\x2\x2\x192\x191\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2\x193\x194\x3"+ - "\x2\x2\x2\x194\x196\a\xBB\x2\x2\x195\x197\a\xEE\x2\x2\x196\x195\x3\x2"+ - "\x2\x2\x196\x197\x3\x2\x2\x2\x197\x198\x3\x2\x2\x2\x198\x1A3\x5\x10A\x86"+ - "\x2\x199\x19B\a\xEE\x2\x2\x19A\x199\x3\x2\x2\x2\x19A\x19B\x3\x2\x2\x2"+ - "\x19B\x19C\x3\x2\x2\x2\x19C\x19E\a\t\x2\x2\x19D\x19F\a\xEE\x2\x2\x19E"+ - "\x19D\x3\x2\x2\x2\x19E\x19F\x3\x2\x2\x2\x19F\x1A0\x3\x2\x2\x2\x1A0\x1A2"+ - "\x5\x10A\x86\x2\x1A1\x19A\x3\x2\x2\x2\x1A2\x1A5\x3\x2\x2\x2\x1A3\x1A1"+ - "\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x19\x3\x2\x2\x2\x1A5\x1A3\x3\x2"+ - "\x2\x2\x1A6\x1AC\x5\x1C\xF\x2\x1A7\x1A8\x5\x11A\x8E\x2\x1A8\x1A9\x5\x1C"+ - "\xF\x2\x1A9\x1AB\x3\x2\x2\x2\x1AA\x1A7\x3\x2\x2\x2\x1AB\x1AE\x3\x2\x2"+ - "\x2\x1AC\x1AA\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\x3\x2\x2\x2"+ - "\x1AE\x1AC\x3\x2\x2\x2\x1AF\x1B0\x5\x11A\x8E\x2\x1B0\x1B\x3\x2\x2\x2\x1B1"+ - "\x1F4\x5\x108\x85\x2\x1B2\x1F4\x5\x1E\x10\x2\x1B3\x1F4\x5\x18\r\x2\x1B4"+ - "\x1F4\x5 \x11\x2\x1B5\x1F4\x5\"\x12\x2\x1B6\x1F4\x5$\x13\x2\x1B7\x1F4"+ - "\x5&\x14\x2\x1B8\x1F4\x5(\x15\x2\x1B9\x1F4\x5,\x17\x2\x1BA\x1F4\x5\x32"+ - "\x1A\x2\x1BB\x1F4\x5\x30\x19\x2\x1BC\x1F4\x5\x34\x1B\x2\x1BD\x1F4\x5\x36"+ - "\x1C\x2\x1BE\x1F4\x5<\x1F\x2\x1BF\x1F4\x5> \x2\x1C0\x1F4\x5\x42\"\x2\x1C1"+ - "\x1F4\x5\xD0i\x2\x1C2\x1F4\x5\x44#\x2\x1C3\x1F4\x5\x46$\x2\x1C4\x1F4\x5"+ - "H%\x2\x1C5\x1F4\x5L\'\x2\x1C6\x1F4\x5N(\x2\x1C7\x1F4\x5P)\x2\x1C8\x1F4"+ - "\x5R*\x2\x1C9\x1F4\x5\\/\x2\x1CA\x1F4\x5^\x30\x2\x1CB\x1F4\x5`\x31\x2"+ - "\x1CC\x1F4\x5\x62\x32\x2\x1CD\x1F4\x5\x64\x33\x2\x1CE\x1F4\x5\x66\x34"+ + "\x2\x118\x2\x11A\x2\x2\x17\x5\x2\x15\x15\"\"\xA5\xA5\x3\x2%\x30\x4\x2"+ + "\xAE\xAE\xB2\xB2\x3\x2GK\x3\x2uv\a\x2\x11\x11\x15\x15YY~~\x89\x89\x4\x2"+ + "\x8C\x8D\xB6\xB6\x4\x2\x66h\x9C\x9C\x3\x2\b\t\x4\x2\x9E\x9E\xA4\xA4\x4"+ + "\x2\xBA\xBA\xC3\xC3\x4\x2\xC2\xC2\xC5\xC5\a\x2ZZ\x64\x64\xBC\xBF\xC1\xC1"+ + "\xC4\xC4\x4\x2\x4\x4\n\n\x4\x2\x17\x18\x7F\x7F\x3\x2\x17\x18\f\x2\x16"+ + "\x16\x19\x19 ##\x34\x34[[__\x9D\x9D\xA2\xA2\xAF\xAF\a\x2\x38\x38LLrs"+ + "\xA9\xA9\xCA\xD0\x4\x2\x3\a\xB8\xB8\x6\x2NNRR\x82\x82\x87\x87\n\x2\v\x37"+ + "\x41\x46L\x64itwx}\x82\x87\x8C\x8E\xB7\xAE8\x2\x11C\x3\x2\x2\x2\x4\x120"+ + "\x3\x2\x2\x2\x6\x13B\x3\x2\x2\x2\b\x141\x3\x2\x2\x2\n\x14A\x3\x2\x2\x2"+ + "\f\x158\x3\x2\x2\x2\xE\x15C\x3\x2\x2\x2\x10\x16F\x3\x2\x2\x2\x12\x17A"+ + "\x3\x2\x2\x2\x14\x17C\x3\x2\x2\x2\x16\x18C\x3\x2\x2\x2\x18\x18E\x3\x2"+ + "\x2\x2\x1A\x1A6\x3\x2\x2\x2\x1C\x1F3\x3\x2\x2\x2\x1E\x1F5\x3\x2\x2\x2"+ + " \x202\x3\x2\x2\x2\"\x204\x3\x2\x2\x2$\x208\x3\x2\x2\x2&\x20C\x3\x2\x2"+ + "\x2(\x221\x3\x2\x2\x2*\x233\x3\x2\x2\x2,\x244\x3\x2\x2\x2.\x251\x3\x2"+ + "\x2\x2\x30\x279\x3\x2\x2\x2\x32\x289\x3\x2\x2\x2\x34\x2B9\x3\x2\x2\x2"+ + "\x36\x2BB\x3\x2\x2\x2\x38\x2C0\x3\x2\x2\x2:\x2CE\x3\x2\x2\x2<\x2DB\x3"+ + "\x2\x2\x2>\x2DF\x3\x2\x2\x2@\x2E6\x3\x2\x2\x2\x42\x2F0\x3\x2\x2\x2\x44"+ + "\x2F2\x3\x2\x2\x2\x46\x2FE\x3\x2\x2\x2H\x313\x3\x2\x2\x2J\x33B\x3\x2\x2"+ + "\x2L\x35B\x3\x2\x2\x2N\x371\x3\x2\x2\x2P\x375\x3\x2\x2\x2R\x392\x3\x2"+ + "\x2\x2T\x394\x3\x2\x2\x2V\x39D\x3\x2\x2\x2X\x39F\x3\x2\x2\x2Z\x3A8\x3"+ + "\x2\x2\x2\\\x3AD\x3\x2\x2\x2^\x3B1\x3\x2\x2\x2`\x3C0\x3\x2\x2\x2\x62\x3C6"+ + "\x3\x2\x2\x2\x64\x3D2\x3\x2\x2\x2\x66\x3DE\x3\x2\x2\x2h\x3E2\x3\x2\x2"+ + "\x2j\x3F5\x3\x2\x2\x2l\x401\x3\x2\x2\x2n\x40F\x3\x2\x2\x2p\x413\x3\x2"+ + "\x2\x2r\x41B\x3\x2\x2\x2t\x425\x3\x2\x2\x2v\x439\x3\x2\x2\x2x\x44D\x3"+ + "\x2\x2\x2z\x48F\x3\x2\x2\x2|\x4A2\x3\x2\x2\x2~\x4A4\x3\x2\x2\x2\x80\x4B4"+ + "\x3\x2\x2\x2\x82\x4D3\x3\x2\x2\x2\x84\x4EB\x3\x2\x2\x2\x86\x500\x3\x2"+ + "\x2\x2\x88\x516\x3\x2\x2\x2\x8A\x529\x3\x2\x2\x2\x8C\x52E\x3\x2\x2\x2"+ + "\x8E\x542\x3\x2\x2\x2\x90\x553\x3\x2\x2\x2\x92\x555\x3\x2\x2\x2\x94\x55D"+ + "\x3\x2\x2\x2\x96\x55F\x3\x2\x2\x2\x98\x563\x3\x2\x2\x2\x9A\x56F\x3\x2"+ + "\x2\x2\x9C\x57B\x3\x2\x2\x2\x9E\x597\x3\x2\x2\x2\xA0\x5A3\x3\x2\x2\x2"+ + "\xA2\x5C2\x3\x2\x2\x2\xA4\x5C4\x3\x2\x2\x2\xA6\x5DA\x3\x2\x2\x2\xA8\x5DC"+ + "\x3\x2\x2\x2\xAA\x5E9\x3\x2\x2\x2\xAC\x5F5\x3\x2\x2\x2\xAE\x601\x3\x2"+ + "\x2\x2\xB0\x606\x3\x2\x2\x2\xB2\x61D\x3\x2\x2\x2\xB4\x62A\x3\x2\x2\x2"+ + "\xB6\x638\x3\x2\x2\x2\xB8\x64F\x3\x2\x2\x2\xBA\x658\x3\x2\x2\x2\xBC\x65C"+ + "\x3\x2\x2\x2\xBE\x6A6\x3\x2\x2\x2\xC0\x71C\x3\x2\x2\x2\xC2\x725\x3\x2"+ + "\x2\x2\xC4\x733\x3\x2\x2\x2\xC6\x74E\x3\x2\x2\x2\xC8\x757\x3\x2\x2\x2"+ + "\xCA\x763\x3\x2\x2\x2\xCC\x771\x3\x2\x2\x2\xCE\x77F\x3\x2\x2\x2\xD0\x785"+ + "\x3\x2\x2\x2\xD2\x787\x3\x2\x2\x2\xD4\x7A8\x3\x2\x2\x2\xD6\x7CF\x3\x2"+ + "\x2\x2\xD8\x7D2\x3\x2\x2\x2\xDA\x7EF\x3\x2\x2\x2\xDC\x804\x3\x2\x2\x2"+ + "\xDE\x806\x3\x2\x2\x2\xE0\x81E\x3\x2\x2\x2\xE2\x845\x3\x2\x2\x2\xE4\x861"+ + "\x3\x2\x2\x2\xE6\x86A\x3\x2\x2\x2\xE8\x87A\x3\x2\x2\x2\xEA\x88E\x3\x2"+ + "\x2\x2\xEC\x899\x3\x2\x2\x2\xEE\x8A1\x3\x2\x2\x2\xF0\x8BC\x3\x2\x2\x2"+ + "\xF2\x8E0\x3\x2\x2\x2\xF4\x8E6\x3\x2\x2\x2\xF6\x8F9\x3\x2\x2\x2\xF8\x8FF"+ + "\x3\x2\x2\x2\xFA\x903\x3\x2\x2\x2\xFC\x912\x3\x2\x2\x2\xFE\x923\x3\x2"+ + "\x2\x2\x100\x925\x3\x2\x2\x2\x102\x927\x3\x2\x2\x2\x104\x92F\x3\x2\x2"+ + "\x2\x106\x937\x3\x2\x2\x2\x108\x942\x3\x2\x2\x2\x10A\x945\x3\x2\x2\x2"+ + "\x10C\x949\x3\x2\x2\x2\x10E\x955\x3\x2\x2\x2\x110\x957\x3\x2\x2\x2\x112"+ + "\x959\x3\x2\x2\x2\x114\x95B\x3\x2\x2\x2\x116\x95D\x3\x2\x2\x2\x118\x960"+ + "\x3\x2\x2\x2\x11A\x974\x3\x2\x2\x2\x11C\x11D\x5\x4\x3\x2\x11D\x11E\a\x2"+ + "\x2\x3\x11E\x3\x3\x2\x2\x2\x11F\x121\a\xEF\x2\x2\x120\x11F\x3\x2\x2\x2"+ + "\x120\x121\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x126\x5\x11A\x8E\x2"+ + "\x123\x124\x5\x6\x4\x2\x124\x125\x5\x11A\x8E\x2\x125\x127\x3\x2\x2\x2"+ + "\x126\x123\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x129\x3\x2\x2\x2\x128"+ + "\x12A\x5\b\x5\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x12B"+ + "\x3\x2\x2\x2\x12B\x12D\x5\x11A\x8E\x2\x12C\x12E\x5\f\a\x2\x12D\x12C\x3"+ + "\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x131\x5\x11A"+ + "\x8E\x2\x130\x132\x5\xE\b\x2\x131\x130\x3\x2\x2\x2\x131\x132\x3\x2\x2"+ + "\x2\x132\x133\x3\x2\x2\x2\x133\x135\x5\x11A\x8E\x2\x134\x136\x5\x14\v"+ + "\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2"+ + "\x137\x139\x5\x11A\x8E\x2\x138\x13A\a\xEF\x2\x2\x139\x138\x3\x2\x2\x2"+ + "\x139\x13A\x3\x2\x2\x2\x13A\x5\x3\x2\x2\x2\x13B\x13C\a\xB0\x2\x2\x13C"+ + "\x13D\a\xEF\x2\x2\x13D\x13E\a\xCF\x2\x2\x13E\x13F\a\xEF\x2\x2\x13F\x140"+ + "\a\x1E\x2\x2\x140\a\x3\x2\x2\x2\x141\x142\a\x13\x2\x2\x142\x144\x5\x11A"+ + "\x8E\x2\x143\x145\x5\n\x6\x2\x144\x143\x3\x2\x2\x2\x145\x146\x3\x2\x2"+ + "\x2\x146\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2"+ + "\x148\x149\a\x41\x2\x2\x149\t\x3\x2\x2\x2\x14A\x14C\x5\xF8}\x2\x14B\x14D"+ + "\a\xEF\x2\x2\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3"+ + "\x2\x2\x2\x14E\x150\a\xBC\x2\x2\x14F\x151\a\xEF\x2\x2\x150\x14F\x3\x2"+ + "\x2\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\x5\x10A\x86"+ + "\x2\x153\x154\x5\x11A\x8E\x2\x154\v\x3\x2\x2\x2\x155\x156\x5\x18\r\x2"+ + "\x156\x157\x5\x11A\x8E\x2\x157\x159\x3\x2\x2\x2\x158\x155\x3\x2\x2\x2"+ + "\x159\x15A\x3\x2\x2\x2\x15A\x158\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B"+ + "\r\x3\x2\x2\x2\x15C\x162\x5\x12\n\x2\x15D\x15E\x5\x11A\x8E\x2\x15E\x15F"+ + "\x5\x12\n\x2\x15F\x161\x3\x2\x2\x2\x160\x15D\x3\x2\x2\x2\x161\x164\x3"+ + "\x2\x2\x2\x162\x160\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x165\x3\x2"+ + "\x2\x2\x164\x162\x3\x2\x2\x2\x165\x166\x5\x11A\x8E\x2\x166\xF\x3\x2\x2"+ + "\x2\x167\x168\ay\x2\x2\x168\x169\a\xEF\x2\x2\x169\x170\a\xCD\x2\x2\x16A"+ + "\x16B\a{\x2\x2\x16B\x16C\a\xEF\x2\x2\x16C\x170\t\x2\x2\x2\x16D\x170\a"+ + "z\x2\x2\x16E\x170\a|\x2\x2\x16F\x167\x3\x2\x2\x2\x16F\x16A\x3\x2\x2\x2"+ + "\x16F\x16D\x3\x2\x2\x2\x16F\x16E\x3\x2\x2\x2\x170\x11\x3\x2\x2\x2\x171"+ + "\x17B\x5\x116\x8C\x2\x172\x17B\x5.\x18\x2\x173\x17B\x5\x38\x1D\x2\x174"+ + "\x17B\x5@!\x2\x175\x17B\x5(\x15\x2\x176\x17B\x5\\/\x2\x177\x17B\x5\xC0"+ + "\x61\x2\x178\x17B\x5\x10\t\x2\x179\x17B\x5\xB4[\x2\x17A\x171\x3\x2\x2"+ + "\x2\x17A\x172\x3\x2\x2\x2\x17A\x173\x3\x2\x2\x2\x17A\x174\x3\x2\x2\x2"+ + "\x17A\x175\x3\x2\x2\x2\x17A\x176\x3\x2\x2\x2\x17A\x177\x3\x2\x2\x2\x17A"+ + "\x178\x3\x2\x2\x2\x17A\x179\x3\x2\x2\x2\x17B\x13\x3\x2\x2\x2\x17C\x182"+ + "\x5\x16\f\x2\x17D\x17E\x5\x11A\x8E\x2\x17E\x17F\x5\x16\f\x2\x17F\x181"+ + "\x3\x2\x2\x2\x180\x17D\x3\x2\x2\x2\x181\x184\x3\x2\x2\x2\x182\x180\x3"+ + "\x2\x2\x2\x182\x183\x3\x2\x2\x2\x183\x185\x3\x2\x2\x2\x184\x182\x3\x2"+ + "\x2\x2\x185\x186\x5\x11A\x8E\x2\x186\x15\x3\x2\x2\x2\x187\x18D\x5J&\x2"+ + "\x188\x18D\x5\x80\x41\x2\x189\x18D\x5\x82\x42\x2\x18A\x18D\x5\x84\x43"+ + "\x2\x18B\x18D\x5\xB0Y\x2\x18C\x187\x3\x2\x2\x2\x18C\x188\x3\x2\x2\x2\x18C"+ + "\x189\x3\x2\x2\x2\x18C\x18A\x3\x2\x2\x2\x18C\x18B\x3\x2\x2\x2\x18D\x17"+ + "\x3\x2\x2\x2\x18E\x18F\a\xF\x2\x2\x18F\x190\a\xEF\x2\x2\x190\x192\x5\xDC"+ + "o\x2\x191\x193\a\xEF\x2\x2\x192\x191\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2"+ + "\x193\x194\x3\x2\x2\x2\x194\x196\a\xBC\x2\x2\x195\x197\a\xEF\x2\x2\x196"+ + "\x195\x3\x2\x2\x2\x196\x197\x3\x2\x2\x2\x197\x198\x3\x2\x2\x2\x198\x1A3"+ + "\x5\x10A\x86\x2\x199\x19B\a\xEF\x2\x2\x19A\x199\x3\x2\x2\x2\x19A\x19B"+ + "\x3\x2\x2\x2\x19B\x19C\x3\x2\x2\x2\x19C\x19E\a\t\x2\x2\x19D\x19F\a\xEF"+ + "\x2\x2\x19E\x19D\x3\x2\x2\x2\x19E\x19F\x3\x2\x2\x2\x19F\x1A0\x3\x2\x2"+ + "\x2\x1A0\x1A2\x5\x10A\x86\x2\x1A1\x19A\x3\x2\x2\x2\x1A2\x1A5\x3\x2\x2"+ + "\x2\x1A3\x1A1\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x19\x3\x2\x2\x2\x1A5"+ + "\x1A3\x3\x2\x2\x2\x1A6\x1AC\x5\x1C\xF\x2\x1A7\x1A8\x5\x11A\x8E\x2\x1A8"+ + "\x1A9\x5\x1C\xF\x2\x1A9\x1AB\x3\x2\x2\x2\x1AA\x1A7\x3\x2\x2\x2\x1AB\x1AE"+ + "\x3\x2\x2\x2\x1AC\x1AA\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\x3"+ + "\x2\x2\x2\x1AE\x1AC\x3\x2\x2\x2\x1AF\x1B0\x5\x11A\x8E\x2\x1B0\x1B\x3\x2"+ + "\x2\x2\x1B1\x1F4\x5\x108\x85\x2\x1B2\x1F4\x5\x1E\x10\x2\x1B3\x1F4\x5\x18"+ + "\r\x2\x1B4\x1F4\x5 \x11\x2\x1B5\x1F4\x5\"\x12\x2\x1B6\x1F4\x5$\x13\x2"+ + "\x1B7\x1F4\x5&\x14\x2\x1B8\x1F4\x5(\x15\x2\x1B9\x1F4\x5,\x17\x2\x1BA\x1F4"+ + "\x5\x32\x1A\x2\x1BB\x1F4\x5\x30\x19\x2\x1BC\x1F4\x5\x34\x1B\x2\x1BD\x1F4"+ + "\x5\x36\x1C\x2\x1BE\x1F4\x5<\x1F\x2\x1BF\x1F4\x5> \x2\x1C0\x1F4\x5\x42"+ + "\"\x2\x1C1\x1F4\x5\xD0i\x2\x1C2\x1F4\x5\x44#\x2\x1C3\x1F4\x5\x46$\x2\x1C4"+ + "\x1F4\x5H%\x2\x1C5\x1F4\x5L\'\x2\x1C6\x1F4\x5N(\x2\x1C7\x1F4\x5P)\x2\x1C8"+ + "\x1F4\x5R*\x2\x1C9\x1F4\x5\\/\x2\x1CA\x1F4\x5^\x30\x2\x1CB\x1F4\x5`\x31"+ + "\x2\x1CC\x1F4\x5\x62\x32\x2\x1CD\x1F4\x5\x64\x33\x2\x1CE\x1F4\x5\x66\x34"+ "\x2\x1CF\x1F4\x5h\x35\x2\x1D0\x1F4\x5j\x36\x2\x1D1\x1F4\x5l\x37\x2\x1D2"+ "\x1F4\x5n\x38\x2\x1D3\x1F4\x5p\x39\x2\x1D4\x1F4\x5r:\x2\x1D5\x1F4\x5t"+ ";\x2\x1D6\x1F4\x5v<\x2\x1D7\x1F4\x5x=\x2\x1D8\x1F4\x5~@\x2\x1D9\x1F4\x5"+ @@ -15191,725 +15192,725 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\x2\x2\x2\x1F3\x1EB\x3\x2\x2\x2\x1F3\x1EC\x3\x2\x2\x2\x1F3\x1ED\x3\x2"+ "\x2\x2\x1F3\x1EE\x3\x2\x2\x2\x1F3\x1EF\x3\x2\x2\x2\x1F3\x1F0\x3\x2\x2"+ "\x2\x1F3\x1F1\x3\x2\x2\x2\x1F3\x1F2\x3\x2\x2\x2\x1F4\x1D\x3\x2\x2\x2\x1F5"+ - "\x1F6\a\x10\x2\x2\x1F6\x1F7\a\xEE\x2\x2\x1F7\x200\x5\xBE`\x2\x1F8\x1FA"+ - "\a\xEE\x2\x2\x1F9\x1F8\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\x3"+ - "\x2\x2\x2\x1FB\x1FD\a\t\x2\x2\x1FC\x1FE\a\xEE\x2\x2\x1FD\x1FC\x3\x2\x2"+ + "\x1F6\a\x10\x2\x2\x1F6\x1F7\a\xEF\x2\x2\x1F7\x200\x5\xBE`\x2\x1F8\x1FA"+ + "\a\xEF\x2\x2\x1F9\x1F8\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\x3"+ + "\x2\x2\x2\x1FB\x1FD\a\t\x2\x2\x1FC\x1FE\a\xEF\x2\x2\x1FD\x1FC\x3\x2\x2"+ "\x2\x1FD\x1FE\x3\x2\x2\x2\x1FE\x1FF\x3\x2\x2\x2\x1FF\x201\x5\xBE`\x2\x200"+ "\x1F9\x3\x2\x2\x2\x200\x201\x3\x2\x2\x2\x201\x1F\x3\x2\x2\x2\x202\x203"+ - "\a\x14\x2\x2\x203!\x3\x2\x2\x2\x204\x205\a\x1C\x2\x2\x205\x206\a\xEE\x2"+ + "\a\x14\x2\x2\x203!\x3\x2\x2\x2\x204\x205\a\x1C\x2\x2\x205\x206\a\xEF\x2"+ "\x2\x206\x207\x5\xBE`\x2\x207#\x3\x2\x2\x2\x208\x209\a\x1D\x2\x2\x209"+ - "\x20A\a\xEE\x2\x2\x20A\x20B\x5\xBE`\x2\x20B%\x3\x2\x2\x2\x20C\x21C\a\x1F"+ - "\x2\x2\x20D\x20E\a\xEE\x2\x2\x20E\x219\x5\xCEh\x2\x20F\x211\a\xEE\x2\x2"+ + "\x20A\a\xEF\x2\x2\x20A\x20B\x5\xBE`\x2\x20B%\x3\x2\x2\x2\x20C\x21C\a\x1F"+ + "\x2\x2\x20D\x20E\a\xEF\x2\x2\x20E\x219\x5\xCEh\x2\x20F\x211\a\xEF\x2\x2"+ "\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x212\x3\x2\x2\x2\x212"+ - "\x214\a\t\x2\x2\x213\x215\a\xEE\x2\x2\x214\x213\x3\x2\x2\x2\x214\x215"+ + "\x214\a\t\x2\x2\x213\x215\a\xEF\x2\x2\x214\x213\x3\x2\x2\x2\x214\x215"+ "\x3\x2\x2\x2\x215\x216\x3\x2\x2\x2\x216\x218\x5\xCEh\x2\x217\x210\x3\x2"+ "\x2\x2\x218\x21B\x3\x2\x2\x2\x219\x217\x3\x2\x2\x2\x219\x21A\x3\x2\x2"+ "\x2\x21A\x21D\x3\x2\x2\x2\x21B\x219\x3\x2\x2\x2\x21C\x20D\x3\x2\x2\x2"+ "\x21C\x21D\x3\x2\x2\x2\x21D\'\x3\x2\x2\x2\x21E\x21F\x5\x110\x89\x2\x21F"+ - "\x220\a\xEE\x2\x2\x220\x222\x3\x2\x2\x2\x221\x21E\x3\x2\x2\x2\x221\x222"+ - "\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\a!\x2\x2\x224\x225\a\xEE"+ - "\x2\x2\x225\x230\x5*\x16\x2\x226\x228\a\xEE\x2\x2\x227\x226\x3\x2\x2\x2"+ + "\x220\a\xEF\x2\x2\x220\x222\x3\x2\x2\x2\x221\x21E\x3\x2\x2\x2\x221\x222"+ + "\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\a!\x2\x2\x224\x225\a\xEF"+ + "\x2\x2\x225\x230\x5*\x16\x2\x226\x228\a\xEF\x2\x2\x227\x226\x3\x2\x2\x2"+ "\x227\x228\x3\x2\x2\x2\x228\x229\x3\x2\x2\x2\x229\x22B\a\t\x2\x2\x22A"+ - "\x22C\a\xEE\x2\x2\x22B\x22A\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C\x22D"+ + "\x22C\a\xEF\x2\x2\x22B\x22A\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C\x22D"+ "\x3\x2\x2\x2\x22D\x22F\x5*\x16\x2\x22E\x227\x3\x2\x2\x2\x22F\x232\x3\x2"+ "\x2\x2\x230\x22E\x3\x2\x2\x2\x230\x231\x3\x2\x2\x2\x231)\x3\x2\x2\x2\x232"+ "\x230\x3\x2\x2\x2\x233\x235\x5\xF8}\x2\x234\x236\x5\x10E\x88\x2\x235\x234"+ - "\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236\x239\x3\x2\x2\x2\x237\x238\a\xEE"+ + "\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236\x239\x3\x2\x2\x2\x237\x238\a\xEF"+ "\x2\x2\x238\x23A\x5\xFA~\x2\x239\x237\x3\x2\x2\x2\x239\x23A\x3\x2\x2\x2"+ - "\x23A\x23C\x3\x2\x2\x2\x23B\x23D\a\xEE\x2\x2\x23C\x23B\x3\x2\x2\x2\x23C"+ - "\x23D\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E\x240\a\xBB\x2\x2\x23F\x241"+ - "\a\xEE\x2\x2\x240\x23F\x3\x2\x2\x2\x240\x241\x3\x2\x2\x2\x241\x242\x3"+ + "\x23A\x23C\x3\x2\x2\x2\x23B\x23D\a\xEF\x2\x2\x23C\x23B\x3\x2\x2\x2\x23C"+ + "\x23D\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E\x240\a\xBC\x2\x2\x23F\x241"+ + "\a\xEF\x2\x2\x240\x23F\x3\x2\x2\x2\x240\x241\x3\x2\x2\x2\x241\x242\x3"+ "\x2\x2\x2\x242\x243\x5\xBE`\x2\x243+\x3\x2\x2\x2\x244\x246\a#\x2\x2\x245"+ - "\x247\a\xEE\x2\x2\x246\x245\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248"+ - "\x3\x2\x2\x2\x248\x24A\a\xBB\x2\x2\x249\x24B\a\xEE\x2\x2\x24A\x249\x3"+ + "\x247\a\xEF\x2\x2\x246\x245\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248"+ + "\x3\x2\x2\x2\x248\x24A\a\xBC\x2\x2\x249\x24B\a\xEF\x2\x2\x24A\x249\x3"+ "\x2\x2\x2\x24A\x24B\x3\x2\x2\x2\x24B\x24C\x3\x2\x2\x2\x24C\x24D\x5\xBE"+ - "`\x2\x24D-\x3\x2\x2\x2\x24E\x24F\x5\x110\x89\x2\x24F\x250\a\xEE\x2\x2"+ + "`\x2\x24D-\x3\x2\x2\x2\x24E\x24F\x5\x110\x89\x2\x24F\x250\a\xEF\x2\x2"+ "\x250\x252\x3\x2\x2\x2\x251\x24E\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252"+ - "\x253\x3\x2\x2\x2\x253\x254\a$\x2\x2\x254\x257\a\xEE\x2\x2\x255\x256\a"+ - "\x85\x2\x2\x256\x258\a\xEE\x2\x2\x257\x255\x3\x2\x2\x2\x257\x258\x3\x2"+ - "\x2\x2\x258\x25E\x3\x2\x2\x2\x259\x25B\aO\x2\x2\x25A\x25C\x5\x10E\x88"+ + "\x253\x3\x2\x2\x2\x253\x254\a$\x2\x2\x254\x257\a\xEF\x2\x2\x255\x256\a"+ + "\x86\x2\x2\x256\x258\a\xEF\x2\x2\x257\x255\x3\x2\x2\x2\x257\x258\x3\x2"+ + "\x2\x2\x258\x25E\x3\x2\x2\x2\x259\x25B\aP\x2\x2\x25A\x25C\x5\x10E\x88"+ "\x2\x25B\x25A\x3\x2\x2\x2\x25B\x25C\x3\x2\x2\x2\x25C\x25F\x3\x2\x2\x2"+ - "\x25D\x25F\a\xA2\x2\x2\x25E\x259\x3\x2\x2\x2\x25E\x25D\x3\x2\x2\x2\x25F"+ - "\x260\x3\x2\x2\x2\x260\x261\a\xEE\x2\x2\x261\x263\x5\xF8}\x2\x262\x264"+ + "\x25D\x25F\a\xA3\x2\x2\x25E\x259\x3\x2\x2\x2\x25E\x25D\x3\x2\x2\x2\x25F"+ + "\x260\x3\x2\x2\x2\x260\x261\a\xEF\x2\x2\x261\x263\x5\xF8}\x2\x262\x264"+ "\x5\x10E\x88\x2\x263\x262\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x265"+ - "\x3\x2\x2\x2\x265\x266\a\xEE\x2\x2\x266\x267\a\x62\x2\x2\x267\x268\a\xEE"+ - "\x2\x2\x268\x26D\a\xC9\x2\x2\x269\x26A\a\xEE\x2\x2\x26A\x26B\a\r\x2\x2"+ - "\x26B\x26C\a\xEE\x2\x2\x26C\x26E\a\xC9\x2\x2\x26D\x269\x3\x2\x2\x2\x26D"+ - "\x26E\x3\x2\x2\x2\x26E\x273\x3\x2\x2\x2\x26F\x271\a\xEE\x2\x2\x270\x26F"+ + "\x3\x2\x2\x2\x265\x266\a\xEF\x2\x2\x266\x267\a\x63\x2\x2\x267\x268\a\xEF"+ + "\x2\x2\x268\x26D\a\xCA\x2\x2\x269\x26A\a\xEF\x2\x2\x26A\x26B\a\r\x2\x2"+ + "\x26B\x26C\a\xEF\x2\x2\x26C\x26E\a\xCA\x2\x2\x26D\x269\x3\x2\x2\x2\x26D"+ + "\x26E\x3\x2\x2\x2\x26E\x273\x3\x2\x2\x2\x26F\x271\a\xEF\x2\x2\x270\x26F"+ "\x3\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272\x274\x5"+ "\xEEx\x2\x273\x270\x3\x2\x2\x2\x273\x274\x3\x2\x2\x2\x274\x277\x3\x2\x2"+ - "\x2\x275\x276\a\xEE\x2\x2\x276\x278\x5\xFA~\x2\x277\x275\x3\x2\x2\x2\x277"+ - "\x278\x3\x2\x2\x2\x278/\x3\x2\x2\x2\x279\x27A\t\x3\x2\x2\x27A\x27B\a\xEE"+ - "\x2\x2\x27B\x286\x5\x106\x84\x2\x27C\x27E\a\xEE\x2\x2\x27D\x27C\x3\x2"+ + "\x2\x275\x276\a\xEF\x2\x2\x276\x278\x5\xFA~\x2\x277\x275\x3\x2\x2\x2\x277"+ + "\x278\x3\x2\x2\x2\x278/\x3\x2\x2\x2\x279\x27A\t\x3\x2\x2\x27A\x27B\a\xEF"+ + "\x2\x2\x27B\x286\x5\x106\x84\x2\x27C\x27E\a\xEF\x2\x2\x27D\x27C\x3\x2"+ "\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x27F\x3\x2\x2\x2\x27F\x281\a\t\x2\x2"+ - "\x280\x282\a\xEE\x2\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2\x282"+ + "\x280\x282\a\xEF\x2\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2\x282"+ "\x283\x3\x2\x2\x2\x283\x285\x5\x106\x84\x2\x284\x27D\x3\x2\x2\x2\x285"+ "\x288\x3\x2\x2\x2\x286\x284\x3\x2\x2\x2\x286\x287\x3\x2\x2\x2\x287\x31"+ - "\x3\x2\x2\x2\x288\x286\x3\x2\x2\x2\x289\x28A\a\x31\x2\x2\x28A\x28B\a\xEE"+ - "\x2\x2\x28B\x28D\x5\xBE`\x2\x28C\x28E\a\xEE\x2\x2\x28D\x28C\x3\x2\x2\x2"+ + "\x3\x2\x2\x2\x288\x286\x3\x2\x2\x2\x289\x28A\a\x31\x2\x2\x28A\x28B\a\xEF"+ + "\x2\x2\x28B\x28D\x5\xBE`\x2\x28C\x28E\a\xEF\x2\x2\x28D\x28C\x3\x2\x2\x2"+ "\x28D\x28E\x3\x2\x2\x2\x28E\x28F\x3\x2\x2\x2\x28F\x291\a\t\x2\x2\x290"+ - "\x292\a\xEE\x2\x2\x291\x290\x3\x2\x2\x2\x291\x292\x3\x2\x2\x2\x292\x293"+ - "\x3\x2\x2\x2\x293\x29C\x5\xBE`\x2\x294\x296\a\xEE\x2\x2\x295\x294\x3\x2"+ + "\x292\a\xEF\x2\x2\x291\x290\x3\x2\x2\x2\x291\x292\x3\x2\x2\x2\x292\x293"+ + "\x3\x2\x2\x2\x293\x29C\x5\xBE`\x2\x294\x296\a\xEF\x2\x2\x295\x294\x3\x2"+ "\x2\x2\x295\x296\x3\x2\x2\x2\x296\x297\x3\x2\x2\x2\x297\x299\a\t\x2\x2"+ - "\x298\x29A\a\xEE\x2\x2\x299\x298\x3\x2\x2\x2\x299\x29A\x3\x2\x2\x2\x29A"+ + "\x298\x29A\a\xEF\x2\x2\x299\x298\x3\x2\x2\x2\x299\x29A\x3\x2\x2\x2\x29A"+ "\x29B\x3\x2\x2\x2\x29B\x29D\x5\xBE`\x2\x29C\x295\x3\x2\x2\x2\x29C\x29D"+ "\x3\x2\x2\x2\x29D\x33\x3\x2\x2\x2\x29E\x29F\a\x33\x2\x2\x29F\x2A1\x5\x11A"+ "\x8E\x2\x2A0\x2A2\x5\x1A\xE\x2\x2A1\x2A0\x3\x2\x2\x2\x2A1\x2A2\x3\x2\x2"+ - "\x2\x2A2\x2A3\x3\x2\x2\x2\x2A3\x2A4\a_\x2\x2\x2A4\x2BA\x3\x2\x2\x2\x2A5"+ - "\x2A6\a\x33\x2\x2\x2A6\x2A7\a\xEE\x2\x2\x2A7\x2A8\t\x4\x2\x2\x2A8\x2A9"+ - "\a\xEE\x2\x2\x2A9\x2AA\x5\xBE`\x2\x2AA\x2AC\x5\x11A\x8E\x2\x2AB\x2AD\x5"+ + "\x2\x2A2\x2A3\x3\x2\x2\x2\x2A3\x2A4\a`\x2\x2\x2A4\x2BA\x3\x2\x2\x2\x2A5"+ + "\x2A6\a\x33\x2\x2\x2A6\x2A7\a\xEF\x2\x2\x2A7\x2A8\t\x4\x2\x2\x2A8\x2A9"+ + "\a\xEF\x2\x2\x2A9\x2AA\x5\xBE`\x2\x2AA\x2AC\x5\x11A\x8E\x2\x2AB\x2AD\x5"+ "\x1A\xE\x2\x2AC\x2AB\x3\x2\x2\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE\x3\x2"+ - "\x2\x2\x2AE\x2AF\a_\x2\x2\x2AF\x2BA\x3\x2\x2\x2\x2B0\x2B1\a\x33\x2\x2"+ - "\x2B1\x2B2\x5\x11A\x8E\x2\x2B2\x2B3\x5\x1A\xE\x2\x2B3\x2B4\a_\x2\x2\x2B4"+ - "\x2B5\a\xEE\x2\x2\x2B5\x2B6\t\x4\x2\x2\x2B6\x2B7\a\xEE\x2\x2\x2B7\x2B8"+ + "\x2\x2\x2AE\x2AF\a`\x2\x2\x2AF\x2BA\x3\x2\x2\x2\x2B0\x2B1\a\x33\x2\x2"+ + "\x2B1\x2B2\x5\x11A\x8E\x2\x2B2\x2B3\x5\x1A\xE\x2\x2B3\x2B4\a`\x2\x2\x2B4"+ + "\x2B5\a\xEF\x2\x2\x2B5\x2B6\t\x4\x2\x2\x2B6\x2B7\a\xEF\x2\x2\x2B7\x2B8"+ "\x5\xBE`\x2\x2B8\x2BA\x3\x2\x2\x2\x2B9\x29E\x3\x2\x2\x2\x2B9\x2A5\x3\x2"+ - "\x2\x2\x2B9\x2B0\x3\x2\x2\x2\x2BA\x35\x3\x2\x2\x2\x2BB\x2BC\a@\x2\x2\x2BC"+ - "\x37\x3\x2\x2\x2\x2BD\x2BE\x5\x110\x89\x2\x2BE\x2BF\a\xEE\x2\x2\x2BF\x2C1"+ - "\x3\x2\x2\x2\x2C0\x2BD\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2\x3"+ - "\x2\x2\x2\x2C2\x2C3\a\x41\x2\x2\x2C3\x2C4\a\xEE\x2\x2\x2C4\x2C5\x5\xF8"+ - "}\x2\x2C5\x2C9\x5\x11A\x8E\x2\x2C6\x2C8\x5:\x1E\x2\x2C7\x2C6\x3\x2\x2"+ - "\x2\x2C8\x2CB\x3\x2\x2\x2\x2C9\x2C7\x3\x2\x2\x2\x2C9\x2CA\x3\x2\x2\x2"+ - "\x2CA\x2CC\x3\x2\x2\x2\x2CB\x2C9\x3\x2\x2\x2\x2CC\x2CD\a\x38\x2\x2\x2CD"+ - "\x39\x3\x2\x2\x2\x2CE\x2D7\x5\xF8}\x2\x2CF\x2D1\a\xEE\x2\x2\x2D0\x2CF"+ - "\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2\x2D1\x2D2\x3\x2\x2\x2\x2D2\x2D4\a\xBB"+ - "\x2\x2\x2D3\x2D5\a\xEE\x2\x2\x2D4\x2D3\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2"+ - "\x2\x2D5\x2D6\x3\x2\x2\x2\x2D6\x2D8\x5\xBE`\x2\x2D7\x2D0\x3\x2\x2\x2\x2D7"+ - "\x2D8\x3\x2\x2\x2\x2D8\x2D9\x3\x2\x2\x2\x2D9\x2DA\x5\x11A\x8E\x2\x2DA"+ - ";\x3\x2\x2\x2\x2DB\x2DC\a\x43\x2\x2\x2DC\x2DD\a\xEE\x2\x2\x2DD\x2DE\x5"+ - "\xBE`\x2\x2DE=\x3\x2\x2\x2\x2DF\x2E0\a\x44\x2\x2\x2E0\x2E1\a\xEE\x2\x2"+ - "\x2E1\x2E2\x5\xBE`\x2\x2E2?\x3\x2\x2\x2\x2E3\x2E4\x5\x110\x89\x2\x2E4"+ - "\x2E5\a\xEE\x2\x2\x2E5\x2E7\x3\x2\x2\x2\x2E6\x2E3\x3\x2\x2\x2\x2E6\x2E7"+ - "\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\a\x45\x2\x2\x2E9\x2EA\a\xEE"+ - "\x2\x2\x2EA\x2EC\x5\xF8}\x2\x2EB\x2ED\a\xEE\x2\x2\x2EC\x2EB\x3\x2\x2\x2"+ - "\x2EC\x2ED\x3\x2\x2\x2\x2ED\x2EE\x3\x2\x2\x2\x2EE\x2EF\x5\xEEx\x2\x2EF"+ - "\x41\x3\x2\x2\x2\x2F0\x2F1\t\x5\x2\x2\x2F1\x43\x3\x2\x2\x2\x2F2\x2F3\a"+ - "L\x2\x2\x2F3\x2F4\a\xEE\x2\x2\x2F4\x2F6\x5\xBE`\x2\x2F5\x2F7\a\xEE\x2"+ + "\x2\x2\x2B9\x2B0\x3\x2\x2\x2\x2BA\x35\x3\x2\x2\x2\x2BB\x2BC\a\x41\x2\x2"+ + "\x2BC\x37\x3\x2\x2\x2\x2BD\x2BE\x5\x110\x89\x2\x2BE\x2BF\a\xEF\x2\x2\x2BF"+ + "\x2C1\x3\x2\x2\x2\x2C0\x2BD\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2"+ + "\x3\x2\x2\x2\x2C2\x2C3\a\x42\x2\x2\x2C3\x2C4\a\xEF\x2\x2\x2C4\x2C5\x5"+ + "\xF8}\x2\x2C5\x2C9\x5\x11A\x8E\x2\x2C6\x2C8\x5:\x1E\x2\x2C7\x2C6\x3\x2"+ + "\x2\x2\x2C8\x2CB\x3\x2\x2\x2\x2C9\x2C7\x3\x2\x2\x2\x2C9\x2CA\x3\x2\x2"+ + "\x2\x2CA\x2CC\x3\x2\x2\x2\x2CB\x2C9\x3\x2\x2\x2\x2CC\x2CD\a\x39\x2\x2"+ + "\x2CD\x39\x3\x2\x2\x2\x2CE\x2D7\x5\xF8}\x2\x2CF\x2D1\a\xEF\x2\x2\x2D0"+ + "\x2CF\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2\x2D1\x2D2\x3\x2\x2\x2\x2D2\x2D4"+ + "\a\xBC\x2\x2\x2D3\x2D5\a\xEF\x2\x2\x2D4\x2D3\x3\x2\x2\x2\x2D4\x2D5\x3"+ + "\x2\x2\x2\x2D5\x2D6\x3\x2\x2\x2\x2D6\x2D8\x5\xBE`\x2\x2D7\x2D0\x3\x2\x2"+ + "\x2\x2D7\x2D8\x3\x2\x2\x2\x2D8\x2D9\x3\x2\x2\x2\x2D9\x2DA\x5\x11A\x8E"+ + "\x2\x2DA;\x3\x2\x2\x2\x2DB\x2DC\a\x44\x2\x2\x2DC\x2DD\a\xEF\x2\x2\x2DD"+ + "\x2DE\x5\xBE`\x2\x2DE=\x3\x2\x2\x2\x2DF\x2E0\a\x45\x2\x2\x2E0\x2E1\a\xEF"+ + "\x2\x2\x2E1\x2E2\x5\xBE`\x2\x2E2?\x3\x2\x2\x2\x2E3\x2E4\x5\x110\x89\x2"+ + "\x2E4\x2E5\a\xEF\x2\x2\x2E5\x2E7\x3\x2\x2\x2\x2E6\x2E3\x3\x2\x2\x2\x2E6"+ + "\x2E7\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\a\x46\x2\x2\x2E9\x2EA"+ + "\a\xEF\x2\x2\x2EA\x2EC\x5\xF8}\x2\x2EB\x2ED\a\xEF\x2\x2\x2EC\x2EB\x3\x2"+ + "\x2\x2\x2EC\x2ED\x3\x2\x2\x2\x2ED\x2EE\x3\x2\x2\x2\x2EE\x2EF\x5\xEEx\x2"+ + "\x2EF\x41\x3\x2\x2\x2\x2F0\x2F1\t\x5\x2\x2\x2F1\x43\x3\x2\x2\x2\x2F2\x2F3"+ + "\aM\x2\x2\x2F3\x2F4\a\xEF\x2\x2\x2F4\x2F6\x5\xBE`\x2\x2F5\x2F7\a\xEF\x2"+ "\x2\x2F6\x2F5\x3\x2\x2\x2\x2F6\x2F7\x3\x2\x2\x2\x2F7\x2F8\x3\x2\x2\x2"+ - "\x2F8\x2FA\a\t\x2\x2\x2F9\x2FB\a\xEE\x2\x2\x2FA\x2F9\x3\x2\x2\x2\x2FA"+ + "\x2F8\x2FA\a\t\x2\x2\x2F9\x2FB\a\xEF\x2\x2\x2FA\x2F9\x3\x2\x2\x2\x2FA"+ "\x2FB\x3\x2\x2\x2\x2FB\x2FC\x3\x2\x2\x2\x2FC\x2FD\x5\xBE`\x2\x2FD\x45"+ - "\x3\x2\x2\x2\x2FE\x2FF\aN\x2\x2\x2FF\x300\a\xEE\x2\x2\x300\x301\a\x35"+ - "\x2\x2\x301\x302\a\xEE\x2\x2\x302\x304\x5\xF8}\x2\x303\x305\x5\x10E\x88"+ + "\x3\x2\x2\x2\x2FE\x2FF\aO\x2\x2\x2FF\x300\a\xEF\x2\x2\x300\x301\a\x35"+ + "\x2\x2\x301\x302\a\xEF\x2\x2\x302\x304\x5\xF8}\x2\x303\x305\x5\x10E\x88"+ "\x2\x304\x303\x3\x2\x2\x2\x304\x305\x3\x2\x2\x2\x305\x306\x3\x2\x2\x2"+ - "\x306\x307\a\xEE\x2\x2\x307\x308\aW\x2\x2\x308\x309\a\xEE\x2\x2\x309\x30A"+ + "\x306\x307\a\xEF\x2\x2\x307\x308\aX\x2\x2\x308\x309\a\xEF\x2\x2\x309\x30A"+ "\x5\xBE`\x2\x30A\x30C\x5\x11A\x8E\x2\x30B\x30D\x5\x1A\xE\x2\x30C\x30B"+ - "\x3\x2\x2\x2\x30C\x30D\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x311\an"+ - "\x2\x2\x30F\x310\a\xEE\x2\x2\x310\x312\x5\xF8}\x2\x311\x30F\x3\x2\x2\x2"+ - "\x311\x312\x3\x2\x2\x2\x312G\x3\x2\x2\x2\x313\x314\aN\x2\x2\x314\x315"+ - "\a\xEE\x2\x2\x315\x317\x5\xF8}\x2\x316\x318\x5\x10E\x88\x2\x317\x316\x3"+ - "\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x31B\x3\x2\x2\x2\x319\x31A\a\xEE"+ + "\x3\x2\x2\x2\x30C\x30D\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x311\ao"+ + "\x2\x2\x30F\x310\a\xEF\x2\x2\x310\x312\x5\xF8}\x2\x311\x30F\x3\x2\x2\x2"+ + "\x311\x312\x3\x2\x2\x2\x312G\x3\x2\x2\x2\x313\x314\aO\x2\x2\x314\x315"+ + "\a\xEF\x2\x2\x315\x317\x5\xF8}\x2\x316\x318\x5\x10E\x88\x2\x317\x316\x3"+ + "\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x31B\x3\x2\x2\x2\x319\x31A\a\xEF"+ "\x2\x2\x31A\x31C\x5\xFA~\x2\x31B\x319\x3\x2\x2\x2\x31B\x31C\x3\x2\x2\x2"+ - "\x31C\x31E\x3\x2\x2\x2\x31D\x31F\a\xEE\x2\x2\x31E\x31D\x3\x2\x2\x2\x31E"+ - "\x31F\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x322\a\xBB\x2\x2\x321\x323"+ - "\a\xEE\x2\x2\x322\x321\x3\x2\x2\x2\x322\x323\x3\x2\x2\x2\x323\x324\x3"+ - "\x2\x2\x2\x324\x325\x5\xBE`\x2\x325\x326\a\xEE\x2\x2\x326\x327\a\xA7\x2"+ - "\x2\x327\x328\a\xEE\x2\x2\x328\x32D\x5\xBE`\x2\x329\x32A\a\xEE\x2\x2\x32A"+ - "\x32B\a\x9F\x2\x2\x32B\x32C\a\xEE\x2\x2\x32C\x32E\x5\xBE`\x2\x32D\x329"+ + "\x31C\x31E\x3\x2\x2\x2\x31D\x31F\a\xEF\x2\x2\x31E\x31D\x3\x2\x2\x2\x31E"+ + "\x31F\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x322\a\xBC\x2\x2\x321\x323"+ + "\a\xEF\x2\x2\x322\x321\x3\x2\x2\x2\x322\x323\x3\x2\x2\x2\x323\x324\x3"+ + "\x2\x2\x2\x324\x325\x5\xBE`\x2\x325\x326\a\xEF\x2\x2\x326\x327\a\xA8\x2"+ + "\x2\x327\x328\a\xEF\x2\x2\x328\x32D\x5\xBE`\x2\x329\x32A\a\xEF\x2\x2\x32A"+ + "\x32B\a\xA0\x2\x2\x32B\x32C\a\xEF\x2\x2\x32C\x32E\x5\xBE`\x2\x32D\x329"+ "\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2\x32E\x32F\x3\x2\x2\x2\x32F\x331\x5"+ "\x11A\x8E\x2\x330\x332\x5\x1A\xE\x2\x331\x330\x3\x2\x2\x2\x331\x332\x3"+ - "\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x336\an\x2\x2\x334\x335\a\xEE\x2"+ + "\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x336\ao\x2\x2\x334\x335\a\xEF\x2"+ "\x2\x335\x337\x5\xF8}\x2\x336\x334\x3\x2\x2\x2\x336\x337\x3\x2\x2\x2\x337"+ - "I\x3\x2\x2\x2\x338\x339\x5\x110\x89\x2\x339\x33A\a\xEE\x2\x2\x33A\x33C"+ + "I\x3\x2\x2\x2\x338\x339\x5\x110\x89\x2\x339\x33A\a\xEF\x2\x2\x33A\x33C"+ "\x3\x2\x2\x2\x33B\x338\x3\x2\x2\x2\x33B\x33C\x3\x2\x2\x2\x33C\x33F\x3"+ - "\x2\x2\x2\x33D\x33E\a\x9E\x2\x2\x33E\x340\a\xEE\x2\x2\x33F\x33D\x3\x2"+ - "\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x343\aO\x2\x2"+ - "\x342\x344\a\xEE\x2\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344"+ + "\x2\x2\x2\x33D\x33E\a\x9F\x2\x2\x33E\x340\a\xEF\x2\x2\x33F\x33D\x3\x2"+ + "\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x343\aP\x2\x2"+ + "\x342\x344\a\xEF\x2\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344"+ "\x345\x3\x2\x2\x2\x345\x347\x5\xF8}\x2\x346\x348\x5\x10E\x88\x2\x347\x346"+ - "\x3\x2\x2\x2\x347\x348\x3\x2\x2\x2\x348\x34D\x3\x2\x2\x2\x349\x34B\a\xEE"+ + "\x3\x2\x2\x2\x347\x348\x3\x2\x2\x2\x348\x34D\x3\x2\x2\x2\x349\x34B\a\xEF"+ "\x2\x2\x34A\x349\x3\x2\x2\x2\x34A\x34B\x3\x2\x2\x2\x34B\x34C\x3\x2\x2"+ "\x2\x34C\x34E\x5\xEEx\x2\x34D\x34A\x3\x2\x2\x2\x34D\x34E\x3\x2\x2\x2\x34E"+ - "\x353\x3\x2\x2\x2\x34F\x351\a\xEE\x2\x2\x350\x34F\x3\x2\x2\x2\x350\x351"+ + "\x353\x3\x2\x2\x2\x34F\x351\a\xEF\x2\x2\x350\x34F\x3\x2\x2\x2\x350\x351"+ "\x3\x2\x2\x2\x351\x352\x3\x2\x2\x2\x352\x354\x5\xFA~\x2\x353\x350\x3\x2"+ "\x2\x2\x353\x354\x3\x2\x2\x2\x354\x355\x3\x2\x2\x2\x355\x357\x5\x11A\x8E"+ "\x2\x356\x358\x5\x1A\xE\x2\x357\x356\x3\x2\x2\x2\x357\x358\x3\x2\x2\x2"+ - "\x358\x359\x3\x2\x2\x2\x359\x35A\a\x39\x2\x2\x35AK\x3\x2\x2\x2\x35B\x35C"+ - "\aP\x2\x2\x35C\x35D\a\xEE\x2\x2\x35D\x35F\x5\xCEh\x2\x35E\x360\a\xEE\x2"+ + "\x358\x359\x3\x2\x2\x2\x359\x35A\a:\x2\x2\x35AK\x3\x2\x2\x2\x35B\x35C"+ + "\aQ\x2\x2\x35C\x35D\a\xEF\x2\x2\x35D\x35F\x5\xCEh\x2\x35E\x360\a\xEF\x2"+ "\x2\x35F\x35E\x3\x2\x2\x2\x35F\x360\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2"+ - "\x361\x363\a\t\x2\x2\x362\x364\a\xEE\x2\x2\x363\x362\x3\x2\x2\x2\x363"+ + "\x361\x363\a\t\x2\x2\x362\x364\a\xEF\x2\x2\x363\x362\x3\x2\x2\x2\x363"+ "\x364\x3\x2\x2\x2\x364\x366\x3\x2\x2\x2\x365\x367\x5\xBE`\x2\x366\x365"+ - "\x3\x2\x2\x2\x366\x367\x3\x2\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\a\xEE"+ + "\x3\x2\x2\x2\x366\x367\x3\x2\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\a\xEF"+ "\x2\x2\x369\x368\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2"+ - "\x2\x36B\x36D\a\t\x2\x2\x36C\x36E\a\xEE\x2\x2\x36D\x36C\x3\x2\x2\x2\x36D"+ + "\x2\x36B\x36D\a\t\x2\x2\x36C\x36E\a\xEF\x2\x2\x36D\x36C\x3\x2\x2\x2\x36D"+ "\x36E\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x5\xBE`\x2\x370M\x3"+ - "\x2\x2\x2\x371\x372\aR\x2\x2\x372\x373\a\xEE\x2\x2\x373\x374\x5\xBE`\x2"+ - "\x374O\x3\x2\x2\x2\x375\x376\aS\x2\x2\x376\x377\a\xEE\x2\x2\x377\x378"+ - "\x5\xBE`\x2\x378Q\x3\x2\x2\x2\x379\x37A\aT\x2\x2\x37A\x37B\a\xEE\x2\x2"+ - "\x37B\x37C\x5V,\x2\x37C\x37D\a\xEE\x2\x2\x37D\x37E\a\xA5\x2\x2\x37E\x37F"+ - "\a\xEE\x2\x2\x37F\x384\x5\x1C\xF\x2\x380\x381\a\xEE\x2\x2\x381\x382\a"+ - "\x36\x2\x2\x382\x383\a\xEE\x2\x2\x383\x385\x5\x1C\xF\x2\x384\x380\x3\x2"+ + "\x2\x2\x2\x371\x372\aS\x2\x2\x372\x373\a\xEF\x2\x2\x373\x374\x5\xBE`\x2"+ + "\x374O\x3\x2\x2\x2\x375\x376\aT\x2\x2\x376\x377\a\xEF\x2\x2\x377\x378"+ + "\x5\xBE`\x2\x378Q\x3\x2\x2\x2\x379\x37A\aU\x2\x2\x37A\x37B\a\xEF\x2\x2"+ + "\x37B\x37C\x5V,\x2\x37C\x37D\a\xEF\x2\x2\x37D\x37E\a\xA6\x2\x2\x37E\x37F"+ + "\a\xEF\x2\x2\x37F\x384\x5\x1C\xF\x2\x380\x381\a\xEF\x2\x2\x381\x382\a"+ + "\x36\x2\x2\x382\x383\a\xEF\x2\x2\x383\x385\x5\x1C\xF\x2\x384\x380\x3\x2"+ "\x2\x2\x384\x385\x3\x2\x2\x2\x385\x393\x3\x2\x2\x2\x386\x38A\x5T+\x2\x387"+ "\x389\x5X-\x2\x388\x387\x3\x2\x2\x2\x389\x38C\x3\x2\x2\x2\x38A\x388\x3"+ "\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B\x38E\x3\x2\x2\x2\x38C\x38A\x3\x2"+ "\x2\x2\x38D\x38F\x5Z.\x2\x38E\x38D\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2\x38F"+ - "\x390\x3\x2\x2\x2\x390\x391\a:\x2\x2\x391\x393\x3\x2\x2\x2\x392\x379\x3"+ - "\x2\x2\x2\x392\x386\x3\x2\x2\x2\x393S\x3\x2\x2\x2\x394\x395\aT\x2\x2\x395"+ - "\x396\a\xEE\x2\x2\x396\x397\x5V,\x2\x397\x398\a\xEE\x2\x2\x398\x399\a"+ - "\xA5\x2\x2\x399\x39B\x5\x11A\x8E\x2\x39A\x39C\x5\x1A\xE\x2\x39B\x39A\x3"+ + "\x390\x3\x2\x2\x2\x390\x391\a;\x2\x2\x391\x393\x3\x2\x2\x2\x392\x379\x3"+ + "\x2\x2\x2\x392\x386\x3\x2\x2\x2\x393S\x3\x2\x2\x2\x394\x395\aU\x2\x2\x395"+ + "\x396\a\xEF\x2\x2\x396\x397\x5V,\x2\x397\x398\a\xEF\x2\x2\x398\x399\a"+ + "\xA6\x2\x2\x399\x39B\x5\x11A\x8E\x2\x39A\x39C\x5\x1A\xE\x2\x39B\x39A\x3"+ "\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39CU\x3\x2\x2\x2\x39D\x39E\x5\xBE`\x2"+ - "\x39EW\x3\x2\x2\x2\x39F\x3A0\a\x37\x2\x2\x3A0\x3A1\a\xEE\x2\x2\x3A1\x3A2"+ - "\x5V,\x2\x3A2\x3A3\a\xEE\x2\x2\x3A3\x3A4\a\xA5\x2\x2\x3A4\x3A6\x5\x11A"+ + "\x39EW\x3\x2\x2\x2\x39F\x3A0\a\x37\x2\x2\x3A0\x3A1\a\xEF\x2\x2\x3A1\x3A2"+ + "\x5V,\x2\x3A2\x3A3\a\xEF\x2\x2\x3A3\x3A4\a\xA6\x2\x2\x3A4\x3A6\x5\x11A"+ "\x8E\x2\x3A5\x3A7\x5\x1A\xE\x2\x3A6\x3A5\x3\x2\x2\x2\x3A6\x3A7\x3\x2\x2"+ "\x2\x3A7Y\x3\x2\x2\x2\x3A8\x3A9\a\x36\x2\x2\x3A9\x3AB\x5\x11A\x8E\x2\x3AA"+ "\x3AC\x5\x1A\xE\x2\x3AB\x3AA\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC[\x3"+ - "\x2\x2\x2\x3AD\x3AE\aV\x2\x2\x3AE\x3AF\a\xEE\x2\x2\x3AF\x3B0\x5\xF8}\x2"+ - "\x3B0]\x3\x2\x2\x2\x3B1\x3B2\aX\x2\x2\x3B2\x3B3\a\xEE\x2\x2\x3B3\x3BC"+ - "\x5\xCEh\x2\x3B4\x3B6\a\xEE\x2\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2"+ - "\x2\x2\x3B6\x3B7\x3\x2\x2\x2\x3B7\x3B9\a\t\x2\x2\x3B8\x3BA\a\xEE\x2\x2"+ + "\x2\x2\x2\x3AD\x3AE\aW\x2\x2\x3AE\x3AF\a\xEF\x2\x2\x3AF\x3B0\x5\xF8}\x2"+ + "\x3B0]\x3\x2\x2\x2\x3B1\x3B2\aY\x2\x2\x3B2\x3B3\a\xEF\x2\x2\x3B3\x3BC"+ + "\x5\xCEh\x2\x3B4\x3B6\a\xEF\x2\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2"+ + "\x2\x2\x3B6\x3B7\x3\x2\x2\x2\x3B7\x3B9\a\t\x2\x2\x3B8\x3BA\a\xEF\x2\x2"+ "\x3B9\x3B8\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BB\x3\x2\x2\x2\x3BB"+ "\x3BD\x5\xBE`\x2\x3BC\x3B5\x3\x2\x2\x2\x3BD\x3BE\x3\x2\x2\x2\x3BE\x3BC"+ - "\x3\x2\x2\x2\x3BE\x3BF\x3\x2\x2\x2\x3BF_\x3\x2\x2\x2\x3C0\x3C1\a[\x2\x2"+ - "\x3C1\x3C2\a\xEE\x2\x2\x3C2\x3C3\x5\xBE`\x2\x3C3\x61\x3\x2\x2\x2\x3C4"+ - "\x3C5\a\x61\x2\x2\x3C5\x3C7\a\xEE\x2\x2\x3C6\x3C4\x3\x2\x2\x2\x3C6\x3C7"+ - "\x3\x2\x2\x2\x3C7\x3C8\x3\x2\x2\x2\x3C8\x3CA\x5\xDCo\x2\x3C9\x3CB\a\xEE"+ + "\x3\x2\x2\x2\x3BE\x3BF\x3\x2\x2\x2\x3BF_\x3\x2\x2\x2\x3C0\x3C1\a\\\x2"+ + "\x2\x3C1\x3C2\a\xEF\x2\x2\x3C2\x3C3\x5\xBE`\x2\x3C3\x61\x3\x2\x2\x2\x3C4"+ + "\x3C5\a\x62\x2\x2\x3C5\x3C7\a\xEF\x2\x2\x3C6\x3C4\x3\x2\x2\x2\x3C6\x3C7"+ + "\x3\x2\x2\x2\x3C7\x3C8\x3\x2\x2\x2\x3C8\x3CA\x5\xDCo\x2\x3C9\x3CB\a\xEF"+ "\x2\x2\x3CA\x3C9\x3\x2\x2\x2\x3CA\x3CB\x3\x2\x2\x2\x3CB\x3CC\x3\x2\x2"+ - "\x2\x3CC\x3CE\a\xBB\x2\x2\x3CD\x3CF\a\xEE\x2\x2\x3CE\x3CD\x3\x2\x2\x2"+ + "\x2\x3CC\x3CE\a\xBC\x2\x2\x3CD\x3CF\a\xEF\x2\x2\x3CE\x3CD\x3\x2\x2\x2"+ "\x3CE\x3CF\x3\x2\x2\x2\x3CF\x3D0\x3\x2\x2\x2\x3D0\x3D1\x5\xBE`\x2\x3D1"+ - "\x63\x3\x2\x2\x2\x3D2\x3D3\a\x64\x2\x2\x3D3\x3D4\a\xEE\x2\x2\x3D4\x3D6"+ - "\x5\xCEh\x2\x3D5\x3D7\a\xEE\x2\x2\x3D6\x3D5\x3\x2\x2\x2\x3D6\x3D7\x3\x2"+ - "\x2\x2\x3D7\x3D8\x3\x2\x2\x2\x3D8\x3DA\a\t\x2\x2\x3D9\x3DB\a\xEE\x2\x2"+ + "\x63\x3\x2\x2\x2\x3D2\x3D3\a\x65\x2\x2\x3D3\x3D4\a\xEF\x2\x2\x3D4\x3D6"+ + "\x5\xCEh\x2\x3D5\x3D7\a\xEF\x2\x2\x3D6\x3D5\x3\x2\x2\x2\x3D6\x3D7\x3\x2"+ + "\x2\x2\x3D7\x3D8\x3\x2\x2\x2\x3D8\x3DA\a\t\x2\x2\x3D9\x3DB\a\xEF\x2\x2"+ "\x3DA\x3D9\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DC\x3\x2\x2\x2\x3DC"+ - "\x3DD\x5\xBE`\x2\x3DD\x65\x3\x2\x2\x2\x3DE\x3DF\a\\\x2\x2\x3DF\x3E0\a"+ - "\xEE\x2\x2\x3E0\x3E1\x5\xBE`\x2\x3E1g\x3\x2\x2\x2\x3E2\x3E3\a]\x2\x2\x3E3"+ - "\x3E4\a\xEE\x2\x2\x3E4\x3F3\x5\xBE`\x2\x3E5\x3E7\a\xEE\x2\x2\x3E6\x3E5"+ + "\x3DD\x5\xBE`\x2\x3DD\x65\x3\x2\x2\x2\x3DE\x3DF\a]\x2\x2\x3DF\x3E0\a\xEF"+ + "\x2\x2\x3E0\x3E1\x5\xBE`\x2\x3E1g\x3\x2\x2\x2\x3E2\x3E3\a^\x2\x2\x3E3"+ + "\x3E4\a\xEF\x2\x2\x3E4\x3F3\x5\xBE`\x2\x3E5\x3E7\a\xEF\x2\x2\x3E6\x3E5"+ "\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7\x3E8\x3\x2\x2\x2\x3E8\x3EA\a\t"+ - "\x2\x2\x3E9\x3EB\a\xEE\x2\x2\x3EA\x3E9\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2"+ - "\x2\x3EB\x3EC\x3\x2\x2\x2\x3EC\x3F1\x5\xBE`\x2\x3ED\x3EE\a\xEE\x2\x2\x3EE"+ - "\x3EF\a\xA7\x2\x2\x3EF\x3F0\a\xEE\x2\x2\x3F0\x3F2\x5\xBE`\x2\x3F1\x3ED"+ + "\x2\x2\x3E9\x3EB\a\xEF\x2\x2\x3EA\x3E9\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2"+ + "\x2\x3EB\x3EC\x3\x2\x2\x2\x3EC\x3F1\x5\xBE`\x2\x3ED\x3EE\a\xEF\x2\x2\x3EE"+ + "\x3EF\a\xA8\x2\x2\x3EF\x3F0\a\xEF\x2\x2\x3F0\x3F2\x5\xBE`\x2\x3F1\x3ED"+ "\x3\x2\x2\x2\x3F1\x3F2\x3\x2\x2\x2\x3F2\x3F4\x3\x2\x2\x2\x3F3\x3E6\x3"+ - "\x2\x2\x2\x3F3\x3F4\x3\x2\x2\x2\x3F4i\x3\x2\x2\x2\x3F5\x3F6\ah\x2\x2\x3F6"+ - "\x3F7\a\xEE\x2\x2\x3F7\x3F9\x5\xDCo\x2\x3F8\x3FA\a\xEE\x2\x2\x3F9\x3F8"+ - "\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FB\x3\x2\x2\x2\x3FB\x3FD\a\xBB"+ - "\x2\x2\x3FC\x3FE\a\xEE\x2\x2\x3FD\x3FC\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2"+ + "\x2\x2\x2\x3F3\x3F4\x3\x2\x2\x2\x3F4i\x3\x2\x2\x2\x3F5\x3F6\ai\x2\x2\x3F6"+ + "\x3F7\a\xEF\x2\x2\x3F7\x3F9\x5\xDCo\x2\x3F8\x3FA\a\xEF\x2\x2\x3F9\x3F8"+ + "\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FB\x3\x2\x2\x2\x3FB\x3FD\a\xBC"+ + "\x2\x2\x3FC\x3FE\a\xEF\x2\x2\x3FD\x3FC\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2"+ "\x2\x3FE\x3FF\x3\x2\x2\x2\x3FF\x400\x5\xBE`\x2\x400k\x3\x2\x2\x2\x401"+ - "\x403\aj\x2\x2\x402\x404\a\xEE\x2\x2\x403\x402\x3\x2\x2\x2\x403\x404\x3"+ - "\x2\x2\x2\x404\x405\x3\x2\x2\x2\x405\x407\a\xBF\x2\x2\x406\x408\a\xEE"+ + "\x403\ak\x2\x2\x402\x404\a\xEF\x2\x2\x403\x402\x3\x2\x2\x2\x403\x404\x3"+ + "\x2\x2\x2\x404\x405\x3\x2\x2\x2\x405\x407\a\xC0\x2\x2\x406\x408\a\xEF"+ "\x2\x2\x407\x406\x3\x2\x2\x2\x407\x408\x3\x2\x2\x2\x408\x409\x3\x2\x2"+ - "\x2\x409\x40B\x5\xE8u\x2\x40A\x40C\a\xEE\x2\x2\x40B\x40A\x3\x2\x2\x2\x40B"+ - "\x40C\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40E\a\xC6\x2\x2\x40Em\x3"+ - "\x2\x2\x2\x40F\x410\ak\x2\x2\x410\x411\a\xEE\x2\x2\x411\x412\x5\xBE`\x2"+ - "\x412o\x3\x2\x2\x2\x413\x414\am\x2\x2\x414\x415\a\xEE\x2\x2\x415\x416"+ - "\x5\xBE`\x2\x416\x417\a\xEE\x2\x2\x417\x418\a\x12\x2\x2\x418\x419\a\xEE"+ + "\x2\x409\x40B\x5\xE8u\x2\x40A\x40C\a\xEF\x2\x2\x40B\x40A\x3\x2\x2\x2\x40B"+ + "\x40C\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40E\a\xC7\x2\x2\x40Em\x3"+ + "\x2\x2\x2\x40F\x410\al\x2\x2\x410\x411\a\xEF\x2\x2\x411\x412\x5\xBE`\x2"+ + "\x412o\x3\x2\x2\x2\x413\x414\an\x2\x2\x414\x415\a\xEF\x2\x2\x415\x416"+ + "\x5\xBE`\x2\x416\x417\a\xEF\x2\x2\x417\x418\a\x12\x2\x2\x418\x419\a\xEF"+ "\x2\x2\x419\x41A\x5\xBE`\x2\x41Aq\x3\x2\x2\x2\x41B\x41C\t\x6\x2\x2\x41C"+ - "\x423\a\xEE\x2\x2\x41D\x41E\aS\x2\x2\x41E\x41F\a\xEE\x2\x2\x41F\x424\x5"+ - "\xBE`\x2\x420\x421\a\x90\x2\x2\x421\x422\a\xEE\x2\x2\x422\x424\an\x2\x2"+ + "\x423\a\xEF\x2\x2\x41D\x41E\aT\x2\x2\x41E\x41F\a\xEF\x2\x2\x41F\x424\x5"+ + "\xBE`\x2\x420\x421\a\x91\x2\x2\x421\x422\a\xEF\x2\x2\x422\x424\ao\x2\x2"+ "\x423\x41D\x3\x2\x2\x2\x423\x420\x3\x2\x2\x2\x424s\x3\x2\x2\x2\x425\x426"+ - "\as\x2\x2\x426\x427\a\xEE\x2\x2\x427\x428\x5\xBE`\x2\x428\x429\a\xEE\x2"+ - "\x2\x429\x42A\aS\x2\x2\x42A\x42B\a\xEE\x2\x2\x42B\x436\x5\xBE`\x2\x42C"+ - "\x42E\a\xEE\x2\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E\x42F"+ - "\x3\x2\x2\x2\x42F\x431\a\t\x2\x2\x430\x432\a\xEE\x2\x2\x431\x430\x3\x2"+ + "\at\x2\x2\x426\x427\a\xEF\x2\x2\x427\x428\x5\xBE`\x2\x428\x429\a\xEF\x2"+ + "\x2\x429\x42A\aT\x2\x2\x42A\x42B\a\xEF\x2\x2\x42B\x436\x5\xBE`\x2\x42C"+ + "\x42E\a\xEF\x2\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E\x42F"+ + "\x3\x2\x2\x2\x42F\x431\a\t\x2\x2\x430\x432\a\xEF\x2\x2\x431\x430\x3\x2"+ "\x2\x2\x431\x432\x3\x2\x2\x2\x432\x433\x3\x2\x2\x2\x433\x435\x5\xBE`\x2"+ "\x434\x42D\x3\x2\x2\x2\x435\x438\x3\x2\x2\x2\x436\x434\x3\x2\x2\x2\x436"+ "\x437\x3\x2\x2\x2\x437u\x3\x2\x2\x2\x438\x436\x3\x2\x2\x2\x439\x43A\a"+ - "s\x2\x2\x43A\x43B\a\xEE\x2\x2\x43B\x43C\x5\xBE`\x2\x43C\x43D\a\xEE\x2"+ - "\x2\x43D\x43E\aR\x2\x2\x43E\x43F\a\xEE\x2\x2\x43F\x44A\x5\xBE`\x2\x440"+ - "\x442\a\xEE\x2\x2\x441\x440\x3\x2\x2\x2\x441\x442\x3\x2\x2\x2\x442\x443"+ - "\x3\x2\x2\x2\x443\x445\a\t\x2\x2\x444\x446\a\xEE\x2\x2\x445\x444\x3\x2"+ + "t\x2\x2\x43A\x43B\a\xEF\x2\x2\x43B\x43C\x5\xBE`\x2\x43C\x43D\a\xEF\x2"+ + "\x2\x43D\x43E\aS\x2\x2\x43E\x43F\a\xEF\x2\x2\x43F\x44A\x5\xBE`\x2\x440"+ + "\x442\a\xEF\x2\x2\x441\x440\x3\x2\x2\x2\x441\x442\x3\x2\x2\x2\x442\x443"+ + "\x3\x2\x2\x2\x443\x445\a\t\x2\x2\x444\x446\a\xEF\x2\x2\x445\x444\x3\x2"+ "\x2\x2\x445\x446\x3\x2\x2\x2\x446\x447\x3\x2\x2\x2\x447\x449\x5\xBE`\x2"+ "\x448\x441\x3\x2\x2\x2\x449\x44C\x3\x2\x2\x2\x44A\x448\x3\x2\x2\x2\x44A"+ "\x44B\x3\x2\x2\x2\x44Bw\x3\x2\x2\x2\x44C\x44A\x3\x2\x2\x2\x44D\x44E\a"+ - "v\x2\x2\x44E\x44F\a\xEE\x2\x2\x44F\x450\x5\xBE`\x2\x450\x451\a\xEE\x2"+ - "\x2\x451\x452\aN\x2\x2\x452\x453\a\xEE\x2\x2\x453\x458\t\a\x2\x2\x454"+ - "\x455\a\xEE\x2\x2\x455\x456\a\v\x2\x2\x456\x457\a\xEE\x2\x2\x457\x459"+ + "w\x2\x2\x44E\x44F\a\xEF\x2\x2\x44F\x450\x5\xBE`\x2\x450\x451\a\xEF\x2"+ + "\x2\x451\x452\aO\x2\x2\x452\x453\a\xEF\x2\x2\x453\x458\t\a\x2\x2\x454"+ + "\x455\a\xEF\x2\x2\x455\x456\a\v\x2\x2\x456\x457\a\xEF\x2\x2\x457\x459"+ "\t\b\x2\x2\x458\x454\x3\x2\x2\x2\x458\x459\x3\x2\x2\x2\x459\x45C\x3\x2"+ - "\x2\x2\x45A\x45B\a\xEE\x2\x2\x45B\x45D\t\t\x2\x2\x45C\x45A\x3\x2\x2\x2"+ - "\x45C\x45D\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xEE\x2\x2\x45F"+ - "\x460\a\x12\x2\x2\x460\x461\a\xEE\x2\x2\x461\x46C\x5\xCEh\x2\x462\x463"+ - "\a\xEE\x2\x2\x463\x465\a`\x2\x2\x464\x466\a\xEE\x2\x2\x465\x464\x3\x2"+ - "\x2\x2\x465\x466\x3\x2\x2\x2\x466\x467\x3\x2\x2\x2\x467\x469\a\xBB\x2"+ - "\x2\x468\x46A\a\xEE\x2\x2\x469\x468\x3\x2\x2\x2\x469\x46A\x3\x2\x2\x2"+ - "\x46A\x46B\x3\x2\x2\x2\x46B\x46D\x5\xBE`\x2\x46C\x462\x3\x2\x2\x2\x46C"+ - "\x46D\x3\x2\x2\x2\x46Dy\x3\x2\x2\x2\x46E\x47B\x5|?\x2\x46F\x471\a\xEE"+ + "\x2\x2\x45A\x45B\a\xEF\x2\x2\x45B\x45D\t\t\x2\x2\x45C\x45A\x3\x2\x2\x2"+ + "\x45C\x45D\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xEF\x2\x2\x45F"+ + "\x460\a\x12\x2\x2\x460\x461\a\xEF\x2\x2\x461\x46C\x5\xCEh\x2\x462\x463"+ + "\a\xEF\x2\x2\x463\x465\a\x61\x2\x2\x464\x466\a\xEF\x2\x2\x465\x464\x3"+ + "\x2\x2\x2\x465\x466\x3\x2\x2\x2\x466\x467\x3\x2\x2\x2\x467\x469\a\xBC"+ + "\x2\x2\x468\x46A\a\xEF\x2\x2\x469\x468\x3\x2\x2\x2\x469\x46A\x3\x2\x2"+ + "\x2\x46A\x46B\x3\x2\x2\x2\x46B\x46D\x5\xBE`\x2\x46C\x462\x3\x2\x2\x2\x46C"+ + "\x46D\x3\x2\x2\x2\x46Dy\x3\x2\x2\x2\x46E\x47B\x5|?\x2\x46F\x471\a\xEF"+ "\x2\x2\x470\x46F\x3\x2\x2\x2\x470\x471\x3\x2\x2\x2\x471\x472\x3\x2\x2"+ - "\x2\x472\x474\t\n\x2\x2\x473\x475\a\xEE\x2\x2\x474\x473\x3\x2\x2\x2\x474"+ + "\x2\x472\x474\t\n\x2\x2\x473\x475\a\xEF\x2\x2\x474\x473\x3\x2\x2\x2\x474"+ "\x475\x3\x2\x2\x2\x475\x477\x3\x2\x2\x2\x476\x478\x5|?\x2\x477\x476\x3"+ "\x2\x2\x2\x477\x478\x3\x2\x2\x2\x478\x47A\x3\x2\x2\x2\x479\x470\x3\x2"+ "\x2\x2\x47A\x47D\x3\x2\x2\x2\x47B\x479\x3\x2\x2\x2\x47B\x47C\x3\x2\x2"+ "\x2\x47C\x490\x3\x2\x2\x2\x47D\x47B\x3\x2\x2\x2\x47E\x480\x5|?\x2\x47F"+ "\x47E\x3\x2\x2\x2\x47F\x480\x3\x2\x2\x2\x480\x48B\x3\x2\x2\x2\x481\x483"+ - "\a\xEE\x2\x2\x482\x481\x3\x2\x2\x2\x482\x483\x3\x2\x2\x2\x483\x484\x3"+ - "\x2\x2\x2\x484\x486\t\n\x2\x2\x485\x487\a\xEE\x2\x2\x486\x485\x3\x2\x2"+ + "\a\xEF\x2\x2\x482\x481\x3\x2\x2\x2\x482\x483\x3\x2\x2\x2\x483\x484\x3"+ + "\x2\x2\x2\x484\x486\t\n\x2\x2\x485\x487\a\xEF\x2\x2\x486\x485\x3\x2\x2"+ "\x2\x486\x487\x3\x2\x2\x2\x487\x489\x3\x2\x2\x2\x488\x48A\x5|?\x2\x489"+ "\x488\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48A\x48C\x3\x2\x2\x2\x48B\x482"+ "\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x48B\x3\x2\x2\x2\x48D\x48E\x3"+ "\x2\x2\x2\x48E\x490\x3\x2\x2\x2\x48F\x46E\x3\x2\x2\x2\x48F\x47F\x3\x2"+ "\x2\x2\x490{\x3\x2\x2\x2\x491\x4A3\x5\xBE`\x2\x492\x4A0\t\v\x2\x2\x493"+ - "\x495\a\xEE\x2\x2\x494\x493\x3\x2\x2\x2\x494\x495\x3\x2\x2\x2\x495\x496"+ - "\x3\x2\x2\x2\x496\x498\a\xBF\x2\x2\x497\x499\a\xEE\x2\x2\x498\x497\x3"+ + "\x495\a\xEF\x2\x2\x494\x493\x3\x2\x2\x2\x494\x495\x3\x2\x2\x2\x495\x496"+ + "\x3\x2\x2\x2\x496\x498\a\xC0\x2\x2\x497\x499\a\xEF\x2\x2\x498\x497\x3"+ "\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xE8"+ - "u\x2\x49B\x49D\a\xEE\x2\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2"+ - "\x49D\x49E\x3\x2\x2\x2\x49E\x49F\a\xC6\x2\x2\x49F\x4A1\x3\x2\x2\x2\x4A0"+ + "u\x2\x49B\x49D\a\xEF\x2\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2"+ + "\x49D\x49E\x3\x2\x2\x2\x49E\x49F\a\xC7\x2\x2\x49F\x4A1\x3\x2\x2\x2\x4A0"+ "\x494\x3\x2\x2\x2\x4A0\x4A1\x3\x2\x2\x2\x4A1\x4A3\x3\x2\x2\x2\x4A2\x491"+ - "\x3\x2\x2\x2\x4A2\x492\x3\x2\x2\x2\x4A3}\x3\x2\x2\x2\x4A4\x4A5\a\x80\x2"+ - "\x2\x4A5\x4A6\a\xEE\x2\x2\x4A6\x4A8\x5\xCEh\x2\x4A7\x4A9\a\xEE\x2\x2\x4A8"+ + "\x3\x2\x2\x2\x4A2\x492\x3\x2\x2\x2\x4A3}\x3\x2\x2\x2\x4A4\x4A5\a\x81\x2"+ + "\x2\x4A5\x4A6\a\xEF\x2\x2\x4A6\x4A8\x5\xCEh\x2\x4A7\x4A9\a\xEF\x2\x2\x4A8"+ "\x4A7\x3\x2\x2\x2\x4A8\x4A9\x3\x2\x2\x2\x4A9\x4AA\x3\x2\x2\x2\x4AA\x4AF"+ - "\a\t\x2\x2\x4AB\x4AD\a\xEE\x2\x2\x4AC\x4AB\x3\x2\x2\x2\x4AC\x4AD\x3\x2"+ + "\a\t\x2\x2\x4AB\x4AD\a\xEF\x2\x2\x4AC\x4AB\x3\x2\x2\x2\x4AC\x4AD\x3\x2"+ "\x2\x2\x4AD\x4AE\x3\x2\x2\x2\x4AE\x4B0\x5z>\x2\x4AF\x4AC\x3\x2\x2\x2\x4AF"+ "\x4B0\x3\x2\x2\x2\x4B0\x7F\x3\x2\x2\x2\x4B1\x4B2\x5\x110\x89\x2\x4B2\x4B3"+ - "\a\xEE\x2\x2\x4B3\x4B5\x3\x2\x2\x2\x4B4\x4B1\x3\x2\x2\x2\x4B4\x4B5\x3"+ - "\x2\x2\x2\x4B5\x4B8\x3\x2\x2\x2\x4B6\x4B7\a\x9E\x2\x2\x4B7\x4B9\a\xEE"+ + "\a\xEF\x2\x2\x4B3\x4B5\x3\x2\x2\x2\x4B4\x4B1\x3\x2\x2\x2\x4B4\x4B5\x3"+ + "\x2\x2\x2\x4B5\x4B8\x3\x2\x2\x2\x4B6\x4B7\a\x9F\x2\x2\x4B7\x4B9\a\xEF"+ "\x2\x2\x4B8\x4B6\x3\x2\x2\x2\x4B8\x4B9\x3\x2\x2\x2\x4B9\x4BA\x3\x2\x2"+ - "\x2\x4BA\x4BB\a\x82\x2\x2\x4BB\x4BC\a\xEE\x2\x2\x4BC\x4BE\x5\xF8}\x2\x4BD"+ + "\x2\x4BA\x4BB\a\x83\x2\x2\x4BB\x4BC\a\xEF\x2\x2\x4BC\x4BE\x5\xF8}\x2\x4BD"+ "\x4BF\x5\x10E\x88\x2\x4BE\x4BD\x3\x2\x2\x2\x4BE\x4BF\x3\x2\x2\x2\x4BF"+ - "\x4C4\x3\x2\x2\x2\x4C0\x4C2\a\xEE\x2\x2\x4C1\x4C0\x3\x2\x2\x2\x4C1\x4C2"+ + "\x4C4\x3\x2\x2\x2\x4C0\x4C2\a\xEF\x2\x2\x4C1\x4C0\x3\x2\x2\x2\x4C1\x4C2"+ "\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x4C5\x5\xEEx\x2\x4C4\x4C1\x3\x2"+ - "\x2\x2\x4C4\x4C5\x3\x2\x2\x2\x4C5\x4C8\x3\x2\x2\x2\x4C6\x4C7\a\xEE\x2"+ + "\x2\x2\x4C4\x4C5\x3\x2\x2\x2\x4C5\x4C8\x3\x2\x2\x2\x4C6\x4C7\a\xEF\x2"+ "\x2\x4C7\x4C9\x5\xFA~\x2\x4C8\x4C6\x3\x2\x2\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9"+ "\x4CA\x3\x2\x2\x2\x4CA\x4CC\x5\x11A\x8E\x2\x4CB\x4CD\x5\x1A\xE\x2\x4CC"+ "\x4CB\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE\x4CF"+ - "\a;\x2\x2\x4CF\x81\x3\x2\x2\x2\x4D0\x4D1\x5\x110\x89\x2\x4D1\x4D2\a\xEE"+ + "\a<\x2\x2\x4CF\x81\x3\x2\x2\x2\x4D0\x4D1\x5\x110\x89\x2\x4D1\x4D2\a\xEF"+ "\x2\x2\x4D2\x4D4\x3\x2\x2\x2\x4D3\x4D0\x3\x2\x2\x2\x4D3\x4D4\x3\x2\x2"+ - "\x2\x4D4\x4D7\x3\x2\x2\x2\x4D5\x4D6\a\x9E\x2\x2\x4D6\x4D8\a\xEE\x2\x2"+ + "\x2\x4D4\x4D7\x3\x2\x2\x2\x4D5\x4D6\a\x9F\x2\x2\x4D6\x4D8\a\xEF\x2\x2"+ "\x4D7\x4D5\x3\x2\x2\x2\x4D7\x4D8\x3\x2\x2\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9"+ - "\x4DA\a\x84\x2\x2\x4DA\x4DB\a\xEE\x2\x2\x4DB\x4E0\x5\xF8}\x2\x4DC\x4DE"+ - "\a\xEE\x2\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4DF\x3"+ + "\x4DA\a\x85\x2\x2\x4DA\x4DB\a\xEF\x2\x2\x4DB\x4E0\x5\xF8}\x2\x4DC\x4DE"+ + "\a\xEF\x2\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4DF\x3"+ "\x2\x2\x2\x4DF\x4E1\x5\xEEx\x2\x4E0\x4DD\x3\x2\x2\x2\x4E0\x4E1\x3\x2\x2"+ "\x2\x4E1\x4E2\x3\x2\x2\x2\x4E2\x4E4\x5\x11A\x8E\x2\x4E3\x4E5\x5\x1A\xE"+ "\x2\x4E4\x4E3\x3\x2\x2\x2\x4E4\x4E5\x3\x2\x2\x2\x4E5\x4E6\x3\x2\x2\x2"+ - "\x4E6\x4E7\a;\x2\x2\x4E7\x83\x3\x2\x2\x2\x4E8\x4E9\x5\x110\x89\x2\x4E9"+ - "\x4EA\a\xEE\x2\x2\x4EA\x4EC\x3\x2\x2\x2\x4EB\x4E8\x3\x2\x2\x2\x4EB\x4EC"+ - "\x3\x2\x2\x2\x4EC\x4EF\x3\x2\x2\x2\x4ED\x4EE\a\x9E\x2\x2\x4EE\x4F0\a\xEE"+ + "\x4E6\x4E7\a<\x2\x2\x4E7\x83\x3\x2\x2\x2\x4E8\x4E9\x5\x110\x89\x2\x4E9"+ + "\x4EA\a\xEF\x2\x2\x4EA\x4EC\x3\x2\x2\x2\x4EB\x4E8\x3\x2\x2\x2\x4EB\x4EC"+ + "\x3\x2\x2\x2\x4EC\x4EF\x3\x2\x2\x2\x4ED\x4EE\a\x9F\x2\x2\x4EE\x4F0\a\xEF"+ "\x2\x2\x4EF\x4ED\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F1\x3\x2\x2"+ - "\x2\x4F1\x4F2\a\x83\x2\x2\x4F2\x4F3\a\xEE\x2\x2\x4F3\x4F8\x5\xF8}\x2\x4F4"+ - "\x4F6\a\xEE\x2\x2\x4F5\x4F4\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6\x4F7"+ + "\x2\x4F1\x4F2\a\x84\x2\x2\x4F2\x4F3\a\xEF\x2\x2\x4F3\x4F8\x5\xF8}\x2\x4F4"+ + "\x4F6\a\xEF\x2\x2\x4F5\x4F4\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6\x4F7"+ "\x3\x2\x2\x2\x4F7\x4F9\x5\xEEx\x2\x4F8\x4F5\x3\x2\x2\x2\x4F8\x4F9\x3\x2"+ "\x2\x2\x4F9\x4FA\x3\x2\x2\x2\x4FA\x4FC\x5\x11A\x8E\x2\x4FB\x4FD\x5\x1A"+ "\xE\x2\x4FC\x4FB\x3\x2\x2\x2\x4FC\x4FD\x3\x2\x2\x2\x4FD\x4FE\x3\x2\x2"+ - "\x2\x4FE\x4FF\a;\x2\x2\x4FF\x85\x3\x2\x2\x2\x500\x501\a\x87\x2\x2\x501"+ - "\x502\a\xEE\x2\x2\x502\x504\x5\xCEh\x2\x503\x505\a\xEE\x2\x2\x504\x503"+ + "\x2\x4FE\x4FF\a<\x2\x2\x4FF\x85\x3\x2\x2\x2\x500\x501\a\x88\x2\x2\x501"+ + "\x502\a\xEF\x2\x2\x502\x504\x5\xCEh\x2\x503\x505\a\xEF\x2\x2\x504\x503"+ "\x3\x2\x2\x2\x504\x505\x3\x2\x2\x2\x505\x506\x3\x2\x2\x2\x506\x508\a\t"+ - "\x2\x2\x507\x509\a\xEE\x2\x2\x508\x507\x3\x2\x2\x2\x508\x509\x3\x2\x2"+ + "\x2\x2\x507\x509\a\xEF\x2\x2\x508\x507\x3\x2\x2\x2\x508\x509\x3\x2\x2"+ "\x2\x509\x50B\x3\x2\x2\x2\x50A\x50C\x5\xBE`\x2\x50B\x50A\x3\x2\x2\x2\x50B"+ - "\x50C\x3\x2\x2\x2\x50C\x50E\x3\x2\x2\x2\x50D\x50F\a\xEE\x2\x2\x50E\x50D"+ + "\x50C\x3\x2\x2\x2\x50C\x50E\x3\x2\x2\x2\x50D\x50F\a\xEF\x2\x2\x50E\x50D"+ "\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x512\a\t"+ - "\x2\x2\x511\x513\a\xEE\x2\x2\x512\x511\x3\x2\x2\x2\x512\x513\x3\x2\x2"+ + "\x2\x2\x511\x513\a\xEF\x2\x2\x512\x511\x3\x2\x2\x2\x512\x513\x3\x2\x2"+ "\x2\x513\x514\x3\x2\x2\x2\x514\x515\x5\xBE`\x2\x515\x87\x3\x2\x2\x2\x516"+ - "\x517\a\x8A\x2\x2\x517\x518\a\xEE\x2\x2\x518\x527\x5\xF8}\x2\x519\x51B"+ - "\a\xEE\x2\x2\x51A\x519\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51C\x3"+ - "\x2\x2\x2\x51C\x51E\a\xBF\x2\x2\x51D\x51F\a\xEE\x2\x2\x51E\x51D\x3\x2"+ + "\x517\a\x8B\x2\x2\x517\x518\a\xEF\x2\x2\x518\x527\x5\xF8}\x2\x519\x51B"+ + "\a\xEF\x2\x2\x51A\x519\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51C\x3"+ + "\x2\x2\x2\x51C\x51E\a\xC0\x2\x2\x51D\x51F\a\xEF\x2\x2\x51E\x51D\x3\x2"+ "\x2\x2\x51E\x51F\x3\x2\x2\x2\x51F\x524\x3\x2\x2\x2\x520\x522\x5\xE8u\x2"+ - "\x521\x523\a\xEE\x2\x2\x522\x521\x3\x2\x2\x2\x522\x523\x3\x2\x2\x2\x523"+ + "\x521\x523\a\xEF\x2\x2\x522\x521\x3\x2\x2\x2\x522\x523\x3\x2\x2\x2\x523"+ "\x525\x3\x2\x2\x2\x524\x520\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x526"+ - "\x3\x2\x2\x2\x526\x528\a\xC6\x2\x2\x527\x51A\x3\x2\x2\x2\x527\x528\x3"+ - "\x2\x2\x2\x528\x89\x3\x2\x2\x2\x529\x52C\a\x89\x2\x2\x52A\x52B\a\xEE\x2"+ + "\x3\x2\x2\x2\x526\x528\a\xC7\x2\x2\x527\x51A\x3\x2\x2\x2\x527\x528\x3"+ + "\x2\x2\x2\x528\x89\x3\x2\x2\x2\x529\x52C\a\x8A\x2\x2\x52A\x52B\a\xEF\x2"+ "\x2\x52B\x52D\x5\xBE`\x2\x52C\x52A\x3\x2\x2\x2\x52C\x52D\x3\x2\x2\x2\x52D"+ - "\x8B\x3\x2\x2\x2\x52E\x52F\a\x8D\x2\x2\x52F\x532\a\xEE\x2\x2\x530\x531"+ - "\a\x7F\x2\x2\x531\x533\a\xEE\x2\x2\x532\x530\x3\x2\x2\x2\x532\x533\x3"+ - "\x2\x2\x2\x533\x534\x3\x2\x2\x2\x534\x53F\x5\x8EH\x2\x535\x537\a\xEE\x2"+ + "\x8B\x3\x2\x2\x2\x52E\x52F\a\x8E\x2\x2\x52F\x532\a\xEF\x2\x2\x530\x531"+ + "\a\x80\x2\x2\x531\x533\a\xEF\x2\x2\x532\x530\x3\x2\x2\x2\x532\x533\x3"+ + "\x2\x2\x2\x533\x534\x3\x2\x2\x2\x534\x53F\x5\x8EH\x2\x535\x537\a\xEF\x2"+ "\x2\x536\x535\x3\x2\x2\x2\x536\x537\x3\x2\x2\x2\x537\x538\x3\x2\x2\x2"+ - "\x538\x53A\a\t\x2\x2\x539\x53B\a\xEE\x2\x2\x53A\x539\x3\x2\x2\x2\x53A"+ + "\x538\x53A\a\t\x2\x2\x539\x53B\a\xEF\x2\x2\x53A\x539\x3\x2\x2\x2\x53A"+ "\x53B\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53E\x5\x8EH\x2\x53D\x536"+ "\x3\x2\x2\x2\x53E\x541\x3\x2\x2\x2\x53F\x53D\x3\x2\x2\x2\x53F\x540\x3"+ "\x2\x2\x2\x540\x8D\x3\x2\x2\x2\x541\x53F\x3\x2\x2\x2\x542\x544\x5\xDC"+ - "o\x2\x543\x545\a\xEE\x2\x2\x544\x543\x3\x2\x2\x2\x544\x545\x3\x2\x2\x2"+ - "\x545\x546\x3\x2\x2\x2\x546\x548\a\xBF\x2\x2\x547\x549\a\xEE\x2\x2\x548"+ + "o\x2\x543\x545\a\xEF\x2\x2\x544\x543\x3\x2\x2\x2\x544\x545\x3\x2\x2\x2"+ + "\x545\x546\x3\x2\x2\x2\x546\x548\a\xC0\x2\x2\x547\x549\a\xEF\x2\x2\x548"+ "\x547\x3\x2\x2\x2\x548\x549\x3\x2\x2\x2\x549\x54A\x3\x2\x2\x2\x54A\x54C"+ - "\x5\xF4{\x2\x54B\x54D\a\xEE\x2\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D\x3\x2"+ - "\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x551\a\xC6\x2\x2\x54F\x550\a\xEE\x2"+ + "\x5\xF4{\x2\x54B\x54D\a\xEF\x2\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D\x3\x2"+ + "\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x551\a\xC7\x2\x2\x54F\x550\a\xEF\x2"+ "\x2\x550\x552\x5\xFA~\x2\x551\x54F\x3\x2\x2\x2\x551\x552\x3\x2\x2\x2\x552"+ - "\x8F\x3\x2\x2\x2\x553\x554\a\x8F\x2\x2\x554\x91\x3\x2\x2\x2\x555\x55B"+ - "\a\x90\x2\x2\x556\x559\a\xEE\x2\x2\x557\x55A\an\x2\x2\x558\x55A\x5\xF8"+ + "\x8F\x3\x2\x2\x2\x553\x554\a\x90\x2\x2\x554\x91\x3\x2\x2\x2\x555\x55B"+ + "\a\x91\x2\x2\x556\x559\a\xEF\x2\x2\x557\x55A\ao\x2\x2\x558\x55A\x5\xF8"+ "}\x2\x559\x557\x3\x2\x2\x2\x559\x558\x3\x2\x2\x2\x55A\x55C\x3\x2\x2\x2"+ "\x55B\x556\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x93\x3\x2\x2\x2\x55D"+ - "\x55E\a\x91\x2\x2\x55E\x95\x3\x2\x2\x2\x55F\x560\a\x92\x2\x2\x560\x561"+ - "\a\xEE\x2\x2\x561\x562\x5\xBE`\x2\x562\x97\x3\x2\x2\x2\x563\x564\a\x93"+ - "\x2\x2\x564\x565\a\xEE\x2\x2\x565\x567\x5\xDCo\x2\x566\x568\a\xEE\x2\x2"+ + "\x55E\a\x92\x2\x2\x55E\x95\x3\x2\x2\x2\x55F\x560\a\x93\x2\x2\x560\x561"+ + "\a\xEF\x2\x2\x561\x562\x5\xBE`\x2\x562\x97\x3\x2\x2\x2\x563\x564\a\x94"+ + "\x2\x2\x564\x565\a\xEF\x2\x2\x565\x567\x5\xDCo\x2\x566\x568\a\xEF\x2\x2"+ "\x567\x566\x3\x2\x2\x2\x567\x568\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569"+ - "\x56B\a\xBB\x2\x2\x56A\x56C\a\xEE\x2\x2\x56B\x56A\x3\x2\x2\x2\x56B\x56C"+ + "\x56B\a\xBC\x2\x2\x56A\x56C\a\xEF\x2\x2\x56B\x56A\x3\x2\x2\x2\x56B\x56C"+ "\x3\x2\x2\x2\x56C\x56D\x3\x2\x2\x2\x56D\x56E\x5\xBE`\x2\x56E\x99\x3\x2"+ - "\x2\x2\x56F\x570\a\x94\x2\x2\x570\x571\a\xEE\x2\x2\x571\x573\x5\xBE`\x2"+ - "\x572\x574\a\xEE\x2\x2\x573\x572\x3\x2\x2\x2\x573\x574\x3\x2\x2\x2\x574"+ - "\x575\x3\x2\x2\x2\x575\x577\a\t\x2\x2\x576\x578\a\xEE\x2\x2\x577\x576"+ + "\x2\x2\x56F\x570\a\x95\x2\x2\x570\x571\a\xEF\x2\x2\x571\x573\x5\xBE`\x2"+ + "\x572\x574\a\xEF\x2\x2\x573\x572\x3\x2\x2\x2\x573\x574\x3\x2\x2\x2\x574"+ + "\x575\x3\x2\x2\x2\x575\x577\a\t\x2\x2\x576\x578\a\xEF\x2\x2\x577\x576"+ "\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\x3\x2\x2\x2\x579\x57A\x5"+ - "\xBE`\x2\x57A\x9B\x3\x2\x2\x2\x57B\x57C\a\x95\x2\x2\x57C\x57D\a\xEE\x2"+ - "\x2\x57D\x57F\x5\xBE`\x2\x57E\x580\a\xEE\x2\x2\x57F\x57E\x3\x2\x2\x2\x57F"+ + "\xBE`\x2\x57A\x9B\x3\x2\x2\x2\x57B\x57C\a\x96\x2\x2\x57C\x57D\a\xEF\x2"+ + "\x2\x57D\x57F\x5\xBE`\x2\x57E\x580\a\xEF\x2\x2\x57F\x57E\x3\x2\x2\x2\x57F"+ "\x580\x3\x2\x2\x2\x580\x581\x3\x2\x2\x2\x581\x583\a\t\x2\x2\x582\x584"+ - "\a\xEE\x2\x2\x583\x582\x3\x2\x2\x2\x583\x584\x3\x2\x2\x2\x584\x585\x3"+ - "\x2\x2\x2\x585\x587\x5\xBE`\x2\x586\x588\a\xEE\x2\x2\x587\x586\x3\x2\x2"+ + "\a\xEF\x2\x2\x583\x582\x3\x2\x2\x2\x583\x584\x3\x2\x2\x2\x584\x585\x3"+ + "\x2\x2\x2\x585\x587\x5\xBE`\x2\x586\x588\a\xEF\x2\x2\x587\x586\x3\x2\x2"+ "\x2\x587\x588\x3\x2\x2\x2\x588\x589\x3\x2\x2\x2\x589\x58B\a\t\x2\x2\x58A"+ - "\x58C\a\xEE\x2\x2\x58B\x58A\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x58D"+ - "\x3\x2\x2\x2\x58D\x58F\x5\xBE`\x2\x58E\x590\a\xEE\x2\x2\x58F\x58E\x3\x2"+ + "\x58C\a\xEF\x2\x2\x58B\x58A\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x58D"+ + "\x3\x2\x2\x2\x58D\x58F\x5\xBE`\x2\x58E\x590\a\xEF\x2\x2\x58F\x58E\x3\x2"+ "\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x591\x3\x2\x2\x2\x591\x593\a\t\x2\x2"+ - "\x592\x594\a\xEE\x2\x2\x593\x592\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594"+ + "\x592\x594\a\xEF\x2\x2\x593\x592\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594"+ "\x595\x3\x2\x2\x2\x595\x596\x5\xBE`\x2\x596\x9D\x3\x2\x2\x2\x597\x598"+ - "\a\x96\x2\x2\x598\x599\a\xEE\x2\x2\x599\x59B\x5\xCEh\x2\x59A\x59C\a\xEE"+ + "\a\x97\x2\x2\x598\x599\a\xEF\x2\x2\x599\x59B\x5\xCEh\x2\x59A\x59C\a\xEF"+ "\x2\x2\x59B\x59A\x3\x2\x2\x2\x59B\x59C\x3\x2\x2\x2\x59C\x59D\x3\x2\x2"+ - "\x2\x59D\x59F\a\t\x2\x2\x59E\x5A0\a\xEE\x2\x2\x59F\x59E\x3\x2\x2\x2\x59F"+ + "\x2\x59D\x59F\a\t\x2\x2\x59E\x5A0\a\xEF\x2\x2\x59F\x59E\x3\x2\x2\x2\x59F"+ "\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1\x5A2\x5\xBE`\x2\x5A2\x9F"+ - "\x3\x2\x2\x2\x5A3\x5A4\a\x97\x2\x2\x5A4\x5A5\a\xEE\x2\x2\x5A5\x5A6\a\x1B"+ - "\x2\x2\x5A6\x5A7\a\xEE\x2\x2\x5A7\x5A8\x5\xBE`\x2\x5A8\x5AC\x5\x11A\x8E"+ + "\x3\x2\x2\x2\x5A3\x5A4\a\x98\x2\x2\x5A4\x5A5\a\xEF\x2\x2\x5A5\x5A6\a\x1B"+ + "\x2\x2\x5A6\x5A7\a\xEF\x2\x2\x5A7\x5A8\x5\xBE`\x2\x5A8\x5AC\x5\x11A\x8E"+ "\x2\x5A9\x5AB\x5\xA4S\x2\x5AA\x5A9\x3\x2\x2\x2\x5AB\x5AE\x3\x2\x2\x2\x5AC"+ "\x5AA\x3\x2\x2\x2\x5AC\x5AD\x3\x2\x2\x2\x5AD\x5AF\x3\x2\x2\x2\x5AE\x5AC"+ - "\x3\x2\x2\x2\x5AF\x5B0\a<\x2\x2\x5B0\xA1\x3\x2\x2\x2\x5B1\x5B3\aY\x2\x2"+ - "\x5B2\x5B4\a\xEE\x2\x2\x5B3\x5B2\x3\x2\x2\x2\x5B3\x5B4\x3\x2\x2\x2\x5B4"+ - "\x5B5\x3\x2\x2\x2\x5B5\x5B7\x5\x100\x81\x2\x5B6\x5B8\a\xEE\x2\x2\x5B7"+ + "\x3\x2\x2\x2\x5AF\x5B0\a=\x2\x2\x5B0\xA1\x3\x2\x2\x2\x5B1\x5B3\aZ\x2\x2"+ + "\x5B2\x5B4\a\xEF\x2\x2\x5B3\x5B2\x3\x2\x2\x2\x5B3\x5B4\x3\x2\x2\x2\x5B4"+ + "\x5B5\x3\x2\x2\x2\x5B5\x5B7\x5\x100\x81\x2\x5B6\x5B8\a\xEF\x2\x2\x5B7"+ "\x5B6\x3\x2\x2\x2\x5B7\x5B8\x3\x2\x2\x2\x5B8\x5B9\x3\x2\x2\x2\x5B9\x5BA"+ - "\x5\xBE`\x2\x5BA\x5C3\x3\x2\x2\x2\x5BB\x5BC\x5\xBE`\x2\x5BC\x5BD\a\xEE"+ - "\x2\x2\x5BD\x5BE\a\xA7\x2\x2\x5BE\x5BF\a\xEE\x2\x2\x5BF\x5C0\x5\xBE`\x2"+ + "\x5\xBE`\x2\x5BA\x5C3\x3\x2\x2\x2\x5BB\x5BC\x5\xBE`\x2\x5BC\x5BD\a\xEF"+ + "\x2\x2\x5BD\x5BE\a\xA8\x2\x2\x5BE\x5BF\a\xEF\x2\x2\x5BF\x5C0\x5\xBE`\x2"+ "\x5C0\x5C3\x3\x2\x2\x2\x5C1\x5C3\x5\xBE`\x2\x5C2\x5B1\x3\x2\x2\x2\x5C2"+ "\x5BB\x3\x2\x2\x2\x5C2\x5C1\x3\x2\x2\x2\x5C3\xA3\x3\x2\x2\x2\x5C4\x5C5"+ - "\a\x1B\x2\x2\x5C5\x5C6\a\xEE\x2\x2\x5C6\x5C7\x5\xA6T\x2\x5C7\x5C9\x5\x11A"+ + "\a\x1B\x2\x2\x5C5\x5C6\a\xEF\x2\x2\x5C6\x5C7\x5\xA6T\x2\x5C7\x5C9\x5\x11A"+ "\x8E\x2\x5C8\x5CA\x5\x1A\xE\x2\x5C9\x5C8\x3\x2\x2\x2\x5C9\x5CA\x3\x2\x2"+ "\x2\x5CA\xA5\x3\x2\x2\x2\x5CB\x5DB\a\x36\x2\x2\x5CC\x5D7\x5\xA2R\x2\x5CD"+ - "\x5CF\a\xEE\x2\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0"+ - "\x3\x2\x2\x2\x5D0\x5D2\a\t\x2\x2\x5D1\x5D3\a\xEE\x2\x2\x5D2\x5D1\x3\x2"+ + "\x5CF\a\xEF\x2\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0"+ + "\x3\x2\x2\x2\x5D0\x5D2\a\t\x2\x2\x5D1\x5D3\a\xEF\x2\x2\x5D2\x5D1\x3\x2"+ "\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D6\x5\xA2R\x2"+ "\x5D5\x5CE\x3\x2\x2\x2\x5D6\x5D9\x3\x2\x2\x2\x5D7\x5D5\x3\x2\x2\x2\x5D7"+ "\x5D8\x3\x2\x2\x2\x5D8\x5DB\x3\x2\x2\x2\x5D9\x5D7\x3\x2\x2\x2\x5DA\x5CB"+ - "\x3\x2\x2\x2\x5DA\x5CC\x3\x2\x2\x2\x5DB\xA7\x3\x2\x2\x2\x5DC\x5DD\a\x98"+ - "\x2\x2\x5DD\x5DE\a\xEE\x2\x2\x5DE\x5E7\x5\xBE`\x2\x5DF\x5E1\a\xEE\x2\x2"+ + "\x3\x2\x2\x2\x5DA\x5CC\x3\x2\x2\x2\x5DB\xA7\x3\x2\x2\x2\x5DC\x5DD\a\x99"+ + "\x2\x2\x5DD\x5DE\a\xEF\x2\x2\x5DE\x5E7\x5\xBE`\x2\x5DF\x5E1\a\xEF\x2\x2"+ "\x5E0\x5DF\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2"+ - "\x5E4\a\t\x2\x2\x5E3\x5E5\a\xEE\x2\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5"+ + "\x5E4\a\t\x2\x2\x5E3\x5E5\a\xEF\x2\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5"+ "\x3\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2\x5E6\x5E8\x5\xBE`\x2\x5E7\x5E0\x3\x2"+ - "\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\xA9\x3\x2\x2\x2\x5E9\x5EA\a\x9A\x2\x2"+ - "\x5EA\x5EB\a\xEE\x2\x2\x5EB\x5ED\x5\xBE`\x2\x5EC\x5EE\a\xEE\x2\x2\x5ED"+ + "\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\xA9\x3\x2\x2\x2\x5E9\x5EA\a\x9B\x2\x2"+ + "\x5EA\x5EB\a\xEF\x2\x2\x5EB\x5ED\x5\xBE`\x2\x5EC\x5EE\a\xEF\x2\x2\x5ED"+ "\x5EC\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5EF\x3\x2\x2\x2\x5EF\x5F1"+ - "\a\t\x2\x2\x5F0\x5F2\a\xEE\x2\x2\x5F1\x5F0\x3\x2\x2\x2\x5F1\x5F2\x3\x2"+ + "\a\t\x2\x2\x5F0\x5F2\a\xEF\x2\x2\x5F1\x5F0\x3\x2\x2\x2\x5F1\x5F2\x3\x2"+ "\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F4\x5\xBE`\x2\x5F4\xAB\x3\x2\x2\x2"+ - "\x5F5\x5F6\a\x99\x2\x2\x5F6\x5F7\a\xEE\x2\x2\x5F7\x5F9\x5\xDCo\x2\x5F8"+ - "\x5FA\a\xEE\x2\x2\x5F9\x5F8\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2\x5FA\x5FB"+ - "\x3\x2\x2\x2\x5FB\x5FD\a\xBB\x2\x2\x5FC\x5FE\a\xEE\x2\x2\x5FD\x5FC\x3"+ + "\x5F5\x5F6\a\x9A\x2\x2\x5F6\x5F7\a\xEF\x2\x2\x5F7\x5F9\x5\xDCo\x2\x5F8"+ + "\x5FA\a\xEF\x2\x2\x5F9\x5F8\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2\x5FA\x5FB"+ + "\x3\x2\x2\x2\x5FB\x5FD\a\xBC\x2\x2\x5FC\x5FE\a\xEF\x2\x2\x5FD\x5FC\x3"+ "\x2\x2\x2\x5FD\x5FE\x3\x2\x2\x2\x5FE\x5FF\x3\x2\x2\x2\x5FF\x600\x5\xBE"+ - "`\x2\x600\xAD\x3\x2\x2\x2\x601\x602\a\xA0\x2\x2\x602\xAF\x3\x2\x2\x2\x603"+ - "\x604\x5\x110\x89\x2\x604\x605\a\xEE\x2\x2\x605\x607\x3\x2\x2\x2\x606"+ + "`\x2\x600\xAD\x3\x2\x2\x2\x601\x602\a\xA1\x2\x2\x602\xAF\x3\x2\x2\x2\x603"+ + "\x604\x5\x110\x89\x2\x604\x605\a\xEF\x2\x2\x605\x607\x3\x2\x2\x2\x606"+ "\x603\x3\x2\x2\x2\x606\x607\x3\x2\x2\x2\x607\x60A\x3\x2\x2\x2\x608\x609"+ - "\a\x9E\x2\x2\x609\x60B\a\xEE\x2\x2\x60A\x608\x3\x2\x2\x2\x60A\x60B\x3"+ - "\x2\x2\x2\x60B\x60C\x3\x2\x2\x2\x60C\x60E\a\xA2\x2\x2\x60D\x60F\a\xEE"+ + "\a\x9F\x2\x2\x609\x60B\a\xEF\x2\x2\x60A\x608\x3\x2\x2\x2\x60A\x60B\x3"+ + "\x2\x2\x2\x60B\x60C\x3\x2\x2\x2\x60C\x60E\a\xA3\x2\x2\x60D\x60F\a\xEF"+ "\x2\x2\x60E\x60D\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610\x3\x2\x2"+ - "\x2\x610\x615\x5\xF8}\x2\x611\x613\a\xEE\x2\x2\x612\x611\x3\x2\x2\x2\x612"+ + "\x2\x610\x615\x5\xF8}\x2\x611\x613\a\xEF\x2\x2\x612\x611\x3\x2\x2\x2\x612"+ "\x613\x3\x2\x2\x2\x613\x614\x3\x2\x2\x2\x614\x616\x5\xEEx\x2\x615\x612"+ "\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\x617\x3\x2\x2\x2\x617\x619\x5"+ "\x11A\x8E\x2\x618\x61A\x5\x1A\xE\x2\x619\x618\x3\x2\x2\x2\x619\x61A\x3"+ - "\x2\x2\x2\x61A\x61B\x3\x2\x2\x2\x61B\x61C\a=\x2\x2\x61C\xB1\x3\x2\x2\x2"+ - "\x61D\x61F\a\xA6\x2\x2\x61E\x620\a\xEE\x2\x2\x61F\x61E\x3\x2\x2\x2\x61F"+ - "\x620\x3\x2\x2\x2\x620\x621\x3\x2\x2\x2\x621\x623\a\xBB\x2\x2\x622\x624"+ - "\a\xEE\x2\x2\x623\x622\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x625\x3"+ + "\x2\x2\x2\x61A\x61B\x3\x2\x2\x2\x61B\x61C\a>\x2\x2\x61C\xB1\x3\x2\x2\x2"+ + "\x61D\x61F\a\xA7\x2\x2\x61E\x620\a\xEF\x2\x2\x61F\x61E\x3\x2\x2\x2\x61F"+ + "\x620\x3\x2\x2\x2\x620\x621\x3\x2\x2\x2\x621\x623\a\xBC\x2\x2\x622\x624"+ + "\a\xEF\x2\x2\x623\x622\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x625\x3"+ "\x2\x2\x2\x625\x626\x5\xBE`\x2\x626\xB3\x3\x2\x2\x2\x627\x628\x5\x110"+ - "\x89\x2\x628\x629\a\xEE\x2\x2\x629\x62B\x3\x2\x2\x2\x62A\x627\x3\x2\x2"+ - "\x2\x62A\x62B\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62D\a\xA9\x2\x2"+ - "\x62D\x62E\a\xEE\x2\x2\x62E\x62F\x5\xF8}\x2\x62F\x633\x5\x11A\x8E\x2\x630"+ + "\x89\x2\x628\x629\a\xEF\x2\x2\x629\x62B\x3\x2\x2\x2\x62A\x627\x3\x2\x2"+ + "\x2\x62A\x62B\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62D\a\xAA\x2\x2"+ + "\x62D\x62E\a\xEF\x2\x2\x62E\x62F\x5\xF8}\x2\x62F\x633\x5\x11A\x8E\x2\x630"+ "\x632\x5\xB6\\\x2\x631\x630\x3\x2\x2\x2\x632\x635\x3\x2\x2\x2\x633\x631"+ "\x3\x2\x2\x2\x633\x634\x3\x2\x2\x2\x634\x636\x3\x2\x2\x2\x635\x633\x3"+ - "\x2\x2\x2\x636\x637\a>\x2\x2\x637\xB5\x3\x2\x2\x2\x638\x647\x5\xF8}\x2"+ - "\x639\x63B\a\xEE\x2\x2\x63A\x639\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B"+ - "\x63C\x3\x2\x2\x2\x63C\x641\a\xBF\x2\x2\x63D\x63F\a\xEE\x2\x2\x63E\x63D"+ + "\x2\x2\x2\x636\x637\a?\x2\x2\x637\xB5\x3\x2\x2\x2\x638\x647\x5\xF8}\x2"+ + "\x639\x63B\a\xEF\x2\x2\x63A\x639\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B"+ + "\x63C\x3\x2\x2\x2\x63C\x641\a\xC0\x2\x2\x63D\x63F\a\xEF\x2\x2\x63E\x63D"+ "\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x640\x3\x2\x2\x2\x640\x642\x5"+ "\xF4{\x2\x641\x63E\x3\x2\x2\x2\x641\x642\x3\x2\x2\x2\x642\x644\x3\x2\x2"+ - "\x2\x643\x645\a\xEE\x2\x2\x644\x643\x3\x2\x2\x2\x644\x645\x3\x2\x2\x2"+ - "\x645\x646\x3\x2\x2\x2\x646\x648\a\xC6\x2\x2\x647\x63A\x3\x2\x2\x2\x647"+ - "\x648\x3\x2\x2\x2\x648\x64B\x3\x2\x2\x2\x649\x64A\a\xEE\x2\x2\x64A\x64C"+ + "\x2\x643\x645\a\xEF\x2\x2\x644\x643\x3\x2\x2\x2\x644\x645\x3\x2\x2\x2"+ + "\x645\x646\x3\x2\x2\x2\x646\x648\a\xC7\x2\x2\x647\x63A\x3\x2\x2\x2\x647"+ + "\x648\x3\x2\x2\x2\x648\x64B\x3\x2\x2\x2\x649\x64A\a\xEF\x2\x2\x64A\x64C"+ "\x5\xFA~\x2\x64B\x649\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x3\x2"+ - "\x2\x2\x64D\x64E\x5\x11A\x8E\x2\x64E\xB7\x3\x2\x2\x2\x64F\x650\a\xAA\x2"+ - "\x2\x650\x651\a\xEE\x2\x2\x651\x656\x5\xBE`\x2\x652\x653\a\xEE\x2\x2\x653"+ - "\x654\aY\x2\x2\x654\x655\a\xEE\x2\x2\x655\x657\x5\x10C\x87\x2\x656\x652"+ - "\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\xB9\x3\x2\x2\x2\x658\x659\a\xAB"+ - "\x2\x2\x659\x65A\a\xEE\x2\x2\x65A\x65B\x5\xBE`\x2\x65B\xBB\x3\x2\x2\x2"+ - "\x65C\x65D\a\xAC\x2\x2\x65D\x65E\a\xEE\x2\x2\x65E\x66D\x5\xCEh\x2\x65F"+ - "\x661\a\xEE\x2\x2\x660\x65F\x3\x2\x2\x2\x660\x661\x3\x2\x2\x2\x661\x662"+ - "\x3\x2\x2\x2\x662\x664\a\t\x2\x2\x663\x665\a\xEE\x2\x2\x664\x663\x3\x2"+ + "\x2\x2\x64D\x64E\x5\x11A\x8E\x2\x64E\xB7\x3\x2\x2\x2\x64F\x650\a\xAB\x2"+ + "\x2\x650\x651\a\xEF\x2\x2\x651\x656\x5\xBE`\x2\x652\x653\a\xEF\x2\x2\x653"+ + "\x654\aZ\x2\x2\x654\x655\a\xEF\x2\x2\x655\x657\x5\x10C\x87\x2\x656\x652"+ + "\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\xB9\x3\x2\x2\x2\x658\x659\a\xAC"+ + "\x2\x2\x659\x65A\a\xEF\x2\x2\x65A\x65B\x5\xBE`\x2\x65B\xBB\x3\x2\x2\x2"+ + "\x65C\x65D\a\xAD\x2\x2\x65D\x65E\a\xEF\x2\x2\x65E\x66D\x5\xCEh\x2\x65F"+ + "\x661\a\xEF\x2\x2\x660\x65F\x3\x2\x2\x2\x660\x661\x3\x2\x2\x2\x661\x662"+ + "\x3\x2\x2\x2\x662\x664\a\t\x2\x2\x663\x665\a\xEF\x2\x2\x664\x663\x3\x2"+ "\x2\x2\x664\x665\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2\x666\x66B\x5\xBE`\x2"+ - "\x667\x668\a\xEE\x2\x2\x668\x669\a\xA7\x2\x2\x669\x66A\a\xEE\x2\x2\x66A"+ + "\x667\x668\a\xEF\x2\x2\x668\x669\a\xA8\x2\x2\x669\x66A\a\xEF\x2\x2\x66A"+ "\x66C\x5\xBE`\x2\x66B\x667\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x66E"+ "\x3\x2\x2\x2\x66D\x660\x3\x2\x2\x2\x66D\x66E\x3\x2\x2\x2\x66E\xBD\x3\x2"+ - "\x2\x2\x66F\x670\b`\x1\x2\x670\x672\ao\x2\x2\x671\x673\a\xEE\x2\x2\x672"+ + "\x2\x2\x66F\x670\b`\x1\x2\x670\x672\ap\x2\x2\x671\x673\a\xEF\x2\x2\x672"+ "\x671\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x6A7"+ - "\x5\xBE`\x15\x675\x677\a\f\x2\x2\x676\x678\a\xEE\x2\x2\x677\x676\x3\x2"+ + "\x5\xBE`\x15\x675\x677\a\f\x2\x2\x676\x678\a\xEF\x2\x2\x677\x676\x3\x2"+ "\x2\x2\x677\x678\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x6A7\x5\xBE`\x12"+ - "\x67A\x67C\x5\xDCo\x2\x67B\x67D\a\xEE\x2\x2\x67C\x67B\x3\x2\x2\x2\x67C"+ - "\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x680\a\xB8\x2\x2\x67F\x681"+ - "\a\xEE\x2\x2\x680\x67F\x3\x2\x2\x2\x680\x681\x3\x2\x2\x2\x681\x682\x3"+ - "\x2\x2\x2\x682\x683\x5\xBE`\x11\x683\x6A7\x3\x2\x2\x2\x684\x686\a\xC1"+ - "\x2\x2\x685\x687\a\xEE\x2\x2\x686\x685\x3\x2\x2\x2\x686\x687\x3\x2\x2"+ - "\x2\x687\x688\x3\x2\x2\x2\x688\x6A7\x5\xBE`\xF\x689\x68B\ap\x2\x2\x68A"+ - "\x68C\a\xEE\x2\x2\x68B\x68A\x3\x2\x2\x2\x68B\x68C\x3\x2\x2\x2\x68C\x68D"+ + "\x67A\x67C\x5\xDCo\x2\x67B\x67D\a\xEF\x2\x2\x67C\x67B\x3\x2\x2\x2\x67C"+ + "\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x680\a\xB9\x2\x2\x67F\x681"+ + "\a\xEF\x2\x2\x680\x67F\x3\x2\x2\x2\x680\x681\x3\x2\x2\x2\x681\x682\x3"+ + "\x2\x2\x2\x682\x683\x5\xBE`\x11\x683\x6A7\x3\x2\x2\x2\x684\x686\a\xC2"+ + "\x2\x2\x685\x687\a\xEF\x2\x2\x686\x685\x3\x2\x2\x2\x686\x687\x3\x2\x2"+ + "\x2\x687\x688\x3\x2\x2\x2\x688\x6A7\x5\xBE`\xF\x689\x68B\aq\x2\x2\x68A"+ + "\x68C\a\xEF\x2\x2\x68B\x68A\x3\x2\x2\x2\x68B\x68C\x3\x2\x2\x2\x68C\x68D"+ "\x3\x2\x2\x2\x68D\x6A7\x5\xBE`\b\x68E\x6A7\x5\x10A\x86\x2\x68F\x6A7\x5"+ - "\xDCo\x2\x690\x692\a\xBF\x2\x2\x691\x693\a\xEE\x2\x2\x692\x691\x3\x2\x2"+ + "\xDCo\x2\x690\x692\a\xC0\x2\x2\x691\x693\a\xEF\x2\x2\x692\x691\x3\x2\x2"+ "\x2\x692\x693\x3\x2\x2\x2\x693\x694\x3\x2\x2\x2\x694\x69F\x5\xBE`\x2\x695"+ - "\x697\a\xEE\x2\x2\x696\x695\x3\x2\x2\x2\x696\x697\x3\x2\x2\x2\x697\x698"+ - "\x3\x2\x2\x2\x698\x69A\a\t\x2\x2\x699\x69B\a\xEE\x2\x2\x69A\x699\x3\x2"+ + "\x697\a\xEF\x2\x2\x696\x695\x3\x2\x2\x2\x696\x697\x3\x2\x2\x2\x697\x698"+ + "\x3\x2\x2\x2\x698\x69A\a\t\x2\x2\x699\x69B\a\xEF\x2\x2\x69A\x699\x3\x2"+ "\x2\x2\x69A\x69B\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2\x69C\x69E\x5\xBE`\x2"+ "\x69D\x696\x3\x2\x2\x2\x69E\x6A1\x3\x2\x2\x2\x69F\x69D\x3\x2\x2\x2\x69F"+ "\x6A0\x3\x2\x2\x2\x6A0\x6A2\x3\x2\x2\x2\x6A1\x69F\x3\x2\x2\x2\x6A2\x6A3"+ - "\a\xC6\x2\x2\x6A3\x6A7\x3\x2\x2\x2\x6A4\x6A7\x5\xB8]\x2\x6A5\x6A7\x5l"+ + "\a\xC7\x2\x2\x6A3\x6A7\x3\x2\x2\x2\x6A4\x6A7\x5\xB8]\x2\x6A5\x6A7\x5l"+ "\x37\x2\x6A6\x66F\x3\x2\x2\x2\x6A6\x675\x3\x2\x2\x2\x6A6\x67A\x3\x2\x2"+ "\x2\x6A6\x684\x3\x2\x2\x2\x6A6\x689\x3\x2\x2\x2\x6A6\x68E\x3\x2\x2\x2"+ "\x6A6\x68F\x3\x2\x2\x2\x6A6\x690\x3\x2\x2\x2\x6A6\x6A4\x3\x2\x2\x2\x6A6"+ "\x6A5\x3\x2\x2\x2\x6A7\x716\x3\x2\x2\x2\x6A8\x6AA\f\x10\x2\x2\x6A9\x6AB"+ - "\a\xEE\x2\x2\x6AA\x6A9\x3\x2\x2\x2\x6AA\x6AB\x3\x2\x2\x2\x6AB\x6AC\x3"+ - "\x2\x2\x2\x6AC\x6AE\a\xC5\x2\x2\x6AD\x6AF\a\xEE\x2\x2\x6AE\x6AD\x3\x2"+ + "\a\xEF\x2\x2\x6AA\x6A9\x3\x2\x2\x2\x6AA\x6AB\x3\x2\x2\x2\x6AB\x6AC\x3"+ + "\x2\x2\x2\x6AC\x6AE\a\xC6\x2\x2\x6AD\x6AF\a\xEF\x2\x2\x6AE\x6AD\x3\x2"+ "\x2\x2\x6AE\x6AF\x3\x2\x2\x2\x6AF\x6B0\x3\x2\x2\x2\x6B0\x715\x5\xBE`\x11"+ - "\x6B1\x6B3\f\xE\x2\x2\x6B2\x6B4\a\xEE\x2\x2\x6B3\x6B2\x3\x2\x2\x2\x6B3"+ + "\x6B1\x6B3\f\xE\x2\x2\x6B2\x6B4\a\xEF\x2\x2\x6B3\x6B2\x3\x2\x2\x2\x6B3"+ "\x6B4\x3\x2\x2\x2\x6B4\x6B5\x3\x2\x2\x2\x6B5\x6B7\t\f\x2\x2\x6B6\x6B8"+ - "\a\xEE\x2\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6B9\x3"+ - "\x2\x2\x2\x6B9\x715\x5\xBE`\xF\x6BA\x6BC\f\r\x2\x2\x6BB\x6BD\a\xEE\x2"+ + "\a\xEF\x2\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6B9\x3"+ + "\x2\x2\x2\x6B9\x715\x5\xBE`\xF\x6BA\x6BC\f\r\x2\x2\x6BB\x6BD\a\xEF\x2"+ "\x2\x6BC\x6BB\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6BE\x3\x2\x2\x2"+ - "\x6BE\x6C0\a\xBA\x2\x2\x6BF\x6C1\a\xEE\x2\x2\x6C0\x6BF\x3\x2\x2\x2\x6C0"+ + "\x6BE\x6C0\a\xBB\x2\x2\x6BF\x6C1\a\xEF\x2\x2\x6C0\x6BF\x3\x2\x2\x2\x6C0"+ "\x6C1\x3\x2\x2\x2\x6C1\x6C2\x3\x2\x2\x2\x6C2\x715\x5\xBE`\xE\x6C3\x6C5"+ - "\f\f\x2\x2\x6C4\x6C6\a\xEE\x2\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5\x6C6\x3\x2"+ - "\x2\x2\x6C6\x6C7\x3\x2\x2\x2\x6C7\x6C9\al\x2\x2\x6C8\x6CA\a\xEE\x2\x2"+ + "\f\f\x2\x2\x6C4\x6C6\a\xEF\x2\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5\x6C6\x3\x2"+ + "\x2\x2\x6C6\x6C7\x3\x2\x2\x2\x6C7\x6C9\am\x2\x2\x6C8\x6CA\a\xEF\x2\x2"+ "\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA\x6CB\x3\x2\x2\x2\x6CB"+ - "\x715\x5\xBE`\r\x6CC\x6CE\f\v\x2\x2\x6CD\x6CF\a\xEE\x2\x2\x6CE\x6CD\x3"+ + "\x715\x5\xBE`\r\x6CC\x6CE\f\v\x2\x2\x6CD\x6CF\a\xEF\x2\x2\x6CE\x6CD\x3"+ "\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2\x2\x2\x6D0\x6D2\t\r\x2"+ - "\x2\x6D1\x6D3\a\xEE\x2\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2"+ + "\x2\x6D1\x6D3\a\xEF\x2\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2"+ "\x6D3\x6D4\x3\x2\x2\x2\x6D4\x715\x5\xBE`\f\x6D5\x6D7\f\n\x2\x2\x6D6\x6D8"+ - "\a\xEE\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8\x6D9\x3"+ - "\x2\x2\x2\x6D9\x6DB\a\xB7\x2\x2\x6DA\x6DC\a\xEE\x2\x2\x6DB\x6DA\x3\x2"+ + "\a\xEF\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8\x6D9\x3"+ + "\x2\x2\x2\x6D9\x6DB\a\xB8\x2\x2\x6DA\x6DC\a\xEF\x2\x2\x6DB\x6DA\x3\x2"+ "\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x715\x5\xBE`\v"+ - "\x6DE\x6E0\f\t\x2\x2\x6DF\x6E1\a\xEE\x2\x2\x6E0\x6DF\x3\x2\x2\x2\x6E0"+ + "\x6DE\x6E0\f\t\x2\x2\x6DF\x6E1\a\xEF\x2\x2\x6E0\x6DF\x3\x2\x2\x2\x6E0"+ "\x6E1\x3\x2\x2\x2\x6E1\x6E2\x3\x2\x2\x2\x6E2\x6E4\t\xE\x2\x2\x6E3\x6E5"+ - "\a\xEE\x2\x2\x6E4\x6E3\x3\x2\x2\x2\x6E4\x6E5\x3\x2\x2\x2\x6E5\x6E6\x3"+ - "\x2\x2\x2\x6E6\x715\x5\xBE`\n\x6E7\x6E9\f\a\x2\x2\x6E8\x6EA\a\xEE\x2\x2"+ + "\a\xEF\x2\x2\x6E4\x6E3\x3\x2\x2\x2\x6E4\x6E5\x3\x2\x2\x2\x6E5\x6E6\x3"+ + "\x2\x2\x2\x6E6\x715\x5\xBE`\n\x6E7\x6E9\f\a\x2\x2\x6E8\x6EA\a\xEF\x2\x2"+ "\x6E9\x6E8\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB\x3\x2\x2\x2\x6EB"+ - "\x6ED\a\xE\x2\x2\x6EC\x6EE\a\xEE\x2\x2\x6ED\x6EC\x3\x2\x2\x2\x6ED\x6EE"+ + "\x6ED\a\xE\x2\x2\x6EC\x6EE\a\xEF\x2\x2\x6ED\x6EC\x3\x2\x2\x2\x6ED\x6EE"+ "\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2\x2\x6EF\x715\x5\xBE`\b\x6F0\x6F2\f\x6"+ - "\x2\x2\x6F1\x6F3\a\xEE\x2\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2"+ - "\x2\x6F3\x6F4\x3\x2\x2\x2\x6F4\x6F6\a|\x2\x2\x6F5\x6F7\a\xEE\x2\x2\x6F6"+ + "\x2\x2\x6F1\x6F3\a\xEF\x2\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2"+ + "\x2\x6F3\x6F4\x3\x2\x2\x2\x6F4\x6F6\a}\x2\x2\x6F5\x6F7\a\xEF\x2\x2\x6F6"+ "\x6F5\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F8\x3\x2\x2\x2\x6F8\x715"+ - "\x5\xBE`\a\x6F9\x6FB\f\x5\x2\x2\x6FA\x6FC\a\xEE\x2\x2\x6FB\x6FA\x3\x2"+ - "\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x6FD\x3\x2\x2\x2\x6FD\x6FF\a\xB6\x2"+ - "\x2\x6FE\x700\a\xEE\x2\x2\x6FF\x6FE\x3\x2\x2\x2\x6FF\x700\x3\x2\x2\x2"+ + "\x5\xBE`\a\x6F9\x6FB\f\x5\x2\x2\x6FA\x6FC\a\xEF\x2\x2\x6FB\x6FA\x3\x2"+ + "\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x6FD\x3\x2\x2\x2\x6FD\x6FF\a\xB7\x2"+ + "\x2\x6FE\x700\a\xEF\x2\x2\x6FF\x6FE\x3\x2\x2\x2\x6FF\x700\x3\x2\x2\x2"+ "\x700\x701\x3\x2\x2\x2\x701\x715\x5\xBE`\x6\x702\x704\f\x4\x2\x2\x703"+ - "\x705\a\xEE\x2\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706"+ - "\x3\x2\x2\x2\x706\x708\a\x42\x2\x2\x707\x709\a\xEE\x2\x2\x708\x707\x3"+ + "\x705\a\xEF\x2\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706"+ + "\x3\x2\x2\x2\x706\x708\a\x43\x2\x2\x707\x709\a\xEF\x2\x2\x708\x707\x3"+ "\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A\x715\x5\xBE"+ - "`\x5\x70B\x70D\f\x3\x2\x2\x70C\x70E\a\xEE\x2\x2\x70D\x70C\x3\x2\x2\x2"+ - "\x70D\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x711\aU\x2\x2\x710\x712"+ - "\a\xEE\x2\x2\x711\x710\x3\x2\x2\x2\x711\x712\x3\x2\x2\x2\x712\x713\x3"+ + "`\x5\x70B\x70D\f\x3\x2\x2\x70C\x70E\a\xEF\x2\x2\x70D\x70C\x3\x2\x2\x2"+ + "\x70D\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x711\aV\x2\x2\x710\x712"+ + "\a\xEF\x2\x2\x711\x710\x3\x2\x2\x2\x711\x712\x3\x2\x2\x2\x712\x713\x3"+ "\x2\x2\x2\x713\x715\x5\xBE`\x4\x714\x6A8\x3\x2\x2\x2\x714\x6B1\x3\x2\x2"+ "\x2\x714\x6BA\x3\x2\x2\x2\x714\x6C3\x3\x2\x2\x2\x714\x6CC\x3\x2\x2\x2"+ "\x714\x6D5\x3\x2\x2\x2\x714\x6DE\x3\x2\x2\x2\x714\x6E7\x3\x2\x2\x2\x714"+ "\x6F0\x3\x2\x2\x2\x714\x6F9\x3\x2\x2\x2\x714\x702\x3\x2\x2\x2\x714\x70B"+ "\x3\x2\x2\x2\x715\x718\x3\x2\x2\x2\x716\x714\x3\x2\x2\x2\x716\x717\x3"+ "\x2\x2\x2\x717\xBF\x3\x2\x2\x2\x718\x716\x3\x2\x2\x2\x719\x71D\a\x32\x2"+ - "\x2\x71A\x71D\a\x9E\x2\x2\x71B\x71D\x5\x110\x89\x2\x71C\x719\x3\x2\x2"+ + "\x2\x71A\x71D\a\x9F\x2\x2\x71B\x71D\x5\x110\x89\x2\x71C\x719\x3\x2\x2"+ "\x2\x71C\x71A\x3\x2\x2\x2\x71C\x71B\x3\x2\x2\x2\x71D\x71E\x3\x2\x2\x2"+ - "\x71E\x721\a\xEE\x2\x2\x71F\x720\a\xB4\x2\x2\x720\x722\a\xEE\x2\x2\x721"+ + "\x71E\x721\a\xEF\x2\x2\x71F\x720\a\xB5\x2\x2\x720\x722\a\xEF\x2\x2\x721"+ "\x71F\x3\x2\x2\x2\x721\x722\x3\x2\x2\x2\x722\x723\x3\x2\x2\x2\x723\x724"+ "\x5\xC2\x62\x2\x724\xC1\x3\x2\x2\x2\x725\x730\x5\xC4\x63\x2\x726\x728"+ - "\a\xEE\x2\x2\x727\x726\x3\x2\x2\x2\x727\x728\x3\x2\x2\x2\x728\x729\x3"+ - "\x2\x2\x2\x729\x72B\a\t\x2\x2\x72A\x72C\a\xEE\x2\x2\x72B\x72A\x3\x2\x2"+ + "\a\xEF\x2\x2\x727\x726\x3\x2\x2\x2\x727\x728\x3\x2\x2\x2\x728\x729\x3"+ + "\x2\x2\x2\x729\x72B\a\t\x2\x2\x72A\x72C\a\xEF\x2\x2\x72B\x72A\x3\x2\x2"+ "\x2\x72B\x72C\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D\x72F\x5\xC4\x63\x2"+ "\x72E\x727\x3\x2\x2\x2\x72F\x732\x3\x2\x2\x2\x730\x72E\x3\x2\x2\x2\x730"+ "\x731\x3\x2\x2\x2\x731\xC3\x3\x2\x2\x2\x732\x730\x3\x2\x2\x2\x733\x745"+ - "\x5\xF8}\x2\x734\x736\a\xEE\x2\x2\x735\x734\x3\x2\x2\x2\x735\x736\x3\x2"+ - "\x2\x2\x736\x737\x3\x2\x2\x2\x737\x739\a\xBF\x2\x2\x738\x73A\a\xEE\x2"+ + "\x5\xF8}\x2\x734\x736\a\xEF\x2\x2\x735\x734\x3\x2\x2\x2\x735\x736\x3\x2"+ + "\x2\x2\x736\x737\x3\x2\x2\x2\x737\x739\a\xC0\x2\x2\x738\x73A\a\xEF\x2"+ "\x2\x739\x738\x3\x2\x2\x2\x739\x73A\x3\x2\x2\x2\x73A\x73F\x3\x2\x2\x2"+ - "\x73B\x73D\x5\xF4{\x2\x73C\x73E\a\xEE\x2\x2\x73D\x73C\x3\x2\x2\x2\x73D"+ + "\x73B\x73D\x5\xF4{\x2\x73C\x73E\a\xEF\x2\x2\x73D\x73C\x3\x2\x2\x2\x73D"+ "\x73E\x3\x2\x2\x2\x73E\x740\x3\x2\x2\x2\x73F\x73B\x3\x2\x2\x2\x73F\x740"+ - "\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\a\xC6\x2\x2\x742\x744\a\xEE"+ + "\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\a\xC7\x2\x2\x742\x744\a\xEF"+ "\x2\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2\x2\x2\x744\x746\x3\x2\x2"+ "\x2\x745\x735\x3\x2\x2\x2\x745\x746\x3\x2\x2\x2\x746\x748\x3\x2\x2\x2"+ "\x747\x749\x5\x10E\x88\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2"+ - "\x749\x74C\x3\x2\x2\x2\x74A\x74B\a\xEE\x2\x2\x74B\x74D\x5\xFA~\x2\x74C"+ + "\x749\x74C\x3\x2\x2\x2\x74A\x74B\a\xEF\x2\x2\x74B\x74D\x5\xFA~\x2\x74C"+ "\x74A\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\xC5\x3\x2\x2\x2\x74E\x74F"+ - "\a\xB1\x2\x2\x74F\x750\a\xEE\x2\x2\x750\x751\x5\xBE`\x2\x751\x753\x5\x11A"+ + "\a\xB2\x2\x2\x74F\x750\a\xEF\x2\x2\x750\x751\x5\xBE`\x2\x751\x753\x5\x11A"+ "\x8E\x2\x752\x754\x5\x1A\xE\x2\x753\x752\x3\x2\x2\x2\x753\x754\x3\x2\x2"+ - "\x2\x754\x755\x3\x2\x2\x2\x755\x756\a\xB0\x2\x2\x756\xC7\x3\x2\x2\x2\x757"+ - "\x758\a\xB2\x2\x2\x758\x759\a\xEE\x2\x2\x759\x75B\x5\xCEh\x2\x75A\x75C"+ - "\a\xEE\x2\x2\x75B\x75A\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D\x3"+ - "\x2\x2\x2\x75D\x75F\a\t\x2\x2\x75E\x760\a\xEE\x2\x2\x75F\x75E\x3\x2\x2"+ + "\x2\x754\x755\x3\x2\x2\x2\x755\x756\a\xB1\x2\x2\x756\xC7\x3\x2\x2\x2\x757"+ + "\x758\a\xB3\x2\x2\x758\x759\a\xEF\x2\x2\x759\x75B\x5\xCEh\x2\x75A\x75C"+ + "\a\xEF\x2\x2\x75B\x75A\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D\x3"+ + "\x2\x2\x2\x75D\x75F\a\t\x2\x2\x75E\x760\a\xEF\x2\x2\x75F\x75E\x3\x2\x2"+ "\x2\x75F\x760\x3\x2\x2\x2\x760\x761\x3\x2\x2\x2\x761\x762\x5\xBE`\x2\x762"+ - "\xC9\x3\x2\x2\x2\x763\x764\a\xB3\x2\x2\x764\x769\a\xEE\x2\x2\x765\x76A"+ - "\x5\xDCo\x2\x766\x767\ao\x2\x2\x767\x768\a\xEE\x2\x2\x768\x76A\x5\x10C"+ + "\xC9\x3\x2\x2\x2\x763\x764\a\xB4\x2\x2\x764\x769\a\xEF\x2\x2\x765\x76A"+ + "\x5\xDCo\x2\x766\x767\ap\x2\x2\x767\x768\a\xEF\x2\x2\x768\x76A\x5\x10C"+ "\x87\x2\x769\x765\x3\x2\x2\x2\x769\x766\x3\x2\x2\x2\x76A\x76B\x3\x2\x2"+ "\x2\x76B\x76D\x5\x11A\x8E\x2\x76C\x76E\x5\x1A\xE\x2\x76D\x76C\x3\x2\x2"+ - "\x2\x76D\x76E\x3\x2\x2\x2\x76E\x76F\x3\x2\x2\x2\x76F\x770\a?\x2\x2\x770"+ - "\xCB\x3\x2\x2\x2\x771\x772\a\xB5\x2\x2\x772\x773\a\xEE\x2\x2\x773\x775"+ - "\x5\xCEh\x2\x774\x776\a\xEE\x2\x2\x775\x774\x3\x2\x2\x2\x775\x776\x3\x2"+ - "\x2\x2\x776\x777\x3\x2\x2\x2\x777\x77C\a\t\x2\x2\x778\x77A\a\xEE\x2\x2"+ + "\x2\x76D\x76E\x3\x2\x2\x2\x76E\x76F\x3\x2\x2\x2\x76F\x770\a@\x2\x2\x770"+ + "\xCB\x3\x2\x2\x2\x771\x772\a\xB6\x2\x2\x772\x773\a\xEF\x2\x2\x773\x775"+ + "\x5\xCEh\x2\x774\x776\a\xEF\x2\x2\x775\x774\x3\x2\x2\x2\x775\x776\x3\x2"+ + "\x2\x2\x776\x777\x3\x2\x2\x2\x777\x77C\a\t\x2\x2\x778\x77A\a\xEF\x2\x2"+ "\x779\x778\x3\x2\x2\x2\x779\x77A\x3\x2\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B"+ "\x77D\x5z>\x2\x77C\x779\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\xCD\x3"+ "\x2\x2\x2\x77E\x780\a\x5\x2\x2\x77F\x77E\x3\x2\x2\x2\x77F\x780\x3\x2\x2"+ "\x2\x780\x781\x3\x2\x2\x2\x781\x782\x5\xBE`\x2\x782\xCF\x3\x2\x2\x2\x783"+ "\x786\x5\xD2j\x2\x784\x786\x5\xD4k\x2\x785\x783\x3\x2\x2\x2\x785\x784"+ - "\x3\x2\x2\x2\x786\xD1\x3\x2\x2\x2\x787\x788\a\x1A\x2\x2\x788\x789\a\xEE"+ + "\x3\x2\x2\x2\x786\xD1\x3\x2\x2\x2\x787\x788\a\x1A\x2\x2\x788\x789\a\xEF"+ "\x2\x2\x789\x78B\x5\xF8}\x2\x78A\x78C\x5\x10E\x88\x2\x78B\x78A\x3\x2\x2"+ - "\x2\x78B\x78C\x3\x2\x2\x2\x78C\x79A\x3\x2\x2\x2\x78D\x78F\a\xEE\x2\x2"+ + "\x2\x78B\x78C\x3\x2\x2\x2\x78C\x79A\x3\x2\x2\x2\x78D\x78F\a\xEF\x2\x2"+ "\x78E\x78D\x3\x2\x2\x2\x78E\x78F\x3\x2\x2\x2\x78F\x790\x3\x2\x2\x2\x790"+ - "\x792\a\xBF\x2\x2\x791\x793\a\xEE\x2\x2\x792\x791\x3\x2\x2\x2\x792\x793"+ - "\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794\x796\x5\xE8u\x2\x795\x797\a\xEE"+ + "\x792\a\xC0\x2\x2\x791\x793\a\xEF\x2\x2\x792\x791\x3\x2\x2\x2\x792\x793"+ + "\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794\x796\x5\xE8u\x2\x795\x797\a\xEF"+ "\x2\x2\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x798\x3\x2\x2"+ - "\x2\x798\x799\a\xC6\x2\x2\x799\x79B\x3\x2\x2\x2\x79A\x78E\x3\x2\x2\x2"+ - "\x79A\x79B\x3\x2\x2\x2\x79B\x7A5\x3\x2\x2\x2\x79C\x79E\a\xEE\x2\x2\x79D"+ + "\x2\x798\x799\a\xC7\x2\x2\x799\x79B\x3\x2\x2\x2\x79A\x78E\x3\x2\x2\x2"+ + "\x79A\x79B\x3\x2\x2\x2\x79B\x7A5\x3\x2\x2\x2\x79C\x79E\a\xEF\x2\x2\x79D"+ "\x79C\x3\x2\x2\x2\x79D\x79E\x3\x2\x2\x2\x79E\x79F\x3\x2\x2\x2\x79F\x7A0"+ - "\a\xBF\x2\x2\x7A0\x7A1\x5\xF4{\x2\x7A1\x7A2\a\xC6\x2\x2\x7A2\x7A4\x3\x2"+ + "\a\xC0\x2\x2\x7A0\x7A1\x5\xF4{\x2\x7A1\x7A2\a\xC7\x2\x2\x7A2\x7A4\x3\x2"+ "\x2\x2\x7A3\x79D\x3\x2\x2\x2\x7A4\x7A7\x3\x2\x2\x2\x7A5\x7A3\x3\x2\x2"+ "\x2\x7A5\x7A6\x3\x2\x2\x2\x7A6\xD3\x3\x2\x2\x2\x7A7\x7A5\x3\x2\x2\x2\x7A8"+ - "\x7A9\a\x1A\x2\x2\x7A9\x7AB\a\xEE\x2\x2\x7AA\x7AC\x5\xDCo\x2\x7AB\x7AA"+ + "\x7A9\a\x1A\x2\x2\x7A9\x7AB\a\xEF\x2\x2\x7AA\x7AC\x5\xDCo\x2\x7AB\x7AA"+ "\x3\x2\x2\x2\x7AB\x7AC\x3\x2\x2\x2\x7AC\x7AD\x3\x2\x2\x2\x7AD\x7AE\a\n"+ "\x2\x2\x7AE\x7B0\x5\xF8}\x2\x7AF\x7B1\x5\x10E\x88\x2\x7B0\x7AF\x3\x2\x2"+ - "\x2\x7B0\x7B1\x3\x2\x2\x2\x7B1\x7BF\x3\x2\x2\x2\x7B2\x7B4\a\xEE\x2\x2"+ + "\x2\x7B0\x7B1\x3\x2\x2\x2\x7B1\x7BF\x3\x2\x2\x2\x7B2\x7B4\a\xEF\x2\x2"+ "\x7B3\x7B2\x3\x2\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B5\x3\x2\x2\x2\x7B5"+ - "\x7B7\a\xBF\x2\x2\x7B6\x7B8\a\xEE\x2\x2\x7B7\x7B6\x3\x2\x2\x2\x7B7\x7B8"+ - "\x3\x2\x2\x2\x7B8\x7B9\x3\x2\x2\x2\x7B9\x7BB\x5\xE8u\x2\x7BA\x7BC\a\xEE"+ + "\x7B7\a\xC0\x2\x2\x7B6\x7B8\a\xEF\x2\x2\x7B7\x7B6\x3\x2\x2\x2\x7B7\x7B8"+ + "\x3\x2\x2\x2\x7B8\x7B9\x3\x2\x2\x2\x7B9\x7BB\x5\xE8u\x2\x7BA\x7BC\a\xEF"+ "\x2\x2\x7BB\x7BA\x3\x2\x2\x2\x7BB\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2"+ - "\x2\x7BD\x7BE\a\xC6\x2\x2\x7BE\x7C0\x3\x2\x2\x2\x7BF\x7B3\x3\x2\x2\x2"+ - "\x7BF\x7C0\x3\x2\x2\x2\x7C0\x7CA\x3\x2\x2\x2\x7C1\x7C3\a\xEE\x2\x2\x7C2"+ + "\x2\x7BD\x7BE\a\xC7\x2\x2\x7BE\x7C0\x3\x2\x2\x2\x7BF\x7B3\x3\x2\x2\x2"+ + "\x7BF\x7C0\x3\x2\x2\x2\x7C0\x7CA\x3\x2\x2\x2\x7C1\x7C3\a\xEF\x2\x2\x7C2"+ "\x7C1\x3\x2\x2\x2\x7C2\x7C3\x3\x2\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C5"+ - "\a\xBF\x2\x2\x7C5\x7C6\x5\xF4{\x2\x7C6\x7C7\a\xC6\x2\x2\x7C7\x7C9\x3\x2"+ + "\a\xC0\x2\x2\x7C5\x7C6\x5\xF4{\x2\x7C6\x7C7\a\xC7\x2\x2\x7C7\x7C9\x3\x2"+ "\x2\x2\x7C8\x7C2\x3\x2\x2\x2\x7C9\x7CC\x3\x2\x2\x2\x7CA\x7C8\x3\x2\x2"+ "\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB\xD5\x3\x2\x2\x2\x7CC\x7CA\x3\x2\x2\x2\x7CD"+ "\x7D0\x5\xD8m\x2\x7CE\x7D0\x5\xDAn\x2\x7CF\x7CD\x3\x2\x2\x2\x7CF\x7CE"+ "\x3\x2\x2\x2\x7D0\xD7\x3\x2\x2\x2\x7D1\x7D3\x5\xDCo\x2\x7D2\x7D1\x3\x2"+ "\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\x7D5\a\n\x2\x2"+ "\x7D5\x7D7\x5\xF8}\x2\x7D6\x7D8\x5\x10E\x88\x2\x7D7\x7D6\x3\x2\x2\x2\x7D7"+ - "\x7D8\x3\x2\x2\x2\x7D8\x7DB\x3\x2\x2\x2\x7D9\x7DA\a\xEE\x2\x2\x7DA\x7DC"+ + "\x7D8\x3\x2\x2\x2\x7D8\x7DB\x3\x2\x2\x2\x7D9\x7DA\a\xEF\x2\x2\x7DA\x7DC"+ "\x5\xE8u\x2\x7DB\x7D9\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\x7E1\x3\x2"+ - "\x2\x2\x7DD\x7DF\a\xEE\x2\x2\x7DE\x7DD\x3\x2\x2\x2\x7DE\x7DF\x3\x2\x2"+ + "\x2\x2\x7DD\x7DF\a\xEF\x2\x2\x7DE\x7DD\x3\x2\x2\x2\x7DE\x7DF\x3\x2\x2"+ "\x2\x7DF\x7E0\x3\x2\x2\x2\x7E0\x7E2\x5\xECw\x2\x7E1\x7DE\x3\x2\x2\x2\x7E1"+ - "\x7E2\x3\x2\x2\x2\x7E2\x7EC\x3\x2\x2\x2\x7E3\x7E5\a\xEE\x2\x2\x7E4\x7E3"+ - "\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7E7\a\xBF"+ - "\x2\x2\x7E7\x7E8\x5\xF4{\x2\x7E8\x7E9\a\xC6\x2\x2\x7E9\x7EB\x3\x2\x2\x2"+ + "\x7E2\x3\x2\x2\x2\x7E2\x7EC\x3\x2\x2\x2\x7E3\x7E5\a\xEF\x2\x2\x7E4\x7E3"+ + "\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7E7\a\xC0"+ + "\x2\x2\x7E7\x7E8\x5\xF4{\x2\x7E8\x7E9\a\xC7\x2\x2\x7E9\x7EB\x3\x2\x2\x2"+ "\x7EA\x7E4\x3\x2\x2\x2\x7EB\x7EE\x3\x2\x2\x2\x7EC\x7EA\x3\x2\x2\x2\x7EC"+ "\x7ED\x3\x2\x2\x2\x7ED\xD9\x3\x2\x2\x2\x7EE\x7EC\x3\x2\x2\x2\x7EF\x7F2"+ - "\x5\xFE\x80\x2\x7F0\x7F1\a\xEE\x2\x2\x7F1\x7F3\x5\xE8u\x2\x7F2\x7F0\x3"+ - "\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7FD\x3\x2\x2\x2\x7F4\x7F6\a\xEE"+ + "\x5\xFE\x80\x2\x7F0\x7F1\a\xEF\x2\x2\x7F1\x7F3\x5\xE8u\x2\x7F2\x7F0\x3"+ + "\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7FD\x3\x2\x2\x2\x7F4\x7F6\a\xEF"+ "\x2\x2\x7F5\x7F4\x3\x2\x2\x2\x7F5\x7F6\x3\x2\x2\x2\x7F6\x7F7\x3\x2\x2"+ - "\x2\x7F7\x7F8\a\xBF\x2\x2\x7F8\x7F9\x5\xF4{\x2\x7F9\x7FA\a\xC6\x2\x2\x7FA"+ + "\x2\x7F7\x7F8\a\xC0\x2\x2\x7F8\x7F9\x5\xF4{\x2\x7F9\x7FA\a\xC7\x2\x2\x7FA"+ "\x7FC\x3\x2\x2\x2\x7FB\x7F5\x3\x2\x2\x2\x7FC\x7FF\x3\x2\x2\x2\x7FD\x7FB"+ "\x3\x2\x2\x2\x7FD\x7FE\x3\x2\x2\x2\x7FE\xDB\x3\x2\x2\x2\x7FF\x7FD\x3\x2"+ "\x2\x2\x800\x805\x5\xE2r\x2\x801\x805\x5\xDEp\x2\x802\x805\x5\xE0q\x2"+ "\x803\x805\x5\xE6t\x2\x804\x800\x3\x2\x2\x2\x804\x801\x3\x2\x2\x2\x804"+ "\x802\x3\x2\x2\x2\x804\x803\x3\x2\x2\x2\x805\xDD\x3\x2\x2\x2\x806\x808"+ "\x5\xF8}\x2\x807\x809\x5\x10E\x88\x2\x808\x807\x3\x2\x2\x2\x808\x809\x3"+ - "\x2\x2\x2\x809\x80E\x3\x2\x2\x2\x80A\x80C\a\xEE\x2\x2\x80B\x80A\x3\x2"+ + "\x2\x2\x2\x809\x80E\x3\x2\x2\x2\x80A\x80C\a\xEF\x2\x2\x80B\x80A\x3\x2"+ "\x2\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80D\x3\x2\x2\x2\x80D\x80F\x5\xECw\x2"+ "\x80E\x80B\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x819\x3\x2\x2\x2\x810"+ - "\x812\a\xEE\x2\x2\x811\x810\x3\x2\x2\x2\x811\x812\x3\x2\x2\x2\x812\x813"+ - "\x3\x2\x2\x2\x813\x814\a\xBF\x2\x2\x814\x815\x5\xF4{\x2\x815\x816\a\xC6"+ + "\x812\a\xEF\x2\x2\x811\x810\x3\x2\x2\x2\x811\x812\x3\x2\x2\x2\x812\x813"+ + "\x3\x2\x2\x2\x813\x814\a\xC0\x2\x2\x814\x815\x5\xF4{\x2\x815\x816\a\xC7"+ "\x2\x2\x816\x818\x3\x2\x2\x2\x817\x811\x3\x2\x2\x2\x818\x81B\x3\x2\x2"+ "\x2\x819\x817\x3\x2\x2\x2\x819\x81A\x3\x2\x2\x2\x81A\xDF\x3\x2\x2\x2\x81B"+ "\x819\x3\x2\x2\x2\x81C\x81F\x5\xF8}\x2\x81D\x81F\x5\xFC\x7F\x2\x81E\x81C"+ "\x3\x2\x2\x2\x81E\x81D\x3\x2\x2\x2\x81F\x821\x3\x2\x2\x2\x820\x822\x5"+ "\x10E\x88\x2\x821\x820\x3\x2\x2\x2\x821\x822\x3\x2\x2\x2\x822\x824\x3"+ - "\x2\x2\x2\x823\x825\a\xEE\x2\x2\x824\x823\x3\x2\x2\x2\x824\x825\x3\x2"+ - "\x2\x2\x825\x826\x3\x2\x2\x2\x826\x828\a\xBF\x2\x2\x827\x829\a\xEE\x2"+ + "\x2\x2\x2\x823\x825\a\xEF\x2\x2\x824\x823\x3\x2\x2\x2\x824\x825\x3\x2"+ + "\x2\x2\x825\x826\x3\x2\x2\x2\x826\x828\a\xC0\x2\x2\x827\x829\a\xEF\x2"+ "\x2\x828\x827\x3\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x82E\x3\x2\x2\x2"+ - "\x82A\x82C\x5\xE8u\x2\x82B\x82D\a\xEE\x2\x2\x82C\x82B\x3\x2\x2\x2\x82C"+ + "\x82A\x82C\x5\xE8u\x2\x82B\x82D\a\xEF\x2\x2\x82C\x82B\x3\x2\x2\x2\x82C"+ "\x82D\x3\x2\x2\x2\x82D\x82F\x3\x2\x2\x2\x82E\x82A\x3\x2\x2\x2\x82E\x82F"+ - "\x3\x2\x2\x2\x82F\x830\x3\x2\x2\x2\x830\x835\a\xC6\x2\x2\x831\x833\a\xEE"+ + "\x3\x2\x2\x2\x82F\x830\x3\x2\x2\x2\x830\x835\a\xC7\x2\x2\x831\x833\a\xEF"+ "\x2\x2\x832\x831\x3\x2\x2\x2\x832\x833\x3\x2\x2\x2\x833\x834\x3\x2\x2"+ "\x2\x834\x836\x5\xECw\x2\x835\x832\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836"+ - "\x840\x3\x2\x2\x2\x837\x839\a\xEE\x2\x2\x838\x837\x3\x2\x2\x2\x838\x839"+ - "\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83B\a\xBF\x2\x2\x83B\x83C\x5"+ - "\xF4{\x2\x83C\x83D\a\xC6\x2\x2\x83D\x83F\x3\x2\x2\x2\x83E\x838\x3\x2\x2"+ + "\x840\x3\x2\x2\x2\x837\x839\a\xEF\x2\x2\x838\x837\x3\x2\x2\x2\x838\x839"+ + "\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83B\a\xC0\x2\x2\x83B\x83C\x5"+ + "\xF4{\x2\x83C\x83D\a\xC7\x2\x2\x83D\x83F\x3\x2\x2\x2\x83E\x838\x3\x2\x2"+ "\x2\x83F\x842\x3\x2\x2\x2\x840\x83E\x3\x2\x2\x2\x840\x841\x3\x2\x2\x2"+ "\x841\xE1\x3\x2\x2\x2\x842\x840\x3\x2\x2\x2\x843\x846\x5\xDEp\x2\x844"+ "\x846\x5\xE0q\x2\x845\x843\x3\x2\x2\x2\x845\x844\x3\x2\x2\x2\x845\x846"+ - "\x3\x2\x2\x2\x846\x84B\x3\x2\x2\x2\x847\x849\x5\xE4s\x2\x848\x84A\a\xEE"+ + "\x3\x2\x2\x2\x846\x84B\x3\x2\x2\x2\x847\x849\x5\xE4s\x2\x848\x84A\a\xEF"+ "\x2\x2\x849\x848\x3\x2\x2\x2\x849\x84A\x3\x2\x2\x2\x84A\x84C\x3\x2\x2"+ "\x2\x84B\x847\x3\x2\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84B\x3\x2\x2\x2"+ - "\x84D\x84E\x3\x2\x2\x2\x84E\x853\x3\x2\x2\x2\x84F\x851\a\xEE\x2\x2\x850"+ + "\x84D\x84E\x3\x2\x2\x2\x84E\x853\x3\x2\x2\x2\x84F\x851\a\xEF\x2\x2\x850"+ "\x84F\x3\x2\x2\x2\x850\x851\x3\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x854"+ "\x5\xECw\x2\x853\x850\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\x85E\x3\x2"+ - "\x2\x2\x855\x857\a\xEE\x2\x2\x856\x855\x3\x2\x2\x2\x856\x857\x3\x2\x2"+ - "\x2\x857\x858\x3\x2\x2\x2\x858\x859\a\xBF\x2\x2\x859\x85A\x5\xF4{\x2\x85A"+ - "\x85B\a\xC6\x2\x2\x85B\x85D\x3\x2\x2\x2\x85C\x856\x3\x2\x2\x2\x85D\x860"+ + "\x2\x2\x855\x857\a\xEF\x2\x2\x856\x855\x3\x2\x2\x2\x856\x857\x3\x2\x2"+ + "\x2\x857\x858\x3\x2\x2\x2\x858\x859\a\xC0\x2\x2\x859\x85A\x5\xF4{\x2\x85A"+ + "\x85B\a\xC7\x2\x2\x85B\x85D\x3\x2\x2\x2\x85C\x856\x3\x2\x2\x2\x85D\x860"+ "\x3\x2\x2\x2\x85E\x85C\x3\x2\x2\x2\x85E\x85F\x3\x2\x2\x2\x85F\xE3\x3\x2"+ - "\x2\x2\x860\x85E\x3\x2\x2\x2\x861\x863\t\xF\x2\x2\x862\x864\a\xEE\x2\x2"+ + "\x2\x2\x860\x85E\x3\x2\x2\x2\x861\x863\t\xF\x2\x2\x862\x864\a\xEF\x2\x2"+ "\x863\x862\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x867\x3\x2\x2\x2\x865"+ "\x868\x5\xDEp\x2\x866\x868\x5\xE0q\x2\x867\x865\x3\x2\x2\x2\x867\x866"+ - "\x3\x2\x2\x2\x868\xE5\x3\x2\x2\x2\x869\x86B\a\xEE\x2\x2\x86A\x869\x3\x2"+ + "\x3\x2\x2\x2\x868\xE5\x3\x2\x2\x2\x869\x86B\a\xEF\x2\x2\x86A\x869\x3\x2"+ "\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86C\x3\x2\x2\x2\x86C\x86D\x5\xECw\x2"+ "\x86D\xE7\x3\x2\x2\x2\x86E\x870\x5\xEAv\x2\x86F\x86E\x3\x2\x2\x2\x86F"+ - "\x870\x3\x2\x2\x2\x870\x872\x3\x2\x2\x2\x871\x873\a\xEE\x2\x2\x872\x871"+ + "\x870\x3\x2\x2\x2\x870\x872\x3\x2\x2\x2\x871\x873\a\xEF\x2\x2\x872\x871"+ "\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2\x873\x874\x3\x2\x2\x2\x874\x876\t\n"+ - "\x2\x2\x875\x877\a\xEE\x2\x2\x876\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2"+ + "\x2\x2\x875\x877\a\xEF\x2\x2\x876\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2"+ "\x2\x877\x879\x3\x2\x2\x2\x878\x86F\x3\x2\x2\x2\x879\x87C\x3\x2\x2\x2"+ "\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87D\x3\x2\x2\x2\x87C"+ - "\x87A\x3\x2\x2\x2\x87D\x88A\x5\xEAv\x2\x87E\x880\a\xEE\x2\x2\x87F\x87E"+ + "\x87A\x3\x2\x2\x2\x87D\x88A\x5\xEAv\x2\x87E\x880\a\xEF\x2\x2\x87F\x87E"+ "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2\x881\x883\t\n"+ - "\x2\x2\x882\x884\a\xEE\x2\x2\x883\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2"+ + "\x2\x2\x882\x884\a\xEF\x2\x2\x883\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2"+ "\x2\x884\x886\x3\x2\x2\x2\x885\x887\x5\xEAv\x2\x886\x885\x3\x2\x2\x2\x886"+ "\x887\x3\x2\x2\x2\x887\x889\x3\x2\x2\x2\x888\x87F\x3\x2\x2\x2\x889\x88C"+ "\x3\x2\x2\x2\x88A\x888\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\xE9\x3\x2"+ - "\x2\x2\x88C\x88A\x3\x2\x2\x2\x88D\x88F\a\xBF\x2\x2\x88E\x88D\x3\x2\x2"+ + "\x2\x2\x88C\x88A\x3\x2\x2\x2\x88D\x88F\a\xC0\x2\x2\x88E\x88D\x3\x2\x2"+ "\x2\x88E\x88F\x3\x2\x2\x2\x88F\x892\x3\x2\x2\x2\x890\x891\t\x10\x2\x2"+ - "\x891\x893\a\xEE\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893"+ - "\x895\x3\x2\x2\x2\x894\x896\a\xC6\x2\x2\x895\x894\x3\x2\x2\x2\x895\x896"+ + "\x891\x893\a\xEF\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893"+ + "\x895\x3\x2\x2\x2\x894\x896\a\xC7\x2\x2\x895\x894\x3\x2\x2\x2\x895\x896"+ "\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\x898\x5\xBE`\x2\x898\xEB\x3\x2"+ - "\x2\x2\x899\x89B\a\x4\x2\x2\x89A\x89C\a\xEE\x2\x2\x89B\x89A\x3\x2\x2\x2"+ + "\x2\x2\x899\x89B\a\x4\x2\x2\x89A\x89C\a\xEF\x2\x2\x89B\x89A\x3\x2\x2\x2"+ "\x89B\x89C\x3\x2\x2\x2\x89C\x89D\x3\x2\x2\x2\x89D\x89F\x5\xF8}\x2\x89E"+ "\x8A0\x5\x10E\x88\x2\x89F\x89E\x3\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0"+ - "\xED\x3\x2\x2\x2\x8A1\x8B3\a\xBF\x2\x2\x8A2\x8A4\a\xEE\x2\x2\x8A3\x8A2"+ + "\xED\x3\x2\x2\x2\x8A1\x8B3\a\xC0\x2\x2\x8A2\x8A4\a\xEF\x2\x2\x8A3\x8A2"+ "\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8B0\x5"+ - "\xF0y\x2\x8A6\x8A8\a\xEE\x2\x2\x8A7\x8A6\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2"+ - "\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AB\a\t\x2\x2\x8AA\x8AC\a\xEE\x2\x2\x8AB"+ + "\xF0y\x2\x8A6\x8A8\a\xEF\x2\x2\x8A7\x8A6\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2"+ + "\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AB\a\t\x2\x2\x8AA\x8AC\a\xEF\x2\x2\x8AB"+ "\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AF"+ "\x5\xF0y\x2\x8AE\x8A7\x3\x2\x2\x2\x8AF\x8B2\x3\x2\x2\x2\x8B0\x8AE\x3\x2"+ "\x2\x2\x8B0\x8B1\x3\x2\x2\x2\x8B1\x8B4\x3\x2\x2\x2\x8B2\x8B0\x3\x2\x2"+ "\x2\x8B3\x8A3\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B6\x3\x2\x2\x2"+ - "\x8B5\x8B7\a\xEE\x2\x2\x8B6\x8B5\x3\x2\x2\x2\x8B6\x8B7\x3\x2\x2\x2\x8B7"+ - "\x8B8\x3\x2\x2\x2\x8B8\x8B9\a\xC6\x2\x2\x8B9\xEF\x3\x2\x2\x2\x8BA\x8BB"+ - "\aw\x2\x2\x8BB\x8BD\a\xEE\x2\x2\x8BC\x8BA\x3\x2\x2\x2\x8BC\x8BD\x3\x2"+ - "\x2\x2\x8BD\x8C0\x3\x2\x2\x2\x8BE\x8BF\t\x11\x2\x2\x8BF\x8C1\a\xEE\x2"+ + "\x8B5\x8B7\a\xEF\x2\x2\x8B6\x8B5\x3\x2\x2\x2\x8B6\x8B7\x3\x2\x2\x2\x8B7"+ + "\x8B8\x3\x2\x2\x2\x8B8\x8B9\a\xC7\x2\x2\x8B9\xEF\x3\x2\x2\x2\x8BA\x8BB"+ + "\ax\x2\x2\x8BB\x8BD\a\xEF\x2\x2\x8BC\x8BA\x3\x2\x2\x2\x8BC\x8BD\x3\x2"+ + "\x2\x2\x8BD\x8C0\x3\x2\x2\x2\x8BE\x8BF\t\x11\x2\x2\x8BF\x8C1\a\xEF\x2"+ "\x2\x8C0\x8BE\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C4\x3\x2\x2\x2"+ - "\x8C2\x8C3\a~\x2\x2\x8C3\x8C5\a\xEE\x2\x2\x8C4\x8C2\x3\x2\x2\x2\x8C4\x8C5"+ - "\x3\x2\x2\x2\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C8\x5\xF8}\x2\x8C7\x8C9\x5\x10E"+ - "\x88\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9\x8D2\x3\x2\x2"+ - "\x2\x8CA\x8CC\a\xEE\x2\x2\x8CB\x8CA\x3\x2\x2\x2\x8CB\x8CC\x3\x2\x2\x2"+ - "\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\a\xBF\x2\x2\x8CE\x8D0\a\xEE\x2\x2\x8CF"+ - "\x8CE\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2\x2\x8D1\x8D3"+ - "\a\xC6\x2\x2\x8D2\x8CB\x3\x2\x2\x2\x8D2\x8D3\x3\x2\x2\x2\x8D3\x8D8\x3"+ - "\x2\x2\x2\x8D4\x8D6\a\xEE\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D5\x8D6\x3\x2"+ - "\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7\x8D9\x5\xFA~\x2\x8D8\x8D5\x3\x2\x2\x2"+ - "\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8DE\x3\x2\x2\x2\x8DA\x8DC\a\xEE\x2\x2\x8DB"+ - "\x8DA\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DD\x3\x2\x2\x2\x8DD\x8DF"+ - "\x5\xF2z\x2\x8DE\x8DB\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF\xF1\x3\x2"+ - "\x2\x2\x8E0\x8E2\a\xBB\x2\x2\x8E1\x8E3\a\xEE\x2\x2\x8E2\x8E1\x3\x2\x2"+ - "\x2\x8E2\x8E3\x3\x2\x2\x2\x8E3\x8E4\x3\x2\x2\x2\x8E4\x8E5\x5\xBE`\x2\x8E5"+ - "\xF3\x3\x2\x2\x2\x8E6\x8F1\x5\xF6|\x2\x8E7\x8E9\a\xEE\x2\x2\x8E8\x8E7"+ - "\x3\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8EC\a\t"+ - "\x2\x2\x8EB\x8ED\a\xEE\x2\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2"+ - "\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\x8F0\x5\xF6|\x2\x8EF\x8E8\x3\x2\x2\x2\x8F0"+ - "\x8F3\x3\x2\x2\x2\x8F1\x8EF\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\xF5"+ - "\x3\x2\x2\x2\x8F3\x8F1\x3\x2\x2\x2\x8F4\x8F5\x5\xBE`\x2\x8F5\x8F6\a\xEE"+ - "\x2\x2\x8F6\x8F7\a\xA7\x2\x2\x8F7\x8F8\a\xEE\x2\x2\x8F8\x8FA\x3\x2\x2"+ - "\x2\x8F9\x8F4\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2"+ - "\x8FB\x8FC\x5\xBE`\x2\x8FC\xF7\x3\x2\x2\x2\x8FD\x900\a\xEF\x2\x2\x8FE"+ - "\x900\x5\x112\x8A\x2\x8FF\x8FD\x3\x2\x2\x2\x8FF\x8FE\x3\x2\x2\x2\x900"+ - "\x901\x3\x2\x2\x2\x901\x8FF\x3\x2\x2\x2\x901\x902\x3\x2\x2\x2\x902\xF9"+ - "\x3\x2\x2\x2\x903\x905\a\x12\x2\x2\x904\x906\a\xEE\x2\x2\x905\x904\x3"+ - "\x2\x2\x2\x905\x906\x3\x2\x2\x2\x906\x909\x3\x2\x2\x2\x907\x908\ao\x2"+ - "\x2\x908\x90A\a\xEE\x2\x2\x909\x907\x3\x2\x2\x2\x909\x90A\x3\x2\x2\x2"+ - "\x90A\x90B\x3\x2\x2\x2\x90B\x910\x5\x10C\x87\x2\x90C\x90E\a\xEE\x2\x2"+ - "\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F"+ - "\x911\x5\x104\x83\x2\x910\x90D\x3\x2\x2\x2\x910\x911\x3\x2\x2\x2\x911"+ - "\xFB\x3\x2\x2\x2\x912\x913\t\x12\x2\x2\x913\xFD\x3\x2\x2\x2\x914\x919"+ - "\a\xEF\x2\x2\x915\x918\x5\x112\x8A\x2\x916\x918\a\xEF\x2\x2\x917\x915"+ - "\x3\x2\x2\x2\x917\x916\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2\x919\x917\x3"+ - "\x2\x2\x2\x919\x91A\x3\x2\x2\x2\x91A\x924\x3\x2\x2\x2\x91B\x919\x3\x2"+ - "\x2\x2\x91C\x91F\x5\x112\x8A\x2\x91D\x920\x5\x112\x8A\x2\x91E\x920\a\xEF"+ - "\x2\x2\x91F\x91D\x3\x2\x2\x2\x91F\x91E\x3\x2\x2\x2\x920\x921\x3\x2\x2"+ - "\x2\x921\x91F\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x924\x3\x2\x2\x2"+ - "\x923\x914\x3\x2\x2\x2\x923\x91C\x3\x2\x2\x2\x924\xFF\x3\x2\x2\x2\x925"+ - "\x926\t\xE\x2\x2\x926\x101\x3\x2\x2\x2\x927\x92C\x5\xF8}\x2\x928\x929"+ - "\t\xF\x2\x2\x929\x92B\x5\xF8}\x2\x92A\x928\x3\x2\x2\x2\x92B\x92E\x3\x2"+ - "\x2\x2\x92C\x92A\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2\x92D\x103\x3\x2\x2"+ - "\x2\x92E\x92C\x3\x2\x2\x2\x92F\x931\a\xC2\x2\x2\x930\x932\a\xEE\x2\x2"+ - "\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x935\x3\x2\x2\x2\x933"+ - "\x936\a\xCD\x2\x2\x934\x936\x5\xF8}\x2\x935\x933\x3\x2\x2\x2\x935\x934"+ - "\x3\x2\x2\x2\x936\x105\x3\x2\x2\x2\x937\x940\x5\xFE\x80\x2\x938\x93A\a"+ - "\xEE\x2\x2\x939\x938\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x3\x2"+ - "\x2\x2\x93B\x93D\a\xC1\x2\x2\x93C\x93E\a\xEE\x2\x2\x93D\x93C\x3\x2\x2"+ - "\x2\x93D\x93E\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x941\x5\xFE\x80\x2"+ - "\x940\x939\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941\x107\x3\x2\x2\x2\x942"+ - "\x943\x5\xF8}\x2\x943\x944\a\xEC\x2\x2\x944\x109\x3\x2\x2\x2\x945\x946"+ - "\t\x13\x2\x2\x946\x10B\x3\x2\x2\x2\x947\x94A\x5\xFC\x7F\x2\x948\x94A\x5"+ - "\x102\x82\x2\x949\x947\x3\x2\x2\x2\x949\x948\x3\x2\x2\x2\x94A\x953\x3"+ - "\x2\x2\x2\x94B\x94D\a\xEE\x2\x2\x94C\x94B\x3\x2\x2\x2\x94C\x94D\x3\x2"+ - "\x2\x2\x94D\x94E\x3\x2\x2\x2\x94E\x950\a\xBF\x2\x2\x94F\x951\a\xEE\x2"+ - "\x2\x950\x94F\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x3\x2\x2\x2"+ - "\x952\x954\a\xC6\x2\x2\x953\x94C\x3\x2\x2\x2\x953\x954\x3\x2\x2\x2\x954"+ - "\x10D\x3\x2\x2\x2\x955\x956\t\x14\x2\x2\x956\x10F\x3\x2\x2\x2\x957\x958"+ - "\t\x15\x2\x2\x958\x111\x3\x2\x2\x2\x959\x95A\t\x16\x2\x2\x95A\x113\x3"+ - "\x2\x2\x2\x95B\x95C\a\xE9\x2\x2\x95C\x115\x3\x2\x2\x2\x95D\x95E\a\xEA"+ - "\x2\x2\x95E\x117\x3\x2\x2\x2\x95F\x961\a\xEE\x2\x2\x960\x95F\x3\x2\x2"+ - "\x2\x960\x961\x3\x2\x2\x2\x961\x965\x3\x2\x2\x2\x962\x966\a\xE8\x2\x2"+ + "\x8C2\x8C3\a\x7F\x2\x2\x8C3\x8C5\a\xEF\x2\x2\x8C4\x8C2\x3\x2\x2\x2\x8C4"+ + "\x8C5\x3\x2\x2\x2\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C8\x5\xF8}\x2\x8C7\x8C9"+ + "\x5\x10E\x88\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9\x8D2"+ + "\x3\x2\x2\x2\x8CA\x8CC\a\xEF\x2\x2\x8CB\x8CA\x3\x2\x2\x2\x8CB\x8CC\x3"+ + "\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\a\xC0\x2\x2\x8CE\x8D0\a\xEF"+ + "\x2\x2\x8CF\x8CE\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2"+ + "\x2\x8D1\x8D3\a\xC7\x2\x2\x8D2\x8CB\x3\x2\x2\x2\x8D2\x8D3\x3\x2\x2\x2"+ + "\x8D3\x8D8\x3\x2\x2\x2\x8D4\x8D6\a\xEF\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D5"+ + "\x8D6\x3\x2\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7\x8D9\x5\xFA~\x2\x8D8\x8D5"+ + "\x3\x2\x2\x2\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8DE\x3\x2\x2\x2\x8DA\x8DC\a\xEF"+ + "\x2\x2\x8DB\x8DA\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DD\x3\x2\x2"+ + "\x2\x8DD\x8DF\x5\xF2z\x2\x8DE\x8DB\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF"+ + "\xF1\x3\x2\x2\x2\x8E0\x8E2\a\xBC\x2\x2\x8E1\x8E3\a\xEF\x2\x2\x8E2\x8E1"+ + "\x3\x2\x2\x2\x8E2\x8E3\x3\x2\x2\x2\x8E3\x8E4\x3\x2\x2\x2\x8E4\x8E5\x5"+ + "\xBE`\x2\x8E5\xF3\x3\x2\x2\x2\x8E6\x8F1\x5\xF6|\x2\x8E7\x8E9\a\xEF\x2"+ + "\x2\x8E8\x8E7\x3\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2"+ + "\x8EA\x8EC\a\t\x2\x2\x8EB\x8ED\a\xEF\x2\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC"+ + "\x8ED\x3\x2\x2\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\x8F0\x5\xF6|\x2\x8EF\x8E8"+ + "\x3\x2\x2\x2\x8F0\x8F3\x3\x2\x2\x2\x8F1\x8EF\x3\x2\x2\x2\x8F1\x8F2\x3"+ + "\x2\x2\x2\x8F2\xF5\x3\x2\x2\x2\x8F3\x8F1\x3\x2\x2\x2\x8F4\x8F5\x5\xBE"+ + "`\x2\x8F5\x8F6\a\xEF\x2\x2\x8F6\x8F7\a\xA8\x2\x2\x8F7\x8F8\a\xEF\x2\x2"+ + "\x8F8\x8FA\x3\x2\x2\x2\x8F9\x8F4\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA"+ + "\x8FB\x3\x2\x2\x2\x8FB\x8FC\x5\xBE`\x2\x8FC\xF7\x3\x2\x2\x2\x8FD\x900"+ + "\a\xF0\x2\x2\x8FE\x900\x5\x112\x8A\x2\x8FF\x8FD\x3\x2\x2\x2\x8FF\x8FE"+ + "\x3\x2\x2\x2\x900\x901\x3\x2\x2\x2\x901\x8FF\x3\x2\x2\x2\x901\x902\x3"+ + "\x2\x2\x2\x902\xF9\x3\x2\x2\x2\x903\x905\a\x12\x2\x2\x904\x906\a\xEF\x2"+ + "\x2\x905\x904\x3\x2\x2\x2\x905\x906\x3\x2\x2\x2\x906\x909\x3\x2\x2\x2"+ + "\x907\x908\ap\x2\x2\x908\x90A\a\xEF\x2\x2\x909\x907\x3\x2\x2\x2\x909\x90A"+ + "\x3\x2\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x910\x5\x10C\x87\x2\x90C\x90E"+ + "\a\xEF\x2\x2\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3"+ + "\x2\x2\x2\x90F\x911\x5\x104\x83\x2\x910\x90D\x3\x2\x2\x2\x910\x911\x3"+ + "\x2\x2\x2\x911\xFB\x3\x2\x2\x2\x912\x913\t\x12\x2\x2\x913\xFD\x3\x2\x2"+ + "\x2\x914\x919\a\xF0\x2\x2\x915\x918\x5\x112\x8A\x2\x916\x918\a\xF0\x2"+ + "\x2\x917\x915\x3\x2\x2\x2\x917\x916\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2"+ + "\x919\x917\x3\x2\x2\x2\x919\x91A\x3\x2\x2\x2\x91A\x924\x3\x2\x2\x2\x91B"+ + "\x919\x3\x2\x2\x2\x91C\x91F\x5\x112\x8A\x2\x91D\x920\x5\x112\x8A\x2\x91E"+ + "\x920\a\xF0\x2\x2\x91F\x91D\x3\x2\x2\x2\x91F\x91E\x3\x2\x2\x2\x920\x921"+ + "\x3\x2\x2\x2\x921\x91F\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x924\x3"+ + "\x2\x2\x2\x923\x914\x3\x2\x2\x2\x923\x91C\x3\x2\x2\x2\x924\xFF\x3\x2\x2"+ + "\x2\x925\x926\t\xE\x2\x2\x926\x101\x3\x2\x2\x2\x927\x92C\x5\xF8}\x2\x928"+ + "\x929\t\xF\x2\x2\x929\x92B\x5\xF8}\x2\x92A\x928\x3\x2\x2\x2\x92B\x92E"+ + "\x3\x2\x2\x2\x92C\x92A\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2\x92D\x103\x3"+ + "\x2\x2\x2\x92E\x92C\x3\x2\x2\x2\x92F\x931\a\xC3\x2\x2\x930\x932\a\xEF"+ + "\x2\x2\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x935\x3\x2\x2"+ + "\x2\x933\x936\a\xCE\x2\x2\x934\x936\x5\xF8}\x2\x935\x933\x3\x2\x2\x2\x935"+ + "\x934\x3\x2\x2\x2\x936\x105\x3\x2\x2\x2\x937\x940\x5\xFE\x80\x2\x938\x93A"+ + "\a\xEF\x2\x2\x939\x938\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x3"+ + "\x2\x2\x2\x93B\x93D\a\xC2\x2\x2\x93C\x93E\a\xEF\x2\x2\x93D\x93C\x3\x2"+ + "\x2\x2\x93D\x93E\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x941\x5\xFE\x80"+ + "\x2\x940\x939\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941\x107\x3\x2\x2\x2"+ + "\x942\x943\x5\xF8}\x2\x943\x944\a\xED\x2\x2\x944\x109\x3\x2\x2\x2\x945"+ + "\x946\t\x13\x2\x2\x946\x10B\x3\x2\x2\x2\x947\x94A\x5\xFC\x7F\x2\x948\x94A"+ + "\x5\x102\x82\x2\x949\x947\x3\x2\x2\x2\x949\x948\x3\x2\x2\x2\x94A\x953"+ + "\x3\x2\x2\x2\x94B\x94D\a\xEF\x2\x2\x94C\x94B\x3\x2\x2\x2\x94C\x94D\x3"+ + "\x2\x2\x2\x94D\x94E\x3\x2\x2\x2\x94E\x950\a\xC0\x2\x2\x94F\x951\a\xEF"+ + "\x2\x2\x950\x94F\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x3\x2\x2"+ + "\x2\x952\x954\a\xC7\x2\x2\x953\x94C\x3\x2\x2\x2\x953\x954\x3\x2\x2\x2"+ + "\x954\x10D\x3\x2\x2\x2\x955\x956\t\x14\x2\x2\x956\x10F\x3\x2\x2\x2\x957"+ + "\x958\t\x15\x2\x2\x958\x111\x3\x2\x2\x2\x959\x95A\t\x16\x2\x2\x95A\x113"+ + "\x3\x2\x2\x2\x95B\x95C\a\xEA\x2\x2\x95C\x115\x3\x2\x2\x2\x95D\x95E\a\xEB"+ + "\x2\x2\x95E\x117\x3\x2\x2\x2\x95F\x961\a\xEF\x2\x2\x960\x95F\x3\x2\x2"+ + "\x2\x960\x961\x3\x2\x2\x2\x961\x965\x3\x2\x2\x2\x962\x966\a\xE9\x2\x2"+ "\x963\x966\x5\x116\x8C\x2\x964\x966\x5\x114\x8B\x2\x965\x962\x3\x2\x2"+ "\x2\x965\x963\x3\x2\x2\x2\x965\x964\x3\x2\x2\x2\x966\x968\x3\x2\x2\x2"+ - "\x967\x969\a\xEE\x2\x2\x968\x967\x3\x2\x2\x2\x968\x969\x3\x2\x2\x2\x969"+ - "\x119\x3\x2\x2\x2\x96A\x973\x5\x118\x8D\x2\x96B\x96D\a\xEE\x2\x2\x96C"+ + "\x967\x969\a\xEF\x2\x2\x968\x967\x3\x2\x2\x2\x968\x969\x3\x2\x2\x2\x969"+ + "\x119\x3\x2\x2\x2\x96A\x973\x5\x118\x8D\x2\x96B\x96D\a\xEF\x2\x2\x96C"+ "\x96B\x3\x2\x2\x2\x96C\x96D\x3\x2\x2\x2\x96D\x96E\x3\x2\x2\x2\x96E\x970"+ - "\a\xEC\x2\x2\x96F\x971\a\xEE\x2\x2\x970\x96F\x3\x2\x2\x2\x970\x971\x3"+ + "\a\xED\x2\x2\x96F\x971\a\xEF\x2\x2\x970\x96F\x3\x2\x2\x2\x970\x971\x3"+ "\x2\x2\x2\x971\x973\x3\x2\x2\x2\x972\x96A\x3\x2\x2\x2\x972\x96C\x3\x2"+ "\x2\x2\x973\x976\x3\x2\x2\x2\x974\x972\x3\x2\x2\x2\x974\x975\x3\x2\x2"+ "\x2\x975\x11B\x3\x2\x2\x2\x976\x974\x3\x2\x2\x2\x19B\x120\x126\x129\x12D"+ From e8f6b041c28819edac4adde1e0e081140967da8c Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Wed, 2 Mar 2016 22:06:31 +0100 Subject: [PATCH 09/17] add different locale parsing test --- .../VBAPreprocessorVisitorTests.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index dda0542575..14e9907fa8 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -3,12 +3,27 @@ using Rubberduck.Parsing.Preprocessing; using Rubberduck.Parsing.Symbols; using System; +using System.Globalization; namespace RubberduckTests.Preprocessing { [TestClass] public class VBAPreprocessorVisitorTests { + private CultureInfo _cultureInfo; + + [TestInitialize] + public void TestInitialize() + { + _cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture; + } + + [TestCleanup] + public void TestCleanup() + { + System.Threading.Thread.CurrentThread.CurrentCulture = _cultureInfo; + } + [TestMethod] public void TestName() { @@ -1066,6 +1081,17 @@ public void TestOperatorPrecedence() Assert.AreEqual(7m, result.Item1.Get("a")); } + [TestMethod] + public void TestLocale() + { + string code = @" +#Const a = CDate(""3/2/2016"") +"; + System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); + var result = Preprocess(code); + Assert.AreEqual(new DateTime(2016, 3, 2), result.Item1.Get("a")); + } + [TestMethod] public void TestPreprocessingLiveDeadCode() { From 3641b0b65bb54f9b6d863c749a231f3eeeb48b9c Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Fri, 4 Mar 2016 13:06:02 +0100 Subject: [PATCH 10/17] move to expression ast for easier maintenance Each IExpression represents a cc-expression. An expression produces an IValue. Each IValue knows how to let coerce itself to the target type. --- .../AbsLibraryFunctionExpression.cs | 40 + .../Preprocessing/BinaryDivisionExpression.cs | 27 + .../Preprocessing/BinaryIntDivExpression.cs | 29 + .../Preprocessing/BinaryMinusExpression.cs | 53 + .../BinaryMultiplicationExpression.cs | 29 + .../Preprocessing/BinaryPlusExpression.cs | 48 + .../Preprocessing/BoolLetCoercion.cs | 50 - Rubberduck.Parsing/Preprocessing/BoolValue.cs | 85 ++ .../Preprocessing/ByteLetCoercion.cs | 32 - Rubberduck.Parsing/Preprocessing/ByteValue.cs | 67 + .../CBoolLibraryFunctionExpression.cs | 22 + .../CByteLibraryFunctionExpression.cs | 22 + .../CCurLibraryFunctionExpression.cs | 22 + .../CDateLibraryFunctionExpression.cs | 22 + .../CDblLibraryFunctionExpression.cs | 17 + .../CIntLibraryFunctionExpression.cs | 17 + .../CLngLibraryFunctionExpression.cs | 17 + .../CLngLngLibraryFunctionExpression.cs | 17 + .../CLngPtrLibraryFunctionExpression.cs | 17 + .../CSngLibraryFunctionExpression.cs | 17 + .../CStrLibraryFunctionExpression.cs | 22 + .../CVarLibraryFunctionExpression.cs | 22 + .../Preprocessing/ConcatExpression.cs | 35 + .../ConditionalCompilationBlockExpression.cs | 20 + ...onditionalCompilationConstantExpression.cs | 33 + .../ConditionalCompilationIfExpression.cs | 92 ++ .../Preprocessing/ConstantExpression.cs | 17 + .../Preprocessing/DateLetCoercion.cs | 37 - .../Preprocessing/DateLiteralExpression.cs | 273 ++++ Rubberduck.Parsing/Preprocessing/DateValue.cs | 71 + .../Preprocessing/DecimalLetCoercion.cs | 32 - .../Preprocessing/DecimalValue.cs | 67 + .../Preprocessing/EmptyLetCoercion.cs | 35 - .../Preprocessing/EmptyValue.cs | 62 + .../Preprocessing/Expression.cs | 17 + .../FixLibraryFunctionExpression.cs | 17 + .../HexNumberLiteralExpression.cs | 22 + .../Preprocessing/IExpression.cs | 8 + .../Preprocessing/ILetCoercion.cs | 13 - Rubberduck.Parsing/Preprocessing/IValue.cs | 14 + .../IntLibraryFunctionExpression.cs | 40 + .../Preprocessing/IsExpression.cs | 21 + .../LenBLibraryFunctionExpression.cs | 28 + .../LenLibraryFunctionExpression.cs | 22 + .../Preprocessing/LikeExpression.cs | 74 + .../Preprocessing/LivelinessExpression.cs | 59 + .../Preprocessing/LogicalAndExpression.cs | 46 + .../Preprocessing/LogicalEqualsExpression.cs | 44 + .../Preprocessing/LogicalEqvExpression.cs | 38 + .../LogicalGreaterOrEqualsExpression.cs | 24 + .../LogicalGreaterThanExpression.cs | 25 + .../Preprocessing/LogicalImpExpression.cs | 55 + .../LogicalLessOrEqualsExpression.cs | 25 + .../LogicalLessThanExpression.cs | 44 + .../LogicalNotEqualsExpression.cs | 24 + .../Preprocessing/LogicalOrExpression.cs | 46 + .../Preprocessing/LogicalXorExpression.cs | 38 + .../Preprocessing/ModExpression.cs | 29 + .../Preprocessing/NameExpression.cs | 29 + .../Preprocessing/NumberLiteralExpression.cs | 21 + .../OctNumberLiteralExpression.cs | 22 + .../Preprocessing/PowExpression.cs | 29 + .../SgnLibraryFunctionExpression.cs | 24 + .../Preprocessing/StringLetCoercion.cs | 56 - .../Preprocessing/StringLiteralExpression.cs | 20 + .../Preprocessing/StringValue.cs | 91 ++ .../Preprocessing/SymbolTable.cs | 17 +- .../Preprocessing/UnaryMinusExpression.cs | 43 + .../Preprocessing/UnaryNotExpression.cs | 32 + .../Preprocessing/VBAEmptyValue.cs | 11 - .../Preprocessing/VBAEnvironment.cs | 40 + .../Preprocessing/VBAExpressionEvaluator.cs | 1227 ----------------- .../Preprocessing/VBAPreprocessor.cs | 6 +- .../Preprocessing/VBAPreprocessorVisitor.cs | 471 +++++-- Rubberduck.Parsing/Preprocessing/ValueType.cs | 12 + Rubberduck.Parsing/Rubberduck.Parsing.csproj | 72 +- .../VBAPreprocessorVisitorTests.cs | 571 ++++---- 77 files changed, 3160 insertions(+), 1875 deletions(-) create mode 100644 Rubberduck.Parsing/Preprocessing/AbsLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/BinaryDivisionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/BinaryIntDivExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/BinaryMinusExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/BinaryMultiplicationExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/BoolValue.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ByteValue.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CBoolLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CByteLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CCurLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CDateLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CDblLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CIntLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CLngLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CLngLngLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CLngPtrLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CSngLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CStrLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/CVarLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ConcatExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ConditionalCompilationBlockExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ConditionalCompilationConstantExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ConstantExpression.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/DateValue.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/DecimalValue.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/EmptyValue.cs create mode 100644 Rubberduck.Parsing/Preprocessing/Expression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/FixLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/IExpression.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/ILetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/IValue.cs create mode 100644 Rubberduck.Parsing/Preprocessing/IntLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/IsExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LenBLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LenLibraryFunctionExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LikeExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LivelinessExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalAndExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalEqvExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalImpExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalOrExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/LogicalXorExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ModExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/NameExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/PowExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/SgnLibraryFunctionExpression.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs create mode 100644 Rubberduck.Parsing/Preprocessing/StringLiteralExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/StringValue.cs create mode 100644 Rubberduck.Parsing/Preprocessing/UnaryMinusExpression.cs create mode 100644 Rubberduck.Parsing/Preprocessing/UnaryNotExpression.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAEnvironment.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs create mode 100644 Rubberduck.Parsing/Preprocessing/ValueType.cs diff --git a/Rubberduck.Parsing/Preprocessing/AbsLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/AbsLibraryFunctionExpression.cs new file mode 100644 index 0000000000..b2bbe1d05e --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/AbsLibraryFunctionExpression.cs @@ -0,0 +1,40 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class AbsLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public AbsLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + if (expr.ValueType == ValueType.Date) + { + decimal exprValue = expr.AsDecimal; + exprValue = Math.Abs(exprValue); + try + { + return new DateValue(new DecimalValue(exprValue).AsDate); + } + catch + { + return new DecimalValue(exprValue); + } + } + else + { + return new DecimalValue(Math.Abs(expr.AsDecimal)); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/BinaryDivisionExpression.cs b/Rubberduck.Parsing/Preprocessing/BinaryDivisionExpression.cs new file mode 100644 index 0000000000..17661fc947 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/BinaryDivisionExpression.cs @@ -0,0 +1,27 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class BinaryDivisionExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public BinaryDivisionExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + var leftValue = left.AsDecimal; + var rightValue = right.AsDecimal; + return new DecimalValue(leftValue / rightValue); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/BinaryIntDivExpression.cs b/Rubberduck.Parsing/Preprocessing/BinaryIntDivExpression.cs new file mode 100644 index 0000000000..38c479c79c --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/BinaryIntDivExpression.cs @@ -0,0 +1,29 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class BinaryIntDivExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public BinaryIntDivExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + var leftValue = Convert.ToInt64(left.AsDecimal); + var rightValue = Convert.ToInt64(right.AsDecimal); + return new DecimalValue(Math.Truncate((decimal)leftValue / rightValue)); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/BinaryMinusExpression.cs b/Rubberduck.Parsing/Preprocessing/BinaryMinusExpression.cs new file mode 100644 index 0000000000..b51adafe7b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/BinaryMinusExpression.cs @@ -0,0 +1,53 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class BinaryMinusExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public BinaryMinusExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + else if (left.ValueType == ValueType.Date && right.ValueType == ValueType.Date) + { + // 5.6.9.3.3 - Effective value type exception. + // If left + right are both Date then effective value type is double. + decimal leftValue = left.AsDecimal; + decimal rightValue = right.AsDecimal; + decimal difference = leftValue - rightValue; + return new DecimalValue(difference); + } + else if (left.ValueType == ValueType.Date || right.ValueType == ValueType.Date) + { + decimal leftValue = left.AsDecimal; + decimal rightValue = right.AsDecimal; + decimal difference = leftValue - rightValue; + try + { + return new DateValue(new DecimalValue(difference).AsDate); + } + catch + { + return new DecimalValue(difference); + } + } + else + { + decimal leftValue = left.AsDecimal; + decimal rightValue = right.AsDecimal; + return new DecimalValue(leftValue - rightValue); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/BinaryMultiplicationExpression.cs b/Rubberduck.Parsing/Preprocessing/BinaryMultiplicationExpression.cs new file mode 100644 index 0000000000..6cace95c8d --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/BinaryMultiplicationExpression.cs @@ -0,0 +1,29 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class BinaryMultiplicationExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public BinaryMultiplicationExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + var leftValue = left.AsDecimal; + var rightValue = right.AsDecimal; + return new DecimalValue(leftValue * rightValue); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs b/Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs new file mode 100644 index 0000000000..f9b9a8ef23 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs @@ -0,0 +1,48 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class BinaryPlusExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public BinaryPlusExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + if (left.ValueType == ValueType.String) + { + return new StringValue(left.AsString+ right.AsString); + } + else if (left.ValueType == ValueType.Date || right.ValueType == ValueType.Date) + { + decimal leftValue = left.AsDecimal; + decimal rightValue = right.AsDecimal; + decimal sum = leftValue + rightValue; + try + { + return new DateValue(new DecimalValue(sum).AsDate); + } + catch + { + return new DecimalValue(sum); + } + } + else + { + var leftNumber = left.AsDecimal; + var rightNumber = right.AsDecimal; + return new DecimalValue(leftNumber + rightNumber); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs deleted file mode 100644 index c547e46c60..0000000000 --- a/Rubberduck.Parsing/Preprocessing/BoolLetCoercion.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; - -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class BoolLetCoercion : ILetCoercion - { - public bool ToBool(object value) - { - return (bool)value; - } - - public byte ToByte(object value) - { - if ((bool)value) - { - return 255; - } - return 0; - } - - public DateTime ToDate(object value) - { - return new DecimalLetCoercion().ToDate(ToDecimal(value)); - } - - public decimal ToDecimal(object value) - { - if ((bool)value) - { - return -1; - } - else - { - return 0; - } - } - - public string ToString(object value) - { - if ((bool)value) - { - return "True"; - } - else - { - return "False"; - } - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/BoolValue.cs b/Rubberduck.Parsing/Preprocessing/BoolValue.cs new file mode 100644 index 0000000000..10f0e651a1 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/BoolValue.cs @@ -0,0 +1,85 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class BoolValue : IValue + { + private readonly bool _value; + + public BoolValue(bool value) + { + _value = value; + } + + public ValueType ValueType + { + get + { + return ValueType.Bool; + } + } + + public bool AsBool + { + get + { + return _value; + } + } + + public byte AsByte + { + get + { + if (_value) + { + return 255; + } + return 0; + } + } + + public DateTime AsDate + { + get + { + return new DecimalValue(AsDecimal).AsDate; + } + } + + public decimal AsDecimal + { + get + { + if (_value) + { + return -1; + } + else + { + return 0; + } + } + } + + public string AsString + { + get + { + if (_value) + { + return "True"; + } + else + { + return "False"; + } + } + } + + public override string ToString() + { + return _value.ToString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs deleted file mode 100644 index aa1ce885ee..0000000000 --- a/Rubberduck.Parsing/Preprocessing/ByteLetCoercion.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; - -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class ByteLetCoercion : ILetCoercion - { - public bool ToBool(object value) - { - return (byte)value != 0; - } - - public byte ToByte(object value) - { - return (byte)value; - } - - public DateTime ToDate(object value) - { - return DateTime.FromOADate(Convert.ToDouble(value)); - } - - public decimal ToDecimal(object value) - { - return Convert.ToDecimal((byte)value); - } - - public string ToString(object value) - { - return value.ToString(); - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/ByteValue.cs b/Rubberduck.Parsing/Preprocessing/ByteValue.cs new file mode 100644 index 0000000000..174d48fe6e --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ByteValue.cs @@ -0,0 +1,67 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ByteValue : IValue + { + private readonly byte _value; + + public ByteValue(byte value) + { + _value = value; + } + + public ValueType ValueType + { + get + { + return ValueType.Byte; + } + } + + public bool AsBool + { + get + { + return _value != 0; + } + } + + public byte AsByte + { + get + { + return _value; + } + } + + public DateTime AsDate + { + get + { + return DateTime.FromOADate(Convert.ToDouble(_value)); + } + } + + public decimal AsDecimal + { + get + { + return Convert.ToDecimal(_value); + } + } + + public string AsString + { + get + { + return _value.ToString(); + } + } + + public override string ToString() + { + return _value.ToString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CBoolLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CBoolLibraryFunctionExpression.cs new file mode 100644 index 0000000000..8d6bb4dde9 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CBoolLibraryFunctionExpression.cs @@ -0,0 +1,22 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CBoolLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CBoolLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new BoolValue(expr.AsBool); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CByteLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CByteLibraryFunctionExpression.cs new file mode 100644 index 0000000000..2178d143cd --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CByteLibraryFunctionExpression.cs @@ -0,0 +1,22 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CByteLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CByteLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new ByteValue(expr.AsByte); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CCurLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CCurLibraryFunctionExpression.cs new file mode 100644 index 0000000000..4a61c5ac6d --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CCurLibraryFunctionExpression.cs @@ -0,0 +1,22 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CCurLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CCurLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new DecimalValue(expr.AsDecimal); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CDateLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CDateLibraryFunctionExpression.cs new file mode 100644 index 0000000000..880c9b0884 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CDateLibraryFunctionExpression.cs @@ -0,0 +1,22 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CDateLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CDateLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new DateValue(expr.AsDate); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CDblLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CDblLibraryFunctionExpression.cs new file mode 100644 index 0000000000..478366fd79 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CDblLibraryFunctionExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CDblLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CDblLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + return new CCurLibraryFunctionExpression(_expression).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CIntLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CIntLibraryFunctionExpression.cs new file mode 100644 index 0000000000..cc032ece10 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CIntLibraryFunctionExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CIntLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CIntLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + return new CCurLibraryFunctionExpression(_expression).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CLngLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CLngLibraryFunctionExpression.cs new file mode 100644 index 0000000000..a715b297e0 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CLngLibraryFunctionExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CLngLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CLngLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + return new CCurLibraryFunctionExpression(_expression).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CLngLngLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CLngLngLibraryFunctionExpression.cs new file mode 100644 index 0000000000..c6ca009913 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CLngLngLibraryFunctionExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CLngLngLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CLngLngLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + return new CCurLibraryFunctionExpression(_expression).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CLngPtrLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CLngPtrLibraryFunctionExpression.cs new file mode 100644 index 0000000000..f19e1de41b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CLngPtrLibraryFunctionExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CLngPtrLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CLngPtrLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + return new CCurLibraryFunctionExpression(_expression).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CSngLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CSngLibraryFunctionExpression.cs new file mode 100644 index 0000000000..415d2abb72 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CSngLibraryFunctionExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CSngLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CSngLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + return new CCurLibraryFunctionExpression(_expression).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CStrLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CStrLibraryFunctionExpression.cs new file mode 100644 index 0000000000..c13815c520 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CStrLibraryFunctionExpression.cs @@ -0,0 +1,22 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CStrLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CStrLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new StringValue(expr.AsString); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/CVarLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/CVarLibraryFunctionExpression.cs new file mode 100644 index 0000000000..148b7abb99 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/CVarLibraryFunctionExpression.cs @@ -0,0 +1,22 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class CVarLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public CVarLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return expr; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ConcatExpression.cs b/Rubberduck.Parsing/Preprocessing/ConcatExpression.cs new file mode 100644 index 0000000000..5a0c381fe3 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ConcatExpression.cs @@ -0,0 +1,35 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ConcatExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public ConcatExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null && right == null) + { + return null; + } + string leftValue = string.Empty; + if (left != null) + { + leftValue = left.AsString; + } + string rightValue = string.Empty; + if (right != null) + { + rightValue = right.AsString; + } + return new StringValue(leftValue + rightValue); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ConditionalCompilationBlockExpression.cs b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationBlockExpression.cs new file mode 100644 index 0000000000..9927d3ffbd --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationBlockExpression.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ConditionalCompilationBlockExpression : Expression + { + private readonly IEnumerable _children; + + public ConditionalCompilationBlockExpression(IEnumerable children) + { + _children = children; + } + + public override IValue Evaluate() + { + return new StringValue(string.Join(string.Empty, _children.Select(child => child.Evaluate().AsString))); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ConditionalCompilationConstantExpression.cs b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationConstantExpression.cs new file mode 100644 index 0000000000..8b15c1d2b0 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationConstantExpression.cs @@ -0,0 +1,33 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ConditionalCompilationConstantExpression : Expression + { + private readonly IExpression _tokenText; + private readonly IExpression _identifier; + private readonly IExpression _expression; + private readonly SymbolTable _symbolTable; + + public ConditionalCompilationConstantExpression( + IExpression tokenText, + IExpression identifier, + IExpression expression, + SymbolTable symbolTable) + { + _tokenText = tokenText; + _identifier = identifier; + _expression = expression; + _symbolTable = symbolTable; + } + + public override IValue Evaluate() + { + // 3.4.1: If is a with a , the is ignored. + var identifier = _identifier.Evaluate().AsString; + var constantValue = _expression.Evaluate(); + _symbolTable.Add(identifier, constantValue); + return new LivelinessExpression( + isAlive: new ConstantExpression(new BoolValue(false)), + code: _tokenText).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs new file mode 100644 index 0000000000..927339022f --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ConditionalCompilationIfExpression : Expression + { + private readonly IExpression _ifCondCode; + private readonly IExpression _ifCond; + private readonly IExpression _ifBlock; + private readonly IEnumerable> _elseIfCodeCondBlocks; + private readonly IExpression _elseCondCode; + private readonly IExpression _elseBlock; + private readonly IExpression _endIfCode; + + public ConditionalCompilationIfExpression( + IExpression ifCondCode, + IExpression ifCond, + IExpression ifBlock, + IEnumerable> elseIfCodeCondBlocks, + IExpression elseCondCode, + IExpression elseBlock, + IExpression endIfCode) + { + _ifCondCode = ifCondCode; + _ifCond = ifCond; + _ifBlock = ifBlock; + _elseIfCodeCondBlocks = elseIfCodeCondBlocks; + _elseCondCode = elseCondCode; + _elseBlock = elseBlock; + _endIfCode = endIfCode; + } + + public override IValue Evaluate() + { + StringBuilder builder = new StringBuilder(); + List conditions = new List(); + builder.Append( + new LivelinessExpression( + new ConstantExpression(new BoolValue(false)), + _ifCondCode) + .Evaluate().AsString); + + var ifIsAlive = _ifCond.EvaluateCondition(); + conditions.Add(ifIsAlive); + builder.Append( + new LivelinessExpression( + new ConstantExpression(new BoolValue(ifIsAlive)), + _ifBlock) + .Evaluate().AsString); + + foreach (var elseIf in _elseIfCodeCondBlocks) + { + builder.Append( + new LivelinessExpression( + new ConstantExpression(new BoolValue(false)), + elseIf.Item1) + .Evaluate().AsString); + var elseIfIsAlive = elseIf.Item2.EvaluateCondition(); + conditions.Add(elseIfIsAlive); + builder.Append( + new LivelinessExpression( + new ConstantExpression(new BoolValue(elseIfIsAlive)), + elseIf.Item3) + .Evaluate().AsString); + } + + if (_elseCondCode != null) + { + builder.Append( + new LivelinessExpression( + new ConstantExpression(new BoolValue(false)), + _elseCondCode) + .Evaluate().AsString); + var elseIsAlive = conditions.All(condition => !condition); + builder.Append( + new LivelinessExpression( + new ConstantExpression(new BoolValue(elseIsAlive)), + _elseBlock) + .Evaluate().AsString); + } + builder.Append( + new LivelinessExpression( + new ConstantExpression(new BoolValue(false)), + _endIfCode) + .Evaluate().AsString); + return new StringValue(builder.ToString()); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ConstantExpression.cs b/Rubberduck.Parsing/Preprocessing/ConstantExpression.cs new file mode 100644 index 0000000000..e0302d03cb --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ConstantExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ConstantExpression : Expression + { + private readonly IValue _value; + + public ConstantExpression(IValue value) + { + _value = value; + } + + public override IValue Evaluate() + { + return _value; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs deleted file mode 100644 index 81895bf562..0000000000 --- a/Rubberduck.Parsing/Preprocessing/DateLetCoercion.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; - -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class DateLetCoercion : ILetCoercion - { - public bool ToBool(object value) - { - return new DecimalLetCoercion().ToBool(ToDecimal(value)); - } - - public byte ToByte(object value) - { - return new DecimalLetCoercion().ToByte(ToDecimal(value)); - } - - public DateTime ToDate(object value) - { - return (DateTime)value; - } - - public decimal ToDecimal(object value) - { - return (decimal)((DateTime)value).ToOADate(); - } - - public string ToString(object value) - { - DateTime date = (DateTime)value; - if (date.Date == VBADateConstants.EPOCH_START.Date) - { - return date.ToLongTimeString(); - } - return date.ToShortDateString(); - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs new file mode 100644 index 0000000000..50a0ff4278 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs @@ -0,0 +1,273 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Date; +using System; +using System.Globalization; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class DateLiteralExpression : Expression + { + private readonly IExpression _tokenText; + + public DateLiteralExpression(IExpression tokenText) + { + _tokenText = tokenText; + } + + public override IValue Evaluate() + { + string literal = _tokenText.Evaluate().AsString; + var stream = new AntlrInputStream(literal); + var lexer = new VBADateLexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBADateParser(tokens); + var dateLiteral = parser.dateLiteral(); + var dateOrTime = dateLiteral.dateOrTime(); + int year; + int month; + int day; + int hours; + int mins; + int seconds; + + Predicate legalMonth = (x) => x >= 0 && x <= 12; + Func legalDay = (m, d, y) => + { + bool legalYear = y >= 0 && y <= 32767; + bool legalM = legalMonth(m); + bool legalD = false; + if (legalYear && legalM) + { + int daysInMonth = DateTime.DaysInMonth(y, m); + legalD = d >= 1 && d <= daysInMonth; + } + return legalYear && legalM && legalD; + }; + + Func yearFunc = (x) => + { + if (x >= 0 && x <= 29) + { + return x + 2000; + } + else if (x >= 30 && x <= 99) + { + return x + 1900; + } + else + { + return x; + } + }; + + int CY = DateTime.Now.Year; + + if (dateOrTime.dateValue() == null) + { + year = 1899; + month = 12; + day = 30; + } + else + { + var dateValue = dateOrTime.dateValue(); + var txt = dateOrTime.GetText(); + var L = dateValue.dateValuePart()[0]; + var M = dateValue.dateValuePart()[1]; + VBADateParser.DateValuePartContext R = null; + if (dateValue.dateValuePart().Count == 3) + { + R = dateValue.dateValuePart()[2]; + } + // "If L and M are numbers and R is not present:" + if (L.dateValueNumber() != null && M.dateValueNumber() != null && R == null) + { + var LNumber = int.Parse(L.GetText()); + var MNumber = int.Parse(M.GetText()); + if (legalMonth(LNumber) && legalDay(LNumber, MNumber, CY)) + { + month = LNumber; + day = MNumber; + year = CY; + } + else if ((legalMonth(MNumber) && legalDay(MNumber, LNumber, CY))) + { + month = MNumber; + day = LNumber; + year = CY; + } + else if (legalMonth(LNumber)) + { + month = LNumber; + day = 1; + year = MNumber; + } + else if (legalMonth(MNumber)) + { + month = MNumber; + day = 1; + year = LNumber; + } + else + { + throw new Exception("Invalid date: " + dateLiteral.GetText()); + } + } + // "If L, M, and R are numbers:" + else if (L.dateValueNumber() != null && M.dateValueNumber() != null && R != null && R.dateValueNumber() != null) + { + var LNumber = int.Parse(L.GetText()); + var MNumber = int.Parse(M.GetText()); + var RNumber = int.Parse(R.GetText()); + if (legalMonth(LNumber) && legalDay(LNumber, MNumber, yearFunc(RNumber))) + { + month = LNumber; + day = MNumber; + year = yearFunc(RNumber); + } + else if (legalMonth(MNumber) && legalDay(MNumber, RNumber, yearFunc(LNumber))) + { + month = MNumber; + day = RNumber; + year = yearFunc(LNumber); + } + else if (legalMonth(MNumber) && legalDay(MNumber, LNumber, yearFunc(RNumber))) + { + month = MNumber; + day = LNumber; + year = yearFunc(RNumber); + } + else + { + throw new Exception("Invalid date: " + dateLiteral.GetText()); + } + } + // "If either L or M is not a number and R is not present:" + else if ((L.dateValueNumber() == null || M.dateValueNumber() == null) && R == null) + { + int N; + string monthName; + if (L.dateValueNumber() != null) + { + N = int.Parse(L.GetText()); + monthName = M.GetText(); + } + else + { + N = int.Parse(M.GetText()); + monthName = L.GetText(); + } + int monthNameNumber; + if (monthName.Length == 3) + { + monthNameNumber = DateTime.ParseExact(monthName, "MMM", CultureInfo.InvariantCulture).Month; + } + else + { + monthNameNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.InvariantCulture).Month; + } + if (legalDay(monthNameNumber, N, CY)) + { + month = monthNameNumber; + day = N; + year = CY; + } + else + { + month = monthNameNumber; + day = 1; + year = N; + } + } + // "Otherwise, R is present and one of L, M, and R is not a number:" + else + { + int N1; + int N2; + string monthName; + if (L.dateValueNumber() == null) + { + monthName = L.GetText(); + N1 = int.Parse(M.GetText()); + N2 = int.Parse(R.GetText()); + } + else if (M.dateValueNumber() == null) + { + monthName = M.GetText(); + N1 = int.Parse(L.GetText()); + N2 = int.Parse(R.GetText()); + } + else + { + monthName = R.GetText(); + N1 = int.Parse(L.GetText()); + N2 = int.Parse(M.GetText()); + } + int monthNameNumber; + if (monthName.Length == 3) + { + monthNameNumber = DateTime.ParseExact(monthName, "MMM", CultureInfo.InvariantCulture).Month; + } + else + { + monthNameNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.InvariantCulture).Month; + } + if (legalDay(monthNameNumber, N1, yearFunc(N2))) + { + month = monthNameNumber; + day = N1; + year = yearFunc(N2); + } + else if (legalDay(monthNameNumber, N2, yearFunc(N1))) + { + month = monthNameNumber; + day = N2; + year = yearFunc(N1); + } + else + { + throw new Exception("Invalid date: " + dateLiteral.GetText()); + } + } + } + + if (dateOrTime.timeValue() == null) + { + hours = 0; + mins = 0; + seconds = 0; + } + else + { + var timeValue = dateOrTime.timeValue(); + hours = int.Parse(timeValue.timeValuePart()[0].GetText()); + if (timeValue.timeValuePart().Count == 1) + { + mins = 0; + } + else + { + mins = int.Parse(timeValue.timeValuePart()[1].GetText()); + } + if (timeValue.timeValuePart().Count < 3) + { + seconds = 0; + } + else + { + seconds = int.Parse(timeValue.timeValuePart()[2].GetText()); + } + var amPm = timeValue.AMPM(); + if (amPm != null && (amPm.GetText().ToUpper() == "P" || amPm.GetText().ToUpper() == "PM") && hours >= 0 && hours <= 11) + { + hours += 12; + } + else if (amPm != null && (amPm.GetText().ToUpper() == "A" || amPm.GetText().ToUpper() == "AM") && hours == 12) + { + hours = 0; + } + } + return new DateValue(new DateTime(year, month, day, hours, mins, seconds)); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/DateValue.cs b/Rubberduck.Parsing/Preprocessing/DateValue.cs new file mode 100644 index 0000000000..45f4c626cb --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/DateValue.cs @@ -0,0 +1,71 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class DateValue : IValue + { + private readonly DateTime _value; + + public DateValue(DateTime value) + { + _value = value; + } + + public ValueType ValueType + { + get + { + return ValueType.Date; + } + } + + public bool AsBool + { + get + { + return new DecimalValue(AsDecimal).AsBool; + } + } + + public byte AsByte + { + get + { + return new DecimalValue(AsDecimal).AsByte; + } + } + + public DateTime AsDate + { + get + { + return _value; + } + } + + public decimal AsDecimal + { + get + { + return (decimal)(_value).ToOADate(); + } + } + + public string AsString + { + get + { + if (_value.Date == VBADateConstants.EPOCH_START.Date) + { + return _value.ToLongTimeString(); + } + return _value.ToShortDateString(); + } + } + + public override string ToString() + { + return _value.ToString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs deleted file mode 100644 index e1a535d94a..0000000000 --- a/Rubberduck.Parsing/Preprocessing/DecimalLetCoercion.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; - -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class DecimalLetCoercion : ILetCoercion - { - public bool ToBool(object value) - { - return (decimal)value != 0; - } - - public byte ToByte(object value) - { - return Convert.ToByte(value); - } - - public DateTime ToDate(object value) - { - return DateTime.FromOADate(Convert.ToDouble(value)); - } - - public decimal ToDecimal(object value) - { - return (decimal)value; - } - - public string ToString(object value) - { - return value.ToString(); - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/DecimalValue.cs b/Rubberduck.Parsing/Preprocessing/DecimalValue.cs new file mode 100644 index 0000000000..0dd6afcd3f --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/DecimalValue.cs @@ -0,0 +1,67 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class DecimalValue : IValue + { + private readonly decimal _value; + + public DecimalValue(decimal value) + { + _value = value; + } + + public ValueType ValueType + { + get + { + return ValueType.Decimal; + } + } + + public bool AsBool + { + get + { + return _value != 0; + } + } + + public byte AsByte + { + get + { + return Convert.ToByte(_value); + } + } + + public DateTime AsDate + { + get + { + return DateTime.FromOADate(Convert.ToDouble(_value)); + } + } + + public decimal AsDecimal + { + get + { + return _value; + } + } + + public string AsString + { + get + { + return _value.ToString(); + } + } + + public override string ToString() + { + return _value.ToString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs deleted file mode 100644 index 23eedc8d16..0000000000 --- a/Rubberduck.Parsing/Preprocessing/EmptyLetCoercion.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; - -namespace Rubberduck.Parsing.Preprocessing -{ - /// - /// Defines the neutral element for each type. - /// - public sealed class EmptyLetCoercion : ILetCoercion - { - public bool ToBool(object value) - { - return false; - } - - public byte ToByte(object value) - { - return 0; - } - - public DateTime ToDate(object value) - { - return new DateTime(1899, 12, 30); - } - - public decimal ToDecimal(object value) - { - return 0; - } - - public string ToString(object value) - { - return string.Empty; - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/EmptyValue.cs b/Rubberduck.Parsing/Preprocessing/EmptyValue.cs new file mode 100644 index 0000000000..aacda7749b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/EmptyValue.cs @@ -0,0 +1,62 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class EmptyValue : IValue + { + public static readonly EmptyValue Value = new EmptyValue(); + + public ValueType ValueType + { + get + { + return ValueType.Empty; + } + } + + public bool AsBool + { + get + { + return false; + } + } + + public byte AsByte + { + get + { + return 0; + } + } + + public DateTime AsDate + { + get + { + return new DateTime(1899, 12, 30); + } + } + + public decimal AsDecimal + { + get + { + return 0; + } + } + + public string AsString + { + get + { + return string.Empty; + } + } + + public override string ToString() + { + return ""; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/Expression.cs b/Rubberduck.Parsing/Preprocessing/Expression.cs new file mode 100644 index 0000000000..b3ba03bffd --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/Expression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public abstract class Expression : IExpression + { + public abstract IValue Evaluate(); + + public bool EvaluateCondition() + { + var val = Evaluate(); + if (val == null) + { + return false; + } + return val.AsBool; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/FixLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/FixLibraryFunctionExpression.cs new file mode 100644 index 0000000000..45bfdb36ff --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/FixLibraryFunctionExpression.cs @@ -0,0 +1,17 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class FixLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public FixLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + return new IntLibraryFunctionExpression(_expression).Evaluate(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs new file mode 100644 index 0000000000..bc0334e1fb --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs @@ -0,0 +1,22 @@ +using System.Globalization; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class HexNumberLiteralExpression : Expression + { + private readonly IExpression _tokenText; + + public HexNumberLiteralExpression(IExpression tokenText) + { + _tokenText = tokenText; + } + + public override IValue Evaluate() + { + string literal = _tokenText.Evaluate().AsString; + literal = literal.Replace("&H", "").Replace("&", ""); + var number = (decimal)int.Parse(literal, NumberStyles.HexNumber); + return new DecimalValue(number); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/IExpression.cs b/Rubberduck.Parsing/Preprocessing/IExpression.cs new file mode 100644 index 0000000000..266505e346 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/IExpression.cs @@ -0,0 +1,8 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public interface IExpression + { + IValue Evaluate(); + bool EvaluateCondition(); + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ILetCoercion.cs b/Rubberduck.Parsing/Preprocessing/ILetCoercion.cs deleted file mode 100644 index 945a0d8859..0000000000 --- a/Rubberduck.Parsing/Preprocessing/ILetCoercion.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace Rubberduck.Parsing.Preprocessing -{ - public interface ILetCoercion - { - bool ToBool(object value); - byte ToByte(object value); - decimal ToDecimal(object value); - DateTime ToDate(object value); - string ToString(object value); - } -} diff --git a/Rubberduck.Parsing/Preprocessing/IValue.cs b/Rubberduck.Parsing/Preprocessing/IValue.cs new file mode 100644 index 0000000000..62a5d9e6fb --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/IValue.cs @@ -0,0 +1,14 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public interface IValue + { + ValueType ValueType { get; } + bool AsBool { get; } + byte AsByte { get; } + decimal AsDecimal { get; } + DateTime AsDate { get; } + string AsString { get; } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/IntLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/IntLibraryFunctionExpression.cs new file mode 100644 index 0000000000..e567568c2d --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/IntLibraryFunctionExpression.cs @@ -0,0 +1,40 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class IntLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public IntLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + if (expr.ValueType == ValueType.Decimal) + { + return new DecimalValue(Math.Truncate(expr.AsDecimal)); + } + else if (expr.ValueType == ValueType.String) + { + return new DecimalValue(Math.Truncate(expr.AsDecimal)); + } + else if (expr.ValueType == ValueType.Date) + { + var truncated = new DecimalValue(Math.Truncate(expr.AsDecimal)); + return new DateValue(truncated.AsDate); + } + else + { + return new DecimalValue(expr.AsDecimal); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/IsExpression.cs b/Rubberduck.Parsing/Preprocessing/IsExpression.cs new file mode 100644 index 0000000000..014ebe2f86 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/IsExpression.cs @@ -0,0 +1,21 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class IsExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public IsExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + return new BoolValue(left == null && right == null); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LenBLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/LenBLibraryFunctionExpression.cs new file mode 100644 index 0000000000..cd745f7142 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LenBLibraryFunctionExpression.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LenBLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public LenBLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new DecimalValue(expr.AsString.Length * sizeof(char)); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LenLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/LenLibraryFunctionExpression.cs new file mode 100644 index 0000000000..88e6c527da --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LenLibraryFunctionExpression.cs @@ -0,0 +1,22 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LenLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public LenLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new DecimalValue(expr.AsString.Length); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LikeExpression.cs b/Rubberduck.Parsing/Preprocessing/LikeExpression.cs new file mode 100644 index 0000000000..0a61ef9f1b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LikeExpression.cs @@ -0,0 +1,74 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Like; +using System.Text; +using System.Text.RegularExpressions; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LikeExpression : Expression + { + private readonly IExpression _expression; + private readonly IExpression _pattern; + + public LikeExpression(IExpression expression, IExpression pattern) + { + _expression = expression; + _pattern = pattern; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + var pattern = _pattern.Evaluate(); + if (expr == null || pattern == null) + { + return null; + } + var exprStr = expr.AsString; + var patternStr = pattern.AsString; + var stream = new AntlrInputStream(patternStr); + var lexer = new VBALikeLexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBALikeParser(tokens); + var likePattern = parser.likePatternString(); + var regex = TranslateToNETRegex(likePattern); + return new BoolValue(Regex.IsMatch(exprStr, regex)); + } + + private string TranslateToNETRegex(VBALikeParser.LikePatternStringContext likePattern) + { + StringBuilder regexStr = new StringBuilder(); + foreach (var element in likePattern.likePatternElement()) + { + if (element.likePatternChar() != null) + { + regexStr.Append(element.likePatternChar().GetText()); + } + else if (element.QUESTIONMARK() != null) + { + regexStr.Append("."); + } + else if (element.HASH() != null) + { + regexStr.Append(@"\d"); + } + else if (element.STAR() != null) + { + regexStr.Append(@".*?"); + } + else + { + var charlist = element.likePatternCharlist().GetText(); + if (charlist.StartsWith("[!")) + { + charlist = "[^" + charlist.Substring(2); + } + regexStr.Append(charlist); + } + } + // Full string match, e.g. "abcd" should NOT match "a.c" + var regex = "^" + regexStr.ToString() + "$"; + return regex; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LivelinessExpression.cs b/Rubberduck.Parsing/Preprocessing/LivelinessExpression.cs new file mode 100644 index 0000000000..fc7e930d45 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LivelinessExpression.cs @@ -0,0 +1,59 @@ +using System; +using System.Linq; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LivelinessExpression : Expression + { + private readonly IExpression _isAlive; + private readonly IExpression _code; + + public LivelinessExpression(IExpression isAlive, IExpression code) + { + _isAlive = isAlive; + _code = code; + } + + public override IValue Evaluate() + { + bool isAlive = _isAlive.Evaluate().AsBool; + var code = _code.Evaluate().AsString; + if (isAlive) + { + return new StringValue(code); + } + else + { + return new StringValue(MarkAsDead(code)); + } + } + + private string MarkAsDead(string code) + { + bool hasNewLine = false; + if (code.EndsWith(Environment.NewLine)) + { + hasNewLine = true; + } + // Remove parsed new line. + code = code.TrimEnd('\r', '\n'); + var lines = code.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); + var result = string.Join(Environment.NewLine, lines.Select(_ => string.Empty)); + if (hasNewLine) + { + result += Environment.NewLine; + } + return result; + } + + private string MarkLineAsDead(string line) + { + var result = string.Empty; + if (line.EndsWith(Environment.NewLine)) + { + result += Environment.NewLine; + } + return result; + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalAndExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalAndExpression.cs new file mode 100644 index 0000000000..4ea5f1e809 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalAndExpression.cs @@ -0,0 +1,46 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalAndExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalAndExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left != null && left.AsDecimal== 0 && right == null) + { + return new DecimalValue(0); + } + else if (right != null && right.AsDecimal== 0 && left == null) + { + return new DecimalValue(0); + } + else if (left == null || right == null) + { + return null; + } + else if (left.ValueType == ValueType.Bool && right.ValueType == ValueType.Bool) + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new BoolValue(new DecimalValue(leftNumber & rightNumber).AsBool); + } + else + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new DecimalValue(leftNumber & rightNumber); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs new file mode 100644 index 0000000000..d535d9e6c5 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs @@ -0,0 +1,44 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalEqualsExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalEqualsExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + if (left.ValueType == ValueType.String && right.ValueType == ValueType.String) + { + var leftValue = left.AsString; + var rightValue = right.AsString; + return new BoolValue(leftValue == rightValue); + } + else if (left.ValueType == ValueType.String && right.ValueType == ValueType.Empty) + { + return new BoolValue(left.AsString== right.AsString); + } + else if (right.ValueType == ValueType.String && left.ValueType == ValueType.Empty) + { + return new BoolValue(right.AsString== left.AsString); + } + else + { + var leftValue = left.AsDecimal; + var rightValue = right.AsDecimal; + return new BoolValue(leftValue == rightValue); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalEqvExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalEqvExpression.cs new file mode 100644 index 0000000000..618cbcdb28 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalEqvExpression.cs @@ -0,0 +1,38 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalEqvExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalEqvExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + else if (left.ValueType == ValueType.Bool && right.ValueType == ValueType.Bool) + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new BoolValue(new DecimalValue(~(leftNumber ^ rightNumber)).AsBool); + } + else + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new DecimalValue(~(leftNumber ^ rightNumber)); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs new file mode 100644 index 0000000000..764d1555bd --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs @@ -0,0 +1,24 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalGreaterOrEqualsExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalGreaterOrEqualsExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var result = new LogicalLessThanExpression(_left, _right).Evaluate(); + if (result == null) + { + return null; + } + return new BoolValue(!result.AsBool); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs new file mode 100644 index 0000000000..d10b4adde8 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs @@ -0,0 +1,25 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalGreaterThanExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalGreaterThanExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var lt = new LogicalLessThanExpression(_left, _right).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); + if (lt == null || eq == null) + { + return null; + } + return new BoolValue(!lt.AsBool && !eq.AsBool); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalImpExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalImpExpression.cs new file mode 100644 index 0000000000..109668f8c6 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalImpExpression.cs @@ -0,0 +1,55 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalImpExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalImpExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null && right == null) + { + return null; + } + else if (left != null && left.ValueType == ValueType.Bool && right != null && right.ValueType == ValueType.Bool) + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + var result = (decimal)(~leftNumber | rightNumber); + return new BoolValue(new DecimalValue(result).AsBool); + } + else if (left == null && right.AsDecimal== 0) + { + return null; + } + else if (left == null) + { + return right; + } + else if (left.AsDecimal== -1) + { + return null; + } + else if (right == null) + { + return new DecimalValue(~Convert.ToInt64(left.AsDecimal) | 0); + } + else + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new DecimalValue(~leftNumber | rightNumber); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs new file mode 100644 index 0000000000..8917977121 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs @@ -0,0 +1,25 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalLessOrEqualsExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalLessOrEqualsExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var lt = new LogicalLessThanExpression(_left, _right).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); + if (lt == null || eq == null) + { + return null; + } + return new BoolValue(lt.AsBool || eq.AsBool); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs new file mode 100644 index 0000000000..0e13fe4ab1 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs @@ -0,0 +1,44 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalLessThanExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalLessThanExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + if (left.ValueType == ValueType.String && right.ValueType == ValueType.String) + { + var leftValue = left.AsString; + var rightValue = right.AsString; + return new BoolValue(string.CompareOrdinal(leftValue, rightValue) < 0); + } + else if (left.ValueType == ValueType.String && right.ValueType == ValueType.Empty) + { + return new BoolValue(string.CompareOrdinal(left.AsString, right.AsString) < 0); + } + else if (right.ValueType == ValueType.String && left.ValueType == ValueType.Empty) + { + return new BoolValue(string.CompareOrdinal(right.AsString, left.AsString) < 0); + } + else + { + var leftValue = left.AsDecimal; + var rightValue = right.AsDecimal; + return new BoolValue(leftValue < rightValue); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs new file mode 100644 index 0000000000..7b252c3628 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs @@ -0,0 +1,24 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalNotEqualsExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalNotEqualsExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); + if (eq == null) + { + return null; + } + return new BoolValue(!eq.AsBool); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalOrExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalOrExpression.cs new file mode 100644 index 0000000000..02cf6dc285 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalOrExpression.cs @@ -0,0 +1,46 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalOrExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalOrExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null && right == null) + { + return null; + } + else if (left == null) + { + return right; + } + else if (right == null) + { + return left; + } + else if (left.ValueType == ValueType.Bool && right.ValueType == ValueType.Bool) + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new BoolValue(new DecimalValue(leftNumber | rightNumber).AsBool); + } + else + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new DecimalValue(leftNumber | rightNumber); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/LogicalXorExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalXorExpression.cs new file mode 100644 index 0000000000..046c2f2db3 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalXorExpression.cs @@ -0,0 +1,38 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class LogicalXorExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public LogicalXorExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + else if (left.ValueType == ValueType.Bool && right.ValueType == ValueType.Bool) + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new BoolValue(new DecimalValue(leftNumber ^ rightNumber).AsBool); + } + else + { + var leftNumber = Convert.ToInt64(left.AsDecimal); + var rightNumber = Convert.ToInt64(right.AsDecimal); + return new DecimalValue(leftNumber ^ rightNumber); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/ModExpression.cs b/Rubberduck.Parsing/Preprocessing/ModExpression.cs new file mode 100644 index 0000000000..6adeb305cd --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ModExpression.cs @@ -0,0 +1,29 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class ModExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public ModExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + var leftValue = left.AsDecimal; + var rightValue = right.AsDecimal; + return new DecimalValue(leftValue % rightValue); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/NameExpression.cs b/Rubberduck.Parsing/Preprocessing/NameExpression.cs new file mode 100644 index 0000000000..3d927f6379 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/NameExpression.cs @@ -0,0 +1,29 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class NameExpression : Expression + { + private readonly IExpression _identifier; + private readonly SymbolTable _symbolTable; + + public NameExpression( + IExpression identifier, + SymbolTable symbolTable) + { + _identifier = identifier; + _symbolTable = symbolTable; + } + + public override IValue Evaluate() + { + var identifier = _identifier.Evaluate().AsString; + // Special case, identifier that does not exist is VBAEmpty. + // Could add them to the symbol table, but since they are all constants + // they never change anyway. + if (!_symbolTable.HasSymbol(identifier)) + { + return EmptyValue.Value; + } + return _symbolTable.Get(identifier); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs new file mode 100644 index 0000000000..fc3fb766e7 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs @@ -0,0 +1,21 @@ +using System.Globalization; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class NumberLiteralExpression : Expression + { + private readonly IExpression _tokenText; + + public NumberLiteralExpression(IExpression tokenText) + { + _tokenText = tokenText; + } + + public override IValue Evaluate() + { + string literal = _tokenText.Evaluate().AsString; + var number = decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float); + return new DecimalValue(number); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs new file mode 100644 index 0000000000..8d574482b6 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs @@ -0,0 +1,22 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class OctNumberLiteralExpression : Expression + { + private readonly IExpression _tokenText; + + public OctNumberLiteralExpression(IExpression tokenText) + { + _tokenText = tokenText; + } + + public override IValue Evaluate() + { + string literal = _tokenText.Evaluate().AsString; + literal = literal.Replace("&O", "").Replace("&", ""); + var number = (decimal)Convert.ToInt32(literal, 8); + return new DecimalValue(number); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/PowExpression.cs b/Rubberduck.Parsing/Preprocessing/PowExpression.cs new file mode 100644 index 0000000000..0fe92809da --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/PowExpression.cs @@ -0,0 +1,29 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class PowExpression : Expression + { + private readonly IExpression _left; + private readonly IExpression _right; + + public PowExpression(IExpression left, IExpression right) + { + _left = left; + _right = right; + } + + public override IValue Evaluate() + { + var left = _left.Evaluate(); + var right = _right.Evaluate(); + if (left == null || right == null) + { + return null; + } + var leftValue = left.AsDecimal; + var rightValue = right.AsDecimal; + return new DecimalValue((decimal)Math.Pow(Convert.ToDouble(leftValue), Convert.ToDouble(rightValue))); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/SgnLibraryFunctionExpression.cs b/Rubberduck.Parsing/Preprocessing/SgnLibraryFunctionExpression.cs new file mode 100644 index 0000000000..a42c07d8fd --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/SgnLibraryFunctionExpression.cs @@ -0,0 +1,24 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class SgnLibraryFunctionExpression : Expression + { + private readonly IExpression _expression; + + public SgnLibraryFunctionExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var expr = _expression.Evaluate(); + if (expr == null) + { + return null; + } + return new DecimalValue(Math.Sign(expr.AsDecimal)); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs b/Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs deleted file mode 100644 index 11be923d75..0000000000 --- a/Rubberduck.Parsing/Preprocessing/StringLetCoercion.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Globalization; - -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class StringLetCoercion : ILetCoercion - { - public bool ToBool(object value) - { - if (value == null) - { - return false; - } - var str = (string)value; - if (str.ToLower() == "true" || str == "#TRUE#") - { - return true; - } - else if (str.ToLower() == "false" || str == "#FALSE#") - { - return false; - } - else - { - decimal number = ToDecimal(value); - return new DecimalLetCoercion().ToBool(number); - } - } - - public byte ToByte(object value) - { - return byte.Parse((string)value, NumberStyles.Float); - } - - public DateTime ToDate(object value) - { - DateTime date; - if (DateTime.TryParse((string)value, out date)) - { - return date; - } - decimal number = ToDecimal(value); - return new DecimalLetCoercion().ToDate(number); - } - - public decimal ToDecimal(object value) - { - return decimal.Parse((string)value, NumberStyles.Float); - } - - public string ToString(object value) - { - return (string)value; - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/StringLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/StringLiteralExpression.cs new file mode 100644 index 0000000000..4db827d30b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/StringLiteralExpression.cs @@ -0,0 +1,20 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class StringLiteralExpression : Expression + { + private readonly IExpression _tokenText; + + public StringLiteralExpression(IExpression tokenText) + { + _tokenText = tokenText; + } + + public override IValue Evaluate() + { + var str = _tokenText.Evaluate().AsString; + // Remove quotes + str = str.Substring(1, str.Length - 2); + return new StringValue(str); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/StringValue.cs b/Rubberduck.Parsing/Preprocessing/StringValue.cs new file mode 100644 index 0000000000..0705e78a7d --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/StringValue.cs @@ -0,0 +1,91 @@ +using System; +using System.Globalization; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class StringValue : IValue + { + private readonly string _value; + + public StringValue(string value) + { + _value = value; + } + + public ValueType ValueType + { + get + { + return ValueType.String; + } + } + + public bool AsBool + { + get + { + if (_value == null) + { + return false; + } + var str = _value; + if (str.ToLower() == "true" || str == "#TRUE#") + { + return true; + } + else if (str.ToLower() == "false" || str == "#FALSE#") + { + return false; + } + else + { + decimal number = AsDecimal; + return new DecimalValue(number).AsBool; + } + } + } + + public byte AsByte + { + get + { + return byte.Parse(_value, NumberStyles.Float); + } + } + + public DateTime AsDate + { + get + { + DateTime date; + if (DateTime.TryParse(_value, out date)) + { + return date; + } + decimal number = AsDecimal; + return new DecimalValue(number).AsDate; + } + } + + public decimal AsDecimal + { + get + { + return decimal.Parse(_value, NumberStyles.Float); + } + } + + public string AsString + { + get + { + return _value; + } + } + + public override string ToString() + { + return _value.ToString(); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/SymbolTable.cs b/Rubberduck.Parsing/Preprocessing/SymbolTable.cs index f772d35e3d..27a82a1439 100644 --- a/Rubberduck.Parsing/Preprocessing/SymbolTable.cs +++ b/Rubberduck.Parsing/Preprocessing/SymbolTable.cs @@ -1,33 +1,34 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace Rubberduck.Parsing.Preprocessing { - public sealed class SymbolTable + public sealed class SymbolTable { - private readonly Dictionary _table; + private readonly Dictionary _table; public SymbolTable() { - _table = new Dictionary(); + _table = new Dictionary(); } - public void Add(string name, object value) + public void Add(TKey name, TValue value) { _table[name] = value; } - public bool HasSymbol(string name) + public bool HasSymbol(TKey name) { return _table.ContainsKey(name); } - public object Get(string name) + public TValue Get(TKey name) { if (_table.ContainsKey(name)) { return _table[name]; } - return null; + throw new InvalidOperationException(name + " not found in symbol table."); } } } diff --git a/Rubberduck.Parsing/Preprocessing/UnaryMinusExpression.cs b/Rubberduck.Parsing/Preprocessing/UnaryMinusExpression.cs new file mode 100644 index 0000000000..622d0f7c2a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/UnaryMinusExpression.cs @@ -0,0 +1,43 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class UnaryMinusExpression : Expression + { + private readonly IExpression _expression; + + public UnaryMinusExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var operand = _expression.Evaluate(); + if (operand == null) + { + return null; + } + else if (operand.ValueType == ValueType.Date) + { + var value = operand.AsDecimal; + value = -value; + try + { + return new DateValue(new DecimalValue(value).AsDate); + } + catch + { + // 5.6.9.3.1: If overflow occurs during the coercion to Date, and the operand has a + // declared type of Variant, the result is the Double value. + // We don't care about it being a Variant because if it's not a Variant it won't compile/run. + // We catch everything because the only case where the code is valid is that if this is an overflow. + return new DecimalValue(value); + } + } + else + { + var value = operand.AsDecimal; + return new DecimalValue(-value); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/UnaryNotExpression.cs b/Rubberduck.Parsing/Preprocessing/UnaryNotExpression.cs new file mode 100644 index 0000000000..152f87714d --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/UnaryNotExpression.cs @@ -0,0 +1,32 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class UnaryNotExpression : Expression + { + private readonly IExpression _expression; + + public UnaryNotExpression(IExpression expression) + { + _expression = expression; + } + + public override IValue Evaluate() + { + var operand = _expression.Evaluate(); + if (operand == null) + { + return null; + } + else if (operand.ValueType == ValueType.Bool) + { + return new BoolValue(!operand.AsBool); + } + else + { + var coerced = operand.AsDecimal; + return new DecimalValue(~Convert.ToInt64(coerced)); + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs b/Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs deleted file mode 100644 index 950add6764..0000000000 --- a/Rubberduck.Parsing/Preprocessing/VBAEmptyValue.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class VBAEmptyValue - { - public static readonly VBAEmptyValue Value = new VBAEmptyValue(); - - private VBAEmptyValue() - { - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/VBAEnvironment.cs b/Rubberduck.Parsing/Preprocessing/VBAEnvironment.cs new file mode 100644 index 0000000000..f3b43cbed0 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAEnvironment.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; + +namespace Rubberduck.Parsing.Preprocessing +{ + public static class VBAEnvironment + { + private static readonly Dictionary> _libraryFunctions = new Dictionary>() + { + { "INT", expr => new IntLibraryFunctionExpression(expr) }, + { "FIX", expr => new FixLibraryFunctionExpression(expr) }, + { "ABS", expr => new AbsLibraryFunctionExpression(expr) }, + { "SGN", expr => new SgnLibraryFunctionExpression(expr) }, + { "LEN", expr => new LenLibraryFunctionExpression(expr) }, + { "LENB", expr => new LenBLibraryFunctionExpression(expr) }, + { "CBOOL", expr => new CBoolLibraryFunctionExpression(expr) }, + { "CBYTE", expr => new CByteLibraryFunctionExpression(expr) }, + { "CCUR", expr => new CCurLibraryFunctionExpression(expr) }, + { "CDBL", expr => new CDblLibraryFunctionExpression(expr) }, + { "CINT", expr => new CIntLibraryFunctionExpression(expr) }, + { "CLNG", expr => new CLngLibraryFunctionExpression(expr) }, + { "CLNGLNG", expr => new CLngLngLibraryFunctionExpression(expr) }, + { "CLNGPTR", expr => new CLngPtrLibraryFunctionExpression(expr) }, + { "CSNG", expr => new CSngLibraryFunctionExpression(expr) }, + { "CDATE", expr => new CDateLibraryFunctionExpression(expr) }, + { "CSTR", expr => new CStrLibraryFunctionExpression(expr) }, + { "CVAR", expr => new CVarLibraryFunctionExpression(expr) } + }; + + public static IExpression CreateLibraryFunction(string functionName, IExpression argument) + { + Func functionCreator; + if (_libraryFunctions.TryGetValue(functionName.ToUpper(), out functionCreator)) + { + return functionCreator(argument); + } + throw new InvalidOperationException("Unexpected library function encountered: " + functionName); + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs b/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs deleted file mode 100644 index 60fc701b3f..0000000000 --- a/Rubberduck.Parsing/Preprocessing/VBAExpressionEvaluator.cs +++ /dev/null @@ -1,1227 +0,0 @@ -using Antlr4.Runtime; -using Rubberduck.Parsing.Date; -using Rubberduck.Parsing.Like; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class VBAExpressionEvaluator - { - private SymbolTable _symbolTable; - private readonly Dictionary _letCoercions = new Dictionary() - { - { typeof(bool), new BoolLetCoercion() }, - { typeof(byte), new ByteLetCoercion() }, - { typeof(decimal), new DecimalLetCoercion() }, - { typeof(DateTime), new DateLetCoercion() }, - { typeof(string), new StringLetCoercion() }, - { typeof(VBAEmptyValue), new EmptyLetCoercion() } - }; - - public VBAExpressionEvaluator() - : this(new SymbolTable()) - { - } - - public VBAExpressionEvaluator(SymbolTable symbolTable) - { - _symbolTable = symbolTable; - } - - public void AddConstant(string name, object value) - { - _symbolTable.Add(name, value); - } - - public void EvaluateConstant(string name, VBAConditionalCompilationParser.CcExpressionContext expression) - { - AddConstant(name, Evaluate(expression)); - } - - public bool EvaluateCondition(VBAConditionalCompilationParser.CcExpressionContext expression) - { - object condition = Evaluate(expression); - if (condition == null) - { - return false; - } - return _letCoercions[condition.GetType()].ToBool(condition); - } - - private object Evaluate(VBAConditionalCompilationParser.CcExpressionContext expression) - { - return Visit(expression); - } - - private object Visit(VBAConditionalCompilationParser.NameContext context) - { - var identifier = context.IDENTIFIER().GetText(); - // Special case, identifier that does not exist is VBAEmpty. - // Could add them to the symbol table, but since they are all constants - // they never change anyway. - if (!_symbolTable.HasSymbol(identifier)) - { - return VBAEmptyValue.Value; - } - return _symbolTable.Get(identifier); - } - - private object VisitUnaryMinus(VBAConditionalCompilationParser.CcExpressionContext context) - { - var operand = Visit(context.ccExpression()[0]); - if (operand == null) - { - return null; - } - else if (operand is DateTime) - { - var value = _letCoercions[typeof(DateTime)].ToDecimal(operand); - value = -value; - try - { - return _letCoercions[typeof(decimal)].ToDate(value); - } - catch - { - // 5.6.9.3.1: If overflow occurs during the coercion to Date, and the operand has a - // declared type of Variant, the result is the Double value. - // We don't care about it being a Variant because if it's not a Variant it won't compile/run. - // We catch everything because the only case where the code is valid is that if this is an overflow. - return value; - } - } - else - { - var value = _letCoercions[operand.GetType()].ToDecimal(operand); - return -value; - } - } - - private object VisitUnaryNot(VBAConditionalCompilationParser.CcExpressionContext context) - { - var operand = Visit(context.ccExpression()[0]); - if (operand == null) - { - return null; - } - else if (operand is bool) - { - return !(bool)operand; - } - else - { - var coerced = _letCoercions[operand.GetType()].ToDecimal(operand); - return (decimal)~Convert.ToInt64(coerced); - } - } - - private object VisitPlus(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - if (left is string) - { - return (string)left + (string)right; - } - else if (left is DateTime || right is DateTime) - { - decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); - decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); - decimal sum = leftValue + rightValue; - try - { - return _letCoercions[sum.GetType()].ToDate(sum); - } - catch - { - return sum; - } - } - else - { - var leftNumber = _letCoercions[left.GetType()].ToDecimal(left); - var rightNumber = _letCoercions[right.GetType()].ToDecimal(right); - return leftNumber + rightNumber; - } - } - - private object VisitMinus(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - else if (left is DateTime && right is DateTime) - { - // 5.6.9.3.3 - Effective value type exception. - // If left + right are both Date then effective value type is double. - decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); - decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); - decimal difference = leftValue - rightValue; - return difference; - } - else if (left is DateTime || right is DateTime) - { - decimal leftValue = _letCoercions[left.GetType()].ToDecimal(left); - decimal rightValue = _letCoercions[right.GetType()].ToDecimal(right); - decimal difference = leftValue - rightValue; - try - { - return _letCoercions[typeof(decimal)].ToDate(difference); - } - catch - { - return difference; - } - } - else - { - var leftNumber = _letCoercions[left.GetType()].ToDecimal(left); - var rightNumber = _letCoercions[right.GetType()].ToDecimal(right); - return leftNumber - rightNumber; - } - } - - private object Visit(VBAConditionalCompilationParser.CcExpressionContext context) - { - if (context.literal() != null) - { - return Visit(context.literal()); - } - else if (context.name() != null) - { - return Visit(context.name()); - } - else if (context.L_PAREN() != null) - { - return Visit(context.ccExpression()[0]); - } - else if (context.MINUS() != null && context.ccExpression().Count == 1) - { - return VisitUnaryMinus(context); - } - else if (context.NOT() != null) - { - return VisitUnaryNot(context); - } - else if (context.PLUS() != null) - { - return VisitPlus(context); - } - else if (context.MINUS() != null && context.ccExpression().Count == 2) - { - return VisitMinus(context); - } - else if (context.MULT() != null) - { - return VisitMult(context); - } - else if (context.DIV() != null) - { - return VisitDiv(context); - } - else if (context.INTDIV() != null) - { - return VisitIntDiv(context); - } - else if (context.MOD() != null) - { - return VisitMod(context); - } - else if (context.POW() != null) - { - return VisitPow(context); - } - else if (context.AMPERSAND() != null) - { - return VisitConcat(context); - } - else if (context.EQ() != null) - { - return VisitEq(context); - } - else if (context.NEQ() != null) - { - return VisitNeq(context); - } - else if (context.LT() != null) - { - return VisitLt(context); - } - else if (context.GT() != null) - { - return VisitGt(context); - } - else if (context.LEQ() != null) - { - return VisitLeq(context); - } - else if (context.GEQ() != null) - { - return VisitGeq(context); - } - else if (context.AND() != null) - { - return VisitAnd(context); - } - else if (context.OR() != null) - { - return VisitOr(context); - } - else if (context.XOR() != null) - { - return VisitXor(context); - } - else if (context.EQV() != null) - { - return VisitEqv(context); - } - else if (context.IMP() != null) - { - return VisitImp(context); - } - else if (context.IS() != null) - { - return VisitIs(context); - } - else if (context.LIKE() != null) - { - return VisitLike(context); - } - else - { - return VisitIntrinsicFunction(context); - } - } - - private object VisitIntrinsicFunction(VBAConditionalCompilationParser.CcExpressionContext context) - { - var intrinsicFunction = context.intrinsicFunction(); - var name = intrinsicFunction.intrinsicFunctionName().GetText().ToUpper(); - var expr = Visit(intrinsicFunction.ccExpression()); - if (expr == null) - { - return null; - } - switch (name) - { - case "INT": - case "FIX": - return VisitIntFixFunction(expr); - case "ABS": - return VisitAbsFunction(expr); - case "SGN": - return VisitSgnFunction(expr); - case "LEN": - return VisitLenFunction(expr); - case "LENB": - return VisitLenBFunction(expr); - case "CBOOL": - return VisitCBoolFunction(expr); - case "CBYTE": - return VisitCByteFunction(expr); - case "CCUR": - return VisitCCurFunction(expr); - case "CDATE": - return VisitCDateFunction(expr); - case "CDBL": - return VisitCDblFunction(expr); - case "CINT": - return VisitCIntFunction(expr); - case "CLNG": - return VisitCLngFunction(expr); - case "CLNGLNG": - return VisitCLngLngFunction(expr); - case "CLNGPTR": - return VisitLngPtrFunction(expr); - case "CSNG": - return VisitCSngFunction(expr); - case "CSTR": - return VisitCStrFunction(expr); - case "CVAR": - return VisitCVarFunction(expr); - default: - return null; - } - } - - private object VisitCVarFunction(object expr) - { - return expr; - } - - private object VisitCStrFunction(object expr) - { - return _letCoercions[expr.GetType()].ToString(expr); - } - - private object VisitCSngFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - - private object VisitLngPtrFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - - private object VisitCLngLngFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - - private object VisitCLngFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - - private object VisitCIntFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - - private object VisitCDblFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - - private object VisitCDateFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDate(expr); - } - - private object VisitCCurFunction(object expr) - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - - private object VisitCByteFunction(object expr) - { - return _letCoercions[expr.GetType()].ToByte(expr); - } - - private object VisitCBoolFunction(object expr) - { - return _letCoercions[expr.GetType()].ToBool(expr); - } - - private object VisitLenBFunction(object expr) - { - return (decimal)_letCoercions[expr.GetType()].ToString(expr).Length * sizeof(Char); - } - - private object VisitLenFunction(object expr) - { - return (decimal)_letCoercions[expr.GetType()].ToString(expr).Length; - } - - private object VisitSgnFunction(object expr) - { - return (decimal)Math.Sign(_letCoercions[expr.GetType()].ToDecimal(expr)); - } - - private object VisitAbsFunction(object expr) - { - if (expr is DateTime) - { - decimal exprValue = _letCoercions[typeof(DateTime)].ToDecimal(expr); - exprValue = Math.Abs(exprValue); - try - { - return _letCoercions[typeof(decimal)].ToDate(exprValue); - } - catch - { - return exprValue; - } - } - else - { - return Math.Abs(_letCoercions[expr.GetType()].ToDecimal(expr)); - } - } - - private object VisitIntFixFunction(object expr) - { - if (expr is decimal) - { - return Math.Truncate((decimal)expr); - } - else if (expr is string) - { - return Math.Truncate(_letCoercions[typeof(string)].ToDecimal(expr)); - } - else if (expr is DateTime) - { - return _letCoercions[typeof(decimal)].ToDate(Math.Truncate(_letCoercions[typeof(DateTime)].ToDecimal(expr))); - } - else - { - return _letCoercions[expr.GetType()].ToDecimal(expr); - } - } - - private object VisitLike(VBAConditionalCompilationParser.CcExpressionContext context) - { - var expr = Visit(context.ccExpression()[0]); - var pattern = Visit(context.ccExpression()[1]); - if (expr == null || pattern == null) - { - return null; - } - var exprStr = _letCoercions[expr.GetType()].ToString(expr); - var patternStr = _letCoercions[pattern.GetType()].ToString(pattern); - var stream = new AntlrInputStream(patternStr); - var lexer = new VBALikeLexer(stream); - var tokens = new CommonTokenStream(lexer); - var parser = new VBALikeParser(tokens); - var likePattern = parser.likePatternString(); - StringBuilder regexStr = new StringBuilder(); - foreach (var element in likePattern.likePatternElement()) - { - if (element.likePatternChar() != null) - { - regexStr.Append(element.likePatternChar().GetText()); - } - else if (element.QUESTIONMARK() != null) - { - regexStr.Append("."); - } - else if (element.HASH() != null) - { - regexStr.Append(@"\d"); - } - else if (element.STAR() != null) - { - regexStr.Append(@".*?"); - } - else - { - var charlist = element.likePatternCharlist().GetText(); - if (charlist.StartsWith("[!")) - { - charlist = "[^" + charlist.Substring(2); - } - regexStr.Append(charlist); - } - } - // Full string match, e.g. "abcd" should NOT match "a.c" - var regex = "^" + regexStr.ToString() + "$"; - return Regex.IsMatch(exprStr, regex); - } - - private object VisitIs(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - return left == null && right == null; - } - - private object VisitImp(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null && right == null) - { - return null; - } - else if (left != null && left is bool && right != null && right is bool) - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - var result = (decimal)(~leftNumber | rightNumber); - return _letCoercions[result.GetType()].ToBool(result); - } - else if (left == null && _letCoercions[right.GetType()].ToDecimal(right) == 0) - { - return null; - } - else if (left == null) - { - return right; - } - else if (_letCoercions[left.GetType()].ToDecimal(left) == -1) - { - return null; - } - else if (right == null) - { - return (decimal)(~Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)) | 0); - } - else - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - return (decimal)(~leftNumber | rightNumber); - } - } - - private object VisitEqv(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - else if (left is bool && right is bool) - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - var result = (decimal)~(leftNumber ^ rightNumber); - return _letCoercions[result.GetType()].ToBool(result); - } - else - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - return (decimal)~(leftNumber ^ rightNumber); - } - } - - private object VisitXor(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - else if (left is bool && right is bool) - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - var result = (decimal)(leftNumber ^ rightNumber); - return _letCoercions[result.GetType()].ToBool(result); - } - else - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - return (decimal)(leftNumber ^ rightNumber); - } - } - - private object VisitOr(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null && right == null) - { - return null; - } - else if (left == null) - { - return right; - } - else if (right == null) - { - return left; - } - else if (left is bool && right is bool) - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - var result = (decimal)(leftNumber | rightNumber); - return _letCoercions[result.GetType()].ToBool(result); - } - else - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - return (decimal)(leftNumber | rightNumber); - } - } - - private object VisitAnd(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left != null && _letCoercions[left.GetType()].ToDecimal(left) == 0 && right == null) - { - return 0; - } - else if (right != null && _letCoercions[right.GetType()].ToDecimal(right) == 0 && left == null) - { - return 0; - } - else if (left == null || right == null) - { - return null; - } - else if (left is bool && right is bool) - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - var result = (decimal)(leftNumber & rightNumber); - return _letCoercions[result.GetType()].ToBool(result); - } - else - { - var leftNumber = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightNumber = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - return (decimal)(leftNumber & rightNumber); - } - } - - private object VisitGeq(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - return !EvaluateLt(left, right); - } - - private object VisitLeq(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - return EvaluateLt(left, right) || EvaluateEq(left, right); - } - - private object VisitGt(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - return !EvaluateLt(left, right) && !EvaluateEq(left, right); - } - - private object VisitLt(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - return EvaluateLt(left, right); - } - - private object VisitNeq(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - return !EvaluateEq(left, right); - } - - private object VisitEq(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - return EvaluateEq(left, right); - } - - private bool EvaluateLt(object left, object right) - { - if (left is string && right is string) - { - var leftValue = _letCoercions[left.GetType()].ToString(left); - var rightValue = _letCoercions[right.GetType()].ToString(right); - return string.CompareOrdinal(leftValue, rightValue) < 0; - } - else if (left is string && right is VBAEmptyValue) - { - return string.CompareOrdinal((string)left, _letCoercions[right.GetType()].ToString(right)) < 0; - } - else if (right is string && left is VBAEmptyValue) - { - return string.CompareOrdinal((string)right, _letCoercions[left.GetType()].ToString(left)) < 0; - } - else - { - var leftValue = _letCoercions[left.GetType()].ToDecimal(left); - var rightValue = _letCoercions[right.GetType()].ToDecimal(right); - return leftValue < rightValue; - } - } - - private bool EvaluateEq(object left, object right) - { - if (left is string && right is string) - { - var leftValue = _letCoercions[left.GetType()].ToString(left); - var rightValue = _letCoercions[right.GetType()].ToString(right); - return leftValue == rightValue; - } - else if (left is string && right is VBAEmptyValue) - { - return (string)left == _letCoercions[right.GetType()].ToString(right); - } - else if (right is string && left is VBAEmptyValue) - { - return (string)right == _letCoercions[left.GetType()].ToString(left); - } - else - { - var leftValue = _letCoercions[left.GetType()].ToDecimal(left); - var rightValue = _letCoercions[right.GetType()].ToDecimal(right); - return leftValue == rightValue; - } - } - - private object VisitConcat(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null && right == null) - { - return null; - } - string leftValue = string.Empty; - if (left != null) - { - leftValue = _letCoercions[left.GetType()].ToString(left); - } - string rightValue = string.Empty; - if (right != null) - { - rightValue = _letCoercions[right.GetType()].ToString(right); - } - return leftValue + rightValue; - } - - private object VisitPow(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - var leftValue = _letCoercions[left.GetType()].ToDecimal(left); - var rightValue = _letCoercions[right.GetType()].ToDecimal(right); - return (decimal)Math.Pow(Convert.ToDouble(leftValue), Convert.ToDouble(rightValue)); - } - - private object VisitMod(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - var leftValue = _letCoercions[left.GetType()].ToDecimal(left); - var rightValue = _letCoercions[right.GetType()].ToDecimal(right); - return leftValue % rightValue; - } - - private object VisitIntDiv(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - var leftValue = Convert.ToInt64(_letCoercions[left.GetType()].ToDecimal(left)); - var rightValue = Convert.ToInt64(_letCoercions[right.GetType()].ToDecimal(right)); - return Math.Truncate((decimal)leftValue / rightValue); - } - - private object VisitMult(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - var leftValue = _letCoercions[left.GetType()].ToDecimal(left); - var rightValue = _letCoercions[right.GetType()].ToDecimal(right); - return leftValue * rightValue; - } - - private object VisitDiv(VBAConditionalCompilationParser.CcExpressionContext context) - { - var left = Visit(context.ccExpression()[0]); - var right = Visit(context.ccExpression()[1]); - if (left == null || right == null) - { - return null; - } - var leftValue = _letCoercions[left.GetType()].ToDecimal(left); - var rightValue = _letCoercions[right.GetType()].ToDecimal(right); - return leftValue / rightValue; - } - - private object Visit(VBAConditionalCompilationParser.LiteralContext context) - { - if (context.HEXLITERAL() != null) - { - return VisitHexLiteral(context); - } - else if (context.OCTLITERAL() != null) - { - return VisitOctLiteral(context); - } - else if (context.DATELITERAL() != null) - { - return VisitDateLiteral(context); - } - else if (context.DOUBLELITERAL() != null) - { - return VisitDoubleLiteral(context); - } - else if (context.INTEGERLITERAL() != null) - { - return VisitIntegerLiteral(context); - } - else if (context.SHORTLITERAL() != null) - { - return VisitShortLiteral(context); - } - else if (context.STRINGLITERAL() != null) - { - return VisitStringLiteral(context); - } - else if (context.TRUE() != null) - { - return true; - } - else if (context.FALSE() != null) - { - return false; - } - else if (context.NOTHING() != null || context.NULL() != null) - { - return null; - } - else if (context.EMPTY() != null) - { - return VBAEmptyValue.Value; - } - throw new Exception(string.Format("Unexpected literal encountered: {0}", context.GetText())); - } - - private object VisitStringLiteral(VBAConditionalCompilationParser.LiteralContext context) - { - var str = context.STRINGLITERAL().GetText(); - // Remove quotes - return str.Substring(1, str.Length - 2); - } - - private object VisitShortLiteral(VBAConditionalCompilationParser.LiteralContext context) - { - string literal = context.SHORTLITERAL().GetText(); - return decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", "")); - } - - private object VisitIntegerLiteral(VBAConditionalCompilationParser.LiteralContext context) - { - string literal = context.INTEGERLITERAL().GetText(); - return decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float); - } - - private object VisitDoubleLiteral(VBAConditionalCompilationParser.LiteralContext context) - { - string literal = context.DOUBLELITERAL().GetText(); - return decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float); - } - - /// - /// Interprets date tokens as defined in 3.3.3 Date Tokens of the VBA specification. - /// - private object VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext context) - { - string literal = context.DATELITERAL().GetText(); - var stream = new AntlrInputStream(literal); - var lexer = new VBADateLexer(stream); - var tokens = new CommonTokenStream(lexer); - var parser = new VBADateParser(tokens); - var dateLiteral = parser.dateLiteral(); - var dateOrTime = dateLiteral.dateOrTime(); - int year; - int month; - int day; - int hours; - int mins; - int seconds; - - Predicate legalMonth = (x) => x >= 0 && x <= 12; - Func legalDay = (m, d, y) => - { - bool legalYear = y >= 0 && y <= 32767; - bool legalM = legalMonth(m); - bool legalD = false; - if (legalYear && legalM) - { - int daysInMonth = DateTime.DaysInMonth(y, m); - legalD = d >= 1 && d <= daysInMonth; - } - return legalYear && legalM && legalD; - }; - - Func yearFunc = (x) => - { - if (x >= 0 && x <= 29) - { - return x + 2000; - } - else if (x >= 30 && x <= 99) - { - return x + 1900; - } - else - { - return x; - } - }; - - int CY = DateTime.Now.Year; - - if (dateOrTime.dateValue() == null) - { - year = 1899; - month = 12; - day = 30; - } - else - { - var dateValue = dateOrTime.dateValue(); - var txt = dateOrTime.GetText(); - var L = dateValue.dateValuePart()[0]; - var M = dateValue.dateValuePart()[1]; - VBADateParser.DateValuePartContext R = null; - if (dateValue.dateValuePart().Count == 3) - { - R = dateValue.dateValuePart()[2]; - } - // "If L and M are numbers and R is not present:" - if (L.dateValueNumber() != null && M.dateValueNumber() != null && R == null) - { - var LNumber = int.Parse(L.GetText()); - var MNumber = int.Parse(M.GetText()); - if (legalMonth(LNumber) && legalDay(LNumber, MNumber, CY)) - { - month = LNumber; - day = MNumber; - year = CY; - } - else if ((legalMonth(MNumber) && legalDay(MNumber, LNumber, CY))) - { - month = MNumber; - day = LNumber; - year = CY; - } - else if (legalMonth(LNumber)) - { - month = LNumber; - day = 1; - year = MNumber; - } - else if (legalMonth(MNumber)) - { - month = MNumber; - day = 1; - year = LNumber; - } - else - { - throw new Exception("Invalid date: " + dateLiteral.GetText()); - } - } - // "If L, M, and R are numbers:" - else if (L.dateValueNumber() != null && M.dateValueNumber() != null && R != null && R.dateValueNumber() != null) - { - var LNumber = int.Parse(L.GetText()); - var MNumber = int.Parse(M.GetText()); - var RNumber = int.Parse(R.GetText()); - if (legalMonth(LNumber) && legalDay(LNumber, MNumber, yearFunc(RNumber))) - { - month = LNumber; - day = MNumber; - year = yearFunc(RNumber); - } - else if (legalMonth(MNumber) && legalDay(MNumber, RNumber, yearFunc(LNumber))) - { - month = MNumber; - day = RNumber; - year = yearFunc(LNumber); - } - else if (legalMonth(MNumber) && legalDay(MNumber, LNumber, yearFunc(RNumber))) - { - month = MNumber; - day = LNumber; - year = yearFunc(RNumber); - } - else - { - throw new Exception("Invalid date: " + dateLiteral.GetText()); - } - } - // "If either L or M is not a number and R is not present:" - else if ((L.dateValueNumber() == null || M.dateValueNumber() == null) && R == null) - { - int N; - string monthName; - if (L.dateValueNumber() != null) - { - N = int.Parse(L.GetText()); - monthName = M.GetText(); - } - else - { - N = int.Parse(M.GetText()); - monthName = L.GetText(); - } - int monthNameNumber; - if (monthName.Length == 3) - { - monthNameNumber = DateTime.ParseExact(monthName, "MMM", CultureInfo.InvariantCulture).Month; - } - else - { - monthNameNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.InvariantCulture).Month; - } - if (legalDay(monthNameNumber, N, CY)) - { - month = monthNameNumber; - day = N; - year = CY; - } - else - { - month = monthNameNumber; - day = 1; - year = N; - } - } - // "Otherwise, R is present and one of L, M, and R is not a number:" - else - { - int N1; - int N2; - string monthName; - if (L.dateValueNumber() == null) - { - monthName = L.GetText(); - N1 = int.Parse(M.GetText()); - N2 = int.Parse(R.GetText()); - } - else if (M.dateValueNumber() == null) - { - monthName = M.GetText(); - N1 = int.Parse(L.GetText()); - N2 = int.Parse(R.GetText()); - } - else - { - monthName = R.GetText(); - N1 = int.Parse(L.GetText()); - N2 = int.Parse(M.GetText()); - } - int monthNameNumber; - if (monthName.Length == 3) - { - monthNameNumber = DateTime.ParseExact(monthName, "MMM", CultureInfo.InvariantCulture).Month; - } - else - { - monthNameNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.InvariantCulture).Month; - } - if (legalDay(monthNameNumber, N1, yearFunc(N2))) - { - month = monthNameNumber; - day = N1; - year = yearFunc(N2); - } - else if (legalDay(monthNameNumber, N2, yearFunc(N1))) - { - month = monthNameNumber; - day = N2; - year = yearFunc(N1); - } - else - { - throw new Exception("Invalid date: " + dateLiteral.GetText()); - } - } - } - - if (dateOrTime.timeValue() == null) - { - hours = 0; - mins = 0; - seconds = 0; - } - else - { - var timeValue = dateOrTime.timeValue(); - hours = int.Parse(timeValue.timeValuePart()[0].GetText()); - if (timeValue.timeValuePart().Count == 1) - { - mins = 0; - } - else - { - mins = int.Parse(timeValue.timeValuePart()[1].GetText()); - } - if (timeValue.timeValuePart().Count < 3) - { - seconds = 0; - } - else - { - seconds = int.Parse(timeValue.timeValuePart()[2].GetText()); - } - var amPm = timeValue.AMPM(); - if (amPm != null && (amPm.GetText().ToUpper() == "P" || amPm.GetText().ToUpper() == "PM") && hours >= 0 && hours <= 11) - { - hours += 12; - } - else if (amPm != null && (amPm.GetText().ToUpper() == "A" || amPm.GetText().ToUpper() == "AM") && hours == 12) - { - hours = 0; - } - } - var date = new DateTime(year, month, day, hours, mins, seconds); - return date; - } - - private object VisitOctLiteral(VBAConditionalCompilationParser.LiteralContext context) - { - string literal = context.OCTLITERAL().GetText(); - literal = literal.Replace("&O", "").Replace("&", ""); - return (decimal)Convert.ToInt32(literal, 8); - } - - private object VisitHexLiteral(VBAConditionalCompilationParser.LiteralContext context) - { - string literal = context.HEXLITERAL().GetText(); - literal = literal.Replace("&H", "").Replace("&", ""); - return (decimal)int.Parse(literal, System.Globalization.NumberStyles.HexNumber); - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs index 79263c418e..63c7cad5a4 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs @@ -17,7 +17,7 @@ public string Process(string unprocessedCode) { try { - SymbolTable symbolTable = new SymbolTable(); + SymbolTable symbolTable = new SymbolTable(); var stream = new AntlrInputStream(unprocessedCode); var lexer = new VBAConditionalCompilationLexer(stream); var tokens = new CommonTokenStream(lexer); @@ -25,8 +25,8 @@ public string Process(string unprocessedCode) parser.AddErrorListener(new ExceptionErrorListener()); var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion)); var tree = parser.compilationUnit(); - var preprocessedModuleBody = (string)evaluator.Visit(tree); - return preprocessedModuleBody; + var expr = evaluator.Visit(tree); + return expr.Evaluate().AsString; } catch (Exception ex) { diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs index 97910f8367..177f91ad08 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs @@ -1,129 +1,446 @@ -using Antlr4.Runtime; -using Antlr4.Runtime.Misc; -using Rubberduck.Parsing.Date; -using Rubberduck.Parsing.Like; +using Antlr4.Runtime.Misc; using System; -using System.Collections.Generic; using System.Globalization; using System.Linq; -using System.Text; -using System.Text.RegularExpressions; namespace Rubberduck.Parsing.Preprocessing { - public sealed class VBAPreprocessorVisitor : VBAConditionalCompilationBaseVisitor + public sealed class VBAPreprocessorVisitor : VBAConditionalCompilationBaseVisitor { - private readonly VBAExpressionEvaluator _evaluator; + private readonly SymbolTable _symbolTable; - public VBAPreprocessorVisitor(SymbolTable symbolTable, VBAPredefinedCompilationConstants predefinedConstants) + public VBAPreprocessorVisitor(SymbolTable symbolTable, VBAPredefinedCompilationConstants predefinedConstants) { - _evaluator = new VBAExpressionEvaluator(symbolTable); - _evaluator.AddConstant(VBAPredefinedCompilationConstants.VBA6_NAME, predefinedConstants.VBA6); - _evaluator.AddConstant(VBAPredefinedCompilationConstants.VBA7_NAME, predefinedConstants.VBA7); - _evaluator.AddConstant(VBAPredefinedCompilationConstants.WIN64_NAME, predefinedConstants.Win64); - _evaluator.AddConstant(VBAPredefinedCompilationConstants.WIN32_NAME, predefinedConstants.Win32); - _evaluator.AddConstant(VBAPredefinedCompilationConstants.WIN16_NAME, predefinedConstants.Win16); - _evaluator.AddConstant(VBAPredefinedCompilationConstants.MAC_NAME, predefinedConstants.Mac); + _symbolTable = symbolTable; + _symbolTable.Add(VBAPredefinedCompilationConstants.VBA6_NAME, new BoolValue(predefinedConstants.VBA6)); + _symbolTable.Add(VBAPredefinedCompilationConstants.VBA7_NAME, new BoolValue(predefinedConstants.VBA7)); + _symbolTable.Add(VBAPredefinedCompilationConstants.WIN64_NAME, new BoolValue(predefinedConstants.Win64)); + _symbolTable.Add(VBAPredefinedCompilationConstants.WIN32_NAME, new BoolValue(predefinedConstants.Win32)); + _symbolTable.Add(VBAPredefinedCompilationConstants.WIN16_NAME, new BoolValue(predefinedConstants.Win16)); + _symbolTable.Add(VBAPredefinedCompilationConstants.MAC_NAME, new BoolValue(predefinedConstants.Mac)); } - public override object VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) + public override IExpression VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) { return Visit(context.ccBlock()); } - public override object VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) + public override IExpression VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) { - return context.GetText(); + return new ConstantExpression(new StringValue(context.GetText())); } - public override object VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) + public override IExpression VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) { - var results = new List(); if (context.children == null) { - return string.Empty; + return new ConstantExpression(EmptyValue.Value); } - foreach (var child in context.children) - { - results.Add(Visit(child)); - } - return string.Join(string.Empty, results); + return new ConditionalCompilationBlockExpression(context.children.Select(child => Visit(child)).ToList()); } - public override object VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) + public override IExpression VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { - // 3.4.1: If is a with a , the is ignored. - var identifier = context.ccVarLhs().name().IDENTIFIER().GetText(); - _evaluator.EvaluateConstant(identifier, context.ccExpression()); - return MarkLineAsDead(context.GetText()); + return new ConditionalCompilationConstantExpression( + new ConstantExpression(new StringValue(context.GetText())), + new ConstantExpression(new StringValue(context.ccVarLhs().name().IDENTIFIER().GetText())), + Visit(context.ccExpression()), + _symbolTable); } - public override object VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) + public override IExpression VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { - StringBuilder builder = new StringBuilder(); - List conditions = new List(); - builder.Append(MarkLineAsDead(context.ccIf().GetText())); - var ifIsAlive = _evaluator.EvaluateCondition(context.ccIf().ccExpression()); - conditions.Add(ifIsAlive); - var ifBlock = (string)Visit(context.ccBlock()); - builder.Append(EvaluateLiveliness(ifBlock, ifIsAlive)); - foreach (var elseIfBlock in context.ccElseIfBlock()) - { - builder.Append(MarkLineAsDead(elseIfBlock.ccElseIf().GetText())); - var elseIfIsAlive = _evaluator.EvaluateCondition(elseIfBlock.ccElseIf().ccExpression()); - conditions.Add(elseIfIsAlive); - var block = (string)Visit(elseIfBlock.ccBlock()); - builder.Append(EvaluateLiveliness(block, elseIfIsAlive)); - } + var ifCondCode = new ConstantExpression(new StringValue(context.ccIf().GetText())); + var ifCond = Visit(context.ccIf().ccExpression()); + var ifBlock = Visit(context.ccBlock()); + var elseIfCodeCondBlocks = context + .ccElseIfBlock() + .Select(elseIf => + Tuple.Create( + new ConstantExpression(new StringValue(elseIf.ccElseIf().GetText())), + Visit(elseIf.ccElseIf().ccExpression()), + Visit(elseIf.ccBlock()))).ToList(); + + IExpression elseCondCode = null; + IExpression elseBlock = null; if (context.ccElseBlock() != null) { - builder.Append(MarkLineAsDead(context.ccElseBlock().ccElse().GetText())); - var block = (string)Visit(context.ccElseBlock().ccBlock()); - var elseIsAlive = conditions.All(condition => !condition); - builder.Append(EvaluateLiveliness(block, elseIsAlive)); + elseCondCode = new ConstantExpression(new StringValue(context.ccElseBlock().ccElse().GetText())); + elseBlock = Visit(context.ccElseBlock().ccBlock()); } - builder.Append(MarkLineAsDead(context.ccEndIf().GetText())); - return builder.ToString(); + IExpression endIf = new ConstantExpression(new StringValue(context.ccEndIf().GetText())); + return new ConditionalCompilationIfExpression( + ifCondCode, + ifCond, + ifBlock, + elseIfCodeCondBlocks, + elseCondCode, + elseBlock, + endIf); + } + + private IExpression Visit(VBAConditionalCompilationParser.NameContext context) + { + return new NameExpression( + new ConstantExpression(new StringValue(context.IDENTIFIER().GetText())), + _symbolTable); + } + + private IExpression VisitUnaryMinus(VBAConditionalCompilationParser.CcExpressionContext context) + { + return new UnaryMinusExpression(Visit(context.ccExpression()[0])); } - private string EvaluateLiveliness(string code, bool isAlive) + private IExpression VisitUnaryNot(VBAConditionalCompilationParser.CcExpressionContext context) { - if (isAlive) + return new UnaryNotExpression(Visit(context.ccExpression()[0])); + } + + private IExpression VisitPlus(VBAConditionalCompilationParser.CcExpressionContext context) + { + return new BinaryPlusExpression(Visit(context.ccExpression()[0]), Visit(context.ccExpression()[1])); + } + + private IExpression VisitMinus(VBAConditionalCompilationParser.CcExpressionContext context) + { + return new BinaryMinusExpression(Visit(context.ccExpression()[0]), Visit(context.ccExpression()[1])); + } + + private IExpression Visit(VBAConditionalCompilationParser.CcExpressionContext context) + { + if (context.literal() != null) + { + return Visit(context.literal()); + } + else if (context.name() != null) + { + return Visit(context.name()); + } + else if (context.L_PAREN() != null) + { + return Visit(context.ccExpression()[0]); + } + else if (context.MINUS() != null && context.ccExpression().Count == 1) + { + return VisitUnaryMinus(context); + } + else if (context.NOT() != null) + { + return VisitUnaryNot(context); + } + else if (context.PLUS() != null) + { + return VisitPlus(context); + } + else if (context.MINUS() != null && context.ccExpression().Count == 2) + { + return VisitMinus(context); + } + else if (context.MULT() != null) + { + return VisitMult(context); + } + else if (context.DIV() != null) + { + return VisitDiv(context); + } + else if (context.INTDIV() != null) + { + return VisitIntDiv(context); + } + else if (context.MOD() != null) + { + return VisitMod(context); + } + else if (context.POW() != null) { - return code; + return VisitPow(context); + } + else if (context.AMPERSAND() != null) + { + return VisitConcat(context); + } + else if (context.EQ() != null) + { + return VisitEq(context); + } + else if (context.NEQ() != null) + { + return VisitNeq(context); + } + else if (context.LT() != null) + { + return VisitLt(context); + } + else if (context.GT() != null) + { + return VisitGt(context); + } + else if (context.LEQ() != null) + { + return VisitLeq(context); + } + else if (context.GEQ() != null) + { + return VisitGeq(context); + } + else if (context.AND() != null) + { + return VisitAnd(context); + } + else if (context.OR() != null) + { + return VisitOr(context); + } + else if (context.XOR() != null) + { + return VisitXor(context); + } + else if (context.EQV() != null) + { + return VisitEqv(context); + } + else if (context.IMP() != null) + { + return VisitImp(context); + } + else if (context.IS() != null) + { + return VisitIs(context); + } + else if (context.LIKE() != null) + { + return VisitLike(context); } else { - return MarkAsDead(code); + return VisitLibraryFunction(context); } } - private string MarkAsDead(string code) + private IExpression VisitLibraryFunction(VBAConditionalCompilationParser.CcExpressionContext context) + { + var intrinsicFunction = context.intrinsicFunction(); + var functionName = intrinsicFunction.intrinsicFunctionName().GetText(); + var argument = Visit(intrinsicFunction.ccExpression()); + return VBAEnvironment.CreateLibraryFunction(functionName, argument); + } + + private IExpression VisitLike(VBAConditionalCompilationParser.CcExpressionContext context) + { + var expr = Visit(context.ccExpression()[0]); + var pattern = Visit(context.ccExpression()[1]); + return new LikeExpression(expr, pattern); + } + + private IExpression VisitIs(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new IsExpression(left, right); + } + + private IExpression VisitImp(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalImpExpression(left, right); + } + + private IExpression VisitEqv(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalEqvExpression(left, right); + } + + private IExpression VisitXor(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalXorExpression(left, right); + } + + private IExpression VisitOr(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalOrExpression(left, right); + } + + private IExpression VisitAnd(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalAndExpression(left, right); + } + + private IExpression VisitGeq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalGreaterOrEqualsExpression(left, right); + } + + private IExpression VisitLeq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalLessOrEqualsExpression(left, right); + } + + private IExpression VisitGt(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalGreaterThanExpression(left, right); + } + + private IExpression VisitLt(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalLessThanExpression(left, right); + } + + private IExpression VisitNeq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalNotEqualsExpression(left, right); + } + + private IExpression VisitEq(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new LogicalEqualsExpression(left, right); + } + + private IExpression VisitConcat(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new ConcatExpression(left, right); + } + + private IExpression VisitPow(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new PowExpression(left, right); + } + + private IExpression VisitMod(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new ModExpression(left, right); + } + + private IExpression VisitIntDiv(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new BinaryIntDivExpression(left, right); + } + + private IExpression VisitMult(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new BinaryMultiplicationExpression(left, right); + } + + private IExpression VisitDiv(VBAConditionalCompilationParser.CcExpressionContext context) + { + var left = Visit(context.ccExpression()[0]); + var right = Visit(context.ccExpression()[1]); + return new BinaryDivisionExpression(left, right); + } + + private IExpression Visit(VBAConditionalCompilationParser.LiteralContext context) { - bool hasNewLine = false; - if (code.EndsWith(Environment.NewLine)) + if (context.HEXLITERAL() != null) + { + return VisitHexLiteral(context); + } + else if (context.OCTLITERAL() != null) + { + return VisitOctLiteral(context); + } + else if (context.DATELITERAL() != null) + { + return VisitDateLiteral(context); + } + else if (context.DOUBLELITERAL() != null) + { + return VisitDoubleLiteral(context); + } + else if (context.INTEGERLITERAL() != null) + { + return VisitIntegerLiteral(context); + } + else if (context.SHORTLITERAL() != null) + { + return VisitShortLiteral(context); + } + else if (context.STRINGLITERAL() != null) + { + return VisitStringLiteral(context); + } + else if (context.TRUE() != null) + { + return new ConstantExpression(new BoolValue(true)); + } + else if (context.FALSE() != null) + { + return new ConstantExpression(new BoolValue(false)); + } + else if (context.NOTHING() != null || context.NULL() != null) { - hasNewLine = true; + return new ConstantExpression(null); } - // Remove parsed new line. - code = code.TrimEnd('\r', '\n'); - var lines = code.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); - var result = string.Join(Environment.NewLine, lines.Select(_ => string.Empty)); - if (hasNewLine) + else if (context.EMPTY() != null) { - result += Environment.NewLine; + return new ConstantExpression(EmptyValue.Value); } - return result; + throw new Exception(string.Format("Unexpected literal encountered: {0}", context.GetText())); } - private string MarkLineAsDead(string line) + private IExpression VisitStringLiteral(VBAConditionalCompilationParser.LiteralContext context) { - var result = string.Empty; - if (line.EndsWith(Environment.NewLine)) - { - result += Environment.NewLine; - } - return result; + return new StringLiteralExpression(new ConstantExpression(new StringValue(context.STRINGLITERAL().GetText()))); + } + + private IExpression VisitShortLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + return new NumberLiteralExpression(new ConstantExpression(new StringValue(context.SHORTLITERAL().GetText()))); + } + + private IExpression VisitIntegerLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + return new NumberLiteralExpression(new ConstantExpression(new StringValue(context.INTEGERLITERAL().GetText()))); + } + + private IExpression VisitDoubleLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + return new NumberLiteralExpression(new ConstantExpression(new StringValue(context.DOUBLELITERAL().GetText()))); + } + + private IExpression VisitDateLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + return new DateLiteralExpression(new ConstantExpression(new StringValue(context.DATELITERAL().GetText()))); + } + + private IExpression VisitOctLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + return new OctNumberLiteralExpression(new ConstantExpression(new StringValue(context.OCTLITERAL().GetText()))); + } + + private IExpression VisitHexLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + return new HexNumberLiteralExpression(new ConstantExpression(new StringValue(context.HEXLITERAL().GetText()))); } } } diff --git a/Rubberduck.Parsing/Preprocessing/ValueType.cs b/Rubberduck.Parsing/Preprocessing/ValueType.cs new file mode 100644 index 0000000000..3942dbe09a --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/ValueType.cs @@ -0,0 +1,12 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public enum ValueType + { + Empty, + Bool, + Byte, + Decimal, + Date, + String + } +} diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 781050918a..d46c02d7c2 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -69,17 +69,75 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,9 +146,6 @@ - - - @@ -98,7 +153,6 @@ - diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index 14e9907fa8..a6b03e6087 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -36,9 +36,9 @@ public void TestName() "; var result = Preprocess(code); Assert.AreEqual(result.Item1.Get("b"), result.Item1.Get("a")); - Assert.AreEqual(VBAEmptyValue.Value, result.Item1.Get("c")); - Assert.AreEqual(1m, result.Item1.Get("d")); - Assert.AreEqual(1m, result.Item1.Get("e")); + Assert.AreEqual(EmptyValue.Value, result.Item1.Get("c")); + Assert.AreEqual(1m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("e").AsDecimal); } [TestMethod] @@ -55,14 +55,14 @@ public void TestMinusUnaryOperator() #Const h = -Empty "; var result = Preprocess(code); - Assert.AreEqual(-5m, result.Item1.Get("a")); - Assert.AreEqual(-767011m, result.Item1.Get("b")); - Assert.AreEqual(new DateTime(1783, 12, 28), result.Item1.Get("c")); - Assert.AreEqual(1m, result.Item1.Get("d")); - Assert.AreEqual(0m, result.Item1.Get("e")); + Assert.AreEqual(-5m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(-767011m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(new DateTime(1783, 12, 28), result.Item1.Get("c").AsDate); + Assert.AreEqual(1m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("e").AsDecimal); Assert.AreEqual(null, result.Item1.Get("f")); - Assert.AreEqual(5m, result.Item1.Get("g")); - Assert.AreEqual(0m, result.Item1.Get("h")); + Assert.AreEqual(5m, result.Item1.Get("g").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("h").AsDecimal); } [TestMethod] @@ -77,12 +77,12 @@ public void TestNotUnaryOperator() #Const f = Not Empty "; var result = Preprocess(code); - Assert.AreEqual(-25m, result.Item1.Get("a")); - Assert.AreEqual(-3m, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); + Assert.AreEqual(-25m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(-3m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); Assert.AreEqual(null, result.Item1.Get("d")); - Assert.AreEqual(-2m, result.Item1.Get("e")); - Assert.AreEqual(-1m, result.Item1.Get("f")); + Assert.AreEqual(-2m, result.Item1.Get("e").AsDecimal); + Assert.AreEqual(-1m, result.Item1.Get("f").AsDecimal); } [TestMethod] @@ -96,11 +96,11 @@ public void TestPlusOperator() #Const e = ""5"" + ""4"" "; var result = Preprocess(code); - Assert.AreEqual(1544.242m, result.Item1.Get("a")); - Assert.AreEqual(new DateTime(2298, 3, 7), result.Item1.Get("b")); - Assert.AreEqual(-2m, result.Item1.Get("c")); + Assert.AreEqual(1544.242m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(new DateTime(2298, 3, 7), result.Item1.Get("b").AsDate); + Assert.AreEqual(-2m, result.Item1.Get("c").AsDecimal); Assert.AreEqual(null, result.Item1.Get("d")); - Assert.AreEqual("54", result.Item1.Get("e")); + Assert.AreEqual("54", result.Item1.Get("e").AsString); } [TestMethod] @@ -116,13 +116,13 @@ public void TestMinusOperator() #Const g = #1/1/2400# - #1/1/1800# - #1/1/1800# "; var result = Preprocess(code); - Assert.AreEqual(2m, result.Item1.Get("a")); - Assert.AreEqual(184018m, result.Item1.Get("b")); - Assert.AreEqual(2m, result.Item1.Get("c")); + Assert.AreEqual(2m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(184018m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(2m, result.Item1.Get("c").AsDecimal); Assert.AreEqual(null, result.Item1.Get("d")); - Assert.AreEqual(2m, result.Item1.Get("e")); - Assert.AreEqual(new DateTime(2350, 12, 30), result.Item1.Get("f")); - Assert.AreEqual(new DateTime(2599, 12, 27), result.Item1.Get("g")); + Assert.AreEqual(2m, result.Item1.Get("e").AsDecimal); + Assert.AreEqual(new DateTime(2350, 12, 30), result.Item1.Get("f").AsDate); + Assert.AreEqual(new DateTime(2599, 12, 27), result.Item1.Get("g").AsDate); } [TestMethod] @@ -138,11 +138,11 @@ public void TestIntFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(0m, result.Item1.Get("b")); - Assert.AreEqual(5m, result.Item1.Get("c")); - Assert.AreEqual(-1m, result.Item1.Get("d")); - Assert.AreEqual(new DateTime(2016, 1, 30), result.Item1.Get("e")); - Assert.AreEqual(10m, result.Item1.Get("f")); + Assert.AreEqual(0m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(5m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(-1m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(new DateTime(2016, 1, 30), result.Item1.Get("e").AsDate); + Assert.AreEqual(10m, result.Item1.Get("f").AsDecimal); } [TestMethod] @@ -158,11 +158,11 @@ public void TestFixFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(0m, result.Item1.Get("b")); - Assert.AreEqual(5m, result.Item1.Get("c")); - Assert.AreEqual(-1m, result.Item1.Get("d")); - Assert.AreEqual(new DateTime(2016, 1, 30), result.Item1.Get("e")); - Assert.AreEqual(10m, result.Item1.Get("f")); + Assert.AreEqual(0m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(5m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(-1m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(new DateTime(2016, 1, 30), result.Item1.Get("e").AsDate); + Assert.AreEqual(10m, result.Item1.Get("f").AsDecimal); } [TestMethod] @@ -178,11 +178,11 @@ public void TestAbsFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(0m, result.Item1.Get("b")); - Assert.AreEqual(30m, result.Item1.Get("c")); - Assert.AreEqual(1m, result.Item1.Get("d")); - Assert.AreEqual(new DateTime(2794, 12, 9), result.Item1.Get("e")); - Assert.AreEqual(50m, result.Item1.Get("f")); + Assert.AreEqual(0m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(30m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(new DateTime(2794, 12, 9), result.Item1.Get("e").AsDate); + Assert.AreEqual(50m, result.Item1.Get("f").AsDecimal); } [TestMethod] @@ -197,11 +197,11 @@ public void TestSgnFunction() #Const f = Sgn(Nothing) "; var result = Preprocess(code); - Assert.AreEqual(-1m, result.Item1.Get("a")); - Assert.AreEqual(1m, result.Item1.Get("b")); - Assert.AreEqual(0m, result.Item1.Get("c")); - Assert.AreEqual(-1m, result.Item1.Get("d")); - Assert.AreEqual(0m, result.Item1.Get("e")); + Assert.AreEqual(-1m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(-1m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("e").AsDecimal); Assert.AreEqual(null, result.Item1.Get("f")); } @@ -217,8 +217,8 @@ public void TestLenFunction() var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); Assert.AreEqual(null, result.Item1.Get("b")); - Assert.AreEqual(0m, result.Item1.Get("c")); - Assert.AreEqual(3m, result.Item1.Get("d")); + Assert.AreEqual(0m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(3m, result.Item1.Get("d").AsDecimal); } [TestMethod] @@ -233,8 +233,8 @@ public void TestLenBFunction() var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); Assert.AreEqual(null, result.Item1.Get("b")); - Assert.AreEqual(0m, result.Item1.Get("c")); - Assert.AreEqual(6m, result.Item1.Get("d")); + Assert.AreEqual(0m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(6m, result.Item1.Get("d").AsDecimal); } [TestMethod] @@ -259,20 +259,20 @@ public void TestCBoolFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(false, result.Item1.Get("e")); - Assert.AreEqual(true, result.Item1.Get("f")); - Assert.AreEqual(false, result.Item1.Get("g")); - Assert.AreEqual(true, result.Item1.Get("h")); - Assert.AreEqual(false, result.Item1.Get("i")); - Assert.AreEqual(true, result.Item1.Get("j")); - Assert.AreEqual(false, result.Item1.Get("k")); - Assert.AreEqual(false, result.Item1.Get("l")); - Assert.AreEqual(true, result.Item1.Get("m")); - Assert.AreEqual(false, result.Item1.Get("n")); - Assert.AreEqual(true, result.Item1.Get("o")); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(false, result.Item1.Get("e").AsBool); + Assert.AreEqual(true, result.Item1.Get("f").AsBool); + Assert.AreEqual(false, result.Item1.Get("g").AsBool); + Assert.AreEqual(true, result.Item1.Get("h").AsBool); + Assert.AreEqual(false, result.Item1.Get("i").AsBool); + Assert.AreEqual(true, result.Item1.Get("j").AsBool); + Assert.AreEqual(false, result.Item1.Get("k").AsBool); + Assert.AreEqual(false, result.Item1.Get("l").AsBool); + Assert.AreEqual(true, result.Item1.Get("m").AsBool); + Assert.AreEqual(false, result.Item1.Get("n").AsBool); + Assert.AreEqual(true, result.Item1.Get("o").AsBool); } [TestMethod] @@ -292,15 +292,15 @@ public void TestCByteFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("b")); - Assert.AreEqual(Convert.ToByte(255), result.Item1.Get("c")); - Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("d")); - Assert.AreEqual(Convert.ToByte(1), result.Item1.Get("e")); - Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("f")); - Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("g")); - Assert.AreEqual(Convert.ToByte(1), result.Item1.Get("h")); - Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("i")); - Assert.AreEqual(Convert.ToByte(1), result.Item1.Get("j")); + Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("b").AsByte); + Assert.AreEqual(Convert.ToByte(255), result.Item1.Get("c").AsByte); + Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("d").AsByte); + Assert.AreEqual(Convert.ToByte(1), result.Item1.Get("e").AsByte); + Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("f").AsByte); + Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("g").AsByte); + Assert.AreEqual(Convert.ToByte(1), result.Item1.Get("h").AsByte); + Assert.AreEqual(Convert.ToByte(0), result.Item1.Get("i").AsByte); + Assert.AreEqual(Convert.ToByte(1), result.Item1.Get("j").AsByte); } [TestMethod] @@ -339,13 +339,13 @@ public void TestCDateFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("b")); - Assert.AreEqual(new DateTime(1899, 12, 29), result.Item1.Get("c")); - Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("d")); - Assert.AreEqual(new DateTime(1899, 12, 31), result.Item1.Get("e")); - Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("f")); - Assert.AreEqual(new DateTime(1899, 12, 31), result.Item1.Get("g")); - Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("h")); + Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("b").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 29), result.Item1.Get("c").AsDate); + Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("d").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 31), result.Item1.Get("e").AsDate); + Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("f").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 31), result.Item1.Get("g").AsDate); + Assert.AreEqual(VBADateConstants.EPOCH_START, result.Item1.Get("h").AsDate); } [TestMethod] @@ -362,12 +362,12 @@ public void TestCStrFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(string.Empty, result.Item1.Get("b")); - Assert.AreEqual("True", result.Item1.Get("c")); - Assert.AreEqual("False", result.Item1.Get("d")); - Assert.AreEqual(345.23.ToString(), result.Item1.Get("e")); - Assert.AreEqual(new DateTime(1899, 12, 30, 2, 1, 0).ToLongTimeString(), result.Item1.Get("f")); - Assert.AreEqual(new DateTime(2016, 1, 31).ToShortDateString(), result.Item1.Get("g")); + Assert.AreEqual(string.Empty, result.Item1.Get("b").AsString); + Assert.AreEqual("True", result.Item1.Get("c").AsString); + Assert.AreEqual("False", result.Item1.Get("d").AsString); + Assert.AreEqual(345.23.ToString(), result.Item1.Get("e").AsString); + Assert.AreEqual(new DateTime(1899, 12, 30, 2, 1, 0).ToLongTimeString(), result.Item1.Get("f").AsString); + Assert.AreEqual(new DateTime(2016, 1, 31).ToShortDateString(), result.Item1.Get("g").AsString); } [TestMethod] @@ -380,8 +380,8 @@ public void TestCVariantFunction() "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(VBAEmptyValue.Value, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); + Assert.AreEqual(EmptyValue.Value, result.Item1.Get("b")); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); } private void AssertIntrinsicNumberFunction(string functionName) @@ -399,13 +399,13 @@ private void AssertIntrinsicNumberFunction(string functionName) code = string.Format(code, functionName); var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); - Assert.AreEqual(0m, result.Item1.Get("b")); - Assert.AreEqual(-1m, result.Item1.Get("c")); - Assert.AreEqual(0m, result.Item1.Get("d")); - Assert.AreEqual(1m, result.Item1.Get("e")); - Assert.AreEqual(0m, result.Item1.Get("f")); - Assert.AreEqual(0m, result.Item1.Get("g")); - Assert.AreEqual(1m, result.Item1.Get("h")); + Assert.AreEqual(0m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(-1m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("e").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("f").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("g").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("h").AsDecimal); } [TestMethod] @@ -427,19 +427,19 @@ public void TestLikeOperator() #Const m = ""]*!"" Like ""][*a[!][a[!]"" "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); - Assert.AreEqual(false, result.Item1.Get("d")); - Assert.AreEqual(true, result.Item1.Get("e")); - Assert.AreEqual(false, result.Item1.Get("f")); - Assert.AreEqual(true, result.Item1.Get("g")); - Assert.AreEqual(false, result.Item1.Get("h")); - Assert.AreEqual(true, result.Item1.Get("i")); - Assert.AreEqual(false, result.Item1.Get("j")); - Assert.AreEqual(true, result.Item1.Get("k")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(false, result.Item1.Get("d").AsBool); + Assert.AreEqual(true, result.Item1.Get("e").AsBool); + Assert.AreEqual(false, result.Item1.Get("f").AsBool); + Assert.AreEqual(true, result.Item1.Get("g").AsBool); + Assert.AreEqual(false, result.Item1.Get("h").AsBool); + Assert.AreEqual(true, result.Item1.Get("i").AsBool); + Assert.AreEqual(false, result.Item1.Get("j").AsBool); + Assert.AreEqual(true, result.Item1.Get("k").AsBool); Assert.AreEqual(null, result.Item1.Get("l")); - Assert.AreEqual(true, result.Item1.Get("m")); + Assert.AreEqual(true, result.Item1.Get("m").AsBool); } [TestMethod] @@ -450,8 +450,8 @@ public void TestIsOperator() #Const b = 1 Is 2 "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); } [TestMethod] @@ -470,14 +470,14 @@ public void TestImpOperator() #Const j = Null Imp Null "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(true, result.Item1.Get("b")); - Assert.AreEqual(false, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(-1m, result.Item1.Get("e")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(true, result.Item1.Get("b").AsBool); + Assert.AreEqual(false, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(-1m, result.Item1.Get("e").AsDecimal); Assert.AreEqual(null, result.Item1.Get("f")); - Assert.AreEqual(-1m, result.Item1.Get("g")); - Assert.AreEqual(5m, result.Item1.Get("h")); + Assert.AreEqual(-1m, result.Item1.Get("g").AsDecimal); + Assert.AreEqual(5m, result.Item1.Get("h").AsDecimal); Assert.AreEqual(null, result.Item1.Get("i")); Assert.AreEqual(null, result.Item1.Get("j")); } @@ -496,11 +496,11 @@ public void TestEqvOperator() #Const h = Null Eqv Null "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); - Assert.AreEqual(false, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(-0m, result.Item1.Get("e")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(false, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(-0m, result.Item1.Get("e").AsDecimal); Assert.AreEqual(null, result.Item1.Get("f")); Assert.AreEqual(null, result.Item1.Get("g")); Assert.AreEqual(null, result.Item1.Get("h")); @@ -520,11 +520,11 @@ public void TestXorOperator() #Const h = Null Xor Null "; var result = Preprocess(code); - Assert.AreEqual(false, result.Item1.Get("a")); - Assert.AreEqual(true, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); - Assert.AreEqual(false, result.Item1.Get("d")); - Assert.AreEqual(-1m, result.Item1.Get("e")); + Assert.AreEqual(false, result.Item1.Get("a").AsBool); + Assert.AreEqual(true, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(false, result.Item1.Get("d").AsBool); + Assert.AreEqual(-1m, result.Item1.Get("e").AsDecimal); Assert.AreEqual(null, result.Item1.Get("f")); Assert.AreEqual(null, result.Item1.Get("g")); Assert.AreEqual(null, result.Item1.Get("h")); @@ -544,13 +544,13 @@ public void TestOrOperator() #Const h = Null Or Null "; var result = Preprocess(code); - Assert.AreEqual(false, result.Item1.Get("a")); - Assert.AreEqual(true, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(-1m, result.Item1.Get("e")); - Assert.AreEqual(true, result.Item1.Get("f")); - Assert.AreEqual(true, result.Item1.Get("g")); + Assert.AreEqual(false, result.Item1.Get("a").AsBool); + Assert.AreEqual(true, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(-1m, result.Item1.Get("e").AsDecimal); + Assert.AreEqual(true, result.Item1.Get("f").AsBool); + Assert.AreEqual(true, result.Item1.Get("g").AsBool); Assert.AreEqual(null, result.Item1.Get("h")); } @@ -570,16 +570,16 @@ public void TestAndOperator() #Const j = Null And 0 "; var result = Preprocess(code); - Assert.AreEqual(false, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); - Assert.AreEqual(false, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(5m, result.Item1.Get("e")); + Assert.AreEqual(false, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(false, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(5m, result.Item1.Get("e").AsDecimal); Assert.AreEqual(null, result.Item1.Get("f")); Assert.AreEqual(null, result.Item1.Get("g")); Assert.AreEqual(null, result.Item1.Get("h")); - Assert.AreEqual(0, result.Item1.Get("i")); - Assert.AreEqual(0, result.Item1.Get("j")); + Assert.AreEqual(0, result.Item1.Get("i").AsDecimal); + Assert.AreEqual(0, result.Item1.Get("j").AsDecimal); } [TestMethod] @@ -608,26 +608,26 @@ public void TestGeqOperator() #Const t = Empty >= Empty "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(true, result.Item1.Get("b")); - Assert.AreEqual(false, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(true, result.Item1.Get("e")); - Assert.AreEqual(false, result.Item1.Get("f")); - Assert.AreEqual(true, result.Item1.Get("g")); - Assert.AreEqual(true, result.Item1.Get("h")); - Assert.AreEqual(false, result.Item1.Get("i")); - Assert.AreEqual(true, result.Item1.Get("j")); - Assert.AreEqual(true, result.Item1.Get("k")); - Assert.AreEqual(false, result.Item1.Get("l")); - Assert.AreEqual(true, result.Item1.Get("m")); - Assert.AreEqual(true, result.Item1.Get("n")); - Assert.AreEqual(false, result.Item1.Get("o")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(true, result.Item1.Get("b").AsBool); + Assert.AreEqual(false, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(true, result.Item1.Get("e").AsBool); + Assert.AreEqual(false, result.Item1.Get("f").AsBool); + Assert.AreEqual(true, result.Item1.Get("g").AsBool); + Assert.AreEqual(true, result.Item1.Get("h").AsBool); + Assert.AreEqual(false, result.Item1.Get("i").AsBool); + Assert.AreEqual(true, result.Item1.Get("j").AsBool); + Assert.AreEqual(true, result.Item1.Get("k").AsBool); + Assert.AreEqual(false, result.Item1.Get("l").AsBool); + Assert.AreEqual(true, result.Item1.Get("m").AsBool); + Assert.AreEqual(true, result.Item1.Get("n").AsBool); + Assert.AreEqual(false, result.Item1.Get("o").AsBool); Assert.AreEqual(null, result.Item1.Get("p")); Assert.AreEqual(null, result.Item1.Get("q")); Assert.AreEqual(null, result.Item1.Get("r")); - Assert.AreEqual(true, result.Item1.Get("s")); - Assert.AreEqual(true, result.Item1.Get("t")); + Assert.AreEqual(true, result.Item1.Get("s").AsBool); + Assert.AreEqual(true, result.Item1.Get("t").AsBool); } [TestMethod] @@ -656,26 +656,26 @@ public void TestGtOperator() #Const t = Empty > Empty "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); - Assert.AreEqual(false, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(false, result.Item1.Get("e")); - Assert.AreEqual(false, result.Item1.Get("f")); - Assert.AreEqual(true, result.Item1.Get("g")); - Assert.AreEqual(false, result.Item1.Get("h")); - Assert.AreEqual(false, result.Item1.Get("i")); - Assert.AreEqual(true, result.Item1.Get("j")); - Assert.AreEqual(false, result.Item1.Get("k")); - Assert.AreEqual(false, result.Item1.Get("l")); - Assert.AreEqual(true, result.Item1.Get("m")); - Assert.AreEqual(false, result.Item1.Get("n")); - Assert.AreEqual(false, result.Item1.Get("o")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(false, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(false, result.Item1.Get("e").AsBool); + Assert.AreEqual(false, result.Item1.Get("f").AsBool); + Assert.AreEqual(true, result.Item1.Get("g").AsBool); + Assert.AreEqual(false, result.Item1.Get("h").AsBool); + Assert.AreEqual(false, result.Item1.Get("i").AsBool); + Assert.AreEqual(true, result.Item1.Get("j").AsBool); + Assert.AreEqual(false, result.Item1.Get("k").AsBool); + Assert.AreEqual(false, result.Item1.Get("l").AsBool); + Assert.AreEqual(true, result.Item1.Get("m").AsBool); + Assert.AreEqual(false, result.Item1.Get("n").AsBool); + Assert.AreEqual(false, result.Item1.Get("o").AsBool); Assert.AreEqual(null, result.Item1.Get("p")); Assert.AreEqual(null, result.Item1.Get("q")); Assert.AreEqual(null, result.Item1.Get("r")); - Assert.AreEqual(true, result.Item1.Get("s")); - Assert.AreEqual(false, result.Item1.Get("t")); + Assert.AreEqual(true, result.Item1.Get("s").AsBool); + Assert.AreEqual(false, result.Item1.Get("t").AsBool); } [TestMethod] @@ -704,26 +704,26 @@ public void TestLeqOperator() #Const t = Empty <= Empty "; var result = Preprocess(code); - Assert.AreEqual(false, result.Item1.Get("a")); - Assert.AreEqual(true, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); - Assert.AreEqual(false, result.Item1.Get("d")); - Assert.AreEqual(true, result.Item1.Get("e")); - Assert.AreEqual(true, result.Item1.Get("f")); - Assert.AreEqual(false, result.Item1.Get("g")); - Assert.AreEqual(true, result.Item1.Get("h")); - Assert.AreEqual(true, result.Item1.Get("i")); - Assert.AreEqual(false, result.Item1.Get("j")); - Assert.AreEqual(true, result.Item1.Get("k")); - Assert.AreEqual(true, result.Item1.Get("l")); - Assert.AreEqual(false, result.Item1.Get("m")); - Assert.AreEqual(true, result.Item1.Get("n")); - Assert.AreEqual(true, result.Item1.Get("o")); + Assert.AreEqual(false, result.Item1.Get("a").AsBool); + Assert.AreEqual(true, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(false, result.Item1.Get("d").AsBool); + Assert.AreEqual(true, result.Item1.Get("e").AsBool); + Assert.AreEqual(true, result.Item1.Get("f").AsBool); + Assert.AreEqual(false, result.Item1.Get("g").AsBool); + Assert.AreEqual(true, result.Item1.Get("h").AsBool); + Assert.AreEqual(true, result.Item1.Get("i").AsBool); + Assert.AreEqual(false, result.Item1.Get("j").AsBool); + Assert.AreEqual(true, result.Item1.Get("k").AsBool); + Assert.AreEqual(true, result.Item1.Get("l").AsBool); + Assert.AreEqual(false, result.Item1.Get("m").AsBool); + Assert.AreEqual(true, result.Item1.Get("n").AsBool); + Assert.AreEqual(true, result.Item1.Get("o").AsBool); Assert.AreEqual(null, result.Item1.Get("p")); Assert.AreEqual(null, result.Item1.Get("q")); Assert.AreEqual(null, result.Item1.Get("r")); - Assert.AreEqual(false, result.Item1.Get("s")); - Assert.AreEqual(true, result.Item1.Get("t")); + Assert.AreEqual(false, result.Item1.Get("s").AsBool); + Assert.AreEqual(true, result.Item1.Get("t").AsBool); } [TestMethod] @@ -752,26 +752,26 @@ public void TestLtOperator() #Const t = Empty < Empty "; var result = Preprocess(code); - Assert.AreEqual(false, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); - Assert.AreEqual(false, result.Item1.Get("d")); - Assert.AreEqual(false, result.Item1.Get("e")); - Assert.AreEqual(true, result.Item1.Get("f")); - Assert.AreEqual(false, result.Item1.Get("g")); - Assert.AreEqual(false, result.Item1.Get("h")); - Assert.AreEqual(true, result.Item1.Get("i")); - Assert.AreEqual(false, result.Item1.Get("j")); - Assert.AreEqual(false, result.Item1.Get("k")); - Assert.AreEqual(true, result.Item1.Get("l")); - Assert.AreEqual(false, result.Item1.Get("m")); - Assert.AreEqual(false, result.Item1.Get("n")); - Assert.AreEqual(true, result.Item1.Get("o")); + Assert.AreEqual(false, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(false, result.Item1.Get("d").AsBool); + Assert.AreEqual(false, result.Item1.Get("e").AsBool); + Assert.AreEqual(true, result.Item1.Get("f").AsBool); + Assert.AreEqual(false, result.Item1.Get("g").AsBool); + Assert.AreEqual(false, result.Item1.Get("h").AsBool); + Assert.AreEqual(true, result.Item1.Get("i").AsBool); + Assert.AreEqual(false, result.Item1.Get("j").AsBool); + Assert.AreEqual(false, result.Item1.Get("k").AsBool); + Assert.AreEqual(true, result.Item1.Get("l").AsBool); + Assert.AreEqual(false, result.Item1.Get("m").AsBool); + Assert.AreEqual(false, result.Item1.Get("n").AsBool); + Assert.AreEqual(true, result.Item1.Get("o").AsBool); Assert.AreEqual(null, result.Item1.Get("p")); Assert.AreEqual(null, result.Item1.Get("q")); Assert.AreEqual(null, result.Item1.Get("r")); - Assert.AreEqual(false, result.Item1.Get("s")); - Assert.AreEqual(false, result.Item1.Get("t")); + Assert.AreEqual(false, result.Item1.Get("s").AsBool); + Assert.AreEqual(false, result.Item1.Get("t").AsBool); } [TestMethod] @@ -795,21 +795,21 @@ public void TestEqOperator() #Const o = Empty = Empty "; var result = Preprocess(code); - Assert.AreEqual(false, result.Item1.Get("a")); - Assert.AreEqual(true, result.Item1.Get("b")); - Assert.AreEqual(false, result.Item1.Get("c")); - Assert.AreEqual(true, result.Item1.Get("d")); - Assert.AreEqual(false, result.Item1.Get("e")); - Assert.AreEqual(true, result.Item1.Get("f")); - Assert.AreEqual(false, result.Item1.Get("g")); - Assert.AreEqual(true, result.Item1.Get("h")); - Assert.AreEqual(false, result.Item1.Get("i")); - Assert.AreEqual(true, result.Item1.Get("j")); + Assert.AreEqual(false, result.Item1.Get("a").AsBool); + Assert.AreEqual(true, result.Item1.Get("b").AsBool); + Assert.AreEqual(false, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); + Assert.AreEqual(false, result.Item1.Get("e").AsBool); + Assert.AreEqual(true, result.Item1.Get("f").AsBool); + Assert.AreEqual(false, result.Item1.Get("g").AsBool); + Assert.AreEqual(true, result.Item1.Get("h").AsBool); + Assert.AreEqual(false, result.Item1.Get("i").AsBool); + Assert.AreEqual(true, result.Item1.Get("j").AsBool); Assert.AreEqual(null, result.Item1.Get("k")); Assert.AreEqual(null, result.Item1.Get("l")); Assert.AreEqual(null, result.Item1.Get("m")); - Assert.AreEqual(false, result.Item1.Get("n")); - Assert.AreEqual(true, result.Item1.Get("o")); + Assert.AreEqual(false, result.Item1.Get("n").AsBool); + Assert.AreEqual(true, result.Item1.Get("o").AsBool); } [TestMethod] @@ -833,21 +833,21 @@ public void TestNeqOperator() #Const o = Empty <> Empty "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); - Assert.AreEqual(true, result.Item1.Get("c")); - Assert.AreEqual(false, result.Item1.Get("d")); - Assert.AreEqual(true, result.Item1.Get("e")); - Assert.AreEqual(false, result.Item1.Get("f")); - Assert.AreEqual(true, result.Item1.Get("g")); - Assert.AreEqual(false, result.Item1.Get("h")); - Assert.AreEqual(true, result.Item1.Get("i")); - Assert.AreEqual(false, result.Item1.Get("j")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(false, result.Item1.Get("d").AsBool); + Assert.AreEqual(true, result.Item1.Get("e").AsBool); + Assert.AreEqual(false, result.Item1.Get("f").AsBool); + Assert.AreEqual(true, result.Item1.Get("g").AsBool); + Assert.AreEqual(false, result.Item1.Get("h").AsBool); + Assert.AreEqual(true, result.Item1.Get("i").AsBool); + Assert.AreEqual(false, result.Item1.Get("j").AsBool); Assert.AreEqual(null, result.Item1.Get("k")); Assert.AreEqual(null, result.Item1.Get("l")); Assert.AreEqual(null, result.Item1.Get("m")); - Assert.AreEqual(true, result.Item1.Get("n")); - Assert.AreEqual(false, result.Item1.Get("o")); + Assert.AreEqual(true, result.Item1.Get("n").AsBool); + Assert.AreEqual(false, result.Item1.Get("o").AsBool); } [TestMethod] @@ -864,14 +864,14 @@ public void TestConcatOperator() #Const h = Empty & Empty "; var result = Preprocess(code); - Assert.AreEqual("Truea", result.Item1.Get("a")); + Assert.AreEqual("Truea", result.Item1.Get("a").AsString); Assert.AreEqual(null, result.Item1.Get("b")); - Assert.AreEqual("1", result.Item1.Get("c")); - Assert.AreEqual("1", result.Item1.Get("d")); - Assert.AreEqual(new DateTime(1900, 1, 1).ToShortDateString() + "1", result.Item1.Get("e")); - Assert.AreEqual("1", result.Item1.Get("f")); - Assert.AreEqual("1", result.Item1.Get("g")); - Assert.AreEqual(string.Empty, result.Item1.Get("h")); + Assert.AreEqual("1", result.Item1.Get("c").AsString); + Assert.AreEqual("1", result.Item1.Get("d").AsString); + Assert.AreEqual(new DateTime(1900, 1, 1).ToShortDateString() + "1", result.Item1.Get("e").AsString); + Assert.AreEqual("1", result.Item1.Get("f").AsString); + Assert.AreEqual("1", result.Item1.Get("g").AsString); + Assert.AreEqual(string.Empty, result.Item1.Get("h").AsString); } [TestMethod] @@ -886,9 +886,9 @@ public void TestPowOperator() #Const f = Null ^ Null "; var result = Preprocess(code); - Assert.AreEqual(8m, result.Item1.Get("a")); - Assert.AreEqual(1m, result.Item1.Get("b")); - Assert.AreEqual(1m, result.Item1.Get("c")); + Assert.AreEqual(8m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("c").AsDecimal); Assert.AreEqual(null, result.Item1.Get("d")); Assert.AreEqual(null, result.Item1.Get("e")); Assert.AreEqual(null, result.Item1.Get("f")); @@ -906,9 +906,9 @@ public void TestModOperator() #Const f = Null Mod Null "; var result = Preprocess(code); - Assert.AreEqual(0m, result.Item1.Get("a")); - Assert.AreEqual(1m, result.Item1.Get("b")); - Assert.AreEqual(1m, result.Item1.Get("c")); + Assert.AreEqual(0m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("c").AsDecimal); Assert.AreEqual(null, result.Item1.Get("d")); Assert.AreEqual(null, result.Item1.Get("e")); Assert.AreEqual(null, result.Item1.Get("f")); @@ -929,12 +929,12 @@ public void TestIntDivOperator() #Const i = Null \ Null "; var result = Preprocess(code); - Assert.AreEqual(2m, result.Item1.Get("a")); - Assert.AreEqual(2m, result.Item1.Get("b")); - Assert.AreEqual(2m, result.Item1.Get("c")); - Assert.AreEqual(-2m, result.Item1.Get("d")); - Assert.AreEqual(-2m, result.Item1.Get("e")); - Assert.AreEqual(-2m, result.Item1.Get("f")); + Assert.AreEqual(2m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(2m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(2m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(-2m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(-2m, result.Item1.Get("e").AsDecimal); + Assert.AreEqual(-2m, result.Item1.Get("f").AsDecimal); Assert.AreEqual(null, result.Item1.Get("g")); Assert.AreEqual(null, result.Item1.Get("h")); Assert.AreEqual(null, result.Item1.Get("i")); @@ -951,8 +951,8 @@ public void TestMultOperator() #Const e = Null * Null "; var result = Preprocess(code); - Assert.AreEqual(11m, result.Item1.Get("a")); - Assert.AreEqual(-5.5m, result.Item1.Get("b")); + Assert.AreEqual(11m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(-5.5m, result.Item1.Get("b").AsDecimal); Assert.AreEqual(null, result.Item1.Get("c")); Assert.AreEqual(null, result.Item1.Get("d")); Assert.AreEqual(null, result.Item1.Get("e")); @@ -969,8 +969,8 @@ public void TestDivOperator() #Const e = Null / Null "; var result = Preprocess(code); - Assert.AreEqual(2.75m, result.Item1.Get("a")); - Assert.AreEqual(-5.5m, result.Item1.Get("b")); + Assert.AreEqual(2.75m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(-5.5m, result.Item1.Get("b").AsDecimal); Assert.AreEqual(null, result.Item1.Get("c")); Assert.AreEqual(null, result.Item1.Get("d")); Assert.AreEqual(null, result.Item1.Get("e")); @@ -984,8 +984,8 @@ public void TestStringLiteral() #Const b = ""a""""b"" "; var result = Preprocess(code); - Assert.AreEqual("abc", result.Item1.Get("a")); - Assert.AreEqual("a\"\"b", result.Item1.Get("b")); + Assert.AreEqual("abc", result.Item1.Get("a").AsString); + Assert.AreEqual("a\"\"b", result.Item1.Get("b").AsString); } [TestMethod] @@ -997,9 +997,9 @@ public void TestNumberLiteral() #Const c = -50.323e5 "; var result = Preprocess(code); - Assert.AreEqual(175m, result.Item1.Get("a")); - Assert.AreEqual(275m, result.Item1.Get("b")); - Assert.AreEqual(-5032300m, result.Item1.Get("c")); + Assert.AreEqual(175m, result.Item1.Get("a").AsDecimal); + Assert.AreEqual(275m, result.Item1.Get("b").AsDecimal); + Assert.AreEqual(-5032300m, result.Item1.Get("c").AsDecimal); } [TestMethod] @@ -1022,21 +1022,21 @@ public void TestDateLiteral() #Const n = #12:13# "; var result = Preprocess(code); - Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("a")); - Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("b")); - Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 30), result.Item1.Get("c")); - Assert.AreEqual(new DateTime(1899, 12, 30, 12, 0, 0), result.Item1.Get("d")); - Assert.AreEqual(new DateTime(1999, 3, 1), result.Item1.Get("e")); - Assert.AreEqual(new DateTime(1899, 12, 30, 14, 0, 0), result.Item1.Get("f")); - Assert.AreEqual(new DateTime(1999, 12, 1, 0, 0, 0), result.Item1.Get("g")); - Assert.AreEqual(new DateTime(1999, 11, 1, 0, 0, 0), result.Item1.Get("h")); - Assert.AreEqual(new DateTime(2010, 5, 1, 0, 0, 0), result.Item1.Get("i")); - Assert.AreEqual(new DateTime(2010, 7, 15, 0, 0, 0), result.Item1.Get("j")); - Assert.AreEqual(new DateTime(1899, 12, 30, 15, 14, 13), result.Item1.Get("k")); + Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("a").AsDate); + Assert.AreEqual(new DateTime(1900, 12, 30), result.Item1.Get("b").AsDate); + Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 30), result.Item1.Get("c").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 30, 12, 0, 0), result.Item1.Get("d").AsDate); + Assert.AreEqual(new DateTime(1999, 3, 1), result.Item1.Get("e").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 30, 14, 0, 0), result.Item1.Get("f").AsDate); + Assert.AreEqual(new DateTime(1999, 12, 1, 0, 0, 0), result.Item1.Get("g").AsDate); + Assert.AreEqual(new DateTime(1999, 11, 1, 0, 0, 0), result.Item1.Get("h").AsDate); + Assert.AreEqual(new DateTime(2010, 5, 1, 0, 0, 0), result.Item1.Get("i").AsDate); + Assert.AreEqual(new DateTime(2010, 7, 15, 0, 0, 0), result.Item1.Get("j").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 30, 15, 14, 13), result.Item1.Get("k").AsDate); // "A element has no significance if the is greater than 12." - Assert.AreEqual(new DateTime(1899, 12, 30, 15, 14, 13), result.Item1.Get("l")); - Assert.AreEqual(new DateTime(1899, 12, 30, 0, 0, 0), result.Item1.Get("m")); - Assert.AreEqual(new DateTime(1899, 12, 30, 12, 13, 0), result.Item1.Get("n")); + Assert.AreEqual(new DateTime(1899, 12, 30, 15, 14, 13), result.Item1.Get("l").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 30, 0, 0, 0), result.Item1.Get("m").AsDate); + Assert.AreEqual(new DateTime(1899, 12, 30, 12, 13, 0), result.Item1.Get("n").AsDate); } [TestMethod] @@ -1050,11 +1050,11 @@ public void TestKeywordLiterals() #Const e = Empty "; var result = Preprocess(code); - Assert.AreEqual(true, result.Item1.Get("a")); - Assert.AreEqual(false, result.Item1.Get("b")); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); Assert.AreEqual(null, result.Item1.Get("c")); Assert.AreEqual(null, result.Item1.Get("d")); - Assert.AreEqual(VBAEmptyValue.Value, result.Item1.Get("e")); + Assert.AreEqual(EmptyValue.Value, result.Item1.Get("e")); } [TestMethod] @@ -1067,8 +1067,8 @@ public void TestComplexExpressions() #Const d = True + #1/1/1800# - (4 * Empty Mod (Abs(-5))) "; var result = Preprocess(code); - Assert.AreEqual(1m, result.Item1.Get("c")); - Assert.AreEqual(new DateTime(1799, 12, 31), result.Item1.Get("d")); + Assert.AreEqual(1m, result.Item1.Get("c").AsDecimal); + Assert.AreEqual(new DateTime(1799, 12, 31), result.Item1.Get("d").AsDate); } [TestMethod] @@ -1078,7 +1078,7 @@ public void TestOperatorPrecedence() #Const a = 2 ^ 3 + -5 * 40 / 2 \ 4 Mod 2 + 3 - (2 * 4) Xor 4 Eqv 5 Imp 6 Or 2 And True "; var result = Preprocess(code); - Assert.AreEqual(7m, result.Item1.Get("a")); + Assert.AreEqual(7m, result.Item1.Get("a").AsDecimal); } [TestMethod] @@ -1089,7 +1089,7 @@ public void TestLocale() "; System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); var result = Preprocess(code); - Assert.AreEqual(new DateTime(2016, 3, 2), result.Item1.Get("a")); + Assert.AreEqual(new DateTime(2016, 3, 2), result.Item1.Get("a").AsDate); } [TestMethod] @@ -1131,7 +1131,7 @@ End Sub "; var result = Preprocess(code); - Assert.AreEqual(evaluated, result.Item2); + Assert.AreEqual(evaluated, result.Item2.AsString); } [TestMethod] @@ -1153,12 +1153,12 @@ Debug.Print 5 End Sub "; var result = Preprocess(code); - Assert.AreEqual(evaluated, result.Item2); + Assert.AreEqual(evaluated, result.Item2.AsString); } - private Tuple Preprocess(string code) + private Tuple, IValue> Preprocess(string code) { - SymbolTable symbolTable = new SymbolTable(); + SymbolTable symbolTable = new SymbolTable(); var stream = new AntlrInputStream(code); var lexer = new VBAConditionalCompilationLexer(stream); var tokens = new CommonTokenStream(lexer); @@ -1166,7 +1166,8 @@ private Tuple Preprocess(string code) parser.AddErrorListener(new ExceptionErrorListener()); var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(7.01)); var tree = parser.compilationUnit(); - return Tuple.Create(symbolTable, evaluator.Visit(tree)); + var expr = evaluator.Visit(tree); + return Tuple.Create(symbolTable, expr.Evaluate()); } } } From a44c320bb3d24ef5b4228b3582a66ac65f4c9676 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Fri, 4 Mar 2016 14:36:28 +0100 Subject: [PATCH 11/17] consider declared option compare method when comparing strings --- Rubberduck.Parsing/Grammar/VBA.g4 | 35 +- Rubberduck.Parsing/Grammar/VBABaseListener.cs | 78 + Rubberduck.Parsing/Grammar/VBABaseVisitor.cs | 66 + Rubberduck.Parsing/Grammar/VBALexer.cs | 2017 ++--- Rubberduck.Parsing/Grammar/VBAListener.cs | 66 + Rubberduck.Parsing/Grammar/VBAParser.cs | 7030 +++++++++-------- Rubberduck.Parsing/Grammar/VBAVisitor.cs | 42 + .../Preprocessing/LogicalEqualsExpression.cs | 25 +- .../LogicalGreaterOrEqualsExpression.cs | 6 +- .../LogicalGreaterThanExpression.cs | 8 +- .../LogicalLessOrEqualsExpression.cs | 8 +- .../LogicalLessThanExpression.cs | 24 +- .../LogicalNotEqualsExpression.cs | 6 +- .../Preprocessing/OptionCompareListener.cs | 24 + .../Preprocessing/StringValue.cs | 6 +- .../Preprocessing/VBAOptionCompare.cs | 8 + .../Preprocessing/VBAPreprocessor.cs | 42 +- .../Preprocessing/VBAPreprocessorVisitor.cs | 19 +- Rubberduck.Parsing/Rubberduck.Parsing.csproj | 2 + Rubberduck.Parsing/VBA/RubberduckParser.cs | 2 +- .../VBAPreprocessorVisitorTests.cs | 45 +- 21 files changed, 5306 insertions(+), 4253 deletions(-) create mode 100644 Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs create mode 100644 Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs diff --git a/Rubberduck.Parsing/Grammar/VBA.g4 b/Rubberduck.Parsing/Grammar/VBA.g4 index a24405afeb..84f24e9856 100644 --- a/Rubberduck.Parsing/Grammar/VBA.g4 +++ b/Rubberduck.Parsing/Grammar/VBA.g4 @@ -58,8 +58,7 @@ moduleOption : ; moduleDeclarationsElement : - comment - | declareStmt + declareStmt | enumerationStmt | eventStmt | constStmt @@ -67,6 +66,12 @@ moduleDeclarationsElement : | variableStmt | moduleOption | typeStmt + | macroStmt +; + +macroStmt : + macroConstStmt + | macroIfThenElseStmt ; moduleBody : @@ -78,6 +83,7 @@ moduleBodyElement : | propertySetStmt | propertyLetStmt | subStmt + | macroStmt ; @@ -120,6 +126,7 @@ blockStmt : | loadStmt | lockStmt | lsetStmt + | macroStmt | midStmt | mkdirStmt | nameStmt @@ -284,6 +291,25 @@ lockStmt : LOCK WS valueStmt (WS? ',' WS? valueStmt (WS TO WS valueStmt)?)?; lsetStmt : LSET WS implicitCallStmt_InStmt WS? EQ WS? valueStmt; +macroConstStmt : MACRO_CONST WS? ambiguousIdentifier WS? EQ WS? valueStmt; + +macroIfThenElseStmt : macroIfBlockStmt macroElseIfBlockStmt* macroElseBlockStmt? MACRO_END_IF; + +macroIfBlockStmt : + MACRO_IF WS? ifConditionStmt WS THEN endOfStatement + (moduleDeclarations | moduleBody | block)* +; + +macroElseIfBlockStmt : + MACRO_ELSEIF WS? ifConditionStmt WS THEN endOfStatement + (moduleDeclarations | moduleBody | block)* +; + +macroElseBlockStmt : + MACRO_ELSE endOfStatement + (moduleDeclarations | moduleBody | block)* +; + midStmt : MID WS? LPAREN WS? argsCall WS? RPAREN; mkdirStmt : MKDIR WS valueStmt; @@ -700,6 +726,11 @@ LOCK_READ : L O C K WS R E A D; LOCK_WRITE : L O C K WS W R I T E; LOCK_READ_WRITE : L O C K WS R E A D WS W R I T E; LSET : L S E T; +MACRO_CONST : '#' C O N S T; +MACRO_IF : '#' I F; +MACRO_ELSEIF : '#' E L S E I F; +MACRO_ELSE : '#' E L S E; +MACRO_END_IF : '#' E N D WS? I F; ME : M E; MID : M I D; MKDIR : M K D I R; diff --git a/Rubberduck.Parsing/Grammar/VBABaseListener.cs b/Rubberduck.Parsing/Grammar/VBABaseListener.cs index f43d8e3dc4..6f2ea71d28 100644 --- a/Rubberduck.Parsing/Grammar/VBABaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBABaseListener.cs @@ -1203,6 +1203,19 @@ public virtual void EnterForEachStmt([NotNull] VBAParser.ForEachStmtContext cont /// The parse tree. public virtual void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1515,6 +1528,19 @@ public virtual void EnterVariableStmt([NotNull] VBAParser.VariableStmtContext co /// The parse tree. public virtual void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1619,6 +1645,19 @@ public virtual void EnterFunctionStmt([NotNull] VBAParser.FunctionStmtContext co /// The parse tree. public virtual void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1983,6 +2022,19 @@ public virtual void EnterVariableListStmt([NotNull] VBAParser.VariableListStmtCo /// The parse tree. public virtual void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2048,6 +2100,19 @@ public virtual void EnterMidStmt([NotNull] VBAParser.MidStmtContext context) { } /// The parse tree. public virtual void ExitMidStmt([NotNull] VBAParser.MidStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2217,6 +2282,19 @@ public virtual void EnterModuleBodyElement([NotNull] VBAParser.ModuleBodyElement /// The parse tree. public virtual void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroStmt([NotNull] VBAParser.MacroStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroStmt([NotNull] VBAParser.MacroStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs index 02244c60fb..29e77377ad 100644 --- a/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs @@ -1022,6 +1022,17 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1286,6 +1297,17 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1374,6 +1396,17 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1682,6 +1715,17 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1737,6 +1781,17 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1880,6 +1935,17 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMacroStmt([NotNull] VBAParser.MacroStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBALexer.cs b/Rubberduck.Parsing/Grammar/VBALexer.cs index e732cb6807..faa6c01115 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -41,29 +41,30 @@ public const int FRIEND=76, FOR=77, FUNCTION=78, GET=79, GLOBAL=80, GOSUB=81, GOTO=82, IF=83, IMP=84, IMPLEMENTS=85, IN=86, INPUT=87, IS=88, INTEGER=89, KILL=90, LOAD=91, LOCK=92, LONG=93, LOOP=94, LEN=95, LET=96, LIB=97, LIKE=98, LINE_INPUT=99, - LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, ME=104, - MID=105, MKDIR=106, MOD=107, NAME=108, NEXT=109, NEW=110, NOT=111, NOTHING=112, - NULL=113, ON=114, ON_ERROR=115, ON_LOCAL_ERROR=116, OPEN=117, OPTIONAL=118, - OPTION_BASE=119, OPTION_EXPLICIT=120, OPTION_COMPARE=121, OPTION_PRIVATE_MODULE=122, - OR=123, OUTPUT=124, PARAMARRAY=125, PRESERVE=126, PRINT=127, PRIVATE=128, - PROPERTY_GET=129, PROPERTY_LET=130, PROPERTY_SET=131, PTRSAFE=132, PUBLIC=133, - PUT=134, RANDOM=135, RANDOMIZE=136, RAISEEVENT=137, READ=138, READ_WRITE=139, - REDIM=140, REM=141, RESET=142, RESUME=143, RETURN=144, RMDIR=145, RSET=146, - SAVEPICTURE=147, SAVESETTING=148, SEEK=149, SELECT=150, SENDKEYS=151, - SET=152, SETATTR=153, SHARED=154, SINGLE=155, SPC=156, STATIC=157, STEP=158, - STOP=159, STRING=160, SUB=161, TAB=162, TEXT=163, THEN=164, TIME=165, - TO=166, TRUE=167, TYPE=168, TYPEOF=169, UNLOAD=170, UNLOCK=171, UNTIL=172, - VARIANT=173, VERSION=174, WEND=175, WHILE=176, WIDTH=177, WITH=178, WITHEVENTS=179, - WRITE=180, XOR=181, AMPERSAND=182, ASSIGN=183, DIV=184, INTDIV=185, EQ=186, - GEQ=187, GT=188, LEQ=189, LPAREN=190, LT=191, MINUS=192, MULT=193, NEQ=194, - PLUS=195, POW=196, RPAREN=197, L_SQUARE_BRACKET=198, R_SQUARE_BRACKET=199, - STRINGLITERAL=200, OCTLITERAL=201, HEXLITERAL=202, SHORTLITERAL=203, INTEGERLITERAL=204, - DOUBLELITERAL=205, DATELITERAL=206, JANUARY=207, FEBRUARY=208, MARCH=209, - APRIL=210, MAY=211, JUNE=212, JULY=213, AUGUST=214, SEPTEMBER=215, OCTOBER=216, - NOVEMBER=217, DECEMBER=218, JAN=219, FEB=220, MAR=221, APR=222, JUN=223, - JUL=224, AUG=225, SEP=226, OCT=227, NOV=228, DEC=229, LINE_CONTINUATION=230, - NEWLINE=231, REMCOMMENT=232, COMMENT=233, SINGLEQUOTE=234, COLON=235, - UNDERSCORE=236, WS=237, IDENTIFIER=238; + LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, MACRO_CONST=104, + MACRO_IF=105, MACRO_ELSEIF=106, MACRO_ELSE=107, MACRO_END_IF=108, ME=109, + MID=110, MKDIR=111, MOD=112, NAME=113, NEXT=114, NEW=115, NOT=116, NOTHING=117, + NULL=118, ON=119, ON_ERROR=120, ON_LOCAL_ERROR=121, OPEN=122, OPTIONAL=123, + OPTION_BASE=124, OPTION_EXPLICIT=125, OPTION_COMPARE=126, OPTION_PRIVATE_MODULE=127, + OR=128, OUTPUT=129, PARAMARRAY=130, PRESERVE=131, PRINT=132, PRIVATE=133, + PROPERTY_GET=134, PROPERTY_LET=135, PROPERTY_SET=136, PTRSAFE=137, PUBLIC=138, + PUT=139, RANDOM=140, RANDOMIZE=141, RAISEEVENT=142, READ=143, READ_WRITE=144, + REDIM=145, REM=146, RESET=147, RESUME=148, RETURN=149, RMDIR=150, RSET=151, + SAVEPICTURE=152, SAVESETTING=153, SEEK=154, SELECT=155, SENDKEYS=156, + SET=157, SETATTR=158, SHARED=159, SINGLE=160, SPC=161, STATIC=162, STEP=163, + STOP=164, STRING=165, SUB=166, TAB=167, TEXT=168, THEN=169, TIME=170, + TO=171, TRUE=172, TYPE=173, TYPEOF=174, UNLOAD=175, UNLOCK=176, UNTIL=177, + VARIANT=178, VERSION=179, WEND=180, WHILE=181, WIDTH=182, WITH=183, WITHEVENTS=184, + WRITE=185, XOR=186, AMPERSAND=187, ASSIGN=188, DIV=189, INTDIV=190, EQ=191, + GEQ=192, GT=193, LEQ=194, LPAREN=195, LT=196, MINUS=197, MULT=198, NEQ=199, + PLUS=200, POW=201, RPAREN=202, L_SQUARE_BRACKET=203, R_SQUARE_BRACKET=204, + STRINGLITERAL=205, OCTLITERAL=206, HEXLITERAL=207, SHORTLITERAL=208, INTEGERLITERAL=209, + DOUBLELITERAL=210, DATELITERAL=211, JANUARY=212, FEBRUARY=213, MARCH=214, + APRIL=215, MAY=216, JUNE=217, JULY=218, AUGUST=219, SEPTEMBER=220, OCTOBER=221, + NOVEMBER=222, DECEMBER=223, JAN=224, FEB=225, MAR=226, APR=227, JUN=228, + JUL=229, AUG=230, SEP=231, OCT=232, NOV=233, DEC=234, LINE_CONTINUATION=235, + NEWLINE=236, REMCOMMENT=237, COMMENT=238, SINGLEQUOTE=239, COLON=240, + UNDERSCORE=241, WS=242, IDENTIFIER=243; public static string[] modeNames = { "DEFAULT_MODE" }; @@ -102,7 +103,8 @@ public const int "'\\u00DB'", "'\\u00DC'", "'\\u00DD'", "'\\u00DE'", "'\\u00DF'", "'\\u00E0'", "'\\u00E1'", "'\\u00E2'", "'\\u00E3'", "'\\u00E4'", "'\\u00E5'", "'\\u00E6'", "'\\u00E7'", "'\\u00E8'", "'\\u00E9'", "'\\u00EA'", "'\\u00EB'", "'\\u00EC'", - "'\\u00ED'", "'\\u00EE'" + "'\\u00ED'", "'\\u00EE'", "'\\u00EF'", "'\\u00F0'", "'\\u00F1'", "'\\u00F2'", + "'\\u00F3'" }; public static readonly string[] ruleNames = { "T__7", "T__6", "T__5", "T__4", "T__3", "T__2", "T__1", "T__0", "ACCESS", @@ -118,30 +120,31 @@ public const int "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", - "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", - "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", - "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", - "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", - "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", - "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", - "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", - "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", - "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", - "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", - "WRITE", "XOR", "AMPERSAND", "ASSIGN", "DIV", "INTDIV", "EQ", "GEQ", "GT", - "LEQ", "LPAREN", "LT", "MINUS", "MULT", "NEQ", "PLUS", "POW", "RPAREN", - "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", "OCTLITERAL", - "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", - "DATEORTIME", "DATEVALUE", "DATEVALUEPART", "DATESEPARATOR", "MONTHNAME", - "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", "TIMEVALUE", "TIMESEPARATOR", - "AMPM", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", - "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", - "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "LINE_CONTINUATION", - "NEWLINE", "REMCOMMENT", "COMMENT", "SINGLEQUOTE", "COLON", "UNDERSCORE", - "WS", "IDENTIFIER", "LETTER", "DIGIT", "LETTERORDIGIT", "A", "B", "C", - "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", - "R", "S", "T", "U", "V", "W", "X", "Y", "Z" + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_CONST", "MACRO_IF", "MACRO_ELSEIF", + "MACRO_ELSE", "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", + "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", + "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", + "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", + "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", + "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", + "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", + "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", + "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", + "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", + "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "AMPERSAND", + "ASSIGN", "DIV", "INTDIV", "EQ", "GEQ", "GT", "LEQ", "LPAREN", "LT", "MINUS", + "MULT", "NEQ", "PLUS", "POW", "RPAREN", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", + "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", + "DOUBLELITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", "DATEVALUEPART", + "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", + "TIMEVALUE", "TIMESEPARATOR", "AMPM", "JANUARY", "FEBRUARY", "MARCH", + "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", + "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", + "NOV", "DEC", "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", + "SINGLEQUOTE", "COLON", "UNDERSCORE", "WS", "IDENTIFIER", "LETTER", "DIGIT", + "LETTERORDIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", + "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", + "Z" }; @@ -162,7 +165,7 @@ public VBALexer(ICharStream input) public override string SerializedAtn { get { return _serializedATN; } } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF0\x8F2\b\x1\x4"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF5\x91F\b\x1\x4"+ "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b"+ "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4"+ "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15"+ @@ -207,25 +210,26 @@ public VBALexer(ICharStream input) "\x105\t\x105\x4\x106\t\x106\x4\x107\t\x107\x4\x108\t\x108\x4\x109\t\x109"+ "\x4\x10A\t\x10A\x4\x10B\t\x10B\x4\x10C\t\x10C\x4\x10D\t\x10D\x4\x10E\t"+ "\x10E\x4\x10F\t\x10F\x4\x110\t\x110\x4\x111\t\x111\x4\x112\t\x112\x4\x113"+ - "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x4\x116\t\x116\x3\x2\x3\x2\x3\x3"+ - "\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3"+ - "\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3"+ - "\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3"+ - "\xE\x3\xE\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3"+ - "\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3"+ - "\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3"+ - "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3"+ - "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3"+ - "\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3"+ - "\x18\x3\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3"+ - "\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3"+ - "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3"+ - "\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3"+ - "\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3"+ - " \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\""+ - "\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$"+ - "\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'"+ + "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x4\x116\t\x116\x4\x117\t\x117\x4"+ + "\x118\t\x118\x4\x119\t\x119\x4\x11A\t\x11A\x4\x11B\t\x11B\x3\x2\x3\x2"+ + "\x3\x3\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3"+ + "\t\x3\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3"+ + "\v\x3\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3"+ + "\r\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12"+ + "\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13"+ + "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15"+ + "\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16"+ + "\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18"+ + "\x3\x18\x3\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A"+ + "\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C"+ + "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D"+ + "\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F"+ + "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3"+ + " \x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3"+ + "\"\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3"+ + "$\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'"+ "\x3\'\x3\'\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3"+ ")\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+"+ "\x3+\x3,\x3,\x3,\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3"+ @@ -259,934 +263,955 @@ public VBALexer(ICharStream input) "\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3"+ "\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3"+ "\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3"+ - "g\x3g\x3g\x3g\x3h\x3h\x3h\x3h\x3h\x3i\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x3k"+ - "\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3m\x3m\x3m\x3m\x3m\x3n\x3n\x3n\x3n\x3"+ - "n\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3r"+ - "\x3r\x3r\x3r\x3r\x3s\x3s\x3s\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3u\x3"+ - "u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3v\x3v\x3v\x3v"+ - "\x3v\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3"+ - "x\x3x\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y"+ - "\x3y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3"+ - "z\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{"+ - "\x3{\x3{\x3{\x3{\x3{\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3"+ - "~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3"+ - "\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3"+ - "\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82\x3"+ - "\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3"+ - "\x82\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3"+ - "\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3"+ - "\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3"+ - "\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3"+ - "\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88\x3"+ - "\x88\x3\x88\x3\x88\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3"+ - "\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3"+ - "\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3"+ - "\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3"+ - "\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3"+ - "\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90\x3\x90\x3\x90\x3\x90\x3"+ - "\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3"+ - "\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3"+ - "\x93\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3"+ - "\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3"+ - "\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3"+ - "\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x98\x3\x98\x3\x98\x3"+ - "\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99\x3"+ - "\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9B\x3\x9B\x3"+ - "\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3"+ - "\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3"+ - "\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3"+ - "\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3"+ - "\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4\x3"+ - "\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA6\x3\xA6\x3"+ - "\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3"+ - "\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3"+ - "\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3"+ - "\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3"+ - "\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3"+ - "\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xB0\x3"+ - "\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3"+ - "\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3"+ - "\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3"+ - "\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6\x3\xB6\x3"+ - "\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xBA\x3"+ - "\xBA\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBE\x3\xBE\x3"+ - "\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC1\x3\xC1\x3\xC2\x3\xC2\x3\xC3\x3"+ - "\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC7\x3\xC7\x3"+ - "\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xC9\x3\xC9\a\xC9\x739\n\xC9\f\xC9\xE\xC9"+ - "\x73C\v\xC9\x3\xC9\x3\xC9\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x6\xCA\x744\n\xCA"+ - "\r\xCA\xE\xCA\x745\x3\xCA\x5\xCA\x749\n\xCA\x3\xCB\x3\xCB\x3\xCB\x3\xCB"+ - "\x6\xCB\x74F\n\xCB\r\xCB\xE\xCB\x750\x3\xCB\x5\xCB\x754\n\xCB\x3\xCC\x3"+ - "\xCC\x5\xCC\x758\n\xCC\x3\xCC\x6\xCC\x75B\n\xCC\r\xCC\xE\xCC\x75C\x3\xCC"+ - "\x5\xCC\x760\n\xCC\x3\xCD\x3\xCD\x3\xCD\x3\xCD\x5\xCD\x766\n\xCD\x3\xCE"+ - "\x3\xCE\x5\xCE\x76A\n\xCE\x3\xCE\a\xCE\x76D\n\xCE\f\xCE\xE\xCE\x770\v"+ - "\xCE\x3\xCE\x3\xCE\x6\xCE\x774\n\xCE\r\xCE\xE\xCE\x775\x3\xCE\x3\xCE\x3"+ - "\xCE\x5\xCE\x77B\n\xCE\x3\xCF\x3\xCF\x3\xCF\x3\xCF\x3\xD0\x3\xD0\x5\xD0"+ - "\x783\n\xD0\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x5\xD0\x789\n\xD0\x3\xD1\x3\xD1"+ - "\x3\xD1\x3\xD1\x3\xD1\x3\xD1\x5\xD1\x791\n\xD1\x3\xD2\x6\xD2\x794\n\xD2"+ - "\r\xD2\xE\xD2\x795\x3\xD2\x5\xD2\x799\n\xD2\x3\xD3\x5\xD3\x79C\n\xD3\x3"+ - "\xD3\x5\xD3\x79F\n\xD3\x3\xD3\x5\xD3\x7A2\n\xD3\x3\xD4\x3\xD4\x5\xD4\x7A6"+ - "\n\xD4\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5"+ - "\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x7B4\n\xD5\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3"+ - "\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x5\xD6\x7C1\n\xD6\x3\xD7"+ - "\x6\xD7\x7C4\n\xD7\r\xD7\xE\xD7\x7C5\x3\xD7\x3\xD7\x3\xD7\x6\xD7\x7CB"+ - "\n\xD7\r\xD7\xE\xD7\x7CC\x3\xD7\x3\xD7\x6\xD7\x7D1\n\xD7\r\xD7\xE\xD7"+ - "\x7D2\x3\xD7\x3\xD7\x6\xD7\x7D7\n\xD7\r\xD7\xE\xD7\x7D8\x5\xD7\x7DB\n"+ - "\xD7\x3\xD7\x5\xD7\x7DE\n\xD7\x5\xD7\x7E0\n\xD7\x3\xD8\x5\xD8\x7E3\n\xD8"+ - "\x3\xD8\x3\xD8\x5\xD8\x7E7\n\xD8\x3\xD9\x5\xD9\x7EA\n\xD9\x3\xD9\x3\xD9"+ - "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x5\xD9\x7F4\n\xD9\x3\xDA\x3"+ - "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDB\x3\xDB\x3\xDB\x3"+ - "\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3"+ - "\xDC\x3\xDC\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDE\x3\xDE\x3"+ - "\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE0\x3"+ - "\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3"+ - "\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE3\x3"+ - "\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4\x3"+ - "\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3"+ - "\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE7\x3"+ - "\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3"+ - "\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEB\x3\xEB\x3\xEB\x3\xEB\x3\xEC\x3"+ - "\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED\x3\xED\x3\xED\x3\xEE\x3\xEE\x3\xEE\x3"+ - "\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF1\x6"+ - "\xF1\x879\n\xF1\r\xF1\xE\xF1\x87A\x3\xF1\x3\xF1\x5\xF1\x87F\n\xF1\x3\xF1"+ - "\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x6\xF2\x886\n\xF2\r\xF2\xE\xF2\x887\x3\xF3"+ - "\x5\xF3\x88B\n\xF3\x3\xF3\x3\xF3\x3\xF3\x3\xF3\a\xF3\x891\n\xF3\f\xF3"+ - "\xE\xF3\x894\v\xF3\x3\xF4\x3\xF4\x3\xF4\a\xF4\x899\n\xF4\f\xF4\xE\xF4"+ - "\x89C\v\xF4\x3\xF5\x3\xF5\x3\xF6\x3\xF6\x3\xF7\x3\xF7\x3\xF8\x3\xF8\x6"+ - "\xF8\x8A6\n\xF8\r\xF8\xE\xF8\x8A7\x3\xF9\x6\xF9\x8AB\n\xF9\r\xF9\xE\xF9"+ - "\x8AC\x3\xF9\x3\xF9\x6\xF9\x8B1\n\xF9\r\xF9\xE\xF9\x8B2\x3\xF9\x3\xF9"+ - "\x5\xF9\x8B7\n\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x3\xFD\x3"+ - "\xFD\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101\x3\x101\x3\x102"+ - "\x3\x102\x3\x103\x3\x103\x3\x104\x3\x104\x3\x105\x3\x105\x3\x106\x3\x106"+ - "\x3\x107\x3\x107\x3\x108\x3\x108\x3\x109\x3\x109\x3\x10A\x3\x10A\x3\x10B"+ - "\x3\x10B\x3\x10C\x3\x10C\x3\x10D\x3\x10D\x3\x10E\x3\x10E\x3\x10F\x3\x10F"+ - "\x3\x110\x3\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113\x3\x113\x3\x114"+ - "\x3\x114\x3\x115\x3\x115\x3\x116\x3\x116\x2\x2\x2\x117\x3\x2\x3\x5\x2"+ - "\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17"+ - "\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14"+ - "\'\x2\x15)\x2\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2"+ - "\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$"+ - "G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31"+ - "\x61\x2\x32\x63\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2"+ - "\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43"+ - "\x85\x2\x44\x87\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93"+ - "\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5"+ - "\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\"+ - "\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5"+ - "\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k"+ - "\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2"+ - "t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7"+ - "\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83"+ - "\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89"+ - "\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F"+ - "\x11D\x2\x90\x11F\x2\x91\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95"+ - "\x129\x2\x96\x12B\x2\x97\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B"+ - "\x135\x2\x9C\x137\x2\x9D\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1"+ - "\x141\x2\xA2\x143\x2\xA3\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7"+ - "\x14D\x2\xA8\x14F\x2\xA9\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD"+ - "\x159\x2\xAE\x15B\x2\xAF\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3"+ - "\x165\x2\xB4\x167\x2\xB5\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9"+ - "\x171\x2\xBA\x173\x2\xBB\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF"+ - "\x17D\x2\xC0\x17F\x2\xC1\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5"+ - "\x189\x2\xC6\x18B\x2\xC7\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB"+ - "\x195\x2\xCC\x197\x2\xCD\x199\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\x2"+ - "\x1A1\x2\x2\x1A3\x2\x2\x1A5\x2\x2\x1A7\x2\x2\x1A9\x2\x2\x1AB\x2\x2\x1AD"+ - "\x2\x2\x1AF\x2\x2\x1B1\x2\x2\x1B3\x2\xD1\x1B5\x2\xD2\x1B7\x2\xD3\x1B9"+ - "\x2\xD4\x1BB\x2\xD5\x1BD\x2\xD6\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5"+ - "\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1"+ - "\x2\xE0\x1D3\x2\xE1\x1D5\x2\xE2\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD"+ - "\x2\xE6\x1DF\x2\xE7\x1E1\x2\xE8\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9"+ - "\x2\xEC\x1EB\x2\xED\x1ED\x2\xEE\x1EF\x2\xEF\x1F1\x2\xF0\x1F3\x2\x2\x1F5"+ - "\x2\x2\x1F7\x2\x2\x1F9\x2\x2\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2"+ - "\x2\x203\x2\x2\x205\x2\x2\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2"+ - "\x20F\x2\x2\x211\x2\x2\x213\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B"+ - "\x2\x2\x21D\x2\x2\x21F\x2\x2\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227\x2"+ - "\x2\x229\x2\x2\x22B\x2\x2\x3\x2)\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32"+ - ";\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\""+ - "\x5\x2\f\f\xF\xF\x202A\x202B\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~"+ - "~\x6\x2\f\f\xF\xF##^_\v\x2\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE"+ - "\xE6\xE6\xF8\xF8\xFE\xFE\x3\x2\x32;\f\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6"+ - "\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44"+ - "\x44\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4"+ - "\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4"+ - "\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4"+ - "\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||"+ - "\x913\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2"+ - "\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2"+ - "\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19"+ - "\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2"+ - "\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)"+ - "\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3"+ - "\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2"+ - "\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41"+ - "\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2"+ - "I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2"+ - "\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2"+ - "\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2"+ - "\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2"+ - "k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2"+ - "\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2"+ - "\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2"+ - "\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3"+ - "\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2"+ - "\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2"+ - "\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3"+ - "\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2"+ - "\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2"+ - "\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3"+ - "\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2"+ - "\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2"+ - "\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3"+ - "\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2"+ - "\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2"+ - "\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3"+ - "\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2"+ - "\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2"+ - "\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3"+ - "\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2"+ - "\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2"+ - "\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2"+ - "\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2"+ - "\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2"+ - "\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2"+ - "\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2"+ - "\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2"+ - "\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2"+ - "\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2"+ - "\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2"+ - "\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2"+ - "\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2"+ - "\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2"+ - "\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2"+ - "\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2"+ - "\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2"+ - "\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2"+ - "\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2"+ - "\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2"+ - "\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2"+ - "\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2"+ - "\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2"+ - "\x19B\x3\x2\x2\x2\x2\x19D\x3\x2\x2\x2\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2"+ - "\x2\x2\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2"+ - "\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2"+ - "\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2"+ - "\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2\x1CF\x3\x2\x2\x2\x2\x1D1\x3\x2"+ - "\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3\x2\x2\x2\x2\x1D7\x3\x2\x2\x2\x2"+ - "\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2\x2\x1DD\x3\x2\x2\x2\x2\x1DF\x3\x2"+ - "\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3\x2\x2\x2\x2\x1E5\x3\x2\x2\x2\x2"+ - "\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2\x2\x1EB\x3\x2\x2\x2\x2\x1ED\x3\x2"+ - "\x2\x2\x2\x1EF\x3\x2\x2\x2\x2\x1F1\x3\x2\x2\x2\x3\x22D\x3\x2\x2\x2\x5"+ - "\x22F\x3\x2\x2\x2\a\x231\x3\x2\x2\x2\t\x233\x3\x2\x2\x2\v\x235\x3\x2\x2"+ - "\x2\r\x237\x3\x2\x2\x2\xF\x239\x3\x2\x2\x2\x11\x23B\x3\x2\x2\x2\x13\x23D"+ - "\x3\x2\x2\x2\x15\x244\x3\x2\x2\x2\x17\x24E\x3\x2\x2\x2\x19\x254\x3\x2"+ - "\x2\x2\x1B\x258\x3\x2\x2\x2\x1D\x262\x3\x2\x2\x2\x1F\x26E\x3\x2\x2\x2"+ - "!\x275\x3\x2\x2\x2#\x278\x3\x2\x2\x2%\x27E\x3\x2\x2\x2\'\x283\x3\x2\x2"+ - "\x2)\x28A\x3\x2\x2\x2+\x292\x3\x2\x2\x2-\x298\x3\x2\x2\x2/\x29E\x3\x2"+ - "\x2\x2\x31\x2A3\x3\x2\x2\x2\x33\x2A8\x3\x2\x2\x2\x35\x2AD\x3\x2\x2\x2"+ - "\x37\x2B3\x3\x2\x2\x2\x39\x2BB\x3\x2\x2\x2;\x2C1\x3\x2\x2\x2=\x2C7\x3"+ - "\x2\x2\x2?\x2D2\x3\x2\x2\x2\x41\x2D8\x3\x2\x2\x2\x43\x2E1\x3\x2\x2\x2"+ - "\x45\x2E6\x3\x2\x2\x2G\x2EE\x3\x2\x2\x2I\x2F6\x3\x2\x2\x2K\x2FE\x3\x2"+ - "\x2\x2M\x306\x3\x2\x2\x2O\x30D\x3\x2\x2\x2Q\x314\x3\x2\x2\x2S\x31B\x3"+ - "\x2\x2\x2U\x322\x3\x2\x2\x2W\x329\x3\x2\x2\x2Y\x330\x3\x2\x2\x2[\x337"+ - "\x3\x2\x2\x2]\x33E\x3\x2\x2\x2_\x345\x3\x2\x2\x2\x61\x353\x3\x2\x2\x2"+ - "\x63\x357\x3\x2\x2\x2\x65\x35A\x3\x2\x2\x2g\x361\x3\x2\x2\x2i\x366\x3"+ - "\x2\x2\x2k\x36B\x3\x2\x2\x2m\x372\x3\x2\x2\x2o\x378\x3\x2\x2\x2q\x381"+ - "\x3\x2\x2\x2s\x38E\x3\x2\x2\x2u\x395\x3\x2\x2\x2w\x3A2\x3\x2\x2\x2y\x3AD"+ - "\x3\x2\x2\x2{\x3B5\x3\x2\x2\x2}\x3BE\x3\x2\x2\x2\x7F\x3C7\x3\x2\x2\x2"+ - "\x81\x3CB\x3\x2\x2\x2\x83\x3D0\x3\x2\x2\x2\x85\x3D4\x3\x2\x2\x2\x87\x3DA"+ - "\x3\x2\x2\x2\x89\x3E0\x3\x2\x2\x2\x8B\x3E6\x3\x2\x2\x2\x8D\x3EE\x3\x2"+ - "\x2\x2\x8F\x3F7\x3\x2\x2\x2\x91\x405\x3\x2\x2\x2\x93\x413\x3\x2\x2\x2"+ - "\x95\x41C\x3\x2\x2\x2\x97\x422\x3\x2\x2\x2\x99\x42B\x3\x2\x2\x2\x9B\x432"+ - "\x3\x2\x2\x2\x9D\x436\x3\x2\x2\x2\x9F\x43F\x3\x2\x2\x2\xA1\x443\x3\x2"+ - "\x2\x2\xA3\x44A\x3\x2\x2\x2\xA5\x450\x3\x2\x2\x2\xA7\x455\x3\x2\x2\x2"+ - "\xA9\x458\x3\x2\x2\x2\xAB\x45C\x3\x2\x2\x2\xAD\x467\x3\x2\x2\x2\xAF\x46A"+ - "\x3\x2\x2\x2\xB1\x470\x3\x2\x2\x2\xB3\x473\x3\x2\x2\x2\xB5\x47B\x3\x2"+ - "\x2\x2\xB7\x480\x3\x2\x2\x2\xB9\x485\x3\x2\x2\x2\xBB\x48A\x3\x2\x2\x2"+ - "\xBD\x48F\x3\x2\x2\x2\xBF\x494\x3\x2\x2\x2\xC1\x498\x3\x2\x2\x2\xC3\x49C"+ - "\x3\x2\x2\x2\xC5\x4A0\x3\x2\x2\x2\xC7\x4A5\x3\x2\x2\x2\xC9\x4B0\x3\x2"+ - "\x2\x2\xCB\x4BA\x3\x2\x2\x2\xCD\x4C5\x3\x2\x2\x2\xCF\x4D5\x3\x2\x2\x2"+ - "\xD1\x4DA\x3\x2\x2\x2\xD3\x4DD\x3\x2\x2\x2\xD5\x4E1\x3\x2\x2\x2\xD7\x4E7"+ - "\x3\x2\x2\x2\xD9\x4EB\x3\x2\x2\x2\xDB\x4F0\x3\x2\x2\x2\xDD\x4F5\x3\x2"+ - "\x2\x2\xDF\x4F9\x3\x2\x2\x2\xE1\x4FD\x3\x2\x2\x2\xE3\x505\x3\x2\x2\x2"+ - "\xE5\x50A\x3\x2\x2\x2\xE7\x50D\x3\x2\x2\x2\xE9\x516\x3\x2\x2\x2\xEB\x525"+ - "\x3\x2\x2\x2\xED\x52A\x3\x2\x2\x2\xEF\x533\x3\x2\x2\x2\xF1\x53F\x3\x2"+ - "\x2\x2\xF3\x54F\x3\x2\x2\x2\xF5\x55E\x3\x2\x2\x2\xF7\x574\x3\x2\x2\x2"+ - "\xF9\x577\x3\x2\x2\x2\xFB\x57E\x3\x2\x2\x2\xFD\x589\x3\x2\x2\x2\xFF\x592"+ - "\x3\x2\x2\x2\x101\x598\x3\x2\x2\x2\x103\x5A0\x3\x2\x2\x2\x105\x5AD\x3"+ - "\x2\x2\x2\x107\x5BA\x3\x2\x2\x2\x109\x5C7\x3\x2\x2\x2\x10B\x5CF\x3\x2"+ - "\x2\x2\x10D\x5D6\x3\x2\x2\x2\x10F\x5DA\x3\x2\x2\x2\x111\x5E1\x3\x2\x2"+ - "\x2\x113\x5EB\x3\x2\x2\x2\x115\x5F6\x3\x2\x2\x2\x117\x5FB\x3\x2\x2\x2"+ - "\x119\x606\x3\x2\x2\x2\x11B\x60C\x3\x2\x2\x2\x11D\x610\x3\x2\x2\x2\x11F"+ - "\x616\x3\x2\x2\x2\x121\x61D\x3\x2\x2\x2\x123\x624\x3\x2\x2\x2\x125\x62A"+ - "\x3\x2\x2\x2\x127\x62F\x3\x2\x2\x2\x129\x63B\x3\x2\x2\x2\x12B\x647\x3"+ - "\x2\x2\x2\x12D\x64C\x3\x2\x2\x2\x12F\x653\x3\x2\x2\x2\x131\x65C\x3\x2"+ - "\x2\x2\x133\x660\x3\x2\x2\x2\x135\x668\x3\x2\x2\x2\x137\x66F\x3\x2\x2"+ - "\x2\x139\x676\x3\x2\x2\x2\x13B\x67A\x3\x2\x2\x2\x13D\x681\x3\x2\x2\x2"+ - "\x13F\x686\x3\x2\x2\x2\x141\x68B\x3\x2\x2\x2\x143\x692\x3\x2\x2\x2\x145"+ - "\x696\x3\x2\x2\x2\x147\x69A\x3\x2\x2\x2\x149\x69F\x3\x2\x2\x2\x14B\x6A4"+ - "\x3\x2\x2\x2\x14D\x6A9\x3\x2\x2\x2\x14F\x6AC\x3\x2\x2\x2\x151\x6B1\x3"+ - "\x2\x2\x2\x153\x6B6\x3\x2\x2\x2\x155\x6BD\x3\x2\x2\x2\x157\x6C4\x3\x2"+ - "\x2\x2\x159\x6CB\x3\x2\x2\x2\x15B\x6D1\x3\x2\x2\x2\x15D\x6D9\x3\x2\x2"+ - "\x2\x15F\x6E1\x3\x2\x2\x2\x161\x6E6\x3\x2\x2\x2\x163\x6EC\x3\x2\x2\x2"+ - "\x165\x6F2\x3\x2\x2\x2\x167\x6F7\x3\x2\x2\x2\x169\x702\x3\x2\x2\x2\x16B"+ - "\x708\x3\x2\x2\x2\x16D\x70C\x3\x2\x2\x2\x16F\x70E\x3\x2\x2\x2\x171\x711"+ - "\x3\x2\x2\x2\x173\x713\x3\x2\x2\x2\x175\x715\x3\x2\x2\x2\x177\x717\x3"+ - "\x2\x2\x2\x179\x71A\x3\x2\x2\x2\x17B\x71C\x3\x2\x2\x2\x17D\x71F\x3\x2"+ - "\x2\x2\x17F\x721\x3\x2\x2\x2\x181\x723\x3\x2\x2\x2\x183\x725\x3\x2\x2"+ - "\x2\x185\x727\x3\x2\x2\x2\x187\x72A\x3\x2\x2\x2\x189\x72C\x3\x2\x2\x2"+ - "\x18B\x72E\x3\x2\x2\x2\x18D\x730\x3\x2\x2\x2\x18F\x732\x3\x2\x2\x2\x191"+ - "\x734\x3\x2\x2\x2\x193\x73F\x3\x2\x2\x2\x195\x74A\x3\x2\x2\x2\x197\x757"+ - "\x3\x2\x2\x2\x199\x761\x3\x2\x2\x2\x19B\x769\x3\x2\x2\x2\x19D\x77C\x3"+ - "\x2\x2\x2\x19F\x788\x3\x2\x2\x2\x1A1\x78A\x3\x2\x2\x2\x1A3\x798\x3\x2"+ - "\x2\x2\x1A5\x79B\x3\x2\x2\x2\x1A7\x7A5\x3\x2\x2\x2\x1A9\x7B3\x3\x2\x2"+ - "\x2\x1AB\x7C0\x3\x2\x2\x2\x1AD\x7DF\x3\x2\x2\x2\x1AF\x7E2\x3\x2\x2\x2"+ - "\x1B1\x7E9\x3\x2\x2\x2\x1B3\x7F5\x3\x2\x2\x2\x1B5\x7FD\x3\x2\x2\x2\x1B7"+ - "\x806\x3\x2\x2\x2\x1B9\x80C\x3\x2\x2\x2\x1BB\x812\x3\x2\x2\x2\x1BD\x816"+ - "\x3\x2\x2\x2\x1BF\x81B\x3\x2\x2\x2\x1C1\x820\x3\x2\x2\x2\x1C3\x827\x3"+ - "\x2\x2\x2\x1C5\x831\x3\x2\x2\x2\x1C7\x839\x3\x2\x2\x2\x1C9\x842\x3\x2"+ - "\x2\x2\x1CB\x84B\x3\x2\x2\x2\x1CD\x84F\x3\x2\x2\x2\x1CF\x853\x3\x2\x2"+ - "\x2\x1D1\x857\x3\x2\x2\x2\x1D3\x85B\x3\x2\x2\x2\x1D5\x85F\x3\x2\x2\x2"+ - "\x1D7\x863\x3\x2\x2\x2\x1D9\x867\x3\x2\x2\x2\x1DB\x86B\x3\x2\x2\x2\x1DD"+ - "\x86F\x3\x2\x2\x2\x1DF\x873\x3\x2\x2\x2\x1E1\x878\x3\x2\x2\x2\x1E3\x885"+ - "\x3\x2\x2\x2\x1E5\x88A\x3\x2\x2\x2\x1E7\x895\x3\x2\x2\x2\x1E9\x89D\x3"+ - "\x2\x2\x2\x1EB\x89F\x3\x2\x2\x2\x1ED\x8A1\x3\x2\x2\x2\x1EF\x8A5\x3\x2"+ - "\x2\x2\x1F1\x8B6\x3\x2\x2\x2\x1F3\x8B8\x3\x2\x2\x2\x1F5\x8BA\x3\x2\x2"+ - "\x2\x1F7\x8BC\x3\x2\x2\x2\x1F9\x8BE\x3\x2\x2\x2\x1FB\x8C0\x3\x2\x2\x2"+ - "\x1FD\x8C2\x3\x2\x2\x2\x1FF\x8C4\x3\x2\x2\x2\x201\x8C6\x3\x2\x2\x2\x203"+ - "\x8C8\x3\x2\x2\x2\x205\x8CA\x3\x2\x2\x2\x207\x8CC\x3\x2\x2\x2\x209\x8CE"+ - "\x3\x2\x2\x2\x20B\x8D0\x3\x2\x2\x2\x20D\x8D2\x3\x2\x2\x2\x20F\x8D4\x3"+ - "\x2\x2\x2\x211\x8D6\x3\x2\x2\x2\x213\x8D8\x3\x2\x2\x2\x215\x8DA\x3\x2"+ - "\x2\x2\x217\x8DC\x3\x2\x2\x2\x219\x8DE\x3\x2\x2\x2\x21B\x8E0\x3\x2\x2"+ - "\x2\x21D\x8E2\x3\x2\x2\x2\x21F\x8E4\x3\x2\x2\x2\x221\x8E6\x3\x2\x2\x2"+ - "\x223\x8E8\x3\x2\x2\x2\x225\x8EA\x3\x2\x2\x2\x227\x8EC\x3\x2\x2\x2\x229"+ - "\x8EE\x3\x2\x2\x2\x22B\x8F0\x3\x2\x2\x2\x22D\x22E\a\x42\x2\x2\x22E\x4"+ - "\x3\x2\x2\x2\x22F\x230\a#\x2\x2\x230\x6\x3\x2\x2\x2\x231\x232\a%\x2\x2"+ - "\x232\b\x3\x2\x2\x2\x233\x234\a&\x2\x2\x234\n\x3\x2\x2\x2\x235\x236\a"+ - "\'\x2\x2\x236\f\x3\x2\x2\x2\x237\x238\a=\x2\x2\x238\xE\x3\x2\x2\x2\x239"+ - "\x23A\a.\x2\x2\x23A\x10\x3\x2\x2\x2\x23B\x23C\a\x30\x2\x2\x23C\x12\x3"+ - "\x2\x2\x2\x23D\x23E\x5\x1F9\xFD\x2\x23E\x23F\x5\x1FD\xFF\x2\x23F\x240"+ - "\x5\x1FD\xFF\x2\x240\x241\x5\x201\x101\x2\x241\x242\x5\x21D\x10F\x2\x242"+ - "\x243\x5\x21D\x10F\x2\x243\x14\x3\x2\x2\x2\x244\x245\x5\x1F9\xFD\x2\x245"+ - "\x246\x5\x1FF\x100\x2\x246\x247\x5\x1FF\x100\x2\x247\x248\x5\x21B\x10E"+ - "\x2\x248\x249\x5\x201\x101\x2\x249\x24A\x5\x21D\x10F\x2\x24A\x24B\x5\x21D"+ - "\x10F\x2\x24B\x24C\x5\x215\x10B\x2\x24C\x24D\x5\x203\x102\x2\x24D\x16"+ - "\x3\x2\x2\x2\x24E\x24F\x5\x1F9\xFD\x2\x24F\x250\x5\x20F\x108\x2\x250\x251"+ - "\x5\x209\x105\x2\x251\x252\x5\x1F9\xFD\x2\x252\x253\x5\x21D\x10F\x2\x253"+ - "\x18\x3\x2\x2\x2\x254\x255\x5\x1F9\xFD\x2\x255\x256\x5\x213\x10A\x2\x256"+ - "\x257\x5\x1FF\x100\x2\x257\x1A\x3\x2\x2\x2\x258\x259\x5\x1F9\xFD\x2\x259"+ - "\x25A\x5\x21F\x110\x2\x25A\x25B\x5\x21F\x110\x2\x25B\x25C\x5\x21B\x10E"+ - "\x2\x25C\x25D\x5\x209\x105\x2\x25D\x25E\x5\x1FB\xFE\x2\x25E\x25F\x5\x221"+ - "\x111\x2\x25F\x260\x5\x21F\x110\x2\x260\x261\x5\x201\x101\x2\x261\x1C"+ - "\x3\x2\x2\x2\x262\x263\x5\x1F9\xFD\x2\x263\x264\x5\x217\x10C\x2\x264\x265"+ - "\x5\x217\x10C\x2\x265\x266\x5\x1F9\xFD\x2\x266\x267\x5\x1FD\xFF\x2\x267"+ - "\x268\x5\x21F\x110\x2\x268\x269\x5\x209\x105\x2\x269\x26A\x5\x223\x112"+ - "\x2\x26A\x26B\x5\x1F9\xFD\x2\x26B\x26C\x5\x21F\x110\x2\x26C\x26D\x5\x201"+ - "\x101\x2\x26D\x1E\x3\x2\x2\x2\x26E\x26F\x5\x1F9\xFD\x2\x26F\x270\x5\x217"+ - "\x10C\x2\x270\x271\x5\x217\x10C\x2\x271\x272\x5\x201\x101\x2\x272\x273"+ - "\x5\x213\x10A\x2\x273\x274\x5\x1FF\x100\x2\x274 \x3\x2\x2\x2\x275\x276"+ - "\x5\x1F9\xFD\x2\x276\x277\x5\x21D\x10F\x2\x277\"\x3\x2\x2\x2\x278\x279"+ - "\x5\x1FB\xFE\x2\x279\x27A\x5\x201\x101\x2\x27A\x27B\x5\x205\x103\x2\x27B"+ - "\x27C\x5\x209\x105\x2\x27C\x27D\x5\x213\x10A\x2\x27D$\x3\x2\x2\x2\x27E"+ - "\x27F\x5\x1FB\xFE\x2\x27F\x280\x5\x201\x101\x2\x280\x281\x5\x201\x101"+ - "\x2\x281\x282\x5\x217\x10C\x2\x282&\x3\x2\x2\x2\x283\x284\x5\x1FB\xFE"+ - "\x2\x284\x285\x5\x209\x105\x2\x285\x286\x5\x213\x10A\x2\x286\x287\x5\x1F9"+ - "\xFD\x2\x287\x288\x5\x21B\x10E\x2\x288\x289\x5\x229\x115\x2\x289(\x3\x2"+ - "\x2\x2\x28A\x28B\x5\x1FB\xFE\x2\x28B\x28C\x5\x215\x10B\x2\x28C\x28D\x5"+ - "\x215\x10B\x2\x28D\x28E\x5\x20F\x108\x2\x28E\x28F\x5\x201\x101\x2\x28F"+ - "\x290\x5\x1F9\xFD\x2\x290\x291\x5\x213\x10A\x2\x291*\x3\x2\x2\x2\x292"+ - "\x293\x5\x1FB\xFE\x2\x293\x294\x5\x229\x115\x2\x294\x295\x5\x223\x112"+ - "\x2\x295\x296\x5\x1F9\xFD\x2\x296\x297\x5\x20F\x108\x2\x297,\x3\x2\x2"+ - "\x2\x298\x299\x5\x1FB\xFE\x2\x299\x29A\x5\x229\x115\x2\x29A\x29B\x5\x21B"+ - "\x10E\x2\x29B\x29C\x5\x201\x101\x2\x29C\x29D\x5\x203\x102\x2\x29D.\x3"+ - "\x2\x2\x2\x29E\x29F\x5\x1FB\xFE\x2\x29F\x2A0\x5\x229\x115\x2\x2A0\x2A1"+ - "\x5\x21F\x110\x2\x2A1\x2A2\x5\x201\x101\x2\x2A2\x30\x3\x2\x2\x2\x2A3\x2A4"+ - "\x5\x1FD\xFF\x2\x2A4\x2A5\x5\x1F9\xFD\x2\x2A5\x2A6\x5\x20F\x108\x2\x2A6"+ - "\x2A7\x5\x20F\x108\x2\x2A7\x32\x3\x2\x2\x2\x2A8\x2A9\x5\x1FD\xFF\x2\x2A9"+ - "\x2AA\x5\x1F9\xFD\x2\x2AA\x2AB\x5\x21D\x10F\x2\x2AB\x2AC\x5\x201\x101"+ - "\x2\x2AC\x34\x3\x2\x2\x2\x2AD\x2AE\x5\x1FD\xFF\x2\x2AE\x2AF\x5\x207\x104"+ - "\x2\x2AF\x2B0\x5\x1FF\x100\x2\x2B0\x2B1\x5\x209\x105\x2\x2B1\x2B2\x5\x21B"+ - "\x10E\x2\x2B2\x36\x3\x2\x2\x2\x2B3\x2B4\x5\x1FD\xFF\x2\x2B4\x2B5\x5\x207"+ - "\x104\x2\x2B5\x2B6\x5\x1FF\x100\x2\x2B6\x2B7\x5\x21B\x10E\x2\x2B7\x2B8"+ - "\x5\x209\x105\x2\x2B8\x2B9\x5\x223\x112\x2\x2B9\x2BA\x5\x201\x101\x2\x2BA"+ - "\x38\x3\x2\x2\x2\x2BB\x2BC\x5\x1FD\xFF\x2\x2BC\x2BD\x5\x20F\x108\x2\x2BD"+ - "\x2BE\x5\x1F9\xFD\x2\x2BE\x2BF\x5\x21D\x10F\x2\x2BF\x2C0\x5\x21D\x10F"+ - "\x2\x2C0:\x3\x2\x2\x2\x2C1\x2C2\x5\x1FD\xFF\x2\x2C2\x2C3\x5\x20F\x108"+ - "\x2\x2C3\x2C4\x5\x215\x10B\x2\x2C4\x2C5\x5\x21D\x10F\x2\x2C5\x2C6\x5\x201"+ - "\x101\x2\x2C6<\x3\x2\x2\x2\x2C7\x2C8\x5\x1FD\xFF\x2\x2C8\x2C9\x5\x215"+ - "\x10B\x2\x2C9\x2CA\x5\x20F\x108\x2\x2CA\x2CB\x5\x20F\x108\x2\x2CB\x2CC"+ - "\x5\x201\x101\x2\x2CC\x2CD\x5\x1FD\xFF\x2\x2CD\x2CE\x5\x21F\x110\x2\x2CE"+ - "\x2CF\x5\x209\x105\x2\x2CF\x2D0\x5\x215\x10B\x2\x2D0\x2D1\x5\x213\x10A"+ - "\x2\x2D1>\x3\x2\x2\x2\x2D2\x2D3\x5\x1FD\xFF\x2\x2D3\x2D4\x5\x215\x10B"+ - "\x2\x2D4\x2D5\x5\x213\x10A\x2\x2D5\x2D6\x5\x21D\x10F\x2\x2D6\x2D7\x5\x21F"+ - "\x110\x2\x2D7@\x3\x2\x2\x2\x2D8\x2D9\x5\x1FF\x100\x2\x2D9\x2DA\x5\x1F9"+ - "\xFD\x2\x2DA\x2DB\x5\x21F\x110\x2\x2DB\x2DC\x5\x1F9\xFD\x2\x2DC\x2DD\x5"+ - "\x1FB\xFE\x2\x2DD\x2DE\x5\x1F9\xFD\x2\x2DE\x2DF\x5\x21D\x10F\x2\x2DF\x2E0"+ - "\x5\x201\x101\x2\x2E0\x42\x3\x2\x2\x2\x2E1\x2E2\x5\x1FF\x100\x2\x2E2\x2E3"+ - "\x5\x1F9\xFD\x2\x2E3\x2E4\x5\x21F\x110\x2\x2E4\x2E5\x5\x201\x101\x2\x2E5"+ - "\x44\x3\x2\x2\x2\x2E6\x2E7\x5\x1FF\x100\x2\x2E7\x2E8\x5\x201\x101\x2\x2E8"+ - "\x2E9\x5\x1FD\xFF\x2\x2E9\x2EA\x5\x20F\x108\x2\x2EA\x2EB\x5\x1F9\xFD\x2"+ - "\x2EB\x2EC\x5\x21B\x10E\x2\x2EC\x2ED\x5\x201\x101\x2\x2ED\x46\x3\x2\x2"+ - "\x2\x2EE\x2EF\x5\x1FF\x100\x2\x2EF\x2F0\x5\x201\x101\x2\x2F0\x2F1\x5\x203"+ - "\x102\x2\x2F1\x2F2\x5\x1FB\xFE\x2\x2F2\x2F3\x5\x215\x10B\x2\x2F3\x2F4"+ - "\x5\x215\x10B\x2\x2F4\x2F5\x5\x20F\x108\x2\x2F5H\x3\x2\x2\x2\x2F6\x2F7"+ - "\x5\x1FF\x100\x2\x2F7\x2F8\x5\x201\x101\x2\x2F8\x2F9\x5\x203\x102\x2\x2F9"+ - "\x2FA\x5\x1FB\xFE\x2\x2FA\x2FB\x5\x229\x115\x2\x2FB\x2FC\x5\x21F\x110"+ - "\x2\x2FC\x2FD\x5\x201\x101\x2\x2FDJ\x3\x2\x2\x2\x2FE\x2FF\x5\x1FF\x100"+ - "\x2\x2FF\x300\x5\x201\x101\x2\x300\x301\x5\x203\x102\x2\x301\x302\x5\x1FF"+ - "\x100\x2\x302\x303\x5\x1F9\xFD\x2\x303\x304\x5\x21F\x110\x2\x304\x305"+ - "\x5\x201\x101\x2\x305L\x3\x2\x2\x2\x306\x307\x5\x1FF\x100\x2\x307\x308"+ - "\x5\x201\x101\x2\x308\x309\x5\x203\x102\x2\x309\x30A\x5\x1FF\x100\x2\x30A"+ - "\x30B\x5\x1FB\xFE\x2\x30B\x30C\x5\x20F\x108\x2\x30CN\x3\x2\x2\x2\x30D"+ - "\x30E\x5\x1FF\x100\x2\x30E\x30F\x5\x201\x101\x2\x30F\x310\x5\x203\x102"+ - "\x2\x310\x311\x5\x1FF\x100\x2\x311\x312\x5\x201\x101\x2\x312\x313\x5\x1FD"+ - "\xFF\x2\x313P\x3\x2\x2\x2\x314\x315\x5\x1FF\x100\x2\x315\x316\x5\x201"+ - "\x101\x2\x316\x317\x5\x203\x102\x2\x317\x318\x5\x1FD\xFF\x2\x318\x319"+ - "\x5\x221\x111\x2\x319\x31A\x5\x21B\x10E\x2\x31AR\x3\x2\x2\x2\x31B\x31C"+ - "\x5\x1FF\x100\x2\x31C\x31D\x5\x201\x101\x2\x31D\x31E\x5\x203\x102\x2\x31E"+ - "\x31F\x5\x209\x105\x2\x31F\x320\x5\x213\x10A\x2\x320\x321\x5\x21F\x110"+ - "\x2\x321T\x3\x2\x2\x2\x322\x323\x5\x1FF\x100\x2\x323\x324\x5\x201\x101"+ - "\x2\x324\x325\x5\x203\x102\x2\x325\x326\x5\x20F\x108\x2\x326\x327\x5\x213"+ - "\x10A\x2\x327\x328\x5\x205\x103\x2\x328V\x3\x2\x2\x2\x329\x32A\x5\x1FF"+ - "\x100\x2\x32A\x32B\x5\x201\x101\x2\x32B\x32C\x5\x203\x102\x2\x32C\x32D"+ - "\x5\x215\x10B\x2\x32D\x32E\x5\x1FB\xFE\x2\x32E\x32F\x5\x20B\x106\x2\x32F"+ - "X\x3\x2\x2\x2\x330\x331\x5\x1FF\x100\x2\x331\x332\x5\x201\x101\x2\x332"+ - "\x333\x5\x203\x102\x2\x333\x334\x5\x21D\x10F\x2\x334\x335\x5\x213\x10A"+ - "\x2\x335\x336\x5\x205\x103\x2\x336Z\x3\x2\x2\x2\x337\x338\x5\x1FF\x100"+ - "\x2\x338\x339\x5\x201\x101\x2\x339\x33A\x5\x203\x102\x2\x33A\x33B\x5\x21D"+ - "\x10F\x2\x33B\x33C\x5\x21F\x110\x2\x33C\x33D\x5\x21B\x10E\x2\x33D\\\x3"+ - "\x2\x2\x2\x33E\x33F\x5\x1FF\x100\x2\x33F\x340\x5\x201\x101\x2\x340\x341"+ - "\x5\x203\x102\x2\x341\x342\x5\x223\x112\x2\x342\x343\x5\x1F9\xFD\x2\x343"+ - "\x344\x5\x21B\x10E\x2\x344^\x3\x2\x2\x2\x345\x346\x5\x1FF\x100\x2\x346"+ - "\x347\x5\x201\x101\x2\x347\x348\x5\x20F\x108\x2\x348\x349\x5\x201\x101"+ - "\x2\x349\x34A\x5\x21F\x110\x2\x34A\x34B\x5\x201\x101\x2\x34B\x34C\x5\x21D"+ - "\x10F\x2\x34C\x34D\x5\x201\x101\x2\x34D\x34E\x5\x21F\x110\x2\x34E\x34F"+ - "\x5\x21F\x110\x2\x34F\x350\x5\x209\x105\x2\x350\x351\x5\x213\x10A\x2\x351"+ - "\x352\x5\x205\x103\x2\x352`\x3\x2\x2\x2\x353\x354\x5\x1FF\x100\x2\x354"+ - "\x355\x5\x209\x105\x2\x355\x356\x5\x211\x109\x2\x356\x62\x3\x2\x2\x2\x357"+ - "\x358\x5\x1FF\x100\x2\x358\x359\x5\x215\x10B\x2\x359\x64\x3\x2\x2\x2\x35A"+ - "\x35B\x5\x1FF\x100\x2\x35B\x35C\x5\x215\x10B\x2\x35C\x35D\x5\x221\x111"+ - "\x2\x35D\x35E\x5\x1FB\xFE\x2\x35E\x35F\x5\x20F\x108\x2\x35F\x360\x5\x201"+ - "\x101\x2\x360\x66\x3\x2\x2\x2\x361\x362\x5\x201\x101\x2\x362\x363\x5\x1F9"+ - "\xFD\x2\x363\x364\x5\x1FD\xFF\x2\x364\x365\x5\x207\x104\x2\x365h\x3\x2"+ - "\x2\x2\x366\x367\x5\x201\x101\x2\x367\x368\x5\x20F\x108\x2\x368\x369\x5"+ - "\x21D\x10F\x2\x369\x36A\x5\x201\x101\x2\x36Aj\x3\x2\x2\x2\x36B\x36C\x5"+ - "\x201\x101\x2\x36C\x36D\x5\x20F\x108\x2\x36D\x36E\x5\x21D\x10F\x2\x36E"+ - "\x36F\x5\x201\x101\x2\x36F\x370\x5\x209\x105\x2\x370\x371\x5\x203\x102"+ - "\x2\x371l\x3\x2\x2\x2\x372\x373\x5\x201\x101\x2\x373\x374\x5\x211\x109"+ - "\x2\x374\x375\x5\x217\x10C\x2\x375\x376\x5\x21F\x110\x2\x376\x377\x5\x229"+ - "\x115\x2\x377n\x3\x2\x2\x2\x378\x379\x5\x201\x101\x2\x379\x37A\x5\x213"+ - "\x10A\x2\x37A\x37B\x5\x1FF\x100\x2\x37B\x37C\x5\x1EF\xF8\x2\x37C\x37D"+ - "\x5\x201\x101\x2\x37D\x37E\x5\x213\x10A\x2\x37E\x37F\x5\x221\x111\x2\x37F"+ - "\x380\x5\x211\x109\x2\x380p\x3\x2\x2\x2\x381\x382\x5\x201\x101\x2\x382"+ - "\x383\x5\x213\x10A\x2\x383\x384\x5\x1FF\x100\x2\x384\x385\x5\x1EF\xF8"+ - "\x2\x385\x386\x5\x203\x102\x2\x386\x387\x5\x221\x111\x2\x387\x388\x5\x213"+ - "\x10A\x2\x388\x389\x5\x1FD\xFF\x2\x389\x38A\x5\x21F\x110\x2\x38A\x38B"+ - "\x5\x209\x105\x2\x38B\x38C\x5\x215\x10B\x2\x38C\x38D\x5\x213\x10A\x2\x38D"+ - "r\x3\x2\x2\x2\x38E\x38F\x5\x201\x101\x2\x38F\x390\x5\x213\x10A\x2\x390"+ - "\x391\x5\x1FF\x100\x2\x391\x392\x5\x1EF\xF8\x2\x392\x393\x5\x209\x105"+ - "\x2\x393\x394\x5\x203\x102\x2\x394t\x3\x2\x2\x2\x395\x396\x5\x201\x101"+ - "\x2\x396\x397\x5\x213\x10A\x2\x397\x398\x5\x1FF\x100\x2\x398\x399\x5\x1EF"+ - "\xF8\x2\x399\x39A\x5\x217\x10C\x2\x39A\x39B\x5\x21B\x10E\x2\x39B\x39C"+ - "\x5\x215\x10B\x2\x39C\x39D\x5\x217\x10C\x2\x39D\x39E\x5\x201\x101\x2\x39E"+ - "\x39F\x5\x21B\x10E\x2\x39F\x3A0\x5\x21F\x110\x2\x3A0\x3A1\x5\x229\x115"+ - "\x2\x3A1v\x3\x2\x2\x2\x3A2\x3A3\x5\x201\x101\x2\x3A3\x3A4\x5\x213\x10A"+ - "\x2\x3A4\x3A5\x5\x1FF\x100\x2\x3A5\x3A6\x5\x1EF\xF8\x2\x3A6\x3A7\x5\x21D"+ - "\x10F\x2\x3A7\x3A8\x5\x201\x101\x2\x3A8\x3A9\x5\x20F\x108\x2\x3A9\x3AA"+ - "\x5\x201\x101\x2\x3AA\x3AB\x5\x1FD\xFF\x2\x3AB\x3AC\x5\x21F\x110\x2\x3AC"+ - "x\x3\x2\x2\x2\x3AD\x3AE\x5\x201\x101\x2\x3AE\x3AF\x5\x213\x10A\x2\x3AF"+ - "\x3B0\x5\x1FF\x100\x2\x3B0\x3B1\x5\x1EF\xF8\x2\x3B1\x3B2\x5\x21D\x10F"+ - "\x2\x3B2\x3B3\x5\x221\x111\x2\x3B3\x3B4\x5\x1FB\xFE\x2\x3B4z\x3\x2\x2"+ - "\x2\x3B5\x3B6\x5\x201\x101\x2\x3B6\x3B7\x5\x213\x10A\x2\x3B7\x3B8\x5\x1FF"+ - "\x100\x2\x3B8\x3B9\x5\x1EF\xF8\x2\x3B9\x3BA\x5\x21F\x110\x2\x3BA\x3BB"+ - "\x5\x229\x115\x2\x3BB\x3BC\x5\x217\x10C\x2\x3BC\x3BD\x5\x201\x101\x2\x3BD"+ - "|\x3\x2\x2\x2\x3BE\x3BF\x5\x201\x101\x2\x3BF\x3C0\x5\x213\x10A\x2\x3C0"+ - "\x3C1\x5\x1FF\x100\x2\x3C1\x3C2\x5\x1EF\xF8\x2\x3C2\x3C3\x5\x225\x113"+ - "\x2\x3C3\x3C4\x5\x209\x105\x2\x3C4\x3C5\x5\x21F\x110\x2\x3C5\x3C6\x5\x207"+ - "\x104\x2\x3C6~\x3\x2\x2\x2\x3C7\x3C8\x5\x201\x101\x2\x3C8\x3C9\x5\x213"+ - "\x10A\x2\x3C9\x3CA\x5\x1FF\x100\x2\x3CA\x80\x3\x2\x2\x2\x3CB\x3CC\x5\x201"+ - "\x101\x2\x3CC\x3CD\x5\x213\x10A\x2\x3CD\x3CE\x5\x221\x111\x2\x3CE\x3CF"+ - "\x5\x211\x109\x2\x3CF\x82\x3\x2\x2\x2\x3D0\x3D1\x5\x201\x101\x2\x3D1\x3D2"+ - "\x5\x219\x10D\x2\x3D2\x3D3\x5\x223\x112\x2\x3D3\x84\x3\x2\x2\x2\x3D4\x3D5"+ - "\x5\x201\x101\x2\x3D5\x3D6\x5\x21B\x10E\x2\x3D6\x3D7\x5\x1F9\xFD\x2\x3D7"+ - "\x3D8\x5\x21D\x10F\x2\x3D8\x3D9\x5\x201\x101\x2\x3D9\x86\x3\x2\x2\x2\x3DA"+ - "\x3DB\x5\x201\x101\x2\x3DB\x3DC\x5\x21B\x10E\x2\x3DC\x3DD\x5\x21B\x10E"+ - "\x2\x3DD\x3DE\x5\x215\x10B\x2\x3DE\x3DF\x5\x21B\x10E\x2\x3DF\x88\x3\x2"+ - "\x2\x2\x3E0\x3E1\x5\x201\x101\x2\x3E1\x3E2\x5\x223\x112\x2\x3E2\x3E3\x5"+ - "\x201\x101\x2\x3E3\x3E4\x5\x213\x10A\x2\x3E4\x3E5\x5\x21F\x110\x2\x3E5"+ - "\x8A\x3\x2\x2\x2\x3E6\x3E7\x5\x201\x101\x2\x3E7\x3E8\x5\x227\x114\x2\x3E8"+ - "\x3E9\x5\x209\x105\x2\x3E9\x3EA\x5\x21F\x110\x2\x3EA\x3EB\x5\x1EF\xF8"+ - "\x2\x3EB\x3EC\x5\x1FF\x100\x2\x3EC\x3ED\x5\x215\x10B\x2\x3ED\x8C\x3\x2"+ - "\x2\x2\x3EE\x3EF\x5\x201\x101\x2\x3EF\x3F0\x5\x227\x114\x2\x3F0\x3F1\x5"+ - "\x209\x105\x2\x3F1\x3F2\x5\x21F\x110\x2\x3F2\x3F3\x5\x1EF\xF8\x2\x3F3"+ - "\x3F4\x5\x203\x102\x2\x3F4\x3F5\x5\x215\x10B\x2\x3F5\x3F6\x5\x21B\x10E"+ - "\x2\x3F6\x8E\x3\x2\x2\x2\x3F7\x3F8\x5\x201\x101\x2\x3F8\x3F9\x5\x227\x114"+ - "\x2\x3F9\x3FA\x5\x209\x105\x2\x3FA\x3FB\x5\x21F\x110\x2\x3FB\x3FC\x5\x1EF"+ - "\xF8\x2\x3FC\x3FD\x5\x203\x102\x2\x3FD\x3FE\x5\x221\x111\x2\x3FE\x3FF"+ - "\x5\x213\x10A\x2\x3FF\x400\x5\x1FD\xFF\x2\x400\x401\x5\x21F\x110\x2\x401"+ - "\x402\x5\x209\x105\x2\x402\x403\x5\x215\x10B\x2\x403\x404\x5\x213\x10A"+ - "\x2\x404\x90\x3\x2\x2\x2\x405\x406\x5\x201\x101\x2\x406\x407\x5\x227\x114"+ - "\x2\x407\x408\x5\x209\x105\x2\x408\x409\x5\x21F\x110\x2\x409\x40A\x5\x1EF"+ - "\xF8\x2\x40A\x40B\x5\x217\x10C\x2\x40B\x40C\x5\x21B\x10E\x2\x40C\x40D"+ - "\x5\x215\x10B\x2\x40D\x40E\x5\x217\x10C\x2\x40E\x40F\x5\x201\x101\x2\x40F"+ - "\x410\x5\x21B\x10E\x2\x410\x411\x5\x21F\x110\x2\x411\x412\x5\x229\x115"+ - "\x2\x412\x92\x3\x2\x2\x2\x413\x414\x5\x201\x101\x2\x414\x415\x5\x227\x114"+ - "\x2\x415\x416\x5\x209\x105\x2\x416\x417\x5\x21F\x110\x2\x417\x418\x5\x1EF"+ - "\xF8\x2\x418\x419\x5\x21D\x10F\x2\x419\x41A\x5\x221\x111\x2\x41A\x41B"+ - "\x5\x1FB\xFE\x2\x41B\x94\x3\x2\x2\x2\x41C\x41D\x5\x203\x102\x2\x41D\x41E"+ - "\x5\x1F9\xFD\x2\x41E\x41F\x5\x20F\x108\x2\x41F\x420\x5\x21D\x10F\x2\x420"+ - "\x421\x5\x201\x101\x2\x421\x96\x3\x2\x2\x2\x422\x423\x5\x203\x102\x2\x423"+ - "\x424\x5\x209\x105\x2\x424\x425\x5\x20F\x108\x2\x425\x426\x5\x201\x101"+ - "\x2\x426\x427\x5\x1FD\xFF\x2\x427\x428\x5\x215\x10B\x2\x428\x429\x5\x217"+ - "\x10C\x2\x429\x42A\x5\x229\x115\x2\x42A\x98\x3\x2\x2\x2\x42B\x42C\x5\x203"+ - "\x102\x2\x42C\x42D\x5\x21B\x10E\x2\x42D\x42E\x5\x209\x105\x2\x42E\x42F"+ - "\x5\x201\x101\x2\x42F\x430\x5\x213\x10A\x2\x430\x431\x5\x1FF\x100\x2\x431"+ - "\x9A\x3\x2\x2\x2\x432\x433\x5\x203\x102\x2\x433\x434\x5\x215\x10B\x2\x434"+ - "\x435\x5\x21B\x10E\x2\x435\x9C\x3\x2\x2\x2\x436\x437\x5\x203\x102\x2\x437"+ - "\x438\x5\x221\x111\x2\x438\x439\x5\x213\x10A\x2\x439\x43A\x5\x1FD\xFF"+ - "\x2\x43A\x43B\x5\x21F\x110\x2\x43B\x43C\x5\x209\x105\x2\x43C\x43D\x5\x215"+ - "\x10B\x2\x43D\x43E\x5\x213\x10A\x2\x43E\x9E\x3\x2\x2\x2\x43F\x440\x5\x205"+ - "\x103\x2\x440\x441\x5\x201\x101\x2\x441\x442\x5\x21F\x110\x2\x442\xA0"+ - "\x3\x2\x2\x2\x443\x444\x5\x205\x103\x2\x444\x445\x5\x20F\x108\x2\x445"+ - "\x446\x5\x215\x10B\x2\x446\x447\x5\x1FB\xFE\x2\x447\x448\x5\x1F9\xFD\x2"+ - "\x448\x449\x5\x20F\x108\x2\x449\xA2\x3\x2\x2\x2\x44A\x44B\x5\x205\x103"+ - "\x2\x44B\x44C\x5\x215\x10B\x2\x44C\x44D\x5\x21D\x10F\x2\x44D\x44E\x5\x221"+ - "\x111\x2\x44E\x44F\x5\x1FB\xFE\x2\x44F\xA4\x3\x2\x2\x2\x450\x451\x5\x205"+ - "\x103\x2\x451\x452\x5\x215\x10B\x2\x452\x453\x5\x21F\x110\x2\x453\x454"+ - "\x5\x215\x10B\x2\x454\xA6\x3\x2\x2\x2\x455\x456\x5\x209\x105\x2\x456\x457"+ - "\x5\x203\x102\x2\x457\xA8\x3\x2\x2\x2\x458\x459\x5\x209\x105\x2\x459\x45A"+ - "\x5\x211\x109\x2\x45A\x45B\x5\x217\x10C\x2\x45B\xAA\x3\x2\x2\x2\x45C\x45D"+ - "\x5\x209\x105\x2\x45D\x45E\x5\x211\x109\x2\x45E\x45F\x5\x217\x10C\x2\x45F"+ - "\x460\x5\x20F\x108\x2\x460\x461\x5\x201\x101\x2\x461\x462\x5\x211\x109"+ - "\x2\x462\x463\x5\x201\x101\x2\x463\x464\x5\x213\x10A\x2\x464\x465\x5\x21F"+ - "\x110\x2\x465\x466\x5\x21D\x10F\x2\x466\xAC\x3\x2\x2\x2\x467\x468\x5\x209"+ - "\x105\x2\x468\x469\x5\x213\x10A\x2\x469\xAE\x3\x2\x2\x2\x46A\x46B\x5\x209"+ - "\x105\x2\x46B\x46C\x5\x213\x10A\x2\x46C\x46D\x5\x217\x10C\x2\x46D\x46E"+ - "\x5\x221\x111\x2\x46E\x46F\x5\x21F\x110\x2\x46F\xB0\x3\x2\x2\x2\x470\x471"+ - "\x5\x209\x105\x2\x471\x472\x5\x21D\x10F\x2\x472\xB2\x3\x2\x2\x2\x473\x474"+ - "\x5\x209\x105\x2\x474\x475\x5\x213\x10A\x2\x475\x476\x5\x21F\x110\x2\x476"+ - "\x477\x5\x201\x101\x2\x477\x478\x5\x205\x103\x2\x478\x479\x5\x201\x101"+ - "\x2\x479\x47A\x5\x21B\x10E\x2\x47A\xB4\x3\x2\x2\x2\x47B\x47C\x5\x20D\x107"+ - "\x2\x47C\x47D\x5\x209\x105\x2\x47D\x47E\x5\x20F\x108\x2\x47E\x47F\x5\x20F"+ - "\x108\x2\x47F\xB6\x3\x2\x2\x2\x480\x481\x5\x20F\x108\x2\x481\x482\x5\x215"+ - "\x10B\x2\x482\x483\x5\x1F9\xFD\x2\x483\x484\x5\x1FF\x100\x2\x484\xB8\x3"+ - "\x2\x2\x2\x485\x486\x5\x20F\x108\x2\x486\x487\x5\x215\x10B\x2\x487\x488"+ - "\x5\x1FD\xFF\x2\x488\x489\x5\x20D\x107\x2\x489\xBA\x3\x2\x2\x2\x48A\x48B"+ - "\x5\x20F\x108\x2\x48B\x48C\x5\x215\x10B\x2\x48C\x48D\x5\x213\x10A\x2\x48D"+ - "\x48E\x5\x205\x103\x2\x48E\xBC\x3\x2\x2\x2\x48F\x490\x5\x20F\x108\x2\x490"+ - "\x491\x5\x215\x10B\x2\x491\x492\x5\x215\x10B\x2\x492\x493\x5\x217\x10C"+ - "\x2\x493\xBE\x3\x2\x2\x2\x494\x495\x5\x20F\x108\x2\x495\x496\x5\x201\x101"+ - "\x2\x496\x497\x5\x213\x10A\x2\x497\xC0\x3\x2\x2\x2\x498\x499\x5\x20F\x108"+ - "\x2\x499\x49A\x5\x201\x101\x2\x49A\x49B\x5\x21F\x110\x2\x49B\xC2\x3\x2"+ - "\x2\x2\x49C\x49D\x5\x20F\x108\x2\x49D\x49E\x5\x209\x105\x2\x49E\x49F\x5"+ - "\x1FB\xFE\x2\x49F\xC4\x3\x2\x2\x2\x4A0\x4A1\x5\x20F\x108\x2\x4A1\x4A2"+ - "\x5\x209\x105\x2\x4A2\x4A3\x5\x20D\x107\x2\x4A3\x4A4\x5\x201\x101\x2\x4A4"+ - "\xC6\x3\x2\x2\x2\x4A5\x4A6\x5\x20F\x108\x2\x4A6\x4A7\x5\x209\x105\x2\x4A7"+ - "\x4A8\x5\x213\x10A\x2\x4A8\x4A9\x5\x201\x101\x2\x4A9\x4AA\x5\x1EF\xF8"+ - "\x2\x4AA\x4AB\x5\x209\x105\x2\x4AB\x4AC\x5\x213\x10A\x2\x4AC\x4AD\x5\x217"+ - "\x10C\x2\x4AD\x4AE\x5\x221\x111\x2\x4AE\x4AF\x5\x21F\x110\x2\x4AF\xC8"+ - "\x3\x2\x2\x2\x4B0\x4B1\x5\x20F\x108\x2\x4B1\x4B2\x5\x215\x10B\x2\x4B2"+ - "\x4B3\x5\x1FD\xFF\x2\x4B3\x4B4\x5\x20D\x107\x2\x4B4\x4B5\x5\x1EF\xF8\x2"+ - "\x4B5\x4B6\x5\x21B\x10E\x2\x4B6\x4B7\x5\x201\x101\x2\x4B7\x4B8\x5\x1F9"+ - "\xFD\x2\x4B8\x4B9\x5\x1FF\x100\x2\x4B9\xCA\x3\x2\x2\x2\x4BA\x4BB\x5\x20F"+ - "\x108\x2\x4BB\x4BC\x5\x215\x10B\x2\x4BC\x4BD\x5\x1FD\xFF\x2\x4BD\x4BE"+ - "\x5\x20D\x107\x2\x4BE\x4BF\x5\x1EF\xF8\x2\x4BF\x4C0\x5\x225\x113\x2\x4C0"+ - "\x4C1\x5\x21B\x10E\x2\x4C1\x4C2\x5\x209\x105\x2\x4C2\x4C3\x5\x21F\x110"+ - "\x2\x4C3\x4C4\x5\x201\x101\x2\x4C4\xCC\x3\x2\x2\x2\x4C5\x4C6\x5\x20F\x108"+ - "\x2\x4C6\x4C7\x5\x215\x10B\x2\x4C7\x4C8\x5\x1FD\xFF\x2\x4C8\x4C9\x5\x20D"+ - "\x107\x2\x4C9\x4CA\x5\x1EF\xF8\x2\x4CA\x4CB\x5\x21B\x10E\x2\x4CB\x4CC"+ - "\x5\x201\x101\x2\x4CC\x4CD\x5\x1F9\xFD\x2\x4CD\x4CE\x5\x1FF\x100\x2\x4CE"+ - "\x4CF\x5\x1EF\xF8\x2\x4CF\x4D0\x5\x225\x113\x2\x4D0\x4D1\x5\x21B\x10E"+ - "\x2\x4D1\x4D2\x5\x209\x105\x2\x4D2\x4D3\x5\x21F\x110\x2\x4D3\x4D4\x5\x201"+ - "\x101\x2\x4D4\xCE\x3\x2\x2\x2\x4D5\x4D6\x5\x20F\x108\x2\x4D6\x4D7\x5\x21D"+ - "\x10F\x2\x4D7\x4D8\x5\x201\x101\x2\x4D8\x4D9\x5\x21F\x110\x2\x4D9\xD0"+ - "\x3\x2\x2\x2\x4DA\x4DB\x5\x211\x109\x2\x4DB\x4DC\x5\x201\x101\x2\x4DC"+ - "\xD2\x3\x2\x2\x2\x4DD\x4DE\x5\x211\x109\x2\x4DE\x4DF\x5\x209\x105\x2\x4DF"+ - "\x4E0\x5\x1FF\x100\x2\x4E0\xD4\x3\x2\x2\x2\x4E1\x4E2\x5\x211\x109\x2\x4E2"+ - "\x4E3\x5\x20D\x107\x2\x4E3\x4E4\x5\x1FF\x100\x2\x4E4\x4E5\x5\x209\x105"+ - "\x2\x4E5\x4E6\x5\x21B\x10E\x2\x4E6\xD6\x3\x2\x2\x2\x4E7\x4E8\x5\x211\x109"+ - "\x2\x4E8\x4E9\x5\x215\x10B\x2\x4E9\x4EA\x5\x1FF\x100\x2\x4EA\xD8\x3\x2"+ - "\x2\x2\x4EB\x4EC\x5\x213\x10A\x2\x4EC\x4ED\x5\x1F9\xFD\x2\x4ED\x4EE\x5"+ - "\x211\x109\x2\x4EE\x4EF\x5\x201\x101\x2\x4EF\xDA\x3\x2\x2\x2\x4F0\x4F1"+ - "\x5\x213\x10A\x2\x4F1\x4F2\x5\x201\x101\x2\x4F2\x4F3\x5\x227\x114\x2\x4F3"+ - "\x4F4\x5\x21F\x110\x2\x4F4\xDC\x3\x2\x2\x2\x4F5\x4F6\x5\x213\x10A\x2\x4F6"+ - "\x4F7\x5\x201\x101\x2\x4F7\x4F8\x5\x225\x113\x2\x4F8\xDE\x3\x2\x2\x2\x4F9"+ - "\x4FA\x5\x213\x10A\x2\x4FA\x4FB\x5\x215\x10B\x2\x4FB\x4FC\x5\x21F\x110"+ - "\x2\x4FC\xE0\x3\x2\x2\x2\x4FD\x4FE\x5\x213\x10A\x2\x4FE\x4FF\x5\x215\x10B"+ - "\x2\x4FF\x500\x5\x21F\x110\x2\x500\x501\x5\x207\x104\x2\x501\x502\x5\x209"+ - "\x105\x2\x502\x503\x5\x213\x10A\x2\x503\x504\x5\x205\x103\x2\x504\xE2"+ - "\x3\x2\x2\x2\x505\x506\x5\x213\x10A\x2\x506\x507\x5\x221\x111\x2\x507"+ - "\x508\x5\x20F\x108\x2\x508\x509\x5\x20F\x108\x2\x509\xE4\x3\x2\x2\x2\x50A"+ - "\x50B\x5\x215\x10B\x2\x50B\x50C\x5\x213\x10A\x2\x50C\xE6\x3\x2\x2\x2\x50D"+ - "\x50E\x5\x215\x10B\x2\x50E\x50F\x5\x213\x10A\x2\x50F\x510\x5\x1EF\xF8"+ - "\x2\x510\x511\x5\x201\x101\x2\x511\x512\x5\x21B\x10E\x2\x512\x513\x5\x21B"+ - "\x10E\x2\x513\x514\x5\x215\x10B\x2\x514\x515\x5\x21B\x10E\x2\x515\xE8"+ - "\x3\x2\x2\x2\x516\x517\x5\x215\x10B\x2\x517\x518\x5\x213\x10A\x2\x518"+ - "\x519\x5\x1EF\xF8\x2\x519\x51A\x5\x20F\x108\x2\x51A\x51B\x5\x215\x10B"+ - "\x2\x51B\x51C\x5\x1FD\xFF\x2\x51C\x51D\x5\x1F9\xFD\x2\x51D\x51E\x5\x20F"+ - "\x108\x2\x51E\x51F\x5\x1EF\xF8\x2\x51F\x520\x5\x201\x101\x2\x520\x521"+ - "\x5\x21B\x10E\x2\x521\x522\x5\x21B\x10E\x2\x522\x523\x5\x215\x10B\x2\x523"+ - "\x524\x5\x21B\x10E\x2\x524\xEA\x3\x2\x2\x2\x525\x526\x5\x215\x10B\x2\x526"+ - "\x527\x5\x217\x10C\x2\x527\x528\x5\x201\x101\x2\x528\x529\x5\x213\x10A"+ - "\x2\x529\xEC\x3\x2\x2\x2\x52A\x52B\x5\x215\x10B\x2\x52B\x52C\x5\x217\x10C"+ - "\x2\x52C\x52D\x5\x21F\x110\x2\x52D\x52E\x5\x209\x105\x2\x52E\x52F\x5\x215"+ - "\x10B\x2\x52F\x530\x5\x213\x10A\x2\x530\x531\x5\x1F9\xFD\x2\x531\x532"+ - "\x5\x20F\x108\x2\x532\xEE\x3\x2\x2\x2\x533\x534\x5\x215\x10B\x2\x534\x535"+ - "\x5\x217\x10C\x2\x535\x536\x5\x21F\x110\x2\x536\x537\x5\x209\x105\x2\x537"+ - "\x538\x5\x215\x10B\x2\x538\x539\x5\x213\x10A\x2\x539\x53A\x5\x1EF\xF8"+ - "\x2\x53A\x53B\x5\x1FB\xFE\x2\x53B\x53C\x5\x1F9\xFD\x2\x53C\x53D\x5\x21D"+ - "\x10F\x2\x53D\x53E\x5\x201\x101\x2\x53E\xF0\x3\x2\x2\x2\x53F\x540\x5\x215"+ - "\x10B\x2\x540\x541\x5\x217\x10C\x2\x541\x542\x5\x21F\x110\x2\x542\x543"+ - "\x5\x209\x105\x2\x543\x544\x5\x215\x10B\x2\x544\x545\x5\x213\x10A\x2\x545"+ - "\x546\x5\x1EF\xF8\x2\x546\x547\x5\x201\x101\x2\x547\x548\x5\x227\x114"+ - "\x2\x548\x549\x5\x217\x10C\x2\x549\x54A\x5\x20F\x108\x2\x54A\x54B\x5\x209"+ - "\x105\x2\x54B\x54C\x5\x1FD\xFF\x2\x54C\x54D\x5\x209\x105\x2\x54D\x54E"+ - "\x5\x21F\x110\x2\x54E\xF2\x3\x2\x2\x2\x54F\x550\x5\x215\x10B\x2\x550\x551"+ - "\x5\x217\x10C\x2\x551\x552\x5\x21F\x110\x2\x552\x553\x5\x209\x105\x2\x553"+ - "\x554\x5\x215\x10B\x2\x554\x555\x5\x213\x10A\x2\x555\x556\x5\x1EF\xF8"+ - "\x2\x556\x557\x5\x1FD\xFF\x2\x557\x558\x5\x215\x10B\x2\x558\x559\x5\x211"+ - "\x109\x2\x559\x55A\x5\x217\x10C\x2\x55A\x55B\x5\x1F9\xFD\x2\x55B\x55C"+ - "\x5\x21B\x10E\x2\x55C\x55D\x5\x201\x101\x2\x55D\xF4\x3\x2\x2\x2\x55E\x55F"+ - "\x5\x215\x10B\x2\x55F\x560\x5\x217\x10C\x2\x560\x561\x5\x21F\x110\x2\x561"+ - "\x562\x5\x209\x105\x2\x562\x563\x5\x215\x10B\x2\x563\x564\x5\x213\x10A"+ - "\x2\x564\x565\x5\x1EF\xF8\x2\x565\x566\x5\x217\x10C\x2\x566\x567\x5\x21B"+ - "\x10E\x2\x567\x568\x5\x209\x105\x2\x568\x569\x5\x223\x112\x2\x569\x56A"+ - "\x5\x1F9\xFD\x2\x56A\x56B\x5\x21F\x110\x2\x56B\x56C\x5\x201\x101\x2\x56C"+ - "\x56D\x5\x1EF\xF8\x2\x56D\x56E\x5\x211\x109\x2\x56E\x56F\x5\x215\x10B"+ - "\x2\x56F\x570\x5\x1FF\x100\x2\x570\x571\x5\x221\x111\x2\x571\x572\x5\x20F"+ - "\x108\x2\x572\x573\x5\x201\x101\x2\x573\xF6\x3\x2\x2\x2\x574\x575\x5\x215"+ - "\x10B\x2\x575\x576\x5\x21B\x10E\x2\x576\xF8\x3\x2\x2\x2\x577\x578\x5\x215"+ - "\x10B\x2\x578\x579\x5\x221\x111\x2\x579\x57A\x5\x21F\x110\x2\x57A\x57B"+ - "\x5\x217\x10C\x2\x57B\x57C\x5\x221\x111\x2\x57C\x57D\x5\x21F\x110\x2\x57D"+ - "\xFA\x3\x2\x2\x2\x57E\x57F\x5\x217\x10C\x2\x57F\x580\x5\x1F9\xFD\x2\x580"+ - "\x581\x5\x21B\x10E\x2\x581\x582\x5\x1F9\xFD\x2\x582\x583\x5\x211\x109"+ - "\x2\x583\x584\x5\x1F9\xFD\x2\x584\x585\x5\x21B\x10E\x2\x585\x586\x5\x21B"+ - "\x10E\x2\x586\x587\x5\x1F9\xFD\x2\x587\x588\x5\x229\x115\x2\x588\xFC\x3"+ - "\x2\x2\x2\x589\x58A\x5\x217\x10C\x2\x58A\x58B\x5\x21B\x10E\x2\x58B\x58C"+ - "\x5\x201\x101\x2\x58C\x58D\x5\x21D\x10F\x2\x58D\x58E\x5\x201\x101\x2\x58E"+ - "\x58F\x5\x21B\x10E\x2\x58F\x590\x5\x223\x112\x2\x590\x591\x5\x201\x101"+ - "\x2\x591\xFE\x3\x2\x2\x2\x592\x593\x5\x217\x10C\x2\x593\x594\x5\x21B\x10E"+ - "\x2\x594\x595\x5\x209\x105\x2\x595\x596\x5\x213\x10A\x2\x596\x597\x5\x21F"+ - "\x110\x2\x597\x100\x3\x2\x2\x2\x598\x599\x5\x217\x10C\x2\x599\x59A\x5"+ - "\x21B\x10E\x2\x59A\x59B\x5\x209\x105\x2\x59B\x59C\x5\x223\x112\x2\x59C"+ - "\x59D\x5\x1F9\xFD\x2\x59D\x59E\x5\x21F\x110\x2\x59E\x59F\x5\x201\x101"+ - "\x2\x59F\x102\x3\x2\x2\x2\x5A0\x5A1\x5\x217\x10C\x2\x5A1\x5A2\x5\x21B"+ - "\x10E\x2\x5A2\x5A3\x5\x215\x10B\x2\x5A3\x5A4\x5\x217\x10C\x2\x5A4\x5A5"+ - "\x5\x201\x101\x2\x5A5\x5A6\x5\x21B\x10E\x2\x5A6\x5A7\x5\x21F\x110\x2\x5A7"+ - "\x5A8\x5\x229\x115\x2\x5A8\x5A9\x5\x1EF\xF8\x2\x5A9\x5AA\x5\x205\x103"+ - "\x2\x5AA\x5AB\x5\x201\x101\x2\x5AB\x5AC\x5\x21F\x110\x2\x5AC\x104\x3\x2"+ - "\x2\x2\x5AD\x5AE\x5\x217\x10C\x2\x5AE\x5AF\x5\x21B\x10E\x2\x5AF\x5B0\x5"+ - "\x215\x10B\x2\x5B0\x5B1\x5\x217\x10C\x2\x5B1\x5B2\x5\x201\x101\x2\x5B2"+ - "\x5B3\x5\x21B\x10E\x2\x5B3\x5B4\x5\x21F\x110\x2\x5B4\x5B5\x5\x229\x115"+ - "\x2\x5B5\x5B6\x5\x1EF\xF8\x2\x5B6\x5B7\x5\x20F\x108\x2\x5B7\x5B8\x5\x201"+ - "\x101\x2\x5B8\x5B9\x5\x21F\x110\x2\x5B9\x106\x3\x2\x2\x2\x5BA\x5BB\x5"+ - "\x217\x10C\x2\x5BB\x5BC\x5\x21B\x10E\x2\x5BC\x5BD\x5\x215\x10B\x2\x5BD"+ - "\x5BE\x5\x217\x10C\x2\x5BE\x5BF\x5\x201\x101\x2\x5BF\x5C0\x5\x21B\x10E"+ - "\x2\x5C0\x5C1\x5\x21F\x110\x2\x5C1\x5C2\x5\x229\x115\x2\x5C2\x5C3\x5\x1EF"+ - "\xF8\x2\x5C3\x5C4\x5\x21D\x10F\x2\x5C4\x5C5\x5\x201\x101\x2\x5C5\x5C6"+ - "\x5\x21F\x110\x2\x5C6\x108\x3\x2\x2\x2\x5C7\x5C8\x5\x217\x10C\x2\x5C8"+ - "\x5C9\x5\x21F\x110\x2\x5C9\x5CA\x5\x21B\x10E\x2\x5CA\x5CB\x5\x21D\x10F"+ - "\x2\x5CB\x5CC\x5\x1F9\xFD\x2\x5CC\x5CD\x5\x203\x102\x2\x5CD\x5CE\x5\x201"+ - "\x101\x2\x5CE\x10A\x3\x2\x2\x2\x5CF\x5D0\x5\x217\x10C\x2\x5D0\x5D1\x5"+ - "\x221\x111\x2\x5D1\x5D2\x5\x1FB\xFE\x2\x5D2\x5D3\x5\x20F\x108\x2\x5D3"+ - "\x5D4\x5\x209\x105\x2\x5D4\x5D5\x5\x1FD\xFF\x2\x5D5\x10C\x3\x2\x2\x2\x5D6"+ - "\x5D7\x5\x217\x10C\x2\x5D7\x5D8\x5\x221\x111\x2\x5D8\x5D9\x5\x21F\x110"+ - "\x2\x5D9\x10E\x3\x2\x2\x2\x5DA\x5DB\x5\x21B\x10E\x2\x5DB\x5DC\x5\x1F9"+ - "\xFD\x2\x5DC\x5DD\x5\x213\x10A\x2\x5DD\x5DE\x5\x1FF\x100\x2\x5DE\x5DF"+ - "\x5\x215\x10B\x2\x5DF\x5E0\x5\x211\x109\x2\x5E0\x110\x3\x2\x2\x2\x5E1"+ - "\x5E2\x5\x21B\x10E\x2\x5E2\x5E3\x5\x1F9\xFD\x2\x5E3\x5E4\x5\x213\x10A"+ - "\x2\x5E4\x5E5\x5\x1FF\x100\x2\x5E5\x5E6\x5\x215\x10B\x2\x5E6\x5E7\x5\x211"+ - "\x109\x2\x5E7\x5E8\x5\x209\x105\x2\x5E8\x5E9\x5\x22B\x116\x2\x5E9\x5EA"+ - "\x5\x201\x101\x2\x5EA\x112\x3\x2\x2\x2\x5EB\x5EC\x5\x21B\x10E\x2\x5EC"+ - "\x5ED\x5\x1F9\xFD\x2\x5ED\x5EE\x5\x209\x105\x2\x5EE\x5EF\x5\x21D\x10F"+ - "\x2\x5EF\x5F0\x5\x201\x101\x2\x5F0\x5F1\x5\x201\x101\x2\x5F1\x5F2\x5\x223"+ - "\x112\x2\x5F2\x5F3\x5\x201\x101\x2\x5F3\x5F4\x5\x213\x10A\x2\x5F4\x5F5"+ - "\x5\x21F\x110\x2\x5F5\x114\x3\x2\x2\x2\x5F6\x5F7\x5\x21B\x10E\x2\x5F7"+ - "\x5F8\x5\x201\x101\x2\x5F8\x5F9\x5\x1F9\xFD\x2\x5F9\x5FA\x5\x1FF\x100"+ - "\x2\x5FA\x116\x3\x2\x2\x2\x5FB\x5FC\x5\x21B\x10E\x2\x5FC\x5FD\x5\x201"+ - "\x101\x2\x5FD\x5FE\x5\x1F9\xFD\x2\x5FE\x5FF\x5\x1FF\x100\x2\x5FF\x600"+ - "\x5\x1EF\xF8\x2\x600\x601\x5\x225\x113\x2\x601\x602\x5\x21B\x10E\x2\x602"+ - "\x603\x5\x209\x105\x2\x603\x604\x5\x21F\x110\x2\x604\x605\x5\x201\x101"+ - "\x2\x605\x118\x3\x2\x2\x2\x606\x607\x5\x21B\x10E\x2\x607\x608\x5\x201"+ - "\x101\x2\x608\x609\x5\x1FF\x100\x2\x609\x60A\x5\x209\x105\x2\x60A\x60B"+ - "\x5\x211\x109\x2\x60B\x11A\x3\x2\x2\x2\x60C\x60D\x5\x21B\x10E\x2\x60D"+ - "\x60E\x5\x201\x101\x2\x60E\x60F\x5\x211\x109\x2\x60F\x11C\x3\x2\x2\x2"+ - "\x610\x611\x5\x21B\x10E\x2\x611\x612\x5\x201\x101\x2\x612\x613\x5\x21D"+ - "\x10F\x2\x613\x614\x5\x201\x101\x2\x614\x615\x5\x21F\x110\x2\x615\x11E"+ - "\x3\x2\x2\x2\x616\x617\x5\x21B\x10E\x2\x617\x618\x5\x201\x101\x2\x618"+ - "\x619\x5\x21D\x10F\x2\x619\x61A\x5\x221\x111\x2\x61A\x61B\x5\x211\x109"+ - "\x2\x61B\x61C\x5\x201\x101\x2\x61C\x120\x3\x2\x2\x2\x61D\x61E\x5\x21B"+ - "\x10E\x2\x61E\x61F\x5\x201\x101\x2\x61F\x620\x5\x21F\x110\x2\x620\x621"+ - "\x5\x221\x111\x2\x621\x622\x5\x21B\x10E\x2\x622\x623\x5\x213\x10A\x2\x623"+ - "\x122\x3\x2\x2\x2\x624\x625\x5\x21B\x10E\x2\x625\x626\x5\x211\x109\x2"+ - "\x626\x627\x5\x1FF\x100\x2\x627\x628\x5\x209\x105\x2\x628\x629\x5\x21B"+ - "\x10E\x2\x629\x124\x3\x2\x2\x2\x62A\x62B\x5\x21B\x10E\x2\x62B\x62C\x5"+ - "\x21D\x10F\x2\x62C\x62D\x5\x201\x101\x2\x62D\x62E\x5\x21F\x110\x2\x62E"+ - "\x126\x3\x2\x2\x2\x62F\x630\x5\x21D\x10F\x2\x630\x631\x5\x1F9\xFD\x2\x631"+ - "\x632\x5\x223\x112\x2\x632\x633\x5\x201\x101\x2\x633\x634\x5\x217\x10C"+ - "\x2\x634\x635\x5\x209\x105\x2\x635\x636\x5\x1FD\xFF\x2\x636\x637\x5\x21F"+ - "\x110\x2\x637\x638\x5\x221\x111\x2\x638\x639\x5\x21B\x10E\x2\x639\x63A"+ - "\x5\x201\x101\x2\x63A\x128\x3\x2\x2\x2\x63B\x63C\x5\x21D\x10F\x2\x63C"+ - "\x63D\x5\x1F9\xFD\x2\x63D\x63E\x5\x223\x112\x2\x63E\x63F\x5\x201\x101"+ - "\x2\x63F\x640\x5\x21D\x10F\x2\x640\x641\x5\x201\x101\x2\x641\x642\x5\x21F"+ - "\x110\x2\x642\x643\x5\x21F\x110\x2\x643\x644\x5\x209\x105\x2\x644\x645"+ - "\x5\x213\x10A\x2\x645\x646\x5\x205\x103\x2\x646\x12A\x3\x2\x2\x2\x647"+ - "\x648\x5\x21D\x10F\x2\x648\x649\x5\x201\x101\x2\x649\x64A\x5\x201\x101"+ - "\x2\x64A\x64B\x5\x20D\x107\x2\x64B\x12C\x3\x2\x2\x2\x64C\x64D\x5\x21D"+ - "\x10F\x2\x64D\x64E\x5\x201\x101\x2\x64E\x64F\x5\x20F\x108\x2\x64F\x650"+ - "\x5\x201\x101\x2\x650\x651\x5\x1FD\xFF\x2\x651\x652\x5\x21F\x110\x2\x652"+ - "\x12E\x3\x2\x2\x2\x653\x654\x5\x21D\x10F\x2\x654\x655\x5\x201\x101\x2"+ - "\x655\x656\x5\x213\x10A\x2\x656\x657\x5\x1FF\x100\x2\x657\x658\x5\x20D"+ - "\x107\x2\x658\x659\x5\x201\x101\x2\x659\x65A\x5\x229\x115\x2\x65A\x65B"+ - "\x5\x21D\x10F\x2\x65B\x130\x3\x2\x2\x2\x65C\x65D\x5\x21D\x10F\x2\x65D"+ - "\x65E\x5\x201\x101\x2\x65E\x65F\x5\x21F\x110\x2\x65F\x132\x3\x2\x2\x2"+ - "\x660\x661\x5\x21D\x10F\x2\x661\x662\x5\x201\x101\x2\x662\x663\x5\x21F"+ - "\x110\x2\x663\x664\x5\x1F9\xFD\x2\x664\x665\x5\x21F\x110\x2\x665\x666"+ - "\x5\x21F\x110\x2\x666\x667\x5\x21B\x10E\x2\x667\x134\x3\x2\x2\x2\x668"+ - "\x669\x5\x21D\x10F\x2\x669\x66A\x5\x207\x104\x2\x66A\x66B\x5\x1F9\xFD"+ - "\x2\x66B\x66C\x5\x21B\x10E\x2\x66C\x66D\x5\x201\x101\x2\x66D\x66E\x5\x1FF"+ - "\x100\x2\x66E\x136\x3\x2\x2\x2\x66F\x670\x5\x21D\x10F\x2\x670\x671\x5"+ - "\x209\x105\x2\x671\x672\x5\x213\x10A\x2\x672\x673\x5\x205\x103\x2\x673"+ - "\x674\x5\x20F\x108\x2\x674\x675\x5\x201\x101\x2\x675\x138\x3\x2\x2\x2"+ - "\x676\x677\x5\x21D\x10F\x2\x677\x678\x5\x217\x10C\x2\x678\x679\x5\x1FD"+ - "\xFF\x2\x679\x13A\x3\x2\x2\x2\x67A\x67B\x5\x21D\x10F\x2\x67B\x67C\x5\x21F"+ - "\x110\x2\x67C\x67D\x5\x1F9\xFD\x2\x67D\x67E\x5\x21F\x110\x2\x67E\x67F"+ - "\x5\x209\x105\x2\x67F\x680\x5\x1FD\xFF\x2\x680\x13C\x3\x2\x2\x2\x681\x682"+ - "\x5\x21D\x10F\x2\x682\x683\x5\x21F\x110\x2\x683\x684\x5\x201\x101\x2\x684"+ - "\x685\x5\x217\x10C\x2\x685\x13E\x3\x2\x2\x2\x686\x687\x5\x21D\x10F\x2"+ - "\x687\x688\x5\x21F\x110\x2\x688\x689\x5\x215\x10B\x2\x689\x68A\x5\x217"+ - "\x10C\x2\x68A\x140\x3\x2\x2\x2\x68B\x68C\x5\x21D\x10F\x2\x68C\x68D\x5"+ - "\x21F\x110\x2\x68D\x68E\x5\x21B\x10E\x2\x68E\x68F\x5\x209\x105\x2\x68F"+ - "\x690\x5\x213\x10A\x2\x690\x691\x5\x205\x103\x2\x691\x142\x3\x2\x2\x2"+ - "\x692\x693\x5\x21D\x10F\x2\x693\x694\x5\x221\x111\x2\x694\x695\x5\x1FB"+ - "\xFE\x2\x695\x144\x3\x2\x2\x2\x696\x697\x5\x21F\x110\x2\x697\x698\x5\x1F9"+ - "\xFD\x2\x698\x699\x5\x1FB\xFE\x2\x699\x146\x3\x2\x2\x2\x69A\x69B\x5\x21F"+ - "\x110\x2\x69B\x69C\x5\x201\x101\x2\x69C\x69D\x5\x227\x114\x2\x69D\x69E"+ - "\x5\x21F\x110\x2\x69E\x148\x3\x2\x2\x2\x69F\x6A0\x5\x21F\x110\x2\x6A0"+ - "\x6A1\x5\x207\x104\x2\x6A1\x6A2\x5\x201\x101\x2\x6A2\x6A3\x5\x213\x10A"+ - "\x2\x6A3\x14A\x3\x2\x2\x2\x6A4\x6A5\x5\x21F\x110\x2\x6A5\x6A6\x5\x209"+ - "\x105\x2\x6A6\x6A7\x5\x211\x109\x2\x6A7\x6A8\x5\x201\x101\x2\x6A8\x14C"+ - "\x3\x2\x2\x2\x6A9\x6AA\x5\x21F\x110\x2\x6AA\x6AB\x5\x215\x10B\x2\x6AB"+ - "\x14E\x3\x2\x2\x2\x6AC\x6AD\x5\x21F\x110\x2\x6AD\x6AE\x5\x21B\x10E\x2"+ - "\x6AE\x6AF\x5\x221\x111\x2\x6AF\x6B0\x5\x201\x101\x2\x6B0\x150\x3\x2\x2"+ - "\x2\x6B1\x6B2\x5\x21F\x110\x2\x6B2\x6B3\x5\x229\x115\x2\x6B3\x6B4\x5\x217"+ - "\x10C\x2\x6B4\x6B5\x5\x201\x101\x2\x6B5\x152\x3\x2\x2\x2\x6B6\x6B7\x5"+ - "\x21F\x110\x2\x6B7\x6B8\x5\x229\x115\x2\x6B8\x6B9\x5\x217\x10C\x2\x6B9"+ - "\x6BA\x5\x201\x101\x2\x6BA\x6BB\x5\x215\x10B\x2\x6BB\x6BC\x5\x203\x102"+ - "\x2\x6BC\x154\x3\x2\x2\x2\x6BD\x6BE\x5\x221\x111\x2\x6BE\x6BF\x5\x213"+ - "\x10A\x2\x6BF\x6C0\x5\x20F\x108\x2\x6C0\x6C1\x5\x215\x10B\x2\x6C1\x6C2"+ - "\x5\x1F9\xFD\x2\x6C2\x6C3\x5\x1FF\x100\x2\x6C3\x156\x3\x2\x2\x2\x6C4\x6C5"+ - "\x5\x221\x111\x2\x6C5\x6C6\x5\x213\x10A\x2\x6C6\x6C7\x5\x20F\x108\x2\x6C7"+ - "\x6C8\x5\x215\x10B\x2\x6C8\x6C9\x5\x1FD\xFF\x2\x6C9\x6CA\x5\x20D\x107"+ - "\x2\x6CA\x158\x3\x2\x2\x2\x6CB\x6CC\x5\x221\x111\x2\x6CC\x6CD\x5\x213"+ - "\x10A\x2\x6CD\x6CE\x5\x21F\x110\x2\x6CE\x6CF\x5\x209\x105\x2\x6CF\x6D0"+ - "\x5\x20F\x108\x2\x6D0\x15A\x3\x2\x2\x2\x6D1\x6D2\x5\x223\x112\x2\x6D2"+ - "\x6D3\x5\x1F9\xFD\x2\x6D3\x6D4\x5\x21B\x10E\x2\x6D4\x6D5\x5\x209\x105"+ - "\x2\x6D5\x6D6\x5\x1F9\xFD\x2\x6D6\x6D7\x5\x213\x10A\x2\x6D7\x6D8\x5\x21F"+ - "\x110\x2\x6D8\x15C\x3\x2\x2\x2\x6D9\x6DA\x5\x223\x112\x2\x6DA\x6DB\x5"+ - "\x201\x101\x2\x6DB\x6DC\x5\x21B\x10E\x2\x6DC\x6DD\x5\x21D\x10F\x2\x6DD"+ - "\x6DE\x5\x209\x105\x2\x6DE\x6DF\x5\x215\x10B\x2\x6DF\x6E0\x5\x213\x10A"+ - "\x2\x6E0\x15E\x3\x2\x2\x2\x6E1\x6E2\x5\x225\x113\x2\x6E2\x6E3\x5\x201"+ - "\x101\x2\x6E3\x6E4\x5\x213\x10A\x2\x6E4\x6E5\x5\x1FF\x100\x2\x6E5\x160"+ - "\x3\x2\x2\x2\x6E6\x6E7\x5\x225\x113\x2\x6E7\x6E8\x5\x207\x104\x2\x6E8"+ - "\x6E9\x5\x209\x105\x2\x6E9\x6EA\x5\x20F\x108\x2\x6EA\x6EB\x5\x201\x101"+ - "\x2\x6EB\x162\x3\x2\x2\x2\x6EC\x6ED\x5\x225\x113\x2\x6ED\x6EE\x5\x209"+ - "\x105\x2\x6EE\x6EF\x5\x1FF\x100\x2\x6EF\x6F0\x5\x21F\x110\x2\x6F0\x6F1"+ - "\x5\x207\x104\x2\x6F1\x164\x3\x2\x2\x2\x6F2\x6F3\x5\x225\x113\x2\x6F3"+ - "\x6F4\x5\x209\x105\x2\x6F4\x6F5\x5\x21F\x110\x2\x6F5\x6F6\x5\x207\x104"+ - "\x2\x6F6\x166\x3\x2\x2\x2\x6F7\x6F8\x5\x225\x113\x2\x6F8\x6F9\x5\x209"+ - "\x105\x2\x6F9\x6FA\x5\x21F\x110\x2\x6FA\x6FB\x5\x207\x104\x2\x6FB\x6FC"+ - "\x5\x201\x101\x2\x6FC\x6FD\x5\x223\x112\x2\x6FD\x6FE\x5\x201\x101\x2\x6FE"+ - "\x6FF\x5\x213\x10A\x2\x6FF\x700\x5\x21F\x110\x2\x700\x701\x5\x21D\x10F"+ - "\x2\x701\x168\x3\x2\x2\x2\x702\x703\x5\x225\x113\x2\x703\x704\x5\x21B"+ - "\x10E\x2\x704\x705\x5\x209\x105\x2\x705\x706\x5\x21F\x110\x2\x706\x707"+ - "\x5\x201\x101\x2\x707\x16A\x3\x2\x2\x2\x708\x709\x5\x227\x114\x2\x709"+ - "\x70A\x5\x215\x10B\x2\x70A\x70B\x5\x21B\x10E\x2\x70B\x16C\x3\x2\x2\x2"+ - "\x70C\x70D\a(\x2\x2\x70D\x16E\x3\x2\x2\x2\x70E\x70F\a<\x2\x2\x70F\x710"+ - "\a?\x2\x2\x710\x170\x3\x2\x2\x2\x711\x712\a\x31\x2\x2\x712\x172\x3\x2"+ - "\x2\x2\x713\x714\a^\x2\x2\x714\x174\x3\x2\x2\x2\x715\x716\a?\x2\x2\x716"+ - "\x176\x3\x2\x2\x2\x717\x718\a@\x2\x2\x718\x719\a?\x2\x2\x719\x178\x3\x2"+ - "\x2\x2\x71A\x71B\a@\x2\x2\x71B\x17A\x3\x2\x2\x2\x71C\x71D\a>\x2\x2\x71D"+ - "\x71E\a?\x2\x2\x71E\x17C\x3\x2\x2\x2\x71F\x720\a*\x2\x2\x720\x17E\x3\x2"+ - "\x2\x2\x721\x722\a>\x2\x2\x722\x180\x3\x2\x2\x2\x723\x724\a/\x2\x2\x724"+ - "\x182\x3\x2\x2\x2\x725\x726\a,\x2\x2\x726\x184\x3\x2\x2\x2\x727\x728\a"+ - ">\x2\x2\x728\x729\a@\x2\x2\x729\x186\x3\x2\x2\x2\x72A\x72B\a-\x2\x2\x72B"+ - "\x188\x3\x2\x2\x2\x72C\x72D\a`\x2\x2\x72D\x18A\x3\x2\x2\x2\x72E\x72F\a"+ - "+\x2\x2\x72F\x18C\x3\x2\x2\x2\x730\x731\a]\x2\x2\x731\x18E\x3\x2\x2\x2"+ - "\x732\x733\a_\x2\x2\x733\x190\x3\x2\x2\x2\x734\x73A\a$\x2\x2\x735\x739"+ - "\n\x2\x2\x2\x736\x737\a$\x2\x2\x737\x739\a$\x2\x2\x738\x735\x3\x2\x2\x2"+ - "\x738\x736\x3\x2\x2\x2\x739\x73C\x3\x2\x2\x2\x73A\x738\x3\x2\x2\x2\x73A"+ - "\x73B\x3\x2\x2\x2\x73B\x73D\x3\x2\x2\x2\x73C\x73A\x3\x2\x2\x2\x73D\x73E"+ - "\a$\x2\x2\x73E\x192\x3\x2\x2\x2\x73F\x740\a(\x2\x2\x740\x741\aQ\x2\x2"+ - "\x741\x743\x3\x2\x2\x2\x742\x744\t\x3\x2\x2\x743\x742\x3\x2\x2\x2\x744"+ - "\x745\x3\x2\x2\x2\x745\x743\x3\x2\x2\x2\x745\x746\x3\x2\x2\x2\x746\x748"+ - "\x3\x2\x2\x2\x747\x749\a(\x2\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2"+ - "\x2\x2\x749\x194\x3\x2\x2\x2\x74A\x74B\a(\x2\x2\x74B\x74C\aJ\x2\x2\x74C"+ - "\x74E\x3\x2\x2\x2\x74D\x74F\t\x4\x2\x2\x74E\x74D\x3\x2\x2\x2\x74F\x750"+ - "\x3\x2\x2\x2\x750\x74E\x3\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751\x753\x3"+ - "\x2\x2\x2\x752\x754\a(\x2\x2\x753\x752\x3\x2\x2\x2\x753\x754\x3\x2\x2"+ - "\x2\x754\x196\x3\x2\x2\x2\x755\x758\x5\x187\xC4\x2\x756\x758\x5\x181\xC1"+ - "\x2\x757\x755\x3\x2\x2\x2\x757\x756\x3\x2\x2\x2\x757\x758\x3\x2\x2\x2"+ - "\x758\x75A\x3\x2\x2\x2\x759\x75B\x5\x1F5\xFB\x2\x75A\x759\x3\x2\x2\x2"+ - "\x75B\x75C\x3\x2\x2\x2\x75C\x75A\x3\x2\x2\x2\x75C\x75D\x3\x2\x2\x2\x75D"+ - "\x75F\x3\x2\x2\x2\x75E\x760\t\x5\x2\x2\x75F\x75E\x3\x2\x2\x2\x75F\x760"+ - "\x3\x2\x2\x2\x760\x198\x3\x2\x2\x2\x761\x765\x5\x197\xCC\x2\x762\x763"+ - "\x5\x201\x101\x2\x763\x764\x5\x197\xCC\x2\x764\x766\x3\x2\x2\x2\x765\x762"+ - "\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766\x19A\x3\x2\x2\x2\x767\x76A\x5"+ - "\x187\xC4\x2\x768\x76A\x5\x181\xC1\x2\x769\x767\x3\x2\x2\x2\x769\x768"+ - "\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2\x76A\x76E\x3\x2\x2\x2\x76B\x76D\x5"+ - "\x1F5\xFB\x2\x76C\x76B\x3\x2\x2\x2\x76D\x770\x3\x2\x2\x2\x76E\x76C\x3"+ - "\x2\x2\x2\x76E\x76F\x3\x2\x2\x2\x76F\x771\x3\x2\x2\x2\x770\x76E\x3\x2"+ - "\x2\x2\x771\x773\a\x30\x2\x2\x772\x774\x5\x1F5\xFB\x2\x773\x772\x3\x2"+ - "\x2\x2\x774\x775\x3\x2\x2\x2\x775\x773\x3\x2\x2\x2\x775\x776\x3\x2\x2"+ - "\x2\x776\x77A\x3\x2\x2\x2\x777\x778\x5\x201\x101\x2\x778\x779\x5\x197"+ - "\xCC\x2\x779\x77B\x3\x2\x2\x2\x77A\x777\x3\x2\x2\x2\x77A\x77B\x3\x2\x2"+ - "\x2\x77B\x19C\x3\x2\x2\x2\x77C\x77D\a%\x2\x2\x77D\x77E\x5\x19F\xD0\x2"+ - "\x77E\x77F\a%\x2\x2\x77F\x19E\x3\x2\x2\x2\x780\x782\x5\x1A1\xD1\x2\x781"+ - "\x783\x5\x1EF\xF8\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783"+ - "\x784\x3\x2\x2\x2\x784\x785\x5\x1AD\xD7\x2\x785\x789\x3\x2\x2\x2\x786"+ - "\x789\x5\x1A1\xD1\x2\x787\x789\x5\x1AD\xD7\x2\x788\x780\x3\x2\x2\x2\x788"+ - "\x786\x3\x2\x2\x2\x788\x787\x3\x2\x2\x2\x789\x1A0\x3\x2\x2\x2\x78A\x78B"+ - "\x5\x1A3\xD2\x2\x78B\x78C\x5\x1A5\xD3\x2\x78C\x790\x5\x1A3\xD2\x2\x78D"+ - "\x78E\x5\x1A5\xD3\x2\x78E\x78F\x5\x1A3\xD2\x2\x78F\x791\x3\x2\x2\x2\x790"+ - "\x78D\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x1A2\x3\x2\x2\x2\x792\x794"+ - "\x5\x1F5\xFB\x2\x793\x792\x3\x2\x2\x2\x794\x795\x3\x2\x2\x2\x795\x793"+ - "\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796\x799\x3\x2\x2\x2\x797\x799\x5"+ - "\x1A7\xD4\x2\x798\x793\x3\x2\x2\x2\x798\x797\x3\x2\x2\x2\x799\x1A4\x3"+ - "\x2\x2\x2\x79A\x79C\x5\x1EF\xF8\x2\x79B\x79A\x3\x2\x2\x2\x79B\x79C\x3"+ - "\x2\x2\x2\x79C\x79E\x3\x2\x2\x2\x79D\x79F\t\x6\x2\x2\x79E\x79D\x3\x2\x2"+ - "\x2\x79E\x79F\x3\x2\x2\x2\x79F\x7A1\x3\x2\x2\x2\x7A0\x7A2\x5\x1EF\xF8"+ - "\x2\x7A1\x7A0\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x1A6\x3\x2\x2\x2"+ - "\x7A3\x7A6\x5\x1A9\xD5\x2\x7A4\x7A6\x5\x1AB\xD6\x2\x7A5\x7A3\x3\x2\x2"+ - "\x2\x7A5\x7A4\x3\x2\x2\x2\x7A6\x1A8\x3\x2\x2\x2\x7A7\x7B4\x5\x1B3\xDA"+ - "\x2\x7A8\x7B4\x5\x1B5\xDB\x2\x7A9\x7B4\x5\x1B7\xDC\x2\x7AA\x7B4\x5\x1B9"+ - "\xDD\x2\x7AB\x7B4\x5\x1BB\xDE\x2\x7AC\x7B4\x5\x1BD\xDF\x2\x7AD\x7B4\x5"+ - "\x1BF\xE0\x2\x7AE\x7B4\x5\x1C1\xE1\x2\x7AF\x7B4\x5\x1C3\xE2\x2\x7B0\x7B4"+ - "\x5\x1C5\xE3\x2\x7B1\x7B4\x5\x1C7\xE4\x2\x7B2\x7B4\x5\x1C9\xE5\x2\x7B3"+ - "\x7A7\x3\x2\x2\x2\x7B3\x7A8\x3\x2\x2\x2\x7B3\x7A9\x3\x2\x2\x2\x7B3\x7AA"+ - "\x3\x2\x2\x2\x7B3\x7AB\x3\x2\x2\x2\x7B3\x7AC\x3\x2\x2\x2\x7B3\x7AD\x3"+ - "\x2\x2\x2\x7B3\x7AE\x3\x2\x2\x2\x7B3\x7AF\x3\x2\x2\x2\x7B3\x7B0\x3\x2"+ - "\x2\x2\x7B3\x7B1\x3\x2\x2\x2\x7B3\x7B2\x3\x2\x2\x2\x7B4\x1AA\x3\x2\x2"+ - "\x2\x7B5\x7C1\x5\x1CB\xE6\x2\x7B6\x7C1\x5\x1CD\xE7\x2\x7B7\x7C1\x5\x1CF"+ - "\xE8\x2\x7B8\x7C1\x5\x1D1\xE9\x2\x7B9\x7C1\x5\x1D3\xEA\x2\x7BA\x7C1\x5"+ - "\x1D5\xEB\x2\x7BB\x7C1\x5\x1D7\xEC\x2\x7BC\x7C1\x5\x1D9\xED\x2\x7BD\x7C1"+ - "\x5\x1DB\xEE\x2\x7BE\x7C1\x5\x1DD\xEF\x2\x7BF\x7C1\x5\x1DF\xF0\x2\x7C0"+ - "\x7B5\x3\x2\x2\x2\x7C0\x7B6\x3\x2\x2\x2\x7C0\x7B7\x3\x2\x2\x2\x7C0\x7B8"+ - "\x3\x2\x2\x2\x7C0\x7B9\x3\x2\x2\x2\x7C0\x7BA\x3\x2\x2\x2\x7C0\x7BB\x3"+ - "\x2\x2\x2\x7C0\x7BC\x3\x2\x2\x2\x7C0\x7BD\x3\x2\x2\x2\x7C0\x7BE\x3\x2"+ - "\x2\x2\x7C0\x7BF\x3\x2\x2\x2\x7C1\x1AC\x3\x2\x2\x2\x7C2\x7C4\x5\x1F5\xFB"+ - "\x2\x7C3\x7C2\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2\x2\x7C5\x7C3\x3\x2\x2\x2"+ - "\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C7\x3\x2\x2\x2\x7C7\x7C8\x5\x1B1\xD9\x2"+ - "\x7C8\x7E0\x3\x2\x2\x2\x7C9\x7CB\x5\x1F5\xFB\x2\x7CA\x7C9\x3\x2\x2\x2"+ - "\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CA\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD"+ - "\x7CE\x3\x2\x2\x2\x7CE\x7D0\x5\x1AF\xD8\x2\x7CF\x7D1\x5\x1F5\xFB\x2\x7D0"+ - "\x7CF\x3\x2\x2\x2\x7D1\x7D2\x3\x2\x2\x2\x7D2\x7D0\x3\x2\x2\x2\x7D2\x7D3"+ - "\x3\x2\x2\x2\x7D3\x7DA\x3\x2\x2\x2\x7D4\x7D6\x5\x1AF\xD8\x2\x7D5\x7D7"+ - "\x5\x1F5\xFB\x2\x7D6\x7D5\x3\x2\x2\x2\x7D7\x7D8\x3\x2\x2\x2\x7D8\x7D6"+ - "\x3\x2\x2\x2\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7DB\x3\x2\x2\x2\x7DA\x7D4\x3"+ - "\x2\x2\x2\x7DA\x7DB\x3\x2\x2\x2\x7DB\x7DD\x3\x2\x2\x2\x7DC\x7DE\x5\x1B1"+ - "\xD9\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE\x7E0\x3\x2\x2"+ - "\x2\x7DF\x7C3\x3\x2\x2\x2\x7DF\x7CA\x3\x2\x2\x2\x7E0\x1AE\x3\x2\x2\x2"+ - "\x7E1\x7E3\x5\x1EF\xF8\x2\x7E2\x7E1\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2"+ - "\x7E3\x7E4\x3\x2\x2\x2\x7E4\x7E6\t\a\x2\x2\x7E5\x7E7\x5\x1EF\xF8\x2\x7E6"+ - "\x7E5\x3\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x1B0\x3\x2\x2\x2\x7E8\x7EA"+ - "\x5\x1EF\xF8\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7F3"+ - "\x3\x2\x2\x2\x7EB\x7EC\x5\x1F9\xFD\x2\x7EC\x7ED\x5\x211\x109\x2\x7ED\x7F4"+ - "\x3\x2\x2\x2\x7EE\x7EF\x5\x217\x10C\x2\x7EF\x7F0\x5\x211\x109\x2\x7F0"+ - "\x7F4\x3\x2\x2\x2\x7F1\x7F4\x5\x1F9\xFD\x2\x7F2\x7F4\x5\x217\x10C\x2\x7F3"+ - "\x7EB\x3\x2\x2\x2\x7F3\x7EE\x3\x2\x2\x2\x7F3\x7F1\x3\x2\x2\x2\x7F3\x7F2"+ - "\x3\x2\x2\x2\x7F4\x1B2\x3\x2\x2\x2\x7F5\x7F6\x5\x20B\x106\x2\x7F6\x7F7"+ - "\x5\x1F9\xFD\x2\x7F7\x7F8\x5\x213\x10A\x2\x7F8\x7F9\x5\x221\x111\x2\x7F9"+ - "\x7FA\x5\x1F9\xFD\x2\x7FA\x7FB\x5\x21B\x10E\x2\x7FB\x7FC\x5\x229\x115"+ - "\x2\x7FC\x1B4\x3\x2\x2\x2\x7FD\x7FE\x5\x203\x102\x2\x7FE\x7FF\x5\x201"+ - "\x101\x2\x7FF\x800\x5\x1FB\xFE\x2\x800\x801\x5\x21B\x10E\x2\x801\x802"+ - "\x5\x221\x111\x2\x802\x803\x5\x1F9\xFD\x2\x803\x804\x5\x21B\x10E\x2\x804"+ - "\x805\x5\x229\x115\x2\x805\x1B6\x3\x2\x2\x2\x806\x807\x5\x211\x109\x2"+ - "\x807\x808\x5\x1F9\xFD\x2\x808\x809\x5\x21B\x10E\x2\x809\x80A\x5\x1FD"+ - "\xFF\x2\x80A\x80B\x5\x207\x104\x2\x80B\x1B8\x3\x2\x2\x2\x80C\x80D\x5\x1F9"+ - "\xFD\x2\x80D\x80E\x5\x217\x10C\x2\x80E\x80F\x5\x21B\x10E\x2\x80F\x810"+ - "\x5\x209\x105\x2\x810\x811\x5\x20F\x108\x2\x811\x1BA\x3\x2\x2\x2\x812"+ - "\x813\x5\x211\x109\x2\x813\x814\x5\x1F9\xFD\x2\x814\x815\x5\x229\x115"+ - "\x2\x815\x1BC\x3\x2\x2\x2\x816\x817\x5\x20B\x106\x2\x817\x818\x5\x221"+ - "\x111\x2\x818\x819\x5\x213\x10A\x2\x819\x81A\x5\x201\x101\x2\x81A\x1BE"+ - "\x3\x2\x2\x2\x81B\x81C\x5\x20B\x106\x2\x81C\x81D\x5\x221\x111\x2\x81D"+ - "\x81E\x5\x20F\x108\x2\x81E\x81F\x5\x229\x115\x2\x81F\x1C0\x3\x2\x2\x2"+ - "\x820\x821\x5\x1F9\xFD\x2\x821\x822\x5\x221\x111\x2\x822\x823\x5\x205"+ - "\x103\x2\x823\x824\x5\x221\x111\x2\x824\x825\x5\x21D\x10F\x2\x825\x826"+ - "\x5\x21F\x110\x2\x826\x1C2\x3\x2\x2\x2\x827\x828\x5\x21D\x10F\x2\x828"+ - "\x829\x5\x201\x101\x2\x829\x82A\x5\x217\x10C\x2\x82A\x82B\x5\x21F\x110"+ - "\x2\x82B\x82C\x5\x201\x101\x2\x82C\x82D\x5\x211\x109\x2\x82D\x82E\x5\x1FB"+ - "\xFE\x2\x82E\x82F\x5\x201\x101\x2\x82F\x830\x5\x21B\x10E\x2\x830\x1C4"+ - "\x3\x2\x2\x2\x831\x832\x5\x215\x10B\x2\x832\x833\x5\x1FD\xFF\x2\x833\x834"+ - "\x5\x21F\x110\x2\x834\x835\x5\x215\x10B\x2\x835\x836\x5\x1FB\xFE\x2\x836"+ - "\x837\x5\x201\x101\x2\x837\x838\x5\x21B\x10E\x2\x838\x1C6\x3\x2\x2\x2"+ - "\x839\x83A\x5\x213\x10A\x2\x83A\x83B\x5\x215\x10B\x2\x83B\x83C\x5\x223"+ - "\x112\x2\x83C\x83D\x5\x201\x101\x2\x83D\x83E\x5\x211\x109\x2\x83E\x83F"+ - "\x5\x1FB\xFE\x2\x83F\x840\x5\x201\x101\x2\x840\x841\x5\x21B\x10E\x2\x841"+ - "\x1C8\x3\x2\x2\x2\x842\x843\x5\x1FF\x100\x2\x843\x844\x5\x201\x101\x2"+ - "\x844\x845\x5\x1FD\xFF\x2\x845\x846\x5\x201\x101\x2\x846\x847\x5\x211"+ - "\x109\x2\x847\x848\x5\x1FB\xFE\x2\x848\x849\x5\x201\x101\x2\x849\x84A"+ - "\x5\x21B\x10E\x2\x84A\x1CA\x3\x2\x2\x2\x84B\x84C\x5\x20B\x106\x2\x84C"+ - "\x84D\x5\x1F9\xFD\x2\x84D\x84E\x5\x213\x10A\x2\x84E\x1CC\x3\x2\x2\x2\x84F"+ - "\x850\x5\x203\x102\x2\x850\x851\x5\x201\x101\x2\x851\x852\x5\x1FB\xFE"+ - "\x2\x852\x1CE\x3\x2\x2\x2\x853\x854\x5\x211\x109\x2\x854\x855\x5\x1F9"+ - "\xFD\x2\x855\x856\x5\x21B\x10E\x2\x856\x1D0\x3\x2\x2\x2\x857\x858\x5\x1F9"+ - "\xFD\x2\x858\x859\x5\x217\x10C\x2\x859\x85A\x5\x21B\x10E\x2\x85A\x1D2"+ - "\x3\x2\x2\x2\x85B\x85C\x5\x20B\x106\x2\x85C\x85D\x5\x221\x111\x2\x85D"+ - "\x85E\x5\x213\x10A\x2\x85E\x1D4\x3\x2\x2\x2\x85F\x860\x5\x20B\x106\x2"+ - "\x860\x861\x5\x221\x111\x2\x861\x862\x5\x20F\x108\x2\x862\x1D6\x3\x2\x2"+ - "\x2\x863\x864\x5\x1F9\xFD\x2\x864\x865\x5\x221\x111\x2\x865\x866\x5\x205"+ - "\x103\x2\x866\x1D8\x3\x2\x2\x2\x867\x868\x5\x21D\x10F\x2\x868\x869\x5"+ - "\x201\x101\x2\x869\x86A\x5\x217\x10C\x2\x86A\x1DA\x3\x2\x2\x2\x86B\x86C"+ - "\x5\x215\x10B\x2\x86C\x86D\x5\x1FD\xFF\x2\x86D\x86E\x5\x21F\x110\x2\x86E"+ - "\x1DC\x3\x2\x2\x2\x86F\x870\x5\x213\x10A\x2\x870\x871\x5\x215\x10B\x2"+ - "\x871\x872\x5\x223\x112\x2\x872\x1DE\x3\x2\x2\x2\x873\x874\x5\x1FF\x100"+ - "\x2\x874\x875\x5\x201\x101\x2\x875\x876\x5\x1FD\xFF\x2\x876\x1E0\x3\x2"+ - "\x2\x2\x877\x879\t\b\x2\x2\x878\x877\x3\x2\x2\x2\x879\x87A\x3\x2\x2\x2"+ - "\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C"+ - "\x87E\x5\x1ED\xF7\x2\x87D\x87F\a\xF\x2\x2\x87E\x87D\x3\x2\x2\x2\x87E\x87F"+ - "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\a\f\x2\x2\x881\x882\x3\x2"+ - "\x2\x2\x882\x883\b\xF1\x2\x2\x883\x1E2\x3\x2\x2\x2\x884\x886\t\t\x2\x2"+ - "\x885\x884\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x885\x3\x2\x2\x2\x887"+ - "\x888\x3\x2\x2\x2\x888\x1E4\x3\x2\x2\x2\x889\x88B\x5\x1EB\xF6\x2\x88A"+ - "\x889\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\x88C\x3\x2\x2\x2\x88C\x88D"+ - "\x5\x11B\x8E\x2\x88D\x892\x5\x1EF\xF8\x2\x88E\x891\x5\x1E1\xF1\x2\x88F"+ - "\x891\n\t\x2\x2\x890\x88E\x3\x2\x2\x2\x890\x88F\x3\x2\x2\x2\x891\x894"+ - "\x3\x2\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893\x1E6\x3"+ - "\x2\x2\x2\x894\x892\x3\x2\x2\x2\x895\x89A\x5\x1E9\xF5\x2\x896\x899\x5"+ - "\x1E1\xF1\x2\x897\x899\n\t\x2\x2\x898\x896\x3\x2\x2\x2\x898\x897\x3\x2"+ - "\x2\x2\x899\x89C\x3\x2\x2\x2\x89A\x898\x3\x2\x2\x2\x89A\x89B\x3\x2\x2"+ - "\x2\x89B\x1E8\x3\x2\x2\x2\x89C\x89A\x3\x2\x2\x2\x89D\x89E\a)\x2\x2\x89E"+ - "\x1EA\x3\x2\x2\x2\x89F\x8A0\a<\x2\x2\x8A0\x1EC\x3\x2\x2\x2\x8A1\x8A2\a"+ - "\x61\x2\x2\x8A2\x1EE\x3\x2\x2\x2\x8A3\x8A6\t\b\x2\x2\x8A4\x8A6\x5\x1E1"+ - "\xF1\x2\x8A5\x8A3\x3\x2\x2\x2\x8A5\x8A4\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2"+ - "\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x1F0\x3\x2\x2\x2"+ - "\x8A9\x8AB\n\n\x2\x2\x8AA\x8A9\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC"+ - "\x8AA\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8B7\x3\x2\x2\x2\x8AE\x8B0"+ - "\x5\x18D\xC7\x2\x8AF\x8B1\n\v\x2\x2\x8B0\x8AF\x3\x2\x2\x2\x8B1\x8B2\x3"+ - "\x2\x2\x2\x8B2\x8B0\x3\x2\x2\x2\x8B2\x8B3\x3\x2\x2\x2\x8B3\x8B4\x3\x2"+ - "\x2\x2\x8B4\x8B5\x5\x18F\xC8\x2\x8B5\x8B7\x3\x2\x2\x2\x8B6\x8AA\x3\x2"+ - "\x2\x2\x8B6\x8AE\x3\x2\x2\x2\x8B7\x1F2\x3\x2\x2\x2\x8B8\x8B9\t\f\x2\x2"+ - "\x8B9\x1F4\x3\x2\x2\x2\x8BA\x8BB\t\r\x2\x2\x8BB\x1F6\x3\x2\x2\x2\x8BC"+ - "\x8BD\t\xE\x2\x2\x8BD\x1F8\x3\x2\x2\x2\x8BE\x8BF\t\xF\x2\x2\x8BF\x1FA"+ - "\x3\x2\x2\x2\x8C0\x8C1\t\x10\x2\x2\x8C1\x1FC\x3\x2\x2\x2\x8C2\x8C3\t\x11"+ - "\x2\x2\x8C3\x1FE\x3\x2\x2\x2\x8C4\x8C5\t\x12\x2\x2\x8C5\x200\x3\x2\x2"+ - "\x2\x8C6\x8C7\t\x13\x2\x2\x8C7\x202\x3\x2\x2\x2\x8C8\x8C9\t\x14\x2\x2"+ - "\x8C9\x204\x3\x2\x2\x2\x8CA\x8CB\t\x15\x2\x2\x8CB\x206\x3\x2\x2\x2\x8CC"+ - "\x8CD\t\x16\x2\x2\x8CD\x208\x3\x2\x2\x2\x8CE\x8CF\t\x17\x2\x2\x8CF\x20A"+ - "\x3\x2\x2\x2\x8D0\x8D1\t\x18\x2\x2\x8D1\x20C\x3\x2\x2\x2\x8D2\x8D3\t\x19"+ - "\x2\x2\x8D3\x20E\x3\x2\x2\x2\x8D4\x8D5\t\x1A\x2\x2\x8D5\x210\x3\x2\x2"+ - "\x2\x8D6\x8D7\t\x1B\x2\x2\x8D7\x212\x3\x2\x2\x2\x8D8\x8D9\t\x1C\x2\x2"+ - "\x8D9\x214\x3\x2\x2\x2\x8DA\x8DB\t\x1D\x2\x2\x8DB\x216\x3\x2\x2\x2\x8DC"+ - "\x8DD\t\x1E\x2\x2\x8DD\x218\x3\x2\x2\x2\x8DE\x8DF\t\x1F\x2\x2\x8DF\x21A"+ - "\x3\x2\x2\x2\x8E0\x8E1\t \x2\x2\x8E1\x21C\x3\x2\x2\x2\x8E2\x8E3\t!\x2"+ - "\x2\x8E3\x21E\x3\x2\x2\x2\x8E4\x8E5\t\"\x2\x2\x8E5\x220\x3\x2\x2\x2\x8E6"+ - "\x8E7\t#\x2\x2\x8E7\x222\x3\x2\x2\x2\x8E8\x8E9\t$\x2\x2\x8E9\x224\x3\x2"+ - "\x2\x2\x8EA\x8EB\t%\x2\x2\x8EB\x226\x3\x2\x2\x2\x8EC\x8ED\t&\x2\x2\x8ED"+ - "\x228\x3\x2\x2\x2\x8EE\x8EF\t\'\x2\x2\x8EF\x22A\x3\x2\x2\x2\x8F0\x8F1"+ - "\t(\x2\x2\x8F1\x22C\x3\x2\x2\x2\x34\x2\x738\x73A\x745\x748\x750\x753\x757"+ - "\x75C\x75F\x765\x769\x76E\x775\x77A\x782\x788\x790\x795\x798\x79B\x79E"+ - "\x7A1\x7A5\x7B3\x7C0\x7C5\x7CC\x7D2\x7D8\x7DA\x7DD\x7DF\x7E2\x7E6\x7E9"+ - "\x7F3\x87A\x87E\x887\x88A\x890\x892\x898\x89A\x8A5\x8A7\x8AC\x8B2\x8B6"+ - "\x3\b\x2\x2"; + "g\x3g\x3g\x3g\x3h\x3h\x3h\x3h\x3h\x3i\x3i\x3i\x3i\x3i\x3i\x3i\x3j\x3j"+ + "\x3j\x3j\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3l\x3l\x3m\x3"+ + "m\x3m\x3m\x3m\x5m\x503\nm\x3m\x3m\x3m\x3n\x3n\x3n\x3o\x3o\x3o\x3o\x3p"+ + "\x3p\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3r\x3r\x3r\x3r\x3r\x3s\x3s\x3s\x3"+ + "s\x3s\x3t\x3t\x3t\x3t\x3u\x3u\x3u\x3u\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3v"+ + "\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3"+ + "z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3{\x3{\x3{"+ + "\x3{\x3{\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3"+ + "}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~"+ + "\x3~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F"+ + "\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80"+ + "\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80"+ + "\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x81"+ + "\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x83"+ + "\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83"+ + "\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x85"+ + "\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86"+ + "\x3\x86\x3\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87"+ + "\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88"+ + "\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x89"+ + "\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89"+ + "\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A"+ + "\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8C"+ + "\x3\x8C\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E"+ + "\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F"+ + "\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90"+ + "\x3\x90\x3\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91"+ + "\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92"+ + "\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94"+ + "\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96"+ + "\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97"+ + "\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99"+ + "\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A"+ + "\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A"+ + "\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C"+ + "\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D"+ + "\x3\x9D\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F"+ + "\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0"+ + "\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA2\x3\xA2\x3\xA2"+ + "\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4"+ + "\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA6\x3\xA6"+ + "\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA8"+ + "\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA"+ + "\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC"+ + "\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE"+ + "\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xB0\x3\xB0"+ + "\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1"+ + "\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3"+ + "\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4"+ + "\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6"+ + "\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB7\x3\xB7\x3\xB7"+ + "\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xB9\x3\xB9"+ + "\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xBA\x3\xBA\x3\xBA"+ + "\x3\xBA\x3\xBA\x3\xBA\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBD"+ + "\x3\xBD\x3\xBD\x3\xBE\x3\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC1\x3\xC1"+ + "\x3\xC1\x3\xC2\x3\xC2\x3\xC3\x3\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5"+ + "\x3\xC6\x3\xC6\x3\xC7\x3\xC7\x3\xC8\x3\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xCA"+ + "\x3\xCA\x3\xCB\x3\xCB\x3\xCC\x3\xCC\x3\xCD\x3\xCD\x3\xCE\x3\xCE\x3\xCE"+ + "\x3\xCE\a\xCE\x766\n\xCE\f\xCE\xE\xCE\x769\v\xCE\x3\xCE\x3\xCE\x3\xCF"+ + "\x3\xCF\x3\xCF\x3\xCF\x6\xCF\x771\n\xCF\r\xCF\xE\xCF\x772\x3\xCF\x5\xCF"+ + "\x776\n\xCF\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x6\xD0\x77C\n\xD0\r\xD0\xE\xD0"+ + "\x77D\x3\xD0\x5\xD0\x781\n\xD0\x3\xD1\x3\xD1\x5\xD1\x785\n\xD1\x3\xD1"+ + "\x6\xD1\x788\n\xD1\r\xD1\xE\xD1\x789\x3\xD1\x5\xD1\x78D\n\xD1\x3\xD2\x3"+ + "\xD2\x3\xD2\x3\xD2\x5\xD2\x793\n\xD2\x3\xD3\x3\xD3\x5\xD3\x797\n\xD3\x3"+ + "\xD3\a\xD3\x79A\n\xD3\f\xD3\xE\xD3\x79D\v\xD3\x3\xD3\x3\xD3\x6\xD3\x7A1"+ + "\n\xD3\r\xD3\xE\xD3\x7A2\x3\xD3\x3\xD3\x3\xD3\x5\xD3\x7A8\n\xD3\x3\xD4"+ + "\x3\xD4\x3\xD4\x3\xD4\x3\xD5\x3\xD5\x5\xD5\x7B0\n\xD5\x3\xD5\x3\xD5\x3"+ + "\xD5\x3\xD5\x5\xD5\x7B6\n\xD5\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6"+ + "\x5\xD6\x7BE\n\xD6\x3\xD7\x6\xD7\x7C1\n\xD7\r\xD7\xE\xD7\x7C2\x3\xD7\x5"+ + "\xD7\x7C6\n\xD7\x3\xD8\x5\xD8\x7C9\n\xD8\x3\xD8\x5\xD8\x7CC\n\xD8\x3\xD8"+ + "\x5\xD8\x7CF\n\xD8\x3\xD9\x3\xD9\x5\xD9\x7D3\n\xD9\x3\xDA\x3\xDA\x3\xDA"+ + "\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x5\xDA"+ + "\x7E1\n\xDA\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3"+ + "\xDB\x3\xDB\x3\xDB\x5\xDB\x7EE\n\xDB\x3\xDC\x6\xDC\x7F1\n\xDC\r\xDC\xE"+ + "\xDC\x7F2\x3\xDC\x3\xDC\x3\xDC\x6\xDC\x7F8\n\xDC\r\xDC\xE\xDC\x7F9\x3"+ + "\xDC\x3\xDC\x6\xDC\x7FE\n\xDC\r\xDC\xE\xDC\x7FF\x3\xDC\x3\xDC\x6\xDC\x804"+ + "\n\xDC\r\xDC\xE\xDC\x805\x5\xDC\x808\n\xDC\x3\xDC\x5\xDC\x80B\n\xDC\x5"+ + "\xDC\x80D\n\xDC\x3\xDD\x5\xDD\x810\n\xDD\x3\xDD\x3\xDD\x5\xDD\x814\n\xDD"+ + "\x3\xDE\x5\xDE\x817\n\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3"+ + "\xDE\x3\xDE\x5\xDE\x821\n\xDE\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF"+ + "\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0"+ + "\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3\xE2"+ + "\x3\xE2\x3\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4"+ + "\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3\xE6\x3\xE6"+ + "\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7"+ + "\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8"+ + "\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9"+ + "\x3\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA"+ + "\x3\xEB\x3\xEB\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED"+ + "\x3\xED\x3\xED\x3\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF"+ + "\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF1\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x3\xF2"+ + "\x3\xF2\x3\xF2\x3\xF3\x3\xF3\x3\xF3\x3\xF3\x3\xF4\x3\xF4\x3\xF4\x3\xF4"+ + "\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF6\x6\xF6\x8A6\n\xF6\r\xF6\xE\xF6\x8A7"+ + "\x3\xF6\x3\xF6\x5\xF6\x8AC\n\xF6\x3\xF6\x3\xF6\x3\xF6\x3\xF6\x3\xF7\x6"+ + "\xF7\x8B3\n\xF7\r\xF7\xE\xF7\x8B4\x3\xF8\x5\xF8\x8B8\n\xF8\x3\xF8\x3\xF8"+ + "\x3\xF8\x3\xF8\a\xF8\x8BE\n\xF8\f\xF8\xE\xF8\x8C1\v\xF8\x3\xF9\x3\xF9"+ + "\x3\xF9\a\xF9\x8C6\n\xF9\f\xF9\xE\xF9\x8C9\v\xF9\x3\xFA\x3\xFA\x3\xFB"+ + "\x3\xFB\x3\xFC\x3\xFC\x3\xFD\x3\xFD\x6\xFD\x8D3\n\xFD\r\xFD\xE\xFD\x8D4"+ + "\x3\xFE\x6\xFE\x8D8\n\xFE\r\xFE\xE\xFE\x8D9\x3\xFE\x3\xFE\x6\xFE\x8DE"+ + "\n\xFE\r\xFE\xE\xFE\x8DF\x3\xFE\x3\xFE\x5\xFE\x8E4\n\xFE\x3\xFF\x3\xFF"+ + "\x3\x100\x3\x100\x3\x101\x3\x101\x3\x102\x3\x102\x3\x103\x3\x103\x3\x104"+ + "\x3\x104\x3\x105\x3\x105\x3\x106\x3\x106\x3\x107\x3\x107\x3\x108\x3\x108"+ + "\x3\x109\x3\x109\x3\x10A\x3\x10A\x3\x10B\x3\x10B\x3\x10C\x3\x10C\x3\x10D"+ + "\x3\x10D\x3\x10E\x3\x10E\x3\x10F\x3\x10F\x3\x110\x3\x110\x3\x111\x3\x111"+ + "\x3\x112\x3\x112\x3\x113\x3\x113\x3\x114\x3\x114\x3\x115\x3\x115\x3\x116"+ + "\x3\x116\x3\x117\x3\x117\x3\x118\x3\x118\x3\x119\x3\x119\x3\x11A\x3\x11A"+ + "\x3\x11B\x3\x11B\x2\x2\x2\x11C\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2"+ + "\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE\x1B\x2"+ + "\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2\x16+\x2"+ + "\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D\x39\x2"+ + "\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2%I\x2&K\x2\'M\x2(O"+ + "\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31\x61\x2\x32\x63\x2\x33"+ + "\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43\x85\x2\x44\x87\x2\x45"+ + "\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93\x2K\x95\x2L\x97\x2M\x99"+ + "\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5\x2T\xA7\x2U\xA9\x2V\xAB"+ + "\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\\xB7\x2]\xB9\x2^\xBB\x2_"+ + "\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5\x2\x64\xC7\x2\x65\xC9\x2"+ + "\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k\xD5\x2l\xD7\x2m\xD9\x2n\xDB"+ + "\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2t\xE7\x2u\xE9\x2v\xEB\x2w\xED"+ + "\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2"+ + "\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83\x105\x2\x84\x107\x2\x85\x109\x2"+ + "\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89\x111\x2\x8A\x113\x2\x8B\x115"+ + "\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F\x11D\x2\x90\x11F\x2\x91\x121"+ + "\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95\x129\x2\x96\x12B\x2\x97\x12D"+ + "\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B\x135\x2\x9C\x137\x2\x9D\x139"+ + "\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1\x141\x2\xA2\x143\x2\xA3\x145"+ + "\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7\x14D\x2\xA8\x14F\x2\xA9\x151"+ + "\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD\x159\x2\xAE\x15B\x2\xAF\x15D"+ + "\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3\x165\x2\xB4\x167\x2\xB5\x169"+ + "\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9\x171\x2\xBA\x173\x2\xBB\x175"+ + "\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF\x17D\x2\xC0\x17F\x2\xC1\x181"+ + "\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5\x189\x2\xC6\x18B\x2\xC7\x18D"+ + "\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB\x195\x2\xCC\x197\x2\xCD\x199"+ + "\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\xD1\x1A1\x2\xD2\x1A3\x2\xD3\x1A5"+ + "\x2\xD4\x1A7\x2\xD5\x1A9\x2\x2\x1AB\x2\x2\x1AD\x2\x2\x1AF\x2\x2\x1B1\x2"+ + "\x2\x1B3\x2\x2\x1B5\x2\x2\x1B7\x2\x2\x1B9\x2\x2\x1BB\x2\x2\x1BD\x2\xD6"+ + "\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC"+ + "\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1\x2\xE0\x1D3\x2\xE1\x1D5\x2\xE2"+ + "\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD\x2\xE6\x1DF\x2\xE7\x1E1\x2\xE8"+ + "\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9\x2\xEC\x1EB\x2\xED\x1ED\x2\xEE"+ + "\x1EF\x2\xEF\x1F1\x2\xF0\x1F3\x2\xF1\x1F5\x2\xF2\x1F7\x2\xF3\x1F9\x2\xF4"+ + "\x1FB\x2\xF5\x1FD\x2\x2\x1FF\x2\x2\x201\x2\x2\x203\x2\x2\x205\x2\x2\x207"+ + "\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2\x20F\x2\x2\x211\x2\x2\x213\x2"+ + "\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B\x2\x2\x21D\x2\x2\x21F\x2\x2"+ + "\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227\x2\x2\x229\x2\x2\x22B\x2\x2\x22D"+ + "\x2\x2\x22F\x2\x2\x231\x2\x2\x233\x2\x2\x235\x2\x2\x3\x2)\x5\x2\f\f\xF"+ + "\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4"+ + "\x2\x30\x30<<\x4\x2\v\v\"\"\x5\x2\f\f\xF\xF\x202A\x202B\v\x2\v\f\xF\xF"+ + "\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\v\x2\x43\\\x61\x61\x63"+ + "|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x3\x2\x32;\f\x2\x32"+ + ";\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x4"+ + "\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2"+ + "\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4"+ + "\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4"+ + "\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4"+ + "\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x941\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2"+ + "\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2"+ + "\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2"+ + "\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3"+ + "\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2"+ + "\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2"+ + "\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2"+ + "\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2"+ + "\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2"+ + "\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2"+ + "\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3"+ + "\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2"+ + "\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2"+ + "\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2"+ + "\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3"+ + "\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3"+ + "\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2"+ + "\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2"+ + "\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3"+ + "\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2"+ + "\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2"+ + "\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3"+ + "\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2"+ + "\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2"+ + "\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3"+ + "\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2"+ + "\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2"+ + "\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3"+ + "\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2\x2\x2\x2"+ + "\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7\x3\x2\x2"+ + "\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2\x2\xEF\x3"+ + "\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2\x2\x2\x2"+ + "\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD\x3\x2\x2"+ + "\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2\x2\x105"+ + "\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3\x2\x2"+ + "\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2\x2\x113"+ + "\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3\x2\x2"+ + "\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2\x2\x121"+ + "\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3\x2\x2"+ + "\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2\x2\x12F"+ + "\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3\x2\x2"+ + "\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2\x2\x13D"+ + "\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3\x2\x2"+ + "\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2\x2\x14B"+ + "\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3\x2\x2"+ + "\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2\x2\x159"+ + "\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3\x2\x2"+ + "\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2\x2\x167"+ + "\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3\x2\x2"+ + "\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2\x2\x175"+ + "\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3\x2\x2"+ + "\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2\x2\x183"+ + "\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3\x2\x2"+ + "\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2\x2\x191"+ + "\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3\x2\x2"+ + "\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x19D\x3\x2\x2\x2\x2\x19F"+ + "\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2\x1A3\x3\x2\x2\x2\x2\x1A5\x3\x2\x2"+ + "\x2\x2\x1A7\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2\x2\x1C1"+ + "\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3\x2\x2"+ + "\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2\x1CF"+ + "\x3\x2\x2\x2\x2\x1D1\x3\x2\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3\x2\x2"+ + "\x2\x2\x1D7\x3\x2\x2\x2\x2\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2\x2\x1DD"+ + "\x3\x2\x2\x2\x2\x1DF\x3\x2\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3\x2\x2"+ + "\x2\x2\x1E5\x3\x2\x2\x2\x2\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2\x2\x1EB"+ + "\x3\x2\x2\x2\x2\x1ED\x3\x2\x2\x2\x2\x1EF\x3\x2\x2\x2\x2\x1F1\x3\x2\x2"+ + "\x2\x2\x1F3\x3\x2\x2\x2\x2\x1F5\x3\x2\x2\x2\x2\x1F7\x3\x2\x2\x2\x2\x1F9"+ + "\x3\x2\x2\x2\x2\x1FB\x3\x2\x2\x2\x3\x237\x3\x2\x2\x2\x5\x239\x3\x2\x2"+ + "\x2\a\x23B\x3\x2\x2\x2\t\x23D\x3\x2\x2\x2\v\x23F\x3\x2\x2\x2\r\x241\x3"+ + "\x2\x2\x2\xF\x243\x3\x2\x2\x2\x11\x245\x3\x2\x2\x2\x13\x247\x3\x2\x2\x2"+ + "\x15\x24E\x3\x2\x2\x2\x17\x258\x3\x2\x2\x2\x19\x25E\x3\x2\x2\x2\x1B\x262"+ + "\x3\x2\x2\x2\x1D\x26C\x3\x2\x2\x2\x1F\x278\x3\x2\x2\x2!\x27F\x3\x2\x2"+ + "\x2#\x282\x3\x2\x2\x2%\x288\x3\x2\x2\x2\'\x28D\x3\x2\x2\x2)\x294\x3\x2"+ + "\x2\x2+\x29C\x3\x2\x2\x2-\x2A2\x3\x2\x2\x2/\x2A8\x3\x2\x2\x2\x31\x2AD"+ + "\x3\x2\x2\x2\x33\x2B2\x3\x2\x2\x2\x35\x2B7\x3\x2\x2\x2\x37\x2BD\x3\x2"+ + "\x2\x2\x39\x2C5\x3\x2\x2\x2;\x2CB\x3\x2\x2\x2=\x2D1\x3\x2\x2\x2?\x2DC"+ + "\x3\x2\x2\x2\x41\x2E2\x3\x2\x2\x2\x43\x2EB\x3\x2\x2\x2\x45\x2F0\x3\x2"+ + "\x2\x2G\x2F8\x3\x2\x2\x2I\x300\x3\x2\x2\x2K\x308\x3\x2\x2\x2M\x310\x3"+ + "\x2\x2\x2O\x317\x3\x2\x2\x2Q\x31E\x3\x2\x2\x2S\x325\x3\x2\x2\x2U\x32C"+ + "\x3\x2\x2\x2W\x333\x3\x2\x2\x2Y\x33A\x3\x2\x2\x2[\x341\x3\x2\x2\x2]\x348"+ + "\x3\x2\x2\x2_\x34F\x3\x2\x2\x2\x61\x35D\x3\x2\x2\x2\x63\x361\x3\x2\x2"+ + "\x2\x65\x364\x3\x2\x2\x2g\x36B\x3\x2\x2\x2i\x370\x3\x2\x2\x2k\x375\x3"+ + "\x2\x2\x2m\x37C\x3\x2\x2\x2o\x382\x3\x2\x2\x2q\x38B\x3\x2\x2\x2s\x398"+ + "\x3\x2\x2\x2u\x39F\x3\x2\x2\x2w\x3AC\x3\x2\x2\x2y\x3B7\x3\x2\x2\x2{\x3BF"+ + "\x3\x2\x2\x2}\x3C8\x3\x2\x2\x2\x7F\x3D1\x3\x2\x2\x2\x81\x3D5\x3\x2\x2"+ + "\x2\x83\x3DA\x3\x2\x2\x2\x85\x3DE\x3\x2\x2\x2\x87\x3E4\x3\x2\x2\x2\x89"+ + "\x3EA\x3\x2\x2\x2\x8B\x3F0\x3\x2\x2\x2\x8D\x3F8\x3\x2\x2\x2\x8F\x401\x3"+ + "\x2\x2\x2\x91\x40F\x3\x2\x2\x2\x93\x41D\x3\x2\x2\x2\x95\x426\x3\x2\x2"+ + "\x2\x97\x42C\x3\x2\x2\x2\x99\x435\x3\x2\x2\x2\x9B\x43C\x3\x2\x2\x2\x9D"+ + "\x440\x3\x2\x2\x2\x9F\x449\x3\x2\x2\x2\xA1\x44D\x3\x2\x2\x2\xA3\x454\x3"+ + "\x2\x2\x2\xA5\x45A\x3\x2\x2\x2\xA7\x45F\x3\x2\x2\x2\xA9\x462\x3\x2\x2"+ + "\x2\xAB\x466\x3\x2\x2\x2\xAD\x471\x3\x2\x2\x2\xAF\x474\x3\x2\x2\x2\xB1"+ + "\x47A\x3\x2\x2\x2\xB3\x47D\x3\x2\x2\x2\xB5\x485\x3\x2\x2\x2\xB7\x48A\x3"+ + "\x2\x2\x2\xB9\x48F\x3\x2\x2\x2\xBB\x494\x3\x2\x2\x2\xBD\x499\x3\x2\x2"+ + "\x2\xBF\x49E\x3\x2\x2\x2\xC1\x4A2\x3\x2\x2\x2\xC3\x4A6\x3\x2\x2\x2\xC5"+ + "\x4AA\x3\x2\x2\x2\xC7\x4AF\x3\x2\x2\x2\xC9\x4BA\x3\x2\x2\x2\xCB\x4C4\x3"+ + "\x2\x2\x2\xCD\x4CF\x3\x2\x2\x2\xCF\x4DF\x3\x2\x2\x2\xD1\x4E4\x3\x2\x2"+ + "\x2\xD3\x4EB\x3\x2\x2\x2\xD5\x4EF\x3\x2\x2\x2\xD7\x4F7\x3\x2\x2\x2\xD9"+ + "\x4FD\x3\x2\x2\x2\xDB\x507\x3\x2\x2\x2\xDD\x50A\x3\x2\x2\x2\xDF\x50E\x3"+ + "\x2\x2\x2\xE1\x514\x3\x2\x2\x2\xE3\x518\x3\x2\x2\x2\xE5\x51D\x3\x2\x2"+ + "\x2\xE7\x522\x3\x2\x2\x2\xE9\x526\x3\x2\x2\x2\xEB\x52A\x3\x2\x2\x2\xED"+ + "\x532\x3\x2\x2\x2\xEF\x537\x3\x2\x2\x2\xF1\x53A\x3\x2\x2\x2\xF3\x543\x3"+ + "\x2\x2\x2\xF5\x552\x3\x2\x2\x2\xF7\x557\x3\x2\x2\x2\xF9\x560\x3\x2\x2"+ + "\x2\xFB\x56C\x3\x2\x2\x2\xFD\x57C\x3\x2\x2\x2\xFF\x58B\x3\x2\x2\x2\x101"+ + "\x5A1\x3\x2\x2\x2\x103\x5A4\x3\x2\x2\x2\x105\x5AB\x3\x2\x2\x2\x107\x5B6"+ + "\x3\x2\x2\x2\x109\x5BF\x3\x2\x2\x2\x10B\x5C5\x3\x2\x2\x2\x10D\x5CD\x3"+ + "\x2\x2\x2\x10F\x5DA\x3\x2\x2\x2\x111\x5E7\x3\x2\x2\x2\x113\x5F4\x3\x2"+ + "\x2\x2\x115\x5FC\x3\x2\x2\x2\x117\x603\x3\x2\x2\x2\x119\x607\x3\x2\x2"+ + "\x2\x11B\x60E\x3\x2\x2\x2\x11D\x618\x3\x2\x2\x2\x11F\x623\x3\x2\x2\x2"+ + "\x121\x628\x3\x2\x2\x2\x123\x633\x3\x2\x2\x2\x125\x639\x3\x2\x2\x2\x127"+ + "\x63D\x3\x2\x2\x2\x129\x643\x3\x2\x2\x2\x12B\x64A\x3\x2\x2\x2\x12D\x651"+ + "\x3\x2\x2\x2\x12F\x657\x3\x2\x2\x2\x131\x65C\x3\x2\x2\x2\x133\x668\x3"+ + "\x2\x2\x2\x135\x674\x3\x2\x2\x2\x137\x679\x3\x2\x2\x2\x139\x680\x3\x2"+ + "\x2\x2\x13B\x689\x3\x2\x2\x2\x13D\x68D\x3\x2\x2\x2\x13F\x695\x3\x2\x2"+ + "\x2\x141\x69C\x3\x2\x2\x2\x143\x6A3\x3\x2\x2\x2\x145\x6A7\x3\x2\x2\x2"+ + "\x147\x6AE\x3\x2\x2\x2\x149\x6B3\x3\x2\x2\x2\x14B\x6B8\x3\x2\x2\x2\x14D"+ + "\x6BF\x3\x2\x2\x2\x14F\x6C3\x3\x2\x2\x2\x151\x6C7\x3\x2\x2\x2\x153\x6CC"+ + "\x3\x2\x2\x2\x155\x6D1\x3\x2\x2\x2\x157\x6D6\x3\x2\x2\x2\x159\x6D9\x3"+ + "\x2\x2\x2\x15B\x6DE\x3\x2\x2\x2\x15D\x6E3\x3\x2\x2\x2\x15F\x6EA\x3\x2"+ + "\x2\x2\x161\x6F1\x3\x2\x2\x2\x163\x6F8\x3\x2\x2\x2\x165\x6FE\x3\x2\x2"+ + "\x2\x167\x706\x3\x2\x2\x2\x169\x70E\x3\x2\x2\x2\x16B\x713\x3\x2\x2\x2"+ + "\x16D\x719\x3\x2\x2\x2\x16F\x71F\x3\x2\x2\x2\x171\x724\x3\x2\x2\x2\x173"+ + "\x72F\x3\x2\x2\x2\x175\x735\x3\x2\x2\x2\x177\x739\x3\x2\x2\x2\x179\x73B"+ + "\x3\x2\x2\x2\x17B\x73E\x3\x2\x2\x2\x17D\x740\x3\x2\x2\x2\x17F\x742\x3"+ + "\x2\x2\x2\x181\x744\x3\x2\x2\x2\x183\x747\x3\x2\x2\x2\x185\x749\x3\x2"+ + "\x2\x2\x187\x74C\x3\x2\x2\x2\x189\x74E\x3\x2\x2\x2\x18B\x750\x3\x2\x2"+ + "\x2\x18D\x752\x3\x2\x2\x2\x18F\x754\x3\x2\x2\x2\x191\x757\x3\x2\x2\x2"+ + "\x193\x759\x3\x2\x2\x2\x195\x75B\x3\x2\x2\x2\x197\x75D\x3\x2\x2\x2\x199"+ + "\x75F\x3\x2\x2\x2\x19B\x761\x3\x2\x2\x2\x19D\x76C\x3\x2\x2\x2\x19F\x777"+ + "\x3\x2\x2\x2\x1A1\x784\x3\x2\x2\x2\x1A3\x78E\x3\x2\x2\x2\x1A5\x796\x3"+ + "\x2\x2\x2\x1A7\x7A9\x3\x2\x2\x2\x1A9\x7B5\x3\x2\x2\x2\x1AB\x7B7\x3\x2"+ + "\x2\x2\x1AD\x7C5\x3\x2\x2\x2\x1AF\x7C8\x3\x2\x2\x2\x1B1\x7D2\x3\x2\x2"+ + "\x2\x1B3\x7E0\x3\x2\x2\x2\x1B5\x7ED\x3\x2\x2\x2\x1B7\x80C\x3\x2\x2\x2"+ + "\x1B9\x80F\x3\x2\x2\x2\x1BB\x816\x3\x2\x2\x2\x1BD\x822\x3\x2\x2\x2\x1BF"+ + "\x82A\x3\x2\x2\x2\x1C1\x833\x3\x2\x2\x2\x1C3\x839\x3\x2\x2\x2\x1C5\x83F"+ + "\x3\x2\x2\x2\x1C7\x843\x3\x2\x2\x2\x1C9\x848\x3\x2\x2\x2\x1CB\x84D\x3"+ + "\x2\x2\x2\x1CD\x854\x3\x2\x2\x2\x1CF\x85E\x3\x2\x2\x2\x1D1\x866\x3\x2"+ + "\x2\x2\x1D3\x86F\x3\x2\x2\x2\x1D5\x878\x3\x2\x2\x2\x1D7\x87C\x3\x2\x2"+ + "\x2\x1D9\x880\x3\x2\x2\x2\x1DB\x884\x3\x2\x2\x2\x1DD\x888\x3\x2\x2\x2"+ + "\x1DF\x88C\x3\x2\x2\x2\x1E1\x890\x3\x2\x2\x2\x1E3\x894\x3\x2\x2\x2\x1E5"+ + "\x898\x3\x2\x2\x2\x1E7\x89C\x3\x2\x2\x2\x1E9\x8A0\x3\x2\x2\x2\x1EB\x8A5"+ + "\x3\x2\x2\x2\x1ED\x8B2\x3\x2\x2\x2\x1EF\x8B7\x3\x2\x2\x2\x1F1\x8C2\x3"+ + "\x2\x2\x2\x1F3\x8CA\x3\x2\x2\x2\x1F5\x8CC\x3\x2\x2\x2\x1F7\x8CE\x3\x2"+ + "\x2\x2\x1F9\x8D2\x3\x2\x2\x2\x1FB\x8E3\x3\x2\x2\x2\x1FD\x8E5\x3\x2\x2"+ + "\x2\x1FF\x8E7\x3\x2\x2\x2\x201\x8E9\x3\x2\x2\x2\x203\x8EB\x3\x2\x2\x2"+ + "\x205\x8ED\x3\x2\x2\x2\x207\x8EF\x3\x2\x2\x2\x209\x8F1\x3\x2\x2\x2\x20B"+ + "\x8F3\x3\x2\x2\x2\x20D\x8F5\x3\x2\x2\x2\x20F\x8F7\x3\x2\x2\x2\x211\x8F9"+ + "\x3\x2\x2\x2\x213\x8FB\x3\x2\x2\x2\x215\x8FD\x3\x2\x2\x2\x217\x8FF\x3"+ + "\x2\x2\x2\x219\x901\x3\x2\x2\x2\x21B\x903\x3\x2\x2\x2\x21D\x905\x3\x2"+ + "\x2\x2\x21F\x907\x3\x2\x2\x2\x221\x909\x3\x2\x2\x2\x223\x90B\x3\x2\x2"+ + "\x2\x225\x90D\x3\x2\x2\x2\x227\x90F\x3\x2\x2\x2\x229\x911\x3\x2\x2\x2"+ + "\x22B\x913\x3\x2\x2\x2\x22D\x915\x3\x2\x2\x2\x22F\x917\x3\x2\x2\x2\x231"+ + "\x919\x3\x2\x2\x2\x233\x91B\x3\x2\x2\x2\x235\x91D\x3\x2\x2\x2\x237\x238"+ + "\a\x42\x2\x2\x238\x4\x3\x2\x2\x2\x239\x23A\a#\x2\x2\x23A\x6\x3\x2\x2\x2"+ + "\x23B\x23C\a%\x2\x2\x23C\b\x3\x2\x2\x2\x23D\x23E\a&\x2\x2\x23E\n\x3\x2"+ + "\x2\x2\x23F\x240\a\'\x2\x2\x240\f\x3\x2\x2\x2\x241\x242\a=\x2\x2\x242"+ + "\xE\x3\x2\x2\x2\x243\x244\a.\x2\x2\x244\x10\x3\x2\x2\x2\x245\x246\a\x30"+ + "\x2\x2\x246\x12\x3\x2\x2\x2\x247\x248\x5\x203\x102\x2\x248\x249\x5\x207"+ + "\x104\x2\x249\x24A\x5\x207\x104\x2\x24A\x24B\x5\x20B\x106\x2\x24B\x24C"+ + "\x5\x227\x114\x2\x24C\x24D\x5\x227\x114\x2\x24D\x14\x3\x2\x2\x2\x24E\x24F"+ + "\x5\x203\x102\x2\x24F\x250\x5\x209\x105\x2\x250\x251\x5\x209\x105\x2\x251"+ + "\x252\x5\x225\x113\x2\x252\x253\x5\x20B\x106\x2\x253\x254\x5\x227\x114"+ + "\x2\x254\x255\x5\x227\x114\x2\x255\x256\x5\x21F\x110\x2\x256\x257\x5\x20D"+ + "\x107\x2\x257\x16\x3\x2\x2\x2\x258\x259\x5\x203\x102\x2\x259\x25A\x5\x219"+ + "\x10D\x2\x25A\x25B\x5\x213\x10A\x2\x25B\x25C\x5\x203\x102\x2\x25C\x25D"+ + "\x5\x227\x114\x2\x25D\x18\x3\x2\x2\x2\x25E\x25F\x5\x203\x102\x2\x25F\x260"+ + "\x5\x21D\x10F\x2\x260\x261\x5\x209\x105\x2\x261\x1A\x3\x2\x2\x2\x262\x263"+ + "\x5\x203\x102\x2\x263\x264\x5\x229\x115\x2\x264\x265\x5\x229\x115\x2\x265"+ + "\x266\x5\x225\x113\x2\x266\x267\x5\x213\x10A\x2\x267\x268\x5\x205\x103"+ + "\x2\x268\x269\x5\x22B\x116\x2\x269\x26A\x5\x229\x115\x2\x26A\x26B\x5\x20B"+ + "\x106\x2\x26B\x1C\x3\x2\x2\x2\x26C\x26D\x5\x203\x102\x2\x26D\x26E\x5\x221"+ + "\x111\x2\x26E\x26F\x5\x221\x111\x2\x26F\x270\x5\x203\x102\x2\x270\x271"+ + "\x5\x207\x104\x2\x271\x272\x5\x229\x115\x2\x272\x273\x5\x213\x10A\x2\x273"+ + "\x274\x5\x22D\x117\x2\x274\x275\x5\x203\x102\x2\x275\x276\x5\x229\x115"+ + "\x2\x276\x277\x5\x20B\x106\x2\x277\x1E\x3\x2\x2\x2\x278\x279\x5\x203\x102"+ + "\x2\x279\x27A\x5\x221\x111\x2\x27A\x27B\x5\x221\x111\x2\x27B\x27C\x5\x20B"+ + "\x106\x2\x27C\x27D\x5\x21D\x10F\x2\x27D\x27E\x5\x209\x105\x2\x27E \x3"+ + "\x2\x2\x2\x27F\x280\x5\x203\x102\x2\x280\x281\x5\x227\x114\x2\x281\"\x3"+ + "\x2\x2\x2\x282\x283\x5\x205\x103\x2\x283\x284\x5\x20B\x106\x2\x284\x285"+ + "\x5\x20F\x108\x2\x285\x286\x5\x213\x10A\x2\x286\x287\x5\x21D\x10F\x2\x287"+ + "$\x3\x2\x2\x2\x288\x289\x5\x205\x103\x2\x289\x28A\x5\x20B\x106\x2\x28A"+ + "\x28B\x5\x20B\x106\x2\x28B\x28C\x5\x221\x111\x2\x28C&\x3\x2\x2\x2\x28D"+ + "\x28E\x5\x205\x103\x2\x28E\x28F\x5\x213\x10A\x2\x28F\x290\x5\x21D\x10F"+ + "\x2\x290\x291\x5\x203\x102\x2\x291\x292\x5\x225\x113\x2\x292\x293\x5\x233"+ + "\x11A\x2\x293(\x3\x2\x2\x2\x294\x295\x5\x205\x103\x2\x295\x296\x5\x21F"+ + "\x110\x2\x296\x297\x5\x21F\x110\x2\x297\x298\x5\x219\x10D\x2\x298\x299"+ + "\x5\x20B\x106\x2\x299\x29A\x5\x203\x102\x2\x29A\x29B\x5\x21D\x10F\x2\x29B"+ + "*\x3\x2\x2\x2\x29C\x29D\x5\x205\x103\x2\x29D\x29E\x5\x233\x11A\x2\x29E"+ + "\x29F\x5\x22D\x117\x2\x29F\x2A0\x5\x203\x102\x2\x2A0\x2A1\x5\x219\x10D"+ + "\x2\x2A1,\x3\x2\x2\x2\x2A2\x2A3\x5\x205\x103\x2\x2A3\x2A4\x5\x233\x11A"+ + "\x2\x2A4\x2A5\x5\x225\x113\x2\x2A5\x2A6\x5\x20B\x106\x2\x2A6\x2A7\x5\x20D"+ + "\x107\x2\x2A7.\x3\x2\x2\x2\x2A8\x2A9\x5\x205\x103\x2\x2A9\x2AA\x5\x233"+ + "\x11A\x2\x2AA\x2AB\x5\x229\x115\x2\x2AB\x2AC\x5\x20B\x106\x2\x2AC\x30"+ + "\x3\x2\x2\x2\x2AD\x2AE\x5\x207\x104\x2\x2AE\x2AF\x5\x203\x102\x2\x2AF"+ + "\x2B0\x5\x219\x10D\x2\x2B0\x2B1\x5\x219\x10D\x2\x2B1\x32\x3\x2\x2\x2\x2B2"+ + "\x2B3\x5\x207\x104\x2\x2B3\x2B4\x5\x203\x102\x2\x2B4\x2B5\x5\x227\x114"+ + "\x2\x2B5\x2B6\x5\x20B\x106\x2\x2B6\x34\x3\x2\x2\x2\x2B7\x2B8\x5\x207\x104"+ + "\x2\x2B8\x2B9\x5\x211\x109\x2\x2B9\x2BA\x5\x209\x105\x2\x2BA\x2BB\x5\x213"+ + "\x10A\x2\x2BB\x2BC\x5\x225\x113\x2\x2BC\x36\x3\x2\x2\x2\x2BD\x2BE\x5\x207"+ + "\x104\x2\x2BE\x2BF\x5\x211\x109\x2\x2BF\x2C0\x5\x209\x105\x2\x2C0\x2C1"+ + "\x5\x225\x113\x2\x2C1\x2C2\x5\x213\x10A\x2\x2C2\x2C3\x5\x22D\x117\x2\x2C3"+ + "\x2C4\x5\x20B\x106\x2\x2C4\x38\x3\x2\x2\x2\x2C5\x2C6\x5\x207\x104\x2\x2C6"+ + "\x2C7\x5\x219\x10D\x2\x2C7\x2C8\x5\x203\x102\x2\x2C8\x2C9\x5\x227\x114"+ + "\x2\x2C9\x2CA\x5\x227\x114\x2\x2CA:\x3\x2\x2\x2\x2CB\x2CC\x5\x207\x104"+ + "\x2\x2CC\x2CD\x5\x219\x10D\x2\x2CD\x2CE\x5\x21F\x110\x2\x2CE\x2CF\x5\x227"+ + "\x114\x2\x2CF\x2D0\x5\x20B\x106\x2\x2D0<\x3\x2\x2\x2\x2D1\x2D2\x5\x207"+ + "\x104\x2\x2D2\x2D3\x5\x21F\x110\x2\x2D3\x2D4\x5\x219\x10D\x2\x2D4\x2D5"+ + "\x5\x219\x10D\x2\x2D5\x2D6\x5\x20B\x106\x2\x2D6\x2D7\x5\x207\x104\x2\x2D7"+ + "\x2D8\x5\x229\x115\x2\x2D8\x2D9\x5\x213\x10A\x2\x2D9\x2DA\x5\x21F\x110"+ + "\x2\x2DA\x2DB\x5\x21D\x10F\x2\x2DB>\x3\x2\x2\x2\x2DC\x2DD\x5\x207\x104"+ + "\x2\x2DD\x2DE\x5\x21F\x110\x2\x2DE\x2DF\x5\x21D\x10F\x2\x2DF\x2E0\x5\x227"+ + "\x114\x2\x2E0\x2E1\x5\x229\x115\x2\x2E1@\x3\x2\x2\x2\x2E2\x2E3\x5\x209"+ + "\x105\x2\x2E3\x2E4\x5\x203\x102\x2\x2E4\x2E5\x5\x229\x115\x2\x2E5\x2E6"+ + "\x5\x203\x102\x2\x2E6\x2E7\x5\x205\x103\x2\x2E7\x2E8\x5\x203\x102\x2\x2E8"+ + "\x2E9\x5\x227\x114\x2\x2E9\x2EA\x5\x20B\x106\x2\x2EA\x42\x3\x2\x2\x2\x2EB"+ + "\x2EC\x5\x209\x105\x2\x2EC\x2ED\x5\x203\x102\x2\x2ED\x2EE\x5\x229\x115"+ + "\x2\x2EE\x2EF\x5\x20B\x106\x2\x2EF\x44\x3\x2\x2\x2\x2F0\x2F1\x5\x209\x105"+ + "\x2\x2F1\x2F2\x5\x20B\x106\x2\x2F2\x2F3\x5\x207\x104\x2\x2F3\x2F4\x5\x219"+ + "\x10D\x2\x2F4\x2F5\x5\x203\x102\x2\x2F5\x2F6\x5\x225\x113\x2\x2F6\x2F7"+ + "\x5\x20B\x106\x2\x2F7\x46\x3\x2\x2\x2\x2F8\x2F9\x5\x209\x105\x2\x2F9\x2FA"+ + "\x5\x20B\x106\x2\x2FA\x2FB\x5\x20D\x107\x2\x2FB\x2FC\x5\x205\x103\x2\x2FC"+ + "\x2FD\x5\x21F\x110\x2\x2FD\x2FE\x5\x21F\x110\x2\x2FE\x2FF\x5\x219\x10D"+ + "\x2\x2FFH\x3\x2\x2\x2\x300\x301\x5\x209\x105\x2\x301\x302\x5\x20B\x106"+ + "\x2\x302\x303\x5\x20D\x107\x2\x303\x304\x5\x205\x103\x2\x304\x305\x5\x233"+ + "\x11A\x2\x305\x306\x5\x229\x115\x2\x306\x307\x5\x20B\x106\x2\x307J\x3"+ + "\x2\x2\x2\x308\x309\x5\x209\x105\x2\x309\x30A\x5\x20B\x106\x2\x30A\x30B"+ + "\x5\x20D\x107\x2\x30B\x30C\x5\x209\x105\x2\x30C\x30D\x5\x203\x102\x2\x30D"+ + "\x30E\x5\x229\x115\x2\x30E\x30F\x5\x20B\x106\x2\x30FL\x3\x2\x2\x2\x310"+ + "\x311\x5\x209\x105\x2\x311\x312\x5\x20B\x106\x2\x312\x313\x5\x20D\x107"+ + "\x2\x313\x314\x5\x209\x105\x2\x314\x315\x5\x205\x103\x2\x315\x316\x5\x219"+ + "\x10D\x2\x316N\x3\x2\x2\x2\x317\x318\x5\x209\x105\x2\x318\x319\x5\x20B"+ + "\x106\x2\x319\x31A\x5\x20D\x107\x2\x31A\x31B\x5\x209\x105\x2\x31B\x31C"+ + "\x5\x20B\x106\x2\x31C\x31D\x5\x207\x104\x2\x31DP\x3\x2\x2\x2\x31E\x31F"+ + "\x5\x209\x105\x2\x31F\x320\x5\x20B\x106\x2\x320\x321\x5\x20D\x107\x2\x321"+ + "\x322\x5\x207\x104\x2\x322\x323\x5\x22B\x116\x2\x323\x324\x5\x225\x113"+ + "\x2\x324R\x3\x2\x2\x2\x325\x326\x5\x209\x105\x2\x326\x327\x5\x20B\x106"+ + "\x2\x327\x328\x5\x20D\x107\x2\x328\x329\x5\x213\x10A\x2\x329\x32A\x5\x21D"+ + "\x10F\x2\x32A\x32B\x5\x229\x115\x2\x32BT\x3\x2\x2\x2\x32C\x32D\x5\x209"+ + "\x105\x2\x32D\x32E\x5\x20B\x106\x2\x32E\x32F\x5\x20D\x107\x2\x32F\x330"+ + "\x5\x219\x10D\x2\x330\x331\x5\x21D\x10F\x2\x331\x332\x5\x20F\x108\x2\x332"+ + "V\x3\x2\x2\x2\x333\x334\x5\x209\x105\x2\x334\x335\x5\x20B\x106\x2\x335"+ + "\x336\x5\x20D\x107\x2\x336\x337\x5\x21F\x110\x2\x337\x338\x5\x205\x103"+ + "\x2\x338\x339\x5\x215\x10B\x2\x339X\x3\x2\x2\x2\x33A\x33B\x5\x209\x105"+ + "\x2\x33B\x33C\x5\x20B\x106\x2\x33C\x33D\x5\x20D\x107\x2\x33D\x33E\x5\x227"+ + "\x114\x2\x33E\x33F\x5\x21D\x10F\x2\x33F\x340\x5\x20F\x108\x2\x340Z\x3"+ + "\x2\x2\x2\x341\x342\x5\x209\x105\x2\x342\x343\x5\x20B\x106\x2\x343\x344"+ + "\x5\x20D\x107\x2\x344\x345\x5\x227\x114\x2\x345\x346\x5\x229\x115\x2\x346"+ + "\x347\x5\x225\x113\x2\x347\\\x3\x2\x2\x2\x348\x349\x5\x209\x105\x2\x349"+ + "\x34A\x5\x20B\x106\x2\x34A\x34B\x5\x20D\x107\x2\x34B\x34C\x5\x22D\x117"+ + "\x2\x34C\x34D\x5\x203\x102\x2\x34D\x34E\x5\x225\x113\x2\x34E^\x3\x2\x2"+ + "\x2\x34F\x350\x5\x209\x105\x2\x350\x351\x5\x20B\x106\x2\x351\x352\x5\x219"+ + "\x10D\x2\x352\x353\x5\x20B\x106\x2\x353\x354\x5\x229\x115\x2\x354\x355"+ + "\x5\x20B\x106\x2\x355\x356\x5\x227\x114\x2\x356\x357\x5\x20B\x106\x2\x357"+ + "\x358\x5\x229\x115\x2\x358\x359\x5\x229\x115\x2\x359\x35A\x5\x213\x10A"+ + "\x2\x35A\x35B\x5\x21D\x10F\x2\x35B\x35C\x5\x20F\x108\x2\x35C`\x3\x2\x2"+ + "\x2\x35D\x35E\x5\x209\x105\x2\x35E\x35F\x5\x213\x10A\x2\x35F\x360\x5\x21B"+ + "\x10E\x2\x360\x62\x3\x2\x2\x2\x361\x362\x5\x209\x105\x2\x362\x363\x5\x21F"+ + "\x110\x2\x363\x64\x3\x2\x2\x2\x364\x365\x5\x209\x105\x2\x365\x366\x5\x21F"+ + "\x110\x2\x366\x367\x5\x22B\x116\x2\x367\x368\x5\x205\x103\x2\x368\x369"+ + "\x5\x219\x10D\x2\x369\x36A\x5\x20B\x106\x2\x36A\x66\x3\x2\x2\x2\x36B\x36C"+ + "\x5\x20B\x106\x2\x36C\x36D\x5\x203\x102\x2\x36D\x36E\x5\x207\x104\x2\x36E"+ + "\x36F\x5\x211\x109\x2\x36Fh\x3\x2\x2\x2\x370\x371\x5\x20B\x106\x2\x371"+ + "\x372\x5\x219\x10D\x2\x372\x373\x5\x227\x114\x2\x373\x374\x5\x20B\x106"+ + "\x2\x374j\x3\x2\x2\x2\x375\x376\x5\x20B\x106\x2\x376\x377\x5\x219\x10D"+ + "\x2\x377\x378\x5\x227\x114\x2\x378\x379\x5\x20B\x106\x2\x379\x37A\x5\x213"+ + "\x10A\x2\x37A\x37B\x5\x20D\x107\x2\x37Bl\x3\x2\x2\x2\x37C\x37D\x5\x20B"+ + "\x106\x2\x37D\x37E\x5\x21B\x10E\x2\x37E\x37F\x5\x221\x111\x2\x37F\x380"+ + "\x5\x229\x115\x2\x380\x381\x5\x233\x11A\x2\x381n\x3\x2\x2\x2\x382\x383"+ + "\x5\x20B\x106\x2\x383\x384\x5\x21D\x10F\x2\x384\x385\x5\x209\x105\x2\x385"+ + "\x386\x5\x1F9\xFD\x2\x386\x387\x5\x20B\x106\x2\x387\x388\x5\x21D\x10F"+ + "\x2\x388\x389\x5\x22B\x116\x2\x389\x38A\x5\x21B\x10E\x2\x38Ap\x3\x2\x2"+ + "\x2\x38B\x38C\x5\x20B\x106\x2\x38C\x38D\x5\x21D\x10F\x2\x38D\x38E\x5\x209"+ + "\x105\x2\x38E\x38F\x5\x1F9\xFD\x2\x38F\x390\x5\x20D\x107\x2\x390\x391"+ + "\x5\x22B\x116\x2\x391\x392\x5\x21D\x10F\x2\x392\x393\x5\x207\x104\x2\x393"+ + "\x394\x5\x229\x115\x2\x394\x395\x5\x213\x10A\x2\x395\x396\x5\x21F\x110"+ + "\x2\x396\x397\x5\x21D\x10F\x2\x397r\x3\x2\x2\x2\x398\x399\x5\x20B\x106"+ + "\x2\x399\x39A\x5\x21D\x10F\x2\x39A\x39B\x5\x209\x105\x2\x39B\x39C\x5\x1F9"+ + "\xFD\x2\x39C\x39D\x5\x213\x10A\x2\x39D\x39E\x5\x20D\x107\x2\x39Et\x3\x2"+ + "\x2\x2\x39F\x3A0\x5\x20B\x106\x2\x3A0\x3A1\x5\x21D\x10F\x2\x3A1\x3A2\x5"+ + "\x209\x105\x2\x3A2\x3A3\x5\x1F9\xFD\x2\x3A3\x3A4\x5\x221\x111\x2\x3A4"+ + "\x3A5\x5\x225\x113\x2\x3A5\x3A6\x5\x21F\x110\x2\x3A6\x3A7\x5\x221\x111"+ + "\x2\x3A7\x3A8\x5\x20B\x106\x2\x3A8\x3A9\x5\x225\x113\x2\x3A9\x3AA\x5\x229"+ + "\x115\x2\x3AA\x3AB\x5\x233\x11A\x2\x3ABv\x3\x2\x2\x2\x3AC\x3AD\x5\x20B"+ + "\x106\x2\x3AD\x3AE\x5\x21D\x10F\x2\x3AE\x3AF\x5\x209\x105\x2\x3AF\x3B0"+ + "\x5\x1F9\xFD\x2\x3B0\x3B1\x5\x227\x114\x2\x3B1\x3B2\x5\x20B\x106\x2\x3B2"+ + "\x3B3\x5\x219\x10D\x2\x3B3\x3B4\x5\x20B\x106\x2\x3B4\x3B5\x5\x207\x104"+ + "\x2\x3B5\x3B6\x5\x229\x115\x2\x3B6x\x3\x2\x2\x2\x3B7\x3B8\x5\x20B\x106"+ + "\x2\x3B8\x3B9\x5\x21D\x10F\x2\x3B9\x3BA\x5\x209\x105\x2\x3BA\x3BB\x5\x1F9"+ + "\xFD\x2\x3BB\x3BC\x5\x227\x114\x2\x3BC\x3BD\x5\x22B\x116\x2\x3BD\x3BE"+ + "\x5\x205\x103\x2\x3BEz\x3\x2\x2\x2\x3BF\x3C0\x5\x20B\x106\x2\x3C0\x3C1"+ + "\x5\x21D\x10F\x2\x3C1\x3C2\x5\x209\x105\x2\x3C2\x3C3\x5\x1F9\xFD\x2\x3C3"+ + "\x3C4\x5\x229\x115\x2\x3C4\x3C5\x5\x233\x11A\x2\x3C5\x3C6\x5\x221\x111"+ + "\x2\x3C6\x3C7\x5\x20B\x106\x2\x3C7|\x3\x2\x2\x2\x3C8\x3C9\x5\x20B\x106"+ + "\x2\x3C9\x3CA\x5\x21D\x10F\x2\x3CA\x3CB\x5\x209\x105\x2\x3CB\x3CC\x5\x1F9"+ + "\xFD\x2\x3CC\x3CD\x5\x22F\x118\x2\x3CD\x3CE\x5\x213\x10A\x2\x3CE\x3CF"+ + "\x5\x229\x115\x2\x3CF\x3D0\x5\x211\x109\x2\x3D0~\x3\x2\x2\x2\x3D1\x3D2"+ + "\x5\x20B\x106\x2\x3D2\x3D3\x5\x21D\x10F\x2\x3D3\x3D4\x5\x209\x105\x2\x3D4"+ + "\x80\x3\x2\x2\x2\x3D5\x3D6\x5\x20B\x106\x2\x3D6\x3D7\x5\x21D\x10F\x2\x3D7"+ + "\x3D8\x5\x22B\x116\x2\x3D8\x3D9\x5\x21B\x10E\x2\x3D9\x82\x3\x2\x2\x2\x3DA"+ + "\x3DB\x5\x20B\x106\x2\x3DB\x3DC\x5\x223\x112\x2\x3DC\x3DD\x5\x22D\x117"+ + "\x2\x3DD\x84\x3\x2\x2\x2\x3DE\x3DF\x5\x20B\x106\x2\x3DF\x3E0\x5\x225\x113"+ + "\x2\x3E0\x3E1\x5\x203\x102\x2\x3E1\x3E2\x5\x227\x114\x2\x3E2\x3E3\x5\x20B"+ + "\x106\x2\x3E3\x86\x3\x2\x2\x2\x3E4\x3E5\x5\x20B\x106\x2\x3E5\x3E6\x5\x225"+ + "\x113\x2\x3E6\x3E7\x5\x225\x113\x2\x3E7\x3E8\x5\x21F\x110\x2\x3E8\x3E9"+ + "\x5\x225\x113\x2\x3E9\x88\x3\x2\x2\x2\x3EA\x3EB\x5\x20B\x106\x2\x3EB\x3EC"+ + "\x5\x22D\x117\x2\x3EC\x3ED\x5\x20B\x106\x2\x3ED\x3EE\x5\x21D\x10F\x2\x3EE"+ + "\x3EF\x5\x229\x115\x2\x3EF\x8A\x3\x2\x2\x2\x3F0\x3F1\x5\x20B\x106\x2\x3F1"+ + "\x3F2\x5\x231\x119\x2\x3F2\x3F3\x5\x213\x10A\x2\x3F3\x3F4\x5\x229\x115"+ + "\x2\x3F4\x3F5\x5\x1F9\xFD\x2\x3F5\x3F6\x5\x209\x105\x2\x3F6\x3F7\x5\x21F"+ + "\x110\x2\x3F7\x8C\x3\x2\x2\x2\x3F8\x3F9\x5\x20B\x106\x2\x3F9\x3FA\x5\x231"+ + "\x119\x2\x3FA\x3FB\x5\x213\x10A\x2\x3FB\x3FC\x5\x229\x115\x2\x3FC\x3FD"+ + "\x5\x1F9\xFD\x2\x3FD\x3FE\x5\x20D\x107\x2\x3FE\x3FF\x5\x21F\x110\x2\x3FF"+ + "\x400\x5\x225\x113\x2\x400\x8E\x3\x2\x2\x2\x401\x402\x5\x20B\x106\x2\x402"+ + "\x403\x5\x231\x119\x2\x403\x404\x5\x213\x10A\x2\x404\x405\x5\x229\x115"+ + "\x2\x405\x406\x5\x1F9\xFD\x2\x406\x407\x5\x20D\x107\x2\x407\x408\x5\x22B"+ + "\x116\x2\x408\x409\x5\x21D\x10F\x2\x409\x40A\x5\x207\x104\x2\x40A\x40B"+ + "\x5\x229\x115\x2\x40B\x40C\x5\x213\x10A\x2\x40C\x40D\x5\x21F\x110\x2\x40D"+ + "\x40E\x5\x21D\x10F\x2\x40E\x90\x3\x2\x2\x2\x40F\x410\x5\x20B\x106\x2\x410"+ + "\x411\x5\x231\x119\x2\x411\x412\x5\x213\x10A\x2\x412\x413\x5\x229\x115"+ + "\x2\x413\x414\x5\x1F9\xFD\x2\x414\x415\x5\x221\x111\x2\x415\x416\x5\x225"+ + "\x113\x2\x416\x417\x5\x21F\x110\x2\x417\x418\x5\x221\x111\x2\x418\x419"+ + "\x5\x20B\x106\x2\x419\x41A\x5\x225\x113\x2\x41A\x41B\x5\x229\x115\x2\x41B"+ + "\x41C\x5\x233\x11A\x2\x41C\x92\x3\x2\x2\x2\x41D\x41E\x5\x20B\x106\x2\x41E"+ + "\x41F\x5\x231\x119\x2\x41F\x420\x5\x213\x10A\x2\x420\x421\x5\x229\x115"+ + "\x2\x421\x422\x5\x1F9\xFD\x2\x422\x423\x5\x227\x114\x2\x423\x424\x5\x22B"+ + "\x116\x2\x424\x425\x5\x205\x103\x2\x425\x94\x3\x2\x2\x2\x426\x427\x5\x20D"+ + "\x107\x2\x427\x428\x5\x203\x102\x2\x428\x429\x5\x219\x10D\x2\x429\x42A"+ + "\x5\x227\x114\x2\x42A\x42B\x5\x20B\x106\x2\x42B\x96\x3\x2\x2\x2\x42C\x42D"+ + "\x5\x20D\x107\x2\x42D\x42E\x5\x213\x10A\x2\x42E\x42F\x5\x219\x10D\x2\x42F"+ + "\x430\x5\x20B\x106\x2\x430\x431\x5\x207\x104\x2\x431\x432\x5\x21F\x110"+ + "\x2\x432\x433\x5\x221\x111\x2\x433\x434\x5\x233\x11A\x2\x434\x98\x3\x2"+ + "\x2\x2\x435\x436\x5\x20D\x107\x2\x436\x437\x5\x225\x113\x2\x437\x438\x5"+ + "\x213\x10A\x2\x438\x439\x5\x20B\x106\x2\x439\x43A\x5\x21D\x10F\x2\x43A"+ + "\x43B\x5\x209\x105\x2\x43B\x9A\x3\x2\x2\x2\x43C\x43D\x5\x20D\x107\x2\x43D"+ + "\x43E\x5\x21F\x110\x2\x43E\x43F\x5\x225\x113\x2\x43F\x9C\x3\x2\x2\x2\x440"+ + "\x441\x5\x20D\x107\x2\x441\x442\x5\x22B\x116\x2\x442\x443\x5\x21D\x10F"+ + "\x2\x443\x444\x5\x207\x104\x2\x444\x445\x5\x229\x115\x2\x445\x446\x5\x213"+ + "\x10A\x2\x446\x447\x5\x21F\x110\x2\x447\x448\x5\x21D\x10F\x2\x448\x9E"+ + "\x3\x2\x2\x2\x449\x44A\x5\x20F\x108\x2\x44A\x44B\x5\x20B\x106\x2\x44B"+ + "\x44C\x5\x229\x115\x2\x44C\xA0\x3\x2\x2\x2\x44D\x44E\x5\x20F\x108\x2\x44E"+ + "\x44F\x5\x219\x10D\x2\x44F\x450\x5\x21F\x110\x2\x450\x451\x5\x205\x103"+ + "\x2\x451\x452\x5\x203\x102\x2\x452\x453\x5\x219\x10D\x2\x453\xA2\x3\x2"+ + "\x2\x2\x454\x455\x5\x20F\x108\x2\x455\x456\x5\x21F\x110\x2\x456\x457\x5"+ + "\x227\x114\x2\x457\x458\x5\x22B\x116\x2\x458\x459\x5\x205\x103\x2\x459"+ + "\xA4\x3\x2\x2\x2\x45A\x45B\x5\x20F\x108\x2\x45B\x45C\x5\x21F\x110\x2\x45C"+ + "\x45D\x5\x229\x115\x2\x45D\x45E\x5\x21F\x110\x2\x45E\xA6\x3\x2\x2\x2\x45F"+ + "\x460\x5\x213\x10A\x2\x460\x461\x5\x20D\x107\x2\x461\xA8\x3\x2\x2\x2\x462"+ + "\x463\x5\x213\x10A\x2\x463\x464\x5\x21B\x10E\x2\x464\x465\x5\x221\x111"+ + "\x2\x465\xAA\x3\x2\x2\x2\x466\x467\x5\x213\x10A\x2\x467\x468\x5\x21B\x10E"+ + "\x2\x468\x469\x5\x221\x111\x2\x469\x46A\x5\x219\x10D\x2\x46A\x46B\x5\x20B"+ + "\x106\x2\x46B\x46C\x5\x21B\x10E\x2\x46C\x46D\x5\x20B\x106\x2\x46D\x46E"+ + "\x5\x21D\x10F\x2\x46E\x46F\x5\x229\x115\x2\x46F\x470\x5\x227\x114\x2\x470"+ + "\xAC\x3\x2\x2\x2\x471\x472\x5\x213\x10A\x2\x472\x473\x5\x21D\x10F\x2\x473"+ + "\xAE\x3\x2\x2\x2\x474\x475\x5\x213\x10A\x2\x475\x476\x5\x21D\x10F\x2\x476"+ + "\x477\x5\x221\x111\x2\x477\x478\x5\x22B\x116\x2\x478\x479\x5\x229\x115"+ + "\x2\x479\xB0\x3\x2\x2\x2\x47A\x47B\x5\x213\x10A\x2\x47B\x47C\x5\x227\x114"+ + "\x2\x47C\xB2\x3\x2\x2\x2\x47D\x47E\x5\x213\x10A\x2\x47E\x47F\x5\x21D\x10F"+ + "\x2\x47F\x480\x5\x229\x115\x2\x480\x481\x5\x20B\x106\x2\x481\x482\x5\x20F"+ + "\x108\x2\x482\x483\x5\x20B\x106\x2\x483\x484\x5\x225\x113\x2\x484\xB4"+ + "\x3\x2\x2\x2\x485\x486\x5\x217\x10C\x2\x486\x487\x5\x213\x10A\x2\x487"+ + "\x488\x5\x219\x10D\x2\x488\x489\x5\x219\x10D\x2\x489\xB6\x3\x2\x2\x2\x48A"+ + "\x48B\x5\x219\x10D\x2\x48B\x48C\x5\x21F\x110\x2\x48C\x48D\x5\x203\x102"+ + "\x2\x48D\x48E\x5\x209\x105\x2\x48E\xB8\x3\x2\x2\x2\x48F\x490\x5\x219\x10D"+ + "\x2\x490\x491\x5\x21F\x110\x2\x491\x492\x5\x207\x104\x2\x492\x493\x5\x217"+ + "\x10C\x2\x493\xBA\x3\x2\x2\x2\x494\x495\x5\x219\x10D\x2\x495\x496\x5\x21F"+ + "\x110\x2\x496\x497\x5\x21D\x10F\x2\x497\x498\x5\x20F\x108\x2\x498\xBC"+ + "\x3\x2\x2\x2\x499\x49A\x5\x219\x10D\x2\x49A\x49B\x5\x21F\x110\x2\x49B"+ + "\x49C\x5\x21F\x110\x2\x49C\x49D\x5\x221\x111\x2\x49D\xBE\x3\x2\x2\x2\x49E"+ + "\x49F\x5\x219\x10D\x2\x49F\x4A0\x5\x20B\x106\x2\x4A0\x4A1\x5\x21D\x10F"+ + "\x2\x4A1\xC0\x3\x2\x2\x2\x4A2\x4A3\x5\x219\x10D\x2\x4A3\x4A4\x5\x20B\x106"+ + "\x2\x4A4\x4A5\x5\x229\x115\x2\x4A5\xC2\x3\x2\x2\x2\x4A6\x4A7\x5\x219\x10D"+ + "\x2\x4A7\x4A8\x5\x213\x10A\x2\x4A8\x4A9\x5\x205\x103\x2\x4A9\xC4\x3\x2"+ + "\x2\x2\x4AA\x4AB\x5\x219\x10D\x2\x4AB\x4AC\x5\x213\x10A\x2\x4AC\x4AD\x5"+ + "\x217\x10C\x2\x4AD\x4AE\x5\x20B\x106\x2\x4AE\xC6\x3\x2\x2\x2\x4AF\x4B0"+ + "\x5\x219\x10D\x2\x4B0\x4B1\x5\x213\x10A\x2\x4B1\x4B2\x5\x21D\x10F\x2\x4B2"+ + "\x4B3\x5\x20B\x106\x2\x4B3\x4B4\x5\x1F9\xFD\x2\x4B4\x4B5\x5\x213\x10A"+ + "\x2\x4B5\x4B6\x5\x21D\x10F\x2\x4B6\x4B7\x5\x221\x111\x2\x4B7\x4B8\x5\x22B"+ + "\x116\x2\x4B8\x4B9\x5\x229\x115\x2\x4B9\xC8\x3\x2\x2\x2\x4BA\x4BB\x5\x219"+ + "\x10D\x2\x4BB\x4BC\x5\x21F\x110\x2\x4BC\x4BD\x5\x207\x104\x2\x4BD\x4BE"+ + "\x5\x217\x10C\x2\x4BE\x4BF\x5\x1F9\xFD\x2\x4BF\x4C0\x5\x225\x113\x2\x4C0"+ + "\x4C1\x5\x20B\x106\x2\x4C1\x4C2\x5\x203\x102\x2\x4C2\x4C3\x5\x209\x105"+ + "\x2\x4C3\xCA\x3\x2\x2\x2\x4C4\x4C5\x5\x219\x10D\x2\x4C5\x4C6\x5\x21F\x110"+ + "\x2\x4C6\x4C7\x5\x207\x104\x2\x4C7\x4C8\x5\x217\x10C\x2\x4C8\x4C9\x5\x1F9"+ + "\xFD\x2\x4C9\x4CA\x5\x22F\x118\x2\x4CA\x4CB\x5\x225\x113\x2\x4CB\x4CC"+ + "\x5\x213\x10A\x2\x4CC\x4CD\x5\x229\x115\x2\x4CD\x4CE\x5\x20B\x106\x2\x4CE"+ + "\xCC\x3\x2\x2\x2\x4CF\x4D0\x5\x219\x10D\x2\x4D0\x4D1\x5\x21F\x110\x2\x4D1"+ + "\x4D2\x5\x207\x104\x2\x4D2\x4D3\x5\x217\x10C\x2\x4D3\x4D4\x5\x1F9\xFD"+ + "\x2\x4D4\x4D5\x5\x225\x113\x2\x4D5\x4D6\x5\x20B\x106\x2\x4D6\x4D7\x5\x203"+ + "\x102\x2\x4D7\x4D8\x5\x209\x105\x2\x4D8\x4D9\x5\x1F9\xFD\x2\x4D9\x4DA"+ + "\x5\x22F\x118\x2\x4DA\x4DB\x5\x225\x113\x2\x4DB\x4DC\x5\x213\x10A\x2\x4DC"+ + "\x4DD\x5\x229\x115\x2\x4DD\x4DE\x5\x20B\x106\x2\x4DE\xCE\x3\x2\x2\x2\x4DF"+ + "\x4E0\x5\x219\x10D\x2\x4E0\x4E1\x5\x227\x114\x2\x4E1\x4E2\x5\x20B\x106"+ + "\x2\x4E2\x4E3\x5\x229\x115\x2\x4E3\xD0\x3\x2\x2\x2\x4E4\x4E5\a%\x2\x2"+ + "\x4E5\x4E6\x5\x207\x104\x2\x4E6\x4E7\x5\x21F\x110\x2\x4E7\x4E8\x5\x21D"+ + "\x10F\x2\x4E8\x4E9\x5\x227\x114\x2\x4E9\x4EA\x5\x229\x115\x2\x4EA\xD2"+ + "\x3\x2\x2\x2\x4EB\x4EC\a%\x2\x2\x4EC\x4ED\x5\x213\x10A\x2\x4ED\x4EE\x5"+ + "\x20D\x107\x2\x4EE\xD4\x3\x2\x2\x2\x4EF\x4F0\a%\x2\x2\x4F0\x4F1\x5\x20B"+ + "\x106\x2\x4F1\x4F2\x5\x219\x10D\x2\x4F2\x4F3\x5\x227\x114\x2\x4F3\x4F4"+ + "\x5\x20B\x106\x2\x4F4\x4F5\x5\x213\x10A\x2\x4F5\x4F6\x5\x20D\x107\x2\x4F6"+ + "\xD6\x3\x2\x2\x2\x4F7\x4F8\a%\x2\x2\x4F8\x4F9\x5\x20B\x106\x2\x4F9\x4FA"+ + "\x5\x219\x10D\x2\x4FA\x4FB\x5\x227\x114\x2\x4FB\x4FC\x5\x20B\x106\x2\x4FC"+ + "\xD8\x3\x2\x2\x2\x4FD\x4FE\a%\x2\x2\x4FE\x4FF\x5\x20B\x106\x2\x4FF\x500"+ + "\x5\x21D\x10F\x2\x500\x502\x5\x209\x105\x2\x501\x503\x5\x1F9\xFD\x2\x502"+ + "\x501\x3\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x505"+ + "\x5\x213\x10A\x2\x505\x506\x5\x20D\x107\x2\x506\xDA\x3\x2\x2\x2\x507\x508"+ + "\x5\x21B\x10E\x2\x508\x509\x5\x20B\x106\x2\x509\xDC\x3\x2\x2\x2\x50A\x50B"+ + "\x5\x21B\x10E\x2\x50B\x50C\x5\x213\x10A\x2\x50C\x50D\x5\x209\x105\x2\x50D"+ + "\xDE\x3\x2\x2\x2\x50E\x50F\x5\x21B\x10E\x2\x50F\x510\x5\x217\x10C\x2\x510"+ + "\x511\x5\x209\x105\x2\x511\x512\x5\x213\x10A\x2\x512\x513\x5\x225\x113"+ + "\x2\x513\xE0\x3\x2\x2\x2\x514\x515\x5\x21B\x10E\x2\x515\x516\x5\x21F\x110"+ + "\x2\x516\x517\x5\x209\x105\x2\x517\xE2\x3\x2\x2\x2\x518\x519\x5\x21D\x10F"+ + "\x2\x519\x51A\x5\x203\x102\x2\x51A\x51B\x5\x21B\x10E\x2\x51B\x51C\x5\x20B"+ + "\x106\x2\x51C\xE4\x3\x2\x2\x2\x51D\x51E\x5\x21D\x10F\x2\x51E\x51F\x5\x20B"+ + "\x106\x2\x51F\x520\x5\x231\x119\x2\x520\x521\x5\x229\x115\x2\x521\xE6"+ + "\x3\x2\x2\x2\x522\x523\x5\x21D\x10F\x2\x523\x524\x5\x20B\x106\x2\x524"+ + "\x525\x5\x22F\x118\x2\x525\xE8\x3\x2\x2\x2\x526\x527\x5\x21D\x10F\x2\x527"+ + "\x528\x5\x21F\x110\x2\x528\x529\x5\x229\x115\x2\x529\xEA\x3\x2\x2\x2\x52A"+ + "\x52B\x5\x21D\x10F\x2\x52B\x52C\x5\x21F\x110\x2\x52C\x52D\x5\x229\x115"+ + "\x2\x52D\x52E\x5\x211\x109\x2\x52E\x52F\x5\x213\x10A\x2\x52F\x530\x5\x21D"+ + "\x10F\x2\x530\x531\x5\x20F\x108\x2\x531\xEC\x3\x2\x2\x2\x532\x533\x5\x21D"+ + "\x10F\x2\x533\x534\x5\x22B\x116\x2\x534\x535\x5\x219\x10D\x2\x535\x536"+ + "\x5\x219\x10D\x2\x536\xEE\x3\x2\x2\x2\x537\x538\x5\x21F\x110\x2\x538\x539"+ + "\x5\x21D\x10F\x2\x539\xF0\x3\x2\x2\x2\x53A\x53B\x5\x21F\x110\x2\x53B\x53C"+ + "\x5\x21D\x10F\x2\x53C\x53D\x5\x1F9\xFD\x2\x53D\x53E\x5\x20B\x106\x2\x53E"+ + "\x53F\x5\x225\x113\x2\x53F\x540\x5\x225\x113\x2\x540\x541\x5\x21F\x110"+ + "\x2\x541\x542\x5\x225\x113\x2\x542\xF2\x3\x2\x2\x2\x543\x544\x5\x21F\x110"+ + "\x2\x544\x545\x5\x21D\x10F\x2\x545\x546\x5\x1F9\xFD\x2\x546\x547\x5\x219"+ + "\x10D\x2\x547\x548\x5\x21F\x110\x2\x548\x549\x5\x207\x104\x2\x549\x54A"+ + "\x5\x203\x102\x2\x54A\x54B\x5\x219\x10D\x2\x54B\x54C\x5\x1F9\xFD\x2\x54C"+ + "\x54D\x5\x20B\x106\x2\x54D\x54E\x5\x225\x113\x2\x54E\x54F\x5\x225\x113"+ + "\x2\x54F\x550\x5\x21F\x110\x2\x550\x551\x5\x225\x113\x2\x551\xF4\x3\x2"+ + "\x2\x2\x552\x553\x5\x21F\x110\x2\x553\x554\x5\x221\x111\x2\x554\x555\x5"+ + "\x20B\x106\x2\x555\x556\x5\x21D\x10F\x2\x556\xF6\x3\x2\x2\x2\x557\x558"+ + "\x5\x21F\x110\x2\x558\x559\x5\x221\x111\x2\x559\x55A\x5\x229\x115\x2\x55A"+ + "\x55B\x5\x213\x10A\x2\x55B\x55C\x5\x21F\x110\x2\x55C\x55D\x5\x21D\x10F"+ + "\x2\x55D\x55E\x5\x203\x102\x2\x55E\x55F\x5\x219\x10D\x2\x55F\xF8\x3\x2"+ + "\x2\x2\x560\x561\x5\x21F\x110\x2\x561\x562\x5\x221\x111\x2\x562\x563\x5"+ + "\x229\x115\x2\x563\x564\x5\x213\x10A\x2\x564\x565\x5\x21F\x110\x2\x565"+ + "\x566\x5\x21D\x10F\x2\x566\x567\x5\x1F9\xFD\x2\x567\x568\x5\x205\x103"+ + "\x2\x568\x569\x5\x203\x102\x2\x569\x56A\x5\x227\x114\x2\x56A\x56B\x5\x20B"+ + "\x106\x2\x56B\xFA\x3\x2\x2\x2\x56C\x56D\x5\x21F\x110\x2\x56D\x56E\x5\x221"+ + "\x111\x2\x56E\x56F\x5\x229\x115\x2\x56F\x570\x5\x213\x10A\x2\x570\x571"+ + "\x5\x21F\x110\x2\x571\x572\x5\x21D\x10F\x2\x572\x573\x5\x1F9\xFD\x2\x573"+ + "\x574\x5\x20B\x106\x2\x574\x575\x5\x231\x119\x2\x575\x576\x5\x221\x111"+ + "\x2\x576\x577\x5\x219\x10D\x2\x577\x578\x5\x213\x10A\x2\x578\x579\x5\x207"+ + "\x104\x2\x579\x57A\x5\x213\x10A\x2\x57A\x57B\x5\x229\x115\x2\x57B\xFC"+ + "\x3\x2\x2\x2\x57C\x57D\x5\x21F\x110\x2\x57D\x57E\x5\x221\x111\x2\x57E"+ + "\x57F\x5\x229\x115\x2\x57F\x580\x5\x213\x10A\x2\x580\x581\x5\x21F\x110"+ + "\x2\x581\x582\x5\x21D\x10F\x2\x582\x583\x5\x1F9\xFD\x2\x583\x584\x5\x207"+ + "\x104\x2\x584\x585\x5\x21F\x110\x2\x585\x586\x5\x21B\x10E\x2\x586\x587"+ + "\x5\x221\x111\x2\x587\x588\x5\x203\x102\x2\x588\x589\x5\x225\x113\x2\x589"+ + "\x58A\x5\x20B\x106\x2\x58A\xFE\x3\x2\x2\x2\x58B\x58C\x5\x21F\x110\x2\x58C"+ + "\x58D\x5\x221\x111\x2\x58D\x58E\x5\x229\x115\x2\x58E\x58F\x5\x213\x10A"+ + "\x2\x58F\x590\x5\x21F\x110\x2\x590\x591\x5\x21D\x10F\x2\x591\x592\x5\x1F9"+ + "\xFD\x2\x592\x593\x5\x221\x111\x2\x593\x594\x5\x225\x113\x2\x594\x595"+ + "\x5\x213\x10A\x2\x595\x596\x5\x22D\x117\x2\x596\x597\x5\x203\x102\x2\x597"+ + "\x598\x5\x229\x115\x2\x598\x599\x5\x20B\x106\x2\x599\x59A\x5\x1F9\xFD"+ + "\x2\x59A\x59B\x5\x21B\x10E\x2\x59B\x59C\x5\x21F\x110\x2\x59C\x59D\x5\x209"+ + "\x105\x2\x59D\x59E\x5\x22B\x116\x2\x59E\x59F\x5\x219\x10D\x2\x59F\x5A0"+ + "\x5\x20B\x106\x2\x5A0\x100\x3\x2\x2\x2\x5A1\x5A2\x5\x21F\x110\x2\x5A2"+ + "\x5A3\x5\x225\x113\x2\x5A3\x102\x3\x2\x2\x2\x5A4\x5A5\x5\x21F\x110\x2"+ + "\x5A5\x5A6\x5\x22B\x116\x2\x5A6\x5A7\x5\x229\x115\x2\x5A7\x5A8\x5\x221"+ + "\x111\x2\x5A8\x5A9\x5\x22B\x116\x2\x5A9\x5AA\x5\x229\x115\x2\x5AA\x104"+ + "\x3\x2\x2\x2\x5AB\x5AC\x5\x221\x111\x2\x5AC\x5AD\x5\x203\x102\x2\x5AD"+ + "\x5AE\x5\x225\x113\x2\x5AE\x5AF\x5\x203\x102\x2\x5AF\x5B0\x5\x21B\x10E"+ + "\x2\x5B0\x5B1\x5\x203\x102\x2\x5B1\x5B2\x5\x225\x113\x2\x5B2\x5B3\x5\x225"+ + "\x113\x2\x5B3\x5B4\x5\x203\x102\x2\x5B4\x5B5\x5\x233\x11A\x2\x5B5\x106"+ + "\x3\x2\x2\x2\x5B6\x5B7\x5\x221\x111\x2\x5B7\x5B8\x5\x225\x113\x2\x5B8"+ + "\x5B9\x5\x20B\x106\x2\x5B9\x5BA\x5\x227\x114\x2\x5BA\x5BB\x5\x20B\x106"+ + "\x2\x5BB\x5BC\x5\x225\x113\x2\x5BC\x5BD\x5\x22D\x117\x2\x5BD\x5BE\x5\x20B"+ + "\x106\x2\x5BE\x108\x3\x2\x2\x2\x5BF\x5C0\x5\x221\x111\x2\x5C0\x5C1\x5"+ + "\x225\x113\x2\x5C1\x5C2\x5\x213\x10A\x2\x5C2\x5C3\x5\x21D\x10F\x2\x5C3"+ + "\x5C4\x5\x229\x115\x2\x5C4\x10A\x3\x2\x2\x2\x5C5\x5C6\x5\x221\x111\x2"+ + "\x5C6\x5C7\x5\x225\x113\x2\x5C7\x5C8\x5\x213\x10A\x2\x5C8\x5C9\x5\x22D"+ + "\x117\x2\x5C9\x5CA\x5\x203\x102\x2\x5CA\x5CB\x5\x229\x115\x2\x5CB\x5CC"+ + "\x5\x20B\x106\x2\x5CC\x10C\x3\x2\x2\x2\x5CD\x5CE\x5\x221\x111\x2\x5CE"+ + "\x5CF\x5\x225\x113\x2\x5CF\x5D0\x5\x21F\x110\x2\x5D0\x5D1\x5\x221\x111"+ + "\x2\x5D1\x5D2\x5\x20B\x106\x2\x5D2\x5D3\x5\x225\x113\x2\x5D3\x5D4\x5\x229"+ + "\x115\x2\x5D4\x5D5\x5\x233\x11A\x2\x5D5\x5D6\x5\x1F9\xFD\x2\x5D6\x5D7"+ + "\x5\x20F\x108\x2\x5D7\x5D8\x5\x20B\x106\x2\x5D8\x5D9\x5\x229\x115\x2\x5D9"+ + "\x10E\x3\x2\x2\x2\x5DA\x5DB\x5\x221\x111\x2\x5DB\x5DC\x5\x225\x113\x2"+ + "\x5DC\x5DD\x5\x21F\x110\x2\x5DD\x5DE\x5\x221\x111\x2\x5DE\x5DF\x5\x20B"+ + "\x106\x2\x5DF\x5E0\x5\x225\x113\x2\x5E0\x5E1\x5\x229\x115\x2\x5E1\x5E2"+ + "\x5\x233\x11A\x2\x5E2\x5E3\x5\x1F9\xFD\x2\x5E3\x5E4\x5\x219\x10D\x2\x5E4"+ + "\x5E5\x5\x20B\x106\x2\x5E5\x5E6\x5\x229\x115\x2\x5E6\x110\x3\x2\x2\x2"+ + "\x5E7\x5E8\x5\x221\x111\x2\x5E8\x5E9\x5\x225\x113\x2\x5E9\x5EA\x5\x21F"+ + "\x110\x2\x5EA\x5EB\x5\x221\x111\x2\x5EB\x5EC\x5\x20B\x106\x2\x5EC\x5ED"+ + "\x5\x225\x113\x2\x5ED\x5EE\x5\x229\x115\x2\x5EE\x5EF\x5\x233\x11A\x2\x5EF"+ + "\x5F0\x5\x1F9\xFD\x2\x5F0\x5F1\x5\x227\x114\x2\x5F1\x5F2\x5\x20B\x106"+ + "\x2\x5F2\x5F3\x5\x229\x115\x2\x5F3\x112\x3\x2\x2\x2\x5F4\x5F5\x5\x221"+ + "\x111\x2\x5F5\x5F6\x5\x229\x115\x2\x5F6\x5F7\x5\x225\x113\x2\x5F7\x5F8"+ + "\x5\x227\x114\x2\x5F8\x5F9\x5\x203\x102\x2\x5F9\x5FA\x5\x20D\x107\x2\x5FA"+ + "\x5FB\x5\x20B\x106\x2\x5FB\x114\x3\x2\x2\x2\x5FC\x5FD\x5\x221\x111\x2"+ + "\x5FD\x5FE\x5\x22B\x116\x2\x5FE\x5FF\x5\x205\x103\x2\x5FF\x600\x5\x219"+ + "\x10D\x2\x600\x601\x5\x213\x10A\x2\x601\x602\x5\x207\x104\x2\x602\x116"+ + "\x3\x2\x2\x2\x603\x604\x5\x221\x111\x2\x604\x605\x5\x22B\x116\x2\x605"+ + "\x606\x5\x229\x115\x2\x606\x118\x3\x2\x2\x2\x607\x608\x5\x225\x113\x2"+ + "\x608\x609\x5\x203\x102\x2\x609\x60A\x5\x21D\x10F\x2\x60A\x60B\x5\x209"+ + "\x105\x2\x60B\x60C\x5\x21F\x110\x2\x60C\x60D\x5\x21B\x10E\x2\x60D\x11A"+ + "\x3\x2\x2\x2\x60E\x60F\x5\x225\x113\x2\x60F\x610\x5\x203\x102\x2\x610"+ + "\x611\x5\x21D\x10F\x2\x611\x612\x5\x209\x105\x2\x612\x613\x5\x21F\x110"+ + "\x2\x613\x614\x5\x21B\x10E\x2\x614\x615\x5\x213\x10A\x2\x615\x616\x5\x235"+ + "\x11B\x2\x616\x617\x5\x20B\x106\x2\x617\x11C\x3\x2\x2\x2\x618\x619\x5"+ + "\x225\x113\x2\x619\x61A\x5\x203\x102\x2\x61A\x61B\x5\x213\x10A\x2\x61B"+ + "\x61C\x5\x227\x114\x2\x61C\x61D\x5\x20B\x106\x2\x61D\x61E\x5\x20B\x106"+ + "\x2\x61E\x61F\x5\x22D\x117\x2\x61F\x620\x5\x20B\x106\x2\x620\x621\x5\x21D"+ + "\x10F\x2\x621\x622\x5\x229\x115\x2\x622\x11E\x3\x2\x2\x2\x623\x624\x5"+ + "\x225\x113\x2\x624\x625\x5\x20B\x106\x2\x625\x626\x5\x203\x102\x2\x626"+ + "\x627\x5\x209\x105\x2\x627\x120\x3\x2\x2\x2\x628\x629\x5\x225\x113\x2"+ + "\x629\x62A\x5\x20B\x106\x2\x62A\x62B\x5\x203\x102\x2\x62B\x62C\x5\x209"+ + "\x105\x2\x62C\x62D\x5\x1F9\xFD\x2\x62D\x62E\x5\x22F\x118\x2\x62E\x62F"+ + "\x5\x225\x113\x2\x62F\x630\x5\x213\x10A\x2\x630\x631\x5\x229\x115\x2\x631"+ + "\x632\x5\x20B\x106\x2\x632\x122\x3\x2\x2\x2\x633\x634\x5\x225\x113\x2"+ + "\x634\x635\x5\x20B\x106\x2\x635\x636\x5\x209\x105\x2\x636\x637\x5\x213"+ + "\x10A\x2\x637\x638\x5\x21B\x10E\x2\x638\x124\x3\x2\x2\x2\x639\x63A\x5"+ + "\x225\x113\x2\x63A\x63B\x5\x20B\x106\x2\x63B\x63C\x5\x21B\x10E\x2\x63C"+ + "\x126\x3\x2\x2\x2\x63D\x63E\x5\x225\x113\x2\x63E\x63F\x5\x20B\x106\x2"+ + "\x63F\x640\x5\x227\x114\x2\x640\x641\x5\x20B\x106\x2\x641\x642\x5\x229"+ + "\x115\x2\x642\x128\x3\x2\x2\x2\x643\x644\x5\x225\x113\x2\x644\x645\x5"+ + "\x20B\x106\x2\x645\x646\x5\x227\x114\x2\x646\x647\x5\x22B\x116\x2\x647"+ + "\x648\x5\x21B\x10E\x2\x648\x649\x5\x20B\x106\x2\x649\x12A\x3\x2\x2\x2"+ + "\x64A\x64B\x5\x225\x113\x2\x64B\x64C\x5\x20B\x106\x2\x64C\x64D\x5\x229"+ + "\x115\x2\x64D\x64E\x5\x22B\x116\x2\x64E\x64F\x5\x225\x113\x2\x64F\x650"+ + "\x5\x21D\x10F\x2\x650\x12C\x3\x2\x2\x2\x651\x652\x5\x225\x113\x2\x652"+ + "\x653\x5\x21B\x10E\x2\x653\x654\x5\x209\x105\x2\x654\x655\x5\x213\x10A"+ + "\x2\x655\x656\x5\x225\x113\x2\x656\x12E\x3\x2\x2\x2\x657\x658\x5\x225"+ + "\x113\x2\x658\x659\x5\x227\x114\x2\x659\x65A\x5\x20B\x106\x2\x65A\x65B"+ + "\x5\x229\x115\x2\x65B\x130\x3\x2\x2\x2\x65C\x65D\x5\x227\x114\x2\x65D"+ + "\x65E\x5\x203\x102\x2\x65E\x65F\x5\x22D\x117\x2\x65F\x660\x5\x20B\x106"+ + "\x2\x660\x661\x5\x221\x111\x2\x661\x662\x5\x213\x10A\x2\x662\x663\x5\x207"+ + "\x104\x2\x663\x664\x5\x229\x115\x2\x664\x665\x5\x22B\x116\x2\x665\x666"+ + "\x5\x225\x113\x2\x666\x667\x5\x20B\x106\x2\x667\x132\x3\x2\x2\x2\x668"+ + "\x669\x5\x227\x114\x2\x669\x66A\x5\x203\x102\x2\x66A\x66B\x5\x22D\x117"+ + "\x2\x66B\x66C\x5\x20B\x106\x2\x66C\x66D\x5\x227\x114\x2\x66D\x66E\x5\x20B"+ + "\x106\x2\x66E\x66F\x5\x229\x115\x2\x66F\x670\x5\x229\x115\x2\x670\x671"+ + "\x5\x213\x10A\x2\x671\x672\x5\x21D\x10F\x2\x672\x673\x5\x20F\x108\x2\x673"+ + "\x134\x3\x2\x2\x2\x674\x675\x5\x227\x114\x2\x675\x676\x5\x20B\x106\x2"+ + "\x676\x677\x5\x20B\x106\x2\x677\x678\x5\x217\x10C\x2\x678\x136\x3\x2\x2"+ + "\x2\x679\x67A\x5\x227\x114\x2\x67A\x67B\x5\x20B\x106\x2\x67B\x67C\x5\x219"+ + "\x10D\x2\x67C\x67D\x5\x20B\x106\x2\x67D\x67E\x5\x207\x104\x2\x67E\x67F"+ + "\x5\x229\x115\x2\x67F\x138\x3\x2\x2\x2\x680\x681\x5\x227\x114\x2\x681"+ + "\x682\x5\x20B\x106\x2\x682\x683\x5\x21D\x10F\x2\x683\x684\x5\x209\x105"+ + "\x2\x684\x685\x5\x217\x10C\x2\x685\x686\x5\x20B\x106\x2\x686\x687\x5\x233"+ + "\x11A\x2\x687\x688\x5\x227\x114\x2\x688\x13A\x3\x2\x2\x2\x689\x68A\x5"+ + "\x227\x114\x2\x68A\x68B\x5\x20B\x106\x2\x68B\x68C\x5\x229\x115\x2\x68C"+ + "\x13C\x3\x2\x2\x2\x68D\x68E\x5\x227\x114\x2\x68E\x68F\x5\x20B\x106\x2"+ + "\x68F\x690\x5\x229\x115\x2\x690\x691\x5\x203\x102\x2\x691\x692\x5\x229"+ + "\x115\x2\x692\x693\x5\x229\x115\x2\x693\x694\x5\x225\x113\x2\x694\x13E"+ + "\x3\x2\x2\x2\x695\x696\x5\x227\x114\x2\x696\x697\x5\x211\x109\x2\x697"+ + "\x698\x5\x203\x102\x2\x698\x699\x5\x225\x113\x2\x699\x69A\x5\x20B\x106"+ + "\x2\x69A\x69B\x5\x209\x105\x2\x69B\x140\x3\x2\x2\x2\x69C\x69D\x5\x227"+ + "\x114\x2\x69D\x69E\x5\x213\x10A\x2\x69E\x69F\x5\x21D\x10F\x2\x69F\x6A0"+ + "\x5\x20F\x108\x2\x6A0\x6A1\x5\x219\x10D\x2\x6A1\x6A2\x5\x20B\x106\x2\x6A2"+ + "\x142\x3\x2\x2\x2\x6A3\x6A4\x5\x227\x114\x2\x6A4\x6A5\x5\x221\x111\x2"+ + "\x6A5\x6A6\x5\x207\x104\x2\x6A6\x144\x3\x2\x2\x2\x6A7\x6A8\x5\x227\x114"+ + "\x2\x6A8\x6A9\x5\x229\x115\x2\x6A9\x6AA\x5\x203\x102\x2\x6AA\x6AB\x5\x229"+ + "\x115\x2\x6AB\x6AC\x5\x213\x10A\x2\x6AC\x6AD\x5\x207\x104\x2\x6AD\x146"+ + "\x3\x2\x2\x2\x6AE\x6AF\x5\x227\x114\x2\x6AF\x6B0\x5\x229\x115\x2\x6B0"+ + "\x6B1\x5\x20B\x106\x2\x6B1\x6B2\x5\x221\x111\x2\x6B2\x148\x3\x2\x2\x2"+ + "\x6B3\x6B4\x5\x227\x114\x2\x6B4\x6B5\x5\x229\x115\x2\x6B5\x6B6\x5\x21F"+ + "\x110\x2\x6B6\x6B7\x5\x221\x111\x2\x6B7\x14A\x3\x2\x2\x2\x6B8\x6B9\x5"+ + "\x227\x114\x2\x6B9\x6BA\x5\x229\x115\x2\x6BA\x6BB\x5\x225\x113\x2\x6BB"+ + "\x6BC\x5\x213\x10A\x2\x6BC\x6BD\x5\x21D\x10F\x2\x6BD\x6BE\x5\x20F\x108"+ + "\x2\x6BE\x14C\x3\x2\x2\x2\x6BF\x6C0\x5\x227\x114\x2\x6C0\x6C1\x5\x22B"+ + "\x116\x2\x6C1\x6C2\x5\x205\x103\x2\x6C2\x14E\x3\x2\x2\x2\x6C3\x6C4\x5"+ + "\x229\x115\x2\x6C4\x6C5\x5\x203\x102\x2\x6C5\x6C6\x5\x205\x103\x2\x6C6"+ + "\x150\x3\x2\x2\x2\x6C7\x6C8\x5\x229\x115\x2\x6C8\x6C9\x5\x20B\x106\x2"+ + "\x6C9\x6CA\x5\x231\x119\x2\x6CA\x6CB\x5\x229\x115\x2\x6CB\x152\x3\x2\x2"+ + "\x2\x6CC\x6CD\x5\x229\x115\x2\x6CD\x6CE\x5\x211\x109\x2\x6CE\x6CF\x5\x20B"+ + "\x106\x2\x6CF\x6D0\x5\x21D\x10F\x2\x6D0\x154\x3\x2\x2\x2\x6D1\x6D2\x5"+ + "\x229\x115\x2\x6D2\x6D3\x5\x213\x10A\x2\x6D3\x6D4\x5\x21B\x10E\x2\x6D4"+ + "\x6D5\x5\x20B\x106\x2\x6D5\x156\x3\x2\x2\x2\x6D6\x6D7\x5\x229\x115\x2"+ + "\x6D7\x6D8\x5\x21F\x110\x2\x6D8\x158\x3\x2\x2\x2\x6D9\x6DA\x5\x229\x115"+ + "\x2\x6DA\x6DB\x5\x225\x113\x2\x6DB\x6DC\x5\x22B\x116\x2\x6DC\x6DD\x5\x20B"+ + "\x106\x2\x6DD\x15A\x3\x2\x2\x2\x6DE\x6DF\x5\x229\x115\x2\x6DF\x6E0\x5"+ + "\x233\x11A\x2\x6E0\x6E1\x5\x221\x111\x2\x6E1\x6E2\x5\x20B\x106\x2\x6E2"+ + "\x15C\x3\x2\x2\x2\x6E3\x6E4\x5\x229\x115\x2\x6E4\x6E5\x5\x233\x11A\x2"+ + "\x6E5\x6E6\x5\x221\x111\x2\x6E6\x6E7\x5\x20B\x106\x2\x6E7\x6E8\x5\x21F"+ + "\x110\x2\x6E8\x6E9\x5\x20D\x107\x2\x6E9\x15E\x3\x2\x2\x2\x6EA\x6EB\x5"+ + "\x22B\x116\x2\x6EB\x6EC\x5\x21D\x10F\x2\x6EC\x6ED\x5\x219\x10D\x2\x6ED"+ + "\x6EE\x5\x21F\x110\x2\x6EE\x6EF\x5\x203\x102\x2\x6EF\x6F0\x5\x209\x105"+ + "\x2\x6F0\x160\x3\x2\x2\x2\x6F1\x6F2\x5\x22B\x116\x2\x6F2\x6F3\x5\x21D"+ + "\x10F\x2\x6F3\x6F4\x5\x219\x10D\x2\x6F4\x6F5\x5\x21F\x110\x2\x6F5\x6F6"+ + "\x5\x207\x104\x2\x6F6\x6F7\x5\x217\x10C\x2\x6F7\x162\x3\x2\x2\x2\x6F8"+ + "\x6F9\x5\x22B\x116\x2\x6F9\x6FA\x5\x21D\x10F\x2\x6FA\x6FB\x5\x229\x115"+ + "\x2\x6FB\x6FC\x5\x213\x10A\x2\x6FC\x6FD\x5\x219\x10D\x2\x6FD\x164\x3\x2"+ + "\x2\x2\x6FE\x6FF\x5\x22D\x117\x2\x6FF\x700\x5\x203\x102\x2\x700\x701\x5"+ + "\x225\x113\x2\x701\x702\x5\x213\x10A\x2\x702\x703\x5\x203\x102\x2\x703"+ + "\x704\x5\x21D\x10F\x2\x704\x705\x5\x229\x115\x2\x705\x166\x3\x2\x2\x2"+ + "\x706\x707\x5\x22D\x117\x2\x707\x708\x5\x20B\x106\x2\x708\x709\x5\x225"+ + "\x113\x2\x709\x70A\x5\x227\x114\x2\x70A\x70B\x5\x213\x10A\x2\x70B\x70C"+ + "\x5\x21F\x110\x2\x70C\x70D\x5\x21D\x10F\x2\x70D\x168\x3\x2\x2\x2\x70E"+ + "\x70F\x5\x22F\x118\x2\x70F\x710\x5\x20B\x106\x2\x710\x711\x5\x21D\x10F"+ + "\x2\x711\x712\x5\x209\x105\x2\x712\x16A\x3\x2\x2\x2\x713\x714\x5\x22F"+ + "\x118\x2\x714\x715\x5\x211\x109\x2\x715\x716\x5\x213\x10A\x2\x716\x717"+ + "\x5\x219\x10D\x2\x717\x718\x5\x20B\x106\x2\x718\x16C\x3\x2\x2\x2\x719"+ + "\x71A\x5\x22F\x118\x2\x71A\x71B\x5\x213\x10A\x2\x71B\x71C\x5\x209\x105"+ + "\x2\x71C\x71D\x5\x229\x115\x2\x71D\x71E\x5\x211\x109\x2\x71E\x16E\x3\x2"+ + "\x2\x2\x71F\x720\x5\x22F\x118\x2\x720\x721\x5\x213\x10A\x2\x721\x722\x5"+ + "\x229\x115\x2\x722\x723\x5\x211\x109\x2\x723\x170\x3\x2\x2\x2\x724\x725"+ + "\x5\x22F\x118\x2\x725\x726\x5\x213\x10A\x2\x726\x727\x5\x229\x115\x2\x727"+ + "\x728\x5\x211\x109\x2\x728\x729\x5\x20B\x106\x2\x729\x72A\x5\x22D\x117"+ + "\x2\x72A\x72B\x5\x20B\x106\x2\x72B\x72C\x5\x21D\x10F\x2\x72C\x72D\x5\x229"+ + "\x115\x2\x72D\x72E\x5\x227\x114\x2\x72E\x172\x3\x2\x2\x2\x72F\x730\x5"+ + "\x22F\x118\x2\x730\x731\x5\x225\x113\x2\x731\x732\x5\x213\x10A\x2\x732"+ + "\x733\x5\x229\x115\x2\x733\x734\x5\x20B\x106\x2\x734\x174\x3\x2\x2\x2"+ + "\x735\x736\x5\x231\x119\x2\x736\x737\x5\x21F\x110\x2\x737\x738\x5\x225"+ + "\x113\x2\x738\x176\x3\x2\x2\x2\x739\x73A\a(\x2\x2\x73A\x178\x3\x2\x2\x2"+ + "\x73B\x73C\a<\x2\x2\x73C\x73D\a?\x2\x2\x73D\x17A\x3\x2\x2\x2\x73E\x73F"+ + "\a\x31\x2\x2\x73F\x17C\x3\x2\x2\x2\x740\x741\a^\x2\x2\x741\x17E\x3\x2"+ + "\x2\x2\x742\x743\a?\x2\x2\x743\x180\x3\x2\x2\x2\x744\x745\a@\x2\x2\x745"+ + "\x746\a?\x2\x2\x746\x182\x3\x2\x2\x2\x747\x748\a@\x2\x2\x748\x184\x3\x2"+ + "\x2\x2\x749\x74A\a>\x2\x2\x74A\x74B\a?\x2\x2\x74B\x186\x3\x2\x2\x2\x74C"+ + "\x74D\a*\x2\x2\x74D\x188\x3\x2\x2\x2\x74E\x74F\a>\x2\x2\x74F\x18A\x3\x2"+ + "\x2\x2\x750\x751\a/\x2\x2\x751\x18C\x3\x2\x2\x2\x752\x753\a,\x2\x2\x753"+ + "\x18E\x3\x2\x2\x2\x754\x755\a>\x2\x2\x755\x756\a@\x2\x2\x756\x190\x3\x2"+ + "\x2\x2\x757\x758\a-\x2\x2\x758\x192\x3\x2\x2\x2\x759\x75A\a`\x2\x2\x75A"+ + "\x194\x3\x2\x2\x2\x75B\x75C\a+\x2\x2\x75C\x196\x3\x2\x2\x2\x75D\x75E\a"+ + "]\x2\x2\x75E\x198\x3\x2\x2\x2\x75F\x760\a_\x2\x2\x760\x19A\x3\x2\x2\x2"+ + "\x761\x767\a$\x2\x2\x762\x766\n\x2\x2\x2\x763\x764\a$\x2\x2\x764\x766"+ + "\a$\x2\x2\x765\x762\x3\x2\x2\x2\x765\x763\x3\x2\x2\x2\x766\x769\x3\x2"+ + "\x2\x2\x767\x765\x3\x2\x2\x2\x767\x768\x3\x2\x2\x2\x768\x76A\x3\x2\x2"+ + "\x2\x769\x767\x3\x2\x2\x2\x76A\x76B\a$\x2\x2\x76B\x19C\x3\x2\x2\x2\x76C"+ + "\x76D\a(\x2\x2\x76D\x76E\aQ\x2\x2\x76E\x770\x3\x2\x2\x2\x76F\x771\t\x3"+ + "\x2\x2\x770\x76F\x3\x2\x2\x2\x771\x772\x3\x2\x2\x2\x772\x770\x3\x2\x2"+ + "\x2\x772\x773\x3\x2\x2\x2\x773\x775\x3\x2\x2\x2\x774\x776\a(\x2\x2\x775"+ + "\x774\x3\x2\x2\x2\x775\x776\x3\x2\x2\x2\x776\x19E\x3\x2\x2\x2\x777\x778"+ + "\a(\x2\x2\x778\x779\aJ\x2\x2\x779\x77B\x3\x2\x2\x2\x77A\x77C\t\x4\x2\x2"+ + "\x77B\x77A\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\x77B\x3\x2\x2\x2\x77D"+ + "\x77E\x3\x2\x2\x2\x77E\x780\x3\x2\x2\x2\x77F\x781\a(\x2\x2\x780\x77F\x3"+ + "\x2\x2\x2\x780\x781\x3\x2\x2\x2\x781\x1A0\x3\x2\x2\x2\x782\x785\x5\x191"+ + "\xC9\x2\x783\x785\x5\x18B\xC6\x2\x784\x782\x3\x2\x2\x2\x784\x783\x3\x2"+ + "\x2\x2\x784\x785\x3\x2\x2\x2\x785\x787\x3\x2\x2\x2\x786\x788\x5\x1FF\x100"+ + "\x2\x787\x786\x3\x2\x2\x2\x788\x789\x3\x2\x2\x2\x789\x787\x3\x2\x2\x2"+ + "\x789\x78A\x3\x2\x2\x2\x78A\x78C\x3\x2\x2\x2\x78B\x78D\t\x5\x2\x2\x78C"+ + "\x78B\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\x1A2\x3\x2\x2\x2\x78E\x792"+ + "\x5\x1A1\xD1\x2\x78F\x790\x5\x20B\x106\x2\x790\x791\x5\x1A1\xD1\x2\x791"+ + "\x793\x3\x2\x2\x2\x792\x78F\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\x1A4"+ + "\x3\x2\x2\x2\x794\x797\x5\x191\xC9\x2\x795\x797\x5\x18B\xC6\x2\x796\x794"+ + "\x3\x2\x2\x2\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x79B\x3"+ + "\x2\x2\x2\x798\x79A\x5\x1FF\x100\x2\x799\x798\x3\x2\x2\x2\x79A\x79D\x3"+ + "\x2\x2\x2\x79B\x799\x3\x2\x2\x2\x79B\x79C\x3\x2\x2\x2\x79C\x79E\x3\x2"+ + "\x2\x2\x79D\x79B\x3\x2\x2\x2\x79E\x7A0\a\x30\x2\x2\x79F\x7A1\x5\x1FF\x100"+ + "\x2\x7A0\x79F\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x7A0\x3\x2\x2\x2"+ + "\x7A2\x7A3\x3\x2\x2\x2\x7A3\x7A7\x3\x2\x2\x2\x7A4\x7A5\x5\x20B\x106\x2"+ + "\x7A5\x7A6\x5\x1A1\xD1\x2\x7A6\x7A8\x3\x2\x2\x2\x7A7\x7A4\x3\x2\x2\x2"+ + "\x7A7\x7A8\x3\x2\x2\x2\x7A8\x1A6\x3\x2\x2\x2\x7A9\x7AA\a%\x2\x2\x7AA\x7AB"+ + "\x5\x1A9\xD5\x2\x7AB\x7AC\a%\x2\x2\x7AC\x1A8\x3\x2\x2\x2\x7AD\x7AF\x5"+ + "\x1AB\xD6\x2\x7AE\x7B0\x5\x1F9\xFD\x2\x7AF\x7AE\x3\x2\x2\x2\x7AF\x7B0"+ + "\x3\x2\x2\x2\x7B0\x7B1\x3\x2\x2\x2\x7B1\x7B2\x5\x1B7\xDC\x2\x7B2\x7B6"+ + "\x3\x2\x2\x2\x7B3\x7B6\x5\x1AB\xD6\x2\x7B4\x7B6\x5\x1B7\xDC\x2\x7B5\x7AD"+ + "\x3\x2\x2\x2\x7B5\x7B3\x3\x2\x2\x2\x7B5\x7B4\x3\x2\x2\x2\x7B6\x1AA\x3"+ + "\x2\x2\x2\x7B7\x7B8\x5\x1AD\xD7\x2\x7B8\x7B9\x5\x1AF\xD8\x2\x7B9\x7BD"+ + "\x5\x1AD\xD7\x2\x7BA\x7BB\x5\x1AF\xD8\x2\x7BB\x7BC\x5\x1AD\xD7\x2\x7BC"+ + "\x7BE\x3\x2\x2\x2\x7BD\x7BA\x3\x2\x2\x2\x7BD\x7BE\x3\x2\x2\x2\x7BE\x1AC"+ + "\x3\x2\x2\x2\x7BF\x7C1\x5\x1FF\x100\x2\x7C0\x7BF\x3\x2\x2\x2\x7C1\x7C2"+ + "\x3\x2\x2\x2\x7C2\x7C0\x3\x2\x2\x2\x7C2\x7C3\x3\x2\x2\x2\x7C3\x7C6\x3"+ + "\x2\x2\x2\x7C4\x7C6\x5\x1B1\xD9\x2\x7C5\x7C0\x3\x2\x2\x2\x7C5\x7C4\x3"+ + "\x2\x2\x2\x7C6\x1AE\x3\x2\x2\x2\x7C7\x7C9\x5\x1F9\xFD\x2\x7C8\x7C7\x3"+ + "\x2\x2\x2\x7C8\x7C9\x3\x2\x2\x2\x7C9\x7CB\x3\x2\x2\x2\x7CA\x7CC\t\x6\x2"+ + "\x2\x7CB\x7CA\x3\x2\x2\x2\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CE\x3\x2\x2\x2"+ + "\x7CD\x7CF\x5\x1F9\xFD\x2\x7CE\x7CD\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2"+ + "\x7CF\x1B0\x3\x2\x2\x2\x7D0\x7D3\x5\x1B3\xDA\x2\x7D1\x7D3\x5\x1B5\xDB"+ + "\x2\x7D2\x7D0\x3\x2\x2\x2\x7D2\x7D1\x3\x2\x2\x2\x7D3\x1B2\x3\x2\x2\x2"+ + "\x7D4\x7E1\x5\x1BD\xDF\x2\x7D5\x7E1\x5\x1BF\xE0\x2\x7D6\x7E1\x5\x1C1\xE1"+ + "\x2\x7D7\x7E1\x5\x1C3\xE2\x2\x7D8\x7E1\x5\x1C5\xE3\x2\x7D9\x7E1\x5\x1C7"+ + "\xE4\x2\x7DA\x7E1\x5\x1C9\xE5\x2\x7DB\x7E1\x5\x1CB\xE6\x2\x7DC\x7E1\x5"+ + "\x1CD\xE7\x2\x7DD\x7E1\x5\x1CF\xE8\x2\x7DE\x7E1\x5\x1D1\xE9\x2\x7DF\x7E1"+ + "\x5\x1D3\xEA\x2\x7E0\x7D4\x3\x2\x2\x2\x7E0\x7D5\x3\x2\x2\x2\x7E0\x7D6"+ + "\x3\x2\x2\x2\x7E0\x7D7\x3\x2\x2\x2\x7E0\x7D8\x3\x2\x2\x2\x7E0\x7D9\x3"+ + "\x2\x2\x2\x7E0\x7DA\x3\x2\x2\x2\x7E0\x7DB\x3\x2\x2\x2\x7E0\x7DC\x3\x2"+ + "\x2\x2\x7E0\x7DD\x3\x2\x2\x2\x7E0\x7DE\x3\x2\x2\x2\x7E0\x7DF\x3\x2\x2"+ + "\x2\x7E1\x1B4\x3\x2\x2\x2\x7E2\x7EE\x5\x1D5\xEB\x2\x7E3\x7EE\x5\x1D7\xEC"+ + "\x2\x7E4\x7EE\x5\x1D9\xED\x2\x7E5\x7EE\x5\x1DB\xEE\x2\x7E6\x7EE\x5\x1DD"+ + "\xEF\x2\x7E7\x7EE\x5\x1DF\xF0\x2\x7E8\x7EE\x5\x1E1\xF1\x2\x7E9\x7EE\x5"+ + "\x1E3\xF2\x2\x7EA\x7EE\x5\x1E5\xF3\x2\x7EB\x7EE\x5\x1E7\xF4\x2\x7EC\x7EE"+ + "\x5\x1E9\xF5\x2\x7ED\x7E2\x3\x2\x2\x2\x7ED\x7E3\x3\x2\x2\x2\x7ED\x7E4"+ + "\x3\x2\x2\x2\x7ED\x7E5\x3\x2\x2\x2\x7ED\x7E6\x3\x2\x2\x2\x7ED\x7E7\x3"+ + "\x2\x2\x2\x7ED\x7E8\x3\x2\x2\x2\x7ED\x7E9\x3\x2\x2\x2\x7ED\x7EA\x3\x2"+ + "\x2\x2\x7ED\x7EB\x3\x2\x2\x2\x7ED\x7EC\x3\x2\x2\x2\x7EE\x1B6\x3\x2\x2"+ + "\x2\x7EF\x7F1\x5\x1FF\x100\x2\x7F0\x7EF\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2"+ + "\x2\x7F2\x7F0\x3\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F4\x3\x2\x2\x2"+ + "\x7F4\x7F5\x5\x1BB\xDE\x2\x7F5\x80D\x3\x2\x2\x2\x7F6\x7F8\x5\x1FF\x100"+ + "\x2\x7F7\x7F6\x3\x2\x2\x2\x7F8\x7F9\x3\x2\x2\x2\x7F9\x7F7\x3\x2\x2\x2"+ + "\x7F9\x7FA\x3\x2\x2\x2\x7FA\x7FB\x3\x2\x2\x2\x7FB\x7FD\x5\x1B9\xDD\x2"+ + "\x7FC\x7FE\x5\x1FF\x100\x2\x7FD\x7FC\x3\x2\x2\x2\x7FE\x7FF\x3\x2\x2\x2"+ + "\x7FF\x7FD\x3\x2\x2\x2\x7FF\x800\x3\x2\x2\x2\x800\x807\x3\x2\x2\x2\x801"+ + "\x803\x5\x1B9\xDD\x2\x802\x804\x5\x1FF\x100\x2\x803\x802\x3\x2\x2\x2\x804"+ + "\x805\x3\x2\x2\x2\x805\x803\x3\x2\x2\x2\x805\x806\x3\x2\x2\x2\x806\x808"+ + "\x3\x2\x2\x2\x807\x801\x3\x2\x2\x2\x807\x808\x3\x2\x2\x2\x808\x80A\x3"+ + "\x2\x2\x2\x809\x80B\x5\x1BB\xDE\x2\x80A\x809\x3\x2\x2\x2\x80A\x80B\x3"+ + "\x2\x2\x2\x80B\x80D\x3\x2\x2\x2\x80C\x7F0\x3\x2\x2\x2\x80C\x7F7\x3\x2"+ + "\x2\x2\x80D\x1B8\x3\x2\x2\x2\x80E\x810\x5\x1F9\xFD\x2\x80F\x80E\x3\x2"+ + "\x2\x2\x80F\x810\x3\x2\x2\x2\x810\x811\x3\x2\x2\x2\x811\x813\t\a\x2\x2"+ + "\x812\x814\x5\x1F9\xFD\x2\x813\x812\x3\x2\x2\x2\x813\x814\x3\x2\x2\x2"+ + "\x814\x1BA\x3\x2\x2\x2\x815\x817\x5\x1F9\xFD\x2\x816\x815\x3\x2\x2\x2"+ + "\x816\x817\x3\x2\x2\x2\x817\x820\x3\x2\x2\x2\x818\x819\x5\x203\x102\x2"+ + "\x819\x81A\x5\x21B\x10E\x2\x81A\x821\x3\x2\x2\x2\x81B\x81C\x5\x221\x111"+ + "\x2\x81C\x81D\x5\x21B\x10E\x2\x81D\x821\x3\x2\x2\x2\x81E\x821\x5\x203"+ + "\x102\x2\x81F\x821\x5\x221\x111\x2\x820\x818\x3\x2\x2\x2\x820\x81B\x3"+ + "\x2\x2\x2\x820\x81E\x3\x2\x2\x2\x820\x81F\x3\x2\x2\x2\x821\x1BC\x3\x2"+ + "\x2\x2\x822\x823\x5\x215\x10B\x2\x823\x824\x5\x203\x102\x2\x824\x825\x5"+ + "\x21D\x10F\x2\x825\x826\x5\x22B\x116\x2\x826\x827\x5\x203\x102\x2\x827"+ + "\x828\x5\x225\x113\x2\x828\x829\x5\x233\x11A\x2\x829\x1BE\x3\x2\x2\x2"+ + "\x82A\x82B\x5\x20D\x107\x2\x82B\x82C\x5\x20B\x106\x2\x82C\x82D\x5\x205"+ + "\x103\x2\x82D\x82E\x5\x225\x113\x2\x82E\x82F\x5\x22B\x116\x2\x82F\x830"+ + "\x5\x203\x102\x2\x830\x831\x5\x225\x113\x2\x831\x832\x5\x233\x11A\x2\x832"+ + "\x1C0\x3\x2\x2\x2\x833\x834\x5\x21B\x10E\x2\x834\x835\x5\x203\x102\x2"+ + "\x835\x836\x5\x225\x113\x2\x836\x837\x5\x207\x104\x2\x837\x838\x5\x211"+ + "\x109\x2\x838\x1C2\x3\x2\x2\x2\x839\x83A\x5\x203\x102\x2\x83A\x83B\x5"+ + "\x221\x111\x2\x83B\x83C\x5\x225\x113\x2\x83C\x83D\x5\x213\x10A\x2\x83D"+ + "\x83E\x5\x219\x10D\x2\x83E\x1C4\x3\x2\x2\x2\x83F\x840\x5\x21B\x10E\x2"+ + "\x840\x841\x5\x203\x102\x2\x841\x842\x5\x233\x11A\x2\x842\x1C6\x3\x2\x2"+ + "\x2\x843\x844\x5\x215\x10B\x2\x844\x845\x5\x22B\x116\x2\x845\x846\x5\x21D"+ + "\x10F\x2\x846\x847\x5\x20B\x106\x2\x847\x1C8\x3\x2\x2\x2\x848\x849\x5"+ + "\x215\x10B\x2\x849\x84A\x5\x22B\x116\x2\x84A\x84B\x5\x219\x10D\x2\x84B"+ + "\x84C\x5\x233\x11A\x2\x84C\x1CA\x3\x2\x2\x2\x84D\x84E\x5\x203\x102\x2"+ + "\x84E\x84F\x5\x22B\x116\x2\x84F\x850\x5\x20F\x108\x2\x850\x851\x5\x22B"+ + "\x116\x2\x851\x852\x5\x227\x114\x2\x852\x853\x5\x229\x115\x2\x853\x1CC"+ + "\x3\x2\x2\x2\x854\x855\x5\x227\x114\x2\x855\x856\x5\x20B\x106\x2\x856"+ + "\x857\x5\x221\x111\x2\x857\x858\x5\x229\x115\x2\x858\x859\x5\x20B\x106"+ + "\x2\x859\x85A\x5\x21B\x10E\x2\x85A\x85B\x5\x205\x103\x2\x85B\x85C\x5\x20B"+ + "\x106\x2\x85C\x85D\x5\x225\x113\x2\x85D\x1CE\x3\x2\x2\x2\x85E\x85F\x5"+ + "\x21F\x110\x2\x85F\x860\x5\x207\x104\x2\x860\x861\x5\x229\x115\x2\x861"+ + "\x862\x5\x21F\x110\x2\x862\x863\x5\x205\x103\x2\x863\x864\x5\x20B\x106"+ + "\x2\x864\x865\x5\x225\x113\x2\x865\x1D0\x3\x2\x2\x2\x866\x867\x5\x21D"+ + "\x10F\x2\x867\x868\x5\x21F\x110\x2\x868\x869\x5\x22D\x117\x2\x869\x86A"+ + "\x5\x20B\x106\x2\x86A\x86B\x5\x21B\x10E\x2\x86B\x86C\x5\x205\x103\x2\x86C"+ + "\x86D\x5\x20B\x106\x2\x86D\x86E\x5\x225\x113\x2\x86E\x1D2\x3\x2\x2\x2"+ + "\x86F\x870\x5\x209\x105\x2\x870\x871\x5\x20B\x106\x2\x871\x872\x5\x207"+ + "\x104\x2\x872\x873\x5\x20B\x106\x2\x873\x874\x5\x21B\x10E\x2\x874\x875"+ + "\x5\x205\x103\x2\x875\x876\x5\x20B\x106\x2\x876\x877\x5\x225\x113\x2\x877"+ + "\x1D4\x3\x2\x2\x2\x878\x879\x5\x215\x10B\x2\x879\x87A\x5\x203\x102\x2"+ + "\x87A\x87B\x5\x21D\x10F\x2\x87B\x1D6\x3\x2\x2\x2\x87C\x87D\x5\x20D\x107"+ + "\x2\x87D\x87E\x5\x20B\x106\x2\x87E\x87F\x5\x205\x103\x2\x87F\x1D8\x3\x2"+ + "\x2\x2\x880\x881\x5\x21B\x10E\x2\x881\x882\x5\x203\x102\x2\x882\x883\x5"+ + "\x225\x113\x2\x883\x1DA\x3\x2\x2\x2\x884\x885\x5\x203\x102\x2\x885\x886"+ + "\x5\x221\x111\x2\x886\x887\x5\x225\x113\x2\x887\x1DC\x3\x2\x2\x2\x888"+ + "\x889\x5\x215\x10B\x2\x889\x88A\x5\x22B\x116\x2\x88A\x88B\x5\x21D\x10F"+ + "\x2\x88B\x1DE\x3\x2\x2\x2\x88C\x88D\x5\x215\x10B\x2\x88D\x88E\x5\x22B"+ + "\x116\x2\x88E\x88F\x5\x219\x10D\x2\x88F\x1E0\x3\x2\x2\x2\x890\x891\x5"+ + "\x203\x102\x2\x891\x892\x5\x22B\x116\x2\x892\x893\x5\x20F\x108\x2\x893"+ + "\x1E2\x3\x2\x2\x2\x894\x895\x5\x227\x114\x2\x895\x896\x5\x20B\x106\x2"+ + "\x896\x897\x5\x221\x111\x2\x897\x1E4\x3\x2\x2\x2\x898\x899\x5\x21F\x110"+ + "\x2\x899\x89A\x5\x207\x104\x2\x89A\x89B\x5\x229\x115\x2\x89B\x1E6\x3\x2"+ + "\x2\x2\x89C\x89D\x5\x21D\x10F\x2\x89D\x89E\x5\x21F\x110\x2\x89E\x89F\x5"+ + "\x22D\x117\x2\x89F\x1E8\x3\x2\x2\x2\x8A0\x8A1\x5\x209\x105\x2\x8A1\x8A2"+ + "\x5\x20B\x106\x2\x8A2\x8A3\x5\x207\x104\x2\x8A3\x1EA\x3\x2\x2\x2\x8A4"+ + "\x8A6\t\b\x2\x2\x8A5\x8A4\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2\x2\x8A7\x8A5"+ + "\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AB\x5"+ + "\x1F7\xFC\x2\x8AA\x8AC\a\xF\x2\x2\x8AB\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2"+ + "\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AE\a\f\x2\x2\x8AE\x8AF\x3\x2\x2\x2"+ + "\x8AF\x8B0\b\xF6\x2\x2\x8B0\x1EC\x3\x2\x2\x2\x8B1\x8B3\t\t\x2\x2\x8B2"+ + "\x8B1\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B2\x3\x2\x2\x2\x8B4\x8B5"+ + "\x3\x2\x2\x2\x8B5\x1EE\x3\x2\x2\x2\x8B6\x8B8\x5\x1F5\xFB\x2\x8B7\x8B6"+ + "\x3\x2\x2\x2\x8B7\x8B8\x3\x2\x2\x2\x8B8\x8B9\x3\x2\x2\x2\x8B9\x8BA\x5"+ + "\x125\x93\x2\x8BA\x8BF\x5\x1F9\xFD\x2\x8BB\x8BE\x5\x1EB\xF6\x2\x8BC\x8BE"+ + "\n\t\x2\x2\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2\x2\x2\x8BE\x8C1\x3\x2"+ + "\x2\x2\x8BF\x8BD\x3\x2\x2\x2\x8BF\x8C0\x3\x2\x2\x2\x8C0\x1F0\x3\x2\x2"+ + "\x2\x8C1\x8BF\x3\x2\x2\x2\x8C2\x8C7\x5\x1F3\xFA\x2\x8C3\x8C6\x5\x1EB\xF6"+ + "\x2\x8C4\x8C6\n\t\x2\x2\x8C5\x8C3\x3\x2\x2\x2\x8C5\x8C4\x3\x2\x2\x2\x8C6"+ + "\x8C9\x3\x2\x2\x2\x8C7\x8C5\x3\x2\x2\x2\x8C7\x8C8\x3\x2\x2\x2\x8C8\x1F2"+ + "\x3\x2\x2\x2\x8C9\x8C7\x3\x2\x2\x2\x8CA\x8CB\a)\x2\x2\x8CB\x1F4\x3\x2"+ + "\x2\x2\x8CC\x8CD\a<\x2\x2\x8CD\x1F6\x3\x2\x2\x2\x8CE\x8CF\a\x61\x2\x2"+ + "\x8CF\x1F8\x3\x2\x2\x2\x8D0\x8D3\t\b\x2\x2\x8D1\x8D3\x5\x1EB\xF6\x2\x8D2"+ + "\x8D0\x3\x2\x2\x2\x8D2\x8D1\x3\x2\x2\x2\x8D3\x8D4\x3\x2\x2\x2\x8D4\x8D2"+ + "\x3\x2\x2\x2\x8D4\x8D5\x3\x2\x2\x2\x8D5\x1FA\x3\x2\x2\x2\x8D6\x8D8\n\n"+ + "\x2\x2\x8D7\x8D6\x3\x2\x2\x2\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8D7\x3\x2\x2"+ + "\x2\x8D9\x8DA\x3\x2\x2\x2\x8DA\x8E4\x3\x2\x2\x2\x8DB\x8DD\x5\x197\xCC"+ + "\x2\x8DC\x8DE\n\v\x2\x2\x8DD\x8DC\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF"+ + "\x8DD\x3\x2\x2\x2\x8DF\x8E0\x3\x2\x2\x2\x8E0\x8E1\x3\x2\x2\x2\x8E1\x8E2"+ + "\x5\x199\xCD\x2\x8E2\x8E4\x3\x2\x2\x2\x8E3\x8D7\x3\x2\x2\x2\x8E3\x8DB"+ + "\x3\x2\x2\x2\x8E4\x1FC\x3\x2\x2\x2\x8E5\x8E6\t\f\x2\x2\x8E6\x1FE\x3\x2"+ + "\x2\x2\x8E7\x8E8\t\r\x2\x2\x8E8\x200\x3\x2\x2\x2\x8E9\x8EA\t\xE\x2\x2"+ + "\x8EA\x202\x3\x2\x2\x2\x8EB\x8EC\t\xF\x2\x2\x8EC\x204\x3\x2\x2\x2\x8ED"+ + "\x8EE\t\x10\x2\x2\x8EE\x206\x3\x2\x2\x2\x8EF\x8F0\t\x11\x2\x2\x8F0\x208"+ + "\x3\x2\x2\x2\x8F1\x8F2\t\x12\x2\x2\x8F2\x20A\x3\x2\x2\x2\x8F3\x8F4\t\x13"+ + "\x2\x2\x8F4\x20C\x3\x2\x2\x2\x8F5\x8F6\t\x14\x2\x2\x8F6\x20E\x3\x2\x2"+ + "\x2\x8F7\x8F8\t\x15\x2\x2\x8F8\x210\x3\x2\x2\x2\x8F9\x8FA\t\x16\x2\x2"+ + "\x8FA\x212\x3\x2\x2\x2\x8FB\x8FC\t\x17\x2\x2\x8FC\x214\x3\x2\x2\x2\x8FD"+ + "\x8FE\t\x18\x2\x2\x8FE\x216\x3\x2\x2\x2\x8FF\x900\t\x19\x2\x2\x900\x218"+ + "\x3\x2\x2\x2\x901\x902\t\x1A\x2\x2\x902\x21A\x3\x2\x2\x2\x903\x904\t\x1B"+ + "\x2\x2\x904\x21C\x3\x2\x2\x2\x905\x906\t\x1C\x2\x2\x906\x21E\x3\x2\x2"+ + "\x2\x907\x908\t\x1D\x2\x2\x908\x220\x3\x2\x2\x2\x909\x90A\t\x1E\x2\x2"+ + "\x90A\x222\x3\x2\x2\x2\x90B\x90C\t\x1F\x2\x2\x90C\x224\x3\x2\x2\x2\x90D"+ + "\x90E\t \x2\x2\x90E\x226\x3\x2\x2\x2\x90F\x910\t!\x2\x2\x910\x228\x3\x2"+ + "\x2\x2\x911\x912\t\"\x2\x2\x912\x22A\x3\x2\x2\x2\x913\x914\t#\x2\x2\x914"+ + "\x22C\x3\x2\x2\x2\x915\x916\t$\x2\x2\x916\x22E\x3\x2\x2\x2\x917\x918\t"+ + "%\x2\x2\x918\x230\x3\x2\x2\x2\x919\x91A\t&\x2\x2\x91A\x232\x3\x2\x2\x2"+ + "\x91B\x91C\t\'\x2\x2\x91C\x234\x3\x2\x2\x2\x91D\x91E\t(\x2\x2\x91E\x236"+ + "\x3\x2\x2\x2\x35\x2\x502\x765\x767\x772\x775\x77D\x780\x784\x789\x78C"+ + "\x792\x796\x79B\x7A2\x7A7\x7AF\x7B5\x7BD\x7C2\x7C5\x7C8\x7CB\x7CE\x7D2"+ + "\x7E0\x7ED\x7F2\x7F9\x7FF\x805\x807\x80A\x80C\x80F\x813\x816\x820\x8A7"+ + "\x8AB\x8B4\x8B7\x8BD\x8BF\x8C5\x8C7\x8D2\x8D4\x8D9\x8DF\x8E3\x3\b\x2\x2"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAListener.cs b/Rubberduck.Parsing/Grammar/VBAListener.cs index e7cdb159b4..117fb36a82 100644 --- a/Rubberduck.Parsing/Grammar/VBAListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAListener.cs @@ -1051,6 +1051,17 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); + /// /// Enter a parse tree produced by . /// @@ -1327,6 +1338,17 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); + /// /// Enter a parse tree produced by . /// @@ -1419,6 +1441,17 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); + /// /// Enter a parse tree produced by . /// @@ -1735,6 +1768,17 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); + /// /// Enter a parse tree produced by . /// @@ -1792,6 +1836,17 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitMidStmt([NotNull] VBAParser.MidStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); + /// /// Enter a parse tree produced by the vsPow /// labeled alternative in . @@ -1941,6 +1996,17 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroStmt([NotNull] VBAParser.MacroStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroStmt([NotNull] VBAParser.MacroStmtContext context); + /// /// Enter a parse tree produced by the vsMid /// labeled alternative in . diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index e40ad5770b..a762ae4b30 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -43,29 +43,30 @@ public const int FRIEND=76, FOR=77, FUNCTION=78, GET=79, GLOBAL=80, GOSUB=81, GOTO=82, IF=83, IMP=84, IMPLEMENTS=85, IN=86, INPUT=87, IS=88, INTEGER=89, KILL=90, LOAD=91, LOCK=92, LONG=93, LOOP=94, LEN=95, LET=96, LIB=97, LIKE=98, LINE_INPUT=99, - LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, ME=104, - MID=105, MKDIR=106, MOD=107, NAME=108, NEXT=109, NEW=110, NOT=111, NOTHING=112, - NULL=113, ON=114, ON_ERROR=115, ON_LOCAL_ERROR=116, OPEN=117, OPTIONAL=118, - OPTION_BASE=119, OPTION_EXPLICIT=120, OPTION_COMPARE=121, OPTION_PRIVATE_MODULE=122, - OR=123, OUTPUT=124, PARAMARRAY=125, PRESERVE=126, PRINT=127, PRIVATE=128, - PROPERTY_GET=129, PROPERTY_LET=130, PROPERTY_SET=131, PTRSAFE=132, PUBLIC=133, - PUT=134, RANDOM=135, RANDOMIZE=136, RAISEEVENT=137, READ=138, READ_WRITE=139, - REDIM=140, REM=141, RESET=142, RESUME=143, RETURN=144, RMDIR=145, RSET=146, - SAVEPICTURE=147, SAVESETTING=148, SEEK=149, SELECT=150, SENDKEYS=151, - SET=152, SETATTR=153, SHARED=154, SINGLE=155, SPC=156, STATIC=157, STEP=158, - STOP=159, STRING=160, SUB=161, TAB=162, TEXT=163, THEN=164, TIME=165, - TO=166, TRUE=167, TYPE=168, TYPEOF=169, UNLOAD=170, UNLOCK=171, UNTIL=172, - VARIANT=173, VERSION=174, WEND=175, WHILE=176, WIDTH=177, WITH=178, WITHEVENTS=179, - WRITE=180, XOR=181, AMPERSAND=182, ASSIGN=183, DIV=184, INTDIV=185, EQ=186, - GEQ=187, GT=188, LEQ=189, LPAREN=190, LT=191, MINUS=192, MULT=193, NEQ=194, - PLUS=195, POW=196, RPAREN=197, L_SQUARE_BRACKET=198, R_SQUARE_BRACKET=199, - STRINGLITERAL=200, OCTLITERAL=201, HEXLITERAL=202, SHORTLITERAL=203, INTEGERLITERAL=204, - DOUBLELITERAL=205, DATELITERAL=206, JANUARY=207, FEBRUARY=208, MARCH=209, - APRIL=210, MAY=211, JUNE=212, JULY=213, AUGUST=214, SEPTEMBER=215, OCTOBER=216, - NOVEMBER=217, DECEMBER=218, JAN=219, FEB=220, MAR=221, APR=222, JUN=223, - JUL=224, AUG=225, SEP=226, OCT=227, NOV=228, DEC=229, LINE_CONTINUATION=230, - NEWLINE=231, REMCOMMENT=232, COMMENT=233, SINGLEQUOTE=234, COLON=235, - UNDERSCORE=236, WS=237, IDENTIFIER=238; + LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, MACRO_CONST=104, + MACRO_IF=105, MACRO_ELSEIF=106, MACRO_ELSE=107, MACRO_END_IF=108, ME=109, + MID=110, MKDIR=111, MOD=112, NAME=113, NEXT=114, NEW=115, NOT=116, NOTHING=117, + NULL=118, ON=119, ON_ERROR=120, ON_LOCAL_ERROR=121, OPEN=122, OPTIONAL=123, + OPTION_BASE=124, OPTION_EXPLICIT=125, OPTION_COMPARE=126, OPTION_PRIVATE_MODULE=127, + OR=128, OUTPUT=129, PARAMARRAY=130, PRESERVE=131, PRINT=132, PRIVATE=133, + PROPERTY_GET=134, PROPERTY_LET=135, PROPERTY_SET=136, PTRSAFE=137, PUBLIC=138, + PUT=139, RANDOM=140, RANDOMIZE=141, RAISEEVENT=142, READ=143, READ_WRITE=144, + REDIM=145, REM=146, RESET=147, RESUME=148, RETURN=149, RMDIR=150, RSET=151, + SAVEPICTURE=152, SAVESETTING=153, SEEK=154, SELECT=155, SENDKEYS=156, + SET=157, SETATTR=158, SHARED=159, SINGLE=160, SPC=161, STATIC=162, STEP=163, + STOP=164, STRING=165, SUB=166, TAB=167, TEXT=168, THEN=169, TIME=170, + TO=171, TRUE=172, TYPE=173, TYPEOF=174, UNLOAD=175, UNLOCK=176, UNTIL=177, + VARIANT=178, VERSION=179, WEND=180, WHILE=181, WIDTH=182, WITH=183, WITHEVENTS=184, + WRITE=185, XOR=186, AMPERSAND=187, ASSIGN=188, DIV=189, INTDIV=190, EQ=191, + GEQ=192, GT=193, LEQ=194, LPAREN=195, LT=196, MINUS=197, MULT=198, NEQ=199, + PLUS=200, POW=201, RPAREN=202, L_SQUARE_BRACKET=203, R_SQUARE_BRACKET=204, + STRINGLITERAL=205, OCTLITERAL=206, HEXLITERAL=207, SHORTLITERAL=208, INTEGERLITERAL=209, + DOUBLELITERAL=210, DATELITERAL=211, JANUARY=212, FEBRUARY=213, MARCH=214, + APRIL=215, MAY=216, JUNE=217, JULY=218, AUGUST=219, SEPTEMBER=220, OCTOBER=221, + NOVEMBER=222, DECEMBER=223, JAN=224, FEB=225, MAR=226, APR=227, JUN=228, + JUL=229, AUG=230, SEP=231, OCT=232, NOV=233, DEC=234, LINE_CONTINUATION=235, + NEWLINE=236, REMCOMMENT=237, COMMENT=238, SINGLEQUOTE=239, COLON=240, + UNDERSCORE=241, WS=242, IDENTIFIER=243; public static readonly string[] tokenNames = { "", "'@'", "'!'", "'#'", "'$'", "'%'", "';'", "','", "'.'", "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", @@ -80,98 +81,102 @@ public const int "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", - "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", - "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", - "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", - "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", - "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", - "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", - "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", - "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", - "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", - "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", - "WRITE", "XOR", "'&'", "':='", "'/'", "'\\'", "'='", "'>='", "'>'", "'<='", - "'('", "'<'", "'-'", "'*'", "'<>'", "'+'", "'^'", "')'", "'['", "']'", - "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", - "DOUBLELITERAL", "DATELITERAL", "JANUARY", "FEBRUARY", "MARCH", "APRIL", - "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", - "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", - "DEC", "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", - "':'", "'_'", "WS", "IDENTIFIER" + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_CONST", "MACRO_IF", "MACRO_ELSEIF", + "MACRO_ELSE", "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", + "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", + "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", + "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", + "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", + "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", + "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", + "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", + "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", + "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", + "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "'&'", + "':='", "'/'", "'\\'", "'='", "'>='", "'>'", "'<='", "'('", "'<'", "'-'", + "'*'", "'<>'", "'+'", "'^'", "')'", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", + "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", + "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", + "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", "MAR", "APR", + "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "LINE_CONTINUATION", + "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "':'", "'_'", "WS", "IDENTIFIER" }; public const int RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, RULE_moduleConfigElement = 4, RULE_moduleAttributes = 5, RULE_moduleDeclarations = 6, - RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_moduleBody = 9, - RULE_moduleBodyElement = 10, RULE_attributeStmt = 11, RULE_block = 12, - RULE_blockStmt = 13, RULE_appactivateStmt = 14, RULE_beepStmt = 15, RULE_chdirStmt = 16, - RULE_chdriveStmt = 17, RULE_closeStmt = 18, RULE_constStmt = 19, RULE_constSubStmt = 20, - RULE_dateStmt = 21, RULE_declareStmt = 22, RULE_deftypeStmt = 23, RULE_deleteSettingStmt = 24, - RULE_doLoopStmt = 25, RULE_endStmt = 26, RULE_enumerationStmt = 27, RULE_enumerationStmt_Constant = 28, - RULE_eraseStmt = 29, RULE_errorStmt = 30, RULE_eventStmt = 31, RULE_exitStmt = 32, - RULE_filecopyStmt = 33, RULE_forEachStmt = 34, RULE_forNextStmt = 35, - RULE_functionStmt = 36, RULE_getStmt = 37, RULE_goSubStmt = 38, RULE_goToStmt = 39, - RULE_ifThenElseStmt = 40, RULE_ifBlockStmt = 41, RULE_ifConditionStmt = 42, - RULE_ifElseIfBlockStmt = 43, RULE_ifElseBlockStmt = 44, RULE_implementsStmt = 45, - RULE_inputStmt = 46, RULE_killStmt = 47, RULE_letStmt = 48, RULE_lineInputStmt = 49, - RULE_loadStmt = 50, RULE_lockStmt = 51, RULE_lsetStmt = 52, RULE_midStmt = 53, - RULE_mkdirStmt = 54, RULE_nameStmt = 55, RULE_onErrorStmt = 56, RULE_onGoToStmt = 57, - RULE_onGoSubStmt = 58, RULE_openStmt = 59, RULE_outputList = 60, RULE_outputList_Expression = 61, - RULE_printStmt = 62, RULE_propertyGetStmt = 63, RULE_propertySetStmt = 64, - RULE_propertyLetStmt = 65, RULE_putStmt = 66, RULE_raiseEventStmt = 67, - RULE_randomizeStmt = 68, RULE_redimStmt = 69, RULE_redimSubStmt = 70, - RULE_resetStmt = 71, RULE_resumeStmt = 72, RULE_returnStmt = 73, RULE_rmdirStmt = 74, - RULE_rsetStmt = 75, RULE_savepictureStmt = 76, RULE_saveSettingStmt = 77, - RULE_seekStmt = 78, RULE_selectCaseStmt = 79, RULE_sC_Selection = 80, - RULE_sC_Case = 81, RULE_sC_Cond = 82, RULE_sendkeysStmt = 83, RULE_setattrStmt = 84, - RULE_setStmt = 85, RULE_stopStmt = 86, RULE_subStmt = 87, RULE_timeStmt = 88, - RULE_typeStmt = 89, RULE_typeStmt_Element = 90, RULE_typeOfStmt = 91, - RULE_unloadStmt = 92, RULE_unlockStmt = 93, RULE_valueStmt = 94, RULE_variableStmt = 95, - RULE_variableListStmt = 96, RULE_variableSubStmt = 97, RULE_whileWendStmt = 98, - RULE_widthStmt = 99, RULE_withStmt = 100, RULE_writeStmt = 101, RULE_fileNumber = 102, - RULE_explicitCallStmt = 103, RULE_eCS_ProcedureCall = 104, RULE_eCS_MemberProcedureCall = 105, - RULE_implicitCallStmt_InBlock = 106, RULE_iCS_B_MemberProcedureCall = 107, - RULE_iCS_B_ProcedureCall = 108, RULE_implicitCallStmt_InStmt = 109, RULE_iCS_S_VariableOrProcedureCall = 110, - RULE_iCS_S_ProcedureOrArrayCall = 111, RULE_iCS_S_MembersCall = 112, RULE_iCS_S_MemberCall = 113, - RULE_iCS_S_DictionaryCall = 114, RULE_argsCall = 115, RULE_argCall = 116, - RULE_dictionaryCallStmt = 117, RULE_argList = 118, RULE_arg = 119, RULE_argDefaultValue = 120, - RULE_subscripts = 121, RULE_subscript = 122, RULE_ambiguousIdentifier = 123, - RULE_asTypeClause = 124, RULE_baseType = 125, RULE_certainIdentifier = 126, - RULE_comparisonOperator = 127, RULE_complexType = 128, RULE_fieldLength = 129, - RULE_letterrange = 130, RULE_lineLabel = 131, RULE_literal = 132, RULE_type = 133, - RULE_typeHint = 134, RULE_visibility = 135, RULE_ambiguousKeyword = 136, - RULE_remComment = 137, RULE_comment = 138, RULE_endOfLine = 139, RULE_endOfStatement = 140; + RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_macroStmt = 9, + RULE_moduleBody = 10, RULE_moduleBodyElement = 11, RULE_attributeStmt = 12, + RULE_block = 13, RULE_blockStmt = 14, RULE_appactivateStmt = 15, RULE_beepStmt = 16, + RULE_chdirStmt = 17, RULE_chdriveStmt = 18, RULE_closeStmt = 19, RULE_constStmt = 20, + RULE_constSubStmt = 21, RULE_dateStmt = 22, RULE_declareStmt = 23, RULE_deftypeStmt = 24, + RULE_deleteSettingStmt = 25, RULE_doLoopStmt = 26, RULE_endStmt = 27, + RULE_enumerationStmt = 28, RULE_enumerationStmt_Constant = 29, RULE_eraseStmt = 30, + RULE_errorStmt = 31, RULE_eventStmt = 32, RULE_exitStmt = 33, RULE_filecopyStmt = 34, + RULE_forEachStmt = 35, RULE_forNextStmt = 36, RULE_functionStmt = 37, + RULE_getStmt = 38, RULE_goSubStmt = 39, RULE_goToStmt = 40, RULE_ifThenElseStmt = 41, + RULE_ifBlockStmt = 42, RULE_ifConditionStmt = 43, RULE_ifElseIfBlockStmt = 44, + RULE_ifElseBlockStmt = 45, RULE_implementsStmt = 46, RULE_inputStmt = 47, + RULE_killStmt = 48, RULE_letStmt = 49, RULE_lineInputStmt = 50, RULE_loadStmt = 51, + RULE_lockStmt = 52, RULE_lsetStmt = 53, RULE_macroConstStmt = 54, RULE_macroIfThenElseStmt = 55, + RULE_macroIfBlockStmt = 56, RULE_macroElseIfBlockStmt = 57, RULE_macroElseBlockStmt = 58, + RULE_midStmt = 59, RULE_mkdirStmt = 60, RULE_nameStmt = 61, RULE_onErrorStmt = 62, + RULE_onGoToStmt = 63, RULE_onGoSubStmt = 64, RULE_openStmt = 65, RULE_outputList = 66, + RULE_outputList_Expression = 67, RULE_printStmt = 68, RULE_propertyGetStmt = 69, + RULE_propertySetStmt = 70, RULE_propertyLetStmt = 71, RULE_putStmt = 72, + RULE_raiseEventStmt = 73, RULE_randomizeStmt = 74, RULE_redimStmt = 75, + RULE_redimSubStmt = 76, RULE_resetStmt = 77, RULE_resumeStmt = 78, RULE_returnStmt = 79, + RULE_rmdirStmt = 80, RULE_rsetStmt = 81, RULE_savepictureStmt = 82, RULE_saveSettingStmt = 83, + RULE_seekStmt = 84, RULE_selectCaseStmt = 85, RULE_sC_Selection = 86, + RULE_sC_Case = 87, RULE_sC_Cond = 88, RULE_sendkeysStmt = 89, RULE_setattrStmt = 90, + RULE_setStmt = 91, RULE_stopStmt = 92, RULE_subStmt = 93, RULE_timeStmt = 94, + RULE_typeStmt = 95, RULE_typeStmt_Element = 96, RULE_typeOfStmt = 97, + RULE_unloadStmt = 98, RULE_unlockStmt = 99, RULE_valueStmt = 100, RULE_variableStmt = 101, + RULE_variableListStmt = 102, RULE_variableSubStmt = 103, RULE_whileWendStmt = 104, + RULE_widthStmt = 105, RULE_withStmt = 106, RULE_writeStmt = 107, RULE_fileNumber = 108, + RULE_explicitCallStmt = 109, RULE_eCS_ProcedureCall = 110, RULE_eCS_MemberProcedureCall = 111, + RULE_implicitCallStmt_InBlock = 112, RULE_iCS_B_MemberProcedureCall = 113, + RULE_iCS_B_ProcedureCall = 114, RULE_implicitCallStmt_InStmt = 115, RULE_iCS_S_VariableOrProcedureCall = 116, + RULE_iCS_S_ProcedureOrArrayCall = 117, RULE_iCS_S_MembersCall = 118, RULE_iCS_S_MemberCall = 119, + RULE_iCS_S_DictionaryCall = 120, RULE_argsCall = 121, RULE_argCall = 122, + RULE_dictionaryCallStmt = 123, RULE_argList = 124, RULE_arg = 125, RULE_argDefaultValue = 126, + RULE_subscripts = 127, RULE_subscript = 128, RULE_ambiguousIdentifier = 129, + RULE_asTypeClause = 130, RULE_baseType = 131, RULE_certainIdentifier = 132, + RULE_comparisonOperator = 133, RULE_complexType = 134, RULE_fieldLength = 135, + RULE_letterrange = 136, RULE_lineLabel = 137, RULE_literal = 138, RULE_type = 139, + RULE_typeHint = 140, RULE_visibility = 141, RULE_ambiguousKeyword = 142, + RULE_remComment = 143, RULE_comment = 144, RULE_endOfLine = 145, RULE_endOfStatement = 146; public static readonly string[] ruleNames = { "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", - "moduleBody", "moduleBodyElement", "attributeStmt", "block", "blockStmt", - "appactivateStmt", "beepStmt", "chdirStmt", "chdriveStmt", "closeStmt", - "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", + "macroStmt", "moduleBody", "moduleBodyElement", "attributeStmt", "block", + "blockStmt", "appactivateStmt", "beepStmt", "chdirStmt", "chdriveStmt", + "closeStmt", "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", "deleteSettingStmt", "doLoopStmt", "endStmt", "enumerationStmt", "enumerationStmt_Constant", "eraseStmt", "errorStmt", "eventStmt", "exitStmt", "filecopyStmt", "forEachStmt", "forNextStmt", "functionStmt", "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", "ifBlockStmt", "ifConditionStmt", "ifElseIfBlockStmt", "ifElseBlockStmt", "implementsStmt", "inputStmt", "killStmt", "letStmt", "lineInputStmt", - "loadStmt", "lockStmt", "lsetStmt", "midStmt", "mkdirStmt", "nameStmt", - "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", - "outputList_Expression", "printStmt", "propertyGetStmt", "propertySetStmt", - "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", "redimStmt", - "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rmdirStmt", - "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", "selectCaseStmt", - "sC_Selection", "sC_Case", "sC_Cond", "sendkeysStmt", "setattrStmt", "setStmt", - "stopStmt", "subStmt", "timeStmt", "typeStmt", "typeStmt_Element", "typeOfStmt", - "unloadStmt", "unlockStmt", "valueStmt", "variableStmt", "variableListStmt", - "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", "writeStmt", - "fileNumber", "explicitCallStmt", "eCS_ProcedureCall", "eCS_MemberProcedureCall", - "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", - "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", - "iCS_S_MembersCall", "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", - "argCall", "dictionaryCallStmt", "argList", "arg", "argDefaultValue", - "subscripts", "subscript", "ambiguousIdentifier", "asTypeClause", "baseType", - "certainIdentifier", "comparisonOperator", "complexType", "fieldLength", - "letterrange", "lineLabel", "literal", "type", "typeHint", "visibility", - "ambiguousKeyword", "remComment", "comment", "endOfLine", "endOfStatement" + "loadStmt", "lockStmt", "lsetStmt", "macroConstStmt", "macroIfThenElseStmt", + "macroIfBlockStmt", "macroElseIfBlockStmt", "macroElseBlockStmt", "midStmt", + "mkdirStmt", "nameStmt", "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", + "outputList", "outputList_Expression", "printStmt", "propertyGetStmt", + "propertySetStmt", "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", + "redimStmt", "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", + "rmdirStmt", "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", + "selectCaseStmt", "sC_Selection", "sC_Case", "sC_Cond", "sendkeysStmt", + "setattrStmt", "setStmt", "stopStmt", "subStmt", "timeStmt", "typeStmt", + "typeStmt_Element", "typeOfStmt", "unloadStmt", "unlockStmt", "valueStmt", + "variableStmt", "variableListStmt", "variableSubStmt", "whileWendStmt", + "widthStmt", "withStmt", "writeStmt", "fileNumber", "explicitCallStmt", + "eCS_ProcedureCall", "eCS_MemberProcedureCall", "implicitCallStmt_InBlock", + "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", + "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", "iCS_S_MembersCall", + "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", "argCall", "dictionaryCallStmt", + "argList", "arg", "argDefaultValue", "subscripts", "subscript", "ambiguousIdentifier", + "asTypeClause", "baseType", "certainIdentifier", "comparisonOperator", + "complexType", "fieldLength", "letterrange", "lineLabel", "literal", "type", + "typeHint", "visibility", "ambiguousKeyword", "remComment", "comment", + "endOfLine", "endOfStatement" }; public override string GrammarFileName { get { return "VBA.g4"; } } @@ -219,8 +224,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 282; module(); - State = 283; Match(Eof); + State = 294; module(); + State = 295; Match(Eof); } } catch (RecognitionException re) { @@ -288,65 +293,65 @@ public ModuleContext module() { try { EnterOuterAlt(_localctx, 1); { - State = 286; + State = 298; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: { - State = 285; Match(WS); + State = 297; Match(WS); } break; } - State = 288; endOfStatement(); - State = 292; + State = 300; endOfStatement(); + State = 304; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: { - State = 289; moduleHeader(); - State = 290; endOfStatement(); + State = 301; moduleHeader(); + State = 302; endOfStatement(); } break; } - State = 295; + State = 307; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: { - State = 294; moduleConfig(); + State = 306; moduleConfig(); } break; } - State = 297; endOfStatement(); - State = 299; + State = 309; endOfStatement(); + State = 311; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 298; moduleAttributes(); + State = 310; moduleAttributes(); } break; } - State = 301; endOfStatement(); - State = 303; + State = 313; endOfStatement(); + State = 315; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: { - State = 302; moduleDeclarations(); + State = 314; moduleDeclarations(); } break; } - State = 305; endOfStatement(); - State = 307; + State = 317; endOfStatement(); + State = 319; switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: { - State = 306; moduleBody(); + State = 318; moduleBody(); } break; } - State = 309; endOfStatement(); - State = 311; + State = 321; endOfStatement(); + State = 323; _la = _input.La(1); if (_la==WS) { { - State = 310; Match(WS); + State = 322; Match(WS); } } @@ -398,11 +403,11 @@ public ModuleHeaderContext moduleHeader() { try { EnterOuterAlt(_localctx, 1); { - State = 313; Match(VERSION); - State = 314; Match(WS); - State = 315; Match(DOUBLELITERAL); - State = 316; Match(WS); - State = 317; Match(CLASS); + State = 325; Match(VERSION); + State = 326; Match(WS); + State = 327; Match(DOUBLELITERAL); + State = 328; Match(WS); + State = 329; Match(CLASS); } } catch (RecognitionException re) { @@ -456,9 +461,9 @@ public ModuleConfigContext moduleConfig() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 319; Match(BEGIN); - State = 320; endOfStatement(); - State = 322; + State = 331; Match(BEGIN); + State = 332; endOfStatement(); + State = 334; _errHandler.Sync(this); _alt = 1; do { @@ -466,18 +471,18 @@ public ModuleConfigContext moduleConfig() { case 1: { { - State = 321; moduleConfigElement(); + State = 333; moduleConfigElement(); } } break; default: throw new NoViableAltException(this); } - State = 324; + State = 336; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,7,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 326; Match(END); + State = 338; Match(END); } } catch (RecognitionException re) { @@ -534,26 +539,26 @@ public ModuleConfigElementContext moduleConfigElement() { try { EnterOuterAlt(_localctx, 1); { - State = 328; ambiguousIdentifier(); - State = 330; + State = 340; ambiguousIdentifier(); + State = 342; _la = _input.La(1); if (_la==WS) { { - State = 329; Match(WS); + State = 341; Match(WS); } } - State = 332; Match(EQ); - State = 334; + State = 344; Match(EQ); + State = 346; _la = _input.La(1); if (_la==WS) { { - State = 333; Match(WS); + State = 345; Match(WS); } } - State = 336; literal(); - State = 337; endOfStatement(); + State = 348; literal(); + State = 349; endOfStatement(); } } catch (RecognitionException re) { @@ -608,7 +613,7 @@ public ModuleAttributesContext moduleAttributes() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 342; + State = 354; _errHandler.Sync(this); _alt = 1; do { @@ -616,15 +621,15 @@ public ModuleAttributesContext moduleAttributes() { case 1: { { - State = 339; attributeStmt(); - State = 340; endOfStatement(); + State = 351; attributeStmt(); + State = 352; endOfStatement(); } } break; default: throw new NoViableAltException(this); } - State = 344; + State = 356; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,10,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -682,24 +687,24 @@ public ModuleDeclarationsContext moduleDeclarations() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 346; moduleDeclarationsElement(); - State = 352; + State = 358; moduleDeclarationsElement(); + State = 364; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 347; endOfStatement(); - State = 348; moduleDeclarationsElement(); + State = 359; endOfStatement(); + State = 360; moduleDeclarationsElement(); } } } - State = 354; + State = 366; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); } - State = 355; endOfStatement(); + State = 367; endOfStatement(); } } catch (RecognitionException re) { @@ -806,24 +811,24 @@ public ModuleOptionContext moduleOption() { EnterRule(_localctx, 14, RULE_moduleOption); int _la; try { - State = 365; + State = 377; switch (_input.La(1)) { case OPTION_BASE: _localctx = new OptionBaseStmtContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 357; Match(OPTION_BASE); - State = 358; Match(WS); - State = 359; Match(SHORTLITERAL); + State = 369; Match(OPTION_BASE); + State = 370; Match(WS); + State = 371; Match(SHORTLITERAL); } break; case OPTION_COMPARE: _localctx = new OptionCompareStmtContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 360; Match(OPTION_COMPARE); - State = 361; Match(WS); - State = 362; + State = 372; Match(OPTION_COMPARE); + State = 373; Match(WS); + State = 374; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -835,14 +840,14 @@ public ModuleOptionContext moduleOption() { _localctx = new OptionExplicitStmtContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 363; Match(OPTION_EXPLICIT); + State = 375; Match(OPTION_EXPLICIT); } break; case OPTION_PRIVATE_MODULE: _localctx = new OptionPrivateModuleStmtContext(_localctx); EnterOuterAlt(_localctx, 4); { - State = 364; Match(OPTION_PRIVATE_MODULE); + State = 376; Match(OPTION_PRIVATE_MODULE); } break; default: @@ -861,9 +866,6 @@ public ModuleOptionContext moduleOption() { } public partial class ModuleDeclarationsElementContext : ParserRuleContext { - public CommentContext comment() { - return GetRuleContext(0); - } public EnumerationStmtContext enumerationStmt() { return GetRuleContext(0); } @@ -888,6 +890,9 @@ public ModuleOptionContext moduleOption() { public DeclareStmtContext declareStmt() { return GetRuleContext(0); } + public MacroStmtContext macroStmt() { + return GetRuleContext(0); + } public ModuleDeclarationsElementContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -913,70 +918,131 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); try { - State = 376; + State = 388; switch ( Interpreter.AdaptivePredict(_input,13,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 367; comment(); + State = 379; declareStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 368; declareStmt(); + State = 380; enumerationStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 369; enumerationStmt(); + State = 381; eventStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 370; eventStmt(); + State = 382; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 371; constStmt(); + State = 383; implementsStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 372; implementsStmt(); + State = 384; variableStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 373; variableStmt(); + State = 385; moduleOption(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 374; moduleOption(); + State = 386; typeStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 375; typeStmt(); + State = 387; macroStmt(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroStmtContext : ParserRuleContext { + public MacroConstStmtContext macroConstStmt() { + return GetRuleContext(0); + } + public MacroIfThenElseStmtContext macroIfThenElseStmt() { + return GetRuleContext(0); + } + public MacroStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterMacroStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitMacroStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitMacroStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MacroStmtContext macroStmt() { + MacroStmtContext _localctx = new MacroStmtContext(_ctx, State); + EnterRule(_localctx, 18, RULE_macroStmt); + try { + State = 392; + switch (_input.La(1)) { + case MACRO_CONST: + EnterOuterAlt(_localctx, 1); + { + State = 390; macroConstStmt(); } break; + case MACRO_IF: + EnterOuterAlt(_localctx, 2); + { + State = 391; macroIfThenElseStmt(); + } + break; + default: + throw new NoViableAltException(this); } } catch (RecognitionException re) { @@ -1026,29 +1092,29 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ModuleBodyContext moduleBody() { ModuleBodyContext _localctx = new ModuleBodyContext(_ctx, State); - EnterRule(_localctx, 18, RULE_moduleBody); + EnterRule(_localctx, 20, RULE_moduleBody); try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 378; moduleBodyElement(); - State = 384; + State = 394; moduleBodyElement(); + State = 400; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,14,_ctx); + _alt = Interpreter.AdaptivePredict(_input,15,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 379; endOfStatement(); - State = 380; moduleBodyElement(); + State = 395; endOfStatement(); + State = 396; moduleBodyElement(); } } } - State = 386; + State = 402; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,14,_ctx); + _alt = Interpreter.AdaptivePredict(_input,15,_ctx); } - State = 387; endOfStatement(); + State = 403; endOfStatement(); } } catch (RecognitionException re) { @@ -1072,6 +1138,9 @@ public PropertyLetStmtContext propertyLetStmt() { public PropertyGetStmtContext propertyGetStmt() { return GetRuleContext(0); } + public MacroStmtContext macroStmt() { + return GetRuleContext(0); + } public SubStmtContext subStmt() { return GetRuleContext(0); } @@ -1101,42 +1170,49 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ModuleBodyElementContext moduleBodyElement() { ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); - EnterRule(_localctx, 20, RULE_moduleBodyElement); + EnterRule(_localctx, 22, RULE_moduleBodyElement); try { - State = 394; - switch ( Interpreter.AdaptivePredict(_input,15,_ctx) ) { + State = 411; + switch ( Interpreter.AdaptivePredict(_input,16,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 389; functionStmt(); + State = 405; functionStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 390; propertyGetStmt(); + State = 406; propertyGetStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 391; propertySetStmt(); + State = 407; propertySetStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 392; propertyLetStmt(); + State = 408; propertyLetStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 393; subStmt(); + State = 409; subStmt(); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 410; macroStmt(); } break; } @@ -1191,64 +1267,64 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AttributeStmtContext attributeStmt() { AttributeStmtContext _localctx = new AttributeStmtContext(_ctx, State); - EnterRule(_localctx, 22, RULE_attributeStmt); + EnterRule(_localctx, 24, RULE_attributeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 396; Match(ATTRIBUTE); - State = 397; Match(WS); - State = 398; implicitCallStmt_InStmt(); - State = 400; + State = 413; Match(ATTRIBUTE); + State = 414; Match(WS); + State = 415; implicitCallStmt_InStmt(); + State = 417; _la = _input.La(1); if (_la==WS) { { - State = 399; Match(WS); + State = 416; Match(WS); } } - State = 402; Match(EQ); - State = 404; + State = 419; Match(EQ); + State = 421; _la = _input.La(1); if (_la==WS) { { - State = 403; Match(WS); + State = 420; Match(WS); } } - State = 406; literal(); - State = 417; + State = 423; literal(); + State = 434; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,20,_ctx); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 408; + State = 425; _la = _input.La(1); if (_la==WS) { { - State = 407; Match(WS); + State = 424; Match(WS); } } - State = 410; Match(T__1); - State = 412; + State = 427; Match(T__1); + State = 429; _la = _input.La(1); if (_la==WS) { { - State = 411; Match(WS); + State = 428; Match(WS); } } - State = 414; literal(); + State = 431; literal(); } } } - State = 419; + State = 436; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,20,_ctx); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); } } } @@ -1299,29 +1375,29 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BlockContext block() { BlockContext _localctx = new BlockContext(_ctx, State); - EnterRule(_localctx, 24, RULE_block); + EnterRule(_localctx, 26, RULE_block); try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 420; blockStmt(); - State = 426; + State = 437; blockStmt(); + State = 443; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + _alt = Interpreter.AdaptivePredict(_input,22,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 421; endOfStatement(); - State = 422; blockStmt(); + State = 438; endOfStatement(); + State = 439; blockStmt(); } } } - State = 428; + State = 445; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + _alt = Interpreter.AdaptivePredict(_input,22,_ctx); } - State = 429; endOfStatement(); + State = 446; endOfStatement(); } } catch (RecognitionException re) { @@ -1519,6 +1595,9 @@ public WidthStmtContext widthStmt() { public PrintStmtContext printStmt() { return GetRuleContext(0); } + public MacroStmtContext macroStmt() { + return GetRuleContext(0); + } public SeekStmtContext seekStmt() { return GetRuleContext(0); } @@ -1557,469 +1636,476 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BlockStmtContext blockStmt() { BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); - EnterRule(_localctx, 26, RULE_blockStmt); + EnterRule(_localctx, 28, RULE_blockStmt); try { - State = 497; - switch ( Interpreter.AdaptivePredict(_input,22,_ctx) ) { + State = 515; + switch ( Interpreter.AdaptivePredict(_input,23,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 431; lineLabel(); + State = 448; lineLabel(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 432; appactivateStmt(); + State = 449; appactivateStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 433; attributeStmt(); + State = 450; attributeStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 434; beepStmt(); + State = 451; beepStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 435; chdirStmt(); + State = 452; chdirStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 436; chdriveStmt(); + State = 453; chdriveStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 437; closeStmt(); + State = 454; closeStmt(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 438; constStmt(); + State = 455; constStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 439; dateStmt(); + State = 456; dateStmt(); } break; case 10: EnterOuterAlt(_localctx, 10); { - State = 440; deleteSettingStmt(); + State = 457; deleteSettingStmt(); } break; case 11: EnterOuterAlt(_localctx, 11); { - State = 441; deftypeStmt(); + State = 458; deftypeStmt(); } break; case 12: EnterOuterAlt(_localctx, 12); { - State = 442; doLoopStmt(); + State = 459; doLoopStmt(); } break; case 13: EnterOuterAlt(_localctx, 13); { - State = 443; endStmt(); + State = 460; endStmt(); } break; case 14: EnterOuterAlt(_localctx, 14); { - State = 444; eraseStmt(); + State = 461; eraseStmt(); } break; case 15: EnterOuterAlt(_localctx, 15); { - State = 445; errorStmt(); + State = 462; errorStmt(); } break; case 16: EnterOuterAlt(_localctx, 16); { - State = 446; exitStmt(); + State = 463; exitStmt(); } break; case 17: EnterOuterAlt(_localctx, 17); { - State = 447; explicitCallStmt(); + State = 464; explicitCallStmt(); } break; case 18: EnterOuterAlt(_localctx, 18); { - State = 448; filecopyStmt(); + State = 465; filecopyStmt(); } break; case 19: EnterOuterAlt(_localctx, 19); { - State = 449; forEachStmt(); + State = 466; forEachStmt(); } break; case 20: EnterOuterAlt(_localctx, 20); { - State = 450; forNextStmt(); + State = 467; forNextStmt(); } break; case 21: EnterOuterAlt(_localctx, 21); { - State = 451; getStmt(); + State = 468; getStmt(); } break; case 22: EnterOuterAlt(_localctx, 22); { - State = 452; goSubStmt(); + State = 469; goSubStmt(); } break; case 23: EnterOuterAlt(_localctx, 23); { - State = 453; goToStmt(); + State = 470; goToStmt(); } break; case 24: EnterOuterAlt(_localctx, 24); { - State = 454; ifThenElseStmt(); + State = 471; ifThenElseStmt(); } break; case 25: EnterOuterAlt(_localctx, 25); { - State = 455; implementsStmt(); + State = 472; implementsStmt(); } break; case 26: EnterOuterAlt(_localctx, 26); { - State = 456; inputStmt(); + State = 473; inputStmt(); } break; case 27: EnterOuterAlt(_localctx, 27); { - State = 457; killStmt(); + State = 474; killStmt(); } break; case 28: EnterOuterAlt(_localctx, 28); { - State = 458; letStmt(); + State = 475; letStmt(); } break; case 29: EnterOuterAlt(_localctx, 29); { - State = 459; lineInputStmt(); + State = 476; lineInputStmt(); } break; case 30: EnterOuterAlt(_localctx, 30); { - State = 460; loadStmt(); + State = 477; loadStmt(); } break; case 31: EnterOuterAlt(_localctx, 31); { - State = 461; lockStmt(); + State = 478; lockStmt(); } break; case 32: EnterOuterAlt(_localctx, 32); { - State = 462; lsetStmt(); + State = 479; lsetStmt(); } break; case 33: EnterOuterAlt(_localctx, 33); { - State = 463; midStmt(); + State = 480; macroStmt(); } break; case 34: EnterOuterAlt(_localctx, 34); { - State = 464; mkdirStmt(); + State = 481; midStmt(); } break; case 35: EnterOuterAlt(_localctx, 35); { - State = 465; nameStmt(); + State = 482; mkdirStmt(); } break; case 36: EnterOuterAlt(_localctx, 36); { - State = 466; onErrorStmt(); + State = 483; nameStmt(); } break; case 37: EnterOuterAlt(_localctx, 37); { - State = 467; onGoToStmt(); + State = 484; onErrorStmt(); } break; case 38: EnterOuterAlt(_localctx, 38); { - State = 468; onGoSubStmt(); + State = 485; onGoToStmt(); } break; case 39: EnterOuterAlt(_localctx, 39); { - State = 469; openStmt(); + State = 486; onGoSubStmt(); } break; case 40: EnterOuterAlt(_localctx, 40); { - State = 470; printStmt(); + State = 487; openStmt(); } break; case 41: EnterOuterAlt(_localctx, 41); { - State = 471; putStmt(); + State = 488; printStmt(); } break; case 42: EnterOuterAlt(_localctx, 42); { - State = 472; raiseEventStmt(); + State = 489; putStmt(); } break; case 43: EnterOuterAlt(_localctx, 43); { - State = 473; randomizeStmt(); + State = 490; raiseEventStmt(); } break; case 44: EnterOuterAlt(_localctx, 44); { - State = 474; redimStmt(); + State = 491; randomizeStmt(); } break; case 45: EnterOuterAlt(_localctx, 45); { - State = 475; resetStmt(); + State = 492; redimStmt(); } break; case 46: EnterOuterAlt(_localctx, 46); { - State = 476; resumeStmt(); + State = 493; resetStmt(); } break; case 47: EnterOuterAlt(_localctx, 47); { - State = 477; returnStmt(); + State = 494; resumeStmt(); } break; case 48: EnterOuterAlt(_localctx, 48); { - State = 478; rmdirStmt(); + State = 495; returnStmt(); } break; case 49: EnterOuterAlt(_localctx, 49); { - State = 479; rsetStmt(); + State = 496; rmdirStmt(); } break; case 50: EnterOuterAlt(_localctx, 50); { - State = 480; savepictureStmt(); + State = 497; rsetStmt(); } break; case 51: EnterOuterAlt(_localctx, 51); { - State = 481; saveSettingStmt(); + State = 498; savepictureStmt(); } break; case 52: EnterOuterAlt(_localctx, 52); { - State = 482; seekStmt(); + State = 499; saveSettingStmt(); } break; case 53: EnterOuterAlt(_localctx, 53); { - State = 483; selectCaseStmt(); + State = 500; seekStmt(); } break; case 54: EnterOuterAlt(_localctx, 54); { - State = 484; sendkeysStmt(); + State = 501; selectCaseStmt(); } break; case 55: EnterOuterAlt(_localctx, 55); { - State = 485; setattrStmt(); + State = 502; sendkeysStmt(); } break; case 56: EnterOuterAlt(_localctx, 56); { - State = 486; setStmt(); + State = 503; setattrStmt(); } break; case 57: EnterOuterAlt(_localctx, 57); { - State = 487; stopStmt(); + State = 504; setStmt(); } break; case 58: EnterOuterAlt(_localctx, 58); { - State = 488; timeStmt(); + State = 505; stopStmt(); } break; case 59: EnterOuterAlt(_localctx, 59); { - State = 489; unloadStmt(); + State = 506; timeStmt(); } break; case 60: EnterOuterAlt(_localctx, 60); { - State = 490; unlockStmt(); + State = 507; unloadStmt(); } break; case 61: EnterOuterAlt(_localctx, 61); { - State = 491; variableStmt(); + State = 508; unlockStmt(); } break; case 62: EnterOuterAlt(_localctx, 62); { - State = 492; whileWendStmt(); + State = 509; variableStmt(); } break; case 63: EnterOuterAlt(_localctx, 63); { - State = 493; widthStmt(); + State = 510; whileWendStmt(); } break; case 64: EnterOuterAlt(_localctx, 64); { - State = 494; withStmt(); + State = 511; widthStmt(); } break; case 65: EnterOuterAlt(_localctx, 65); { - State = 495; writeStmt(); + State = 512; withStmt(); } break; case 66: EnterOuterAlt(_localctx, 66); { - State = 496; implicitCallStmt_InBlock(); + State = 513; writeStmt(); + } + break; + + case 67: + EnterOuterAlt(_localctx, 67); + { + State = 514; implicitCallStmt_InBlock(); } break; } @@ -2070,36 +2156,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AppactivateStmtContext appactivateStmt() { AppactivateStmtContext _localctx = new AppactivateStmtContext(_ctx, State); - EnterRule(_localctx, 28, RULE_appactivateStmt); + EnterRule(_localctx, 30, RULE_appactivateStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 499; Match(APPACTIVATE); - State = 500; Match(WS); - State = 501; valueStmt(0); - State = 510; - switch ( Interpreter.AdaptivePredict(_input,25,_ctx) ) { + State = 517; Match(APPACTIVATE); + State = 518; Match(WS); + State = 519; valueStmt(0); + State = 528; + switch ( Interpreter.AdaptivePredict(_input,26,_ctx) ) { case 1: { - State = 503; + State = 521; _la = _input.La(1); if (_la==WS) { { - State = 502; Match(WS); + State = 520; Match(WS); } } - State = 505; Match(T__1); - State = 507; - switch ( Interpreter.AdaptivePredict(_input,24,_ctx) ) { + State = 523; Match(T__1); + State = 525; + switch ( Interpreter.AdaptivePredict(_input,25,_ctx) ) { case 1: { - State = 506; Match(WS); + State = 524; Match(WS); } break; } - State = 509; valueStmt(0); + State = 527; valueStmt(0); } break; } @@ -2141,11 +2227,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BeepStmtContext beepStmt() { BeepStmtContext _localctx = new BeepStmtContext(_ctx, State); - EnterRule(_localctx, 30, RULE_beepStmt); + EnterRule(_localctx, 32, RULE_beepStmt); try { EnterOuterAlt(_localctx, 1); { - State = 512; Match(BEEP); + State = 530; Match(BEEP); } } catch (RecognitionException re) { @@ -2188,13 +2274,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ChdirStmtContext chdirStmt() { ChdirStmtContext _localctx = new ChdirStmtContext(_ctx, State); - EnterRule(_localctx, 32, RULE_chdirStmt); + EnterRule(_localctx, 34, RULE_chdirStmt); try { EnterOuterAlt(_localctx, 1); { - State = 514; Match(CHDIR); - State = 515; Match(WS); - State = 516; valueStmt(0); + State = 532; Match(CHDIR); + State = 533; Match(WS); + State = 534; valueStmt(0); } } catch (RecognitionException re) { @@ -2237,13 +2323,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ChdriveStmtContext chdriveStmt() { ChdriveStmtContext _localctx = new ChdriveStmtContext(_ctx, State); - EnterRule(_localctx, 34, RULE_chdriveStmt); + EnterRule(_localctx, 36, RULE_chdriveStmt); try { EnterOuterAlt(_localctx, 1); { - State = 518; Match(CHDRIVE); - State = 519; Match(WS); - State = 520; valueStmt(0); + State = 536; Match(CHDRIVE); + State = 537; Match(WS); + State = 538; valueStmt(0); } } catch (RecognitionException re) { @@ -2292,50 +2378,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CloseStmtContext closeStmt() { CloseStmtContext _localctx = new CloseStmtContext(_ctx, State); - EnterRule(_localctx, 36, RULE_closeStmt); + EnterRule(_localctx, 38, RULE_closeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 522; Match(CLOSE); - State = 538; - switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { + State = 540; Match(CLOSE); + State = 556; + switch ( Interpreter.AdaptivePredict(_input,30,_ctx) ) { case 1: { - State = 523; Match(WS); - State = 524; fileNumber(); - State = 535; + State = 541; Match(WS); + State = 542; fileNumber(); + State = 553; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,28,_ctx); + _alt = Interpreter.AdaptivePredict(_input,29,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 526; + State = 544; _la = _input.La(1); if (_la==WS) { { - State = 525; Match(WS); + State = 543; Match(WS); } } - State = 528; Match(T__1); - State = 530; - switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { + State = 546; Match(T__1); + State = 548; + switch ( Interpreter.AdaptivePredict(_input,28,_ctx) ) { case 1: { - State = 529; Match(WS); + State = 547; Match(WS); } break; } - State = 532; fileNumber(); + State = 550; fileNumber(); } } } - State = 537; + State = 555; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,28,_ctx); + _alt = Interpreter.AdaptivePredict(_input,29,_ctx); } } break; @@ -2391,55 +2477,55 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstStmtContext constStmt() { ConstStmtContext _localctx = new ConstStmtContext(_ctx, State); - EnterRule(_localctx, 38, RULE_constStmt); + EnterRule(_localctx, 40, RULE_constStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 543; + State = 561; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 540; visibility(); - State = 541; Match(WS); + State = 558; visibility(); + State = 559; Match(WS); } } - State = 545; Match(CONST); - State = 546; Match(WS); - State = 547; constSubStmt(); - State = 558; + State = 563; Match(CONST); + State = 564; Match(WS); + State = 565; constSubStmt(); + State = 576; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,33,_ctx); + _alt = Interpreter.AdaptivePredict(_input,34,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 549; + State = 567; _la = _input.La(1); if (_la==WS) { { - State = 548; Match(WS); + State = 566; Match(WS); } } - State = 551; Match(T__1); - State = 553; + State = 569; Match(T__1); + State = 571; _la = _input.La(1); if (_la==WS) { { - State = 552; Match(WS); + State = 570; Match(WS); } } - State = 555; constSubStmt(); + State = 573; constSubStmt(); } } } - State = 560; + State = 578; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,33,_ctx); + _alt = Interpreter.AdaptivePredict(_input,34,_ctx); } } } @@ -2495,47 +2581,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstSubStmtContext constSubStmt() { ConstSubStmtContext _localctx = new ConstSubStmtContext(_ctx, State); - EnterRule(_localctx, 40, RULE_constSubStmt); + EnterRule(_localctx, 42, RULE_constSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 561; ambiguousIdentifier(); - State = 563; + State = 579; ambiguousIdentifier(); + State = 581; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 562; typeHint(); + State = 580; typeHint(); } } - State = 567; - switch ( Interpreter.AdaptivePredict(_input,35,_ctx) ) { + State = 585; + switch ( Interpreter.AdaptivePredict(_input,36,_ctx) ) { case 1: { - State = 565; Match(WS); - State = 566; asTypeClause(); + State = 583; Match(WS); + State = 584; asTypeClause(); } break; } - State = 570; + State = 588; _la = _input.La(1); if (_la==WS) { { - State = 569; Match(WS); + State = 587; Match(WS); } } - State = 572; Match(EQ); - State = 574; - switch ( Interpreter.AdaptivePredict(_input,37,_ctx) ) { + State = 590; Match(EQ); + State = 592; + switch ( Interpreter.AdaptivePredict(_input,38,_ctx) ) { case 1: { - State = 573; Match(WS); + State = 591; Match(WS); } break; } - State = 576; valueStmt(0); + State = 594; valueStmt(0); } } catch (RecognitionException re) { @@ -2582,30 +2668,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DateStmtContext dateStmt() { DateStmtContext _localctx = new DateStmtContext(_ctx, State); - EnterRule(_localctx, 42, RULE_dateStmt); + EnterRule(_localctx, 44, RULE_dateStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 578; Match(DATE); - State = 580; + State = 596; Match(DATE); + State = 598; _la = _input.La(1); if (_la==WS) { { - State = 579; Match(WS); + State = 597; Match(WS); } } - State = 582; Match(EQ); - State = 584; - switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { + State = 600; Match(EQ); + State = 602; + switch ( Interpreter.AdaptivePredict(_input,40,_ctx) ) { case 1: { - State = 583; Match(WS); + State = 601; Match(WS); } break; } - State = 586; valueStmt(0); + State = 604; valueStmt(0); } } catch (RecognitionException re) { @@ -2675,42 +2761,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeclareStmtContext declareStmt() { DeclareStmtContext _localctx = new DeclareStmtContext(_ctx, State); - EnterRule(_localctx, 44, RULE_declareStmt); + EnterRule(_localctx, 46, RULE_declareStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 591; + State = 609; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 588; visibility(); - State = 589; Match(WS); + State = 606; visibility(); + State = 607; Match(WS); } } - State = 593; Match(DECLARE); - State = 594; Match(WS); - State = 597; + State = 611; Match(DECLARE); + State = 612; Match(WS); + State = 615; _la = _input.La(1); if (_la==PTRSAFE) { { - State = 595; Match(PTRSAFE); - State = 596; Match(WS); + State = 613; Match(PTRSAFE); + State = 614; Match(WS); } } - State = 604; + State = 622; switch (_input.La(1)) { case FUNCTION: { { - State = 599; Match(FUNCTION); - State = 601; + State = 617; Match(FUNCTION); + State = 619; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 600; typeHint(); + State = 618; typeHint(); } } @@ -2719,59 +2805,59 @@ public DeclareStmtContext declareStmt() { break; case SUB: { - State = 603; Match(SUB); + State = 621; Match(SUB); } break; default: throw new NoViableAltException(this); } - State = 606; Match(WS); - State = 607; ambiguousIdentifier(); - State = 609; + State = 624; Match(WS); + State = 625; ambiguousIdentifier(); + State = 627; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 608; typeHint(); + State = 626; typeHint(); } } - State = 611; Match(WS); - State = 612; Match(LIB); - State = 613; Match(WS); - State = 614; Match(STRINGLITERAL); - State = 619; - switch ( Interpreter.AdaptivePredict(_input,45,_ctx) ) { + State = 629; Match(WS); + State = 630; Match(LIB); + State = 631; Match(WS); + State = 632; Match(STRINGLITERAL); + State = 637; + switch ( Interpreter.AdaptivePredict(_input,46,_ctx) ) { case 1: { - State = 615; Match(WS); - State = 616; Match(ALIAS); - State = 617; Match(WS); - State = 618; Match(STRINGLITERAL); + State = 633; Match(WS); + State = 634; Match(ALIAS); + State = 635; Match(WS); + State = 636; Match(STRINGLITERAL); } break; } - State = 625; - switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { + State = 643; + switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { case 1: { - State = 622; + State = 640; _la = _input.La(1); if (_la==WS) { { - State = 621; Match(WS); + State = 639; Match(WS); } } - State = 624; argList(); + State = 642; argList(); } break; } - State = 629; - switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { + State = 647; + switch ( Interpreter.AdaptivePredict(_input,49,_ctx) ) { case 1: { - State = 627; Match(WS); - State = 628; asTypeClause(); + State = 645; Match(WS); + State = 646; asTypeClause(); } break; } @@ -2834,51 +2920,51 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeftypeStmtContext deftypeStmt() { DeftypeStmtContext _localctx = new DeftypeStmtContext(_ctx, State); - EnterRule(_localctx, 46, RULE_deftypeStmt); + EnterRule(_localctx, 48, RULE_deftypeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 631; + State = 649; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 632; Match(WS); - State = 633; letterrange(); - State = 644; + State = 650; Match(WS); + State = 651; letterrange(); + State = 662; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,51,_ctx); + _alt = Interpreter.AdaptivePredict(_input,52,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 635; + State = 653; _la = _input.La(1); if (_la==WS) { { - State = 634; Match(WS); + State = 652; Match(WS); } } - State = 637; Match(T__1); - State = 639; + State = 655; Match(T__1); + State = 657; _la = _input.La(1); if (_la==WS) { { - State = 638; Match(WS); + State = 656; Match(WS); } } - State = 641; letterrange(); + State = 659; letterrange(); } } } - State = 646; + State = 664; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,51,_ctx); + _alt = Interpreter.AdaptivePredict(_input,52,_ctx); } } } @@ -2928,54 +3014,54 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeleteSettingStmtContext deleteSettingStmt() { DeleteSettingStmtContext _localctx = new DeleteSettingStmtContext(_ctx, State); - EnterRule(_localctx, 48, RULE_deleteSettingStmt); + EnterRule(_localctx, 50, RULE_deleteSettingStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 647; Match(DELETESETTING); - State = 648; Match(WS); - State = 649; valueStmt(0); - State = 651; + State = 665; Match(DELETESETTING); + State = 666; Match(WS); + State = 667; valueStmt(0); + State = 669; _la = _input.La(1); if (_la==WS) { { - State = 650; Match(WS); + State = 668; Match(WS); } } - State = 653; Match(T__1); - State = 655; - switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { + State = 671; Match(T__1); + State = 673; + switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { case 1: { - State = 654; Match(WS); + State = 672; Match(WS); } break; } - State = 657; valueStmt(0); - State = 666; - switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { + State = 675; valueStmt(0); + State = 684; + switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { case 1: { - State = 659; + State = 677; _la = _input.La(1); if (_la==WS) { { - State = 658; Match(WS); + State = 676; Match(WS); } } - State = 661; Match(T__1); - State = 663; - switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { + State = 679; Match(T__1); + State = 681; + switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { case 1: { - State = 662; Match(WS); + State = 680; Match(WS); } break; } - State = 665; valueStmt(0); + State = 683; valueStmt(0); } break; } @@ -3033,70 +3119,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DoLoopStmtContext doLoopStmt() { DoLoopStmtContext _localctx = new DoLoopStmtContext(_ctx, State); - EnterRule(_localctx, 50, RULE_doLoopStmt); + EnterRule(_localctx, 52, RULE_doLoopStmt); int _la; try { - State = 695; - switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { + State = 713; + switch ( Interpreter.AdaptivePredict(_input,60,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 668; Match(DO); - State = 669; endOfStatement(); - State = 671; - switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { + State = 686; Match(DO); + State = 687; endOfStatement(); + State = 689; + switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { case 1: { - State = 670; block(); + State = 688; block(); } break; } - State = 673; Match(LOOP); + State = 691; Match(LOOP); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 675; Match(DO); - State = 676; Match(WS); - State = 677; + State = 693; Match(DO); + State = 694; Match(WS); + State = 695; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 678; Match(WS); - State = 679; valueStmt(0); - State = 680; endOfStatement(); - State = 682; - switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { + State = 696; Match(WS); + State = 697; valueStmt(0); + State = 698; endOfStatement(); + State = 700; + switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: { - State = 681; block(); + State = 699; block(); } break; } - State = 684; Match(LOOP); + State = 702; Match(LOOP); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 686; Match(DO); - State = 687; endOfStatement(); - State = 688; block(); - State = 689; Match(LOOP); - State = 690; Match(WS); - State = 691; + State = 704; Match(DO); + State = 705; endOfStatement(); + State = 706; block(); + State = 707; Match(LOOP); + State = 708; Match(WS); + State = 709; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 692; Match(WS); - State = 693; valueStmt(0); + State = 710; Match(WS); + State = 711; valueStmt(0); } break; } @@ -3137,11 +3223,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndStmtContext endStmt() { EndStmtContext _localctx = new EndStmtContext(_ctx, State); - EnterRule(_localctx, 52, RULE_endStmt); + EnterRule(_localctx, 54, RULE_endStmt); try { EnterOuterAlt(_localctx, 1); { - State = 697; Match(END); + State = 715; Match(END); } } catch (RecognitionException re) { @@ -3200,38 +3286,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmtContext enumerationStmt() { EnumerationStmtContext _localctx = new EnumerationStmtContext(_ctx, State); - EnterRule(_localctx, 54, RULE_enumerationStmt); + EnterRule(_localctx, 56, RULE_enumerationStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 702; + State = 720; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 699; visibility(); - State = 700; Match(WS); + State = 717; visibility(); + State = 718; Match(WS); } } - State = 704; Match(ENUM); - State = 705; Match(WS); - State = 706; ambiguousIdentifier(); - State = 707; endOfStatement(); - State = 711; + State = 722; Match(ENUM); + State = 723; Match(WS); + State = 724; ambiguousIdentifier(); + State = 725; endOfStatement(); + State = 729; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { { { - State = 708; enumerationStmt_Constant(); + State = 726; enumerationStmt_Constant(); } } - State = 713; + State = 731; _errHandler.Sync(this); _la = _input.La(1); } - State = 714; Match(END_ENUM); + State = 732; Match(END_ENUM); } } catch (RecognitionException re) { @@ -3283,38 +3369,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmt_ConstantContext enumerationStmt_Constant() { EnumerationStmt_ConstantContext _localctx = new EnumerationStmt_ConstantContext(_ctx, State); - EnterRule(_localctx, 56, RULE_enumerationStmt_Constant); + EnterRule(_localctx, 58, RULE_enumerationStmt_Constant); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 716; ambiguousIdentifier(); - State = 725; - switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { + State = 734; ambiguousIdentifier(); + State = 743; + switch ( Interpreter.AdaptivePredict(_input,65,_ctx) ) { case 1: { - State = 718; + State = 736; _la = _input.La(1); if (_la==WS) { { - State = 717; Match(WS); + State = 735; Match(WS); } } - State = 720; Match(EQ); - State = 722; - switch ( Interpreter.AdaptivePredict(_input,63,_ctx) ) { + State = 738; Match(EQ); + State = 740; + switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { case 1: { - State = 721; Match(WS); + State = 739; Match(WS); } break; } - State = 724; valueStmt(0); + State = 742; valueStmt(0); } break; } - State = 727; endOfStatement(); + State = 745; endOfStatement(); } } catch (RecognitionException re) { @@ -3357,13 +3443,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EraseStmtContext eraseStmt() { EraseStmtContext _localctx = new EraseStmtContext(_ctx, State); - EnterRule(_localctx, 58, RULE_eraseStmt); + EnterRule(_localctx, 60, RULE_eraseStmt); try { EnterOuterAlt(_localctx, 1); { - State = 729; Match(ERASE); - State = 730; Match(WS); - State = 731; valueStmt(0); + State = 747; Match(ERASE); + State = 748; Match(WS); + State = 749; valueStmt(0); } } catch (RecognitionException re) { @@ -3406,13 +3492,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ErrorStmtContext errorStmt() { ErrorStmtContext _localctx = new ErrorStmtContext(_ctx, State); - EnterRule(_localctx, 60, RULE_errorStmt); + EnterRule(_localctx, 62, RULE_errorStmt); try { EnterOuterAlt(_localctx, 1); { - State = 733; Match(ERROR); - State = 734; Match(WS); - State = 735; valueStmt(0); + State = 751; Match(ERROR); + State = 752; Match(WS); + State = 753; valueStmt(0); } } catch (RecognitionException re) { @@ -3464,32 +3550,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EventStmtContext eventStmt() { EventStmtContext _localctx = new EventStmtContext(_ctx, State); - EnterRule(_localctx, 62, RULE_eventStmt); + EnterRule(_localctx, 64, RULE_eventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 740; + State = 758; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 737; visibility(); - State = 738; Match(WS); + State = 755; visibility(); + State = 756; Match(WS); } } - State = 742; Match(EVENT); - State = 743; Match(WS); - State = 744; ambiguousIdentifier(); - State = 746; + State = 760; Match(EVENT); + State = 761; Match(WS); + State = 762; ambiguousIdentifier(); + State = 764; _la = _input.La(1); if (_la==WS) { { - State = 745; Match(WS); + State = 763; Match(WS); } } - State = 748; argList(); + State = 766; argList(); } } catch (RecognitionException re) { @@ -3532,12 +3618,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExitStmtContext exitStmt() { ExitStmtContext _localctx = new ExitStmtContext(_ctx, State); - EnterRule(_localctx, 64, RULE_exitStmt); + EnterRule(_localctx, 66, RULE_exitStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 750; + State = 768; _la = _input.La(1); if ( !(((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (EXIT_DO - 69)) | (1L << (EXIT_FOR - 69)) | (1L << (EXIT_FUNCTION - 69)) | (1L << (EXIT_PROPERTY - 69)) | (1L << (EXIT_SUB - 69)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -3591,32 +3677,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FilecopyStmtContext filecopyStmt() { FilecopyStmtContext _localctx = new FilecopyStmtContext(_ctx, State); - EnterRule(_localctx, 66, RULE_filecopyStmt); + EnterRule(_localctx, 68, RULE_filecopyStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 752; Match(FILECOPY); - State = 753; Match(WS); - State = 754; valueStmt(0); - State = 756; + State = 770; Match(FILECOPY); + State = 771; Match(WS); + State = 772; valueStmt(0); + State = 774; _la = _input.La(1); if (_la==WS) { { - State = 755; Match(WS); + State = 773; Match(WS); } } - State = 758; Match(T__1); - State = 760; - switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { + State = 776; Match(T__1); + State = 778; + switch ( Interpreter.AdaptivePredict(_input,69,_ctx) ) { case 1: { - State = 759; Match(WS); + State = 777; Match(WS); } break; } - State = 762; valueStmt(0); + State = 780; valueStmt(0); } } catch (RecognitionException re) { @@ -3680,44 +3766,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForEachStmtContext forEachStmt() { ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); - EnterRule(_localctx, 68, RULE_forEachStmt); + EnterRule(_localctx, 70, RULE_forEachStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 764; Match(FOR); - State = 765; Match(WS); - State = 766; Match(EACH); - State = 767; Match(WS); - State = 768; ambiguousIdentifier(); - State = 770; + State = 782; Match(FOR); + State = 783; Match(WS); + State = 784; Match(EACH); + State = 785; Match(WS); + State = 786; ambiguousIdentifier(); + State = 788; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 769; typeHint(); + State = 787; typeHint(); } } - State = 772; Match(WS); - State = 773; Match(IN); - State = 774; Match(WS); - State = 775; valueStmt(0); - State = 776; endOfStatement(); - State = 778; - switch ( Interpreter.AdaptivePredict(_input,70,_ctx) ) { + State = 790; Match(WS); + State = 791; Match(IN); + State = 792; Match(WS); + State = 793; valueStmt(0); + State = 794; endOfStatement(); + State = 796; + switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { case 1: { - State = 777; block(); + State = 795; block(); } break; } - State = 780; Match(NEXT); - State = 783; - switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { + State = 798; Match(NEXT); + State = 801; + switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { case 1: { - State = 781; Match(WS); - State = 782; ambiguousIdentifier(); + State = 799; Match(WS); + State = 800; ambiguousIdentifier(); } break; } @@ -3791,80 +3877,80 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForNextStmtContext forNextStmt() { ForNextStmtContext _localctx = new ForNextStmtContext(_ctx, State); - EnterRule(_localctx, 70, RULE_forNextStmt); + EnterRule(_localctx, 72, RULE_forNextStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 785; Match(FOR); - State = 786; Match(WS); - State = 787; ambiguousIdentifier(); - State = 789; + State = 803; Match(FOR); + State = 804; Match(WS); + State = 805; ambiguousIdentifier(); + State = 807; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 788; typeHint(); + State = 806; typeHint(); } } - State = 793; - switch ( Interpreter.AdaptivePredict(_input,73,_ctx) ) { + State = 811; + switch ( Interpreter.AdaptivePredict(_input,74,_ctx) ) { case 1: { - State = 791; Match(WS); - State = 792; asTypeClause(); + State = 809; Match(WS); + State = 810; asTypeClause(); } break; } - State = 796; + State = 814; _la = _input.La(1); if (_la==WS) { { - State = 795; Match(WS); + State = 813; Match(WS); } } - State = 798; Match(EQ); - State = 800; - switch ( Interpreter.AdaptivePredict(_input,75,_ctx) ) { + State = 816; Match(EQ); + State = 818; + switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { case 1: { - State = 799; Match(WS); + State = 817; Match(WS); } break; } - State = 802; valueStmt(0); - State = 803; Match(WS); - State = 804; Match(TO); - State = 805; Match(WS); - State = 806; valueStmt(0); - State = 811; - switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { + State = 820; valueStmt(0); + State = 821; Match(WS); + State = 822; Match(TO); + State = 823; Match(WS); + State = 824; valueStmt(0); + State = 829; + switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { case 1: { - State = 807; Match(WS); - State = 808; Match(STEP); - State = 809; Match(WS); - State = 810; valueStmt(0); + State = 825; Match(WS); + State = 826; Match(STEP); + State = 827; Match(WS); + State = 828; valueStmt(0); } break; } - State = 813; endOfStatement(); - State = 815; - switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { + State = 831; endOfStatement(); + State = 833; + switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { case 1: { - State = 814; block(); + State = 832; block(); } break; } - State = 817; Match(NEXT); - State = 820; - switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { + State = 835; Match(NEXT); + State = 838; + switch ( Interpreter.AdaptivePredict(_input,79,_ctx) ) { case 1: { - State = 818; Match(WS); - State = 819; ambiguousIdentifier(); + State = 836; Match(WS); + State = 837; ambiguousIdentifier(); } break; } @@ -3933,89 +4019,89 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FunctionStmtContext functionStmt() { FunctionStmtContext _localctx = new FunctionStmtContext(_ctx, State); - EnterRule(_localctx, 72, RULE_functionStmt); + EnterRule(_localctx, 74, RULE_functionStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 825; + State = 843; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 822; visibility(); - State = 823; Match(WS); + State = 840; visibility(); + State = 841; Match(WS); } } - State = 829; + State = 847; _la = _input.La(1); if (_la==STATIC) { { - State = 827; Match(STATIC); - State = 828; Match(WS); + State = 845; Match(STATIC); + State = 846; Match(WS); } } - State = 831; Match(FUNCTION); - State = 833; + State = 849; Match(FUNCTION); + State = 851; _la = _input.La(1); if (_la==WS) { { - State = 832; Match(WS); + State = 850; Match(WS); } } - State = 835; ambiguousIdentifier(); - State = 837; - switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { + State = 853; ambiguousIdentifier(); + State = 855; + switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { case 1: { - State = 836; typeHint(); + State = 854; typeHint(); } break; } - State = 843; - switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { + State = 861; + switch ( Interpreter.AdaptivePredict(_input,85,_ctx) ) { case 1: { - State = 840; + State = 858; _la = _input.La(1); if (_la==WS) { { - State = 839; Match(WS); + State = 857; Match(WS); } } - State = 842; argList(); + State = 860; argList(); } break; } - State = 849; - switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { + State = 867; + switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { case 1: { - State = 846; + State = 864; _la = _input.La(1); if (_la==WS) { { - State = 845; Match(WS); + State = 863; Match(WS); } } - State = 848; asTypeClause(); + State = 866; asTypeClause(); } break; } - State = 851; endOfStatement(); - State = 853; + State = 869; endOfStatement(); + State = 871; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 852; block(); + State = 870; block(); } } - State = 855; Match(END_FUNCTION); + State = 873; Match(END_FUNCTION); } } catch (RecognitionException re) { @@ -4067,57 +4153,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GetStmtContext getStmt() { GetStmtContext _localctx = new GetStmtContext(_ctx, State); - EnterRule(_localctx, 74, RULE_getStmt); + EnterRule(_localctx, 76, RULE_getStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 857; Match(GET); - State = 858; Match(WS); - State = 859; fileNumber(); - State = 861; + State = 875; Match(GET); + State = 876; Match(WS); + State = 877; fileNumber(); + State = 879; _la = _input.La(1); if (_la==WS) { { - State = 860; Match(WS); + State = 878; Match(WS); } } - State = 863; Match(T__1); - State = 865; - switch ( Interpreter.AdaptivePredict(_input,89,_ctx) ) { + State = 881; Match(T__1); + State = 883; + switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { case 1: { - State = 864; Match(WS); + State = 882; Match(WS); } break; } - State = 868; - switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { + State = 886; + switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { case 1: { - State = 867; valueStmt(0); + State = 885; valueStmt(0); } break; } - State = 871; + State = 889; _la = _input.La(1); if (_la==WS) { { - State = 870; Match(WS); + State = 888; Match(WS); } } - State = 873; Match(T__1); - State = 875; - switch ( Interpreter.AdaptivePredict(_input,92,_ctx) ) { + State = 891; Match(T__1); + State = 893; + switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { case 1: { - State = 874; Match(WS); + State = 892; Match(WS); } break; } - State = 877; valueStmt(0); + State = 895; valueStmt(0); } } catch (RecognitionException re) { @@ -4160,13 +4246,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoSubStmtContext goSubStmt() { GoSubStmtContext _localctx = new GoSubStmtContext(_ctx, State); - EnterRule(_localctx, 76, RULE_goSubStmt); + EnterRule(_localctx, 78, RULE_goSubStmt); try { EnterOuterAlt(_localctx, 1); { - State = 879; Match(GOSUB); - State = 880; Match(WS); - State = 881; valueStmt(0); + State = 897; Match(GOSUB); + State = 898; Match(WS); + State = 899; valueStmt(0); } } catch (RecognitionException re) { @@ -4209,13 +4295,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoToStmtContext goToStmt() { GoToStmtContext _localctx = new GoToStmtContext(_ctx, State); - EnterRule(_localctx, 78, RULE_goToStmt); + EnterRule(_localctx, 80, RULE_goToStmt); try { EnterOuterAlt(_localctx, 1); { - State = 883; Match(GOTO); - State = 884; Match(WS); - State = 885; valueStmt(0); + State = 901; Match(GOTO); + State = 902; Match(WS); + State = 903; valueStmt(0); } } catch (RecognitionException re) { @@ -4306,30 +4392,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfThenElseStmtContext ifThenElseStmt() { IfThenElseStmtContext _localctx = new IfThenElseStmtContext(_ctx, State); - EnterRule(_localctx, 80, RULE_ifThenElseStmt); + EnterRule(_localctx, 82, RULE_ifThenElseStmt); int _la; try { - State = 912; - switch ( Interpreter.AdaptivePredict(_input,96,_ctx) ) { + State = 930; + switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 887; Match(IF); - State = 888; Match(WS); - State = 889; ifConditionStmt(); - State = 890; Match(WS); - State = 891; Match(THEN); - State = 892; Match(WS); - State = 893; blockStmt(); - State = 898; - switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { + State = 905; Match(IF); + State = 906; Match(WS); + State = 907; ifConditionStmt(); + State = 908; Match(WS); + State = 909; Match(THEN); + State = 910; Match(WS); + State = 911; blockStmt(); + State = 916; + switch ( Interpreter.AdaptivePredict(_input,94,_ctx) ) { case 1: { - State = 894; Match(WS); - State = 895; Match(ELSE); - State = 896; Match(WS); - State = 897; blockStmt(); + State = 912; Match(WS); + State = 913; Match(ELSE); + State = 914; Match(WS); + State = 915; blockStmt(); } break; } @@ -4340,29 +4426,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 900; ifBlockStmt(); - State = 904; + State = 918; ifBlockStmt(); + State = 922; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 901; ifElseIfBlockStmt(); + State = 919; ifElseIfBlockStmt(); } } - State = 906; + State = 924; _errHandler.Sync(this); _la = _input.La(1); } - State = 908; + State = 926; _la = _input.La(1); if (_la==ELSE) { { - State = 907; ifElseBlockStmt(); + State = 925; ifElseBlockStmt(); } } - State = 910; Match(END_IF); + State = 928; Match(END_IF); } break; } @@ -4417,21 +4503,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfBlockStmtContext ifBlockStmt() { IfBlockStmtContext _localctx = new IfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 82, RULE_ifBlockStmt); + EnterRule(_localctx, 84, RULE_ifBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 914; Match(IF); - State = 915; Match(WS); - State = 916; ifConditionStmt(); - State = 917; Match(WS); - State = 918; Match(THEN); - State = 919; endOfStatement(); - State = 921; - switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { + State = 932; Match(IF); + State = 933; Match(WS); + State = 934; ifConditionStmt(); + State = 935; Match(WS); + State = 936; Match(THEN); + State = 937; endOfStatement(); + State = 939; + switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { case 1: { - State = 920; block(); + State = 938; block(); } break; } @@ -4475,11 +4561,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfConditionStmtContext ifConditionStmt() { IfConditionStmtContext _localctx = new IfConditionStmtContext(_ctx, State); - EnterRule(_localctx, 84, RULE_ifConditionStmt); + EnterRule(_localctx, 86, RULE_ifConditionStmt); try { EnterOuterAlt(_localctx, 1); { - State = 923; valueStmt(0); + State = 941; valueStmt(0); } } catch (RecognitionException re) { @@ -4532,21 +4618,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseIfBlockStmtContext ifElseIfBlockStmt() { IfElseIfBlockStmtContext _localctx = new IfElseIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 86, RULE_ifElseIfBlockStmt); + EnterRule(_localctx, 88, RULE_ifElseIfBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 925; Match(ELSEIF); - State = 926; Match(WS); - State = 927; ifConditionStmt(); - State = 928; Match(WS); - State = 929; Match(THEN); - State = 930; endOfStatement(); - State = 932; - switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { + State = 943; Match(ELSEIF); + State = 944; Match(WS); + State = 945; ifConditionStmt(); + State = 946; Match(WS); + State = 947; Match(THEN); + State = 948; endOfStatement(); + State = 950; + switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { case 1: { - State = 931; block(); + State = 949; block(); } break; } @@ -4594,18 +4680,18 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseBlockStmtContext ifElseBlockStmt() { IfElseBlockStmtContext _localctx = new IfElseBlockStmtContext(_ctx, State); - EnterRule(_localctx, 88, RULE_ifElseBlockStmt); + EnterRule(_localctx, 90, RULE_ifElseBlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 934; Match(ELSE); - State = 935; endOfStatement(); - State = 937; + State = 952; Match(ELSE); + State = 953; endOfStatement(); + State = 955; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 936; block(); + State = 954; block(); } } @@ -4651,13 +4737,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplementsStmtContext implementsStmt() { ImplementsStmtContext _localctx = new ImplementsStmtContext(_ctx, State); - EnterRule(_localctx, 90, RULE_implementsStmt); + EnterRule(_localctx, 92, RULE_implementsStmt); try { EnterOuterAlt(_localctx, 1); { - State = 939; Match(IMPLEMENTS); - State = 940; Match(WS); - State = 941; ambiguousIdentifier(); + State = 957; Match(IMPLEMENTS); + State = 958; Match(WS); + State = 959; ambiguousIdentifier(); } } catch (RecognitionException re) { @@ -4709,16 +4795,16 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public InputStmtContext inputStmt() { InputStmtContext _localctx = new InputStmtContext(_ctx, State); - EnterRule(_localctx, 92, RULE_inputStmt); + EnterRule(_localctx, 94, RULE_inputStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 943; Match(INPUT); - State = 944; Match(WS); - State = 945; fileNumber(); - State = 954; + State = 961; Match(INPUT); + State = 962; Match(WS); + State = 963; fileNumber(); + State = 972; _errHandler.Sync(this); _alt = 1; do { @@ -4726,33 +4812,33 @@ public InputStmtContext inputStmt() { case 1: { { - State = 947; + State = 965; _la = _input.La(1); if (_la==WS) { { - State = 946; Match(WS); + State = 964; Match(WS); } } - State = 949; Match(T__1); - State = 951; - switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { + State = 967; Match(T__1); + State = 969; + switch ( Interpreter.AdaptivePredict(_input,102,_ctx) ) { case 1: { - State = 950; Match(WS); + State = 968; Match(WS); } break; } - State = 953; valueStmt(0); + State = 971; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 956; + State = 974; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,102,_ctx); + _alt = Interpreter.AdaptivePredict(_input,103,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -4796,13 +4882,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public KillStmtContext killStmt() { KillStmtContext _localctx = new KillStmtContext(_ctx, State); - EnterRule(_localctx, 94, RULE_killStmt); + EnterRule(_localctx, 96, RULE_killStmt); try { EnterOuterAlt(_localctx, 1); { - State = 958; Match(KILL); - State = 959; Match(WS); - State = 960; valueStmt(0); + State = 976; Match(KILL); + State = 977; Match(WS); + State = 978; valueStmt(0); } } catch (RecognitionException re) { @@ -4852,39 +4938,39 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetStmtContext letStmt() { LetStmtContext _localctx = new LetStmtContext(_ctx, State); - EnterRule(_localctx, 96, RULE_letStmt); + EnterRule(_localctx, 98, RULE_letStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 964; - switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { + State = 982; + switch ( Interpreter.AdaptivePredict(_input,104,_ctx) ) { case 1: { - State = 962; Match(LET); - State = 963; Match(WS); + State = 980; Match(LET); + State = 981; Match(WS); } break; } - State = 966; implicitCallStmt_InStmt(); - State = 968; + State = 984; implicitCallStmt_InStmt(); + State = 986; _la = _input.La(1); if (_la==WS) { { - State = 967; Match(WS); + State = 985; Match(WS); } } - State = 970; Match(EQ); - State = 972; - switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { + State = 988; Match(EQ); + State = 990; + switch ( Interpreter.AdaptivePredict(_input,106,_ctx) ) { case 1: { - State = 971; Match(WS); + State = 989; Match(WS); } break; } - State = 974; valueStmt(0); + State = 992; valueStmt(0); } } catch (RecognitionException re) { @@ -4933,32 +5019,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineInputStmtContext lineInputStmt() { LineInputStmtContext _localctx = new LineInputStmtContext(_ctx, State); - EnterRule(_localctx, 98, RULE_lineInputStmt); + EnterRule(_localctx, 100, RULE_lineInputStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 976; Match(LINE_INPUT); - State = 977; Match(WS); - State = 978; fileNumber(); - State = 980; + State = 994; Match(LINE_INPUT); + State = 995; Match(WS); + State = 996; fileNumber(); + State = 998; _la = _input.La(1); if (_la==WS) { { - State = 979; Match(WS); + State = 997; Match(WS); } } - State = 982; Match(T__1); - State = 984; - switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { + State = 1000; Match(T__1); + State = 1002; + switch ( Interpreter.AdaptivePredict(_input,108,_ctx) ) { case 1: { - State = 983; Match(WS); + State = 1001; Match(WS); } break; } - State = 986; valueStmt(0); + State = 1004; valueStmt(0); } } catch (RecognitionException re) { @@ -5001,13 +5087,456 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LoadStmtContext loadStmt() { LoadStmtContext _localctx = new LoadStmtContext(_ctx, State); - EnterRule(_localctx, 100, RULE_loadStmt); + EnterRule(_localctx, 102, RULE_loadStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1006; Match(LOAD); + State = 1007; Match(WS); + State = 1008; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LockStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public LockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LockStmtContext lockStmt() { + LockStmtContext _localctx = new LockStmtContext(_ctx, State); + EnterRule(_localctx, 104, RULE_lockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1010; Match(LOCK); + State = 1011; Match(WS); + State = 1012; valueStmt(0); + State = 1027; + switch ( Interpreter.AdaptivePredict(_input,112,_ctx) ) { + case 1: + { + State = 1014; + _la = _input.La(1); + if (_la==WS) { + { + State = 1013; Match(WS); + } + } + + State = 1016; Match(T__1); + State = 1018; + switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { + case 1: + { + State = 1017; Match(WS); + } + break; + } + State = 1020; valueStmt(0); + State = 1025; + switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { + case 1: + { + State = 1021; Match(WS); + State = 1022; Match(TO); + State = 1023; Match(WS); + State = 1024; valueStmt(0); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LsetStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public LsetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lsetStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterLsetStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitLsetStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitLsetStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public LsetStmtContext lsetStmt() { + LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); + EnterRule(_localctx, 106, RULE_lsetStmt); + int _la; try { EnterOuterAlt(_localctx, 1); { - State = 988; Match(LOAD); - State = 989; Match(WS); - State = 990; valueStmt(0); + State = 1029; Match(LSET); + State = 1030; Match(WS); + State = 1031; implicitCallStmt_InStmt(); + State = 1033; + _la = _input.La(1); + if (_la==WS) { + { + State = 1032; Match(WS); + } + } + + State = 1035; Match(EQ); + State = 1037; + switch ( Interpreter.AdaptivePredict(_input,114,_ctx) ) { + case 1: + { + State = 1036; Match(WS); + } + break; + } + State = 1039; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroConstStmtContext : ParserRuleContext { + public ITerminalNode MACRO_CONST() { return GetToken(VBAParser.MACRO_CONST, 0); } + public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public MacroConstStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroConstStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterMacroConstStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitMacroConstStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitMacroConstStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MacroConstStmtContext macroConstStmt() { + MacroConstStmtContext _localctx = new MacroConstStmtContext(_ctx, State); + EnterRule(_localctx, 108, RULE_macroConstStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1041; Match(MACRO_CONST); + State = 1043; + _la = _input.La(1); + if (_la==WS) { + { + State = 1042; Match(WS); + } + } + + State = 1045; ambiguousIdentifier(); + State = 1047; + _la = _input.La(1); + if (_la==WS) { + { + State = 1046; Match(WS); + } + } + + State = 1049; Match(EQ); + State = 1051; + switch ( Interpreter.AdaptivePredict(_input,117,_ctx) ) { + case 1: + { + State = 1050; Match(WS); + } + break; + } + State = 1053; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroIfThenElseStmtContext : ParserRuleContext { + public IReadOnlyList macroElseIfBlockStmt() { + return GetRuleContexts(); + } + public ITerminalNode MACRO_END_IF() { return GetToken(VBAParser.MACRO_END_IF, 0); } + public MacroIfBlockStmtContext macroIfBlockStmt() { + return GetRuleContext(0); + } + public MacroElseIfBlockStmtContext macroElseIfBlockStmt(int i) { + return GetRuleContext(i); + } + public MacroElseBlockStmtContext macroElseBlockStmt() { + return GetRuleContext(0); + } + public MacroIfThenElseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroIfThenElseStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterMacroIfThenElseStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitMacroIfThenElseStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitMacroIfThenElseStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MacroIfThenElseStmtContext macroIfThenElseStmt() { + MacroIfThenElseStmtContext _localctx = new MacroIfThenElseStmtContext(_ctx, State); + EnterRule(_localctx, 110, RULE_macroIfThenElseStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1055; macroIfBlockStmt(); + State = 1059; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==MACRO_ELSEIF) { + { + { + State = 1056; macroElseIfBlockStmt(); + } + } + State = 1061; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 1063; + _la = _input.La(1); + if (_la==MACRO_ELSE) { + { + State = 1062; macroElseBlockStmt(); + } + } + + State = 1065; Match(MACRO_END_IF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroIfBlockStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); + } + public ModuleBodyContext moduleBody(int i) { + return GetRuleContext(i); + } + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public BlockContext block(int i) { + return GetRuleContext(i); + } + public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } + public ModuleDeclarationsContext moduleDeclarations(int i) { + return GetRuleContext(i); + } + public ITerminalNode MACRO_IF() { return GetToken(VBAParser.MACRO_IF, 0); } + public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + public IReadOnlyList moduleBody() { + return GetRuleContexts(); + } + public IReadOnlyList moduleDeclarations() { + return GetRuleContexts(); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public IReadOnlyList block() { + return GetRuleContexts(); + } + public MacroIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroIfBlockStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.EnterMacroIfBlockStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAListener typedListener = listener as IVBAListener; + if (typedListener != null) typedListener.ExitMacroIfBlockStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAVisitor typedVisitor = visitor as IVBAVisitor; + if (typedVisitor != null) return typedVisitor.VisitMacroIfBlockStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MacroIfBlockStmtContext macroIfBlockStmt() { + MacroIfBlockStmtContext _localctx = new MacroIfBlockStmtContext(_ctx, State); + EnterRule(_localctx, 112, RULE_macroIfBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1067; Match(MACRO_IF); + State = 1069; + switch ( Interpreter.AdaptivePredict(_input,120,_ctx) ) { + case 1: + { + State = 1068; Match(WS); + } + break; + } + State = 1071; ifConditionStmt(); + State = 1072; Match(WS); + State = 1073; Match(THEN); + State = 1074; endOfStatement(); + State = 1080; + _errHandler.Sync(this); + _la = _input.La(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 1078; + switch ( Interpreter.AdaptivePredict(_input,121,_ctx) ) { + case 1: + { + State = 1075; moduleDeclarations(); + } + break; + + case 2: + { + State = 1076; moduleBody(); + } + break; + + case 3: + { + State = 1077; block(); + } + break; + } + } + State = 1082; + _errHandler.Sync(this); + _la = _input.La(1); + } } } catch (RecognitionException re) { @@ -5021,85 +5550,107 @@ public LoadStmtContext loadStmt() { return _localctx; } - public partial class LockStmtContext : ParserRuleContext { + public partial class MacroElseIfBlockStmtContext : ParserRuleContext { public ITerminalNode WS(int i) { return GetToken(VBAParser.WS, i); } + public ModuleBodyContext moduleBody(int i) { + return GetRuleContext(i); + } + public ITerminalNode MACRO_ELSEIF() { return GetToken(VBAParser.MACRO_ELSEIF, 0); } public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); + public BlockContext block(int i) { + return GetRuleContext(i); } - public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); + public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } + public ModuleDeclarationsContext moduleDeclarations(int i) { + return GetRuleContext(i); } - public LockStmtContext(ParserRuleContext parent, int invokingState) + public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + public IReadOnlyList moduleBody() { + return GetRuleContexts(); + } + public IReadOnlyList moduleDeclarations() { + return GetRuleContexts(); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public IReadOnlyList block() { + return GetRuleContexts(); + } + public MacroElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_lockStmt; } } + public override int RuleIndex { get { return RULE_macroElseIfBlockStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLockStmt(this); + if (typedListener != null) typedListener.EnterMacroElseIfBlockStmt(this); } public override void ExitRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLockStmt(this); + if (typedListener != null) typedListener.ExitMacroElseIfBlockStmt(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLockStmt(this); + if (typedVisitor != null) return typedVisitor.VisitMacroElseIfBlockStmt(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public LockStmtContext lockStmt() { - LockStmtContext _localctx = new LockStmtContext(_ctx, State); - EnterRule(_localctx, 102, RULE_lockStmt); + public MacroElseIfBlockStmtContext macroElseIfBlockStmt() { + MacroElseIfBlockStmtContext _localctx = new MacroElseIfBlockStmtContext(_ctx, State); + EnterRule(_localctx, 114, RULE_macroElseIfBlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 992; Match(LOCK); - State = 993; Match(WS); - State = 994; valueStmt(0); - State = 1009; - switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { + State = 1083; Match(MACRO_ELSEIF); + State = 1085; + switch ( Interpreter.AdaptivePredict(_input,123,_ctx) ) { case 1: { - State = 996; - _la = _input.La(1); - if (_la==WS) { + State = 1084; Match(WS); + } + break; + } + State = 1087; ifConditionStmt(); + State = 1088; Match(WS); + State = 1089; Match(THEN); + State = 1090; endOfStatement(); + State = 1096; + _errHandler.Sync(this); + _la = _input.La(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + { + State = 1094; + switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { + case 1: { - State = 995; Match(WS); + State = 1091; moduleDeclarations(); } - } + break; - State = 998; Match(T__1); - State = 1000; - switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { - case 1: + case 2: { - State = 999; Match(WS); + State = 1092; moduleBody(); } break; - } - State = 1002; valueStmt(0); - State = 1007; - switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { - case 1: + + case 3: { - State = 1003; Match(WS); - State = 1004; Match(TO); - State = 1005; Match(WS); - State = 1006; valueStmt(0); + State = 1093; block(); } break; } } - break; + State = 1098; + _errHandler.Sync(this); + _la = _input.La(1); } } } @@ -5114,68 +5665,89 @@ public LockStmtContext lockStmt() { return _localctx; } - public partial class LsetStmtContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBAParser.WS, i); + public partial class MacroElseBlockStmtContext : ParserRuleContext { + public ModuleBodyContext moduleBody(int i) { + return GetRuleContext(i); } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); + public BlockContext block(int i) { + return GetRuleContext(i); } - public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); + public ITerminalNode MACRO_ELSE() { return GetToken(VBAParser.MACRO_ELSE, 0); } + public ModuleDeclarationsContext moduleDeclarations(int i) { + return GetRuleContext(i); } - public LsetStmtContext(ParserRuleContext parent, int invokingState) + public IReadOnlyList moduleBody() { + return GetRuleContexts(); + } + public IReadOnlyList moduleDeclarations() { + return GetRuleContexts(); + } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); + } + public IReadOnlyList block() { + return GetRuleContexts(); + } + public MacroElseBlockStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_lsetStmt; } } + public override int RuleIndex { get { return RULE_macroElseBlockStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLsetStmt(this); + if (typedListener != null) typedListener.EnterMacroElseBlockStmt(this); } public override void ExitRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLsetStmt(this); + if (typedListener != null) typedListener.ExitMacroElseBlockStmt(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLsetStmt(this); + if (typedVisitor != null) return typedVisitor.VisitMacroElseBlockStmt(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public LsetStmtContext lsetStmt() { - LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); - EnterRule(_localctx, 104, RULE_lsetStmt); + public MacroElseBlockStmtContext macroElseBlockStmt() { + MacroElseBlockStmtContext _localctx = new MacroElseBlockStmtContext(_ctx, State); + EnterRule(_localctx, 116, RULE_macroElseBlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1011; Match(LSET); - State = 1012; Match(WS); - State = 1013; implicitCallStmt_InStmt(); - State = 1015; + State = 1099; Match(MACRO_ELSE); + State = 1100; endOfStatement(); + State = 1106; + _errHandler.Sync(this); _la = _input.La(1); - if (_la==WS) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1014; Match(WS); - } - } + State = 1104; + switch ( Interpreter.AdaptivePredict(_input,126,_ctx) ) { + case 1: + { + State = 1101; moduleDeclarations(); + } + break; - State = 1017; Match(EQ); - State = 1019; - switch ( Interpreter.AdaptivePredict(_input,113,_ctx) ) { - case 1: - { - State = 1018; Match(WS); + case 2: + { + State = 1102; moduleBody(); + } + break; + + case 3: + { + State = 1103; block(); + } + break; } - break; + } + State = 1108; + _errHandler.Sync(this); + _la = _input.La(1); } - State = 1021; valueStmt(0); } } catch (RecognitionException re) { @@ -5223,39 +5795,39 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MidStmtContext midStmt() { MidStmtContext _localctx = new MidStmtContext(_ctx, State); - EnterRule(_localctx, 106, RULE_midStmt); + EnterRule(_localctx, 118, RULE_midStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1023; Match(MID); - State = 1025; + State = 1109; Match(MID); + State = 1111; _la = _input.La(1); if (_la==WS) { { - State = 1024; Match(WS); + State = 1110; Match(WS); } } - State = 1027; Match(LPAREN); - State = 1029; - switch ( Interpreter.AdaptivePredict(_input,115,_ctx) ) { + State = 1113; Match(LPAREN); + State = 1115; + switch ( Interpreter.AdaptivePredict(_input,129,_ctx) ) { case 1: { - State = 1028; Match(WS); + State = 1114; Match(WS); } break; } - State = 1031; argsCall(); - State = 1033; + State = 1117; argsCall(); + State = 1119; _la = _input.La(1); if (_la==WS) { { - State = 1032; Match(WS); + State = 1118; Match(WS); } } - State = 1035; Match(RPAREN); + State = 1121; Match(RPAREN); } } catch (RecognitionException re) { @@ -5298,13 +5870,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MkdirStmtContext mkdirStmt() { MkdirStmtContext _localctx = new MkdirStmtContext(_ctx, State); - EnterRule(_localctx, 108, RULE_mkdirStmt); + EnterRule(_localctx, 120, RULE_mkdirStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1037; Match(MKDIR); - State = 1038; Match(WS); - State = 1039; valueStmt(0); + State = 1123; Match(MKDIR); + State = 1124; Match(WS); + State = 1125; valueStmt(0); } } catch (RecognitionException re) { @@ -5354,17 +5926,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NameStmtContext nameStmt() { NameStmtContext _localctx = new NameStmtContext(_ctx, State); - EnterRule(_localctx, 110, RULE_nameStmt); + EnterRule(_localctx, 122, RULE_nameStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1041; Match(NAME); - State = 1042; Match(WS); - State = 1043; valueStmt(0); - State = 1044; Match(WS); - State = 1045; Match(AS); - State = 1046; Match(WS); - State = 1047; valueStmt(0); + State = 1127; Match(NAME); + State = 1128; Match(WS); + State = 1129; valueStmt(0); + State = 1130; Match(WS); + State = 1131; Match(AS); + State = 1132; Match(WS); + State = 1133; valueStmt(0); } } catch (RecognitionException re) { @@ -5414,32 +5986,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnErrorStmtContext onErrorStmt() { OnErrorStmtContext _localctx = new OnErrorStmtContext(_ctx, State); - EnterRule(_localctx, 112, RULE_onErrorStmt); + EnterRule(_localctx, 124, RULE_onErrorStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1049; + State = 1135; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1050; Match(WS); - State = 1057; + State = 1136; Match(WS); + State = 1143; switch (_input.La(1)) { case GOTO: { - State = 1051; Match(GOTO); - State = 1052; Match(WS); - State = 1053; valueStmt(0); + State = 1137; Match(GOTO); + State = 1138; Match(WS); + State = 1139; valueStmt(0); } break; case RESUME: { - State = 1054; Match(RESUME); - State = 1055; Match(WS); - State = 1056; Match(NEXT); + State = 1140; Match(RESUME); + State = 1141; Match(WS); + State = 1142; Match(NEXT); } break; default: @@ -5494,50 +6066,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoToStmtContext onGoToStmt() { OnGoToStmtContext _localctx = new OnGoToStmtContext(_ctx, State); - EnterRule(_localctx, 114, RULE_onGoToStmt); + EnterRule(_localctx, 126, RULE_onGoToStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1059; Match(ON); - State = 1060; Match(WS); - State = 1061; valueStmt(0); - State = 1062; Match(WS); - State = 1063; Match(GOTO); - State = 1064; Match(WS); - State = 1065; valueStmt(0); - State = 1076; + State = 1145; Match(ON); + State = 1146; Match(WS); + State = 1147; valueStmt(0); + State = 1148; Match(WS); + State = 1149; Match(GOTO); + State = 1150; Match(WS); + State = 1151; valueStmt(0); + State = 1162; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,120,_ctx); + _alt = Interpreter.AdaptivePredict(_input,134,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1067; + State = 1153; _la = _input.La(1); if (_la==WS) { { - State = 1066; Match(WS); + State = 1152; Match(WS); } } - State = 1069; Match(T__1); - State = 1071; - switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { + State = 1155; Match(T__1); + State = 1157; + switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { case 1: { - State = 1070; Match(WS); + State = 1156; Match(WS); } break; } - State = 1073; valueStmt(0); + State = 1159; valueStmt(0); } } } - State = 1078; + State = 1164; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,120,_ctx); + _alt = Interpreter.AdaptivePredict(_input,134,_ctx); } } } @@ -5588,50 +6160,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoSubStmtContext onGoSubStmt() { OnGoSubStmtContext _localctx = new OnGoSubStmtContext(_ctx, State); - EnterRule(_localctx, 116, RULE_onGoSubStmt); + EnterRule(_localctx, 128, RULE_onGoSubStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1079; Match(ON); - State = 1080; Match(WS); - State = 1081; valueStmt(0); - State = 1082; Match(WS); - State = 1083; Match(GOSUB); - State = 1084; Match(WS); - State = 1085; valueStmt(0); - State = 1096; + State = 1165; Match(ON); + State = 1166; Match(WS); + State = 1167; valueStmt(0); + State = 1168; Match(WS); + State = 1169; Match(GOSUB); + State = 1170; Match(WS); + State = 1171; valueStmt(0); + State = 1182; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,123,_ctx); + _alt = Interpreter.AdaptivePredict(_input,137,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1087; + State = 1173; _la = _input.La(1); if (_la==WS) { { - State = 1086; Match(WS); + State = 1172; Match(WS); } } - State = 1089; Match(T__1); - State = 1091; - switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { + State = 1175; Match(T__1); + State = 1177; + switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { case 1: { - State = 1090; Match(WS); + State = 1176; Match(WS); } break; } - State = 1093; valueStmt(0); + State = 1179; valueStmt(0); } } } - State = 1098; + State = 1184; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,123,_ctx); + _alt = Interpreter.AdaptivePredict(_input,137,_ctx); } } } @@ -5701,45 +6273,45 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OpenStmtContext openStmt() { OpenStmtContext _localctx = new OpenStmtContext(_ctx, State); - EnterRule(_localctx, 118, RULE_openStmt); + EnterRule(_localctx, 130, RULE_openStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1099; Match(OPEN); - State = 1100; Match(WS); - State = 1101; valueStmt(0); - State = 1102; Match(WS); - State = 1103; Match(FOR); - State = 1104; Match(WS); - State = 1105; + State = 1185; Match(OPEN); + State = 1186; Match(WS); + State = 1187; valueStmt(0); + State = 1188; Match(WS); + State = 1189; Match(FOR); + State = 1190; Match(WS); + State = 1191; _la = _input.La(1); if ( !(_la==APPEND || _la==BINARY || ((((_la - 87)) & ~0x3f) == 0 && ((1L << (_la - 87)) & ((1L << (INPUT - 87)) | (1L << (OUTPUT - 87)) | (1L << (RANDOM - 87)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1110; - switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { + State = 1196; + switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { case 1: { - State = 1106; Match(WS); - State = 1107; Match(ACCESS); - State = 1108; Match(WS); - State = 1109; + State = 1192; Match(WS); + State = 1193; Match(ACCESS); + State = 1194; Match(WS); + State = 1195; _la = _input.La(1); - if ( !(((((_la - 138)) & ~0x3f) == 0 && ((1L << (_la - 138)) & ((1L << (READ - 138)) | (1L << (READ_WRITE - 138)) | (1L << (WRITE - 138)))) != 0)) ) { + if ( !(((((_la - 143)) & ~0x3f) == 0 && ((1L << (_la - 143)) & ((1L << (READ - 143)) | (1L << (READ_WRITE - 143)) | (1L << (WRITE - 143)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); } break; } - State = 1114; - switch ( Interpreter.AdaptivePredict(_input,125,_ctx) ) { + State = 1200; + switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { case 1: { - State = 1112; Match(WS); - State = 1113; + State = 1198; Match(WS); + State = 1199; _la = _input.La(1); if ( !(((((_la - 100)) & ~0x3f) == 0 && ((1L << (_la - 100)) & ((1L << (LOCK_READ - 100)) | (1L << (LOCK_WRITE - 100)) | (1L << (LOCK_READ_WRITE - 100)) | (1L << (SHARED - 100)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -5748,34 +6320,34 @@ public OpenStmtContext openStmt() { } break; } - State = 1116; Match(WS); - State = 1117; Match(AS); - State = 1118; Match(WS); - State = 1119; fileNumber(); - State = 1130; - switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { + State = 1202; Match(WS); + State = 1203; Match(AS); + State = 1204; Match(WS); + State = 1205; fileNumber(); + State = 1216; + switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { case 1: { - State = 1120; Match(WS); - State = 1121; Match(LEN); - State = 1123; + State = 1206; Match(WS); + State = 1207; Match(LEN); + State = 1209; _la = _input.La(1); if (_la==WS) { { - State = 1122; Match(WS); + State = 1208; Match(WS); } } - State = 1125; Match(EQ); - State = 1127; - switch ( Interpreter.AdaptivePredict(_input,127,_ctx) ) { + State = 1211; Match(EQ); + State = 1213; + switch ( Interpreter.AdaptivePredict(_input,141,_ctx) ) { case 1: { - State = 1126; Match(WS); + State = 1212; Match(WS); } break; } - State = 1129; valueStmt(0); + State = 1215; valueStmt(0); } break; } @@ -5826,59 +6398,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputListContext outputList() { OutputListContext _localctx = new OutputListContext(_ctx, State); - EnterRule(_localctx, 120, RULE_outputList); + EnterRule(_localctx, 132, RULE_outputList); int _la; try { int _alt; - State = 1165; - switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { + State = 1251; + switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1132; outputList_Expression(); - State = 1145; + State = 1218; outputList_Expression(); + State = 1231; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + _alt = Interpreter.AdaptivePredict(_input,146,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1134; + State = 1220; _la = _input.La(1); if (_la==WS) { { - State = 1133; Match(WS); + State = 1219; Match(WS); } } - State = 1136; + State = 1222; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1138; - switch ( Interpreter.AdaptivePredict(_input,130,_ctx) ) { + State = 1224; + switch ( Interpreter.AdaptivePredict(_input,144,_ctx) ) { case 1: { - State = 1137; Match(WS); + State = 1223; Match(WS); } break; } - State = 1141; - switch ( Interpreter.AdaptivePredict(_input,131,_ctx) ) { + State = 1227; + switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { case 1: { - State = 1140; outputList_Expression(); + State = 1226; outputList_Expression(); } break; } } } } - State = 1147; + State = 1233; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + _alt = Interpreter.AdaptivePredict(_input,146,_ctx); } } break; @@ -5886,15 +6458,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1149; - switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { + State = 1235; + switch ( Interpreter.AdaptivePredict(_input,147,_ctx) ) { case 1: { - State = 1148; outputList_Expression(); + State = 1234; outputList_Expression(); } break; } - State = 1161; + State = 1247; _errHandler.Sync(this); _alt = 1; do { @@ -5902,33 +6474,33 @@ public OutputListContext outputList() { case 1: { { - State = 1152; + State = 1238; _la = _input.La(1); if (_la==WS) { { - State = 1151; Match(WS); + State = 1237; Match(WS); } } - State = 1154; + State = 1240; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1156; - switch ( Interpreter.AdaptivePredict(_input,135,_ctx) ) { + State = 1242; + switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { case 1: { - State = 1155; Match(WS); + State = 1241; Match(WS); } break; } - State = 1159; - switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { + State = 1245; + switch ( Interpreter.AdaptivePredict(_input,150,_ctx) ) { case 1: { - State = 1158; outputList_Expression(); + State = 1244; outputList_Expression(); } break; } @@ -5938,9 +6510,9 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1163; + State = 1249; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,137,_ctx); + _alt = Interpreter.AdaptivePredict(_input,151,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; @@ -5995,58 +6567,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputList_ExpressionContext outputList_Expression() { OutputList_ExpressionContext _localctx = new OutputList_ExpressionContext(_ctx, State); - EnterRule(_localctx, 122, RULE_outputList_Expression); + EnterRule(_localctx, 134, RULE_outputList_Expression); int _la; try { - State = 1184; - switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { + State = 1270; + switch ( Interpreter.AdaptivePredict(_input,157,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1167; valueStmt(0); + State = 1253; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1168; + State = 1254; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1182; - switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { + State = 1268; + switch ( Interpreter.AdaptivePredict(_input,156,_ctx) ) { case 1: { - State = 1170; + State = 1256; _la = _input.La(1); if (_la==WS) { { - State = 1169; Match(WS); + State = 1255; Match(WS); } } - State = 1172; Match(LPAREN); - State = 1174; - switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { + State = 1258; Match(LPAREN); + State = 1260; + switch ( Interpreter.AdaptivePredict(_input,154,_ctx) ) { case 1: { - State = 1173; Match(WS); + State = 1259; Match(WS); } break; } - State = 1176; argsCall(); - State = 1178; + State = 1262; argsCall(); + State = 1264; _la = _input.La(1); if (_la==WS) { { - State = 1177; Match(WS); + State = 1263; Match(WS); } } - State = 1180; Match(RPAREN); + State = 1266; Match(RPAREN); } break; } @@ -6100,36 +6672,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PrintStmtContext printStmt() { PrintStmtContext _localctx = new PrintStmtContext(_ctx, State); - EnterRule(_localctx, 124, RULE_printStmt); + EnterRule(_localctx, 136, RULE_printStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1186; Match(PRINT); - State = 1187; Match(WS); - State = 1188; fileNumber(); - State = 1190; + State = 1272; Match(PRINT); + State = 1273; Match(WS); + State = 1274; fileNumber(); + State = 1276; _la = _input.La(1); if (_la==WS) { { - State = 1189; Match(WS); + State = 1275; Match(WS); } } - State = 1192; Match(T__1); - State = 1197; - switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { + State = 1278; Match(T__1); + State = 1283; + switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { case 1: { - State = 1194; - switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { + State = 1280; + switch ( Interpreter.AdaptivePredict(_input,159,_ctx) ) { case 1: { - State = 1193; Match(WS); + State = 1279; Match(WS); } break; } - State = 1196; outputList(); + State = 1282; outputList(); } break; } @@ -6198,75 +6770,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyGetStmtContext propertyGetStmt() { PropertyGetStmtContext _localctx = new PropertyGetStmtContext(_ctx, State); - EnterRule(_localctx, 126, RULE_propertyGetStmt); + EnterRule(_localctx, 138, RULE_propertyGetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1202; + State = 1288; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1199; visibility(); - State = 1200; Match(WS); + State = 1285; visibility(); + State = 1286; Match(WS); } } - State = 1206; + State = 1292; _la = _input.La(1); if (_la==STATIC) { { - State = 1204; Match(STATIC); - State = 1205; Match(WS); + State = 1290; Match(STATIC); + State = 1291; Match(WS); } } - State = 1208; Match(PROPERTY_GET); - State = 1209; Match(WS); - State = 1210; ambiguousIdentifier(); - State = 1212; - switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { + State = 1294; Match(PROPERTY_GET); + State = 1295; Match(WS); + State = 1296; ambiguousIdentifier(); + State = 1298; + switch ( Interpreter.AdaptivePredict(_input,163,_ctx) ) { case 1: { - State = 1211; typeHint(); + State = 1297; typeHint(); } break; } - State = 1218; - switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { + State = 1304; + switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { case 1: { - State = 1215; + State = 1301; _la = _input.La(1); if (_la==WS) { { - State = 1214; Match(WS); + State = 1300; Match(WS); } } - State = 1217; argList(); + State = 1303; argList(); } break; } - State = 1222; - switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { + State = 1308; + switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { case 1: { - State = 1220; Match(WS); - State = 1221; asTypeClause(); + State = 1306; Match(WS); + State = 1307; asTypeClause(); } break; } - State = 1224; endOfStatement(); - State = 1226; + State = 1310; endOfStatement(); + State = 1312; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1225; block(); + State = 1311; block(); } } - State = 1228; Match(END_PROPERTY); + State = 1314; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6326,58 +6898,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertySetStmtContext propertySetStmt() { PropertySetStmtContext _localctx = new PropertySetStmtContext(_ctx, State); - EnterRule(_localctx, 128, RULE_propertySetStmt); + EnterRule(_localctx, 140, RULE_propertySetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1233; + State = 1319; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1230; visibility(); - State = 1231; Match(WS); + State = 1316; visibility(); + State = 1317; Match(WS); } } - State = 1237; + State = 1323; _la = _input.La(1); if (_la==STATIC) { { - State = 1235; Match(STATIC); - State = 1236; Match(WS); + State = 1321; Match(STATIC); + State = 1322; Match(WS); } } - State = 1239; Match(PROPERTY_SET); - State = 1240; Match(WS); - State = 1241; ambiguousIdentifier(); - State = 1246; - switch ( Interpreter.AdaptivePredict(_input,157,_ctx) ) { + State = 1325; Match(PROPERTY_SET); + State = 1326; Match(WS); + State = 1327; ambiguousIdentifier(); + State = 1332; + switch ( Interpreter.AdaptivePredict(_input,171,_ctx) ) { case 1: { - State = 1243; + State = 1329; _la = _input.La(1); if (_la==WS) { { - State = 1242; Match(WS); + State = 1328; Match(WS); } } - State = 1245; argList(); + State = 1331; argList(); } break; } - State = 1248; endOfStatement(); - State = 1250; + State = 1334; endOfStatement(); + State = 1336; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1249; block(); + State = 1335; block(); } } - State = 1252; Match(END_PROPERTY); + State = 1338; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6437,58 +7009,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyLetStmtContext propertyLetStmt() { PropertyLetStmtContext _localctx = new PropertyLetStmtContext(_ctx, State); - EnterRule(_localctx, 130, RULE_propertyLetStmt); + EnterRule(_localctx, 142, RULE_propertyLetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1257; + State = 1343; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1254; visibility(); - State = 1255; Match(WS); + State = 1340; visibility(); + State = 1341; Match(WS); } } - State = 1261; + State = 1347; _la = _input.La(1); if (_la==STATIC) { { - State = 1259; Match(STATIC); - State = 1260; Match(WS); + State = 1345; Match(STATIC); + State = 1346; Match(WS); } } - State = 1263; Match(PROPERTY_LET); - State = 1264; Match(WS); - State = 1265; ambiguousIdentifier(); - State = 1270; - switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { + State = 1349; Match(PROPERTY_LET); + State = 1350; Match(WS); + State = 1351; ambiguousIdentifier(); + State = 1356; + switch ( Interpreter.AdaptivePredict(_input,176,_ctx) ) { case 1: { - State = 1267; + State = 1353; _la = _input.La(1); if (_la==WS) { { - State = 1266; Match(WS); + State = 1352; Match(WS); } } - State = 1269; argList(); + State = 1355; argList(); } break; } - State = 1272; endOfStatement(); - State = 1274; + State = 1358; endOfStatement(); + State = 1360; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1273; block(); + State = 1359; block(); } } - State = 1276; Match(END_PROPERTY); + State = 1362; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6540,57 +7112,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PutStmtContext putStmt() { PutStmtContext _localctx = new PutStmtContext(_ctx, State); - EnterRule(_localctx, 132, RULE_putStmt); + EnterRule(_localctx, 144, RULE_putStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1278; Match(PUT); - State = 1279; Match(WS); - State = 1280; fileNumber(); - State = 1282; + State = 1364; Match(PUT); + State = 1365; Match(WS); + State = 1366; fileNumber(); + State = 1368; _la = _input.La(1); if (_la==WS) { { - State = 1281; Match(WS); + State = 1367; Match(WS); } } - State = 1284; Match(T__1); - State = 1286; - switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { + State = 1370; Match(T__1); + State = 1372; + switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { case 1: { - State = 1285; Match(WS); + State = 1371; Match(WS); } break; } - State = 1289; - switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { + State = 1375; + switch ( Interpreter.AdaptivePredict(_input,180,_ctx) ) { case 1: { - State = 1288; valueStmt(0); + State = 1374; valueStmt(0); } break; } - State = 1292; + State = 1378; _la = _input.La(1); if (_la==WS) { { - State = 1291; Match(WS); + State = 1377; Match(WS); } } - State = 1294; Match(T__1); - State = 1296; - switch ( Interpreter.AdaptivePredict(_input,168,_ctx) ) { + State = 1380; Match(T__1); + State = 1382; + switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { case 1: { - State = 1295; Match(WS); + State = 1381; Match(WS); } break; } - State = 1298; valueStmt(0); + State = 1384; valueStmt(0); } } catch (RecognitionException re) { @@ -6641,52 +7213,52 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RaiseEventStmtContext raiseEventStmt() { RaiseEventStmtContext _localctx = new RaiseEventStmtContext(_ctx, State); - EnterRule(_localctx, 134, RULE_raiseEventStmt); + EnterRule(_localctx, 146, RULE_raiseEventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1300; Match(RAISEEVENT); - State = 1301; Match(WS); - State = 1302; ambiguousIdentifier(); - State = 1317; - switch ( Interpreter.AdaptivePredict(_input,173,_ctx) ) { + State = 1386; Match(RAISEEVENT); + State = 1387; Match(WS); + State = 1388; ambiguousIdentifier(); + State = 1403; + switch ( Interpreter.AdaptivePredict(_input,187,_ctx) ) { case 1: { - State = 1304; + State = 1390; _la = _input.La(1); if (_la==WS) { { - State = 1303; Match(WS); + State = 1389; Match(WS); } } - State = 1306; Match(LPAREN); - State = 1308; - switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { + State = 1392; Match(LPAREN); + State = 1394; + switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { case 1: { - State = 1307; Match(WS); + State = 1393; Match(WS); } break; } - State = 1314; - switch ( Interpreter.AdaptivePredict(_input,172,_ctx) ) { + State = 1400; + switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { case 1: { - State = 1310; argsCall(); - State = 1312; + State = 1396; argsCall(); + State = 1398; _la = _input.La(1); if (_la==WS) { { - State = 1311; Match(WS); + State = 1397; Match(WS); } } } break; } - State = 1316; Match(RPAREN); + State = 1402; Match(RPAREN); } break; } @@ -6732,17 +7304,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RandomizeStmtContext randomizeStmt() { RandomizeStmtContext _localctx = new RandomizeStmtContext(_ctx, State); - EnterRule(_localctx, 136, RULE_randomizeStmt); + EnterRule(_localctx, 148, RULE_randomizeStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1319; Match(RANDOMIZE); - State = 1322; - switch ( Interpreter.AdaptivePredict(_input,174,_ctx) ) { + State = 1405; Match(RANDOMIZE); + State = 1408; + switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { case 1: { - State = 1320; Match(WS); - State = 1321; valueStmt(0); + State = 1406; Match(WS); + State = 1407; valueStmt(0); } break; } @@ -6795,55 +7367,55 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimStmtContext redimStmt() { RedimStmtContext _localctx = new RedimStmtContext(_ctx, State); - EnterRule(_localctx, 138, RULE_redimStmt); + EnterRule(_localctx, 150, RULE_redimStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1324; Match(REDIM); - State = 1325; Match(WS); - State = 1328; - switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { + State = 1410; Match(REDIM); + State = 1411; Match(WS); + State = 1414; + switch ( Interpreter.AdaptivePredict(_input,189,_ctx) ) { case 1: { - State = 1326; Match(PRESERVE); - State = 1327; Match(WS); + State = 1412; Match(PRESERVE); + State = 1413; Match(WS); } break; } - State = 1330; redimSubStmt(); - State = 1341; + State = 1416; redimSubStmt(); + State = 1427; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,178,_ctx); + _alt = Interpreter.AdaptivePredict(_input,192,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1332; + State = 1418; _la = _input.La(1); if (_la==WS) { { - State = 1331; Match(WS); + State = 1417; Match(WS); } } - State = 1334; Match(T__1); - State = 1336; - switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { + State = 1420; Match(T__1); + State = 1422; + switch ( Interpreter.AdaptivePredict(_input,191,_ctx) ) { case 1: { - State = 1335; Match(WS); + State = 1421; Match(WS); } break; } - State = 1338; redimSubStmt(); + State = 1424; redimSubStmt(); } } } - State = 1343; + State = 1429; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,178,_ctx); + _alt = Interpreter.AdaptivePredict(_input,192,_ctx); } } } @@ -6897,45 +7469,45 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimSubStmtContext redimSubStmt() { RedimSubStmtContext _localctx = new RedimSubStmtContext(_ctx, State); - EnterRule(_localctx, 140, RULE_redimSubStmt); + EnterRule(_localctx, 152, RULE_redimSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1344; implicitCallStmt_InStmt(); - State = 1346; + State = 1430; implicitCallStmt_InStmt(); + State = 1432; _la = _input.La(1); if (_la==WS) { { - State = 1345; Match(WS); + State = 1431; Match(WS); } } - State = 1348; Match(LPAREN); - State = 1350; - switch ( Interpreter.AdaptivePredict(_input,180,_ctx) ) { + State = 1434; Match(LPAREN); + State = 1436; + switch ( Interpreter.AdaptivePredict(_input,194,_ctx) ) { case 1: { - State = 1349; Match(WS); + State = 1435; Match(WS); } break; } - State = 1352; subscripts(); - State = 1354; + State = 1438; subscripts(); + State = 1440; _la = _input.La(1); if (_la==WS) { { - State = 1353; Match(WS); + State = 1439; Match(WS); } } - State = 1356; Match(RPAREN); - State = 1359; - switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { + State = 1442; Match(RPAREN); + State = 1445; + switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { case 1: { - State = 1357; Match(WS); - State = 1358; asTypeClause(); + State = 1443; Match(WS); + State = 1444; asTypeClause(); } break; } @@ -6977,11 +7549,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResetStmtContext resetStmt() { ResetStmtContext _localctx = new ResetStmtContext(_ctx, State); - EnterRule(_localctx, 142, RULE_resetStmt); + EnterRule(_localctx, 154, RULE_resetStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1361; Match(RESET); + State = 1447; Match(RESET); } } catch (RecognitionException re) { @@ -7025,27 +7597,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResumeStmtContext resumeStmt() { ResumeStmtContext _localctx = new ResumeStmtContext(_ctx, State); - EnterRule(_localctx, 144, RULE_resumeStmt); + EnterRule(_localctx, 156, RULE_resumeStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1363; Match(RESUME); - State = 1369; - switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { + State = 1449; Match(RESUME); + State = 1455; + switch ( Interpreter.AdaptivePredict(_input,198,_ctx) ) { case 1: { - State = 1364; Match(WS); - State = 1367; - switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { + State = 1450; Match(WS); + State = 1453; + switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { case 1: { - State = 1365; Match(NEXT); + State = 1451; Match(NEXT); } break; case 2: { - State = 1366; ambiguousIdentifier(); + State = 1452; ambiguousIdentifier(); } break; } @@ -7090,11 +7662,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReturnStmtContext returnStmt() { ReturnStmtContext _localctx = new ReturnStmtContext(_ctx, State); - EnterRule(_localctx, 146, RULE_returnStmt); + EnterRule(_localctx, 158, RULE_returnStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1371; Match(RETURN); + State = 1457; Match(RETURN); } } catch (RecognitionException re) { @@ -7137,13 +7709,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RmdirStmtContext rmdirStmt() { RmdirStmtContext _localctx = new RmdirStmtContext(_ctx, State); - EnterRule(_localctx, 148, RULE_rmdirStmt); + EnterRule(_localctx, 160, RULE_rmdirStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1373; Match(RMDIR); - State = 1374; Match(WS); - State = 1375; valueStmt(0); + State = 1459; Match(RMDIR); + State = 1460; Match(WS); + State = 1461; valueStmt(0); } } catch (RecognitionException re) { @@ -7193,32 +7765,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RsetStmtContext rsetStmt() { RsetStmtContext _localctx = new RsetStmtContext(_ctx, State); - EnterRule(_localctx, 150, RULE_rsetStmt); + EnterRule(_localctx, 162, RULE_rsetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1377; Match(RSET); - State = 1378; Match(WS); - State = 1379; implicitCallStmt_InStmt(); - State = 1381; + State = 1463; Match(RSET); + State = 1464; Match(WS); + State = 1465; implicitCallStmt_InStmt(); + State = 1467; _la = _input.La(1); if (_la==WS) { { - State = 1380; Match(WS); + State = 1466; Match(WS); } } - State = 1383; Match(EQ); - State = 1385; - switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { + State = 1469; Match(EQ); + State = 1471; + switch ( Interpreter.AdaptivePredict(_input,200,_ctx) ) { case 1: { - State = 1384; Match(WS); + State = 1470; Match(WS); } break; } - State = 1387; valueStmt(0); + State = 1473; valueStmt(0); } } catch (RecognitionException re) { @@ -7267,32 +7839,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SavepictureStmtContext savepictureStmt() { SavepictureStmtContext _localctx = new SavepictureStmtContext(_ctx, State); - EnterRule(_localctx, 152, RULE_savepictureStmt); + EnterRule(_localctx, 164, RULE_savepictureStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1389; Match(SAVEPICTURE); - State = 1390; Match(WS); - State = 1391; valueStmt(0); - State = 1393; + State = 1475; Match(SAVEPICTURE); + State = 1476; Match(WS); + State = 1477; valueStmt(0); + State = 1479; _la = _input.La(1); if (_la==WS) { { - State = 1392; Match(WS); + State = 1478; Match(WS); } } - State = 1395; Match(T__1); - State = 1397; - switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { + State = 1481; Match(T__1); + State = 1483; + switch ( Interpreter.AdaptivePredict(_input,202,_ctx) ) { case 1: { - State = 1396; Match(WS); + State = 1482; Match(WS); } break; } - State = 1399; valueStmt(0); + State = 1485; valueStmt(0); } } catch (RecognitionException re) { @@ -7341,68 +7913,68 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SaveSettingStmtContext saveSettingStmt() { SaveSettingStmtContext _localctx = new SaveSettingStmtContext(_ctx, State); - EnterRule(_localctx, 154, RULE_saveSettingStmt); + EnterRule(_localctx, 166, RULE_saveSettingStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1401; Match(SAVESETTING); - State = 1402; Match(WS); - State = 1403; valueStmt(0); - State = 1405; + State = 1487; Match(SAVESETTING); + State = 1488; Match(WS); + State = 1489; valueStmt(0); + State = 1491; _la = _input.La(1); if (_la==WS) { { - State = 1404; Match(WS); + State = 1490; Match(WS); } } - State = 1407; Match(T__1); - State = 1409; - switch ( Interpreter.AdaptivePredict(_input,190,_ctx) ) { + State = 1493; Match(T__1); + State = 1495; + switch ( Interpreter.AdaptivePredict(_input,204,_ctx) ) { case 1: { - State = 1408; Match(WS); + State = 1494; Match(WS); } break; } - State = 1411; valueStmt(0); - State = 1413; + State = 1497; valueStmt(0); + State = 1499; _la = _input.La(1); if (_la==WS) { { - State = 1412; Match(WS); + State = 1498; Match(WS); } } - State = 1415; Match(T__1); - State = 1417; - switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { + State = 1501; Match(T__1); + State = 1503; + switch ( Interpreter.AdaptivePredict(_input,206,_ctx) ) { case 1: { - State = 1416; Match(WS); + State = 1502; Match(WS); } break; } - State = 1419; valueStmt(0); - State = 1421; + State = 1505; valueStmt(0); + State = 1507; _la = _input.La(1); if (_la==WS) { { - State = 1420; Match(WS); + State = 1506; Match(WS); } } - State = 1423; Match(T__1); - State = 1425; - switch ( Interpreter.AdaptivePredict(_input,194,_ctx) ) { + State = 1509; Match(T__1); + State = 1511; + switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { case 1: { - State = 1424; Match(WS); + State = 1510; Match(WS); } break; } - State = 1427; valueStmt(0); + State = 1513; valueStmt(0); } } catch (RecognitionException re) { @@ -7451,32 +8023,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SeekStmtContext seekStmt() { SeekStmtContext _localctx = new SeekStmtContext(_ctx, State); - EnterRule(_localctx, 156, RULE_seekStmt); + EnterRule(_localctx, 168, RULE_seekStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1429; Match(SEEK); - State = 1430; Match(WS); - State = 1431; fileNumber(); - State = 1433; + State = 1515; Match(SEEK); + State = 1516; Match(WS); + State = 1517; fileNumber(); + State = 1519; _la = _input.La(1); if (_la==WS) { { - State = 1432; Match(WS); + State = 1518; Match(WS); } } - State = 1435; Match(T__1); - State = 1437; - switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { + State = 1521; Match(T__1); + State = 1523; + switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { case 1: { - State = 1436; Match(WS); + State = 1522; Match(WS); } break; } - State = 1439; valueStmt(0); + State = 1525; valueStmt(0); } } catch (RecognitionException re) { @@ -7533,31 +8105,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SelectCaseStmtContext selectCaseStmt() { SelectCaseStmtContext _localctx = new SelectCaseStmtContext(_ctx, State); - EnterRule(_localctx, 158, RULE_selectCaseStmt); + EnterRule(_localctx, 170, RULE_selectCaseStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1441; Match(SELECT); - State = 1442; Match(WS); - State = 1443; Match(CASE); - State = 1444; Match(WS); - State = 1445; valueStmt(0); - State = 1446; endOfStatement(); - State = 1450; + State = 1527; Match(SELECT); + State = 1528; Match(WS); + State = 1529; Match(CASE); + State = 1530; Match(WS); + State = 1531; valueStmt(0); + State = 1532; endOfStatement(); + State = 1536; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1447; sC_Case(); + State = 1533; sC_Case(); } } - State = 1452; + State = 1538; _errHandler.Sync(this); _la = _input.La(1); } - State = 1453; Match(END_SELECT); + State = 1539; Match(END_SELECT); } } catch (RecognitionException re) { @@ -7660,34 +8232,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_SelectionContext sC_Selection() { SC_SelectionContext _localctx = new SC_SelectionContext(_ctx, State); - EnterRule(_localctx, 160, RULE_sC_Selection); + EnterRule(_localctx, 172, RULE_sC_Selection); int _la; try { - State = 1472; - switch ( Interpreter.AdaptivePredict(_input,200,_ctx) ) { + State = 1558; + switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1455; Match(IS); - State = 1457; + State = 1541; Match(IS); + State = 1543; _la = _input.La(1); if (_la==WS) { { - State = 1456; Match(WS); + State = 1542; Match(WS); } } - State = 1459; comparisonOperator(); - State = 1461; - switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { + State = 1545; comparisonOperator(); + State = 1547; + switch ( Interpreter.AdaptivePredict(_input,213,_ctx) ) { case 1: { - State = 1460; Match(WS); + State = 1546; Match(WS); } break; } - State = 1463; valueStmt(0); + State = 1549; valueStmt(0); } break; @@ -7695,11 +8267,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1465; valueStmt(0); - State = 1466; Match(WS); - State = 1467; Match(TO); - State = 1468; Match(WS); - State = 1469; valueStmt(0); + State = 1551; valueStmt(0); + State = 1552; Match(WS); + State = 1553; Match(TO); + State = 1554; Match(WS); + State = 1555; valueStmt(0); } break; @@ -7707,7 +8279,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1471; valueStmt(0); + State = 1557; valueStmt(0); } break; } @@ -7758,19 +8330,19 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CaseContext sC_Case() { SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); - EnterRule(_localctx, 162, RULE_sC_Case); + EnterRule(_localctx, 174, RULE_sC_Case); try { EnterOuterAlt(_localctx, 1); { - State = 1474; Match(CASE); - State = 1475; Match(WS); - State = 1476; sC_Cond(); - State = 1477; endOfStatement(); - State = 1479; - switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { + State = 1560; Match(CASE); + State = 1561; Match(WS); + State = 1562; sC_Cond(); + State = 1563; endOfStatement(); + State = 1565; + switch ( Interpreter.AdaptivePredict(_input,215,_ctx) ) { case 1: { - State = 1478; block(); + State = 1564; block(); } break; } @@ -7846,17 +8418,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CondContext sC_Cond() { SC_CondContext _localctx = new SC_CondContext(_ctx, State); - EnterRule(_localctx, 164, RULE_sC_Cond); + EnterRule(_localctx, 176, RULE_sC_Cond); int _la; try { int _alt; - State = 1496; - switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { + State = 1582; + switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { case 1: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1481; Match(ELSE); + State = 1567; Match(ELSE); } break; @@ -7864,38 +8436,38 @@ public SC_CondContext sC_Cond() { _localctx = new CaseCondSelectionContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1482; sC_Selection(); - State = 1493; + State = 1568; sC_Selection(); + State = 1579; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,204,_ctx); + _alt = Interpreter.AdaptivePredict(_input,218,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1484; + State = 1570; _la = _input.La(1); if (_la==WS) { { - State = 1483; Match(WS); + State = 1569; Match(WS); } } - State = 1486; Match(T__1); - State = 1488; - switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { + State = 1572; Match(T__1); + State = 1574; + switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { case 1: { - State = 1487; Match(WS); + State = 1573; Match(WS); } break; } - State = 1490; sC_Selection(); + State = 1576; sC_Selection(); } } } - State = 1495; + State = 1581; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,204,_ctx); + _alt = Interpreter.AdaptivePredict(_input,218,_ctx); } } break; @@ -7947,36 +8519,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SendkeysStmtContext sendkeysStmt() { SendkeysStmtContext _localctx = new SendkeysStmtContext(_ctx, State); - EnterRule(_localctx, 166, RULE_sendkeysStmt); + EnterRule(_localctx, 178, RULE_sendkeysStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1498; Match(SENDKEYS); - State = 1499; Match(WS); - State = 1500; valueStmt(0); - State = 1509; - switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { + State = 1584; Match(SENDKEYS); + State = 1585; Match(WS); + State = 1586; valueStmt(0); + State = 1595; + switch ( Interpreter.AdaptivePredict(_input,222,_ctx) ) { case 1: { - State = 1502; + State = 1588; _la = _input.La(1); if (_la==WS) { { - State = 1501; Match(WS); + State = 1587; Match(WS); } } - State = 1504; Match(T__1); - State = 1506; - switch ( Interpreter.AdaptivePredict(_input,207,_ctx) ) { + State = 1590; Match(T__1); + State = 1592; + switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { case 1: { - State = 1505; Match(WS); + State = 1591; Match(WS); } break; } - State = 1508; valueStmt(0); + State = 1594; valueStmt(0); } break; } @@ -8028,32 +8600,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SetattrStmtContext setattrStmt() { SetattrStmtContext _localctx = new SetattrStmtContext(_ctx, State); - EnterRule(_localctx, 168, RULE_setattrStmt); + EnterRule(_localctx, 180, RULE_setattrStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1511; Match(SETATTR); - State = 1512; Match(WS); - State = 1513; valueStmt(0); - State = 1515; + State = 1597; Match(SETATTR); + State = 1598; Match(WS); + State = 1599; valueStmt(0); + State = 1601; _la = _input.La(1); if (_la==WS) { { - State = 1514; Match(WS); + State = 1600; Match(WS); } } - State = 1517; Match(T__1); - State = 1519; - switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { + State = 1603; Match(T__1); + State = 1605; + switch ( Interpreter.AdaptivePredict(_input,224,_ctx) ) { case 1: { - State = 1518; Match(WS); + State = 1604; Match(WS); } break; } - State = 1521; valueStmt(0); + State = 1607; valueStmt(0); } } catch (RecognitionException re) { @@ -8103,32 +8675,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SetStmtContext setStmt() { SetStmtContext _localctx = new SetStmtContext(_ctx, State); - EnterRule(_localctx, 170, RULE_setStmt); + EnterRule(_localctx, 182, RULE_setStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1523; Match(SET); - State = 1524; Match(WS); - State = 1525; implicitCallStmt_InStmt(); - State = 1527; + State = 1609; Match(SET); + State = 1610; Match(WS); + State = 1611; implicitCallStmt_InStmt(); + State = 1613; _la = _input.La(1); if (_la==WS) { { - State = 1526; Match(WS); + State = 1612; Match(WS); } } - State = 1529; Match(EQ); - State = 1531; - switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { + State = 1615; Match(EQ); + State = 1617; + switch ( Interpreter.AdaptivePredict(_input,226,_ctx) ) { case 1: { - State = 1530; Match(WS); + State = 1616; Match(WS); } break; } - State = 1533; valueStmt(0); + State = 1619; valueStmt(0); } } catch (RecognitionException re) { @@ -8167,11 +8739,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public StopStmtContext stopStmt() { StopStmtContext _localctx = new StopStmtContext(_ctx, State); - EnterRule(_localctx, 172, RULE_stopStmt); + EnterRule(_localctx, 184, RULE_stopStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1535; Match(STOP); + State = 1621; Match(STOP); } } catch (RecognitionException re) { @@ -8231,65 +8803,65 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubStmtContext subStmt() { SubStmtContext _localctx = new SubStmtContext(_ctx, State); - EnterRule(_localctx, 174, RULE_subStmt); + EnterRule(_localctx, 186, RULE_subStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1540; + State = 1626; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1537; visibility(); - State = 1538; Match(WS); + State = 1623; visibility(); + State = 1624; Match(WS); } } - State = 1544; + State = 1630; _la = _input.La(1); if (_la==STATIC) { { - State = 1542; Match(STATIC); - State = 1543; Match(WS); + State = 1628; Match(STATIC); + State = 1629; Match(WS); } } - State = 1546; Match(SUB); - State = 1548; + State = 1632; Match(SUB); + State = 1634; _la = _input.La(1); if (_la==WS) { { - State = 1547; Match(WS); + State = 1633; Match(WS); } } - State = 1550; ambiguousIdentifier(); - State = 1555; - switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { + State = 1636; ambiguousIdentifier(); + State = 1641; + switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { case 1: { - State = 1552; + State = 1638; _la = _input.La(1); if (_la==WS) { { - State = 1551; Match(WS); + State = 1637; Match(WS); } } - State = 1554; argList(); + State = 1640; argList(); } break; } - State = 1557; endOfStatement(); - State = 1559; + State = 1643; endOfStatement(); + State = 1645; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1558; block(); + State = 1644; block(); } } - State = 1561; Match(END_SUB); + State = 1647; Match(END_SUB); } } catch (RecognitionException re) { @@ -8336,30 +8908,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TimeStmtContext timeStmt() { TimeStmtContext _localctx = new TimeStmtContext(_ctx, State); - EnterRule(_localctx, 176, RULE_timeStmt); + EnterRule(_localctx, 188, RULE_timeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1563; Match(TIME); - State = 1565; + State = 1649; Match(TIME); + State = 1651; _la = _input.La(1); if (_la==WS) { { - State = 1564; Match(WS); + State = 1650; Match(WS); } } - State = 1567; Match(EQ); - State = 1569; - switch ( Interpreter.AdaptivePredict(_input,220,_ctx) ) { + State = 1653; Match(EQ); + State = 1655; + switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { case 1: { - State = 1568; Match(WS); + State = 1654; Match(WS); } break; } - State = 1571; valueStmt(0); + State = 1657; valueStmt(0); } } catch (RecognitionException re) { @@ -8418,38 +8990,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmtContext typeStmt() { TypeStmtContext _localctx = new TypeStmtContext(_ctx, State); - EnterRule(_localctx, 178, RULE_typeStmt); + EnterRule(_localctx, 190, RULE_typeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1576; + State = 1662; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1573; visibility(); - State = 1574; Match(WS); + State = 1659; visibility(); + State = 1660; Match(WS); } } - State = 1578; Match(TYPE); - State = 1579; Match(WS); - State = 1580; ambiguousIdentifier(); - State = 1581; endOfStatement(); - State = 1585; + State = 1664; Match(TYPE); + State = 1665; Match(WS); + State = 1666; ambiguousIdentifier(); + State = 1667; endOfStatement(); + State = 1671; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { { { - State = 1582; typeStmt_Element(); + State = 1668; typeStmt_Element(); } } - State = 1587; + State = 1673; _errHandler.Sync(this); _la = _input.La(1); } - State = 1588; Match(END_TYPE); + State = 1674; Match(END_TYPE); } } catch (RecognitionException re) { @@ -8505,63 +9077,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmt_ElementContext typeStmt_Element() { TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(_ctx, State); - EnterRule(_localctx, 180, RULE_typeStmt_Element); + EnterRule(_localctx, 192, RULE_typeStmt_Element); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1590; ambiguousIdentifier(); - State = 1605; - switch ( Interpreter.AdaptivePredict(_input,227,_ctx) ) { + State = 1676; ambiguousIdentifier(); + State = 1691; + switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { case 1: { - State = 1592; + State = 1678; _la = _input.La(1); if (_la==WS) { { - State = 1591; Match(WS); + State = 1677; Match(WS); } } - State = 1594; Match(LPAREN); - State = 1599; - switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { + State = 1680; Match(LPAREN); + State = 1685; + switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { case 1: { - State = 1596; - switch ( Interpreter.AdaptivePredict(_input,224,_ctx) ) { + State = 1682; + switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { case 1: { - State = 1595; Match(WS); + State = 1681; Match(WS); } break; } - State = 1598; subscripts(); + State = 1684; subscripts(); } break; } - State = 1602; + State = 1688; _la = _input.La(1); if (_la==WS) { { - State = 1601; Match(WS); + State = 1687; Match(WS); } } - State = 1604; Match(RPAREN); + State = 1690; Match(RPAREN); } break; } - State = 1609; - switch ( Interpreter.AdaptivePredict(_input,228,_ctx) ) { + State = 1695; + switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { case 1: { - State = 1607; Match(WS); - State = 1608; asTypeClause(); + State = 1693; Match(WS); + State = 1694; asTypeClause(); } break; } - State = 1611; endOfStatement(); + State = 1697; endOfStatement(); } } catch (RecognitionException re) { @@ -8611,21 +9183,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeOfStmtContext typeOfStmt() { TypeOfStmtContext _localctx = new TypeOfStmtContext(_ctx, State); - EnterRule(_localctx, 182, RULE_typeOfStmt); + EnterRule(_localctx, 194, RULE_typeOfStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1613; Match(TYPEOF); - State = 1614; Match(WS); - State = 1615; valueStmt(0); - State = 1620; - switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { + State = 1699; Match(TYPEOF); + State = 1700; Match(WS); + State = 1701; valueStmt(0); + State = 1706; + switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { case 1: { - State = 1616; Match(WS); - State = 1617; Match(IS); - State = 1618; Match(WS); - State = 1619; type(); + State = 1702; Match(WS); + State = 1703; Match(IS); + State = 1704; Match(WS); + State = 1705; type(); } break; } @@ -8671,13 +9243,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnloadStmtContext unloadStmt() { UnloadStmtContext _localctx = new UnloadStmtContext(_ctx, State); - EnterRule(_localctx, 184, RULE_unloadStmt); + EnterRule(_localctx, 196, RULE_unloadStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1622; Match(UNLOAD); - State = 1623; Match(WS); - State = 1624; valueStmt(0); + State = 1708; Match(UNLOAD); + State = 1709; Match(WS); + State = 1710; valueStmt(0); } } catch (RecognitionException re) { @@ -8730,44 +9302,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnlockStmtContext unlockStmt() { UnlockStmtContext _localctx = new UnlockStmtContext(_ctx, State); - EnterRule(_localctx, 186, RULE_unlockStmt); + EnterRule(_localctx, 198, RULE_unlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1626; Match(UNLOCK); - State = 1627; Match(WS); - State = 1628; fileNumber(); - State = 1643; - switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { + State = 1712; Match(UNLOCK); + State = 1713; Match(WS); + State = 1714; fileNumber(); + State = 1729; + switch ( Interpreter.AdaptivePredict(_input,247,_ctx) ) { case 1: { - State = 1630; + State = 1716; _la = _input.La(1); if (_la==WS) { { - State = 1629; Match(WS); + State = 1715; Match(WS); } } - State = 1632; Match(T__1); - State = 1634; - switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { + State = 1718; Match(T__1); + State = 1720; + switch ( Interpreter.AdaptivePredict(_input,245,_ctx) ) { case 1: { - State = 1633; Match(WS); + State = 1719; Match(WS); } break; } - State = 1636; valueStmt(0); - State = 1641; - switch ( Interpreter.AdaptivePredict(_input,232,_ctx) ) { + State = 1722; valueStmt(0); + State = 1727; + switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1637; Match(WS); - State = 1638; Match(TO); - State = 1639; Match(WS); - State = 1640; valueStmt(0); + State = 1723; Match(WS); + State = 1724; Match(TO); + State = 1725; Match(WS); + State = 1726; valueStmt(0); } break; } @@ -9358,31 +9930,31 @@ private ValueStmtContext valueStmt(int _p) { int _parentState = State; ValueStmtContext _localctx = new ValueStmtContext(_ctx, _parentState); ValueStmtContext _prevctx = _localctx; - int _startState = 188; - EnterRecursionRule(_localctx, 188, RULE_valueStmt, _p); + int _startState = 200; + EnterRecursionRule(_localctx, 200, RULE_valueStmt, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1700; - switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { + State = 1786; + switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { _localctx = new VsNewContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1646; Match(NEW); - State = 1648; - switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { + State = 1732; Match(NEW); + State = 1734; + switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { case 1: { - State = 1647; Match(WS); + State = 1733; Match(WS); } break; } - State = 1650; valueStmt(19); + State = 1736; valueStmt(19); } break; @@ -9391,16 +9963,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1651; Match(ADDRESSOF); - State = 1653; - switch ( Interpreter.AdaptivePredict(_input,235,_ctx) ) { + State = 1737; Match(ADDRESSOF); + State = 1739; + switch ( Interpreter.AdaptivePredict(_input,249,_ctx) ) { case 1: { - State = 1652; Match(WS); + State = 1738; Match(WS); } break; } - State = 1655; valueStmt(16); + State = 1741; valueStmt(16); } break; @@ -9409,25 +9981,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1656; implicitCallStmt_InStmt(); - State = 1658; + State = 1742; implicitCallStmt_InStmt(); + State = 1744; _la = _input.La(1); if (_la==WS) { { - State = 1657; Match(WS); + State = 1743; Match(WS); } } - State = 1660; Match(ASSIGN); - State = 1662; - switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { + State = 1746; Match(ASSIGN); + State = 1748; + switch ( Interpreter.AdaptivePredict(_input,251,_ctx) ) { case 1: { - State = 1661; Match(WS); + State = 1747; Match(WS); } break; } - State = 1664; valueStmt(15); + State = 1750; valueStmt(15); } break; @@ -9436,16 +10008,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1666; Match(MINUS); - State = 1668; - switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { + State = 1752; Match(MINUS); + State = 1754; + switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { case 1: { - State = 1667; Match(WS); + State = 1753; Match(WS); } break; } - State = 1670; valueStmt(13); + State = 1756; valueStmt(13); } break; @@ -9454,16 +10026,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1671; Match(NOT); - State = 1673; - switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { + State = 1757; Match(NOT); + State = 1759; + switch ( Interpreter.AdaptivePredict(_input,253,_ctx) ) { case 1: { - State = 1672; Match(WS); + State = 1758; Match(WS); } break; } - State = 1675; valueStmt(6); + State = 1761; valueStmt(6); } break; @@ -9472,7 +10044,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1676; literal(); + State = 1762; literal(); } break; @@ -9481,7 +10053,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1677; implicitCallStmt_InStmt(); + State = 1763; implicitCallStmt_InStmt(); } break; @@ -9490,47 +10062,47 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1678; Match(LPAREN); - State = 1680; - switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { + State = 1764; Match(LPAREN); + State = 1766; + switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { case 1: { - State = 1679; Match(WS); + State = 1765; Match(WS); } break; } - State = 1682; valueStmt(0); - State = 1693; + State = 1768; valueStmt(0); + State = 1779; _errHandler.Sync(this); _la = _input.La(1); while (_la==T__1 || _la==WS) { { { - State = 1684; + State = 1770; _la = _input.La(1); if (_la==WS) { { - State = 1683; Match(WS); + State = 1769; Match(WS); } } - State = 1686; Match(T__1); - State = 1688; - switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { + State = 1772; Match(T__1); + State = 1774; + switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1687; Match(WS); + State = 1773; Match(WS); } break; } - State = 1690; valueStmt(0); + State = 1776; valueStmt(0); } } - State = 1695; + State = 1781; _errHandler.Sync(this); _la = _input.La(1); } - State = 1696; Match(RPAREN); + State = 1782; Match(RPAREN); } break; @@ -9539,7 +10111,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1698; typeOfStmt(); + State = 1784; typeOfStmt(); } break; @@ -9548,45 +10120,45 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1699; midStmt(); + State = 1785; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1812; + State = 1898; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,270,_ctx); + _alt = Interpreter.AdaptivePredict(_input,284,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1810; - switch ( Interpreter.AdaptivePredict(_input,269,_ctx) ) { + State = 1896; + switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1702; + State = 1788; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1704; + State = 1790; _la = _input.La(1); if (_la==WS) { { - State = 1703; Match(WS); + State = 1789; Match(WS); } } - State = 1706; Match(POW); - State = 1708; - switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { + State = 1792; Match(POW); + State = 1794; + switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { case 1: { - State = 1707; Match(WS); + State = 1793; Match(WS); } break; } - State = 1710; valueStmt(15); + State = 1796; valueStmt(15); } break; @@ -9594,31 +10166,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1711; + State = 1797; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1713; + State = 1799; _la = _input.La(1); if (_la==WS) { { - State = 1712; Match(WS); + State = 1798; Match(WS); } } - State = 1715; + State = 1801; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1717; - switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { + State = 1803; + switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1716; Match(WS); + State = 1802; Match(WS); } break; } - State = 1719; valueStmt(13); + State = 1805; valueStmt(13); } break; @@ -9626,26 +10198,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1720; + State = 1806; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1722; + State = 1808; _la = _input.La(1); if (_la==WS) { { - State = 1721; Match(WS); + State = 1807; Match(WS); } } - State = 1724; Match(INTDIV); - State = 1726; - switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { + State = 1810; Match(INTDIV); + State = 1812; + switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { case 1: { - State = 1725; Match(WS); + State = 1811; Match(WS); } break; } - State = 1728; valueStmt(12); + State = 1814; valueStmt(12); } break; @@ -9653,26 +10225,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1729; + State = 1815; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1731; + State = 1817; _la = _input.La(1); if (_la==WS) { { - State = 1730; Match(WS); + State = 1816; Match(WS); } } - State = 1733; Match(MOD); - State = 1735; - switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { + State = 1819; Match(MOD); + State = 1821; + switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1734; Match(WS); + State = 1820; Match(WS); } break; } - State = 1737; valueStmt(11); + State = 1823; valueStmt(11); } break; @@ -9680,31 +10252,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1738; + State = 1824; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1740; + State = 1826; _la = _input.La(1); if (_la==WS) { { - State = 1739; Match(WS); + State = 1825; Match(WS); } } - State = 1742; + State = 1828; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1744; - switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { + State = 1830; + switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 1743; Match(WS); + State = 1829; Match(WS); } break; } - State = 1746; valueStmt(10); + State = 1832; valueStmt(10); } break; @@ -9712,26 +10284,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1747; + State = 1833; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1749; + State = 1835; _la = _input.La(1); if (_la==WS) { { - State = 1748; Match(WS); + State = 1834; Match(WS); } } - State = 1751; Match(AMPERSAND); - State = 1753; - switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { + State = 1837; Match(AMPERSAND); + State = 1839; + switch ( Interpreter.AdaptivePredict(_input,270,_ctx) ) { case 1: { - State = 1752; Match(WS); + State = 1838; Match(WS); } break; } - State = 1755; valueStmt(9); + State = 1841; valueStmt(9); } break; @@ -9739,31 +10311,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1756; + State = 1842; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1758; + State = 1844; _la = _input.La(1); if (_la==WS) { { - State = 1757; Match(WS); + State = 1843; Match(WS); } } - State = 1760; + State = 1846; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 186)) & ~0x3f) == 0 && ((1L << (_la - 186)) & ((1L << (EQ - 186)) | (1L << (GEQ - 186)) | (1L << (GT - 186)) | (1L << (LEQ - 186)) | (1L << (LT - 186)) | (1L << (NEQ - 186)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 191)) & ~0x3f) == 0 && ((1L << (_la - 191)) & ((1L << (EQ - 191)) | (1L << (GEQ - 191)) | (1L << (GT - 191)) | (1L << (LEQ - 191)) | (1L << (LT - 191)) | (1L << (NEQ - 191)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1762; - switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { + State = 1848; + switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { case 1: { - State = 1761; Match(WS); + State = 1847; Match(WS); } break; } - State = 1764; valueStmt(8); + State = 1850; valueStmt(8); } break; @@ -9771,26 +10343,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1765; + State = 1851; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1767; + State = 1853; _la = _input.La(1); if (_la==WS) { { - State = 1766; Match(WS); + State = 1852; Match(WS); } } - State = 1769; Match(AND); - State = 1771; - switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { + State = 1855; Match(AND); + State = 1857; + switch ( Interpreter.AdaptivePredict(_input,274,_ctx) ) { case 1: { - State = 1770; Match(WS); + State = 1856; Match(WS); } break; } - State = 1773; valueStmt(6); + State = 1859; valueStmt(6); } break; @@ -9798,26 +10370,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1774; + State = 1860; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1776; + State = 1862; _la = _input.La(1); if (_la==WS) { { - State = 1775; Match(WS); + State = 1861; Match(WS); } } - State = 1778; Match(OR); - State = 1780; - switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { + State = 1864; Match(OR); + State = 1866; + switch ( Interpreter.AdaptivePredict(_input,276,_ctx) ) { case 1: { - State = 1779; Match(WS); + State = 1865; Match(WS); } break; } - State = 1782; valueStmt(5); + State = 1868; valueStmt(5); } break; @@ -9825,26 +10397,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1783; + State = 1869; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1785; + State = 1871; _la = _input.La(1); if (_la==WS) { { - State = 1784; Match(WS); + State = 1870; Match(WS); } } - State = 1787; Match(XOR); - State = 1789; - switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { + State = 1873; Match(XOR); + State = 1875; + switch ( Interpreter.AdaptivePredict(_input,278,_ctx) ) { case 1: { - State = 1788; Match(WS); + State = 1874; Match(WS); } break; } - State = 1791; valueStmt(4); + State = 1877; valueStmt(4); } break; @@ -9852,26 +10424,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1792; + State = 1878; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1794; + State = 1880; _la = _input.La(1); if (_la==WS) { { - State = 1793; Match(WS); + State = 1879; Match(WS); } } - State = 1796; Match(EQV); - State = 1798; - switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { + State = 1882; Match(EQV); + State = 1884; + switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { case 1: { - State = 1797; Match(WS); + State = 1883; Match(WS); } break; } - State = 1800; valueStmt(3); + State = 1886; valueStmt(3); } break; @@ -9879,34 +10451,34 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1801; + State = 1887; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1803; + State = 1889; _la = _input.La(1); if (_la==WS) { { - State = 1802; Match(WS); + State = 1888; Match(WS); } } - State = 1805; Match(IMP); - State = 1807; - switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { + State = 1891; Match(IMP); + State = 1893; + switch ( Interpreter.AdaptivePredict(_input,282,_ctx) ) { case 1: { - State = 1806; Match(WS); + State = 1892; Match(WS); } break; } - State = 1809; valueStmt(2); + State = 1895; valueStmt(2); } break; } } } - State = 1814; + State = 1900; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,270,_ctx); + _alt = Interpreter.AdaptivePredict(_input,284,_ctx); } } } @@ -9958,20 +10530,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableStmtContext variableStmt() { VariableStmtContext _localctx = new VariableStmtContext(_ctx, State); - EnterRule(_localctx, 190, RULE_variableStmt); + EnterRule(_localctx, 202, RULE_variableStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1818; + State = 1904; switch (_input.La(1)) { case DIM: { - State = 1815; Match(DIM); + State = 1901; Match(DIM); } break; case STATIC: { - State = 1816; Match(STATIC); + State = 1902; Match(STATIC); } break; case FRIEND: @@ -9979,23 +10551,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1817; visibility(); + State = 1903; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1820; Match(WS); - State = 1823; - switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { + State = 1906; Match(WS); + State = 1909; + switch ( Interpreter.AdaptivePredict(_input,286,_ctx) ) { case 1: { - State = 1821; Match(WITHEVENTS); - State = 1822; Match(WS); + State = 1907; Match(WITHEVENTS); + State = 1908; Match(WS); } break; } - State = 1825; variableListStmt(); + State = 1911; variableListStmt(); } } catch (RecognitionException re) { @@ -10043,44 +10615,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableListStmtContext variableListStmt() { VariableListStmtContext _localctx = new VariableListStmtContext(_ctx, State); - EnterRule(_localctx, 192, RULE_variableListStmt); + EnterRule(_localctx, 204, RULE_variableListStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1827; variableSubStmt(); - State = 1838; + State = 1913; variableSubStmt(); + State = 1924; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,275,_ctx); + _alt = Interpreter.AdaptivePredict(_input,289,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1829; + State = 1915; _la = _input.La(1); if (_la==WS) { { - State = 1828; Match(WS); + State = 1914; Match(WS); } } - State = 1831; Match(T__1); - State = 1833; + State = 1917; Match(T__1); + State = 1919; _la = _input.La(1); if (_la==WS) { { - State = 1832; Match(WS); + State = 1918; Match(WS); } } - State = 1835; variableSubStmt(); + State = 1921; variableSubStmt(); } } } - State = 1840; + State = 1926; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,275,_ctx); + _alt = Interpreter.AdaptivePredict(_input,289,_ctx); } } } @@ -10137,75 +10709,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableSubStmtContext variableSubStmt() { VariableSubStmtContext _localctx = new VariableSubStmtContext(_ctx, State); - EnterRule(_localctx, 194, RULE_variableSubStmt); + EnterRule(_localctx, 206, RULE_variableSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1841; ambiguousIdentifier(); - State = 1859; - switch ( Interpreter.AdaptivePredict(_input,281,_ctx) ) { + State = 1927; ambiguousIdentifier(); + State = 1945; + switch ( Interpreter.AdaptivePredict(_input,295,_ctx) ) { case 1: { - State = 1843; + State = 1929; _la = _input.La(1); if (_la==WS) { { - State = 1842; Match(WS); + State = 1928; Match(WS); } } - State = 1845; Match(LPAREN); - State = 1847; - switch ( Interpreter.AdaptivePredict(_input,277,_ctx) ) { + State = 1931; Match(LPAREN); + State = 1933; + switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { case 1: { - State = 1846; Match(WS); + State = 1932; Match(WS); } break; } - State = 1853; + State = 1939; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << EMPTY) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)) | (1L << (LPAREN - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (SHORTLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DOUBLELITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << EMPTY) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (LPAREN - 195)) | (1L << (MINUS - 195)) | (1L << (STRINGLITERAL - 195)) | (1L << (OCTLITERAL - 195)) | (1L << (HEXLITERAL - 195)) | (1L << (SHORTLITERAL - 195)) | (1L << (INTEGERLITERAL - 195)) | (1L << (DOUBLELITERAL - 195)) | (1L << (DATELITERAL - 195)) | (1L << (WS - 195)) | (1L << (IDENTIFIER - 195)))) != 0)) { { - State = 1849; subscripts(); - State = 1851; + State = 1935; subscripts(); + State = 1937; _la = _input.La(1); if (_la==WS) { { - State = 1850; Match(WS); + State = 1936; Match(WS); } } } } - State = 1855; Match(RPAREN); - State = 1857; - switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { + State = 1941; Match(RPAREN); + State = 1943; + switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { case 1: { - State = 1856; Match(WS); + State = 1942; Match(WS); } break; } } break; } - State = 1862; - switch ( Interpreter.AdaptivePredict(_input,282,_ctx) ) { + State = 1948; + switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { case 1: { - State = 1861; typeHint(); + State = 1947; typeHint(); } break; } - State = 1866; - switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { + State = 1952; + switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { case 1: { - State = 1864; Match(WS); - State = 1865; asTypeClause(); + State = 1950; Match(WS); + State = 1951; asTypeClause(); } break; } @@ -10258,23 +10830,23 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhileWendStmtContext whileWendStmt() { WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); - EnterRule(_localctx, 196, RULE_whileWendStmt); + EnterRule(_localctx, 208, RULE_whileWendStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1868; Match(WHILE); - State = 1869; Match(WS); - State = 1870; valueStmt(0); - State = 1871; endOfStatement(); - State = 1873; - switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { + State = 1954; Match(WHILE); + State = 1955; Match(WS); + State = 1956; valueStmt(0); + State = 1957; endOfStatement(); + State = 1959; + switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { case 1: { - State = 1872; block(); + State = 1958; block(); } break; } - State = 1875; Match(WEND); + State = 1961; Match(WEND); } } catch (RecognitionException re) { @@ -10323,32 +10895,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WidthStmtContext widthStmt() { WidthStmtContext _localctx = new WidthStmtContext(_ctx, State); - EnterRule(_localctx, 198, RULE_widthStmt); + EnterRule(_localctx, 210, RULE_widthStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1877; Match(WIDTH); - State = 1878; Match(WS); - State = 1879; fileNumber(); - State = 1881; + State = 1963; Match(WIDTH); + State = 1964; Match(WS); + State = 1965; fileNumber(); + State = 1967; _la = _input.La(1); if (_la==WS) { { - State = 1880; Match(WS); + State = 1966; Match(WS); } } - State = 1883; Match(T__1); - State = 1885; - switch ( Interpreter.AdaptivePredict(_input,286,_ctx) ) { + State = 1969; Match(T__1); + State = 1971; + switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { case 1: { - State = 1884; Match(WS); + State = 1970; Match(WS); } break; } - State = 1887; valueStmt(0); + State = 1973; valueStmt(0); } } catch (RecognitionException re) { @@ -10405,41 +10977,41 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtContext withStmt() { WithStmtContext _localctx = new WithStmtContext(_ctx, State); - EnterRule(_localctx, 200, RULE_withStmt); + EnterRule(_localctx, 212, RULE_withStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1889; Match(WITH); - State = 1890; Match(WS); - State = 1895; - switch ( Interpreter.AdaptivePredict(_input,287,_ctx) ) { + State = 1975; Match(WITH); + State = 1976; Match(WS); + State = 1981; + switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { case 1: { - State = 1891; implicitCallStmt_InStmt(); + State = 1977; implicitCallStmt_InStmt(); } break; case 2: { { - State = 1892; Match(NEW); - State = 1893; Match(WS); - State = 1894; type(); + State = 1978; Match(NEW); + State = 1979; Match(WS); + State = 1980; type(); } } break; } - State = 1897; endOfStatement(); - State = 1899; + State = 1983; endOfStatement(); + State = 1985; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1898; block(); + State = 1984; block(); } } - State = 1901; Match(END_WITH); + State = 1987; Match(END_WITH); } } catch (RecognitionException re) { @@ -10488,36 +11060,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WriteStmtContext writeStmt() { WriteStmtContext _localctx = new WriteStmtContext(_ctx, State); - EnterRule(_localctx, 202, RULE_writeStmt); + EnterRule(_localctx, 214, RULE_writeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1903; Match(WRITE); - State = 1904; Match(WS); - State = 1905; fileNumber(); - State = 1907; + State = 1989; Match(WRITE); + State = 1990; Match(WS); + State = 1991; fileNumber(); + State = 1993; _la = _input.La(1); if (_la==WS) { { - State = 1906; Match(WS); + State = 1992; Match(WS); } } - State = 1909; Match(T__1); - State = 1914; - switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { + State = 1995; Match(T__1); + State = 2000; + switch ( Interpreter.AdaptivePredict(_input,305,_ctx) ) { case 1: { - State = 1911; - switch ( Interpreter.AdaptivePredict(_input,290,_ctx) ) { + State = 1997; + switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { case 1: { - State = 1910; Match(WS); + State = 1996; Match(WS); } break; } - State = 1913; outputList(); + State = 1999; outputList(); } break; } @@ -10561,20 +11133,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FileNumberContext fileNumber() { FileNumberContext _localctx = new FileNumberContext(_ctx, State); - EnterRule(_localctx, 204, RULE_fileNumber); + EnterRule(_localctx, 216, RULE_fileNumber); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1917; + State = 2003; _la = _input.La(1); if (_la==T__5) { { - State = 1916; Match(T__5); + State = 2002; Match(T__5); } } - State = 1919; valueStmt(0); + State = 2005; valueStmt(0); } } catch (RecognitionException re) { @@ -10618,21 +11190,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtContext explicitCallStmt() { ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); - EnterRule(_localctx, 206, RULE_explicitCallStmt); + EnterRule(_localctx, 218, RULE_explicitCallStmt); try { - State = 1923; - switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { + State = 2009; + switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1921; eCS_ProcedureCall(); + State = 2007; eCS_ProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1922; eCS_MemberProcedureCall(); + State = 2008; eCS_MemberProcedureCall(); } break; } @@ -10700,81 +11272,81 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ECS_ProcedureCallContext eCS_ProcedureCall() { ECS_ProcedureCallContext _localctx = new ECS_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 208, RULE_eCS_ProcedureCall); + EnterRule(_localctx, 220, RULE_eCS_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1925; Match(CALL); - State = 1926; Match(WS); - State = 1927; ambiguousIdentifier(); - State = 1929; - switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { + State = 2011; Match(CALL); + State = 2012; Match(WS); + State = 2013; ambiguousIdentifier(); + State = 2015; + switch ( Interpreter.AdaptivePredict(_input,308,_ctx) ) { case 1: { - State = 1928; typeHint(); + State = 2014; typeHint(); } break; } - State = 1944; - switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { + State = 2030; + switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { case 1: { - State = 1932; + State = 2018; _la = _input.La(1); if (_la==WS) { { - State = 1931; Match(WS); + State = 2017; Match(WS); } } - State = 1934; Match(LPAREN); - State = 1936; - switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { + State = 2020; Match(LPAREN); + State = 2022; + switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { case 1: { - State = 1935; Match(WS); + State = 2021; Match(WS); } break; } - State = 1938; argsCall(); - State = 1940; + State = 2024; argsCall(); + State = 2026; _la = _input.La(1); if (_la==WS) { { - State = 1939; Match(WS); + State = 2025; Match(WS); } } - State = 1942; Match(RPAREN); + State = 2028; Match(RPAREN); } break; } - State = 1955; + State = 2041; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,300,_ctx); + _alt = Interpreter.AdaptivePredict(_input,314,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1947; + State = 2033; _la = _input.La(1); if (_la==WS) { { - State = 1946; Match(WS); + State = 2032; Match(WS); } } - State = 1949; Match(LPAREN); - State = 1950; subscripts(); - State = 1951; Match(RPAREN); + State = 2035; Match(LPAREN); + State = 2036; subscripts(); + State = 2037; Match(RPAREN); } } } - State = 1957; + State = 2043; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,300,_ctx); + _alt = Interpreter.AdaptivePredict(_input,314,_ctx); } } } @@ -10844,90 +11416,90 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { ECS_MemberProcedureCallContext _localctx = new ECS_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 210, RULE_eCS_MemberProcedureCall); + EnterRule(_localctx, 222, RULE_eCS_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1958; Match(CALL); - State = 1959; Match(WS); - State = 1961; - switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { + State = 2044; Match(CALL); + State = 2045; Match(WS); + State = 2047; + switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { case 1: { - State = 1960; implicitCallStmt_InStmt(); + State = 2046; implicitCallStmt_InStmt(); } break; } - State = 1963; Match(T__0); - State = 1964; ambiguousIdentifier(); - State = 1966; - switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { + State = 2049; Match(T__0); + State = 2050; ambiguousIdentifier(); + State = 2052; + switch ( Interpreter.AdaptivePredict(_input,316,_ctx) ) { case 1: { - State = 1965; typeHint(); + State = 2051; typeHint(); } break; } - State = 1981; - switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { + State = 2067; + switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { case 1: { - State = 1969; + State = 2055; _la = _input.La(1); if (_la==WS) { { - State = 1968; Match(WS); + State = 2054; Match(WS); } } - State = 1971; Match(LPAREN); - State = 1973; - switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + State = 2057; Match(LPAREN); + State = 2059; + switch ( Interpreter.AdaptivePredict(_input,318,_ctx) ) { case 1: { - State = 1972; Match(WS); + State = 2058; Match(WS); } break; } - State = 1975; argsCall(); - State = 1977; + State = 2061; argsCall(); + State = 2063; _la = _input.La(1); if (_la==WS) { { - State = 1976; Match(WS); + State = 2062; Match(WS); } } - State = 1979; Match(RPAREN); + State = 2065; Match(RPAREN); } break; } - State = 1992; + State = 2078; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,308,_ctx); + _alt = Interpreter.AdaptivePredict(_input,322,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1984; + State = 2070; _la = _input.La(1); if (_la==WS) { { - State = 1983; Match(WS); + State = 2069; Match(WS); } } - State = 1986; Match(LPAREN); - State = 1987; subscripts(); - State = 1988; Match(RPAREN); + State = 2072; Match(LPAREN); + State = 2073; subscripts(); + State = 2074; Match(RPAREN); } } } - State = 1994; + State = 2080; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,308,_ctx); + _alt = Interpreter.AdaptivePredict(_input,322,_ctx); } } } @@ -10972,21 +11544,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); - EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); + EnterRule(_localctx, 224, RULE_implicitCallStmt_InBlock); try { - State = 1997; - switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { + State = 2083; + switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1995; iCS_B_MemberProcedureCall(); + State = 2081; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1996; iCS_B_ProcedureCall(); + State = 2082; iCS_B_ProcedureCall(); } break; } @@ -11059,79 +11631,79 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 214, RULE_iCS_B_MemberProcedureCall); + EnterRule(_localctx, 226, RULE_iCS_B_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2000; - switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { + State = 2086; + switch ( Interpreter.AdaptivePredict(_input,324,_ctx) ) { case 1: { - State = 1999; implicitCallStmt_InStmt(); + State = 2085; implicitCallStmt_InStmt(); } break; } - State = 2002; Match(T__0); - State = 2003; ambiguousIdentifier(); - State = 2005; - switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { + State = 2088; Match(T__0); + State = 2089; ambiguousIdentifier(); + State = 2091; + switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { case 1: { - State = 2004; typeHint(); + State = 2090; typeHint(); } break; } - State = 2009; - switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { + State = 2095; + switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { case 1: { - State = 2007; Match(WS); - State = 2008; argsCall(); + State = 2093; Match(WS); + State = 2094; argsCall(); } break; } - State = 2015; - switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { + State = 2101; + switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { case 1: { - State = 2012; + State = 2098; _la = _input.La(1); if (_la==WS) { { - State = 2011; Match(WS); + State = 2097; Match(WS); } } - State = 2014; dictionaryCallStmt(); + State = 2100; dictionaryCallStmt(); } break; } - State = 2026; + State = 2112; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,316,_ctx); + _alt = Interpreter.AdaptivePredict(_input,330,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2018; + State = 2104; _la = _input.La(1); if (_la==WS) { { - State = 2017; Match(WS); + State = 2103; Match(WS); } } - State = 2020; Match(LPAREN); - State = 2021; subscripts(); - State = 2022; Match(RPAREN); + State = 2106; Match(LPAREN); + State = 2107; subscripts(); + State = 2108; Match(RPAREN); } } } - State = 2028; + State = 2114; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,316,_ctx); + _alt = Interpreter.AdaptivePredict(_input,330,_ctx); } } } @@ -11194,46 +11766,46 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 216, RULE_iCS_B_ProcedureCall); + EnterRule(_localctx, 228, RULE_iCS_B_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2029; certainIdentifier(); - State = 2032; - switch ( Interpreter.AdaptivePredict(_input,317,_ctx) ) { + State = 2115; certainIdentifier(); + State = 2118; + switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { case 1: { - State = 2030; Match(WS); - State = 2031; argsCall(); + State = 2116; Match(WS); + State = 2117; argsCall(); } break; } - State = 2043; + State = 2129; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,319,_ctx); + _alt = Interpreter.AdaptivePredict(_input,333,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2035; + State = 2121; _la = _input.La(1); if (_la==WS) { { - State = 2034; Match(WS); + State = 2120; Match(WS); } } - State = 2037; Match(LPAREN); - State = 2038; subscripts(); - State = 2039; Match(RPAREN); + State = 2123; Match(LPAREN); + State = 2124; subscripts(); + State = 2125; Match(RPAREN); } } } - State = 2045; + State = 2131; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,319,_ctx); + _alt = Interpreter.AdaptivePredict(_input,333,_ctx); } } } @@ -11284,35 +11856,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); - EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); + EnterRule(_localctx, 230, RULE_implicitCallStmt_InStmt); try { - State = 2050; - switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { + State = 2136; + switch ( Interpreter.AdaptivePredict(_input,334,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2046; iCS_S_MembersCall(); + State = 2132; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2047; iCS_S_VariableOrProcedureCall(); + State = 2133; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 2048; iCS_S_ProcedureOrArrayCall(); + State = 2134; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 2049; iCS_S_DictionaryCall(); + State = 2135; iCS_S_DictionaryCall(); } break; } @@ -11379,61 +11951,61 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); - EnterRule(_localctx, 220, RULE_iCS_S_VariableOrProcedureCall); + EnterRule(_localctx, 232, RULE_iCS_S_VariableOrProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2052; ambiguousIdentifier(); - State = 2054; - switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { + State = 2138; ambiguousIdentifier(); + State = 2140; + switch ( Interpreter.AdaptivePredict(_input,335,_ctx) ) { case 1: { - State = 2053; typeHint(); + State = 2139; typeHint(); } break; } - State = 2060; - switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { + State = 2146; + switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { case 1: { - State = 2057; + State = 2143; _la = _input.La(1); if (_la==WS) { { - State = 2056; Match(WS); + State = 2142; Match(WS); } } - State = 2059; dictionaryCallStmt(); + State = 2145; dictionaryCallStmt(); } break; } - State = 2071; + State = 2157; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,325,_ctx); + _alt = Interpreter.AdaptivePredict(_input,339,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2063; + State = 2149; _la = _input.La(1); if (_la==WS) { { - State = 2062; Match(WS); + State = 2148; Match(WS); } } - State = 2065; Match(LPAREN); - State = 2066; subscripts(); - State = 2067; Match(RPAREN); + State = 2151; Match(LPAREN); + State = 2152; subscripts(); + State = 2153; Match(RPAREN); } } } - State = 2073; + State = 2159; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,325,_ctx); + _alt = Interpreter.AdaptivePredict(_input,339,_ctx); } } } @@ -11505,108 +12077,108 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); - EnterRule(_localctx, 222, RULE_iCS_S_ProcedureOrArrayCall); + EnterRule(_localctx, 234, RULE_iCS_S_ProcedureOrArrayCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2076; - switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { + State = 2162; + switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { case 1: { - State = 2074; ambiguousIdentifier(); + State = 2160; ambiguousIdentifier(); } break; case 2: { - State = 2075; baseType(); + State = 2161; baseType(); } break; } - State = 2079; + State = 2165; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 2078; typeHint(); + State = 2164; typeHint(); } } - State = 2082; + State = 2168; _la = _input.La(1); if (_la==WS) { { - State = 2081; Match(WS); + State = 2167; Match(WS); } } - State = 2084; Match(LPAREN); - State = 2086; - switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { + State = 2170; Match(LPAREN); + State = 2172; + switch ( Interpreter.AdaptivePredict(_input,343,_ctx) ) { case 1: { - State = 2085; Match(WS); + State = 2171; Match(WS); } break; } - State = 2092; - switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { + State = 2178; + switch ( Interpreter.AdaptivePredict(_input,345,_ctx) ) { case 1: { - State = 2088; argsCall(); - State = 2090; + State = 2174; argsCall(); + State = 2176; _la = _input.La(1); if (_la==WS) { { - State = 2089; Match(WS); + State = 2175; Match(WS); } } } break; } - State = 2094; Match(RPAREN); - State = 2099; - switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { + State = 2180; Match(RPAREN); + State = 2185; + switch ( Interpreter.AdaptivePredict(_input,347,_ctx) ) { case 1: { - State = 2096; + State = 2182; _la = _input.La(1); if (_la==WS) { { - State = 2095; Match(WS); + State = 2181; Match(WS); } } - State = 2098; dictionaryCallStmt(); + State = 2184; dictionaryCallStmt(); } break; } - State = 2110; + State = 2196; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,335,_ctx); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2102; + State = 2188; _la = _input.La(1); if (_la==WS) { { - State = 2101; Match(WS); + State = 2187; Match(WS); } } - State = 2104; Match(LPAREN); - State = 2105; subscripts(); - State = 2106; Match(RPAREN); + State = 2190; Match(LPAREN); + State = 2191; subscripts(); + State = 2192; Match(RPAREN); } } } - State = 2112; + State = 2198; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,335,_ctx); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); } } } @@ -11678,27 +12250,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MembersCallContext iCS_S_MembersCall() { ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 224, RULE_iCS_S_MembersCall); + EnterRule(_localctx, 236, RULE_iCS_S_MembersCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2115; - switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { + State = 2201; + switch ( Interpreter.AdaptivePredict(_input,350,_ctx) ) { case 1: { - State = 2113; iCS_S_VariableOrProcedureCall(); + State = 2199; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2114; iCS_S_ProcedureOrArrayCall(); + State = 2200; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2121; + State = 2207; _errHandler.Sync(this); _alt = 1; do { @@ -11706,12 +12278,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2117; iCS_S_MemberCall(); - State = 2119; - switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { + State = 2203; iCS_S_MemberCall(); + State = 2205; + switch ( Interpreter.AdaptivePredict(_input,351,_ctx) ) { case 1: { - State = 2118; Match(WS); + State = 2204; Match(WS); } break; } @@ -11721,50 +12293,50 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2123; + State = 2209; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,338,_ctx); + _alt = Interpreter.AdaptivePredict(_input,352,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2129; - switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { + State = 2215; + switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { case 1: { - State = 2126; + State = 2212; _la = _input.La(1); if (_la==WS) { { - State = 2125; Match(WS); + State = 2211; Match(WS); } } - State = 2128; dictionaryCallStmt(); + State = 2214; dictionaryCallStmt(); } break; } - State = 2140; + State = 2226; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,342,_ctx); + _alt = Interpreter.AdaptivePredict(_input,356,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2132; + State = 2218; _la = _input.La(1); if (_la==WS) { { - State = 2131; Match(WS); + State = 2217; Match(WS); } } - State = 2134; Match(LPAREN); - State = 2135; subscripts(); - State = 2136; Match(RPAREN); + State = 2220; Match(LPAREN); + State = 2221; subscripts(); + State = 2222; Match(RPAREN); } } } - State = 2142; + State = 2228; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,342,_ctx); + _alt = Interpreter.AdaptivePredict(_input,356,_ctx); } } } @@ -11810,36 +12382,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MemberCallContext iCS_S_MemberCall() { ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 226, RULE_iCS_S_MemberCall); + EnterRule(_localctx, 238, RULE_iCS_S_MemberCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2143; + State = 2229; _la = _input.La(1); if ( !(_la==T__6 || _la==T__0) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2145; + State = 2231; _la = _input.La(1); if (_la==WS) { { - State = 2144; Match(WS); + State = 2230; Match(WS); } } - State = 2149; - switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { + State = 2235; + switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { case 1: { - State = 2147; iCS_S_VariableOrProcedureCall(); + State = 2233; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2148; iCS_S_ProcedureOrArrayCall(); + State = 2234; iCS_S_ProcedureOrArrayCall(); } break; } @@ -11884,20 +12456,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 228, RULE_iCS_S_DictionaryCall); + EnterRule(_localctx, 240, RULE_iCS_S_DictionaryCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2152; + State = 2238; _la = _input.La(1); if (_la==WS) { { - State = 2151; Match(WS); + State = 2237; Match(WS); } } - State = 2154; dictionaryCallStmt(); + State = 2240; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -11945,100 +12517,100 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgsCallContext argsCall() { ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 230, RULE_argsCall); + EnterRule(_localctx, 242, RULE_argsCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2168; + State = 2254; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + _alt = Interpreter.AdaptivePredict(_input,363,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2157; - switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { + State = 2243; + switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { case 1: { - State = 2156; argCall(); + State = 2242; argCall(); } break; } - State = 2160; + State = 2246; _la = _input.La(1); if (_la==WS) { { - State = 2159; Match(WS); + State = 2245; Match(WS); } } - State = 2162; + State = 2248; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2164; - switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { + State = 2250; + switch ( Interpreter.AdaptivePredict(_input,362,_ctx) ) { case 1: { - State = 2163; Match(WS); + State = 2249; Match(WS); } break; } } } } - State = 2170; + State = 2256; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + _alt = Interpreter.AdaptivePredict(_input,363,_ctx); } - State = 2171; argCall(); - State = 2184; + State = 2257; argCall(); + State = 2270; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,353,_ctx); + _alt = Interpreter.AdaptivePredict(_input,367,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2173; + State = 2259; _la = _input.La(1); if (_la==WS) { { - State = 2172; Match(WS); + State = 2258; Match(WS); } } - State = 2175; + State = 2261; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2177; - switch ( Interpreter.AdaptivePredict(_input,351,_ctx) ) { + State = 2263; + switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { case 1: { - State = 2176; Match(WS); + State = 2262; Match(WS); } break; } - State = 2180; - switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { + State = 2266; + switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { case 1: { - State = 2179; argCall(); + State = 2265; argCall(); } break; } } } } - State = 2186; + State = 2272; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,353,_ctx); + _alt = Interpreter.AdaptivePredict(_input,367,_ctx); } } } @@ -12086,42 +12658,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgCallContext argCall() { ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 232, RULE_argCall); + EnterRule(_localctx, 244, RULE_argCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2188; - switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { + State = 2274; + switch ( Interpreter.AdaptivePredict(_input,368,_ctx) ) { case 1: { - State = 2187; Match(LPAREN); + State = 2273; Match(LPAREN); } break; } - State = 2192; - switch ( Interpreter.AdaptivePredict(_input,355,_ctx) ) { + State = 2278; + switch ( Interpreter.AdaptivePredict(_input,369,_ctx) ) { case 1: { - State = 2190; + State = 2276; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2191; Match(WS); + State = 2277; Match(WS); } break; } - State = 2195; + State = 2281; _la = _input.La(1); if (_la==RPAREN) { { - State = 2194; Match(RPAREN); + State = 2280; Match(RPAREN); } } - State = 2197; valueStmt(0); + State = 2283; valueStmt(0); } } catch (RecognitionException re) { @@ -12166,26 +12738,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryCallStmtContext dictionaryCallStmt() { DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 234, RULE_dictionaryCallStmt); + EnterRule(_localctx, 246, RULE_dictionaryCallStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2199; Match(T__6); - State = 2201; + State = 2285; Match(T__6); + State = 2287; _la = _input.La(1); if (_la==WS) { { - State = 2200; Match(WS); + State = 2286; Match(WS); } } - State = 2203; ambiguousIdentifier(); - State = 2205; - switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { + State = 2289; ambiguousIdentifier(); + State = 2291; + switch ( Interpreter.AdaptivePredict(_input,372,_ctx) ) { case 1: { - State = 2204; typeHint(); + State = 2290; typeHint(); } break; } @@ -12238,70 +12810,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgListContext argList() { ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 236, RULE_argList); + EnterRule(_localctx, 248, RULE_argList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2207; Match(LPAREN); - State = 2225; - switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { + State = 2293; Match(LPAREN); + State = 2311; + switch ( Interpreter.AdaptivePredict(_input,377,_ctx) ) { case 1: { - State = 2209; + State = 2295; _la = _input.La(1); if (_la==WS) { { - State = 2208; Match(WS); + State = 2294; Match(WS); } } - State = 2211; arg(); - State = 2222; + State = 2297; arg(); + State = 2308; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + _alt = Interpreter.AdaptivePredict(_input,376,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2213; + State = 2299; _la = _input.La(1); if (_la==WS) { { - State = 2212; Match(WS); + State = 2298; Match(WS); } } - State = 2215; Match(T__1); - State = 2217; + State = 2301; Match(T__1); + State = 2303; _la = _input.La(1); if (_la==WS) { { - State = 2216; Match(WS); + State = 2302; Match(WS); } } - State = 2219; arg(); + State = 2305; arg(); } } } - State = 2224; + State = 2310; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + _alt = Interpreter.AdaptivePredict(_input,376,_ctx); } } break; } - State = 2228; + State = 2314; _la = _input.La(1); if (_la==WS) { { - State = 2227; Match(WS); + State = 2313; Match(WS); } } - State = 2230; Match(RPAREN); + State = 2316; Match(RPAREN); } } catch (RecognitionException re) { @@ -12361,106 +12933,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgContext arg() { ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 238, RULE_arg); + EnterRule(_localctx, 250, RULE_arg); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2234; - switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { + State = 2320; + switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { case 1: { - State = 2232; Match(OPTIONAL); - State = 2233; Match(WS); + State = 2318; Match(OPTIONAL); + State = 2319; Match(WS); } break; } - State = 2238; - switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { + State = 2324; + switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { case 1: { - State = 2236; + State = 2322; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2237; Match(WS); + State = 2323; Match(WS); } break; } - State = 2242; - switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { + State = 2328; + switch ( Interpreter.AdaptivePredict(_input,381,_ctx) ) { case 1: { - State = 2240; Match(PARAMARRAY); - State = 2241; Match(WS); + State = 2326; Match(PARAMARRAY); + State = 2327; Match(WS); } break; } - State = 2244; ambiguousIdentifier(); - State = 2246; + State = 2330; ambiguousIdentifier(); + State = 2332; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 2245; typeHint(); + State = 2331; typeHint(); } } - State = 2256; - switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { + State = 2342; + switch ( Interpreter.AdaptivePredict(_input,385,_ctx) ) { case 1: { - State = 2249; + State = 2335; _la = _input.La(1); if (_la==WS) { { - State = 2248; Match(WS); + State = 2334; Match(WS); } } - State = 2251; Match(LPAREN); - State = 2253; + State = 2337; Match(LPAREN); + State = 2339; _la = _input.La(1); if (_la==WS) { { - State = 2252; Match(WS); + State = 2338; Match(WS); } } - State = 2255; Match(RPAREN); + State = 2341; Match(RPAREN); } break; } - State = 2262; - switch ( Interpreter.AdaptivePredict(_input,373,_ctx) ) { + State = 2348; + switch ( Interpreter.AdaptivePredict(_input,387,_ctx) ) { case 1: { - State = 2259; + State = 2345; _la = _input.La(1); if (_la==WS) { { - State = 2258; Match(WS); + State = 2344; Match(WS); } } - State = 2261; asTypeClause(); + State = 2347; asTypeClause(); } break; } - State = 2268; - switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { + State = 2354; + switch ( Interpreter.AdaptivePredict(_input,389,_ctx) ) { case 1: { - State = 2265; + State = 2351; _la = _input.La(1); if (_la==WS) { { - State = 2264; Match(WS); + State = 2350; Match(WS); } } - State = 2267; argDefaultValue(); + State = 2353; argDefaultValue(); } break; } @@ -12506,20 +13078,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgDefaultValueContext argDefaultValue() { ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 240, RULE_argDefaultValue); + EnterRule(_localctx, 252, RULE_argDefaultValue); try { EnterOuterAlt(_localctx, 1); { - State = 2270; Match(EQ); - State = 2272; - switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { + State = 2356; Match(EQ); + State = 2358; + switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { case 1: { - State = 2271; Match(WS); + State = 2357; Match(WS); } break; } - State = 2274; valueStmt(0); + State = 2360; valueStmt(0); } } catch (RecognitionException re) { @@ -12567,44 +13139,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptsContext subscripts() { SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 242, RULE_subscripts); + EnterRule(_localctx, 254, RULE_subscripts); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2276; subscript(); - State = 2287; + State = 2362; subscript(); + State = 2373; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,379,_ctx); + _alt = Interpreter.AdaptivePredict(_input,393,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2278; + State = 2364; _la = _input.La(1); if (_la==WS) { { - State = 2277; Match(WS); + State = 2363; Match(WS); } } - State = 2280; Match(T__1); - State = 2282; - switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { + State = 2366; Match(T__1); + State = 2368; + switch ( Interpreter.AdaptivePredict(_input,392,_ctx) ) { case 1: { - State = 2281; Match(WS); + State = 2367; Match(WS); } break; } - State = 2284; subscript(); + State = 2370; subscript(); } } } - State = 2289; + State = 2375; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,379,_ctx); + _alt = Interpreter.AdaptivePredict(_input,393,_ctx); } } } @@ -12654,22 +13226,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptContext subscript() { SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 244, RULE_subscript); + EnterRule(_localctx, 256, RULE_subscript); try { EnterOuterAlt(_localctx, 1); { - State = 2295; - switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { + State = 2381; + switch ( Interpreter.AdaptivePredict(_input,394,_ctx) ) { case 1: { - State = 2290; valueStmt(0); - State = 2291; Match(WS); - State = 2292; Match(TO); - State = 2293; Match(WS); + State = 2376; valueStmt(0); + State = 2377; Match(WS); + State = 2378; Match(TO); + State = 2379; Match(WS); } break; } - State = 2297; valueStmt(0); + State = 2383; valueStmt(0); } } catch (RecognitionException re) { @@ -12717,23 +13289,23 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AmbiguousIdentifierContext ambiguousIdentifier() { AmbiguousIdentifierContext _localctx = new AmbiguousIdentifierContext(_ctx, State); - EnterRule(_localctx, 246, RULE_ambiguousIdentifier); + EnterRule(_localctx, 258, RULE_ambiguousIdentifier); try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2301; + State = 2387; _errHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 2301; + State = 2387; switch (_input.La(1)) { case IDENTIFIER: { - State = 2299; Match(IDENTIFIER); + State = 2385; Match(IDENTIFIER); } break; case ACCESS: @@ -12881,7 +13453,7 @@ public AmbiguousIdentifierContext ambiguousIdentifier() { case WRITE: case XOR: { - State = 2300; ambiguousKeyword(); + State = 2386; ambiguousKeyword(); } break; default: @@ -12892,9 +13464,9 @@ public AmbiguousIdentifierContext ambiguousIdentifier() { default: throw new NoViableAltException(this); } - State = 2303; + State = 2389; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,382,_ctx); + _alt = Interpreter.AdaptivePredict(_input,396,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -12945,43 +13517,43 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AsTypeClauseContext asTypeClause() { AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 248, RULE_asTypeClause); + EnterRule(_localctx, 260, RULE_asTypeClause); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2305; Match(AS); - State = 2307; + State = 2391; Match(AS); + State = 2393; _la = _input.La(1); if (_la==WS) { { - State = 2306; Match(WS); + State = 2392; Match(WS); } } - State = 2311; - switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { + State = 2397; + switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { case 1: { - State = 2309; Match(NEW); - State = 2310; Match(WS); + State = 2395; Match(NEW); + State = 2396; Match(WS); } break; } - State = 2313; type(); - State = 2318; - switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { + State = 2399; type(); + State = 2404; + switch ( Interpreter.AdaptivePredict(_input,400,_ctx) ) { case 1: { - State = 2315; + State = 2401; _la = _input.La(1); if (_la==WS) { { - State = 2314; Match(WS); + State = 2400; Match(WS); } } - State = 2317; fieldLength(); + State = 2403; fieldLength(); } break; } @@ -13032,14 +13604,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BaseTypeContext baseType() { BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 250, RULE_baseType); + EnterRule(_localctx, 262, RULE_baseType); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2320; + State = 2406; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la==INTEGER || _la==LONG || ((((_la - 155)) & ~0x3f) == 0 && ((1L << (_la - 155)) & ((1L << (SINGLE - 155)) | (1L << (STRING - 155)) | (1L << (VARIANT - 155)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la==INTEGER || _la==LONG || ((((_la - 160)) & ~0x3f) == 0 && ((1L << (_la - 160)) & ((1L << (SINGLE - 160)) | (1L << (STRING - 160)) | (1L << (VARIANT - 160)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -13090,22 +13662,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CertainIdentifierContext certainIdentifier() { CertainIdentifierContext _localctx = new CertainIdentifierContext(_ctx, State); - EnterRule(_localctx, 252, RULE_certainIdentifier); + EnterRule(_localctx, 264, RULE_certainIdentifier); try { int _alt; - State = 2337; + State = 2423; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2322; Match(IDENTIFIER); - State = 2327; + State = 2408; Match(IDENTIFIER); + State = 2413; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,388,_ctx); + _alt = Interpreter.AdaptivePredict(_input,402,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2325; + State = 2411; switch (_input.La(1)) { case ACCESS: case ADDRESSOF: @@ -13252,12 +13824,12 @@ public CertainIdentifierContext certainIdentifier() { case WRITE: case XOR: { - State = 2323; ambiguousKeyword(); + State = 2409; ambiguousKeyword(); } break; case IDENTIFIER: { - State = 2324; Match(IDENTIFIER); + State = 2410; Match(IDENTIFIER); } break; default: @@ -13265,9 +13837,9 @@ public CertainIdentifierContext certainIdentifier() { } } } - State = 2329; + State = 2415; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,388,_ctx); + _alt = Interpreter.AdaptivePredict(_input,402,_ctx); } } break; @@ -13417,15 +13989,15 @@ public CertainIdentifierContext certainIdentifier() { case XOR: EnterOuterAlt(_localctx, 2); { - State = 2330; ambiguousKeyword(); - State = 2333; + State = 2416; ambiguousKeyword(); + State = 2419; _errHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 2333; + State = 2419; switch (_input.La(1)) { case ACCESS: case ADDRESSOF: @@ -13572,12 +14144,12 @@ public CertainIdentifierContext certainIdentifier() { case WRITE: case XOR: { - State = 2331; ambiguousKeyword(); + State = 2417; ambiguousKeyword(); } break; case IDENTIFIER: { - State = 2332; Match(IDENTIFIER); + State = 2418; Match(IDENTIFIER); } break; default: @@ -13588,9 +14160,9 @@ public CertainIdentifierContext certainIdentifier() { default: throw new NoViableAltException(this); } - State = 2335; + State = 2421; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,390,_ctx); + _alt = Interpreter.AdaptivePredict(_input,404,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; @@ -13641,14 +14213,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComparisonOperatorContext comparisonOperator() { ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 254, RULE_comparisonOperator); + EnterRule(_localctx, 266, RULE_comparisonOperator); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2339; + State = 2425; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 186)) & ~0x3f) == 0 && ((1L << (_la - 186)) & ((1L << (EQ - 186)) | (1L << (GEQ - 186)) | (1L << (GT - 186)) | (1L << (LEQ - 186)) | (1L << (LT - 186)) | (1L << (NEQ - 186)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 191)) & ~0x3f) == 0 && ((1L << (_la - 191)) & ((1L << (EQ - 191)) | (1L << (GEQ - 191)) | (1L << (GT - 191)) | (1L << (LEQ - 191)) | (1L << (LT - 191)) | (1L << (NEQ - 191)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -13695,33 +14267,33 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComplexTypeContext complexType() { ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 256, RULE_complexType); + EnterRule(_localctx, 268, RULE_complexType); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2341; ambiguousIdentifier(); - State = 2346; + State = 2427; ambiguousIdentifier(); + State = 2432; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,392,_ctx); + _alt = Interpreter.AdaptivePredict(_input,406,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2342; + State = 2428; _la = _input.La(1); if ( !(_la==T__6 || _la==T__0) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2343; ambiguousIdentifier(); + State = 2429; ambiguousIdentifier(); } } } - State = 2348; + State = 2434; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,392,_ctx); + _alt = Interpreter.AdaptivePredict(_input,406,_ctx); } } } @@ -13766,25 +14338,25 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FieldLengthContext fieldLength() { FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 258, RULE_fieldLength); + EnterRule(_localctx, 270, RULE_fieldLength); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2349; Match(MULT); - State = 2351; + State = 2435; Match(MULT); + State = 2437; _la = _input.La(1); if (_la==WS) { { - State = 2350; Match(WS); + State = 2436; Match(WS); } } - State = 2355; + State = 2441; switch (_input.La(1)) { case INTEGERLITERAL: { - State = 2353; Match(INTEGERLITERAL); + State = 2439; Match(INTEGERLITERAL); } break; case ACCESS: @@ -13933,7 +14505,7 @@ public FieldLengthContext fieldLength() { case XOR: case IDENTIFIER: { - State = 2354; ambiguousIdentifier(); + State = 2440; ambiguousIdentifier(); } break; default: @@ -13987,34 +14559,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetterrangeContext letterrange() { LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 260, RULE_letterrange); + EnterRule(_localctx, 272, RULE_letterrange); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2357; certainIdentifier(); - State = 2366; - switch ( Interpreter.AdaptivePredict(_input,397,_ctx) ) { + State = 2443; certainIdentifier(); + State = 2452; + switch ( Interpreter.AdaptivePredict(_input,411,_ctx) ) { case 1: { - State = 2359; + State = 2445; _la = _input.La(1); if (_la==WS) { { - State = 2358; Match(WS); + State = 2444; Match(WS); } } - State = 2361; Match(MINUS); - State = 2363; + State = 2447; Match(MINUS); + State = 2449; _la = _input.La(1); if (_la==WS) { { - State = 2362; Match(WS); + State = 2448; Match(WS); } } - State = 2365; certainIdentifier(); + State = 2451; certainIdentifier(); } break; } @@ -14058,12 +14630,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineLabelContext lineLabel() { LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 262, RULE_lineLabel); + EnterRule(_localctx, 274, RULE_lineLabel); try { EnterOuterAlt(_localctx, 1); { - State = 2368; ambiguousIdentifier(); - State = 2369; Match(COLON); + State = 2454; ambiguousIdentifier(); + State = 2455; Match(COLON); } } catch (RecognitionException re) { @@ -14113,14 +14685,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 264, RULE_literal); + EnterRule(_localctx, 276, RULE_literal); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2371; + State = 2457; _la = _input.La(1); - if ( !(((((_la - 54)) & ~0x3f) == 0 && ((1L << (_la - 54)) & ((1L << (EMPTY - 54)) | (1L << (FALSE - 54)) | (1L << (NOTHING - 54)) | (1L << (NULL - 54)))) != 0) || ((((_la - 167)) & ~0x3f) == 0 && ((1L << (_la - 167)) & ((1L << (TRUE - 167)) | (1L << (STRINGLITERAL - 167)) | (1L << (OCTLITERAL - 167)) | (1L << (HEXLITERAL - 167)) | (1L << (SHORTLITERAL - 167)) | (1L << (INTEGERLITERAL - 167)) | (1L << (DOUBLELITERAL - 167)) | (1L << (DATELITERAL - 167)))) != 0)) ) { + if ( !(_la==EMPTY || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & ((1L << (FALSE - 74)) | (1L << (NOTHING - 74)) | (1L << (NULL - 74)))) != 0) || ((((_la - 172)) & ~0x3f) == 0 && ((1L << (_la - 172)) & ((1L << (TRUE - 172)) | (1L << (STRINGLITERAL - 172)) | (1L << (OCTLITERAL - 172)) | (1L << (HEXLITERAL - 172)) | (1L << (SHORTLITERAL - 172)) | (1L << (INTEGERLITERAL - 172)) | (1L << (DOUBLELITERAL - 172)) | (1L << (DATELITERAL - 172)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14173,47 +14745,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeContext type() { TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 266, RULE_type); + EnterRule(_localctx, 278, RULE_type); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2375; - switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { + State = 2461; + switch ( Interpreter.AdaptivePredict(_input,412,_ctx) ) { case 1: { - State = 2373; baseType(); + State = 2459; baseType(); } break; case 2: { - State = 2374; complexType(); + State = 2460; complexType(); } break; } - State = 2385; - switch ( Interpreter.AdaptivePredict(_input,401,_ctx) ) { + State = 2471; + switch ( Interpreter.AdaptivePredict(_input,415,_ctx) ) { case 1: { - State = 2378; + State = 2464; _la = _input.La(1); if (_la==WS) { { - State = 2377; Match(WS); + State = 2463; Match(WS); } } - State = 2380; Match(LPAREN); - State = 2382; + State = 2466; Match(LPAREN); + State = 2468; _la = _input.La(1); if (_la==WS) { { - State = 2381; Match(WS); + State = 2467; Match(WS); } } - State = 2384; Match(RPAREN); + State = 2470; Match(RPAREN); } break; } @@ -14254,12 +14826,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 268, RULE_typeHint); + EnterRule(_localctx, 280, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2387; + State = 2473; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) ) { _errHandler.RecoverInline(this); @@ -14306,12 +14878,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VisibilityContext visibility() { VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 270, RULE_visibility); + EnterRule(_localctx, 282, RULE_visibility); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2389; + State = 2475; _la = _input.La(1); if ( !(((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14498,14 +15070,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AmbiguousKeywordContext ambiguousKeyword() { AmbiguousKeywordContext _localctx = new AmbiguousKeywordContext(_ctx, State); - EnterRule(_localctx, 272, RULE_ambiguousKeyword); + EnterRule(_localctx, 284, RULE_ambiguousKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2391; + State = 2477; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14547,11 +15119,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemCommentContext remComment() { RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 274, RULE_remComment); + EnterRule(_localctx, 286, RULE_remComment); try { EnterOuterAlt(_localctx, 1); { - State = 2393; Match(REMCOMMENT); + State = 2479; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -14590,11 +15162,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CommentContext comment() { CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 276, RULE_comment); + EnterRule(_localctx, 288, RULE_comment); try { EnterOuterAlt(_localctx, 1); { - State = 2395; Match(COMMENT); + State = 2481; Match(COMMENT); } } catch (RecognitionException re) { @@ -14643,44 +15215,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfLineContext endOfLine() { EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 278, RULE_endOfLine); + EnterRule(_localctx, 290, RULE_endOfLine); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2398; + State = 2484; _la = _input.La(1); if (_la==WS) { { - State = 2397; Match(WS); + State = 2483; Match(WS); } } - State = 2403; + State = 2489; switch (_input.La(1)) { case NEWLINE: { - State = 2400; Match(NEWLINE); + State = 2486; Match(NEWLINE); } break; case COMMENT: { - State = 2401; comment(); + State = 2487; comment(); } break; case REMCOMMENT: { - State = 2402; remComment(); + State = 2488; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2406; - switch ( Interpreter.AdaptivePredict(_input,404,_ctx) ) { + State = 2492; + switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: { - State = 2405; Match(WS); + State = 2491; Match(WS); } break; } @@ -14735,42 +15307,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfStatementContext endOfStatement() { EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 280, RULE_endOfStatement); + EnterRule(_localctx, 292, RULE_endOfStatement); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2418; + State = 2504; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,408,_ctx); + _alt = Interpreter.AdaptivePredict(_input,422,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2416; - switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { + State = 2502; + switch ( Interpreter.AdaptivePredict(_input,421,_ctx) ) { case 1: { - State = 2408; endOfLine(); + State = 2494; endOfLine(); } break; case 2: { - State = 2410; + State = 2496; _la = _input.La(1); if (_la==WS) { { - State = 2409; Match(WS); + State = 2495; Match(WS); } } - State = 2412; Match(COLON); - State = 2414; - switch ( Interpreter.AdaptivePredict(_input,406,_ctx) ) { + State = 2498; Match(COLON); + State = 2500; + switch ( Interpreter.AdaptivePredict(_input,420,_ctx) ) { case 1: { - State = 2413; Match(WS); + State = 2499; Match(WS); } break; } @@ -14779,9 +15351,9 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2420; + State = 2506; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,408,_ctx); + _alt = Interpreter.AdaptivePredict(_input,422,_ctx); } } } @@ -14798,7 +15370,7 @@ public EndOfStatementContext endOfStatement() { public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 94: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + case 100: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); } return true; } @@ -14832,7 +15404,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF0\x978\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF5\x9CE\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -14852,1097 +15424,1157 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4\x82"+ "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ "\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C\x4\x8D"+ - "\t\x8D\x4\x8E\t\x8E\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x121\n\x3\x3\x3\x3\x3"+ - "\x3\x3\x3\x3\x5\x3\x127\n\x3\x3\x3\x5\x3\x12A\n\x3\x3\x3\x3\x3\x5\x3\x12E"+ - "\n\x3\x3\x3\x3\x3\x5\x3\x132\n\x3\x3\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3"+ - "\x3\x5\x3\x13A\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3"+ - "\x5\x6\x5\x145\n\x5\r\x5\xE\x5\x146\x3\x5\x3\x5\x3\x6\x3\x6\x5\x6\x14D"+ - "\n\x6\x3\x6\x3\x6\x5\x6\x151\n\x6\x3\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x6"+ - "\a\x159\n\a\r\a\xE\a\x15A\x3\b\x3\b\x3\b\x3\b\a\b\x161\n\b\f\b\xE\b\x164"+ - "\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x170\n\t\x3"+ - "\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x17B\n\n\x3\v\x3\v\x3"+ - "\v\x3\v\a\v\x181\n\v\f\v\xE\v\x184\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3"+ - "\f\x5\f\x18D\n\f\x3\r\x3\r\x3\r\x3\r\x5\r\x193\n\r\x3\r\x3\r\x5\r\x197"+ - "\n\r\x3\r\x3\r\x5\r\x19B\n\r\x3\r\x3\r\x5\r\x19F\n\r\x3\r\a\r\x1A2\n\r"+ - "\f\r\xE\r\x1A5\v\r\x3\xE\x3\xE\x3\xE\x3\xE\a\xE\x1AB\n\xE\f\xE\xE\xE\x1AE"+ - "\v\xE\x3\xE\x3\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5"+ - "\xF\x1F4\n\xF\x3\x10\x3\x10\x3\x10\x3\x10\x5\x10\x1FA\n\x10\x3\x10\x3"+ - "\x10\x5\x10\x1FE\n\x10\x3\x10\x5\x10\x201\n\x10\x3\x11\x3\x11\x3\x12\x3"+ - "\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3"+ - "\x14\x5\x14\x211\n\x14\x3\x14\x3\x14\x5\x14\x215\n\x14\x3\x14\a\x14\x218"+ - "\n\x14\f\x14\xE\x14\x21B\v\x14\x5\x14\x21D\n\x14\x3\x15\x3\x15\x3\x15"+ - "\x5\x15\x222\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x228\n\x15\x3\x15"+ - "\x3\x15\x5\x15\x22C\n\x15\x3\x15\a\x15\x22F\n\x15\f\x15\xE\x15\x232\v"+ - "\x15\x3\x16\x3\x16\x5\x16\x236\n\x16\x3\x16\x3\x16\x5\x16\x23A\n\x16\x3"+ - "\x16\x5\x16\x23D\n\x16\x3\x16\x3\x16\x5\x16\x241\n\x16\x3\x16\x3\x16\x3"+ - "\x17\x3\x17\x5\x17\x247\n\x17\x3\x17\x3\x17\x5\x17\x24B\n\x17\x3\x17\x3"+ - "\x17\x3\x18\x3\x18\x3\x18\x5\x18\x252\n\x18\x3\x18\x3\x18\x3\x18\x3\x18"+ - "\x5\x18\x258\n\x18\x3\x18\x3\x18\x5\x18\x25C\n\x18\x3\x18\x5\x18\x25F"+ - "\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x264\n\x18\x3\x18\x3\x18\x3\x18\x3"+ - "\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x26E\n\x18\x3\x18\x5\x18\x271"+ - "\n\x18\x3\x18\x5\x18\x274\n\x18\x3\x18\x3\x18\x5\x18\x278\n\x18\x3\x19"+ - "\x3\x19\x3\x19\x3\x19\x5\x19\x27E\n\x19\x3\x19\x3\x19\x5\x19\x282\n\x19"+ - "\x3\x19\a\x19\x285\n\x19\f\x19\xE\x19\x288\v\x19\x3\x1A\x3\x1A\x3\x1A"+ - "\x3\x1A\x5\x1A\x28E\n\x1A\x3\x1A\x3\x1A\x5\x1A\x292\n\x1A\x3\x1A\x3\x1A"+ - "\x5\x1A\x296\n\x1A\x3\x1A\x3\x1A\x5\x1A\x29A\n\x1A\x3\x1A\x5\x1A\x29D"+ - "\n\x1A\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2A2\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ - "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2AD\n\x1B\x3\x1B\x3\x1B"+ - "\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B"+ - "\x2BA\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x2C1\n\x1D\x3\x1D"+ - "\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x2C8\n\x1D\f\x1D\xE\x1D\x2CB\v\x1D"+ - "\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x2D1\n\x1E\x3\x1E\x3\x1E\x5\x1E\x2D5"+ - "\n\x1E\x3\x1E\x5\x1E\x2D8\n\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3"+ - "\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x5!\x2E7\n!\x3!\x3!\x3!\x3!\x5!\x2ED"+ - "\n!\x3!\x3!\x3\"\x3\"\x3#\x3#\x3#\x3#\x5#\x2F7\n#\x3#\x3#\x5#\x2FB\n#"+ - "\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x305\n$\x3$\x3$\x3$\x3$\x3$\x3$\x5"+ - "$\x30D\n$\x3$\x3$\x3$\x5$\x312\n$\x3%\x3%\x3%\x3%\x5%\x318\n%\x3%\x3%"+ - "\x5%\x31C\n%\x3%\x5%\x31F\n%\x3%\x3%\x5%\x323\n%\x3%\x3%\x3%\x3%\x3%\x3"+ - "%\x3%\x3%\x3%\x5%\x32E\n%\x3%\x3%\x5%\x332\n%\x3%\x3%\x3%\x5%\x337\n%"+ - "\x3&\x3&\x3&\x5&\x33C\n&\x3&\x3&\x5&\x340\n&\x3&\x3&\x5&\x344\n&\x3&\x3"+ - "&\x5&\x348\n&\x3&\x5&\x34B\n&\x3&\x5&\x34E\n&\x3&\x5&\x351\n&\x3&\x5&"+ - "\x354\n&\x3&\x3&\x5&\x358\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x360\n\'"+ - "\x3\'\x3\'\x5\'\x364\n\'\x3\'\x5\'\x367\n\'\x3\'\x5\'\x36A\n\'\x3\'\x3"+ - "\'\x5\'\x36E\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3"+ - "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x385\n*\x3*\x3*\a*\x389\n*\f*\xE"+ - "*\x38C\v*\x3*\x5*\x38F\n*\x3*\x3*\x5*\x393\n*\x3+\x3+\x3+\x3+\x3+\x3+"+ - "\x3+\x5+\x39C\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3A7\n-\x3.\x3"+ - ".\x3.\x5.\x3AC\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30\x3B6"+ - "\n\x30\x3\x30\x3\x30\x5\x30\x3BA\n\x30\x3\x30\x6\x30\x3BD\n\x30\r\x30"+ - "\xE\x30\x3BE\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5\x32\x3C7\n\x32"+ - "\x3\x32\x3\x32\x5\x32\x3CB\n\x32\x3\x32\x3\x32\x5\x32\x3CF\n\x32\x3\x32"+ - "\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x3D7\n\x33\x3\x33\x3\x33\x5"+ - "\x33\x3DB\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35"+ - "\x3\x35\x3\x35\x5\x35\x3E7\n\x35\x3\x35\x3\x35\x5\x35\x3EB\n\x35\x3\x35"+ - "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x3F2\n\x35\x5\x35\x3F4\n\x35\x3\x36"+ - "\x3\x36\x3\x36\x3\x36\x5\x36\x3FA\n\x36\x3\x36\x3\x36\x5\x36\x3FE\n\x36"+ - "\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x404\n\x37\x3\x37\x3\x37\x5\x37\x408"+ - "\n\x37\x3\x37\x3\x37\x5\x37\x40C\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3"+ - "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ - ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x424\n:\x3;\x3;\x3;\x3;\x3;\x3;\x3;"+ - "\x3;\x5;\x42E\n;\x3;\x3;\x5;\x432\n;\x3;\a;\x435\n;\f;\xE;\x438\v;\x3"+ - "<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x442\n<\x3<\x3<\x5<\x446\n<\x3<\a<\x449"+ - "\n<\f<\xE<\x44C\v<\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x459"+ - "\n=\x3=\x3=\x5=\x45D\n=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x466\n=\x3=\x3"+ - "=\x5=\x46A\n=\x3=\x5=\x46D\n=\x3>\x3>\x5>\x471\n>\x3>\x3>\x5>\x475\n>"+ - "\x3>\x5>\x478\n>\a>\x47A\n>\f>\xE>\x47D\v>\x3>\x5>\x480\n>\x3>\x5>\x483"+ - "\n>\x3>\x3>\x5>\x487\n>\x3>\x5>\x48A\n>\x6>\x48C\n>\r>\xE>\x48D\x5>\x490"+ - "\n>\x3?\x3?\x3?\x5?\x495\n?\x3?\x3?\x5?\x499\n?\x3?\x3?\x5?\x49D\n?\x3"+ - "?\x3?\x5?\x4A1\n?\x5?\x4A3\n?\x3@\x3@\x3@\x3@\x5@\x4A9\n@\x3@\x3@\x5@"+ - "\x4AD\n@\x3@\x5@\x4B0\n@\x3\x41\x3\x41\x3\x41\x5\x41\x4B5\n\x41\x3\x41"+ - "\x3\x41\x5\x41\x4B9\n\x41\x3\x41\x3\x41\x3\x41\x3\x41\x5\x41\x4BF\n\x41"+ - "\x3\x41\x5\x41\x4C2\n\x41\x3\x41\x5\x41\x4C5\n\x41\x3\x41\x3\x41\x5\x41"+ - "\x4C9\n\x41\x3\x41\x3\x41\x5\x41\x4CD\n\x41\x3\x41\x3\x41\x3\x42\x3\x42"+ - "\x3\x42\x5\x42\x4D4\n\x42\x3\x42\x3\x42\x5\x42\x4D8\n\x42\x3\x42\x3\x42"+ - "\x3\x42\x3\x42\x5\x42\x4DE\n\x42\x3\x42\x5\x42\x4E1\n\x42\x3\x42\x3\x42"+ - "\x5\x42\x4E5\n\x42\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x4EC\n\x43"+ - "\x3\x43\x3\x43\x5\x43\x4F0\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x4F6"+ - "\n\x43\x3\x43\x5\x43\x4F9\n\x43\x3\x43\x3\x43\x5\x43\x4FD\n\x43\x3\x43"+ - "\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44\x5\x44\x505\n\x44\x3\x44\x3\x44\x5"+ - "\x44\x509\n\x44\x3\x44\x5\x44\x50C\n\x44\x3\x44\x5\x44\x50F\n\x44\x3\x44"+ - "\x3\x44\x5\x44\x513\n\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5"+ - "\x45\x51B\n\x45\x3\x45\x3\x45\x5\x45\x51F\n\x45\x3\x45\x3\x45\x5\x45\x523"+ - "\n\x45\x5\x45\x525\n\x45\x3\x45\x5\x45\x528\n\x45\x3\x46\x3\x46\x3\x46"+ - "\x5\x46\x52D\n\x46\x3G\x3G\x3G\x3G\x5G\x533\nG\x3G\x3G\x5G\x537\nG\x3"+ - "G\x3G\x5G\x53B\nG\x3G\aG\x53E\nG\fG\xEG\x541\vG\x3H\x3H\x5H\x545\nH\x3"+ - "H\x3H\x5H\x549\nH\x3H\x3H\x5H\x54D\nH\x3H\x3H\x3H\x5H\x552\nH\x3I\x3I"+ - "\x3J\x3J\x3J\x3J\x5J\x55A\nJ\x5J\x55C\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3"+ - "M\x3M\x3M\x5M\x568\nM\x3M\x3M\x5M\x56C\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N"+ - "\x574\nN\x3N\x3N\x5N\x578\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x580\nO\x3O\x3"+ - "O\x5O\x584\nO\x3O\x3O\x5O\x588\nO\x3O\x3O\x5O\x58C\nO\x3O\x3O\x5O\x590"+ - "\nO\x3O\x3O\x5O\x594\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x59C\nP\x3P\x3P\x5"+ - "P\x5A0\nP\x3P\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x5AB\nQ\fQ\xEQ\x5AE\v"+ - "Q\x3Q\x3Q\x3R\x3R\x5R\x5B4\nR\x3R\x3R\x5R\x5B8\nR\x3R\x3R\x3R\x3R\x3R"+ - "\x3R\x3R\x3R\x3R\x5R\x5C3\nR\x3S\x3S\x3S\x3S\x3S\x5S\x5CA\nS\x3T\x3T\x3"+ - "T\x5T\x5CF\nT\x3T\x3T\x5T\x5D3\nT\x3T\aT\x5D6\nT\fT\xET\x5D9\vT\x5T\x5DB"+ - "\nT\x3U\x3U\x3U\x3U\x5U\x5E1\nU\x3U\x3U\x5U\x5E5\nU\x3U\x5U\x5E8\nU\x3"+ - "V\x3V\x3V\x3V\x5V\x5EE\nV\x3V\x3V\x5V\x5F2\nV\x3V\x3V\x3W\x3W\x3W\x3W"+ - "\x5W\x5FA\nW\x3W\x3W\x5W\x5FE\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x607"+ - "\nY\x3Y\x3Y\x5Y\x60B\nY\x3Y\x3Y\x5Y\x60F\nY\x3Y\x3Y\x5Y\x613\nY\x3Y\x5"+ - "Y\x616\nY\x3Y\x3Y\x5Y\x61A\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x620\nZ\x3Z\x3Z\x5Z"+ - "\x624\nZ\x3Z\x3Z\x3[\x3[\x3[\x5[\x62B\n[\x3[\x3[\x3[\x3[\x3[\a[\x632\n"+ - "[\f[\xE[\x635\v[\x3[\x3[\x3\\\x3\\\x5\\\x63B\n\\\x3\\\x3\\\x5\\\x63F\n"+ - "\\\x3\\\x5\\\x642\n\\\x3\\\x5\\\x645\n\\\x3\\\x5\\\x648\n\\\x3\\\x3\\"+ - "\x5\\\x64C\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3]\x3]\x5]\x657\n]\x3^\x3"+ - "^\x3^\x3^\x3_\x3_\x3_\x3_\x5_\x661\n_\x3_\x3_\x5_\x665\n_\x3_\x3_\x3_"+ - "\x3_\x3_\x5_\x66C\n_\x5_\x66E\n_\x3`\x3`\x3`\x5`\x673\n`\x3`\x3`\x3`\x5"+ - "`\x678\n`\x3`\x3`\x3`\x5`\x67D\n`\x3`\x3`\x5`\x681\n`\x3`\x3`\x3`\x3`"+ - "\x5`\x687\n`\x3`\x3`\x3`\x5`\x68C\n`\x3`\x3`\x3`\x3`\x3`\x5`\x693\n`\x3"+ - "`\x3`\x5`\x697\n`\x3`\x3`\x5`\x69B\n`\x3`\a`\x69E\n`\f`\xE`\x6A1\v`\x3"+ - "`\x3`\x3`\x3`\x5`\x6A7\n`\x3`\x3`\x5`\x6AB\n`\x3`\x3`\x5`\x6AF\n`\x3`"+ - "\x3`\x3`\x5`\x6B4\n`\x3`\x3`\x5`\x6B8\n`\x3`\x3`\x3`\x5`\x6BD\n`\x3`\x3"+ - "`\x5`\x6C1\n`\x3`\x3`\x3`\x5`\x6C6\n`\x3`\x3`\x5`\x6CA\n`\x3`\x3`\x3`"+ - "\x5`\x6CF\n`\x3`\x3`\x5`\x6D3\n`\x3`\x3`\x3`\x5`\x6D8\n`\x3`\x3`\x5`\x6DC"+ - "\n`\x3`\x3`\x3`\x5`\x6E1\n`\x3`\x3`\x5`\x6E5\n`\x3`\x3`\x3`\x5`\x6EA\n"+ - "`\x3`\x3`\x5`\x6EE\n`\x3`\x3`\x3`\x5`\x6F3\n`\x3`\x3`\x5`\x6F7\n`\x3`"+ - "\x3`\x3`\x5`\x6FC\n`\x3`\x3`\x5`\x700\n`\x3`\x3`\x3`\x5`\x705\n`\x3`\x3"+ - "`\x5`\x709\n`\x3`\x3`\x3`\x5`\x70E\n`\x3`\x3`\x5`\x712\n`\x3`\a`\x715"+ - "\n`\f`\xE`\x718\v`\x3\x61\x3\x61\x3\x61\x5\x61\x71D\n\x61\x3\x61\x3\x61"+ - "\x3\x61\x5\x61\x722\n\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62\x728\n\x62"+ - "\x3\x62\x3\x62\x5\x62\x72C\n\x62\x3\x62\a\x62\x72F\n\x62\f\x62\xE\x62"+ - "\x732\v\x62\x3\x63\x3\x63\x5\x63\x736\n\x63\x3\x63\x3\x63\x5\x63\x73A"+ - "\n\x63\x3\x63\x3\x63\x5\x63\x73E\n\x63\x5\x63\x740\n\x63\x3\x63\x3\x63"+ - "\x5\x63\x744\n\x63\x5\x63\x746\n\x63\x3\x63\x5\x63\x749\n\x63\x3\x63\x3"+ - "\x63\x5\x63\x74D\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x5\x64\x754"+ - "\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x75C\n\x65\x3"+ - "\x65\x3\x65\x5\x65\x760\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3\x66"+ - "\x3\x66\x3\x66\x5\x66\x76A\n\x66\x3\x66\x3\x66\x5\x66\x76E\n\x66\x3\x66"+ - "\x3\x66\x3g\x3g\x3g\x3g\x5g\x776\ng\x3g\x3g\x5g\x77A\ng\x3g\x5g\x77D\n"+ - "g\x3h\x5h\x780\nh\x3h\x3h\x3i\x3i\x5i\x786\ni\x3j\x3j\x3j\x3j\x5j\x78C"+ - "\nj\x3j\x5j\x78F\nj\x3j\x3j\x5j\x793\nj\x3j\x3j\x5j\x797\nj\x3j\x3j\x5"+ - "j\x79B\nj\x3j\x5j\x79E\nj\x3j\x3j\x3j\x3j\aj\x7A4\nj\fj\xEj\x7A7\vj\x3"+ - "k\x3k\x3k\x5k\x7AC\nk\x3k\x3k\x3k\x5k\x7B1\nk\x3k\x5k\x7B4\nk\x3k\x3k"+ - "\x5k\x7B8\nk\x3k\x3k\x5k\x7BC\nk\x3k\x3k\x5k\x7C0\nk\x3k\x5k\x7C3\nk\x3"+ - "k\x3k\x3k\x3k\ak\x7C9\nk\fk\xEk\x7CC\vk\x3l\x3l\x5l\x7D0\nl\x3m\x5m\x7D3"+ - "\nm\x3m\x3m\x3m\x5m\x7D8\nm\x3m\x3m\x5m\x7DC\nm\x3m\x5m\x7DF\nm\x3m\x5"+ - "m\x7E2\nm\x3m\x5m\x7E5\nm\x3m\x3m\x3m\x3m\am\x7EB\nm\fm\xEm\x7EE\vm\x3"+ - "n\x3n\x3n\x5n\x7F3\nn\x3n\x5n\x7F6\nn\x3n\x3n\x3n\x3n\an\x7FC\nn\fn\xE"+ - "n\x7FF\vn\x3o\x3o\x3o\x3o\x5o\x805\no\x3p\x3p\x5p\x809\np\x3p\x5p\x80C"+ - "\np\x3p\x5p\x80F\np\x3p\x5p\x812\np\x3p\x3p\x3p\x3p\ap\x818\np\fp\xEp"+ - "\x81B\vp\x3q\x3q\x5q\x81F\nq\x3q\x5q\x822\nq\x3q\x5q\x825\nq\x3q\x3q\x5"+ - "q\x829\nq\x3q\x3q\x5q\x82D\nq\x5q\x82F\nq\x3q\x3q\x5q\x833\nq\x3q\x5q"+ - "\x836\nq\x3q\x5q\x839\nq\x3q\x3q\x3q\x3q\aq\x83F\nq\fq\xEq\x842\vq\x3"+ - "r\x3r\x5r\x846\nr\x3r\x3r\x5r\x84A\nr\x6r\x84C\nr\rr\xEr\x84D\x3r\x5r"+ - "\x851\nr\x3r\x5r\x854\nr\x3r\x5r\x857\nr\x3r\x3r\x3r\x3r\ar\x85D\nr\f"+ - "r\xEr\x860\vr\x3s\x3s\x5s\x864\ns\x3s\x3s\x5s\x868\ns\x3t\x5t\x86B\nt"+ - "\x3t\x3t\x3u\x5u\x870\nu\x3u\x5u\x873\nu\x3u\x3u\x5u\x877\nu\au\x879\n"+ - "u\fu\xEu\x87C\vu\x3u\x3u\x5u\x880\nu\x3u\x3u\x5u\x884\nu\x3u\x5u\x887"+ - "\nu\au\x889\nu\fu\xEu\x88C\vu\x3v\x5v\x88F\nv\x3v\x3v\x5v\x893\nv\x3v"+ - "\x5v\x896\nv\x3v\x3v\x3w\x3w\x5w\x89C\nw\x3w\x3w\x5w\x8A0\nw\x3x\x3x\x5"+ - "x\x8A4\nx\x3x\x3x\x5x\x8A8\nx\x3x\x3x\x5x\x8AC\nx\x3x\ax\x8AF\nx\fx\xE"+ - "x\x8B2\vx\x5x\x8B4\nx\x3x\x5x\x8B7\nx\x3x\x3x\x3y\x3y\x5y\x8BD\ny\x3y"+ - "\x3y\x5y\x8C1\ny\x3y\x3y\x5y\x8C5\ny\x3y\x3y\x5y\x8C9\ny\x3y\x5y\x8CC"+ - "\ny\x3y\x3y\x5y\x8D0\ny\x3y\x5y\x8D3\ny\x3y\x5y\x8D6\ny\x3y\x5y\x8D9\n"+ - "y\x3y\x5y\x8DC\ny\x3y\x5y\x8DF\ny\x3z\x3z\x5z\x8E3\nz\x3z\x3z\x3{\x3{"+ - "\x5{\x8E9\n{\x3{\x3{\x5{\x8ED\n{\x3{\a{\x8F0\n{\f{\xE{\x8F3\v{\x3|\x3"+ - "|\x3|\x3|\x3|\x5|\x8FA\n|\x3|\x3|\x3}\x3}\x6}\x900\n}\r}\xE}\x901\x3~"+ - "\x3~\x5~\x906\n~\x3~\x3~\x5~\x90A\n~\x3~\x3~\x5~\x90E\n~\x3~\x5~\x911"+ - "\n~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\a\x80\x918\n\x80\f\x80\xE\x80\x91B"+ - "\v\x80\x3\x80\x3\x80\x3\x80\x6\x80\x920\n\x80\r\x80\xE\x80\x921\x5\x80"+ - "\x924\n\x80\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\a\x82\x92B\n\x82\f\x82"+ - "\xE\x82\x92E\v\x82\x3\x83\x3\x83\x5\x83\x932\n\x83\x3\x83\x3\x83\x5\x83"+ - "\x936\n\x83\x3\x84\x3\x84\x5\x84\x93A\n\x84\x3\x84\x3\x84\x5\x84\x93E"+ - "\n\x84\x3\x84\x5\x84\x941\n\x84\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3"+ - "\x87\x3\x87\x5\x87\x94A\n\x87\x3\x87\x5\x87\x94D\n\x87\x3\x87\x3\x87\x5"+ - "\x87\x951\n\x87\x3\x87\x5\x87\x954\n\x87\x3\x88\x3\x88\x3\x89\x3\x89\x3"+ - "\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8D\x5\x8D\x961\n\x8D\x3\x8D"+ - "\x3\x8D\x3\x8D\x5\x8D\x966\n\x8D\x3\x8D\x5\x8D\x969\n\x8D\x3\x8E\x3\x8E"+ - "\x5\x8E\x96D\n\x8E\x3\x8E\x3\x8E\x5\x8E\x971\n\x8E\a\x8E\x973\n\x8E\f"+ - "\x8E\xE\x8E\x976\v\x8E\x3\x8E\x2\x2\x3\xBE\x8F\x2\x2\x4\x2\x6\x2\b\x2"+ - "\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E"+ - "\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2"+ - ":\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2"+ - "X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2"+ - "v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2"+ - "\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2"+ - "\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2"+ - "\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2"+ - "\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2"+ - "\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2"+ - "\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104"+ - "\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116"+ - "\x2\x118\x2\x11A\x2\x2\x17\x5\x2\x15\x15\"\"\xA5\xA5\x3\x2%\x30\x4\x2"+ - "\xAE\xAE\xB2\xB2\x3\x2GK\x3\x2uv\a\x2\x11\x11\x15\x15YY~~\x89\x89\x4\x2"+ - "\x8C\x8D\xB6\xB6\x4\x2\x66h\x9C\x9C\x3\x2\b\t\x4\x2\x9E\x9E\xA4\xA4\x4"+ - "\x2\xBA\xBA\xC3\xC3\x4\x2\xC2\xC2\xC5\xC5\a\x2ZZ\x64\x64\xBC\xBF\xC1\xC1"+ - "\xC4\xC4\x4\x2\x4\x4\n\n\x4\x2\x17\x18\x7F\x7F\x3\x2\x17\x18\f\x2\x16"+ - "\x16\x19\x19 ##\x34\x34[[__\x9D\x9D\xA2\xA2\xAF\xAF\a\x2\x38\x38LLrs"+ - "\xA9\xA9\xCA\xD0\x4\x2\x3\a\xB8\xB8\x6\x2NNRR\x82\x82\x87\x87\n\x2\v\x37"+ - "\x41\x46L\x64itwx}\x82\x87\x8C\x8E\xB7\xAE8\x2\x11C\x3\x2\x2\x2\x4\x120"+ - "\x3\x2\x2\x2\x6\x13B\x3\x2\x2\x2\b\x141\x3\x2\x2\x2\n\x14A\x3\x2\x2\x2"+ - "\f\x158\x3\x2\x2\x2\xE\x15C\x3\x2\x2\x2\x10\x16F\x3\x2\x2\x2\x12\x17A"+ - "\x3\x2\x2\x2\x14\x17C\x3\x2\x2\x2\x16\x18C\x3\x2\x2\x2\x18\x18E\x3\x2"+ - "\x2\x2\x1A\x1A6\x3\x2\x2\x2\x1C\x1F3\x3\x2\x2\x2\x1E\x1F5\x3\x2\x2\x2"+ - " \x202\x3\x2\x2\x2\"\x204\x3\x2\x2\x2$\x208\x3\x2\x2\x2&\x20C\x3\x2\x2"+ - "\x2(\x221\x3\x2\x2\x2*\x233\x3\x2\x2\x2,\x244\x3\x2\x2\x2.\x251\x3\x2"+ - "\x2\x2\x30\x279\x3\x2\x2\x2\x32\x289\x3\x2\x2\x2\x34\x2B9\x3\x2\x2\x2"+ - "\x36\x2BB\x3\x2\x2\x2\x38\x2C0\x3\x2\x2\x2:\x2CE\x3\x2\x2\x2<\x2DB\x3"+ - "\x2\x2\x2>\x2DF\x3\x2\x2\x2@\x2E6\x3\x2\x2\x2\x42\x2F0\x3\x2\x2\x2\x44"+ - "\x2F2\x3\x2\x2\x2\x46\x2FE\x3\x2\x2\x2H\x313\x3\x2\x2\x2J\x33B\x3\x2\x2"+ - "\x2L\x35B\x3\x2\x2\x2N\x371\x3\x2\x2\x2P\x375\x3\x2\x2\x2R\x392\x3\x2"+ - "\x2\x2T\x394\x3\x2\x2\x2V\x39D\x3\x2\x2\x2X\x39F\x3\x2\x2\x2Z\x3A8\x3"+ - "\x2\x2\x2\\\x3AD\x3\x2\x2\x2^\x3B1\x3\x2\x2\x2`\x3C0\x3\x2\x2\x2\x62\x3C6"+ - "\x3\x2\x2\x2\x64\x3D2\x3\x2\x2\x2\x66\x3DE\x3\x2\x2\x2h\x3E2\x3\x2\x2"+ - "\x2j\x3F5\x3\x2\x2\x2l\x401\x3\x2\x2\x2n\x40F\x3\x2\x2\x2p\x413\x3\x2"+ - "\x2\x2r\x41B\x3\x2\x2\x2t\x425\x3\x2\x2\x2v\x439\x3\x2\x2\x2x\x44D\x3"+ - "\x2\x2\x2z\x48F\x3\x2\x2\x2|\x4A2\x3\x2\x2\x2~\x4A4\x3\x2\x2\x2\x80\x4B4"+ - "\x3\x2\x2\x2\x82\x4D3\x3\x2\x2\x2\x84\x4EB\x3\x2\x2\x2\x86\x500\x3\x2"+ - "\x2\x2\x88\x516\x3\x2\x2\x2\x8A\x529\x3\x2\x2\x2\x8C\x52E\x3\x2\x2\x2"+ - "\x8E\x542\x3\x2\x2\x2\x90\x553\x3\x2\x2\x2\x92\x555\x3\x2\x2\x2\x94\x55D"+ - "\x3\x2\x2\x2\x96\x55F\x3\x2\x2\x2\x98\x563\x3\x2\x2\x2\x9A\x56F\x3\x2"+ - "\x2\x2\x9C\x57B\x3\x2\x2\x2\x9E\x597\x3\x2\x2\x2\xA0\x5A3\x3\x2\x2\x2"+ - "\xA2\x5C2\x3\x2\x2\x2\xA4\x5C4\x3\x2\x2\x2\xA6\x5DA\x3\x2\x2\x2\xA8\x5DC"+ - "\x3\x2\x2\x2\xAA\x5E9\x3\x2\x2\x2\xAC\x5F5\x3\x2\x2\x2\xAE\x601\x3\x2"+ - "\x2\x2\xB0\x606\x3\x2\x2\x2\xB2\x61D\x3\x2\x2\x2\xB4\x62A\x3\x2\x2\x2"+ - "\xB6\x638\x3\x2\x2\x2\xB8\x64F\x3\x2\x2\x2\xBA\x658\x3\x2\x2\x2\xBC\x65C"+ - "\x3\x2\x2\x2\xBE\x6A6\x3\x2\x2\x2\xC0\x71C\x3\x2\x2\x2\xC2\x725\x3\x2"+ - "\x2\x2\xC4\x733\x3\x2\x2\x2\xC6\x74E\x3\x2\x2\x2\xC8\x757\x3\x2\x2\x2"+ - "\xCA\x763\x3\x2\x2\x2\xCC\x771\x3\x2\x2\x2\xCE\x77F\x3\x2\x2\x2\xD0\x785"+ - "\x3\x2\x2\x2\xD2\x787\x3\x2\x2\x2\xD4\x7A8\x3\x2\x2\x2\xD6\x7CF\x3\x2"+ - "\x2\x2\xD8\x7D2\x3\x2\x2\x2\xDA\x7EF\x3\x2\x2\x2\xDC\x804\x3\x2\x2\x2"+ - "\xDE\x806\x3\x2\x2\x2\xE0\x81E\x3\x2\x2\x2\xE2\x845\x3\x2\x2\x2\xE4\x861"+ - "\x3\x2\x2\x2\xE6\x86A\x3\x2\x2\x2\xE8\x87A\x3\x2\x2\x2\xEA\x88E\x3\x2"+ - "\x2\x2\xEC\x899\x3\x2\x2\x2\xEE\x8A1\x3\x2\x2\x2\xF0\x8BC\x3\x2\x2\x2"+ - "\xF2\x8E0\x3\x2\x2\x2\xF4\x8E6\x3\x2\x2\x2\xF6\x8F9\x3\x2\x2\x2\xF8\x8FF"+ - "\x3\x2\x2\x2\xFA\x903\x3\x2\x2\x2\xFC\x912\x3\x2\x2\x2\xFE\x923\x3\x2"+ - "\x2\x2\x100\x925\x3\x2\x2\x2\x102\x927\x3\x2\x2\x2\x104\x92F\x3\x2\x2"+ - "\x2\x106\x937\x3\x2\x2\x2\x108\x942\x3\x2\x2\x2\x10A\x945\x3\x2\x2\x2"+ - "\x10C\x949\x3\x2\x2\x2\x10E\x955\x3\x2\x2\x2\x110\x957\x3\x2\x2\x2\x112"+ - "\x959\x3\x2\x2\x2\x114\x95B\x3\x2\x2\x2\x116\x95D\x3\x2\x2\x2\x118\x960"+ - "\x3\x2\x2\x2\x11A\x974\x3\x2\x2\x2\x11C\x11D\x5\x4\x3\x2\x11D\x11E\a\x2"+ - "\x2\x3\x11E\x3\x3\x2\x2\x2\x11F\x121\a\xEF\x2\x2\x120\x11F\x3\x2\x2\x2"+ - "\x120\x121\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x126\x5\x11A\x8E\x2"+ - "\x123\x124\x5\x6\x4\x2\x124\x125\x5\x11A\x8E\x2\x125\x127\x3\x2\x2\x2"+ - "\x126\x123\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x129\x3\x2\x2\x2\x128"+ - "\x12A\x5\b\x5\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x12B"+ - "\x3\x2\x2\x2\x12B\x12D\x5\x11A\x8E\x2\x12C\x12E\x5\f\a\x2\x12D\x12C\x3"+ - "\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x131\x5\x11A"+ - "\x8E\x2\x130\x132\x5\xE\b\x2\x131\x130\x3\x2\x2\x2\x131\x132\x3\x2\x2"+ - "\x2\x132\x133\x3\x2\x2\x2\x133\x135\x5\x11A\x8E\x2\x134\x136\x5\x14\v"+ - "\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2"+ - "\x137\x139\x5\x11A\x8E\x2\x138\x13A\a\xEF\x2\x2\x139\x138\x3\x2\x2\x2"+ - "\x139\x13A\x3\x2\x2\x2\x13A\x5\x3\x2\x2\x2\x13B\x13C\a\xB0\x2\x2\x13C"+ - "\x13D\a\xEF\x2\x2\x13D\x13E\a\xCF\x2\x2\x13E\x13F\a\xEF\x2\x2\x13F\x140"+ - "\a\x1E\x2\x2\x140\a\x3\x2\x2\x2\x141\x142\a\x13\x2\x2\x142\x144\x5\x11A"+ - "\x8E\x2\x143\x145\x5\n\x6\x2\x144\x143\x3\x2\x2\x2\x145\x146\x3\x2\x2"+ - "\x2\x146\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2"+ - "\x148\x149\a\x41\x2\x2\x149\t\x3\x2\x2\x2\x14A\x14C\x5\xF8}\x2\x14B\x14D"+ - "\a\xEF\x2\x2\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3"+ - "\x2\x2\x2\x14E\x150\a\xBC\x2\x2\x14F\x151\a\xEF\x2\x2\x150\x14F\x3\x2"+ - "\x2\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\x5\x10A\x86"+ - "\x2\x153\x154\x5\x11A\x8E\x2\x154\v\x3\x2\x2\x2\x155\x156\x5\x18\r\x2"+ - "\x156\x157\x5\x11A\x8E\x2\x157\x159\x3\x2\x2\x2\x158\x155\x3\x2\x2\x2"+ - "\x159\x15A\x3\x2\x2\x2\x15A\x158\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B"+ - "\r\x3\x2\x2\x2\x15C\x162\x5\x12\n\x2\x15D\x15E\x5\x11A\x8E\x2\x15E\x15F"+ - "\x5\x12\n\x2\x15F\x161\x3\x2\x2\x2\x160\x15D\x3\x2\x2\x2\x161\x164\x3"+ - "\x2\x2\x2\x162\x160\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x165\x3\x2"+ - "\x2\x2\x164\x162\x3\x2\x2\x2\x165\x166\x5\x11A\x8E\x2\x166\xF\x3\x2\x2"+ - "\x2\x167\x168\ay\x2\x2\x168\x169\a\xEF\x2\x2\x169\x170\a\xCD\x2\x2\x16A"+ - "\x16B\a{\x2\x2\x16B\x16C\a\xEF\x2\x2\x16C\x170\t\x2\x2\x2\x16D\x170\a"+ - "z\x2\x2\x16E\x170\a|\x2\x2\x16F\x167\x3\x2\x2\x2\x16F\x16A\x3\x2\x2\x2"+ - "\x16F\x16D\x3\x2\x2\x2\x16F\x16E\x3\x2\x2\x2\x170\x11\x3\x2\x2\x2\x171"+ - "\x17B\x5\x116\x8C\x2\x172\x17B\x5.\x18\x2\x173\x17B\x5\x38\x1D\x2\x174"+ - "\x17B\x5@!\x2\x175\x17B\x5(\x15\x2\x176\x17B\x5\\/\x2\x177\x17B\x5\xC0"+ - "\x61\x2\x178\x17B\x5\x10\t\x2\x179\x17B\x5\xB4[\x2\x17A\x171\x3\x2\x2"+ - "\x2\x17A\x172\x3\x2\x2\x2\x17A\x173\x3\x2\x2\x2\x17A\x174\x3\x2\x2\x2"+ - "\x17A\x175\x3\x2\x2\x2\x17A\x176\x3\x2\x2\x2\x17A\x177\x3\x2\x2\x2\x17A"+ - "\x178\x3\x2\x2\x2\x17A\x179\x3\x2\x2\x2\x17B\x13\x3\x2\x2\x2\x17C\x182"+ - "\x5\x16\f\x2\x17D\x17E\x5\x11A\x8E\x2\x17E\x17F\x5\x16\f\x2\x17F\x181"+ - "\x3\x2\x2\x2\x180\x17D\x3\x2\x2\x2\x181\x184\x3\x2\x2\x2\x182\x180\x3"+ - "\x2\x2\x2\x182\x183\x3\x2\x2\x2\x183\x185\x3\x2\x2\x2\x184\x182\x3\x2"+ - "\x2\x2\x185\x186\x5\x11A\x8E\x2\x186\x15\x3\x2\x2\x2\x187\x18D\x5J&\x2"+ - "\x188\x18D\x5\x80\x41\x2\x189\x18D\x5\x82\x42\x2\x18A\x18D\x5\x84\x43"+ - "\x2\x18B\x18D\x5\xB0Y\x2\x18C\x187\x3\x2\x2\x2\x18C\x188\x3\x2\x2\x2\x18C"+ - "\x189\x3\x2\x2\x2\x18C\x18A\x3\x2\x2\x2\x18C\x18B\x3\x2\x2\x2\x18D\x17"+ - "\x3\x2\x2\x2\x18E\x18F\a\xF\x2\x2\x18F\x190\a\xEF\x2\x2\x190\x192\x5\xDC"+ - "o\x2\x191\x193\a\xEF\x2\x2\x192\x191\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2"+ - "\x193\x194\x3\x2\x2\x2\x194\x196\a\xBC\x2\x2\x195\x197\a\xEF\x2\x2\x196"+ - "\x195\x3\x2\x2\x2\x196\x197\x3\x2\x2\x2\x197\x198\x3\x2\x2\x2\x198\x1A3"+ - "\x5\x10A\x86\x2\x199\x19B\a\xEF\x2\x2\x19A\x199\x3\x2\x2\x2\x19A\x19B"+ - "\x3\x2\x2\x2\x19B\x19C\x3\x2\x2\x2\x19C\x19E\a\t\x2\x2\x19D\x19F\a\xEF"+ - "\x2\x2\x19E\x19D\x3\x2\x2\x2\x19E\x19F\x3\x2\x2\x2\x19F\x1A0\x3\x2\x2"+ - "\x2\x1A0\x1A2\x5\x10A\x86\x2\x1A1\x19A\x3\x2\x2\x2\x1A2\x1A5\x3\x2\x2"+ - "\x2\x1A3\x1A1\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2\x2\x1A4\x19\x3\x2\x2\x2\x1A5"+ - "\x1A3\x3\x2\x2\x2\x1A6\x1AC\x5\x1C\xF\x2\x1A7\x1A8\x5\x11A\x8E\x2\x1A8"+ - "\x1A9\x5\x1C\xF\x2\x1A9\x1AB\x3\x2\x2\x2\x1AA\x1A7\x3\x2\x2\x2\x1AB\x1AE"+ - "\x3\x2\x2\x2\x1AC\x1AA\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\x3"+ - "\x2\x2\x2\x1AE\x1AC\x3\x2\x2\x2\x1AF\x1B0\x5\x11A\x8E\x2\x1B0\x1B\x3\x2"+ - "\x2\x2\x1B1\x1F4\x5\x108\x85\x2\x1B2\x1F4\x5\x1E\x10\x2\x1B3\x1F4\x5\x18"+ - "\r\x2\x1B4\x1F4\x5 \x11\x2\x1B5\x1F4\x5\"\x12\x2\x1B6\x1F4\x5$\x13\x2"+ - "\x1B7\x1F4\x5&\x14\x2\x1B8\x1F4\x5(\x15\x2\x1B9\x1F4\x5,\x17\x2\x1BA\x1F4"+ - "\x5\x32\x1A\x2\x1BB\x1F4\x5\x30\x19\x2\x1BC\x1F4\x5\x34\x1B\x2\x1BD\x1F4"+ - "\x5\x36\x1C\x2\x1BE\x1F4\x5<\x1F\x2\x1BF\x1F4\x5> \x2\x1C0\x1F4\x5\x42"+ - "\"\x2\x1C1\x1F4\x5\xD0i\x2\x1C2\x1F4\x5\x44#\x2\x1C3\x1F4\x5\x46$\x2\x1C4"+ - "\x1F4\x5H%\x2\x1C5\x1F4\x5L\'\x2\x1C6\x1F4\x5N(\x2\x1C7\x1F4\x5P)\x2\x1C8"+ - "\x1F4\x5R*\x2\x1C9\x1F4\x5\\/\x2\x1CA\x1F4\x5^\x30\x2\x1CB\x1F4\x5`\x31"+ - "\x2\x1CC\x1F4\x5\x62\x32\x2\x1CD\x1F4\x5\x64\x33\x2\x1CE\x1F4\x5\x66\x34"+ - "\x2\x1CF\x1F4\x5h\x35\x2\x1D0\x1F4\x5j\x36\x2\x1D1\x1F4\x5l\x37\x2\x1D2"+ - "\x1F4\x5n\x38\x2\x1D3\x1F4\x5p\x39\x2\x1D4\x1F4\x5r:\x2\x1D5\x1F4\x5t"+ - ";\x2\x1D6\x1F4\x5v<\x2\x1D7\x1F4\x5x=\x2\x1D8\x1F4\x5~@\x2\x1D9\x1F4\x5"+ - "\x86\x44\x2\x1DA\x1F4\x5\x88\x45\x2\x1DB\x1F4\x5\x8A\x46\x2\x1DC\x1F4"+ - "\x5\x8CG\x2\x1DD\x1F4\x5\x90I\x2\x1DE\x1F4\x5\x92J\x2\x1DF\x1F4\x5\x94"+ - "K\x2\x1E0\x1F4\x5\x96L\x2\x1E1\x1F4\x5\x98M\x2\x1E2\x1F4\x5\x9AN\x2\x1E3"+ - "\x1F4\x5\x9CO\x2\x1E4\x1F4\x5\x9EP\x2\x1E5\x1F4\x5\xA0Q\x2\x1E6\x1F4\x5"+ - "\xA8U\x2\x1E7\x1F4\x5\xAAV\x2\x1E8\x1F4\x5\xACW\x2\x1E9\x1F4\x5\xAEX\x2"+ - "\x1EA\x1F4\x5\xB2Z\x2\x1EB\x1F4\x5\xBA^\x2\x1EC\x1F4\x5\xBC_\x2\x1ED\x1F4"+ - "\x5\xC0\x61\x2\x1EE\x1F4\x5\xC6\x64\x2\x1EF\x1F4\x5\xC8\x65\x2\x1F0\x1F4"+ - "\x5\xCA\x66\x2\x1F1\x1F4\x5\xCCg\x2\x1F2\x1F4\x5\xD6l\x2\x1F3\x1B1\x3"+ - "\x2\x2\x2\x1F3\x1B2\x3\x2\x2\x2\x1F3\x1B3\x3\x2\x2\x2\x1F3\x1B4\x3\x2"+ - "\x2\x2\x1F3\x1B5\x3\x2\x2\x2\x1F3\x1B6\x3\x2\x2\x2\x1F3\x1B7\x3\x2\x2"+ - "\x2\x1F3\x1B8\x3\x2\x2\x2\x1F3\x1B9\x3\x2\x2\x2\x1F3\x1BA\x3\x2\x2\x2"+ - "\x1F3\x1BB\x3\x2\x2\x2\x1F3\x1BC\x3\x2\x2\x2\x1F3\x1BD\x3\x2\x2\x2\x1F3"+ - "\x1BE\x3\x2\x2\x2\x1F3\x1BF\x3\x2\x2\x2\x1F3\x1C0\x3\x2\x2\x2\x1F3\x1C1"+ - "\x3\x2\x2\x2\x1F3\x1C2\x3\x2\x2\x2\x1F3\x1C3\x3\x2\x2\x2\x1F3\x1C4\x3"+ - "\x2\x2\x2\x1F3\x1C5\x3\x2\x2\x2\x1F3\x1C6\x3\x2\x2\x2\x1F3\x1C7\x3\x2"+ - "\x2\x2\x1F3\x1C8\x3\x2\x2\x2\x1F3\x1C9\x3\x2\x2\x2\x1F3\x1CA\x3\x2\x2"+ - "\x2\x1F3\x1CB\x3\x2\x2\x2\x1F3\x1CC\x3\x2\x2\x2\x1F3\x1CD\x3\x2\x2\x2"+ - "\x1F3\x1CE\x3\x2\x2\x2\x1F3\x1CF\x3\x2\x2\x2\x1F3\x1D0\x3\x2\x2\x2\x1F3"+ - "\x1D1\x3\x2\x2\x2\x1F3\x1D2\x3\x2\x2\x2\x1F3\x1D3\x3\x2\x2\x2\x1F3\x1D4"+ - "\x3\x2\x2\x2\x1F3\x1D5\x3\x2\x2\x2\x1F3\x1D6\x3\x2\x2\x2\x1F3\x1D7\x3"+ - "\x2\x2\x2\x1F3\x1D8\x3\x2\x2\x2\x1F3\x1D9\x3\x2\x2\x2\x1F3\x1DA\x3\x2"+ - "\x2\x2\x1F3\x1DB\x3\x2\x2\x2\x1F3\x1DC\x3\x2\x2\x2\x1F3\x1DD\x3\x2\x2"+ - "\x2\x1F3\x1DE\x3\x2\x2\x2\x1F3\x1DF\x3\x2\x2\x2\x1F3\x1E0\x3\x2\x2\x2"+ - "\x1F3\x1E1\x3\x2\x2\x2\x1F3\x1E2\x3\x2\x2\x2\x1F3\x1E3\x3\x2\x2\x2\x1F3"+ - "\x1E4\x3\x2\x2\x2\x1F3\x1E5\x3\x2\x2\x2\x1F3\x1E6\x3\x2\x2\x2\x1F3\x1E7"+ - "\x3\x2\x2\x2\x1F3\x1E8\x3\x2\x2\x2\x1F3\x1E9\x3\x2\x2\x2\x1F3\x1EA\x3"+ - "\x2\x2\x2\x1F3\x1EB\x3\x2\x2\x2\x1F3\x1EC\x3\x2\x2\x2\x1F3\x1ED\x3\x2"+ - "\x2\x2\x1F3\x1EE\x3\x2\x2\x2\x1F3\x1EF\x3\x2\x2\x2\x1F3\x1F0\x3\x2\x2"+ - "\x2\x1F3\x1F1\x3\x2\x2\x2\x1F3\x1F2\x3\x2\x2\x2\x1F4\x1D\x3\x2\x2\x2\x1F5"+ - "\x1F6\a\x10\x2\x2\x1F6\x1F7\a\xEF\x2\x2\x1F7\x200\x5\xBE`\x2\x1F8\x1FA"+ - "\a\xEF\x2\x2\x1F9\x1F8\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\x3"+ - "\x2\x2\x2\x1FB\x1FD\a\t\x2\x2\x1FC\x1FE\a\xEF\x2\x2\x1FD\x1FC\x3\x2\x2"+ - "\x2\x1FD\x1FE\x3\x2\x2\x2\x1FE\x1FF\x3\x2\x2\x2\x1FF\x201\x5\xBE`\x2\x200"+ - "\x1F9\x3\x2\x2\x2\x200\x201\x3\x2\x2\x2\x201\x1F\x3\x2\x2\x2\x202\x203"+ - "\a\x14\x2\x2\x203!\x3\x2\x2\x2\x204\x205\a\x1C\x2\x2\x205\x206\a\xEF\x2"+ - "\x2\x206\x207\x5\xBE`\x2\x207#\x3\x2\x2\x2\x208\x209\a\x1D\x2\x2\x209"+ - "\x20A\a\xEF\x2\x2\x20A\x20B\x5\xBE`\x2\x20B%\x3\x2\x2\x2\x20C\x21C\a\x1F"+ - "\x2\x2\x20D\x20E\a\xEF\x2\x2\x20E\x219\x5\xCEh\x2\x20F\x211\a\xEF\x2\x2"+ - "\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x212\x3\x2\x2\x2\x212"+ - "\x214\a\t\x2\x2\x213\x215\a\xEF\x2\x2\x214\x213\x3\x2\x2\x2\x214\x215"+ - "\x3\x2\x2\x2\x215\x216\x3\x2\x2\x2\x216\x218\x5\xCEh\x2\x217\x210\x3\x2"+ - "\x2\x2\x218\x21B\x3\x2\x2\x2\x219\x217\x3\x2\x2\x2\x219\x21A\x3\x2\x2"+ - "\x2\x21A\x21D\x3\x2\x2\x2\x21B\x219\x3\x2\x2\x2\x21C\x20D\x3\x2\x2\x2"+ - "\x21C\x21D\x3\x2\x2\x2\x21D\'\x3\x2\x2\x2\x21E\x21F\x5\x110\x89\x2\x21F"+ - "\x220\a\xEF\x2\x2\x220\x222\x3\x2\x2\x2\x221\x21E\x3\x2\x2\x2\x221\x222"+ - "\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\a!\x2\x2\x224\x225\a\xEF"+ - "\x2\x2\x225\x230\x5*\x16\x2\x226\x228\a\xEF\x2\x2\x227\x226\x3\x2\x2\x2"+ - "\x227\x228\x3\x2\x2\x2\x228\x229\x3\x2\x2\x2\x229\x22B\a\t\x2\x2\x22A"+ - "\x22C\a\xEF\x2\x2\x22B\x22A\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C\x22D"+ - "\x3\x2\x2\x2\x22D\x22F\x5*\x16\x2\x22E\x227\x3\x2\x2\x2\x22F\x232\x3\x2"+ - "\x2\x2\x230\x22E\x3\x2\x2\x2\x230\x231\x3\x2\x2\x2\x231)\x3\x2\x2\x2\x232"+ - "\x230\x3\x2\x2\x2\x233\x235\x5\xF8}\x2\x234\x236\x5\x10E\x88\x2\x235\x234"+ - "\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236\x239\x3\x2\x2\x2\x237\x238\a\xEF"+ - "\x2\x2\x238\x23A\x5\xFA~\x2\x239\x237\x3\x2\x2\x2\x239\x23A\x3\x2\x2\x2"+ - "\x23A\x23C\x3\x2\x2\x2\x23B\x23D\a\xEF\x2\x2\x23C\x23B\x3\x2\x2\x2\x23C"+ - "\x23D\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E\x240\a\xBC\x2\x2\x23F\x241"+ - "\a\xEF\x2\x2\x240\x23F\x3\x2\x2\x2\x240\x241\x3\x2\x2\x2\x241\x242\x3"+ - "\x2\x2\x2\x242\x243\x5\xBE`\x2\x243+\x3\x2\x2\x2\x244\x246\a#\x2\x2\x245"+ - "\x247\a\xEF\x2\x2\x246\x245\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248"+ - "\x3\x2\x2\x2\x248\x24A\a\xBC\x2\x2\x249\x24B\a\xEF\x2\x2\x24A\x249\x3"+ - "\x2\x2\x2\x24A\x24B\x3\x2\x2\x2\x24B\x24C\x3\x2\x2\x2\x24C\x24D\x5\xBE"+ - "`\x2\x24D-\x3\x2\x2\x2\x24E\x24F\x5\x110\x89\x2\x24F\x250\a\xEF\x2\x2"+ - "\x250\x252\x3\x2\x2\x2\x251\x24E\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252"+ - "\x253\x3\x2\x2\x2\x253\x254\a$\x2\x2\x254\x257\a\xEF\x2\x2\x255\x256\a"+ - "\x86\x2\x2\x256\x258\a\xEF\x2\x2\x257\x255\x3\x2\x2\x2\x257\x258\x3\x2"+ - "\x2\x2\x258\x25E\x3\x2\x2\x2\x259\x25B\aP\x2\x2\x25A\x25C\x5\x10E\x88"+ - "\x2\x25B\x25A\x3\x2\x2\x2\x25B\x25C\x3\x2\x2\x2\x25C\x25F\x3\x2\x2\x2"+ - "\x25D\x25F\a\xA3\x2\x2\x25E\x259\x3\x2\x2\x2\x25E\x25D\x3\x2\x2\x2\x25F"+ - "\x260\x3\x2\x2\x2\x260\x261\a\xEF\x2\x2\x261\x263\x5\xF8}\x2\x262\x264"+ - "\x5\x10E\x88\x2\x263\x262\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x265"+ - "\x3\x2\x2\x2\x265\x266\a\xEF\x2\x2\x266\x267\a\x63\x2\x2\x267\x268\a\xEF"+ - "\x2\x2\x268\x26D\a\xCA\x2\x2\x269\x26A\a\xEF\x2\x2\x26A\x26B\a\r\x2\x2"+ - "\x26B\x26C\a\xEF\x2\x2\x26C\x26E\a\xCA\x2\x2\x26D\x269\x3\x2\x2\x2\x26D"+ - "\x26E\x3\x2\x2\x2\x26E\x273\x3\x2\x2\x2\x26F\x271\a\xEF\x2\x2\x270\x26F"+ - "\x3\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272\x274\x5"+ - "\xEEx\x2\x273\x270\x3\x2\x2\x2\x273\x274\x3\x2\x2\x2\x274\x277\x3\x2\x2"+ - "\x2\x275\x276\a\xEF\x2\x2\x276\x278\x5\xFA~\x2\x277\x275\x3\x2\x2\x2\x277"+ - "\x278\x3\x2\x2\x2\x278/\x3\x2\x2\x2\x279\x27A\t\x3\x2\x2\x27A\x27B\a\xEF"+ - "\x2\x2\x27B\x286\x5\x106\x84\x2\x27C\x27E\a\xEF\x2\x2\x27D\x27C\x3\x2"+ - "\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x27F\x3\x2\x2\x2\x27F\x281\a\t\x2\x2"+ - "\x280\x282\a\xEF\x2\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2\x282"+ - "\x283\x3\x2\x2\x2\x283\x285\x5\x106\x84\x2\x284\x27D\x3\x2\x2\x2\x285"+ - "\x288\x3\x2\x2\x2\x286\x284\x3\x2\x2\x2\x286\x287\x3\x2\x2\x2\x287\x31"+ - "\x3\x2\x2\x2\x288\x286\x3\x2\x2\x2\x289\x28A\a\x31\x2\x2\x28A\x28B\a\xEF"+ - "\x2\x2\x28B\x28D\x5\xBE`\x2\x28C\x28E\a\xEF\x2\x2\x28D\x28C\x3\x2\x2\x2"+ - "\x28D\x28E\x3\x2\x2\x2\x28E\x28F\x3\x2\x2\x2\x28F\x291\a\t\x2\x2\x290"+ - "\x292\a\xEF\x2\x2\x291\x290\x3\x2\x2\x2\x291\x292\x3\x2\x2\x2\x292\x293"+ - "\x3\x2\x2\x2\x293\x29C\x5\xBE`\x2\x294\x296\a\xEF\x2\x2\x295\x294\x3\x2"+ - "\x2\x2\x295\x296\x3\x2\x2\x2\x296\x297\x3\x2\x2\x2\x297\x299\a\t\x2\x2"+ - "\x298\x29A\a\xEF\x2\x2\x299\x298\x3\x2\x2\x2\x299\x29A\x3\x2\x2\x2\x29A"+ - "\x29B\x3\x2\x2\x2\x29B\x29D\x5\xBE`\x2\x29C\x295\x3\x2\x2\x2\x29C\x29D"+ - "\x3\x2\x2\x2\x29D\x33\x3\x2\x2\x2\x29E\x29F\a\x33\x2\x2\x29F\x2A1\x5\x11A"+ - "\x8E\x2\x2A0\x2A2\x5\x1A\xE\x2\x2A1\x2A0\x3\x2\x2\x2\x2A1\x2A2\x3\x2\x2"+ - "\x2\x2A2\x2A3\x3\x2\x2\x2\x2A3\x2A4\a`\x2\x2\x2A4\x2BA\x3\x2\x2\x2\x2A5"+ - "\x2A6\a\x33\x2\x2\x2A6\x2A7\a\xEF\x2\x2\x2A7\x2A8\t\x4\x2\x2\x2A8\x2A9"+ - "\a\xEF\x2\x2\x2A9\x2AA\x5\xBE`\x2\x2AA\x2AC\x5\x11A\x8E\x2\x2AB\x2AD\x5"+ - "\x1A\xE\x2\x2AC\x2AB\x3\x2\x2\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE\x3\x2"+ - "\x2\x2\x2AE\x2AF\a`\x2\x2\x2AF\x2BA\x3\x2\x2\x2\x2B0\x2B1\a\x33\x2\x2"+ - "\x2B1\x2B2\x5\x11A\x8E\x2\x2B2\x2B3\x5\x1A\xE\x2\x2B3\x2B4\a`\x2\x2\x2B4"+ - "\x2B5\a\xEF\x2\x2\x2B5\x2B6\t\x4\x2\x2\x2B6\x2B7\a\xEF\x2\x2\x2B7\x2B8"+ - "\x5\xBE`\x2\x2B8\x2BA\x3\x2\x2\x2\x2B9\x29E\x3\x2\x2\x2\x2B9\x2A5\x3\x2"+ - "\x2\x2\x2B9\x2B0\x3\x2\x2\x2\x2BA\x35\x3\x2\x2\x2\x2BB\x2BC\a\x41\x2\x2"+ - "\x2BC\x37\x3\x2\x2\x2\x2BD\x2BE\x5\x110\x89\x2\x2BE\x2BF\a\xEF\x2\x2\x2BF"+ - "\x2C1\x3\x2\x2\x2\x2C0\x2BD\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2"+ - "\x3\x2\x2\x2\x2C2\x2C3\a\x42\x2\x2\x2C3\x2C4\a\xEF\x2\x2\x2C4\x2C5\x5"+ - "\xF8}\x2\x2C5\x2C9\x5\x11A\x8E\x2\x2C6\x2C8\x5:\x1E\x2\x2C7\x2C6\x3\x2"+ - "\x2\x2\x2C8\x2CB\x3\x2\x2\x2\x2C9\x2C7\x3\x2\x2\x2\x2C9\x2CA\x3\x2\x2"+ - "\x2\x2CA\x2CC\x3\x2\x2\x2\x2CB\x2C9\x3\x2\x2\x2\x2CC\x2CD\a\x39\x2\x2"+ - "\x2CD\x39\x3\x2\x2\x2\x2CE\x2D7\x5\xF8}\x2\x2CF\x2D1\a\xEF\x2\x2\x2D0"+ - "\x2CF\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2\x2D1\x2D2\x3\x2\x2\x2\x2D2\x2D4"+ - "\a\xBC\x2\x2\x2D3\x2D5\a\xEF\x2\x2\x2D4\x2D3\x3\x2\x2\x2\x2D4\x2D5\x3"+ - "\x2\x2\x2\x2D5\x2D6\x3\x2\x2\x2\x2D6\x2D8\x5\xBE`\x2\x2D7\x2D0\x3\x2\x2"+ - "\x2\x2D7\x2D8\x3\x2\x2\x2\x2D8\x2D9\x3\x2\x2\x2\x2D9\x2DA\x5\x11A\x8E"+ - "\x2\x2DA;\x3\x2\x2\x2\x2DB\x2DC\a\x44\x2\x2\x2DC\x2DD\a\xEF\x2\x2\x2DD"+ - "\x2DE\x5\xBE`\x2\x2DE=\x3\x2\x2\x2\x2DF\x2E0\a\x45\x2\x2\x2E0\x2E1\a\xEF"+ - "\x2\x2\x2E1\x2E2\x5\xBE`\x2\x2E2?\x3\x2\x2\x2\x2E3\x2E4\x5\x110\x89\x2"+ - "\x2E4\x2E5\a\xEF\x2\x2\x2E5\x2E7\x3\x2\x2\x2\x2E6\x2E3\x3\x2\x2\x2\x2E6"+ - "\x2E7\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\a\x46\x2\x2\x2E9\x2EA"+ - "\a\xEF\x2\x2\x2EA\x2EC\x5\xF8}\x2\x2EB\x2ED\a\xEF\x2\x2\x2EC\x2EB\x3\x2"+ - "\x2\x2\x2EC\x2ED\x3\x2\x2\x2\x2ED\x2EE\x3\x2\x2\x2\x2EE\x2EF\x5\xEEx\x2"+ - "\x2EF\x41\x3\x2\x2\x2\x2F0\x2F1\t\x5\x2\x2\x2F1\x43\x3\x2\x2\x2\x2F2\x2F3"+ - "\aM\x2\x2\x2F3\x2F4\a\xEF\x2\x2\x2F4\x2F6\x5\xBE`\x2\x2F5\x2F7\a\xEF\x2"+ - "\x2\x2F6\x2F5\x3\x2\x2\x2\x2F6\x2F7\x3\x2\x2\x2\x2F7\x2F8\x3\x2\x2\x2"+ - "\x2F8\x2FA\a\t\x2\x2\x2F9\x2FB\a\xEF\x2\x2\x2FA\x2F9\x3\x2\x2\x2\x2FA"+ - "\x2FB\x3\x2\x2\x2\x2FB\x2FC\x3\x2\x2\x2\x2FC\x2FD\x5\xBE`\x2\x2FD\x45"+ - "\x3\x2\x2\x2\x2FE\x2FF\aO\x2\x2\x2FF\x300\a\xEF\x2\x2\x300\x301\a\x35"+ - "\x2\x2\x301\x302\a\xEF\x2\x2\x302\x304\x5\xF8}\x2\x303\x305\x5\x10E\x88"+ - "\x2\x304\x303\x3\x2\x2\x2\x304\x305\x3\x2\x2\x2\x305\x306\x3\x2\x2\x2"+ - "\x306\x307\a\xEF\x2\x2\x307\x308\aX\x2\x2\x308\x309\a\xEF\x2\x2\x309\x30A"+ - "\x5\xBE`\x2\x30A\x30C\x5\x11A\x8E\x2\x30B\x30D\x5\x1A\xE\x2\x30C\x30B"+ - "\x3\x2\x2\x2\x30C\x30D\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x311\ao"+ - "\x2\x2\x30F\x310\a\xEF\x2\x2\x310\x312\x5\xF8}\x2\x311\x30F\x3\x2\x2\x2"+ - "\x311\x312\x3\x2\x2\x2\x312G\x3\x2\x2\x2\x313\x314\aO\x2\x2\x314\x315"+ - "\a\xEF\x2\x2\x315\x317\x5\xF8}\x2\x316\x318\x5\x10E\x88\x2\x317\x316\x3"+ - "\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x31B\x3\x2\x2\x2\x319\x31A\a\xEF"+ - "\x2\x2\x31A\x31C\x5\xFA~\x2\x31B\x319\x3\x2\x2\x2\x31B\x31C\x3\x2\x2\x2"+ - "\x31C\x31E\x3\x2\x2\x2\x31D\x31F\a\xEF\x2\x2\x31E\x31D\x3\x2\x2\x2\x31E"+ - "\x31F\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x322\a\xBC\x2\x2\x321\x323"+ - "\a\xEF\x2\x2\x322\x321\x3\x2\x2\x2\x322\x323\x3\x2\x2\x2\x323\x324\x3"+ - "\x2\x2\x2\x324\x325\x5\xBE`\x2\x325\x326\a\xEF\x2\x2\x326\x327\a\xA8\x2"+ - "\x2\x327\x328\a\xEF\x2\x2\x328\x32D\x5\xBE`\x2\x329\x32A\a\xEF\x2\x2\x32A"+ - "\x32B\a\xA0\x2\x2\x32B\x32C\a\xEF\x2\x2\x32C\x32E\x5\xBE`\x2\x32D\x329"+ - "\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2\x32E\x32F\x3\x2\x2\x2\x32F\x331\x5"+ - "\x11A\x8E\x2\x330\x332\x5\x1A\xE\x2\x331\x330\x3\x2\x2\x2\x331\x332\x3"+ - "\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x336\ao\x2\x2\x334\x335\a\xEF\x2"+ - "\x2\x335\x337\x5\xF8}\x2\x336\x334\x3\x2\x2\x2\x336\x337\x3\x2\x2\x2\x337"+ - "I\x3\x2\x2\x2\x338\x339\x5\x110\x89\x2\x339\x33A\a\xEF\x2\x2\x33A\x33C"+ - "\x3\x2\x2\x2\x33B\x338\x3\x2\x2\x2\x33B\x33C\x3\x2\x2\x2\x33C\x33F\x3"+ - "\x2\x2\x2\x33D\x33E\a\x9F\x2\x2\x33E\x340\a\xEF\x2\x2\x33F\x33D\x3\x2"+ - "\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x343\aP\x2\x2"+ - "\x342\x344\a\xEF\x2\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344"+ - "\x345\x3\x2\x2\x2\x345\x347\x5\xF8}\x2\x346\x348\x5\x10E\x88\x2\x347\x346"+ - "\x3\x2\x2\x2\x347\x348\x3\x2\x2\x2\x348\x34D\x3\x2\x2\x2\x349\x34B\a\xEF"+ - "\x2\x2\x34A\x349\x3\x2\x2\x2\x34A\x34B\x3\x2\x2\x2\x34B\x34C\x3\x2\x2"+ - "\x2\x34C\x34E\x5\xEEx\x2\x34D\x34A\x3\x2\x2\x2\x34D\x34E\x3\x2\x2\x2\x34E"+ - "\x353\x3\x2\x2\x2\x34F\x351\a\xEF\x2\x2\x350\x34F\x3\x2\x2\x2\x350\x351"+ - "\x3\x2\x2\x2\x351\x352\x3\x2\x2\x2\x352\x354\x5\xFA~\x2\x353\x350\x3\x2"+ - "\x2\x2\x353\x354\x3\x2\x2\x2\x354\x355\x3\x2\x2\x2\x355\x357\x5\x11A\x8E"+ - "\x2\x356\x358\x5\x1A\xE\x2\x357\x356\x3\x2\x2\x2\x357\x358\x3\x2\x2\x2"+ - "\x358\x359\x3\x2\x2\x2\x359\x35A\a:\x2\x2\x35AK\x3\x2\x2\x2\x35B\x35C"+ - "\aQ\x2\x2\x35C\x35D\a\xEF\x2\x2\x35D\x35F\x5\xCEh\x2\x35E\x360\a\xEF\x2"+ - "\x2\x35F\x35E\x3\x2\x2\x2\x35F\x360\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2"+ - "\x361\x363\a\t\x2\x2\x362\x364\a\xEF\x2\x2\x363\x362\x3\x2\x2\x2\x363"+ - "\x364\x3\x2\x2\x2\x364\x366\x3\x2\x2\x2\x365\x367\x5\xBE`\x2\x366\x365"+ - "\x3\x2\x2\x2\x366\x367\x3\x2\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\a\xEF"+ - "\x2\x2\x369\x368\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2"+ - "\x2\x36B\x36D\a\t\x2\x2\x36C\x36E\a\xEF\x2\x2\x36D\x36C\x3\x2\x2\x2\x36D"+ - "\x36E\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x5\xBE`\x2\x370M\x3"+ - "\x2\x2\x2\x371\x372\aS\x2\x2\x372\x373\a\xEF\x2\x2\x373\x374\x5\xBE`\x2"+ - "\x374O\x3\x2\x2\x2\x375\x376\aT\x2\x2\x376\x377\a\xEF\x2\x2\x377\x378"+ - "\x5\xBE`\x2\x378Q\x3\x2\x2\x2\x379\x37A\aU\x2\x2\x37A\x37B\a\xEF\x2\x2"+ - "\x37B\x37C\x5V,\x2\x37C\x37D\a\xEF\x2\x2\x37D\x37E\a\xA6\x2\x2\x37E\x37F"+ - "\a\xEF\x2\x2\x37F\x384\x5\x1C\xF\x2\x380\x381\a\xEF\x2\x2\x381\x382\a"+ - "\x36\x2\x2\x382\x383\a\xEF\x2\x2\x383\x385\x5\x1C\xF\x2\x384\x380\x3\x2"+ - "\x2\x2\x384\x385\x3\x2\x2\x2\x385\x393\x3\x2\x2\x2\x386\x38A\x5T+\x2\x387"+ - "\x389\x5X-\x2\x388\x387\x3\x2\x2\x2\x389\x38C\x3\x2\x2\x2\x38A\x388\x3"+ - "\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B\x38E\x3\x2\x2\x2\x38C\x38A\x3\x2"+ - "\x2\x2\x38D\x38F\x5Z.\x2\x38E\x38D\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2\x38F"+ - "\x390\x3\x2\x2\x2\x390\x391\a;\x2\x2\x391\x393\x3\x2\x2\x2\x392\x379\x3"+ - "\x2\x2\x2\x392\x386\x3\x2\x2\x2\x393S\x3\x2\x2\x2\x394\x395\aU\x2\x2\x395"+ - "\x396\a\xEF\x2\x2\x396\x397\x5V,\x2\x397\x398\a\xEF\x2\x2\x398\x399\a"+ - "\xA6\x2\x2\x399\x39B\x5\x11A\x8E\x2\x39A\x39C\x5\x1A\xE\x2\x39B\x39A\x3"+ - "\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39CU\x3\x2\x2\x2\x39D\x39E\x5\xBE`\x2"+ - "\x39EW\x3\x2\x2\x2\x39F\x3A0\a\x37\x2\x2\x3A0\x3A1\a\xEF\x2\x2\x3A1\x3A2"+ - "\x5V,\x2\x3A2\x3A3\a\xEF\x2\x2\x3A3\x3A4\a\xA6\x2\x2\x3A4\x3A6\x5\x11A"+ - "\x8E\x2\x3A5\x3A7\x5\x1A\xE\x2\x3A6\x3A5\x3\x2\x2\x2\x3A6\x3A7\x3\x2\x2"+ - "\x2\x3A7Y\x3\x2\x2\x2\x3A8\x3A9\a\x36\x2\x2\x3A9\x3AB\x5\x11A\x8E\x2\x3AA"+ - "\x3AC\x5\x1A\xE\x2\x3AB\x3AA\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC[\x3"+ - "\x2\x2\x2\x3AD\x3AE\aW\x2\x2\x3AE\x3AF\a\xEF\x2\x2\x3AF\x3B0\x5\xF8}\x2"+ - "\x3B0]\x3\x2\x2\x2\x3B1\x3B2\aY\x2\x2\x3B2\x3B3\a\xEF\x2\x2\x3B3\x3BC"+ - "\x5\xCEh\x2\x3B4\x3B6\a\xEF\x2\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2"+ - "\x2\x2\x3B6\x3B7\x3\x2\x2\x2\x3B7\x3B9\a\t\x2\x2\x3B8\x3BA\a\xEF\x2\x2"+ - "\x3B9\x3B8\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BB\x3\x2\x2\x2\x3BB"+ - "\x3BD\x5\xBE`\x2\x3BC\x3B5\x3\x2\x2\x2\x3BD\x3BE\x3\x2\x2\x2\x3BE\x3BC"+ - "\x3\x2\x2\x2\x3BE\x3BF\x3\x2\x2\x2\x3BF_\x3\x2\x2\x2\x3C0\x3C1\a\\\x2"+ - "\x2\x3C1\x3C2\a\xEF\x2\x2\x3C2\x3C3\x5\xBE`\x2\x3C3\x61\x3\x2\x2\x2\x3C4"+ - "\x3C5\a\x62\x2\x2\x3C5\x3C7\a\xEF\x2\x2\x3C6\x3C4\x3\x2\x2\x2\x3C6\x3C7"+ - "\x3\x2\x2\x2\x3C7\x3C8\x3\x2\x2\x2\x3C8\x3CA\x5\xDCo\x2\x3C9\x3CB\a\xEF"+ - "\x2\x2\x3CA\x3C9\x3\x2\x2\x2\x3CA\x3CB\x3\x2\x2\x2\x3CB\x3CC\x3\x2\x2"+ - "\x2\x3CC\x3CE\a\xBC\x2\x2\x3CD\x3CF\a\xEF\x2\x2\x3CE\x3CD\x3\x2\x2\x2"+ - "\x3CE\x3CF\x3\x2\x2\x2\x3CF\x3D0\x3\x2\x2\x2\x3D0\x3D1\x5\xBE`\x2\x3D1"+ - "\x63\x3\x2\x2\x2\x3D2\x3D3\a\x65\x2\x2\x3D3\x3D4\a\xEF\x2\x2\x3D4\x3D6"+ - "\x5\xCEh\x2\x3D5\x3D7\a\xEF\x2\x2\x3D6\x3D5\x3\x2\x2\x2\x3D6\x3D7\x3\x2"+ - "\x2\x2\x3D7\x3D8\x3\x2\x2\x2\x3D8\x3DA\a\t\x2\x2\x3D9\x3DB\a\xEF\x2\x2"+ - "\x3DA\x3D9\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DC\x3\x2\x2\x2\x3DC"+ - "\x3DD\x5\xBE`\x2\x3DD\x65\x3\x2\x2\x2\x3DE\x3DF\a]\x2\x2\x3DF\x3E0\a\xEF"+ - "\x2\x2\x3E0\x3E1\x5\xBE`\x2\x3E1g\x3\x2\x2\x2\x3E2\x3E3\a^\x2\x2\x3E3"+ - "\x3E4\a\xEF\x2\x2\x3E4\x3F3\x5\xBE`\x2\x3E5\x3E7\a\xEF\x2\x2\x3E6\x3E5"+ - "\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7\x3E8\x3\x2\x2\x2\x3E8\x3EA\a\t"+ - "\x2\x2\x3E9\x3EB\a\xEF\x2\x2\x3EA\x3E9\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2"+ - "\x2\x3EB\x3EC\x3\x2\x2\x2\x3EC\x3F1\x5\xBE`\x2\x3ED\x3EE\a\xEF\x2\x2\x3EE"+ - "\x3EF\a\xA8\x2\x2\x3EF\x3F0\a\xEF\x2\x2\x3F0\x3F2\x5\xBE`\x2\x3F1\x3ED"+ - "\x3\x2\x2\x2\x3F1\x3F2\x3\x2\x2\x2\x3F2\x3F4\x3\x2\x2\x2\x3F3\x3E6\x3"+ - "\x2\x2\x2\x3F3\x3F4\x3\x2\x2\x2\x3F4i\x3\x2\x2\x2\x3F5\x3F6\ai\x2\x2\x3F6"+ - "\x3F7\a\xEF\x2\x2\x3F7\x3F9\x5\xDCo\x2\x3F8\x3FA\a\xEF\x2\x2\x3F9\x3F8"+ - "\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FB\x3\x2\x2\x2\x3FB\x3FD\a\xBC"+ - "\x2\x2\x3FC\x3FE\a\xEF\x2\x2\x3FD\x3FC\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2"+ - "\x2\x3FE\x3FF\x3\x2\x2\x2\x3FF\x400\x5\xBE`\x2\x400k\x3\x2\x2\x2\x401"+ - "\x403\ak\x2\x2\x402\x404\a\xEF\x2\x2\x403\x402\x3\x2\x2\x2\x403\x404\x3"+ - "\x2\x2\x2\x404\x405\x3\x2\x2\x2\x405\x407\a\xC0\x2\x2\x406\x408\a\xEF"+ - "\x2\x2\x407\x406\x3\x2\x2\x2\x407\x408\x3\x2\x2\x2\x408\x409\x3\x2\x2"+ - "\x2\x409\x40B\x5\xE8u\x2\x40A\x40C\a\xEF\x2\x2\x40B\x40A\x3\x2\x2\x2\x40B"+ - "\x40C\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40E\a\xC7\x2\x2\x40Em\x3"+ - "\x2\x2\x2\x40F\x410\al\x2\x2\x410\x411\a\xEF\x2\x2\x411\x412\x5\xBE`\x2"+ - "\x412o\x3\x2\x2\x2\x413\x414\an\x2\x2\x414\x415\a\xEF\x2\x2\x415\x416"+ - "\x5\xBE`\x2\x416\x417\a\xEF\x2\x2\x417\x418\a\x12\x2\x2\x418\x419\a\xEF"+ - "\x2\x2\x419\x41A\x5\xBE`\x2\x41Aq\x3\x2\x2\x2\x41B\x41C\t\x6\x2\x2\x41C"+ - "\x423\a\xEF\x2\x2\x41D\x41E\aT\x2\x2\x41E\x41F\a\xEF\x2\x2\x41F\x424\x5"+ - "\xBE`\x2\x420\x421\a\x91\x2\x2\x421\x422\a\xEF\x2\x2\x422\x424\ao\x2\x2"+ - "\x423\x41D\x3\x2\x2\x2\x423\x420\x3\x2\x2\x2\x424s\x3\x2\x2\x2\x425\x426"+ - "\at\x2\x2\x426\x427\a\xEF\x2\x2\x427\x428\x5\xBE`\x2\x428\x429\a\xEF\x2"+ - "\x2\x429\x42A\aT\x2\x2\x42A\x42B\a\xEF\x2\x2\x42B\x436\x5\xBE`\x2\x42C"+ - "\x42E\a\xEF\x2\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E\x42F"+ - "\x3\x2\x2\x2\x42F\x431\a\t\x2\x2\x430\x432\a\xEF\x2\x2\x431\x430\x3\x2"+ - "\x2\x2\x431\x432\x3\x2\x2\x2\x432\x433\x3\x2\x2\x2\x433\x435\x5\xBE`\x2"+ - "\x434\x42D\x3\x2\x2\x2\x435\x438\x3\x2\x2\x2\x436\x434\x3\x2\x2\x2\x436"+ - "\x437\x3\x2\x2\x2\x437u\x3\x2\x2\x2\x438\x436\x3\x2\x2\x2\x439\x43A\a"+ - "t\x2\x2\x43A\x43B\a\xEF\x2\x2\x43B\x43C\x5\xBE`\x2\x43C\x43D\a\xEF\x2"+ - "\x2\x43D\x43E\aS\x2\x2\x43E\x43F\a\xEF\x2\x2\x43F\x44A\x5\xBE`\x2\x440"+ - "\x442\a\xEF\x2\x2\x441\x440\x3\x2\x2\x2\x441\x442\x3\x2\x2\x2\x442\x443"+ - "\x3\x2\x2\x2\x443\x445\a\t\x2\x2\x444\x446\a\xEF\x2\x2\x445\x444\x3\x2"+ - "\x2\x2\x445\x446\x3\x2\x2\x2\x446\x447\x3\x2\x2\x2\x447\x449\x5\xBE`\x2"+ - "\x448\x441\x3\x2\x2\x2\x449\x44C\x3\x2\x2\x2\x44A\x448\x3\x2\x2\x2\x44A"+ - "\x44B\x3\x2\x2\x2\x44Bw\x3\x2\x2\x2\x44C\x44A\x3\x2\x2\x2\x44D\x44E\a"+ - "w\x2\x2\x44E\x44F\a\xEF\x2\x2\x44F\x450\x5\xBE`\x2\x450\x451\a\xEF\x2"+ - "\x2\x451\x452\aO\x2\x2\x452\x453\a\xEF\x2\x2\x453\x458\t\a\x2\x2\x454"+ - "\x455\a\xEF\x2\x2\x455\x456\a\v\x2\x2\x456\x457\a\xEF\x2\x2\x457\x459"+ - "\t\b\x2\x2\x458\x454\x3\x2\x2\x2\x458\x459\x3\x2\x2\x2\x459\x45C\x3\x2"+ - "\x2\x2\x45A\x45B\a\xEF\x2\x2\x45B\x45D\t\t\x2\x2\x45C\x45A\x3\x2\x2\x2"+ - "\x45C\x45D\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xEF\x2\x2\x45F"+ - "\x460\a\x12\x2\x2\x460\x461\a\xEF\x2\x2\x461\x46C\x5\xCEh\x2\x462\x463"+ - "\a\xEF\x2\x2\x463\x465\a\x61\x2\x2\x464\x466\a\xEF\x2\x2\x465\x464\x3"+ - "\x2\x2\x2\x465\x466\x3\x2\x2\x2\x466\x467\x3\x2\x2\x2\x467\x469\a\xBC"+ - "\x2\x2\x468\x46A\a\xEF\x2\x2\x469\x468\x3\x2\x2\x2\x469\x46A\x3\x2\x2"+ - "\x2\x46A\x46B\x3\x2\x2\x2\x46B\x46D\x5\xBE`\x2\x46C\x462\x3\x2\x2\x2\x46C"+ - "\x46D\x3\x2\x2\x2\x46Dy\x3\x2\x2\x2\x46E\x47B\x5|?\x2\x46F\x471\a\xEF"+ - "\x2\x2\x470\x46F\x3\x2\x2\x2\x470\x471\x3\x2\x2\x2\x471\x472\x3\x2\x2"+ - "\x2\x472\x474\t\n\x2\x2\x473\x475\a\xEF\x2\x2\x474\x473\x3\x2\x2\x2\x474"+ - "\x475\x3\x2\x2\x2\x475\x477\x3\x2\x2\x2\x476\x478\x5|?\x2\x477\x476\x3"+ - "\x2\x2\x2\x477\x478\x3\x2\x2\x2\x478\x47A\x3\x2\x2\x2\x479\x470\x3\x2"+ - "\x2\x2\x47A\x47D\x3\x2\x2\x2\x47B\x479\x3\x2\x2\x2\x47B\x47C\x3\x2\x2"+ - "\x2\x47C\x490\x3\x2\x2\x2\x47D\x47B\x3\x2\x2\x2\x47E\x480\x5|?\x2\x47F"+ - "\x47E\x3\x2\x2\x2\x47F\x480\x3\x2\x2\x2\x480\x48B\x3\x2\x2\x2\x481\x483"+ - "\a\xEF\x2\x2\x482\x481\x3\x2\x2\x2\x482\x483\x3\x2\x2\x2\x483\x484\x3"+ - "\x2\x2\x2\x484\x486\t\n\x2\x2\x485\x487\a\xEF\x2\x2\x486\x485\x3\x2\x2"+ - "\x2\x486\x487\x3\x2\x2\x2\x487\x489\x3\x2\x2\x2\x488\x48A\x5|?\x2\x489"+ - "\x488\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48A\x48C\x3\x2\x2\x2\x48B\x482"+ - "\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x48B\x3\x2\x2\x2\x48D\x48E\x3"+ - "\x2\x2\x2\x48E\x490\x3\x2\x2\x2\x48F\x46E\x3\x2\x2\x2\x48F\x47F\x3\x2"+ - "\x2\x2\x490{\x3\x2\x2\x2\x491\x4A3\x5\xBE`\x2\x492\x4A0\t\v\x2\x2\x493"+ - "\x495\a\xEF\x2\x2\x494\x493\x3\x2\x2\x2\x494\x495\x3\x2\x2\x2\x495\x496"+ - "\x3\x2\x2\x2\x496\x498\a\xC0\x2\x2\x497\x499\a\xEF\x2\x2\x498\x497\x3"+ - "\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xE8"+ - "u\x2\x49B\x49D\a\xEF\x2\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2"+ - "\x49D\x49E\x3\x2\x2\x2\x49E\x49F\a\xC7\x2\x2\x49F\x4A1\x3\x2\x2\x2\x4A0"+ - "\x494\x3\x2\x2\x2\x4A0\x4A1\x3\x2\x2\x2\x4A1\x4A3\x3\x2\x2\x2\x4A2\x491"+ - "\x3\x2\x2\x2\x4A2\x492\x3\x2\x2\x2\x4A3}\x3\x2\x2\x2\x4A4\x4A5\a\x81\x2"+ - "\x2\x4A5\x4A6\a\xEF\x2\x2\x4A6\x4A8\x5\xCEh\x2\x4A7\x4A9\a\xEF\x2\x2\x4A8"+ - "\x4A7\x3\x2\x2\x2\x4A8\x4A9\x3\x2\x2\x2\x4A9\x4AA\x3\x2\x2\x2\x4AA\x4AF"+ - "\a\t\x2\x2\x4AB\x4AD\a\xEF\x2\x2\x4AC\x4AB\x3\x2\x2\x2\x4AC\x4AD\x3\x2"+ - "\x2\x2\x4AD\x4AE\x3\x2\x2\x2\x4AE\x4B0\x5z>\x2\x4AF\x4AC\x3\x2\x2\x2\x4AF"+ - "\x4B0\x3\x2\x2\x2\x4B0\x7F\x3\x2\x2\x2\x4B1\x4B2\x5\x110\x89\x2\x4B2\x4B3"+ - "\a\xEF\x2\x2\x4B3\x4B5\x3\x2\x2\x2\x4B4\x4B1\x3\x2\x2\x2\x4B4\x4B5\x3"+ - "\x2\x2\x2\x4B5\x4B8\x3\x2\x2\x2\x4B6\x4B7\a\x9F\x2\x2\x4B7\x4B9\a\xEF"+ - "\x2\x2\x4B8\x4B6\x3\x2\x2\x2\x4B8\x4B9\x3\x2\x2\x2\x4B9\x4BA\x3\x2\x2"+ - "\x2\x4BA\x4BB\a\x83\x2\x2\x4BB\x4BC\a\xEF\x2\x2\x4BC\x4BE\x5\xF8}\x2\x4BD"+ - "\x4BF\x5\x10E\x88\x2\x4BE\x4BD\x3\x2\x2\x2\x4BE\x4BF\x3\x2\x2\x2\x4BF"+ - "\x4C4\x3\x2\x2\x2\x4C0\x4C2\a\xEF\x2\x2\x4C1\x4C0\x3\x2\x2\x2\x4C1\x4C2"+ - "\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x4C5\x5\xEEx\x2\x4C4\x4C1\x3\x2"+ - "\x2\x2\x4C4\x4C5\x3\x2\x2\x2\x4C5\x4C8\x3\x2\x2\x2\x4C6\x4C7\a\xEF\x2"+ - "\x2\x4C7\x4C9\x5\xFA~\x2\x4C8\x4C6\x3\x2\x2\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9"+ - "\x4CA\x3\x2\x2\x2\x4CA\x4CC\x5\x11A\x8E\x2\x4CB\x4CD\x5\x1A\xE\x2\x4CC"+ - "\x4CB\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE\x4CF"+ - "\a<\x2\x2\x4CF\x81\x3\x2\x2\x2\x4D0\x4D1\x5\x110\x89\x2\x4D1\x4D2\a\xEF"+ - "\x2\x2\x4D2\x4D4\x3\x2\x2\x2\x4D3\x4D0\x3\x2\x2\x2\x4D3\x4D4\x3\x2\x2"+ - "\x2\x4D4\x4D7\x3\x2\x2\x2\x4D5\x4D6\a\x9F\x2\x2\x4D6\x4D8\a\xEF\x2\x2"+ - "\x4D7\x4D5\x3\x2\x2\x2\x4D7\x4D8\x3\x2\x2\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9"+ - "\x4DA\a\x85\x2\x2\x4DA\x4DB\a\xEF\x2\x2\x4DB\x4E0\x5\xF8}\x2\x4DC\x4DE"+ - "\a\xEF\x2\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4DF\x3"+ - "\x2\x2\x2\x4DF\x4E1\x5\xEEx\x2\x4E0\x4DD\x3\x2\x2\x2\x4E0\x4E1\x3\x2\x2"+ - "\x2\x4E1\x4E2\x3\x2\x2\x2\x4E2\x4E4\x5\x11A\x8E\x2\x4E3\x4E5\x5\x1A\xE"+ - "\x2\x4E4\x4E3\x3\x2\x2\x2\x4E4\x4E5\x3\x2\x2\x2\x4E5\x4E6\x3\x2\x2\x2"+ - "\x4E6\x4E7\a<\x2\x2\x4E7\x83\x3\x2\x2\x2\x4E8\x4E9\x5\x110\x89\x2\x4E9"+ - "\x4EA\a\xEF\x2\x2\x4EA\x4EC\x3\x2\x2\x2\x4EB\x4E8\x3\x2\x2\x2\x4EB\x4EC"+ - "\x3\x2\x2\x2\x4EC\x4EF\x3\x2\x2\x2\x4ED\x4EE\a\x9F\x2\x2\x4EE\x4F0\a\xEF"+ - "\x2\x2\x4EF\x4ED\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F1\x3\x2\x2"+ - "\x2\x4F1\x4F2\a\x84\x2\x2\x4F2\x4F3\a\xEF\x2\x2\x4F3\x4F8\x5\xF8}\x2\x4F4"+ - "\x4F6\a\xEF\x2\x2\x4F5\x4F4\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6\x4F7"+ - "\x3\x2\x2\x2\x4F7\x4F9\x5\xEEx\x2\x4F8\x4F5\x3\x2\x2\x2\x4F8\x4F9\x3\x2"+ - "\x2\x2\x4F9\x4FA\x3\x2\x2\x2\x4FA\x4FC\x5\x11A\x8E\x2\x4FB\x4FD\x5\x1A"+ - "\xE\x2\x4FC\x4FB\x3\x2\x2\x2\x4FC\x4FD\x3\x2\x2\x2\x4FD\x4FE\x3\x2\x2"+ - "\x2\x4FE\x4FF\a<\x2\x2\x4FF\x85\x3\x2\x2\x2\x500\x501\a\x88\x2\x2\x501"+ - "\x502\a\xEF\x2\x2\x502\x504\x5\xCEh\x2\x503\x505\a\xEF\x2\x2\x504\x503"+ - "\x3\x2\x2\x2\x504\x505\x3\x2\x2\x2\x505\x506\x3\x2\x2\x2\x506\x508\a\t"+ - "\x2\x2\x507\x509\a\xEF\x2\x2\x508\x507\x3\x2\x2\x2\x508\x509\x3\x2\x2"+ - "\x2\x509\x50B\x3\x2\x2\x2\x50A\x50C\x5\xBE`\x2\x50B\x50A\x3\x2\x2\x2\x50B"+ - "\x50C\x3\x2\x2\x2\x50C\x50E\x3\x2\x2\x2\x50D\x50F\a\xEF\x2\x2\x50E\x50D"+ - "\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x512\a\t"+ - "\x2\x2\x511\x513\a\xEF\x2\x2\x512\x511\x3\x2\x2\x2\x512\x513\x3\x2\x2"+ - "\x2\x513\x514\x3\x2\x2\x2\x514\x515\x5\xBE`\x2\x515\x87\x3\x2\x2\x2\x516"+ - "\x517\a\x8B\x2\x2\x517\x518\a\xEF\x2\x2\x518\x527\x5\xF8}\x2\x519\x51B"+ - "\a\xEF\x2\x2\x51A\x519\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51C\x3"+ - "\x2\x2\x2\x51C\x51E\a\xC0\x2\x2\x51D\x51F\a\xEF\x2\x2\x51E\x51D\x3\x2"+ - "\x2\x2\x51E\x51F\x3\x2\x2\x2\x51F\x524\x3\x2\x2\x2\x520\x522\x5\xE8u\x2"+ - "\x521\x523\a\xEF\x2\x2\x522\x521\x3\x2\x2\x2\x522\x523\x3\x2\x2\x2\x523"+ - "\x525\x3\x2\x2\x2\x524\x520\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x526"+ - "\x3\x2\x2\x2\x526\x528\a\xC7\x2\x2\x527\x51A\x3\x2\x2\x2\x527\x528\x3"+ - "\x2\x2\x2\x528\x89\x3\x2\x2\x2\x529\x52C\a\x8A\x2\x2\x52A\x52B\a\xEF\x2"+ - "\x2\x52B\x52D\x5\xBE`\x2\x52C\x52A\x3\x2\x2\x2\x52C\x52D\x3\x2\x2\x2\x52D"+ - "\x8B\x3\x2\x2\x2\x52E\x52F\a\x8E\x2\x2\x52F\x532\a\xEF\x2\x2\x530\x531"+ - "\a\x80\x2\x2\x531\x533\a\xEF\x2\x2\x532\x530\x3\x2\x2\x2\x532\x533\x3"+ - "\x2\x2\x2\x533\x534\x3\x2\x2\x2\x534\x53F\x5\x8EH\x2\x535\x537\a\xEF\x2"+ - "\x2\x536\x535\x3\x2\x2\x2\x536\x537\x3\x2\x2\x2\x537\x538\x3\x2\x2\x2"+ - "\x538\x53A\a\t\x2\x2\x539\x53B\a\xEF\x2\x2\x53A\x539\x3\x2\x2\x2\x53A"+ - "\x53B\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53E\x5\x8EH\x2\x53D\x536"+ - "\x3\x2\x2\x2\x53E\x541\x3\x2\x2\x2\x53F\x53D\x3\x2\x2\x2\x53F\x540\x3"+ - "\x2\x2\x2\x540\x8D\x3\x2\x2\x2\x541\x53F\x3\x2\x2\x2\x542\x544\x5\xDC"+ - "o\x2\x543\x545\a\xEF\x2\x2\x544\x543\x3\x2\x2\x2\x544\x545\x3\x2\x2\x2"+ - "\x545\x546\x3\x2\x2\x2\x546\x548\a\xC0\x2\x2\x547\x549\a\xEF\x2\x2\x548"+ - "\x547\x3\x2\x2\x2\x548\x549\x3\x2\x2\x2\x549\x54A\x3\x2\x2\x2\x54A\x54C"+ - "\x5\xF4{\x2\x54B\x54D\a\xEF\x2\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D\x3\x2"+ - "\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x551\a\xC7\x2\x2\x54F\x550\a\xEF\x2"+ - "\x2\x550\x552\x5\xFA~\x2\x551\x54F\x3\x2\x2\x2\x551\x552\x3\x2\x2\x2\x552"+ - "\x8F\x3\x2\x2\x2\x553\x554\a\x90\x2\x2\x554\x91\x3\x2\x2\x2\x555\x55B"+ - "\a\x91\x2\x2\x556\x559\a\xEF\x2\x2\x557\x55A\ao\x2\x2\x558\x55A\x5\xF8"+ - "}\x2\x559\x557\x3\x2\x2\x2\x559\x558\x3\x2\x2\x2\x55A\x55C\x3\x2\x2\x2"+ - "\x55B\x556\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x93\x3\x2\x2\x2\x55D"+ - "\x55E\a\x92\x2\x2\x55E\x95\x3\x2\x2\x2\x55F\x560\a\x93\x2\x2\x560\x561"+ - "\a\xEF\x2\x2\x561\x562\x5\xBE`\x2\x562\x97\x3\x2\x2\x2\x563\x564\a\x94"+ - "\x2\x2\x564\x565\a\xEF\x2\x2\x565\x567\x5\xDCo\x2\x566\x568\a\xEF\x2\x2"+ - "\x567\x566\x3\x2\x2\x2\x567\x568\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569"+ - "\x56B\a\xBC\x2\x2\x56A\x56C\a\xEF\x2\x2\x56B\x56A\x3\x2\x2\x2\x56B\x56C"+ - "\x3\x2\x2\x2\x56C\x56D\x3\x2\x2\x2\x56D\x56E\x5\xBE`\x2\x56E\x99\x3\x2"+ - "\x2\x2\x56F\x570\a\x95\x2\x2\x570\x571\a\xEF\x2\x2\x571\x573\x5\xBE`\x2"+ - "\x572\x574\a\xEF\x2\x2\x573\x572\x3\x2\x2\x2\x573\x574\x3\x2\x2\x2\x574"+ - "\x575\x3\x2\x2\x2\x575\x577\a\t\x2\x2\x576\x578\a\xEF\x2\x2\x577\x576"+ - "\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\x3\x2\x2\x2\x579\x57A\x5"+ - "\xBE`\x2\x57A\x9B\x3\x2\x2\x2\x57B\x57C\a\x96\x2\x2\x57C\x57D\a\xEF\x2"+ - "\x2\x57D\x57F\x5\xBE`\x2\x57E\x580\a\xEF\x2\x2\x57F\x57E\x3\x2\x2\x2\x57F"+ - "\x580\x3\x2\x2\x2\x580\x581\x3\x2\x2\x2\x581\x583\a\t\x2\x2\x582\x584"+ - "\a\xEF\x2\x2\x583\x582\x3\x2\x2\x2\x583\x584\x3\x2\x2\x2\x584\x585\x3"+ - "\x2\x2\x2\x585\x587\x5\xBE`\x2\x586\x588\a\xEF\x2\x2\x587\x586\x3\x2\x2"+ - "\x2\x587\x588\x3\x2\x2\x2\x588\x589\x3\x2\x2\x2\x589\x58B\a\t\x2\x2\x58A"+ - "\x58C\a\xEF\x2\x2\x58B\x58A\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x58D"+ - "\x3\x2\x2\x2\x58D\x58F\x5\xBE`\x2\x58E\x590\a\xEF\x2\x2\x58F\x58E\x3\x2"+ - "\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x591\x3\x2\x2\x2\x591\x593\a\t\x2\x2"+ - "\x592\x594\a\xEF\x2\x2\x593\x592\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594"+ - "\x595\x3\x2\x2\x2\x595\x596\x5\xBE`\x2\x596\x9D\x3\x2\x2\x2\x597\x598"+ - "\a\x97\x2\x2\x598\x599\a\xEF\x2\x2\x599\x59B\x5\xCEh\x2\x59A\x59C\a\xEF"+ - "\x2\x2\x59B\x59A\x3\x2\x2\x2\x59B\x59C\x3\x2\x2\x2\x59C\x59D\x3\x2\x2"+ - "\x2\x59D\x59F\a\t\x2\x2\x59E\x5A0\a\xEF\x2\x2\x59F\x59E\x3\x2\x2\x2\x59F"+ - "\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1\x5A2\x5\xBE`\x2\x5A2\x9F"+ - "\x3\x2\x2\x2\x5A3\x5A4\a\x98\x2\x2\x5A4\x5A5\a\xEF\x2\x2\x5A5\x5A6\a\x1B"+ - "\x2\x2\x5A6\x5A7\a\xEF\x2\x2\x5A7\x5A8\x5\xBE`\x2\x5A8\x5AC\x5\x11A\x8E"+ - "\x2\x5A9\x5AB\x5\xA4S\x2\x5AA\x5A9\x3\x2\x2\x2\x5AB\x5AE\x3\x2\x2\x2\x5AC"+ - "\x5AA\x3\x2\x2\x2\x5AC\x5AD\x3\x2\x2\x2\x5AD\x5AF\x3\x2\x2\x2\x5AE\x5AC"+ - "\x3\x2\x2\x2\x5AF\x5B0\a=\x2\x2\x5B0\xA1\x3\x2\x2\x2\x5B1\x5B3\aZ\x2\x2"+ - "\x5B2\x5B4\a\xEF\x2\x2\x5B3\x5B2\x3\x2\x2\x2\x5B3\x5B4\x3\x2\x2\x2\x5B4"+ - "\x5B5\x3\x2\x2\x2\x5B5\x5B7\x5\x100\x81\x2\x5B6\x5B8\a\xEF\x2\x2\x5B7"+ - "\x5B6\x3\x2\x2\x2\x5B7\x5B8\x3\x2\x2\x2\x5B8\x5B9\x3\x2\x2\x2\x5B9\x5BA"+ - "\x5\xBE`\x2\x5BA\x5C3\x3\x2\x2\x2\x5BB\x5BC\x5\xBE`\x2\x5BC\x5BD\a\xEF"+ - "\x2\x2\x5BD\x5BE\a\xA8\x2\x2\x5BE\x5BF\a\xEF\x2\x2\x5BF\x5C0\x5\xBE`\x2"+ - "\x5C0\x5C3\x3\x2\x2\x2\x5C1\x5C3\x5\xBE`\x2\x5C2\x5B1\x3\x2\x2\x2\x5C2"+ - "\x5BB\x3\x2\x2\x2\x5C2\x5C1\x3\x2\x2\x2\x5C3\xA3\x3\x2\x2\x2\x5C4\x5C5"+ - "\a\x1B\x2\x2\x5C5\x5C6\a\xEF\x2\x2\x5C6\x5C7\x5\xA6T\x2\x5C7\x5C9\x5\x11A"+ - "\x8E\x2\x5C8\x5CA\x5\x1A\xE\x2\x5C9\x5C8\x3\x2\x2\x2\x5C9\x5CA\x3\x2\x2"+ - "\x2\x5CA\xA5\x3\x2\x2\x2\x5CB\x5DB\a\x36\x2\x2\x5CC\x5D7\x5\xA2R\x2\x5CD"+ - "\x5CF\a\xEF\x2\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0"+ - "\x3\x2\x2\x2\x5D0\x5D2\a\t\x2\x2\x5D1\x5D3\a\xEF\x2\x2\x5D2\x5D1\x3\x2"+ - "\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D6\x5\xA2R\x2"+ - "\x5D5\x5CE\x3\x2\x2\x2\x5D6\x5D9\x3\x2\x2\x2\x5D7\x5D5\x3\x2\x2\x2\x5D7"+ - "\x5D8\x3\x2\x2\x2\x5D8\x5DB\x3\x2\x2\x2\x5D9\x5D7\x3\x2\x2\x2\x5DA\x5CB"+ - "\x3\x2\x2\x2\x5DA\x5CC\x3\x2\x2\x2\x5DB\xA7\x3\x2\x2\x2\x5DC\x5DD\a\x99"+ - "\x2\x2\x5DD\x5DE\a\xEF\x2\x2\x5DE\x5E7\x5\xBE`\x2\x5DF\x5E1\a\xEF\x2\x2"+ - "\x5E0\x5DF\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2"+ - "\x5E4\a\t\x2\x2\x5E3\x5E5\a\xEF\x2\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5"+ - "\x3\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2\x5E6\x5E8\x5\xBE`\x2\x5E7\x5E0\x3\x2"+ - "\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\xA9\x3\x2\x2\x2\x5E9\x5EA\a\x9B\x2\x2"+ - "\x5EA\x5EB\a\xEF\x2\x2\x5EB\x5ED\x5\xBE`\x2\x5EC\x5EE\a\xEF\x2\x2\x5ED"+ - "\x5EC\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5EF\x3\x2\x2\x2\x5EF\x5F1"+ - "\a\t\x2\x2\x5F0\x5F2\a\xEF\x2\x2\x5F1\x5F0\x3\x2\x2\x2\x5F1\x5F2\x3\x2"+ - "\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F4\x5\xBE`\x2\x5F4\xAB\x3\x2\x2\x2"+ - "\x5F5\x5F6\a\x9A\x2\x2\x5F6\x5F7\a\xEF\x2\x2\x5F7\x5F9\x5\xDCo\x2\x5F8"+ - "\x5FA\a\xEF\x2\x2\x5F9\x5F8\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2\x5FA\x5FB"+ - "\x3\x2\x2\x2\x5FB\x5FD\a\xBC\x2\x2\x5FC\x5FE\a\xEF\x2\x2\x5FD\x5FC\x3"+ - "\x2\x2\x2\x5FD\x5FE\x3\x2\x2\x2\x5FE\x5FF\x3\x2\x2\x2\x5FF\x600\x5\xBE"+ - "`\x2\x600\xAD\x3\x2\x2\x2\x601\x602\a\xA1\x2\x2\x602\xAF\x3\x2\x2\x2\x603"+ - "\x604\x5\x110\x89\x2\x604\x605\a\xEF\x2\x2\x605\x607\x3\x2\x2\x2\x606"+ - "\x603\x3\x2\x2\x2\x606\x607\x3\x2\x2\x2\x607\x60A\x3\x2\x2\x2\x608\x609"+ - "\a\x9F\x2\x2\x609\x60B\a\xEF\x2\x2\x60A\x608\x3\x2\x2\x2\x60A\x60B\x3"+ - "\x2\x2\x2\x60B\x60C\x3\x2\x2\x2\x60C\x60E\a\xA3\x2\x2\x60D\x60F\a\xEF"+ - "\x2\x2\x60E\x60D\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610\x3\x2\x2"+ - "\x2\x610\x615\x5\xF8}\x2\x611\x613\a\xEF\x2\x2\x612\x611\x3\x2\x2\x2\x612"+ - "\x613\x3\x2\x2\x2\x613\x614\x3\x2\x2\x2\x614\x616\x5\xEEx\x2\x615\x612"+ - "\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\x617\x3\x2\x2\x2\x617\x619\x5"+ - "\x11A\x8E\x2\x618\x61A\x5\x1A\xE\x2\x619\x618\x3\x2\x2\x2\x619\x61A\x3"+ - "\x2\x2\x2\x61A\x61B\x3\x2\x2\x2\x61B\x61C\a>\x2\x2\x61C\xB1\x3\x2\x2\x2"+ - "\x61D\x61F\a\xA7\x2\x2\x61E\x620\a\xEF\x2\x2\x61F\x61E\x3\x2\x2\x2\x61F"+ - "\x620\x3\x2\x2\x2\x620\x621\x3\x2\x2\x2\x621\x623\a\xBC\x2\x2\x622\x624"+ - "\a\xEF\x2\x2\x623\x622\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x625\x3"+ - "\x2\x2\x2\x625\x626\x5\xBE`\x2\x626\xB3\x3\x2\x2\x2\x627\x628\x5\x110"+ - "\x89\x2\x628\x629\a\xEF\x2\x2\x629\x62B\x3\x2\x2\x2\x62A\x627\x3\x2\x2"+ - "\x2\x62A\x62B\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62D\a\xAA\x2\x2"+ - "\x62D\x62E\a\xEF\x2\x2\x62E\x62F\x5\xF8}\x2\x62F\x633\x5\x11A\x8E\x2\x630"+ - "\x632\x5\xB6\\\x2\x631\x630\x3\x2\x2\x2\x632\x635\x3\x2\x2\x2\x633\x631"+ - "\x3\x2\x2\x2\x633\x634\x3\x2\x2\x2\x634\x636\x3\x2\x2\x2\x635\x633\x3"+ - "\x2\x2\x2\x636\x637\a?\x2\x2\x637\xB5\x3\x2\x2\x2\x638\x647\x5\xF8}\x2"+ - "\x639\x63B\a\xEF\x2\x2\x63A\x639\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B"+ - "\x63C\x3\x2\x2\x2\x63C\x641\a\xC0\x2\x2\x63D\x63F\a\xEF\x2\x2\x63E\x63D"+ - "\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x640\x3\x2\x2\x2\x640\x642\x5"+ - "\xF4{\x2\x641\x63E\x3\x2\x2\x2\x641\x642\x3\x2\x2\x2\x642\x644\x3\x2\x2"+ - "\x2\x643\x645\a\xEF\x2\x2\x644\x643\x3\x2\x2\x2\x644\x645\x3\x2\x2\x2"+ - "\x645\x646\x3\x2\x2\x2\x646\x648\a\xC7\x2\x2\x647\x63A\x3\x2\x2\x2\x647"+ - "\x648\x3\x2\x2\x2\x648\x64B\x3\x2\x2\x2\x649\x64A\a\xEF\x2\x2\x64A\x64C"+ - "\x5\xFA~\x2\x64B\x649\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x3\x2"+ - "\x2\x2\x64D\x64E\x5\x11A\x8E\x2\x64E\xB7\x3\x2\x2\x2\x64F\x650\a\xAB\x2"+ - "\x2\x650\x651\a\xEF\x2\x2\x651\x656\x5\xBE`\x2\x652\x653\a\xEF\x2\x2\x653"+ - "\x654\aZ\x2\x2\x654\x655\a\xEF\x2\x2\x655\x657\x5\x10C\x87\x2\x656\x652"+ - "\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\xB9\x3\x2\x2\x2\x658\x659\a\xAC"+ - "\x2\x2\x659\x65A\a\xEF\x2\x2\x65A\x65B\x5\xBE`\x2\x65B\xBB\x3\x2\x2\x2"+ - "\x65C\x65D\a\xAD\x2\x2\x65D\x65E\a\xEF\x2\x2\x65E\x66D\x5\xCEh\x2\x65F"+ - "\x661\a\xEF\x2\x2\x660\x65F\x3\x2\x2\x2\x660\x661\x3\x2\x2\x2\x661\x662"+ - "\x3\x2\x2\x2\x662\x664\a\t\x2\x2\x663\x665\a\xEF\x2\x2\x664\x663\x3\x2"+ - "\x2\x2\x664\x665\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2\x666\x66B\x5\xBE`\x2"+ - "\x667\x668\a\xEF\x2\x2\x668\x669\a\xA8\x2\x2\x669\x66A\a\xEF\x2\x2\x66A"+ - "\x66C\x5\xBE`\x2\x66B\x667\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x66E"+ - "\x3\x2\x2\x2\x66D\x660\x3\x2\x2\x2\x66D\x66E\x3\x2\x2\x2\x66E\xBD\x3\x2"+ - "\x2\x2\x66F\x670\b`\x1\x2\x670\x672\ap\x2\x2\x671\x673\a\xEF\x2\x2\x672"+ - "\x671\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x6A7"+ - "\x5\xBE`\x15\x675\x677\a\f\x2\x2\x676\x678\a\xEF\x2\x2\x677\x676\x3\x2"+ - "\x2\x2\x677\x678\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x6A7\x5\xBE`\x12"+ - "\x67A\x67C\x5\xDCo\x2\x67B\x67D\a\xEF\x2\x2\x67C\x67B\x3\x2\x2\x2\x67C"+ - "\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x680\a\xB9\x2\x2\x67F\x681"+ - "\a\xEF\x2\x2\x680\x67F\x3\x2\x2\x2\x680\x681\x3\x2\x2\x2\x681\x682\x3"+ - "\x2\x2\x2\x682\x683\x5\xBE`\x11\x683\x6A7\x3\x2\x2\x2\x684\x686\a\xC2"+ - "\x2\x2\x685\x687\a\xEF\x2\x2\x686\x685\x3\x2\x2\x2\x686\x687\x3\x2\x2"+ - "\x2\x687\x688\x3\x2\x2\x2\x688\x6A7\x5\xBE`\xF\x689\x68B\aq\x2\x2\x68A"+ - "\x68C\a\xEF\x2\x2\x68B\x68A\x3\x2\x2\x2\x68B\x68C\x3\x2\x2\x2\x68C\x68D"+ - "\x3\x2\x2\x2\x68D\x6A7\x5\xBE`\b\x68E\x6A7\x5\x10A\x86\x2\x68F\x6A7\x5"+ - "\xDCo\x2\x690\x692\a\xC0\x2\x2\x691\x693\a\xEF\x2\x2\x692\x691\x3\x2\x2"+ - "\x2\x692\x693\x3\x2\x2\x2\x693\x694\x3\x2\x2\x2\x694\x69F\x5\xBE`\x2\x695"+ - "\x697\a\xEF\x2\x2\x696\x695\x3\x2\x2\x2\x696\x697\x3\x2\x2\x2\x697\x698"+ - "\x3\x2\x2\x2\x698\x69A\a\t\x2\x2\x699\x69B\a\xEF\x2\x2\x69A\x699\x3\x2"+ - "\x2\x2\x69A\x69B\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2\x69C\x69E\x5\xBE`\x2"+ - "\x69D\x696\x3\x2\x2\x2\x69E\x6A1\x3\x2\x2\x2\x69F\x69D\x3\x2\x2\x2\x69F"+ - "\x6A0\x3\x2\x2\x2\x6A0\x6A2\x3\x2\x2\x2\x6A1\x69F\x3\x2\x2\x2\x6A2\x6A3"+ - "\a\xC7\x2\x2\x6A3\x6A7\x3\x2\x2\x2\x6A4\x6A7\x5\xB8]\x2\x6A5\x6A7\x5l"+ - "\x37\x2\x6A6\x66F\x3\x2\x2\x2\x6A6\x675\x3\x2\x2\x2\x6A6\x67A\x3\x2\x2"+ - "\x2\x6A6\x684\x3\x2\x2\x2\x6A6\x689\x3\x2\x2\x2\x6A6\x68E\x3\x2\x2\x2"+ - "\x6A6\x68F\x3\x2\x2\x2\x6A6\x690\x3\x2\x2\x2\x6A6\x6A4\x3\x2\x2\x2\x6A6"+ - "\x6A5\x3\x2\x2\x2\x6A7\x716\x3\x2\x2\x2\x6A8\x6AA\f\x10\x2\x2\x6A9\x6AB"+ - "\a\xEF\x2\x2\x6AA\x6A9\x3\x2\x2\x2\x6AA\x6AB\x3\x2\x2\x2\x6AB\x6AC\x3"+ - "\x2\x2\x2\x6AC\x6AE\a\xC6\x2\x2\x6AD\x6AF\a\xEF\x2\x2\x6AE\x6AD\x3\x2"+ - "\x2\x2\x6AE\x6AF\x3\x2\x2\x2\x6AF\x6B0\x3\x2\x2\x2\x6B0\x715\x5\xBE`\x11"+ - "\x6B1\x6B3\f\xE\x2\x2\x6B2\x6B4\a\xEF\x2\x2\x6B3\x6B2\x3\x2\x2\x2\x6B3"+ - "\x6B4\x3\x2\x2\x2\x6B4\x6B5\x3\x2\x2\x2\x6B5\x6B7\t\f\x2\x2\x6B6\x6B8"+ - "\a\xEF\x2\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6B9\x3"+ - "\x2\x2\x2\x6B9\x715\x5\xBE`\xF\x6BA\x6BC\f\r\x2\x2\x6BB\x6BD\a\xEF\x2"+ - "\x2\x6BC\x6BB\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6BE\x3\x2\x2\x2"+ - "\x6BE\x6C0\a\xBB\x2\x2\x6BF\x6C1\a\xEF\x2\x2\x6C0\x6BF\x3\x2\x2\x2\x6C0"+ - "\x6C1\x3\x2\x2\x2\x6C1\x6C2\x3\x2\x2\x2\x6C2\x715\x5\xBE`\xE\x6C3\x6C5"+ - "\f\f\x2\x2\x6C4\x6C6\a\xEF\x2\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5\x6C6\x3\x2"+ - "\x2\x2\x6C6\x6C7\x3\x2\x2\x2\x6C7\x6C9\am\x2\x2\x6C8\x6CA\a\xEF\x2\x2"+ - "\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA\x6CB\x3\x2\x2\x2\x6CB"+ - "\x715\x5\xBE`\r\x6CC\x6CE\f\v\x2\x2\x6CD\x6CF\a\xEF\x2\x2\x6CE\x6CD\x3"+ - "\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2\x2\x2\x6D0\x6D2\t\r\x2"+ - "\x2\x6D1\x6D3\a\xEF\x2\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2"+ - "\x6D3\x6D4\x3\x2\x2\x2\x6D4\x715\x5\xBE`\f\x6D5\x6D7\f\n\x2\x2\x6D6\x6D8"+ - "\a\xEF\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8\x6D9\x3"+ - "\x2\x2\x2\x6D9\x6DB\a\xB8\x2\x2\x6DA\x6DC\a\xEF\x2\x2\x6DB\x6DA\x3\x2"+ - "\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x715\x5\xBE`\v"+ - "\x6DE\x6E0\f\t\x2\x2\x6DF\x6E1\a\xEF\x2\x2\x6E0\x6DF\x3\x2\x2\x2\x6E0"+ - "\x6E1\x3\x2\x2\x2\x6E1\x6E2\x3\x2\x2\x2\x6E2\x6E4\t\xE\x2\x2\x6E3\x6E5"+ - "\a\xEF\x2\x2\x6E4\x6E3\x3\x2\x2\x2\x6E4\x6E5\x3\x2\x2\x2\x6E5\x6E6\x3"+ - "\x2\x2\x2\x6E6\x715\x5\xBE`\n\x6E7\x6E9\f\a\x2\x2\x6E8\x6EA\a\xEF\x2\x2"+ - "\x6E9\x6E8\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB\x3\x2\x2\x2\x6EB"+ - "\x6ED\a\xE\x2\x2\x6EC\x6EE\a\xEF\x2\x2\x6ED\x6EC\x3\x2\x2\x2\x6ED\x6EE"+ - "\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2\x2\x6EF\x715\x5\xBE`\b\x6F0\x6F2\f\x6"+ - "\x2\x2\x6F1\x6F3\a\xEF\x2\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2"+ - "\x2\x6F3\x6F4\x3\x2\x2\x2\x6F4\x6F6\a}\x2\x2\x6F5\x6F7\a\xEF\x2\x2\x6F6"+ - "\x6F5\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F8\x3\x2\x2\x2\x6F8\x715"+ - "\x5\xBE`\a\x6F9\x6FB\f\x5\x2\x2\x6FA\x6FC\a\xEF\x2\x2\x6FB\x6FA\x3\x2"+ - "\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x6FD\x3\x2\x2\x2\x6FD\x6FF\a\xB7\x2"+ - "\x2\x6FE\x700\a\xEF\x2\x2\x6FF\x6FE\x3\x2\x2\x2\x6FF\x700\x3\x2\x2\x2"+ - "\x700\x701\x3\x2\x2\x2\x701\x715\x5\xBE`\x6\x702\x704\f\x4\x2\x2\x703"+ - "\x705\a\xEF\x2\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706"+ - "\x3\x2\x2\x2\x706\x708\a\x43\x2\x2\x707\x709\a\xEF\x2\x2\x708\x707\x3"+ - "\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A\x715\x5\xBE"+ - "`\x5\x70B\x70D\f\x3\x2\x2\x70C\x70E\a\xEF\x2\x2\x70D\x70C\x3\x2\x2\x2"+ - "\x70D\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x711\aV\x2\x2\x710\x712"+ - "\a\xEF\x2\x2\x711\x710\x3\x2\x2\x2\x711\x712\x3\x2\x2\x2\x712\x713\x3"+ - "\x2\x2\x2\x713\x715\x5\xBE`\x4\x714\x6A8\x3\x2\x2\x2\x714\x6B1\x3\x2\x2"+ - "\x2\x714\x6BA\x3\x2\x2\x2\x714\x6C3\x3\x2\x2\x2\x714\x6CC\x3\x2\x2\x2"+ - "\x714\x6D5\x3\x2\x2\x2\x714\x6DE\x3\x2\x2\x2\x714\x6E7\x3\x2\x2\x2\x714"+ - "\x6F0\x3\x2\x2\x2\x714\x6F9\x3\x2\x2\x2\x714\x702\x3\x2\x2\x2\x714\x70B"+ - "\x3\x2\x2\x2\x715\x718\x3\x2\x2\x2\x716\x714\x3\x2\x2\x2\x716\x717\x3"+ - "\x2\x2\x2\x717\xBF\x3\x2\x2\x2\x718\x716\x3\x2\x2\x2\x719\x71D\a\x32\x2"+ - "\x2\x71A\x71D\a\x9F\x2\x2\x71B\x71D\x5\x110\x89\x2\x71C\x719\x3\x2\x2"+ - "\x2\x71C\x71A\x3\x2\x2\x2\x71C\x71B\x3\x2\x2\x2\x71D\x71E\x3\x2\x2\x2"+ - "\x71E\x721\a\xEF\x2\x2\x71F\x720\a\xB5\x2\x2\x720\x722\a\xEF\x2\x2\x721"+ - "\x71F\x3\x2\x2\x2\x721\x722\x3\x2\x2\x2\x722\x723\x3\x2\x2\x2\x723\x724"+ - "\x5\xC2\x62\x2\x724\xC1\x3\x2\x2\x2\x725\x730\x5\xC4\x63\x2\x726\x728"+ - "\a\xEF\x2\x2\x727\x726\x3\x2\x2\x2\x727\x728\x3\x2\x2\x2\x728\x729\x3"+ - "\x2\x2\x2\x729\x72B\a\t\x2\x2\x72A\x72C\a\xEF\x2\x2\x72B\x72A\x3\x2\x2"+ - "\x2\x72B\x72C\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D\x72F\x5\xC4\x63\x2"+ - "\x72E\x727\x3\x2\x2\x2\x72F\x732\x3\x2\x2\x2\x730\x72E\x3\x2\x2\x2\x730"+ - "\x731\x3\x2\x2\x2\x731\xC3\x3\x2\x2\x2\x732\x730\x3\x2\x2\x2\x733\x745"+ - "\x5\xF8}\x2\x734\x736\a\xEF\x2\x2\x735\x734\x3\x2\x2\x2\x735\x736\x3\x2"+ - "\x2\x2\x736\x737\x3\x2\x2\x2\x737\x739\a\xC0\x2\x2\x738\x73A\a\xEF\x2"+ - "\x2\x739\x738\x3\x2\x2\x2\x739\x73A\x3\x2\x2\x2\x73A\x73F\x3\x2\x2\x2"+ - "\x73B\x73D\x5\xF4{\x2\x73C\x73E\a\xEF\x2\x2\x73D\x73C\x3\x2\x2\x2\x73D"+ - "\x73E\x3\x2\x2\x2\x73E\x740\x3\x2\x2\x2\x73F\x73B\x3\x2\x2\x2\x73F\x740"+ - "\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\a\xC7\x2\x2\x742\x744\a\xEF"+ - "\x2\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2\x2\x2\x744\x746\x3\x2\x2"+ - "\x2\x745\x735\x3\x2\x2\x2\x745\x746\x3\x2\x2\x2\x746\x748\x3\x2\x2\x2"+ - "\x747\x749\x5\x10E\x88\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2"+ - "\x749\x74C\x3\x2\x2\x2\x74A\x74B\a\xEF\x2\x2\x74B\x74D\x5\xFA~\x2\x74C"+ - "\x74A\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\xC5\x3\x2\x2\x2\x74E\x74F"+ - "\a\xB2\x2\x2\x74F\x750\a\xEF\x2\x2\x750\x751\x5\xBE`\x2\x751\x753\x5\x11A"+ - "\x8E\x2\x752\x754\x5\x1A\xE\x2\x753\x752\x3\x2\x2\x2\x753\x754\x3\x2\x2"+ - "\x2\x754\x755\x3\x2\x2\x2\x755\x756\a\xB1\x2\x2\x756\xC7\x3\x2\x2\x2\x757"+ - "\x758\a\xB3\x2\x2\x758\x759\a\xEF\x2\x2\x759\x75B\x5\xCEh\x2\x75A\x75C"+ - "\a\xEF\x2\x2\x75B\x75A\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D\x3"+ - "\x2\x2\x2\x75D\x75F\a\t\x2\x2\x75E\x760\a\xEF\x2\x2\x75F\x75E\x3\x2\x2"+ - "\x2\x75F\x760\x3\x2\x2\x2\x760\x761\x3\x2\x2\x2\x761\x762\x5\xBE`\x2\x762"+ - "\xC9\x3\x2\x2\x2\x763\x764\a\xB4\x2\x2\x764\x769\a\xEF\x2\x2\x765\x76A"+ - "\x5\xDCo\x2\x766\x767\ap\x2\x2\x767\x768\a\xEF\x2\x2\x768\x76A\x5\x10C"+ - "\x87\x2\x769\x765\x3\x2\x2\x2\x769\x766\x3\x2\x2\x2\x76A\x76B\x3\x2\x2"+ - "\x2\x76B\x76D\x5\x11A\x8E\x2\x76C\x76E\x5\x1A\xE\x2\x76D\x76C\x3\x2\x2"+ - "\x2\x76D\x76E\x3\x2\x2\x2\x76E\x76F\x3\x2\x2\x2\x76F\x770\a@\x2\x2\x770"+ - "\xCB\x3\x2\x2\x2\x771\x772\a\xB6\x2\x2\x772\x773\a\xEF\x2\x2\x773\x775"+ - "\x5\xCEh\x2\x774\x776\a\xEF\x2\x2\x775\x774\x3\x2\x2\x2\x775\x776\x3\x2"+ - "\x2\x2\x776\x777\x3\x2\x2\x2\x777\x77C\a\t\x2\x2\x778\x77A\a\xEF\x2\x2"+ - "\x779\x778\x3\x2\x2\x2\x779\x77A\x3\x2\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B"+ - "\x77D\x5z>\x2\x77C\x779\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\xCD\x3"+ - "\x2\x2\x2\x77E\x780\a\x5\x2\x2\x77F\x77E\x3\x2\x2\x2\x77F\x780\x3\x2\x2"+ - "\x2\x780\x781\x3\x2\x2\x2\x781\x782\x5\xBE`\x2\x782\xCF\x3\x2\x2\x2\x783"+ - "\x786\x5\xD2j\x2\x784\x786\x5\xD4k\x2\x785\x783\x3\x2\x2\x2\x785\x784"+ - "\x3\x2\x2\x2\x786\xD1\x3\x2\x2\x2\x787\x788\a\x1A\x2\x2\x788\x789\a\xEF"+ - "\x2\x2\x789\x78B\x5\xF8}\x2\x78A\x78C\x5\x10E\x88\x2\x78B\x78A\x3\x2\x2"+ - "\x2\x78B\x78C\x3\x2\x2\x2\x78C\x79A\x3\x2\x2\x2\x78D\x78F\a\xEF\x2\x2"+ - "\x78E\x78D\x3\x2\x2\x2\x78E\x78F\x3\x2\x2\x2\x78F\x790\x3\x2\x2\x2\x790"+ - "\x792\a\xC0\x2\x2\x791\x793\a\xEF\x2\x2\x792\x791\x3\x2\x2\x2\x792\x793"+ - "\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794\x796\x5\xE8u\x2\x795\x797\a\xEF"+ - "\x2\x2\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x798\x3\x2\x2"+ - "\x2\x798\x799\a\xC7\x2\x2\x799\x79B\x3\x2\x2\x2\x79A\x78E\x3\x2\x2\x2"+ - "\x79A\x79B\x3\x2\x2\x2\x79B\x7A5\x3\x2\x2\x2\x79C\x79E\a\xEF\x2\x2\x79D"+ - "\x79C\x3\x2\x2\x2\x79D\x79E\x3\x2\x2\x2\x79E\x79F\x3\x2\x2\x2\x79F\x7A0"+ - "\a\xC0\x2\x2\x7A0\x7A1\x5\xF4{\x2\x7A1\x7A2\a\xC7\x2\x2\x7A2\x7A4\x3\x2"+ - "\x2\x2\x7A3\x79D\x3\x2\x2\x2\x7A4\x7A7\x3\x2\x2\x2\x7A5\x7A3\x3\x2\x2"+ - "\x2\x7A5\x7A6\x3\x2\x2\x2\x7A6\xD3\x3\x2\x2\x2\x7A7\x7A5\x3\x2\x2\x2\x7A8"+ - "\x7A9\a\x1A\x2\x2\x7A9\x7AB\a\xEF\x2\x2\x7AA\x7AC\x5\xDCo\x2\x7AB\x7AA"+ - "\x3\x2\x2\x2\x7AB\x7AC\x3\x2\x2\x2\x7AC\x7AD\x3\x2\x2\x2\x7AD\x7AE\a\n"+ - "\x2\x2\x7AE\x7B0\x5\xF8}\x2\x7AF\x7B1\x5\x10E\x88\x2\x7B0\x7AF\x3\x2\x2"+ - "\x2\x7B0\x7B1\x3\x2\x2\x2\x7B1\x7BF\x3\x2\x2\x2\x7B2\x7B4\a\xEF\x2\x2"+ - "\x7B3\x7B2\x3\x2\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B5\x3\x2\x2\x2\x7B5"+ - "\x7B7\a\xC0\x2\x2\x7B6\x7B8\a\xEF\x2\x2\x7B7\x7B6\x3\x2\x2\x2\x7B7\x7B8"+ - "\x3\x2\x2\x2\x7B8\x7B9\x3\x2\x2\x2\x7B9\x7BB\x5\xE8u\x2\x7BA\x7BC\a\xEF"+ - "\x2\x2\x7BB\x7BA\x3\x2\x2\x2\x7BB\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2"+ - "\x2\x7BD\x7BE\a\xC7\x2\x2\x7BE\x7C0\x3\x2\x2\x2\x7BF\x7B3\x3\x2\x2\x2"+ - "\x7BF\x7C0\x3\x2\x2\x2\x7C0\x7CA\x3\x2\x2\x2\x7C1\x7C3\a\xEF\x2\x2\x7C2"+ - "\x7C1\x3\x2\x2\x2\x7C2\x7C3\x3\x2\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C5"+ - "\a\xC0\x2\x2\x7C5\x7C6\x5\xF4{\x2\x7C6\x7C7\a\xC7\x2\x2\x7C7\x7C9\x3\x2"+ - "\x2\x2\x7C8\x7C2\x3\x2\x2\x2\x7C9\x7CC\x3\x2\x2\x2\x7CA\x7C8\x3\x2\x2"+ - "\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB\xD5\x3\x2\x2\x2\x7CC\x7CA\x3\x2\x2\x2\x7CD"+ - "\x7D0\x5\xD8m\x2\x7CE\x7D0\x5\xDAn\x2\x7CF\x7CD\x3\x2\x2\x2\x7CF\x7CE"+ - "\x3\x2\x2\x2\x7D0\xD7\x3\x2\x2\x2\x7D1\x7D3\x5\xDCo\x2\x7D2\x7D1\x3\x2"+ - "\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\x7D5\a\n\x2\x2"+ - "\x7D5\x7D7\x5\xF8}\x2\x7D6\x7D8\x5\x10E\x88\x2\x7D7\x7D6\x3\x2\x2\x2\x7D7"+ - "\x7D8\x3\x2\x2\x2\x7D8\x7DB\x3\x2\x2\x2\x7D9\x7DA\a\xEF\x2\x2\x7DA\x7DC"+ - "\x5\xE8u\x2\x7DB\x7D9\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\x7E1\x3\x2"+ - "\x2\x2\x7DD\x7DF\a\xEF\x2\x2\x7DE\x7DD\x3\x2\x2\x2\x7DE\x7DF\x3\x2\x2"+ - "\x2\x7DF\x7E0\x3\x2\x2\x2\x7E0\x7E2\x5\xECw\x2\x7E1\x7DE\x3\x2\x2\x2\x7E1"+ - "\x7E2\x3\x2\x2\x2\x7E2\x7EC\x3\x2\x2\x2\x7E3\x7E5\a\xEF\x2\x2\x7E4\x7E3"+ - "\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7E7\a\xC0"+ - "\x2\x2\x7E7\x7E8\x5\xF4{\x2\x7E8\x7E9\a\xC7\x2\x2\x7E9\x7EB\x3\x2\x2\x2"+ - "\x7EA\x7E4\x3\x2\x2\x2\x7EB\x7EE\x3\x2\x2\x2\x7EC\x7EA\x3\x2\x2\x2\x7EC"+ - "\x7ED\x3\x2\x2\x2\x7ED\xD9\x3\x2\x2\x2\x7EE\x7EC\x3\x2\x2\x2\x7EF\x7F2"+ - "\x5\xFE\x80\x2\x7F0\x7F1\a\xEF\x2\x2\x7F1\x7F3\x5\xE8u\x2\x7F2\x7F0\x3"+ - "\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7FD\x3\x2\x2\x2\x7F4\x7F6\a\xEF"+ - "\x2\x2\x7F5\x7F4\x3\x2\x2\x2\x7F5\x7F6\x3\x2\x2\x2\x7F6\x7F7\x3\x2\x2"+ - "\x2\x7F7\x7F8\a\xC0\x2\x2\x7F8\x7F9\x5\xF4{\x2\x7F9\x7FA\a\xC7\x2\x2\x7FA"+ - "\x7FC\x3\x2\x2\x2\x7FB\x7F5\x3\x2\x2\x2\x7FC\x7FF\x3\x2\x2\x2\x7FD\x7FB"+ - "\x3\x2\x2\x2\x7FD\x7FE\x3\x2\x2\x2\x7FE\xDB\x3\x2\x2\x2\x7FF\x7FD\x3\x2"+ - "\x2\x2\x800\x805\x5\xE2r\x2\x801\x805\x5\xDEp\x2\x802\x805\x5\xE0q\x2"+ - "\x803\x805\x5\xE6t\x2\x804\x800\x3\x2\x2\x2\x804\x801\x3\x2\x2\x2\x804"+ - "\x802\x3\x2\x2\x2\x804\x803\x3\x2\x2\x2\x805\xDD\x3\x2\x2\x2\x806\x808"+ - "\x5\xF8}\x2\x807\x809\x5\x10E\x88\x2\x808\x807\x3\x2\x2\x2\x808\x809\x3"+ - "\x2\x2\x2\x809\x80E\x3\x2\x2\x2\x80A\x80C\a\xEF\x2\x2\x80B\x80A\x3\x2"+ - "\x2\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80D\x3\x2\x2\x2\x80D\x80F\x5\xECw\x2"+ - "\x80E\x80B\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x819\x3\x2\x2\x2\x810"+ - "\x812\a\xEF\x2\x2\x811\x810\x3\x2\x2\x2\x811\x812\x3\x2\x2\x2\x812\x813"+ - "\x3\x2\x2\x2\x813\x814\a\xC0\x2\x2\x814\x815\x5\xF4{\x2\x815\x816\a\xC7"+ - "\x2\x2\x816\x818\x3\x2\x2\x2\x817\x811\x3\x2\x2\x2\x818\x81B\x3\x2\x2"+ - "\x2\x819\x817\x3\x2\x2\x2\x819\x81A\x3\x2\x2\x2\x81A\xDF\x3\x2\x2\x2\x81B"+ - "\x819\x3\x2\x2\x2\x81C\x81F\x5\xF8}\x2\x81D\x81F\x5\xFC\x7F\x2\x81E\x81C"+ - "\x3\x2\x2\x2\x81E\x81D\x3\x2\x2\x2\x81F\x821\x3\x2\x2\x2\x820\x822\x5"+ - "\x10E\x88\x2\x821\x820\x3\x2\x2\x2\x821\x822\x3\x2\x2\x2\x822\x824\x3"+ - "\x2\x2\x2\x823\x825\a\xEF\x2\x2\x824\x823\x3\x2\x2\x2\x824\x825\x3\x2"+ - "\x2\x2\x825\x826\x3\x2\x2\x2\x826\x828\a\xC0\x2\x2\x827\x829\a\xEF\x2"+ - "\x2\x828\x827\x3\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x82E\x3\x2\x2\x2"+ - "\x82A\x82C\x5\xE8u\x2\x82B\x82D\a\xEF\x2\x2\x82C\x82B\x3\x2\x2\x2\x82C"+ - "\x82D\x3\x2\x2\x2\x82D\x82F\x3\x2\x2\x2\x82E\x82A\x3\x2\x2\x2\x82E\x82F"+ - "\x3\x2\x2\x2\x82F\x830\x3\x2\x2\x2\x830\x835\a\xC7\x2\x2\x831\x833\a\xEF"+ - "\x2\x2\x832\x831\x3\x2\x2\x2\x832\x833\x3\x2\x2\x2\x833\x834\x3\x2\x2"+ - "\x2\x834\x836\x5\xECw\x2\x835\x832\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836"+ - "\x840\x3\x2\x2\x2\x837\x839\a\xEF\x2\x2\x838\x837\x3\x2\x2\x2\x838\x839"+ - "\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83B\a\xC0\x2\x2\x83B\x83C\x5"+ - "\xF4{\x2\x83C\x83D\a\xC7\x2\x2\x83D\x83F\x3\x2\x2\x2\x83E\x838\x3\x2\x2"+ - "\x2\x83F\x842\x3\x2\x2\x2\x840\x83E\x3\x2\x2\x2\x840\x841\x3\x2\x2\x2"+ - "\x841\xE1\x3\x2\x2\x2\x842\x840\x3\x2\x2\x2\x843\x846\x5\xDEp\x2\x844"+ - "\x846\x5\xE0q\x2\x845\x843\x3\x2\x2\x2\x845\x844\x3\x2\x2\x2\x845\x846"+ - "\x3\x2\x2\x2\x846\x84B\x3\x2\x2\x2\x847\x849\x5\xE4s\x2\x848\x84A\a\xEF"+ - "\x2\x2\x849\x848\x3\x2\x2\x2\x849\x84A\x3\x2\x2\x2\x84A\x84C\x3\x2\x2"+ - "\x2\x84B\x847\x3\x2\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84B\x3\x2\x2\x2"+ - "\x84D\x84E\x3\x2\x2\x2\x84E\x853\x3\x2\x2\x2\x84F\x851\a\xEF\x2\x2\x850"+ - "\x84F\x3\x2\x2\x2\x850\x851\x3\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x854"+ - "\x5\xECw\x2\x853\x850\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\x85E\x3\x2"+ - "\x2\x2\x855\x857\a\xEF\x2\x2\x856\x855\x3\x2\x2\x2\x856\x857\x3\x2\x2"+ - "\x2\x857\x858\x3\x2\x2\x2\x858\x859\a\xC0\x2\x2\x859\x85A\x5\xF4{\x2\x85A"+ - "\x85B\a\xC7\x2\x2\x85B\x85D\x3\x2\x2\x2\x85C\x856\x3\x2\x2\x2\x85D\x860"+ - "\x3\x2\x2\x2\x85E\x85C\x3\x2\x2\x2\x85E\x85F\x3\x2\x2\x2\x85F\xE3\x3\x2"+ - "\x2\x2\x860\x85E\x3\x2\x2\x2\x861\x863\t\xF\x2\x2\x862\x864\a\xEF\x2\x2"+ - "\x863\x862\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x867\x3\x2\x2\x2\x865"+ - "\x868\x5\xDEp\x2\x866\x868\x5\xE0q\x2\x867\x865\x3\x2\x2\x2\x867\x866"+ - "\x3\x2\x2\x2\x868\xE5\x3\x2\x2\x2\x869\x86B\a\xEF\x2\x2\x86A\x869\x3\x2"+ - "\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86C\x3\x2\x2\x2\x86C\x86D\x5\xECw\x2"+ - "\x86D\xE7\x3\x2\x2\x2\x86E\x870\x5\xEAv\x2\x86F\x86E\x3\x2\x2\x2\x86F"+ - "\x870\x3\x2\x2\x2\x870\x872\x3\x2\x2\x2\x871\x873\a\xEF\x2\x2\x872\x871"+ - "\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2\x873\x874\x3\x2\x2\x2\x874\x876\t\n"+ - "\x2\x2\x875\x877\a\xEF\x2\x2\x876\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2"+ - "\x2\x877\x879\x3\x2\x2\x2\x878\x86F\x3\x2\x2\x2\x879\x87C\x3\x2\x2\x2"+ - "\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87D\x3\x2\x2\x2\x87C"+ - "\x87A\x3\x2\x2\x2\x87D\x88A\x5\xEAv\x2\x87E\x880\a\xEF\x2\x2\x87F\x87E"+ - "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2\x881\x883\t\n"+ - "\x2\x2\x882\x884\a\xEF\x2\x2\x883\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2"+ - "\x2\x884\x886\x3\x2\x2\x2\x885\x887\x5\xEAv\x2\x886\x885\x3\x2\x2\x2\x886"+ - "\x887\x3\x2\x2\x2\x887\x889\x3\x2\x2\x2\x888\x87F\x3\x2\x2\x2\x889\x88C"+ - "\x3\x2\x2\x2\x88A\x888\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\xE9\x3\x2"+ - "\x2\x2\x88C\x88A\x3\x2\x2\x2\x88D\x88F\a\xC0\x2\x2\x88E\x88D\x3\x2\x2"+ - "\x2\x88E\x88F\x3\x2\x2\x2\x88F\x892\x3\x2\x2\x2\x890\x891\t\x10\x2\x2"+ - "\x891\x893\a\xEF\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893"+ - "\x895\x3\x2\x2\x2\x894\x896\a\xC7\x2\x2\x895\x894\x3\x2\x2\x2\x895\x896"+ - "\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\x898\x5\xBE`\x2\x898\xEB\x3\x2"+ - "\x2\x2\x899\x89B\a\x4\x2\x2\x89A\x89C\a\xEF\x2\x2\x89B\x89A\x3\x2\x2\x2"+ - "\x89B\x89C\x3\x2\x2\x2\x89C\x89D\x3\x2\x2\x2\x89D\x89F\x5\xF8}\x2\x89E"+ - "\x8A0\x5\x10E\x88\x2\x89F\x89E\x3\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0"+ - "\xED\x3\x2\x2\x2\x8A1\x8B3\a\xC0\x2\x2\x8A2\x8A4\a\xEF\x2\x2\x8A3\x8A2"+ - "\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8B0\x5"+ - "\xF0y\x2\x8A6\x8A8\a\xEF\x2\x2\x8A7\x8A6\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2"+ - "\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AB\a\t\x2\x2\x8AA\x8AC\a\xEF\x2\x2\x8AB"+ - "\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AF"+ - "\x5\xF0y\x2\x8AE\x8A7\x3\x2\x2\x2\x8AF\x8B2\x3\x2\x2\x2\x8B0\x8AE\x3\x2"+ - "\x2\x2\x8B0\x8B1\x3\x2\x2\x2\x8B1\x8B4\x3\x2\x2\x2\x8B2\x8B0\x3\x2\x2"+ - "\x2\x8B3\x8A3\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B6\x3\x2\x2\x2"+ - "\x8B5\x8B7\a\xEF\x2\x2\x8B6\x8B5\x3\x2\x2\x2\x8B6\x8B7\x3\x2\x2\x2\x8B7"+ - "\x8B8\x3\x2\x2\x2\x8B8\x8B9\a\xC7\x2\x2\x8B9\xEF\x3\x2\x2\x2\x8BA\x8BB"+ - "\ax\x2\x2\x8BB\x8BD\a\xEF\x2\x2\x8BC\x8BA\x3\x2\x2\x2\x8BC\x8BD\x3\x2"+ - "\x2\x2\x8BD\x8C0\x3\x2\x2\x2\x8BE\x8BF\t\x11\x2\x2\x8BF\x8C1\a\xEF\x2"+ - "\x2\x8C0\x8BE\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C4\x3\x2\x2\x2"+ - "\x8C2\x8C3\a\x7F\x2\x2\x8C3\x8C5\a\xEF\x2\x2\x8C4\x8C2\x3\x2\x2\x2\x8C4"+ - "\x8C5\x3\x2\x2\x2\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C8\x5\xF8}\x2\x8C7\x8C9"+ - "\x5\x10E\x88\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9\x8D2"+ - "\x3\x2\x2\x2\x8CA\x8CC\a\xEF\x2\x2\x8CB\x8CA\x3\x2\x2\x2\x8CB\x8CC\x3"+ - "\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\a\xC0\x2\x2\x8CE\x8D0\a\xEF"+ - "\x2\x2\x8CF\x8CE\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2"+ - "\x2\x8D1\x8D3\a\xC7\x2\x2\x8D2\x8CB\x3\x2\x2\x2\x8D2\x8D3\x3\x2\x2\x2"+ - "\x8D3\x8D8\x3\x2\x2\x2\x8D4\x8D6\a\xEF\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D5"+ - "\x8D6\x3\x2\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7\x8D9\x5\xFA~\x2\x8D8\x8D5"+ - "\x3\x2\x2\x2\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8DE\x3\x2\x2\x2\x8DA\x8DC\a\xEF"+ - "\x2\x2\x8DB\x8DA\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DD\x3\x2\x2"+ - "\x2\x8DD\x8DF\x5\xF2z\x2\x8DE\x8DB\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF"+ - "\xF1\x3\x2\x2\x2\x8E0\x8E2\a\xBC\x2\x2\x8E1\x8E3\a\xEF\x2\x2\x8E2\x8E1"+ - "\x3\x2\x2\x2\x8E2\x8E3\x3\x2\x2\x2\x8E3\x8E4\x3\x2\x2\x2\x8E4\x8E5\x5"+ - "\xBE`\x2\x8E5\xF3\x3\x2\x2\x2\x8E6\x8F1\x5\xF6|\x2\x8E7\x8E9\a\xEF\x2"+ - "\x2\x8E8\x8E7\x3\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2"+ - "\x8EA\x8EC\a\t\x2\x2\x8EB\x8ED\a\xEF\x2\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC"+ - "\x8ED\x3\x2\x2\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\x8F0\x5\xF6|\x2\x8EF\x8E8"+ - "\x3\x2\x2\x2\x8F0\x8F3\x3\x2\x2\x2\x8F1\x8EF\x3\x2\x2\x2\x8F1\x8F2\x3"+ - "\x2\x2\x2\x8F2\xF5\x3\x2\x2\x2\x8F3\x8F1\x3\x2\x2\x2\x8F4\x8F5\x5\xBE"+ - "`\x2\x8F5\x8F6\a\xEF\x2\x2\x8F6\x8F7\a\xA8\x2\x2\x8F7\x8F8\a\xEF\x2\x2"+ - "\x8F8\x8FA\x3\x2\x2\x2\x8F9\x8F4\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA"+ - "\x8FB\x3\x2\x2\x2\x8FB\x8FC\x5\xBE`\x2\x8FC\xF7\x3\x2\x2\x2\x8FD\x900"+ - "\a\xF0\x2\x2\x8FE\x900\x5\x112\x8A\x2\x8FF\x8FD\x3\x2\x2\x2\x8FF\x8FE"+ - "\x3\x2\x2\x2\x900\x901\x3\x2\x2\x2\x901\x8FF\x3\x2\x2\x2\x901\x902\x3"+ - "\x2\x2\x2\x902\xF9\x3\x2\x2\x2\x903\x905\a\x12\x2\x2\x904\x906\a\xEF\x2"+ - "\x2\x905\x904\x3\x2\x2\x2\x905\x906\x3\x2\x2\x2\x906\x909\x3\x2\x2\x2"+ - "\x907\x908\ap\x2\x2\x908\x90A\a\xEF\x2\x2\x909\x907\x3\x2\x2\x2\x909\x90A"+ - "\x3\x2\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x910\x5\x10C\x87\x2\x90C\x90E"+ - "\a\xEF\x2\x2\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3"+ - "\x2\x2\x2\x90F\x911\x5\x104\x83\x2\x910\x90D\x3\x2\x2\x2\x910\x911\x3"+ - "\x2\x2\x2\x911\xFB\x3\x2\x2\x2\x912\x913\t\x12\x2\x2\x913\xFD\x3\x2\x2"+ - "\x2\x914\x919\a\xF0\x2\x2\x915\x918\x5\x112\x8A\x2\x916\x918\a\xF0\x2"+ - "\x2\x917\x915\x3\x2\x2\x2\x917\x916\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2"+ - "\x919\x917\x3\x2\x2\x2\x919\x91A\x3\x2\x2\x2\x91A\x924\x3\x2\x2\x2\x91B"+ - "\x919\x3\x2\x2\x2\x91C\x91F\x5\x112\x8A\x2\x91D\x920\x5\x112\x8A\x2\x91E"+ - "\x920\a\xF0\x2\x2\x91F\x91D\x3\x2\x2\x2\x91F\x91E\x3\x2\x2\x2\x920\x921"+ - "\x3\x2\x2\x2\x921\x91F\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x924\x3"+ - "\x2\x2\x2\x923\x914\x3\x2\x2\x2\x923\x91C\x3\x2\x2\x2\x924\xFF\x3\x2\x2"+ - "\x2\x925\x926\t\xE\x2\x2\x926\x101\x3\x2\x2\x2\x927\x92C\x5\xF8}\x2\x928"+ - "\x929\t\xF\x2\x2\x929\x92B\x5\xF8}\x2\x92A\x928\x3\x2\x2\x2\x92B\x92E"+ - "\x3\x2\x2\x2\x92C\x92A\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2\x92D\x103\x3"+ - "\x2\x2\x2\x92E\x92C\x3\x2\x2\x2\x92F\x931\a\xC3\x2\x2\x930\x932\a\xEF"+ - "\x2\x2\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x935\x3\x2\x2"+ - "\x2\x933\x936\a\xCE\x2\x2\x934\x936\x5\xF8}\x2\x935\x933\x3\x2\x2\x2\x935"+ - "\x934\x3\x2\x2\x2\x936\x105\x3\x2\x2\x2\x937\x940\x5\xFE\x80\x2\x938\x93A"+ - "\a\xEF\x2\x2\x939\x938\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x3"+ - "\x2\x2\x2\x93B\x93D\a\xC2\x2\x2\x93C\x93E\a\xEF\x2\x2\x93D\x93C\x3\x2"+ - "\x2\x2\x93D\x93E\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x941\x5\xFE\x80"+ - "\x2\x940\x939\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941\x107\x3\x2\x2\x2"+ - "\x942\x943\x5\xF8}\x2\x943\x944\a\xED\x2\x2\x944\x109\x3\x2\x2\x2\x945"+ - "\x946\t\x13\x2\x2\x946\x10B\x3\x2\x2\x2\x947\x94A\x5\xFC\x7F\x2\x948\x94A"+ - "\x5\x102\x82\x2\x949\x947\x3\x2\x2\x2\x949\x948\x3\x2\x2\x2\x94A\x953"+ - "\x3\x2\x2\x2\x94B\x94D\a\xEF\x2\x2\x94C\x94B\x3\x2\x2\x2\x94C\x94D\x3"+ - "\x2\x2\x2\x94D\x94E\x3\x2\x2\x2\x94E\x950\a\xC0\x2\x2\x94F\x951\a\xEF"+ - "\x2\x2\x950\x94F\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x3\x2\x2"+ - "\x2\x952\x954\a\xC7\x2\x2\x953\x94C\x3\x2\x2\x2\x953\x954\x3\x2\x2\x2"+ - "\x954\x10D\x3\x2\x2\x2\x955\x956\t\x14\x2\x2\x956\x10F\x3\x2\x2\x2\x957"+ - "\x958\t\x15\x2\x2\x958\x111\x3\x2\x2\x2\x959\x95A\t\x16\x2\x2\x95A\x113"+ - "\x3\x2\x2\x2\x95B\x95C\a\xEA\x2\x2\x95C\x115\x3\x2\x2\x2\x95D\x95E\a\xEB"+ - "\x2\x2\x95E\x117\x3\x2\x2\x2\x95F\x961\a\xEF\x2\x2\x960\x95F\x3\x2\x2"+ - "\x2\x960\x961\x3\x2\x2\x2\x961\x965\x3\x2\x2\x2\x962\x966\a\xE9\x2\x2"+ - "\x963\x966\x5\x116\x8C\x2\x964\x966\x5\x114\x8B\x2\x965\x962\x3\x2\x2"+ - "\x2\x965\x963\x3\x2\x2\x2\x965\x964\x3\x2\x2\x2\x966\x968\x3\x2\x2\x2"+ - "\x967\x969\a\xEF\x2\x2\x968\x967\x3\x2\x2\x2\x968\x969\x3\x2\x2\x2\x969"+ - "\x119\x3\x2\x2\x2\x96A\x973\x5\x118\x8D\x2\x96B\x96D\a\xEF\x2\x2\x96C"+ - "\x96B\x3\x2\x2\x2\x96C\x96D\x3\x2\x2\x2\x96D\x96E\x3\x2\x2\x2\x96E\x970"+ - "\a\xED\x2\x2\x96F\x971\a\xEF\x2\x2\x970\x96F\x3\x2\x2\x2\x970\x971\x3"+ - "\x2\x2\x2\x971\x973\x3\x2\x2\x2\x972\x96A\x3\x2\x2\x2\x972\x96C\x3\x2"+ - "\x2\x2\x973\x976\x3\x2\x2\x2\x974\x972\x3\x2\x2\x2\x974\x975\x3\x2\x2"+ - "\x2\x975\x11B\x3\x2\x2\x2\x976\x974\x3\x2\x2\x2\x19B\x120\x126\x129\x12D"+ - "\x131\x135\x139\x146\x14C\x150\x15A\x162\x16F\x17A\x182\x18C\x192\x196"+ - "\x19A\x19E\x1A3\x1AC\x1F3\x1F9\x1FD\x200\x210\x214\x219\x21C\x221\x227"+ - "\x22B\x230\x235\x239\x23C\x240\x246\x24A\x251\x257\x25B\x25E\x263\x26D"+ - "\x270\x273\x277\x27D\x281\x286\x28D\x291\x295\x299\x29C\x2A1\x2AC\x2B9"+ - "\x2C0\x2C9\x2D0\x2D4\x2D7\x2E6\x2EC\x2F6\x2FA\x304\x30C\x311\x317\x31B"+ - "\x31E\x322\x32D\x331\x336\x33B\x33F\x343\x347\x34A\x34D\x350\x353\x357"+ - "\x35F\x363\x366\x369\x36D\x384\x38A\x38E\x392\x39B\x3A6\x3AB\x3B5\x3B9"+ - "\x3BE\x3C6\x3CA\x3CE\x3D6\x3DA\x3E6\x3EA\x3F1\x3F3\x3F9\x3FD\x403\x407"+ - "\x40B\x423\x42D\x431\x436\x441\x445\x44A\x458\x45C\x465\x469\x46C\x470"+ - "\x474\x477\x47B\x47F\x482\x486\x489\x48D\x48F\x494\x498\x49C\x4A0\x4A2"+ - "\x4A8\x4AC\x4AF\x4B4\x4B8\x4BE\x4C1\x4C4\x4C8\x4CC\x4D3\x4D7\x4DD\x4E0"+ - "\x4E4\x4EB\x4EF\x4F5\x4F8\x4FC\x504\x508\x50B\x50E\x512\x51A\x51E\x522"+ - "\x524\x527\x52C\x532\x536\x53A\x53F\x544\x548\x54C\x551\x559\x55B\x567"+ - "\x56B\x573\x577\x57F\x583\x587\x58B\x58F\x593\x59B\x59F\x5AC\x5B3\x5B7"+ - "\x5C2\x5C9\x5CE\x5D2\x5D7\x5DA\x5E0\x5E4\x5E7\x5ED\x5F1\x5F9\x5FD\x606"+ - "\x60A\x60E\x612\x615\x619\x61F\x623\x62A\x633\x63A\x63E\x641\x644\x647"+ - "\x64B\x656\x660\x664\x66B\x66D\x672\x677\x67C\x680\x686\x68B\x692\x696"+ - "\x69A\x69F\x6A6\x6AA\x6AE\x6B3\x6B7\x6BC\x6C0\x6C5\x6C9\x6CE\x6D2\x6D7"+ - "\x6DB\x6E0\x6E4\x6E9\x6ED\x6F2\x6F6\x6FB\x6FF\x704\x708\x70D\x711\x714"+ - "\x716\x71C\x721\x727\x72B\x730\x735\x739\x73D\x73F\x743\x745\x748\x74C"+ - "\x753\x75B\x75F\x769\x76D\x775\x779\x77C\x77F\x785\x78B\x78E\x792\x796"+ - "\x79A\x79D\x7A5\x7AB\x7B0\x7B3\x7B7\x7BB\x7BF\x7C2\x7CA\x7CF\x7D2\x7D7"+ - "\x7DB\x7DE\x7E1\x7E4\x7EC\x7F2\x7F5\x7FD\x804\x808\x80B\x80E\x811\x819"+ - "\x81E\x821\x824\x828\x82C\x82E\x832\x835\x838\x840\x845\x849\x84D\x850"+ - "\x853\x856\x85E\x863\x867\x86A\x86F\x872\x876\x87A\x87F\x883\x886\x88A"+ - "\x88E\x892\x895\x89B\x89F\x8A3\x8A7\x8AB\x8B0\x8B3\x8B6\x8BC\x8C0\x8C4"+ - "\x8C8\x8CB\x8CF\x8D2\x8D5\x8D8\x8DB\x8DE\x8E2\x8E8\x8EC\x8F1\x8F9\x8FF"+ - "\x901\x905\x909\x90D\x910\x917\x919\x91F\x921\x923\x92C\x931\x935\x939"+ - "\x93D\x940\x949\x94C\x950\x953\x960\x965\x968\x96C\x970\x972\x974"; + "\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92\t\x92"+ + "\x4\x93\t\x93\x4\x94\t\x94\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x12D\n\x3\x3"+ + "\x3\x3\x3\x3\x3\x3\x3\x5\x3\x133\n\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3\x3"+ + "\x5\x3\x13A\n\x3\x3\x3\x3\x3\x5\x3\x13E\n\x3\x3\x3\x3\x3\x5\x3\x142\n"+ + "\x3\x3\x3\x3\x3\x5\x3\x146\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3"+ + "\x5\x3\x5\x3\x5\x6\x5\x151\n\x5\r\x5\xE\x5\x152\x3\x5\x3\x5\x3\x6\x3\x6"+ + "\x5\x6\x159\n\x6\x3\x6\x3\x6\x5\x6\x15D\n\x6\x3\x6\x3\x6\x3\x6\x3\a\x3"+ + "\a\x3\a\x6\a\x165\n\a\r\a\xE\a\x166\x3\b\x3\b\x3\b\x3\b\a\b\x16D\n\b\f"+ + "\b\xE\b\x170\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5"+ + "\t\x17C\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x187\n\n"+ + "\x3\v\x3\v\x5\v\x18B\n\v\x3\f\x3\f\x3\f\x3\f\a\f\x191\n\f\f\f\xE\f\x194"+ + "\v\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\r\x3\r\x5\r\x19E\n\r\x3\xE\x3\xE"+ + "\x3\xE\x3\xE\x5\xE\x1A4\n\xE\x3\xE\x3\xE\x5\xE\x1A8\n\xE\x3\xE\x3\xE\x5"+ + "\xE\x1AC\n\xE\x3\xE\x3\xE\x5\xE\x1B0\n\xE\x3\xE\a\xE\x1B3\n\xE\f\xE\xE"+ + "\xE\x1B6\v\xE\x3\xF\x3\xF\x3\xF\x3\xF\a\xF\x1BC\n\xF\f\xF\xE\xF\x1BF\v"+ + "\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x5\x10"+ + "\x206\n\x10\x3\x11\x3\x11\x3\x11\x3\x11\x5\x11\x20C\n\x11\x3\x11\x3\x11"+ + "\x5\x11\x210\n\x11\x3\x11\x5\x11\x213\n\x11\x3\x12\x3\x12\x3\x13\x3\x13"+ + "\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15"+ + "\x5\x15\x223\n\x15\x3\x15\x3\x15\x5\x15\x227\n\x15\x3\x15\a\x15\x22A\n"+ + "\x15\f\x15\xE\x15\x22D\v\x15\x5\x15\x22F\n\x15\x3\x16\x3\x16\x3\x16\x5"+ + "\x16\x234\n\x16\x3\x16\x3\x16\x3\x16\x3\x16\x5\x16\x23A\n\x16\x3\x16\x3"+ + "\x16\x5\x16\x23E\n\x16\x3\x16\a\x16\x241\n\x16\f\x16\xE\x16\x244\v\x16"+ + "\x3\x17\x3\x17\x5\x17\x248\n\x17\x3\x17\x3\x17\x5\x17\x24C\n\x17\x3\x17"+ + "\x5\x17\x24F\n\x17\x3\x17\x3\x17\x5\x17\x253\n\x17\x3\x17\x3\x17\x3\x18"+ + "\x3\x18\x5\x18\x259\n\x18\x3\x18\x3\x18\x5\x18\x25D\n\x18\x3\x18\x3\x18"+ + "\x3\x19\x3\x19\x3\x19\x5\x19\x264\n\x19\x3\x19\x3\x19\x3\x19\x3\x19\x5"+ + "\x19\x26A\n\x19\x3\x19\x3\x19\x5\x19\x26E\n\x19\x3\x19\x5\x19\x271\n\x19"+ + "\x3\x19\x3\x19\x3\x19\x5\x19\x276\n\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3"+ + "\x19\x3\x19\x3\x19\x3\x19\x5\x19\x280\n\x19\x3\x19\x5\x19\x283\n\x19\x3"+ + "\x19\x5\x19\x286\n\x19\x3\x19\x3\x19\x5\x19\x28A\n\x19\x3\x1A\x3\x1A\x3"+ + "\x1A\x3\x1A\x5\x1A\x290\n\x1A\x3\x1A\x3\x1A\x5\x1A\x294\n\x1A\x3\x1A\a"+ + "\x1A\x297\n\x1A\f\x1A\xE\x1A\x29A\v\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5"+ + "\x1B\x2A0\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2A4\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2A8"+ + "\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2AC\n\x1B\x3\x1B\x5\x1B\x2AF\n\x1B\x3\x1C"+ + "\x3\x1C\x3\x1C\x5\x1C\x2B4\n\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3"+ + "\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2BF\n\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C"+ + "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2CC\n\x1C\x3"+ + "\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x5\x1E\x2D3\n\x1E\x3\x1E\x3\x1E\x3\x1E"+ + "\x3\x1E\x3\x1E\a\x1E\x2DA\n\x1E\f\x1E\xE\x1E\x2DD\v\x1E\x3\x1E\x3\x1E"+ + "\x3\x1F\x3\x1F\x5\x1F\x2E3\n\x1F\x3\x1F\x3\x1F\x5\x1F\x2E7\n\x1F\x3\x1F"+ + "\x5\x1F\x2EA\n\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3\""+ + "\x3\"\x3\"\x5\"\x2F9\n\"\x3\"\x3\"\x3\"\x3\"\x5\"\x2FF\n\"\x3\"\x3\"\x3"+ + "#\x3#\x3$\x3$\x3$\x3$\x5$\x309\n$\x3$\x3$\x5$\x30D\n$\x3$\x3$\x3%\x3%"+ + "\x3%\x3%\x3%\x3%\x5%\x317\n%\x3%\x3%\x3%\x3%\x3%\x3%\x5%\x31F\n%\x3%\x3"+ + "%\x3%\x5%\x324\n%\x3&\x3&\x3&\x3&\x5&\x32A\n&\x3&\x3&\x5&\x32E\n&\x3&"+ + "\x5&\x331\n&\x3&\x3&\x5&\x335\n&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x5"+ + "&\x340\n&\x3&\x3&\x5&\x344\n&\x3&\x3&\x3&\x5&\x349\n&\x3\'\x3\'\x3\'\x5"+ + "\'\x34E\n\'\x3\'\x3\'\x5\'\x352\n\'\x3\'\x3\'\x5\'\x356\n\'\x3\'\x3\'"+ + "\x5\'\x35A\n\'\x3\'\x5\'\x35D\n\'\x3\'\x5\'\x360\n\'\x3\'\x5\'\x363\n"+ + "\'\x3\'\x5\'\x366\n\'\x3\'\x3\'\x5\'\x36A\n\'\x3\'\x3\'\x3(\x3(\x3(\x3"+ + "(\x5(\x372\n(\x3(\x3(\x5(\x376\n(\x3(\x5(\x379\n(\x3(\x5(\x37C\n(\x3("+ + "\x3(\x5(\x380\n(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3"+ + "+\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x5+\x397\n+\x3+\x3+\a+\x39B\n+\f+\xE+\x39E"+ + "\v+\x3+\x5+\x3A1\n+\x3+\x3+\x5+\x3A5\n+\x3,\x3,\x3,\x3,\x3,\x3,\x3,\x5"+ + ",\x3AE\n,\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3B9\n.\x3/\x3/\x3/"+ + "\x5/\x3BE\n/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3\x31\x3\x31\x3\x31\x5"+ + "\x31\x3C8\n\x31\x3\x31\x3\x31\x5\x31\x3CC\n\x31\x3\x31\x6\x31\x3CF\n\x31"+ + "\r\x31\xE\x31\x3D0\x3\x32\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x5\x33\x3D9"+ + "\n\x33\x3\x33\x3\x33\x5\x33\x3DD\n\x33\x3\x33\x3\x33\x5\x33\x3E1\n\x33"+ + "\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x3E9\n\x34\x3\x34\x3"+ + "\x34\x5\x34\x3ED\n\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3\x35\x3\x35\x3\x36"+ + "\x3\x36\x3\x36\x3\x36\x5\x36\x3F9\n\x36\x3\x36\x3\x36\x5\x36\x3FD\n\x36"+ + "\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x404\n\x36\x5\x36\x406\n\x36"+ + "\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x40C\n\x37\x3\x37\x3\x37\x5\x37\x410"+ + "\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x5\x38\x416\n\x38\x3\x38\x3\x38\x5"+ + "\x38\x41A\n\x38\x3\x38\x3\x38\x5\x38\x41E\n\x38\x3\x38\x3\x38\x3\x39\x3"+ + "\x39\a\x39\x424\n\x39\f\x39\xE\x39\x427\v\x39\x3\x39\x5\x39\x42A\n\x39"+ + "\x3\x39\x3\x39\x3:\x3:\x5:\x430\n:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\a:\x439"+ + "\n:\f:\xE:\x43C\v:\x3;\x3;\x5;\x440\n;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\a;"+ + "\x449\n;\f;\xE;\x44C\v;\x3<\x3<\x3<\x3<\x3<\a<\x453\n<\f<\xE<\x456\v<"+ + "\x3=\x3=\x5=\x45A\n=\x3=\x3=\x5=\x45E\n=\x3=\x3=\x5=\x462\n=\x3=\x3=\x3"+ + ">\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3?\x3?\x3?\x3?\x3@\x3@\x3@\x3@\x3@\x3@"+ + "\x3@\x3@\x5@\x47A\n@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41"+ + "\x3\x41\x5\x41\x484\n\x41\x3\x41\x3\x41\x5\x41\x488\n\x41\x3\x41\a\x41"+ + "\x48B\n\x41\f\x41\xE\x41\x48E\v\x41\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42"+ + "\x3\x42\x3\x42\x3\x42\x5\x42\x498\n\x42\x3\x42\x3\x42\x5\x42\x49C\n\x42"+ + "\x3\x42\a\x42\x49F\n\x42\f\x42\xE\x42\x4A2\v\x42\x3\x43\x3\x43\x3\x43"+ + "\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x4AF\n"+ + "\x43\x3\x43\x3\x43\x5\x43\x4B3\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43"+ + "\x3\x43\x3\x43\x5\x43\x4BC\n\x43\x3\x43\x3\x43\x5\x43\x4C0\n\x43\x3\x43"+ + "\x5\x43\x4C3\n\x43\x3\x44\x3\x44\x5\x44\x4C7\n\x44\x3\x44\x3\x44\x5\x44"+ + "\x4CB\n\x44\x3\x44\x5\x44\x4CE\n\x44\a\x44\x4D0\n\x44\f\x44\xE\x44\x4D3"+ + "\v\x44\x3\x44\x5\x44\x4D6\n\x44\x3\x44\x5\x44\x4D9\n\x44\x3\x44\x3\x44"+ + "\x5\x44\x4DD\n\x44\x3\x44\x5\x44\x4E0\n\x44\x6\x44\x4E2\n\x44\r\x44\xE"+ + "\x44\x4E3\x5\x44\x4E6\n\x44\x3\x45\x3\x45\x3\x45\x5\x45\x4EB\n\x45\x3"+ + "\x45\x3\x45\x5\x45\x4EF\n\x45\x3\x45\x3\x45\x5\x45\x4F3\n\x45\x3\x45\x3"+ + "\x45\x5\x45\x4F7\n\x45\x5\x45\x4F9\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5"+ + "\x46\x4FF\n\x46\x3\x46\x3\x46\x5\x46\x503\n\x46\x3\x46\x5\x46\x506\n\x46"+ + "\x3G\x3G\x3G\x5G\x50B\nG\x3G\x3G\x5G\x50F\nG\x3G\x3G\x3G\x3G\x5G\x515"+ + "\nG\x3G\x5G\x518\nG\x3G\x5G\x51B\nG\x3G\x3G\x5G\x51F\nG\x3G\x3G\x5G\x523"+ + "\nG\x3G\x3G\x3H\x3H\x3H\x5H\x52A\nH\x3H\x3H\x5H\x52E\nH\x3H\x3H\x3H\x3"+ + "H\x5H\x534\nH\x3H\x5H\x537\nH\x3H\x3H\x5H\x53B\nH\x3H\x3H\x3I\x3I\x3I"+ + "\x5I\x542\nI\x3I\x3I\x5I\x546\nI\x3I\x3I\x3I\x3I\x5I\x54C\nI\x3I\x5I\x54F"+ + "\nI\x3I\x3I\x5I\x553\nI\x3I\x3I\x3J\x3J\x3J\x3J\x5J\x55B\nJ\x3J\x3J\x5"+ + "J\x55F\nJ\x3J\x5J\x562\nJ\x3J\x5J\x565\nJ\x3J\x3J\x5J\x569\nJ\x3J\x3J"+ + "\x3K\x3K\x3K\x3K\x5K\x571\nK\x3K\x3K\x5K\x575\nK\x3K\x3K\x5K\x579\nK\x5"+ + "K\x57B\nK\x3K\x5K\x57E\nK\x3L\x3L\x3L\x5L\x583\nL\x3M\x3M\x3M\x3M\x5M"+ + "\x589\nM\x3M\x3M\x5M\x58D\nM\x3M\x3M\x5M\x591\nM\x3M\aM\x594\nM\fM\xE"+ + "M\x597\vM\x3N\x3N\x5N\x59B\nN\x3N\x3N\x5N\x59F\nN\x3N\x3N\x5N\x5A3\nN"+ + "\x3N\x3N\x3N\x5N\x5A8\nN\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5B0\nP\x5P\x5B2"+ + "\nP\x3Q\x3Q\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3S\x5S\x5BE\nS\x3S\x3S\x5S\x5C2"+ + "\nS\x3S\x3S\x3T\x3T\x3T\x3T\x5T\x5CA\nT\x3T\x3T\x5T\x5CE\nT\x3T\x3T\x3"+ + "U\x3U\x3U\x3U\x5U\x5D6\nU\x3U\x3U\x5U\x5DA\nU\x3U\x3U\x5U\x5DE\nU\x3U"+ + "\x3U\x5U\x5E2\nU\x3U\x3U\x5U\x5E6\nU\x3U\x3U\x5U\x5EA\nU\x3U\x3U\x3V\x3"+ + "V\x3V\x3V\x5V\x5F2\nV\x3V\x3V\x5V\x5F6\nV\x3V\x3V\x3W\x3W\x3W\x3W\x3W"+ + "\x3W\x3W\aW\x601\nW\fW\xEW\x604\vW\x3W\x3W\x3X\x3X\x5X\x60A\nX\x3X\x3"+ + "X\x5X\x60E\nX\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x5X\x619\nX\x3Y\x3Y"+ + "\x3Y\x3Y\x3Y\x5Y\x620\nY\x3Z\x3Z\x3Z\x5Z\x625\nZ\x3Z\x3Z\x5Z\x629\nZ\x3"+ + "Z\aZ\x62C\nZ\fZ\xEZ\x62F\vZ\x5Z\x631\nZ\x3[\x3[\x3[\x3[\x5[\x637\n[\x3"+ + "[\x3[\x5[\x63B\n[\x3[\x5[\x63E\n[\x3\\\x3\\\x3\\\x3\\\x5\\\x644\n\\\x3"+ + "\\\x3\\\x5\\\x648\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x5]\x650\n]\x3]\x3]\x5"+ + "]\x654\n]\x3]\x3]\x3^\x3^\x3_\x3_\x3_\x5_\x65D\n_\x3_\x3_\x5_\x661\n_"+ + "\x3_\x3_\x5_\x665\n_\x3_\x3_\x5_\x669\n_\x3_\x5_\x66C\n_\x3_\x3_\x5_\x670"+ + "\n_\x3_\x3_\x3`\x3`\x5`\x676\n`\x3`\x3`\x5`\x67A\n`\x3`\x3`\x3\x61\x3"+ + "\x61\x3\x61\x5\x61\x681\n\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\a\x61"+ + "\x688\n\x61\f\x61\xE\x61\x68B\v\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62"+ + "\x691\n\x62\x3\x62\x3\x62\x5\x62\x695\n\x62\x3\x62\x5\x62\x698\n\x62\x3"+ + "\x62\x5\x62\x69B\n\x62\x3\x62\x5\x62\x69E\n\x62\x3\x62\x3\x62\x5\x62\x6A2"+ + "\n\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63"+ + "\x5\x63\x6AD\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3"+ + "\x65\x5\x65\x6B7\n\x65\x3\x65\x3\x65\x5\x65\x6BB\n\x65\x3\x65\x3\x65\x3"+ + "\x65\x3\x65\x3\x65\x5\x65\x6C2\n\x65\x5\x65\x6C4\n\x65\x3\x66\x3\x66\x3"+ + "\x66\x5\x66\x6C9\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6CE\n\x66\x3\x66\x3"+ + "\x66\x3\x66\x5\x66\x6D3\n\x66\x3\x66\x3\x66\x5\x66\x6D7\n\x66\x3\x66\x3"+ + "\x66\x3\x66\x3\x66\x5\x66\x6DD\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6E2"+ + "\n\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6E9\n\x66\x3\x66\x3"+ + "\x66\x5\x66\x6ED\n\x66\x3\x66\x3\x66\x5\x66\x6F1\n\x66\x3\x66\a\x66\x6F4"+ + "\n\x66\f\x66\xE\x66\x6F7\v\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6FD"+ + "\n\x66\x3\x66\x3\x66\x5\x66\x701\n\x66\x3\x66\x3\x66\x5\x66\x705\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x70A\n\x66\x3\x66\x3\x66\x5\x66\x70E\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x713\n\x66\x3\x66\x3\x66\x5\x66\x717\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x71C\n\x66\x3\x66\x3\x66\x5\x66\x720\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x725\n\x66\x3\x66\x3\x66\x5\x66\x729\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x72E\n\x66\x3\x66\x3\x66\x5\x66\x732\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x737\n\x66\x3\x66\x3\x66\x5\x66\x73B\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x740\n\x66\x3\x66\x3\x66\x5\x66\x744\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x749\n\x66\x3\x66\x3\x66\x5\x66\x74D\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x752\n\x66\x3\x66\x3\x66\x5\x66\x756\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x75B\n\x66\x3\x66\x3\x66\x5\x66\x75F\n\x66"+ + "\x3\x66\x3\x66\x3\x66\x5\x66\x764\n\x66\x3\x66\x3\x66\x5\x66\x768\n\x66"+ + "\x3\x66\a\x66\x76B\n\x66\f\x66\xE\x66\x76E\v\x66\x3g\x3g\x3g\x5g\x773"+ + "\ng\x3g\x3g\x3g\x5g\x778\ng\x3g\x3g\x3h\x3h\x5h\x77E\nh\x3h\x3h\x5h\x782"+ + "\nh\x3h\ah\x785\nh\fh\xEh\x788\vh\x3i\x3i\x5i\x78C\ni\x3i\x3i\x5i\x790"+ + "\ni\x3i\x3i\x5i\x794\ni\x5i\x796\ni\x3i\x3i\x5i\x79A\ni\x5i\x79C\ni\x3"+ + "i\x5i\x79F\ni\x3i\x3i\x5i\x7A3\ni\x3j\x3j\x3j\x3j\x3j\x5j\x7AA\nj\x3j"+ + "\x3j\x3k\x3k\x3k\x3k\x5k\x7B2\nk\x3k\x3k\x5k\x7B6\nk\x3k\x3k\x3l\x3l\x3"+ + "l\x3l\x3l\x3l\x5l\x7C0\nl\x3l\x3l\x5l\x7C4\nl\x3l\x3l\x3m\x3m\x3m\x3m"+ + "\x5m\x7CC\nm\x3m\x3m\x5m\x7D0\nm\x3m\x5m\x7D3\nm\x3n\x5n\x7D6\nn\x3n\x3"+ + "n\x3o\x3o\x5o\x7DC\no\x3p\x3p\x3p\x3p\x5p\x7E2\np\x3p\x5p\x7E5\np\x3p"+ + "\x3p\x5p\x7E9\np\x3p\x3p\x5p\x7ED\np\x3p\x3p\x5p\x7F1\np\x3p\x5p\x7F4"+ + "\np\x3p\x3p\x3p\x3p\ap\x7FA\np\fp\xEp\x7FD\vp\x3q\x3q\x3q\x5q\x802\nq"+ + "\x3q\x3q\x3q\x5q\x807\nq\x3q\x5q\x80A\nq\x3q\x3q\x5q\x80E\nq\x3q\x3q\x5"+ + "q\x812\nq\x3q\x3q\x5q\x816\nq\x3q\x5q\x819\nq\x3q\x3q\x3q\x3q\aq\x81F"+ + "\nq\fq\xEq\x822\vq\x3r\x3r\x5r\x826\nr\x3s\x5s\x829\ns\x3s\x3s\x3s\x5"+ + "s\x82E\ns\x3s\x3s\x5s\x832\ns\x3s\x5s\x835\ns\x3s\x5s\x838\ns\x3s\x5s"+ + "\x83B\ns\x3s\x3s\x3s\x3s\as\x841\ns\fs\xEs\x844\vs\x3t\x3t\x3t\x5t\x849"+ + "\nt\x3t\x5t\x84C\nt\x3t\x3t\x3t\x3t\at\x852\nt\ft\xEt\x855\vt\x3u\x3u"+ + "\x3u\x3u\x5u\x85B\nu\x3v\x3v\x5v\x85F\nv\x3v\x5v\x862\nv\x3v\x5v\x865"+ + "\nv\x3v\x5v\x868\nv\x3v\x3v\x3v\x3v\av\x86E\nv\fv\xEv\x871\vv\x3w\x3w"+ + "\x5w\x875\nw\x3w\x5w\x878\nw\x3w\x5w\x87B\nw\x3w\x3w\x5w\x87F\nw\x3w\x3"+ + "w\x5w\x883\nw\x5w\x885\nw\x3w\x3w\x5w\x889\nw\x3w\x5w\x88C\nw\x3w\x5w"+ + "\x88F\nw\x3w\x3w\x3w\x3w\aw\x895\nw\fw\xEw\x898\vw\x3x\x3x\x5x\x89C\n"+ + "x\x3x\x3x\x5x\x8A0\nx\x6x\x8A2\nx\rx\xEx\x8A3\x3x\x5x\x8A7\nx\x3x\x5x"+ + "\x8AA\nx\x3x\x5x\x8AD\nx\x3x\x3x\x3x\x3x\ax\x8B3\nx\fx\xEx\x8B6\vx\x3"+ + "y\x3y\x5y\x8BA\ny\x3y\x3y\x5y\x8BE\ny\x3z\x5z\x8C1\nz\x3z\x3z\x3{\x5{"+ + "\x8C6\n{\x3{\x5{\x8C9\n{\x3{\x3{\x5{\x8CD\n{\a{\x8CF\n{\f{\xE{\x8D2\v"+ + "{\x3{\x3{\x5{\x8D6\n{\x3{\x3{\x5{\x8DA\n{\x3{\x5{\x8DD\n{\a{\x8DF\n{\f"+ + "{\xE{\x8E2\v{\x3|\x5|\x8E5\n|\x3|\x3|\x5|\x8E9\n|\x3|\x5|\x8EC\n|\x3|"+ + "\x3|\x3}\x3}\x5}\x8F2\n}\x3}\x3}\x5}\x8F6\n}\x3~\x3~\x5~\x8FA\n~\x3~\x3"+ + "~\x5~\x8FE\n~\x3~\x3~\x5~\x902\n~\x3~\a~\x905\n~\f~\xE~\x908\v~\x5~\x90A"+ + "\n~\x3~\x5~\x90D\n~\x3~\x3~\x3\x7F\x3\x7F\x5\x7F\x913\n\x7F\x3\x7F\x3"+ + "\x7F\x5\x7F\x917\n\x7F\x3\x7F\x3\x7F\x5\x7F\x91B\n\x7F\x3\x7F\x3\x7F\x5"+ + "\x7F\x91F\n\x7F\x3\x7F\x5\x7F\x922\n\x7F\x3\x7F\x3\x7F\x5\x7F\x926\n\x7F"+ + "\x3\x7F\x5\x7F\x929\n\x7F\x3\x7F\x5\x7F\x92C\n\x7F\x3\x7F\x5\x7F\x92F"+ + "\n\x7F\x3\x7F\x5\x7F\x932\n\x7F\x3\x7F\x5\x7F\x935\n\x7F\x3\x80\x3\x80"+ + "\x5\x80\x939\n\x80\x3\x80\x3\x80\x3\x81\x3\x81\x5\x81\x93F\n\x81\x3\x81"+ + "\x3\x81\x5\x81\x943\n\x81\x3\x81\a\x81\x946\n\x81\f\x81\xE\x81\x949\v"+ + "\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x5\x82\x950\n\x82\x3\x82\x3\x82"+ + "\x3\x83\x3\x83\x6\x83\x956\n\x83\r\x83\xE\x83\x957\x3\x84\x3\x84\x5\x84"+ + "\x95C\n\x84\x3\x84\x3\x84\x5\x84\x960\n\x84\x3\x84\x3\x84\x5\x84\x964"+ + "\n\x84\x3\x84\x5\x84\x967\n\x84\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\a\x86"+ + "\x96E\n\x86\f\x86\xE\x86\x971\v\x86\x3\x86\x3\x86\x3\x86\x6\x86\x976\n"+ + "\x86\r\x86\xE\x86\x977\x5\x86\x97A\n\x86\x3\x87\x3\x87\x3\x88\x3\x88\x3"+ + "\x88\a\x88\x981\n\x88\f\x88\xE\x88\x984\v\x88\x3\x89\x3\x89\x5\x89\x988"+ + "\n\x89\x3\x89\x3\x89\x5\x89\x98C\n\x89\x3\x8A\x3\x8A\x5\x8A\x990\n\x8A"+ + "\x3\x8A\x3\x8A\x5\x8A\x994\n\x8A\x3\x8A\x5\x8A\x997\n\x8A\x3\x8B\x3\x8B"+ + "\x3\x8B\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x5\x8D\x9A0\n\x8D\x3\x8D\x5\x8D\x9A3"+ + "\n\x8D\x3\x8D\x3\x8D\x5\x8D\x9A7\n\x8D\x3\x8D\x5\x8D\x9AA\n\x8D\x3\x8E"+ + "\x3\x8E\x3\x8F\x3\x8F\x3\x90\x3\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x93"+ + "\x5\x93\x9B7\n\x93\x3\x93\x3\x93\x3\x93\x5\x93\x9BC\n\x93\x3\x93\x5\x93"+ + "\x9BF\n\x93\x3\x94\x3\x94\x5\x94\x9C3\n\x94\x3\x94\x3\x94\x5\x94\x9C7"+ + "\n\x94\a\x94\x9C9\n\x94\f\x94\xE\x94\x9CC\v\x94\x3\x94\x2\x2\x3\xCA\x95"+ + "\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18"+ + "\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2"+ + "\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2"+ + "N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2"+ + "l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88"+ + "\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C"+ + "\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0"+ + "\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4"+ + "\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8"+ + "\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC"+ + "\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100"+ + "\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112"+ + "\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E\x2\x120\x2\x122\x2\x124"+ + "\x2\x126\x2\x2\x17\x5\x2\x15\x15\"\"\xAA\xAA\x3\x2%\x30\x4\x2\xB3\xB3"+ + "\xB7\xB7\x3\x2GK\x3\x2z{\a\x2\x11\x11\x15\x15YY\x83\x83\x8E\x8E\x4\x2"+ + "\x91\x92\xBB\xBB\x4\x2\x66h\xA1\xA1\x3\x2\b\t\x4\x2\xA3\xA3\xA9\xA9\x4"+ + "\x2\xBF\xBF\xC8\xC8\x4\x2\xC7\xC7\xCA\xCA\a\x2ZZ\x64\x64\xC1\xC4\xC6\xC6"+ + "\xC9\xC9\x4\x2\x4\x4\n\n\x4\x2\x17\x18\x84\x84\x3\x2\x17\x18\f\x2\x16"+ + "\x16\x19\x19 ##\x34\x34[[__\xA2\xA2\xA7\xA7\xB4\xB4\a\x2\x38\x38LLwx"+ + "\xAE\xAE\xCF\xD5\x4\x2\x3\a\xBD\xBD\x6\x2NNRR\x87\x87\x8C\x8C\v\x2\v\x37"+ + "\x41\x46L\x64iioy|}\x82\x87\x8C\x91\x93\xBC\xB4B\x2\x128\x3\x2\x2\x2\x4"+ + "\x12C\x3\x2\x2\x2\x6\x147\x3\x2\x2\x2\b\x14D\x3\x2\x2\x2\n\x156\x3\x2"+ + "\x2\x2\f\x164\x3\x2\x2\x2\xE\x168\x3\x2\x2\x2\x10\x17B\x3\x2\x2\x2\x12"+ + "\x186\x3\x2\x2\x2\x14\x18A\x3\x2\x2\x2\x16\x18C\x3\x2\x2\x2\x18\x19D\x3"+ + "\x2\x2\x2\x1A\x19F\x3\x2\x2\x2\x1C\x1B7\x3\x2\x2\x2\x1E\x205\x3\x2\x2"+ + "\x2 \x207\x3\x2\x2\x2\"\x214\x3\x2\x2\x2$\x216\x3\x2\x2\x2&\x21A\x3\x2"+ + "\x2\x2(\x21E\x3\x2\x2\x2*\x233\x3\x2\x2\x2,\x245\x3\x2\x2\x2.\x256\x3"+ + "\x2\x2\x2\x30\x263\x3\x2\x2\x2\x32\x28B\x3\x2\x2\x2\x34\x29B\x3\x2\x2"+ + "\x2\x36\x2CB\x3\x2\x2\x2\x38\x2CD\x3\x2\x2\x2:\x2D2\x3\x2\x2\x2<\x2E0"+ + "\x3\x2\x2\x2>\x2ED\x3\x2\x2\x2@\x2F1\x3\x2\x2\x2\x42\x2F8\x3\x2\x2\x2"+ + "\x44\x302\x3\x2\x2\x2\x46\x304\x3\x2\x2\x2H\x310\x3\x2\x2\x2J\x325\x3"+ + "\x2\x2\x2L\x34D\x3\x2\x2\x2N\x36D\x3\x2\x2\x2P\x383\x3\x2\x2\x2R\x387"+ + "\x3\x2\x2\x2T\x3A4\x3\x2\x2\x2V\x3A6\x3\x2\x2\x2X\x3AF\x3\x2\x2\x2Z\x3B1"+ + "\x3\x2\x2\x2\\\x3BA\x3\x2\x2\x2^\x3BF\x3\x2\x2\x2`\x3C3\x3\x2\x2\x2\x62"+ + "\x3D2\x3\x2\x2\x2\x64\x3D8\x3\x2\x2\x2\x66\x3E4\x3\x2\x2\x2h\x3F0\x3\x2"+ + "\x2\x2j\x3F4\x3\x2\x2\x2l\x407\x3\x2\x2\x2n\x413\x3\x2\x2\x2p\x421\x3"+ + "\x2\x2\x2r\x42D\x3\x2\x2\x2t\x43D\x3\x2\x2\x2v\x44D\x3\x2\x2\x2x\x457"+ + "\x3\x2\x2\x2z\x465\x3\x2\x2\x2|\x469\x3\x2\x2\x2~\x471\x3\x2\x2\x2\x80"+ + "\x47B\x3\x2\x2\x2\x82\x48F\x3\x2\x2\x2\x84\x4A3\x3\x2\x2\x2\x86\x4E5\x3"+ + "\x2\x2\x2\x88\x4F8\x3\x2\x2\x2\x8A\x4FA\x3\x2\x2\x2\x8C\x50A\x3\x2\x2"+ + "\x2\x8E\x529\x3\x2\x2\x2\x90\x541\x3\x2\x2\x2\x92\x556\x3\x2\x2\x2\x94"+ + "\x56C\x3\x2\x2\x2\x96\x57F\x3\x2\x2\x2\x98\x584\x3\x2\x2\x2\x9A\x598\x3"+ + "\x2\x2\x2\x9C\x5A9\x3\x2\x2\x2\x9E\x5AB\x3\x2\x2\x2\xA0\x5B3\x3\x2\x2"+ + "\x2\xA2\x5B5\x3\x2\x2\x2\xA4\x5B9\x3\x2\x2\x2\xA6\x5C5\x3\x2\x2\x2\xA8"+ + "\x5D1\x3\x2\x2\x2\xAA\x5ED\x3\x2\x2\x2\xAC\x5F9\x3\x2\x2\x2\xAE\x618\x3"+ + "\x2\x2\x2\xB0\x61A\x3\x2\x2\x2\xB2\x630\x3\x2\x2\x2\xB4\x632\x3\x2\x2"+ + "\x2\xB6\x63F\x3\x2\x2\x2\xB8\x64B\x3\x2\x2\x2\xBA\x657\x3\x2\x2\x2\xBC"+ + "\x65C\x3\x2\x2\x2\xBE\x673\x3\x2\x2\x2\xC0\x680\x3\x2\x2\x2\xC2\x68E\x3"+ + "\x2\x2\x2\xC4\x6A5\x3\x2\x2\x2\xC6\x6AE\x3\x2\x2\x2\xC8\x6B2\x3\x2\x2"+ + "\x2\xCA\x6FC\x3\x2\x2\x2\xCC\x772\x3\x2\x2\x2\xCE\x77B\x3\x2\x2\x2\xD0"+ + "\x789\x3\x2\x2\x2\xD2\x7A4\x3\x2\x2\x2\xD4\x7AD\x3\x2\x2\x2\xD6\x7B9\x3"+ + "\x2\x2\x2\xD8\x7C7\x3\x2\x2\x2\xDA\x7D5\x3\x2\x2\x2\xDC\x7DB\x3\x2\x2"+ + "\x2\xDE\x7DD\x3\x2\x2\x2\xE0\x7FE\x3\x2\x2\x2\xE2\x825\x3\x2\x2\x2\xE4"+ + "\x828\x3\x2\x2\x2\xE6\x845\x3\x2\x2\x2\xE8\x85A\x3\x2\x2\x2\xEA\x85C\x3"+ + "\x2\x2\x2\xEC\x874\x3\x2\x2\x2\xEE\x89B\x3\x2\x2\x2\xF0\x8B7\x3\x2\x2"+ + "\x2\xF2\x8C0\x3\x2\x2\x2\xF4\x8D0\x3\x2\x2\x2\xF6\x8E4\x3\x2\x2\x2\xF8"+ + "\x8EF\x3\x2\x2\x2\xFA\x8F7\x3\x2\x2\x2\xFC\x912\x3\x2\x2\x2\xFE\x936\x3"+ + "\x2\x2\x2\x100\x93C\x3\x2\x2\x2\x102\x94F\x3\x2\x2\x2\x104\x955\x3\x2"+ + "\x2\x2\x106\x959\x3\x2\x2\x2\x108\x968\x3\x2\x2\x2\x10A\x979\x3\x2\x2"+ + "\x2\x10C\x97B\x3\x2\x2\x2\x10E\x97D\x3\x2\x2\x2\x110\x985\x3\x2\x2\x2"+ + "\x112\x98D\x3\x2\x2\x2\x114\x998\x3\x2\x2\x2\x116\x99B\x3\x2\x2\x2\x118"+ + "\x99F\x3\x2\x2\x2\x11A\x9AB\x3\x2\x2\x2\x11C\x9AD\x3\x2\x2\x2\x11E\x9AF"+ + "\x3\x2\x2\x2\x120\x9B1\x3\x2\x2\x2\x122\x9B3\x3\x2\x2\x2\x124\x9B6\x3"+ + "\x2\x2\x2\x126\x9CA\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2"+ + "\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\a\xF4\x2\x2\x12C\x12B\x3\x2\x2\x2\x12C"+ + "\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x126\x94\x2\x12F"+ + "\x130\x5\x6\x4\x2\x130\x131\x5\x126\x94\x2\x131\x133\x3\x2\x2\x2\x132"+ + "\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134\x136"+ + "\x5\b\x5\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2"+ + "\x2\x2\x137\x139\x5\x126\x94\x2\x138\x13A\x5\f\a\x2\x139\x138\x3\x2\x2"+ + "\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x5\x126\x94"+ + "\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2\x2\x13E"+ + "\x13F\x3\x2\x2\x2\x13F\x141\x5\x126\x94\x2\x140\x142\x5\x16\f\x2\x141"+ + "\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x145"+ + "\x5\x126\x94\x2\x144\x146\a\xF4\x2\x2\x145\x144\x3\x2\x2\x2\x145\x146"+ + "\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xB5\x2\x2\x148\x149\a\xF4"+ + "\x2\x2\x149\x14A\a\xD4\x2\x2\x14A\x14B\a\xF4\x2\x2\x14B\x14C\a\x1E\x2"+ + "\x2\x14C\a\x3\x2\x2\x2\x14D\x14E\a\x13\x2\x2\x14E\x150\x5\x126\x94\x2"+ + "\x14F\x151\x5\n\x6\x2\x150\x14F\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152"+ + "\x150\x3\x2\x2\x2\x152\x153\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x155"+ + "\a\x41\x2\x2\x155\t\x3\x2\x2\x2\x156\x158\x5\x104\x83\x2\x157\x159\a\xF4"+ + "\x2\x2\x158\x157\x3\x2\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15A\x3\x2\x2"+ + "\x2\x15A\x15C\a\xC1\x2\x2\x15B\x15D\a\xF4\x2\x2\x15C\x15B\x3\x2\x2\x2"+ + "\x15C\x15D\x3\x2\x2\x2\x15D\x15E\x3\x2\x2\x2\x15E\x15F\x5\x116\x8C\x2"+ + "\x15F\x160\x5\x126\x94\x2\x160\v\x3\x2\x2\x2\x161\x162\x5\x1A\xE\x2\x162"+ + "\x163\x5\x126\x94\x2\x163\x165\x3\x2\x2\x2\x164\x161\x3\x2\x2\x2\x165"+ + "\x166\x3\x2\x2\x2\x166\x164\x3\x2\x2\x2\x166\x167\x3\x2\x2\x2\x167\r\x3"+ + "\x2\x2\x2\x168\x16E\x5\x12\n\x2\x169\x16A\x5\x126\x94\x2\x16A\x16B\x5"+ + "\x12\n\x2\x16B\x16D\x3\x2\x2\x2\x16C\x169\x3\x2\x2\x2\x16D\x170\x3\x2"+ + "\x2\x2\x16E\x16C\x3\x2\x2\x2\x16E\x16F\x3\x2\x2\x2\x16F\x171\x3\x2\x2"+ + "\x2\x170\x16E\x3\x2\x2\x2\x171\x172\x5\x126\x94\x2\x172\xF\x3\x2\x2\x2"+ + "\x173\x174\a~\x2\x2\x174\x175\a\xF4\x2\x2\x175\x17C\a\xD2\x2\x2\x176\x177"+ + "\a\x80\x2\x2\x177\x178\a\xF4\x2\x2\x178\x17C\t\x2\x2\x2\x179\x17C\a\x7F"+ + "\x2\x2\x17A\x17C\a\x81\x2\x2\x17B\x173\x3\x2\x2\x2\x17B\x176\x3\x2\x2"+ + "\x2\x17B\x179\x3\x2\x2\x2\x17B\x17A\x3\x2\x2\x2\x17C\x11\x3\x2\x2\x2\x17D"+ + "\x187\x5\x30\x19\x2\x17E\x187\x5:\x1E\x2\x17F\x187\x5\x42\"\x2\x180\x187"+ + "\x5*\x16\x2\x181\x187\x5^\x30\x2\x182\x187\x5\xCCg\x2\x183\x187\x5\x10"+ + "\t\x2\x184\x187\x5\xC0\x61\x2\x185\x187\x5\x14\v\x2\x186\x17D\x3\x2\x2"+ + "\x2\x186\x17E\x3\x2\x2\x2\x186\x17F\x3\x2\x2\x2\x186\x180\x3\x2\x2\x2"+ + "\x186\x181\x3\x2\x2\x2\x186\x182\x3\x2\x2\x2\x186\x183\x3\x2\x2\x2\x186"+ + "\x184\x3\x2\x2\x2\x186\x185\x3\x2\x2\x2\x187\x13\x3\x2\x2\x2\x188\x18B"+ + "\x5n\x38\x2\x189\x18B\x5p\x39\x2\x18A\x188\x3\x2\x2\x2\x18A\x189\x3\x2"+ + "\x2\x2\x18B\x15\x3\x2\x2\x2\x18C\x192\x5\x18\r\x2\x18D\x18E\x5\x126\x94"+ + "\x2\x18E\x18F\x5\x18\r\x2\x18F\x191\x3\x2\x2\x2\x190\x18D\x3\x2\x2\x2"+ + "\x191\x194\x3\x2\x2\x2\x192\x190\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2\x193"+ + "\x195\x3\x2\x2\x2\x194\x192\x3\x2\x2\x2\x195\x196\x5\x126\x94\x2\x196"+ + "\x17\x3\x2\x2\x2\x197\x19E\x5L\'\x2\x198\x19E\x5\x8CG\x2\x199\x19E\x5"+ + "\x8EH\x2\x19A\x19E\x5\x90I\x2\x19B\x19E\x5\xBC_\x2\x19C\x19E\x5\x14\v"+ + "\x2\x19D\x197\x3\x2\x2\x2\x19D\x198\x3\x2\x2\x2\x19D\x199\x3\x2\x2\x2"+ + "\x19D\x19A\x3\x2\x2\x2\x19D\x19B\x3\x2\x2\x2\x19D\x19C\x3\x2\x2\x2\x19E"+ + "\x19\x3\x2\x2\x2\x19F\x1A0\a\xF\x2\x2\x1A0\x1A1\a\xF4\x2\x2\x1A1\x1A3"+ + "\x5\xE8u\x2\x1A2\x1A4\a\xF4\x2\x2\x1A3\x1A2\x3\x2\x2\x2\x1A3\x1A4\x3\x2"+ + "\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A7\a\xC1\x2\x2\x1A6\x1A8\a\xF4\x2"+ + "\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1A9\x3\x2\x2\x2"+ + "\x1A9\x1B4\x5\x116\x8C\x2\x1AA\x1AC\a\xF4\x2\x2\x1AB\x1AA\x3\x2\x2\x2"+ + "\x1AB\x1AC\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\a\t\x2\x2\x1AE"+ + "\x1B0\a\xF4\x2\x2\x1AF\x1AE\x3\x2\x2\x2\x1AF\x1B0\x3\x2\x2\x2\x1B0\x1B1"+ + "\x3\x2\x2\x2\x1B1\x1B3\x5\x116\x8C\x2\x1B2\x1AB\x3\x2\x2\x2\x1B3\x1B6"+ + "\x3\x2\x2\x2\x1B4\x1B2\x3\x2\x2\x2\x1B4\x1B5\x3\x2\x2\x2\x1B5\x1B\x3\x2"+ + "\x2\x2\x1B6\x1B4\x3\x2\x2\x2\x1B7\x1BD\x5\x1E\x10\x2\x1B8\x1B9\x5\x126"+ + "\x94\x2\x1B9\x1BA\x5\x1E\x10\x2\x1BA\x1BC\x3\x2\x2\x2\x1BB\x1B8\x3\x2"+ + "\x2\x2\x1BC\x1BF\x3\x2\x2\x2\x1BD\x1BB\x3\x2\x2\x2\x1BD\x1BE\x3\x2\x2"+ + "\x2\x1BE\x1C0\x3\x2\x2\x2\x1BF\x1BD\x3\x2\x2\x2\x1C0\x1C1\x5\x126\x94"+ + "\x2\x1C1\x1D\x3\x2\x2\x2\x1C2\x206\x5\x114\x8B\x2\x1C3\x206\x5 \x11\x2"+ + "\x1C4\x206\x5\x1A\xE\x2\x1C5\x206\x5\"\x12\x2\x1C6\x206\x5$\x13\x2\x1C7"+ + "\x206\x5&\x14\x2\x1C8\x206\x5(\x15\x2\x1C9\x206\x5*\x16\x2\x1CA\x206\x5"+ + ".\x18\x2\x1CB\x206\x5\x34\x1B\x2\x1CC\x206\x5\x32\x1A\x2\x1CD\x206\x5"+ + "\x36\x1C\x2\x1CE\x206\x5\x38\x1D\x2\x1CF\x206\x5> \x2\x1D0\x206\x5@!\x2"+ + "\x1D1\x206\x5\x44#\x2\x1D2\x206\x5\xDCo\x2\x1D3\x206\x5\x46$\x2\x1D4\x206"+ + "\x5H%\x2\x1D5\x206\x5J&\x2\x1D6\x206\x5N(\x2\x1D7\x206\x5P)\x2\x1D8\x206"+ + "\x5R*\x2\x1D9\x206\x5T+\x2\x1DA\x206\x5^\x30\x2\x1DB\x206\x5`\x31\x2\x1DC"+ + "\x206\x5\x62\x32\x2\x1DD\x206\x5\x64\x33\x2\x1DE\x206\x5\x66\x34\x2\x1DF"+ + "\x206\x5h\x35\x2\x1E0\x206\x5j\x36\x2\x1E1\x206\x5l\x37\x2\x1E2\x206\x5"+ + "\x14\v\x2\x1E3\x206\x5x=\x2\x1E4\x206\x5z>\x2\x1E5\x206\x5|?\x2\x1E6\x206"+ + "\x5~@\x2\x1E7\x206\x5\x80\x41\x2\x1E8\x206\x5\x82\x42\x2\x1E9\x206\x5"+ + "\x84\x43\x2\x1EA\x206\x5\x8A\x46\x2\x1EB\x206\x5\x92J\x2\x1EC\x206\x5"+ + "\x94K\x2\x1ED\x206\x5\x96L\x2\x1EE\x206\x5\x98M\x2\x1EF\x206\x5\x9CO\x2"+ + "\x1F0\x206\x5\x9EP\x2\x1F1\x206\x5\xA0Q\x2\x1F2\x206\x5\xA2R\x2\x1F3\x206"+ + "\x5\xA4S\x2\x1F4\x206\x5\xA6T\x2\x1F5\x206\x5\xA8U\x2\x1F6\x206\x5\xAA"+ + "V\x2\x1F7\x206\x5\xACW\x2\x1F8\x206\x5\xB4[\x2\x1F9\x206\x5\xB6\\\x2\x1FA"+ + "\x206\x5\xB8]\x2\x1FB\x206\x5\xBA^\x2\x1FC\x206\x5\xBE`\x2\x1FD\x206\x5"+ + "\xC6\x64\x2\x1FE\x206\x5\xC8\x65\x2\x1FF\x206\x5\xCCg\x2\x200\x206\x5"+ + "\xD2j\x2\x201\x206\x5\xD4k\x2\x202\x206\x5\xD6l\x2\x203\x206\x5\xD8m\x2"+ + "\x204\x206\x5\xE2r\x2\x205\x1C2\x3\x2\x2\x2\x205\x1C3\x3\x2\x2\x2\x205"+ + "\x1C4\x3\x2\x2\x2\x205\x1C5\x3\x2\x2\x2\x205\x1C6\x3\x2\x2\x2\x205\x1C7"+ + "\x3\x2\x2\x2\x205\x1C8\x3\x2\x2\x2\x205\x1C9\x3\x2\x2\x2\x205\x1CA\x3"+ + "\x2\x2\x2\x205\x1CB\x3\x2\x2\x2\x205\x1CC\x3\x2\x2\x2\x205\x1CD\x3\x2"+ + "\x2\x2\x205\x1CE\x3\x2\x2\x2\x205\x1CF\x3\x2\x2\x2\x205\x1D0\x3\x2\x2"+ + "\x2\x205\x1D1\x3\x2\x2\x2\x205\x1D2\x3\x2\x2\x2\x205\x1D3\x3\x2\x2\x2"+ + "\x205\x1D4\x3\x2\x2\x2\x205\x1D5\x3\x2\x2\x2\x205\x1D6\x3\x2\x2\x2\x205"+ + "\x1D7\x3\x2\x2\x2\x205\x1D8\x3\x2\x2\x2\x205\x1D9\x3\x2\x2\x2\x205\x1DA"+ + "\x3\x2\x2\x2\x205\x1DB\x3\x2\x2\x2\x205\x1DC\x3\x2\x2\x2\x205\x1DD\x3"+ + "\x2\x2\x2\x205\x1DE\x3\x2\x2\x2\x205\x1DF\x3\x2\x2\x2\x205\x1E0\x3\x2"+ + "\x2\x2\x205\x1E1\x3\x2\x2\x2\x205\x1E2\x3\x2\x2\x2\x205\x1E3\x3\x2\x2"+ + "\x2\x205\x1E4\x3\x2\x2\x2\x205\x1E5\x3\x2\x2\x2\x205\x1E6\x3\x2\x2\x2"+ + "\x205\x1E7\x3\x2\x2\x2\x205\x1E8\x3\x2\x2\x2\x205\x1E9\x3\x2\x2\x2\x205"+ + "\x1EA\x3\x2\x2\x2\x205\x1EB\x3\x2\x2\x2\x205\x1EC\x3\x2\x2\x2\x205\x1ED"+ + "\x3\x2\x2\x2\x205\x1EE\x3\x2\x2\x2\x205\x1EF\x3\x2\x2\x2\x205\x1F0\x3"+ + "\x2\x2\x2\x205\x1F1\x3\x2\x2\x2\x205\x1F2\x3\x2\x2\x2\x205\x1F3\x3\x2"+ + "\x2\x2\x205\x1F4\x3\x2\x2\x2\x205\x1F5\x3\x2\x2\x2\x205\x1F6\x3\x2\x2"+ + "\x2\x205\x1F7\x3\x2\x2\x2\x205\x1F8\x3\x2\x2\x2\x205\x1F9\x3\x2\x2\x2"+ + "\x205\x1FA\x3\x2\x2\x2\x205\x1FB\x3\x2\x2\x2\x205\x1FC\x3\x2\x2\x2\x205"+ + "\x1FD\x3\x2\x2\x2\x205\x1FE\x3\x2\x2\x2\x205\x1FF\x3\x2\x2\x2\x205\x200"+ + "\x3\x2\x2\x2\x205\x201\x3\x2\x2\x2\x205\x202\x3\x2\x2\x2\x205\x203\x3"+ + "\x2\x2\x2\x205\x204\x3\x2\x2\x2\x206\x1F\x3\x2\x2\x2\x207\x208\a\x10\x2"+ + "\x2\x208\x209\a\xF4\x2\x2\x209\x212\x5\xCA\x66\x2\x20A\x20C\a\xF4\x2\x2"+ + "\x20B\x20A\x3\x2\x2\x2\x20B\x20C\x3\x2\x2\x2\x20C\x20D\x3\x2\x2\x2\x20D"+ + "\x20F\a\t\x2\x2\x20E\x210\a\xF4\x2\x2\x20F\x20E\x3\x2\x2\x2\x20F\x210"+ + "\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x213\x5\xCA\x66\x2\x212\x20B\x3"+ + "\x2\x2\x2\x212\x213\x3\x2\x2\x2\x213!\x3\x2\x2\x2\x214\x215\a\x14\x2\x2"+ + "\x215#\x3\x2\x2\x2\x216\x217\a\x1C\x2\x2\x217\x218\a\xF4\x2\x2\x218\x219"+ + "\x5\xCA\x66\x2\x219%\x3\x2\x2\x2\x21A\x21B\a\x1D\x2\x2\x21B\x21C\a\xF4"+ + "\x2\x2\x21C\x21D\x5\xCA\x66\x2\x21D\'\x3\x2\x2\x2\x21E\x22E\a\x1F\x2\x2"+ + "\x21F\x220\a\xF4\x2\x2\x220\x22B\x5\xDAn\x2\x221\x223\a\xF4\x2\x2\x222"+ + "\x221\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2\x224\x226"+ + "\a\t\x2\x2\x225\x227\a\xF4\x2\x2\x226\x225\x3\x2\x2\x2\x226\x227\x3\x2"+ + "\x2\x2\x227\x228\x3\x2\x2\x2\x228\x22A\x5\xDAn\x2\x229\x222\x3\x2\x2\x2"+ + "\x22A\x22D\x3\x2\x2\x2\x22B\x229\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C"+ + "\x22F\x3\x2\x2\x2\x22D\x22B\x3\x2\x2\x2\x22E\x21F\x3\x2\x2\x2\x22E\x22F"+ + "\x3\x2\x2\x2\x22F)\x3\x2\x2\x2\x230\x231\x5\x11C\x8F\x2\x231\x232\a\xF4"+ + "\x2\x2\x232\x234\x3\x2\x2\x2\x233\x230\x3\x2\x2\x2\x233\x234\x3\x2\x2"+ + "\x2\x234\x235\x3\x2\x2\x2\x235\x236\a!\x2\x2\x236\x237\a\xF4\x2\x2\x237"+ + "\x242\x5,\x17\x2\x238\x23A\a\xF4\x2\x2\x239\x238\x3\x2\x2\x2\x239\x23A"+ + "\x3\x2\x2\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\a\t\x2\x2\x23C\x23E\a\xF4"+ + "\x2\x2\x23D\x23C\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E\x23F\x3\x2\x2"+ + "\x2\x23F\x241\x5,\x17\x2\x240\x239\x3\x2\x2\x2\x241\x244\x3\x2\x2\x2\x242"+ + "\x240\x3\x2\x2\x2\x242\x243\x3\x2\x2\x2\x243+\x3\x2\x2\x2\x244\x242\x3"+ + "\x2\x2\x2\x245\x247\x5\x104\x83\x2\x246\x248\x5\x11A\x8E\x2\x247\x246"+ + "\x3\x2\x2\x2\x247\x248\x3\x2\x2\x2\x248\x24B\x3\x2\x2\x2\x249\x24A\a\xF4"+ + "\x2\x2\x24A\x24C\x5\x106\x84\x2\x24B\x249\x3\x2\x2\x2\x24B\x24C\x3\x2"+ + "\x2\x2\x24C\x24E\x3\x2\x2\x2\x24D\x24F\a\xF4\x2\x2\x24E\x24D\x3\x2\x2"+ + "\x2\x24E\x24F\x3\x2\x2\x2\x24F\x250\x3\x2\x2\x2\x250\x252\a\xC1\x2\x2"+ + "\x251\x253\a\xF4\x2\x2\x252\x251\x3\x2\x2\x2\x252\x253\x3\x2\x2\x2\x253"+ + "\x254\x3\x2\x2\x2\x254\x255\x5\xCA\x66\x2\x255-\x3\x2\x2\x2\x256\x258"+ + "\a#\x2\x2\x257\x259\a\xF4\x2\x2\x258\x257\x3\x2\x2\x2\x258\x259\x3\x2"+ + "\x2\x2\x259\x25A\x3\x2\x2\x2\x25A\x25C\a\xC1\x2\x2\x25B\x25D\a\xF4\x2"+ + "\x2\x25C\x25B\x3\x2\x2\x2\x25C\x25D\x3\x2\x2\x2\x25D\x25E\x3\x2\x2\x2"+ + "\x25E\x25F\x5\xCA\x66\x2\x25F/\x3\x2\x2\x2\x260\x261\x5\x11C\x8F\x2\x261"+ + "\x262\a\xF4\x2\x2\x262\x264\x3\x2\x2\x2\x263\x260\x3\x2\x2\x2\x263\x264"+ + "\x3\x2\x2\x2\x264\x265\x3\x2\x2\x2\x265\x266\a$\x2\x2\x266\x269\a\xF4"+ + "\x2\x2\x267\x268\a\x8B\x2\x2\x268\x26A\a\xF4\x2\x2\x269\x267\x3\x2\x2"+ + "\x2\x269\x26A\x3\x2\x2\x2\x26A\x270\x3\x2\x2\x2\x26B\x26D\aP\x2\x2\x26C"+ + "\x26E\x5\x11A\x8E\x2\x26D\x26C\x3\x2\x2\x2\x26D\x26E\x3\x2\x2\x2\x26E"+ + "\x271\x3\x2\x2\x2\x26F\x271\a\xA8\x2\x2\x270\x26B\x3\x2\x2\x2\x270\x26F"+ + "\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272\x273\a\xF4\x2\x2\x273\x275\x5"+ + "\x104\x83\x2\x274\x276\x5\x11A\x8E\x2\x275\x274\x3\x2\x2\x2\x275\x276"+ + "\x3\x2\x2\x2\x276\x277\x3\x2\x2\x2\x277\x278\a\xF4\x2\x2\x278\x279\a\x63"+ + "\x2\x2\x279\x27A\a\xF4\x2\x2\x27A\x27F\a\xCF\x2\x2\x27B\x27C\a\xF4\x2"+ + "\x2\x27C\x27D\a\r\x2\x2\x27D\x27E\a\xF4\x2\x2\x27E\x280\a\xCF\x2\x2\x27F"+ + "\x27B\x3\x2\x2\x2\x27F\x280\x3\x2\x2\x2\x280\x285\x3\x2\x2\x2\x281\x283"+ + "\a\xF4\x2\x2\x282\x281\x3\x2\x2\x2\x282\x283\x3\x2\x2\x2\x283\x284\x3"+ + "\x2\x2\x2\x284\x286\x5\xFA~\x2\x285\x282\x3\x2\x2\x2\x285\x286\x3\x2\x2"+ + "\x2\x286\x289\x3\x2\x2\x2\x287\x288\a\xF4\x2\x2\x288\x28A\x5\x106\x84"+ + "\x2\x289\x287\x3\x2\x2\x2\x289\x28A\x3\x2\x2\x2\x28A\x31\x3\x2\x2\x2\x28B"+ + "\x28C\t\x3\x2\x2\x28C\x28D\a\xF4\x2\x2\x28D\x298\x5\x112\x8A\x2\x28E\x290"+ + "\a\xF4\x2\x2\x28F\x28E\x3\x2\x2\x2\x28F\x290\x3\x2\x2\x2\x290\x291\x3"+ + "\x2\x2\x2\x291\x293\a\t\x2\x2\x292\x294\a\xF4\x2\x2\x293\x292\x3\x2\x2"+ + "\x2\x293\x294\x3\x2\x2\x2\x294\x295\x3\x2\x2\x2\x295\x297\x5\x112\x8A"+ + "\x2\x296\x28F\x3\x2\x2\x2\x297\x29A\x3\x2\x2\x2\x298\x296\x3\x2\x2\x2"+ + "\x298\x299\x3\x2\x2\x2\x299\x33\x3\x2\x2\x2\x29A\x298\x3\x2\x2\x2\x29B"+ + "\x29C\a\x31\x2\x2\x29C\x29D\a\xF4\x2\x2\x29D\x29F\x5\xCA\x66\x2\x29E\x2A0"+ + "\a\xF4\x2\x2\x29F\x29E\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0\x2A1\x3"+ + "\x2\x2\x2\x2A1\x2A3\a\t\x2\x2\x2A2\x2A4\a\xF4\x2\x2\x2A3\x2A2\x3\x2\x2"+ + "\x2\x2A3\x2A4\x3\x2\x2\x2\x2A4\x2A5\x3\x2\x2\x2\x2A5\x2AE\x5\xCA\x66\x2"+ + "\x2A6\x2A8\a\xF4\x2\x2\x2A7\x2A6\x3\x2\x2\x2\x2A7\x2A8\x3\x2\x2\x2\x2A8"+ + "\x2A9\x3\x2\x2\x2\x2A9\x2AB\a\t\x2\x2\x2AA\x2AC\a\xF4\x2\x2\x2AB\x2AA"+ + "\x3\x2\x2\x2\x2AB\x2AC\x3\x2\x2\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AF\x5"+ + "\xCA\x66\x2\x2AE\x2A7\x3\x2\x2\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x35\x3\x2"+ + "\x2\x2\x2B0\x2B1\a\x33\x2\x2\x2B1\x2B3\x5\x126\x94\x2\x2B2\x2B4\x5\x1C"+ + "\xF\x2\x2B3\x2B2\x3\x2\x2\x2\x2B3\x2B4\x3\x2\x2\x2\x2B4\x2B5\x3\x2\x2"+ + "\x2\x2B5\x2B6\a`\x2\x2\x2B6\x2CC\x3\x2\x2\x2\x2B7\x2B8\a\x33\x2\x2\x2B8"+ + "\x2B9\a\xF4\x2\x2\x2B9\x2BA\t\x4\x2\x2\x2BA\x2BB\a\xF4\x2\x2\x2BB\x2BC"+ + "\x5\xCA\x66\x2\x2BC\x2BE\x5\x126\x94\x2\x2BD\x2BF\x5\x1C\xF\x2\x2BE\x2BD"+ + "\x3\x2\x2\x2\x2BE\x2BF\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\a`"+ + "\x2\x2\x2C1\x2CC\x3\x2\x2\x2\x2C2\x2C3\a\x33\x2\x2\x2C3\x2C4\x5\x126\x94"+ + "\x2\x2C4\x2C5\x5\x1C\xF\x2\x2C5\x2C6\a`\x2\x2\x2C6\x2C7\a\xF4\x2\x2\x2C7"+ + "\x2C8\t\x4\x2\x2\x2C8\x2C9\a\xF4\x2\x2\x2C9\x2CA\x5\xCA\x66\x2\x2CA\x2CC"+ + "\x3\x2\x2\x2\x2CB\x2B0\x3\x2\x2\x2\x2CB\x2B7\x3\x2\x2\x2\x2CB\x2C2\x3"+ + "\x2\x2\x2\x2CC\x37\x3\x2\x2\x2\x2CD\x2CE\a\x41\x2\x2\x2CE\x39\x3\x2\x2"+ + "\x2\x2CF\x2D0\x5\x11C\x8F\x2\x2D0\x2D1\a\xF4\x2\x2\x2D1\x2D3\x3\x2\x2"+ + "\x2\x2D2\x2CF\x3\x2\x2\x2\x2D2\x2D3\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2"+ + "\x2D4\x2D5\a\x42\x2\x2\x2D5\x2D6\a\xF4\x2\x2\x2D6\x2D7\x5\x104\x83\x2"+ + "\x2D7\x2DB\x5\x126\x94\x2\x2D8\x2DA\x5<\x1F\x2\x2D9\x2D8\x3\x2\x2\x2\x2DA"+ + "\x2DD\x3\x2\x2\x2\x2DB\x2D9\x3\x2\x2\x2\x2DB\x2DC\x3\x2\x2\x2\x2DC\x2DE"+ + "\x3\x2\x2\x2\x2DD\x2DB\x3\x2\x2\x2\x2DE\x2DF\a\x39\x2\x2\x2DF;\x3\x2\x2"+ + "\x2\x2E0\x2E9\x5\x104\x83\x2\x2E1\x2E3\a\xF4\x2\x2\x2E2\x2E1\x3\x2\x2"+ + "\x2\x2E2\x2E3\x3\x2\x2\x2\x2E3\x2E4\x3\x2\x2\x2\x2E4\x2E6\a\xC1\x2\x2"+ + "\x2E5\x2E7\a\xF4\x2\x2\x2E6\x2E5\x3\x2\x2\x2\x2E6\x2E7\x3\x2\x2\x2\x2E7"+ + "\x2E8\x3\x2\x2\x2\x2E8\x2EA\x5\xCA\x66\x2\x2E9\x2E2\x3\x2\x2\x2\x2E9\x2EA"+ + "\x3\x2\x2\x2\x2EA\x2EB\x3\x2\x2\x2\x2EB\x2EC\x5\x126\x94\x2\x2EC=\x3\x2"+ + "\x2\x2\x2ED\x2EE\a\x44\x2\x2\x2EE\x2EF\a\xF4\x2\x2\x2EF\x2F0\x5\xCA\x66"+ + "\x2\x2F0?\x3\x2\x2\x2\x2F1\x2F2\a\x45\x2\x2\x2F2\x2F3\a\xF4\x2\x2\x2F3"+ + "\x2F4\x5\xCA\x66\x2\x2F4\x41\x3\x2\x2\x2\x2F5\x2F6\x5\x11C\x8F\x2\x2F6"+ + "\x2F7\a\xF4\x2\x2\x2F7\x2F9\x3\x2\x2\x2\x2F8\x2F5\x3\x2\x2\x2\x2F8\x2F9"+ + "\x3\x2\x2\x2\x2F9\x2FA\x3\x2\x2\x2\x2FA\x2FB\a\x46\x2\x2\x2FB\x2FC\a\xF4"+ + "\x2\x2\x2FC\x2FE\x5\x104\x83\x2\x2FD\x2FF\a\xF4\x2\x2\x2FE\x2FD\x3\x2"+ + "\x2\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\x3\x2\x2\x2\x300\x301\x5\xFA~\x2"+ + "\x301\x43\x3\x2\x2\x2\x302\x303\t\x5\x2\x2\x303\x45\x3\x2\x2\x2\x304\x305"+ + "\aM\x2\x2\x305\x306\a\xF4\x2\x2\x306\x308\x5\xCA\x66\x2\x307\x309\a\xF4"+ + "\x2\x2\x308\x307\x3\x2\x2\x2\x308\x309\x3\x2\x2\x2\x309\x30A\x3\x2\x2"+ + "\x2\x30A\x30C\a\t\x2\x2\x30B\x30D\a\xF4\x2\x2\x30C\x30B\x3\x2\x2\x2\x30C"+ + "\x30D\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x30F\x5\xCA\x66\x2\x30FG"+ + "\x3\x2\x2\x2\x310\x311\aO\x2\x2\x311\x312\a\xF4\x2\x2\x312\x313\a\x35"+ + "\x2\x2\x313\x314\a\xF4\x2\x2\x314\x316\x5\x104\x83\x2\x315\x317\x5\x11A"+ + "\x8E\x2\x316\x315\x3\x2\x2\x2\x316\x317\x3\x2\x2\x2\x317\x318\x3\x2\x2"+ + "\x2\x318\x319\a\xF4\x2\x2\x319\x31A\aX\x2\x2\x31A\x31B\a\xF4\x2\x2\x31B"+ + "\x31C\x5\xCA\x66\x2\x31C\x31E\x5\x126\x94\x2\x31D\x31F\x5\x1C\xF\x2\x31E"+ + "\x31D\x3\x2\x2\x2\x31E\x31F\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x323"+ + "\at\x2\x2\x321\x322\a\xF4\x2\x2\x322\x324\x5\x104\x83\x2\x323\x321\x3"+ + "\x2\x2\x2\x323\x324\x3\x2\x2\x2\x324I\x3\x2\x2\x2\x325\x326\aO\x2\x2\x326"+ + "\x327\a\xF4\x2\x2\x327\x329\x5\x104\x83\x2\x328\x32A\x5\x11A\x8E\x2\x329"+ + "\x328\x3\x2\x2\x2\x329\x32A\x3\x2\x2\x2\x32A\x32D\x3\x2\x2\x2\x32B\x32C"+ + "\a\xF4\x2\x2\x32C\x32E\x5\x106\x84\x2\x32D\x32B\x3\x2\x2\x2\x32D\x32E"+ + "\x3\x2\x2\x2\x32E\x330\x3\x2\x2\x2\x32F\x331\a\xF4\x2\x2\x330\x32F\x3"+ + "\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332\x3\x2\x2\x2\x332\x334\a\xC1"+ + "\x2\x2\x333\x335\a\xF4\x2\x2\x334\x333\x3\x2\x2\x2\x334\x335\x3\x2\x2"+ + "\x2\x335\x336\x3\x2\x2\x2\x336\x337\x5\xCA\x66\x2\x337\x338\a\xF4\x2\x2"+ + "\x338\x339\a\xAD\x2\x2\x339\x33A\a\xF4\x2\x2\x33A\x33F\x5\xCA\x66\x2\x33B"+ + "\x33C\a\xF4\x2\x2\x33C\x33D\a\xA5\x2\x2\x33D\x33E\a\xF4\x2\x2\x33E\x340"+ + "\x5\xCA\x66\x2\x33F\x33B\x3\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341\x3"+ + "\x2\x2\x2\x341\x343\x5\x126\x94\x2\x342\x344\x5\x1C\xF\x2\x343\x342\x3"+ + "\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x348\at\x2"+ + "\x2\x346\x347\a\xF4\x2\x2\x347\x349\x5\x104\x83\x2\x348\x346\x3\x2\x2"+ + "\x2\x348\x349\x3\x2\x2\x2\x349K\x3\x2\x2\x2\x34A\x34B\x5\x11C\x8F\x2\x34B"+ + "\x34C\a\xF4\x2\x2\x34C\x34E\x3\x2\x2\x2\x34D\x34A\x3\x2\x2\x2\x34D\x34E"+ + "\x3\x2\x2\x2\x34E\x351\x3\x2\x2\x2\x34F\x350\a\xA4\x2\x2\x350\x352\a\xF4"+ + "\x2\x2\x351\x34F\x3\x2\x2\x2\x351\x352\x3\x2\x2\x2\x352\x353\x3\x2\x2"+ + "\x2\x353\x355\aP\x2\x2\x354\x356\a\xF4\x2\x2\x355\x354\x3\x2\x2\x2\x355"+ + "\x356\x3\x2\x2\x2\x356\x357\x3\x2\x2\x2\x357\x359\x5\x104\x83\x2\x358"+ + "\x35A\x5\x11A\x8E\x2\x359\x358\x3\x2\x2\x2\x359\x35A\x3\x2\x2\x2\x35A"+ + "\x35F\x3\x2\x2\x2\x35B\x35D\a\xF4\x2\x2\x35C\x35B\x3\x2\x2\x2\x35C\x35D"+ + "\x3\x2\x2\x2\x35D\x35E\x3\x2\x2\x2\x35E\x360\x5\xFA~\x2\x35F\x35C\x3\x2"+ + "\x2\x2\x35F\x360\x3\x2\x2\x2\x360\x365\x3\x2\x2\x2\x361\x363\a\xF4\x2"+ + "\x2\x362\x361\x3\x2\x2\x2\x362\x363\x3\x2\x2\x2\x363\x364\x3\x2\x2\x2"+ + "\x364\x366\x5\x106\x84\x2\x365\x362\x3\x2\x2\x2\x365\x366\x3\x2\x2\x2"+ + "\x366\x367\x3\x2\x2\x2\x367\x369\x5\x126\x94\x2\x368\x36A\x5\x1C\xF\x2"+ + "\x369\x368\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B"+ + "\x36C\a:\x2\x2\x36CM\x3\x2\x2\x2\x36D\x36E\aQ\x2\x2\x36E\x36F\a\xF4\x2"+ + "\x2\x36F\x371\x5\xDAn\x2\x370\x372\a\xF4\x2\x2\x371\x370\x3\x2\x2\x2\x371"+ + "\x372\x3\x2\x2\x2\x372\x373\x3\x2\x2\x2\x373\x375\a\t\x2\x2\x374\x376"+ + "\a\xF4\x2\x2\x375\x374\x3\x2\x2\x2\x375\x376\x3\x2\x2\x2\x376\x378\x3"+ + "\x2\x2\x2\x377\x379\x5\xCA\x66\x2\x378\x377\x3\x2\x2\x2\x378\x379\x3\x2"+ + "\x2\x2\x379\x37B\x3\x2\x2\x2\x37A\x37C\a\xF4\x2\x2\x37B\x37A\x3\x2\x2"+ + "\x2\x37B\x37C\x3\x2\x2\x2\x37C\x37D\x3\x2\x2\x2\x37D\x37F\a\t\x2\x2\x37E"+ + "\x380\a\xF4\x2\x2\x37F\x37E\x3\x2\x2\x2\x37F\x380\x3\x2\x2\x2\x380\x381"+ + "\x3\x2\x2\x2\x381\x382\x5\xCA\x66\x2\x382O\x3\x2\x2\x2\x383\x384\aS\x2"+ + "\x2\x384\x385\a\xF4\x2\x2\x385\x386\x5\xCA\x66\x2\x386Q\x3\x2\x2\x2\x387"+ + "\x388\aT\x2\x2\x388\x389\a\xF4\x2\x2\x389\x38A\x5\xCA\x66\x2\x38AS\x3"+ + "\x2\x2\x2\x38B\x38C\aU\x2\x2\x38C\x38D\a\xF4\x2\x2\x38D\x38E\x5X-\x2\x38E"+ + "\x38F\a\xF4\x2\x2\x38F\x390\a\xAB\x2\x2\x390\x391\a\xF4\x2\x2\x391\x396"+ + "\x5\x1E\x10\x2\x392\x393\a\xF4\x2\x2\x393\x394\a\x36\x2\x2\x394\x395\a"+ + "\xF4\x2\x2\x395\x397\x5\x1E\x10\x2\x396\x392\x3\x2\x2\x2\x396\x397\x3"+ + "\x2\x2\x2\x397\x3A5\x3\x2\x2\x2\x398\x39C\x5V,\x2\x399\x39B\x5Z.\x2\x39A"+ + "\x399\x3\x2\x2\x2\x39B\x39E\x3\x2\x2\x2\x39C\x39A\x3\x2\x2\x2\x39C\x39D"+ + "\x3\x2\x2\x2\x39D\x3A0\x3\x2\x2\x2\x39E\x39C\x3\x2\x2\x2\x39F\x3A1\x5"+ + "\\/\x2\x3A0\x39F\x3\x2\x2\x2\x3A0\x3A1\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2"+ + "\x2\x3A2\x3A3\a;\x2\x2\x3A3\x3A5\x3\x2\x2\x2\x3A4\x38B\x3\x2\x2\x2\x3A4"+ + "\x398\x3\x2\x2\x2\x3A5U\x3\x2\x2\x2\x3A6\x3A7\aU\x2\x2\x3A7\x3A8\a\xF4"+ + "\x2\x2\x3A8\x3A9\x5X-\x2\x3A9\x3AA\a\xF4\x2\x2\x3AA\x3AB\a\xAB\x2\x2\x3AB"+ + "\x3AD\x5\x126\x94\x2\x3AC\x3AE\x5\x1C\xF\x2\x3AD\x3AC\x3\x2\x2\x2\x3AD"+ + "\x3AE\x3\x2\x2\x2\x3AEW\x3\x2\x2\x2\x3AF\x3B0\x5\xCA\x66\x2\x3B0Y\x3\x2"+ + "\x2\x2\x3B1\x3B2\a\x37\x2\x2\x3B2\x3B3\a\xF4\x2\x2\x3B3\x3B4\x5X-\x2\x3B4"+ + "\x3B5\a\xF4\x2\x2\x3B5\x3B6\a\xAB\x2\x2\x3B6\x3B8\x5\x126\x94\x2\x3B7"+ + "\x3B9\x5\x1C\xF\x2\x3B8\x3B7\x3\x2\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9[\x3"+ + "\x2\x2\x2\x3BA\x3BB\a\x36\x2\x2\x3BB\x3BD\x5\x126\x94\x2\x3BC\x3BE\x5"+ + "\x1C\xF\x2\x3BD\x3BC\x3\x2\x2\x2\x3BD\x3BE\x3\x2\x2\x2\x3BE]\x3\x2\x2"+ + "\x2\x3BF\x3C0\aW\x2\x2\x3C0\x3C1\a\xF4\x2\x2\x3C1\x3C2\x5\x104\x83\x2"+ + "\x3C2_\x3\x2\x2\x2\x3C3\x3C4\aY\x2\x2\x3C4\x3C5\a\xF4\x2\x2\x3C5\x3CE"+ + "\x5\xDAn\x2\x3C6\x3C8\a\xF4\x2\x2\x3C7\x3C6\x3\x2\x2\x2\x3C7\x3C8\x3\x2"+ + "\x2\x2\x3C8\x3C9\x3\x2\x2\x2\x3C9\x3CB\a\t\x2\x2\x3CA\x3CC\a\xF4\x2\x2"+ + "\x3CB\x3CA\x3\x2\x2\x2\x3CB\x3CC\x3\x2\x2\x2\x3CC\x3CD\x3\x2\x2\x2\x3CD"+ + "\x3CF\x5\xCA\x66\x2\x3CE\x3C7\x3\x2\x2\x2\x3CF\x3D0\x3\x2\x2\x2\x3D0\x3CE"+ + "\x3\x2\x2\x2\x3D0\x3D1\x3\x2\x2\x2\x3D1\x61\x3\x2\x2\x2\x3D2\x3D3\a\\"+ + "\x2\x2\x3D3\x3D4\a\xF4\x2\x2\x3D4\x3D5\x5\xCA\x66\x2\x3D5\x63\x3\x2\x2"+ + "\x2\x3D6\x3D7\a\x62\x2\x2\x3D7\x3D9\a\xF4\x2\x2\x3D8\x3D6\x3\x2\x2\x2"+ + "\x3D8\x3D9\x3\x2\x2\x2\x3D9\x3DA\x3\x2\x2\x2\x3DA\x3DC\x5\xE8u\x2\x3DB"+ + "\x3DD\a\xF4\x2\x2\x3DC\x3DB\x3\x2\x2\x2\x3DC\x3DD\x3\x2\x2\x2\x3DD\x3DE"+ + "\x3\x2\x2\x2\x3DE\x3E0\a\xC1\x2\x2\x3DF\x3E1\a\xF4\x2\x2\x3E0\x3DF\x3"+ + "\x2\x2\x2\x3E0\x3E1\x3\x2\x2\x2\x3E1\x3E2\x3\x2\x2\x2\x3E2\x3E3\x5\xCA"+ + "\x66\x2\x3E3\x65\x3\x2\x2\x2\x3E4\x3E5\a\x65\x2\x2\x3E5\x3E6\a\xF4\x2"+ + "\x2\x3E6\x3E8\x5\xDAn\x2\x3E7\x3E9\a\xF4\x2\x2\x3E8\x3E7\x3\x2\x2\x2\x3E8"+ + "\x3E9\x3\x2\x2\x2\x3E9\x3EA\x3\x2\x2\x2\x3EA\x3EC\a\t\x2\x2\x3EB\x3ED"+ + "\a\xF4\x2\x2\x3EC\x3EB\x3\x2\x2\x2\x3EC\x3ED\x3\x2\x2\x2\x3ED\x3EE\x3"+ + "\x2\x2\x2\x3EE\x3EF\x5\xCA\x66\x2\x3EFg\x3\x2\x2\x2\x3F0\x3F1\a]\x2\x2"+ + "\x3F1\x3F2\a\xF4\x2\x2\x3F2\x3F3\x5\xCA\x66\x2\x3F3i\x3\x2\x2\x2\x3F4"+ + "\x3F5\a^\x2\x2\x3F5\x3F6\a\xF4\x2\x2\x3F6\x405\x5\xCA\x66\x2\x3F7\x3F9"+ + "\a\xF4\x2\x2\x3F8\x3F7\x3\x2\x2\x2\x3F8\x3F9\x3\x2\x2\x2\x3F9\x3FA\x3"+ + "\x2\x2\x2\x3FA\x3FC\a\t\x2\x2\x3FB\x3FD\a\xF4\x2\x2\x3FC\x3FB\x3\x2\x2"+ + "\x2\x3FC\x3FD\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2\x2\x3FE\x403\x5\xCA\x66\x2"+ + "\x3FF\x400\a\xF4\x2\x2\x400\x401\a\xAD\x2\x2\x401\x402\a\xF4\x2\x2\x402"+ + "\x404\x5\xCA\x66\x2\x403\x3FF\x3\x2\x2\x2\x403\x404\x3\x2\x2\x2\x404\x406"+ + "\x3\x2\x2\x2\x405\x3F8\x3\x2\x2\x2\x405\x406\x3\x2\x2\x2\x406k\x3\x2\x2"+ + "\x2\x407\x408\ai\x2\x2\x408\x409\a\xF4\x2\x2\x409\x40B\x5\xE8u\x2\x40A"+ + "\x40C\a\xF4\x2\x2\x40B\x40A\x3\x2\x2\x2\x40B\x40C\x3\x2\x2\x2\x40C\x40D"+ + "\x3\x2\x2\x2\x40D\x40F\a\xC1\x2\x2\x40E\x410\a\xF4\x2\x2\x40F\x40E\x3"+ + "\x2\x2\x2\x40F\x410\x3\x2\x2\x2\x410\x411\x3\x2\x2\x2\x411\x412\x5\xCA"+ + "\x66\x2\x412m\x3\x2\x2\x2\x413\x415\aj\x2\x2\x414\x416\a\xF4\x2\x2\x415"+ + "\x414\x3\x2\x2\x2\x415\x416\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x419"+ + "\x5\x104\x83\x2\x418\x41A\a\xF4\x2\x2\x419\x418\x3\x2\x2\x2\x419\x41A"+ + "\x3\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41D\a\xC1\x2\x2\x41C\x41E\a\xF4"+ + "\x2\x2\x41D\x41C\x3\x2\x2\x2\x41D\x41E\x3\x2\x2\x2\x41E\x41F\x3\x2\x2"+ + "\x2\x41F\x420\x5\xCA\x66\x2\x420o\x3\x2\x2\x2\x421\x425\x5r:\x2\x422\x424"+ + "\x5t;\x2\x423\x422\x3\x2\x2\x2\x424\x427\x3\x2\x2\x2\x425\x423\x3\x2\x2"+ + "\x2\x425\x426\x3\x2\x2\x2\x426\x429\x3\x2\x2\x2\x427\x425\x3\x2\x2\x2"+ + "\x428\x42A\x5v<\x2\x429\x428\x3\x2\x2\x2\x429\x42A\x3\x2\x2\x2\x42A\x42B"+ + "\x3\x2\x2\x2\x42B\x42C\an\x2\x2\x42Cq\x3\x2\x2\x2\x42D\x42F\ak\x2\x2\x42E"+ + "\x430\a\xF4\x2\x2\x42F\x42E\x3\x2\x2\x2\x42F\x430\x3\x2\x2\x2\x430\x431"+ + "\x3\x2\x2\x2\x431\x432\x5X-\x2\x432\x433\a\xF4\x2\x2\x433\x434\a\xAB\x2"+ + "\x2\x434\x43A\x5\x126\x94\x2\x435\x439\x5\xE\b\x2\x436\x439\x5\x16\f\x2"+ + "\x437\x439\x5\x1C\xF\x2\x438\x435\x3\x2\x2\x2\x438\x436\x3\x2\x2\x2\x438"+ + "\x437\x3\x2\x2\x2\x439\x43C\x3\x2\x2\x2\x43A\x438\x3\x2\x2\x2\x43A\x43B"+ + "\x3\x2\x2\x2\x43Bs\x3\x2\x2\x2\x43C\x43A\x3\x2\x2\x2\x43D\x43F\al\x2\x2"+ + "\x43E\x440\a\xF4\x2\x2\x43F\x43E\x3\x2\x2\x2\x43F\x440\x3\x2\x2\x2\x440"+ + "\x441\x3\x2\x2\x2\x441\x442\x5X-\x2\x442\x443\a\xF4\x2\x2\x443\x444\a"+ + "\xAB\x2\x2\x444\x44A\x5\x126\x94\x2\x445\x449\x5\xE\b\x2\x446\x449\x5"+ + "\x16\f\x2\x447\x449\x5\x1C\xF\x2\x448\x445\x3\x2\x2\x2\x448\x446\x3\x2"+ + "\x2\x2\x448\x447\x3\x2\x2\x2\x449\x44C\x3\x2\x2\x2\x44A\x448\x3\x2\x2"+ + "\x2\x44A\x44B\x3\x2\x2\x2\x44Bu\x3\x2\x2\x2\x44C\x44A\x3\x2\x2\x2\x44D"+ + "\x44E\am\x2\x2\x44E\x454\x5\x126\x94\x2\x44F\x453\x5\xE\b\x2\x450\x453"+ + "\x5\x16\f\x2\x451\x453\x5\x1C\xF\x2\x452\x44F\x3\x2\x2\x2\x452\x450\x3"+ + "\x2\x2\x2\x452\x451\x3\x2\x2\x2\x453\x456\x3\x2\x2\x2\x454\x452\x3\x2"+ + "\x2\x2\x454\x455\x3\x2\x2\x2\x455w\x3\x2\x2\x2\x456\x454\x3\x2\x2\x2\x457"+ + "\x459\ap\x2\x2\x458\x45A\a\xF4\x2\x2\x459\x458\x3\x2\x2\x2\x459\x45A\x3"+ + "\x2\x2\x2\x45A\x45B\x3\x2\x2\x2\x45B\x45D\a\xC5\x2\x2\x45C\x45E\a\xF4"+ + "\x2\x2\x45D\x45C\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\x3\x2\x2"+ + "\x2\x45F\x461\x5\xF4{\x2\x460\x462\a\xF4\x2\x2\x461\x460\x3\x2\x2\x2\x461"+ + "\x462\x3\x2\x2\x2\x462\x463\x3\x2\x2\x2\x463\x464\a\xCC\x2\x2\x464y\x3"+ + "\x2\x2\x2\x465\x466\aq\x2\x2\x466\x467\a\xF4\x2\x2\x467\x468\x5\xCA\x66"+ + "\x2\x468{\x3\x2\x2\x2\x469\x46A\as\x2\x2\x46A\x46B\a\xF4\x2\x2\x46B\x46C"+ + "\x5\xCA\x66\x2\x46C\x46D\a\xF4\x2\x2\x46D\x46E\a\x12\x2\x2\x46E\x46F\a"+ + "\xF4\x2\x2\x46F\x470\x5\xCA\x66\x2\x470}\x3\x2\x2\x2\x471\x472\t\x6\x2"+ + "\x2\x472\x479\a\xF4\x2\x2\x473\x474\aT\x2\x2\x474\x475\a\xF4\x2\x2\x475"+ + "\x47A\x5\xCA\x66\x2\x476\x477\a\x96\x2\x2\x477\x478\a\xF4\x2\x2\x478\x47A"+ + "\at\x2\x2\x479\x473\x3\x2\x2\x2\x479\x476\x3\x2\x2\x2\x47A\x7F\x3\x2\x2"+ + "\x2\x47B\x47C\ay\x2\x2\x47C\x47D\a\xF4\x2\x2\x47D\x47E\x5\xCA\x66\x2\x47E"+ + "\x47F\a\xF4\x2\x2\x47F\x480\aT\x2\x2\x480\x481\a\xF4\x2\x2\x481\x48C\x5"+ + "\xCA\x66\x2\x482\x484\a\xF4\x2\x2\x483\x482\x3\x2\x2\x2\x483\x484\x3\x2"+ + "\x2\x2\x484\x485\x3\x2\x2\x2\x485\x487\a\t\x2\x2\x486\x488\a\xF4\x2\x2"+ + "\x487\x486\x3\x2\x2\x2\x487\x488\x3\x2\x2\x2\x488\x489\x3\x2\x2\x2\x489"+ + "\x48B\x5\xCA\x66\x2\x48A\x483\x3\x2\x2\x2\x48B\x48E\x3\x2\x2\x2\x48C\x48A"+ + "\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x81\x3\x2\x2\x2\x48E\x48C\x3\x2"+ + "\x2\x2\x48F\x490\ay\x2\x2\x490\x491\a\xF4\x2\x2\x491\x492\x5\xCA\x66\x2"+ + "\x492\x493\a\xF4\x2\x2\x493\x494\aS\x2\x2\x494\x495\a\xF4\x2\x2\x495\x4A0"+ + "\x5\xCA\x66\x2\x496\x498\a\xF4\x2\x2\x497\x496\x3\x2\x2\x2\x497\x498\x3"+ + "\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49B\a\t\x2\x2\x49A\x49C\a\xF4\x2"+ + "\x2\x49B\x49A\x3\x2\x2\x2\x49B\x49C\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2"+ + "\x49D\x49F\x5\xCA\x66\x2\x49E\x497\x3\x2\x2\x2\x49F\x4A2\x3\x2\x2\x2\x4A0"+ + "\x49E\x3\x2\x2\x2\x4A0\x4A1\x3\x2\x2\x2\x4A1\x83\x3\x2\x2\x2\x4A2\x4A0"+ + "\x3\x2\x2\x2\x4A3\x4A4\a|\x2\x2\x4A4\x4A5\a\xF4\x2\x2\x4A5\x4A6\x5\xCA"+ + "\x66\x2\x4A6\x4A7\a\xF4\x2\x2\x4A7\x4A8\aO\x2\x2\x4A8\x4A9\a\xF4\x2\x2"+ + "\x4A9\x4AE\t\a\x2\x2\x4AA\x4AB\a\xF4\x2\x2\x4AB\x4AC\a\v\x2\x2\x4AC\x4AD"+ + "\a\xF4\x2\x2\x4AD\x4AF\t\b\x2\x2\x4AE\x4AA\x3\x2\x2\x2\x4AE\x4AF\x3\x2"+ + "\x2\x2\x4AF\x4B2\x3\x2\x2\x2\x4B0\x4B1\a\xF4\x2\x2\x4B1\x4B3\t\t\x2\x2"+ + "\x4B2\x4B0\x3\x2\x2\x2\x4B2\x4B3\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4"+ + "\x4B5\a\xF4\x2\x2\x4B5\x4B6\a\x12\x2\x2\x4B6\x4B7\a\xF4\x2\x2\x4B7\x4C2"+ + "\x5\xDAn\x2\x4B8\x4B9\a\xF4\x2\x2\x4B9\x4BB\a\x61\x2\x2\x4BA\x4BC\a\xF4"+ + "\x2\x2\x4BB\x4BA\x3\x2\x2\x2\x4BB\x4BC\x3\x2\x2\x2\x4BC\x4BD\x3\x2\x2"+ + "\x2\x4BD\x4BF\a\xC1\x2\x2\x4BE\x4C0\a\xF4\x2\x2\x4BF\x4BE\x3\x2\x2\x2"+ + "\x4BF\x4C0\x3\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C3\x5\xCA\x66\x2\x4C2"+ + "\x4B8\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x85\x3\x2\x2\x2\x4C4\x4D1"+ + "\x5\x88\x45\x2\x4C5\x4C7\a\xF4\x2\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3"+ + "\x2\x2\x2\x4C7\x4C8\x3\x2\x2\x2\x4C8\x4CA\t\n\x2\x2\x4C9\x4CB\a\xF4\x2"+ + "\x2\x4CA\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CD\x3\x2\x2\x2"+ + "\x4CC\x4CE\x5\x88\x45\x2\x4CD\x4CC\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE"+ + "\x4D0\x3\x2\x2\x2\x4CF\x4C6\x3\x2\x2\x2\x4D0\x4D3\x3\x2\x2\x2\x4D1\x4CF"+ + "\x3\x2\x2\x2\x4D1\x4D2\x3\x2\x2\x2\x4D2\x4E6\x3\x2\x2\x2\x4D3\x4D1\x3"+ + "\x2\x2\x2\x4D4\x4D6\x5\x88\x45\x2\x4D5\x4D4\x3\x2\x2\x2\x4D5\x4D6\x3\x2"+ + "\x2\x2\x4D6\x4E1\x3\x2\x2\x2\x4D7\x4D9\a\xF4\x2\x2\x4D8\x4D7\x3\x2\x2"+ + "\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9\x4DA\x3\x2\x2\x2\x4DA\x4DC\t\n\x2\x2\x4DB"+ + "\x4DD\a\xF4\x2\x2\x4DC\x4DB\x3\x2\x2\x2\x4DC\x4DD\x3\x2\x2\x2\x4DD\x4DF"+ + "\x3\x2\x2\x2\x4DE\x4E0\x5\x88\x45\x2\x4DF\x4DE\x3\x2\x2\x2\x4DF\x4E0\x3"+ + "\x2\x2\x2\x4E0\x4E2\x3\x2\x2\x2\x4E1\x4D8\x3\x2\x2\x2\x4E2\x4E3\x3\x2"+ + "\x2\x2\x4E3\x4E1\x3\x2\x2\x2\x4E3\x4E4\x3\x2\x2\x2\x4E4\x4E6\x3\x2\x2"+ + "\x2\x4E5\x4C4\x3\x2\x2\x2\x4E5\x4D5\x3\x2\x2\x2\x4E6\x87\x3\x2\x2\x2\x4E7"+ + "\x4F9\x5\xCA\x66\x2\x4E8\x4F6\t\v\x2\x2\x4E9\x4EB\a\xF4\x2\x2\x4EA\x4E9"+ + "\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC\x4EE\a\xC5"+ + "\x2\x2\x4ED\x4EF\a\xF4\x2\x2\x4EE\x4ED\x3\x2\x2\x2\x4EE\x4EF\x3\x2\x2"+ + "\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F2\x5\xF4{\x2\x4F1\x4F3\a\xF4\x2\x2\x4F2"+ + "\x4F1\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2\x4F3\x4F4\x3\x2\x2\x2\x4F4\x4F5"+ + "\a\xCC\x2\x2\x4F5\x4F7\x3\x2\x2\x2\x4F6\x4EA\x3\x2\x2\x2\x4F6\x4F7\x3"+ + "\x2\x2\x2\x4F7\x4F9\x3\x2\x2\x2\x4F8\x4E7\x3\x2\x2\x2\x4F8\x4E8\x3\x2"+ + "\x2\x2\x4F9\x89\x3\x2\x2\x2\x4FA\x4FB\a\x86\x2\x2\x4FB\x4FC\a\xF4\x2\x2"+ + "\x4FC\x4FE\x5\xDAn\x2\x4FD\x4FF\a\xF4\x2\x2\x4FE\x4FD\x3\x2\x2\x2\x4FE"+ + "\x4FF\x3\x2\x2\x2\x4FF\x500\x3\x2\x2\x2\x500\x505\a\t\x2\x2\x501\x503"+ + "\a\xF4\x2\x2\x502\x501\x3\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503\x504\x3"+ + "\x2\x2\x2\x504\x506\x5\x86\x44\x2\x505\x502\x3\x2\x2\x2\x505\x506\x3\x2"+ + "\x2\x2\x506\x8B\x3\x2\x2\x2\x507\x508\x5\x11C\x8F\x2\x508\x509\a\xF4\x2"+ + "\x2\x509\x50B\x3\x2\x2\x2\x50A\x507\x3\x2\x2\x2\x50A\x50B\x3\x2\x2\x2"+ + "\x50B\x50E\x3\x2\x2\x2\x50C\x50D\a\xA4\x2\x2\x50D\x50F\a\xF4\x2\x2\x50E"+ + "\x50C\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x511"+ + "\a\x88\x2\x2\x511\x512\a\xF4\x2\x2\x512\x514\x5\x104\x83\x2\x513\x515"+ + "\x5\x11A\x8E\x2\x514\x513\x3\x2\x2\x2\x514\x515\x3\x2\x2\x2\x515\x51A"+ + "\x3\x2\x2\x2\x516\x518\a\xF4\x2\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3"+ + "\x2\x2\x2\x518\x519\x3\x2\x2\x2\x519\x51B\x5\xFA~\x2\x51A\x517\x3\x2\x2"+ + "\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51E\x3\x2\x2\x2\x51C\x51D\a\xF4\x2\x2"+ + "\x51D\x51F\x5\x106\x84\x2\x51E\x51C\x3\x2\x2\x2\x51E\x51F\x3\x2\x2\x2"+ + "\x51F\x520\x3\x2\x2\x2\x520\x522\x5\x126\x94\x2\x521\x523\x5\x1C\xF\x2"+ + "\x522\x521\x3\x2\x2\x2\x522\x523\x3\x2\x2\x2\x523\x524\x3\x2\x2\x2\x524"+ + "\x525\a<\x2\x2\x525\x8D\x3\x2\x2\x2\x526\x527\x5\x11C\x8F\x2\x527\x528"+ + "\a\xF4\x2\x2\x528\x52A\x3\x2\x2\x2\x529\x526\x3\x2\x2\x2\x529\x52A\x3"+ + "\x2\x2\x2\x52A\x52D\x3\x2\x2\x2\x52B\x52C\a\xA4\x2\x2\x52C\x52E\a\xF4"+ + "\x2\x2\x52D\x52B\x3\x2\x2\x2\x52D\x52E\x3\x2\x2\x2\x52E\x52F\x3\x2\x2"+ + "\x2\x52F\x530\a\x8A\x2\x2\x530\x531\a\xF4\x2\x2\x531\x536\x5\x104\x83"+ + "\x2\x532\x534\a\xF4\x2\x2\x533\x532\x3\x2\x2\x2\x533\x534\x3\x2\x2\x2"+ + "\x534\x535\x3\x2\x2\x2\x535\x537\x5\xFA~\x2\x536\x533\x3\x2\x2\x2\x536"+ + "\x537\x3\x2\x2\x2\x537\x538\x3\x2\x2\x2\x538\x53A\x5\x126\x94\x2\x539"+ + "\x53B\x5\x1C\xF\x2\x53A\x539\x3\x2\x2\x2\x53A\x53B\x3\x2\x2\x2\x53B\x53C"+ + "\x3\x2\x2\x2\x53C\x53D\a<\x2\x2\x53D\x8F\x3\x2\x2\x2\x53E\x53F\x5\x11C"+ + "\x8F\x2\x53F\x540\a\xF4\x2\x2\x540\x542\x3\x2\x2\x2\x541\x53E\x3\x2\x2"+ + "\x2\x541\x542\x3\x2\x2\x2\x542\x545\x3\x2\x2\x2\x543\x544\a\xA4\x2\x2"+ + "\x544\x546\a\xF4\x2\x2\x545\x543\x3\x2\x2\x2\x545\x546\x3\x2\x2\x2\x546"+ + "\x547\x3\x2\x2\x2\x547\x548\a\x89\x2\x2\x548\x549\a\xF4\x2\x2\x549\x54E"+ + "\x5\x104\x83\x2\x54A\x54C\a\xF4\x2\x2\x54B\x54A\x3\x2\x2\x2\x54B\x54C"+ + "\x3\x2\x2\x2\x54C\x54D\x3\x2\x2\x2\x54D\x54F\x5\xFA~\x2\x54E\x54B\x3\x2"+ + "\x2\x2\x54E\x54F\x3\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x552\x5\x126\x94"+ + "\x2\x551\x553\x5\x1C\xF\x2\x552\x551\x3\x2\x2\x2\x552\x553\x3\x2\x2\x2"+ + "\x553\x554\x3\x2\x2\x2\x554\x555\a<\x2\x2\x555\x91\x3\x2\x2\x2\x556\x557"+ + "\a\x8D\x2\x2\x557\x558\a\xF4\x2\x2\x558\x55A\x5\xDAn\x2\x559\x55B\a\xF4"+ + "\x2\x2\x55A\x559\x3\x2\x2\x2\x55A\x55B\x3\x2\x2\x2\x55B\x55C\x3\x2\x2"+ + "\x2\x55C\x55E\a\t\x2\x2\x55D\x55F\a\xF4\x2\x2\x55E\x55D\x3\x2\x2\x2\x55E"+ + "\x55F\x3\x2\x2\x2\x55F\x561\x3\x2\x2\x2\x560\x562\x5\xCA\x66\x2\x561\x560"+ + "\x3\x2\x2\x2\x561\x562\x3\x2\x2\x2\x562\x564\x3\x2\x2\x2\x563\x565\a\xF4"+ + "\x2\x2\x564\x563\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2\x565\x566\x3\x2\x2"+ + "\x2\x566\x568\a\t\x2\x2\x567\x569\a\xF4\x2\x2\x568\x567\x3\x2\x2\x2\x568"+ + "\x569\x3\x2\x2\x2\x569\x56A\x3\x2\x2\x2\x56A\x56B\x5\xCA\x66\x2\x56B\x93"+ + "\x3\x2\x2\x2\x56C\x56D\a\x90\x2\x2\x56D\x56E\a\xF4\x2\x2\x56E\x57D\x5"+ + "\x104\x83\x2\x56F\x571\a\xF4\x2\x2\x570\x56F\x3\x2\x2\x2\x570\x571\x3"+ + "\x2\x2\x2\x571\x572\x3\x2\x2\x2\x572\x574\a\xC5\x2\x2\x573\x575\a\xF4"+ + "\x2\x2\x574\x573\x3\x2\x2\x2\x574\x575\x3\x2\x2\x2\x575\x57A\x3\x2\x2"+ + "\x2\x576\x578\x5\xF4{\x2\x577\x579\a\xF4\x2\x2\x578\x577\x3\x2\x2\x2\x578"+ + "\x579\x3\x2\x2\x2\x579\x57B\x3\x2\x2\x2\x57A\x576\x3\x2\x2\x2\x57A\x57B"+ + "\x3\x2\x2\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57E\a\xCC\x2\x2\x57D\x570\x3"+ + "\x2\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x95\x3\x2\x2\x2\x57F\x582\a\x8F\x2"+ + "\x2\x580\x581\a\xF4\x2\x2\x581\x583\x5\xCA\x66\x2\x582\x580\x3\x2\x2\x2"+ + "\x582\x583\x3\x2\x2\x2\x583\x97\x3\x2\x2\x2\x584\x585\a\x93\x2\x2\x585"+ + "\x588\a\xF4\x2\x2\x586\x587\a\x85\x2\x2\x587\x589\a\xF4\x2\x2\x588\x586"+ + "\x3\x2\x2\x2\x588\x589\x3\x2\x2\x2\x589\x58A\x3\x2\x2\x2\x58A\x595\x5"+ + "\x9AN\x2\x58B\x58D\a\xF4\x2\x2\x58C\x58B\x3\x2\x2\x2\x58C\x58D\x3\x2\x2"+ + "\x2\x58D\x58E\x3\x2\x2\x2\x58E\x590\a\t\x2\x2\x58F\x591\a\xF4\x2\x2\x590"+ + "\x58F\x3\x2\x2\x2\x590\x591\x3\x2\x2\x2\x591\x592\x3\x2\x2\x2\x592\x594"+ + "\x5\x9AN\x2\x593\x58C\x3\x2\x2\x2\x594\x597\x3\x2\x2\x2\x595\x593\x3\x2"+ + "\x2\x2\x595\x596\x3\x2\x2\x2\x596\x99\x3\x2\x2\x2\x597\x595\x3\x2\x2\x2"+ + "\x598\x59A\x5\xE8u\x2\x599\x59B\a\xF4\x2\x2\x59A\x599\x3\x2\x2\x2\x59A"+ + "\x59B\x3\x2\x2\x2\x59B\x59C\x3\x2\x2\x2\x59C\x59E\a\xC5\x2\x2\x59D\x59F"+ + "\a\xF4\x2\x2\x59E\x59D\x3\x2\x2\x2\x59E\x59F\x3\x2\x2\x2\x59F\x5A0\x3"+ + "\x2\x2\x2\x5A0\x5A2\x5\x100\x81\x2\x5A1\x5A3\a\xF4\x2\x2\x5A2\x5A1\x3"+ + "\x2\x2\x2\x5A2\x5A3\x3\x2\x2\x2\x5A3\x5A4\x3\x2\x2\x2\x5A4\x5A7\a\xCC"+ + "\x2\x2\x5A5\x5A6\a\xF4\x2\x2\x5A6\x5A8\x5\x106\x84\x2\x5A7\x5A5\x3\x2"+ + "\x2\x2\x5A7\x5A8\x3\x2\x2\x2\x5A8\x9B\x3\x2\x2\x2\x5A9\x5AA\a\x95\x2\x2"+ + "\x5AA\x9D\x3\x2\x2\x2\x5AB\x5B1\a\x96\x2\x2\x5AC\x5AF\a\xF4\x2\x2\x5AD"+ + "\x5B0\at\x2\x2\x5AE\x5B0\x5\x104\x83\x2\x5AF\x5AD\x3\x2\x2\x2\x5AF\x5AE"+ + "\x3\x2\x2\x2\x5B0\x5B2\x3\x2\x2\x2\x5B1\x5AC\x3\x2\x2\x2\x5B1\x5B2\x3"+ + "\x2\x2\x2\x5B2\x9F\x3\x2\x2\x2\x5B3\x5B4\a\x97\x2\x2\x5B4\xA1\x3\x2\x2"+ + "\x2\x5B5\x5B6\a\x98\x2\x2\x5B6\x5B7\a\xF4\x2\x2\x5B7\x5B8\x5\xCA\x66\x2"+ + "\x5B8\xA3\x3\x2\x2\x2\x5B9\x5BA\a\x99\x2\x2\x5BA\x5BB\a\xF4\x2\x2\x5BB"+ + "\x5BD\x5\xE8u\x2\x5BC\x5BE\a\xF4\x2\x2\x5BD\x5BC\x3\x2\x2\x2\x5BD\x5BE"+ + "\x3\x2\x2\x2\x5BE\x5BF\x3\x2\x2\x2\x5BF\x5C1\a\xC1\x2\x2\x5C0\x5C2\a\xF4"+ + "\x2\x2\x5C1\x5C0\x3\x2\x2\x2\x5C1\x5C2\x3\x2\x2\x2\x5C2\x5C3\x3\x2\x2"+ + "\x2\x5C3\x5C4\x5\xCA\x66\x2\x5C4\xA5\x3\x2\x2\x2\x5C5\x5C6\a\x9A\x2\x2"+ + "\x5C6\x5C7\a\xF4\x2\x2\x5C7\x5C9\x5\xCA\x66\x2\x5C8\x5CA\a\xF4\x2\x2\x5C9"+ + "\x5C8\x3\x2\x2\x2\x5C9\x5CA\x3\x2\x2\x2\x5CA\x5CB\x3\x2\x2\x2\x5CB\x5CD"+ + "\a\t\x2\x2\x5CC\x5CE\a\xF4\x2\x2\x5CD\x5CC\x3\x2\x2\x2\x5CD\x5CE\x3\x2"+ + "\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0\x5\xCA\x66\x2\x5D0\xA7\x3\x2\x2"+ + "\x2\x5D1\x5D2\a\x9B\x2\x2\x5D2\x5D3\a\xF4\x2\x2\x5D3\x5D5\x5\xCA\x66\x2"+ + "\x5D4\x5D6\a\xF4\x2\x2\x5D5\x5D4\x3\x2\x2\x2\x5D5\x5D6\x3\x2\x2\x2\x5D6"+ + "\x5D7\x3\x2\x2\x2\x5D7\x5D9\a\t\x2\x2\x5D8\x5DA\a\xF4\x2\x2\x5D9\x5D8"+ + "\x3\x2\x2\x2\x5D9\x5DA\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2\x5DB\x5DD\x5"+ + "\xCA\x66\x2\x5DC\x5DE\a\xF4\x2\x2\x5DD\x5DC\x3\x2\x2\x2\x5DD\x5DE\x3\x2"+ + "\x2\x2\x5DE\x5DF\x3\x2\x2\x2\x5DF\x5E1\a\t\x2\x2\x5E0\x5E2\a\xF4\x2\x2"+ + "\x5E1\x5E0\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2\x5E3\x3\x2\x2\x2\x5E3"+ + "\x5E5\x5\xCA\x66\x2\x5E4\x5E6\a\xF4\x2\x2\x5E5\x5E4\x3\x2\x2\x2\x5E5\x5E6"+ + "\x3\x2\x2\x2\x5E6\x5E7\x3\x2\x2\x2\x5E7\x5E9\a\t\x2\x2\x5E8\x5EA\a\xF4"+ + "\x2\x2\x5E9\x5E8\x3\x2\x2\x2\x5E9\x5EA\x3\x2\x2\x2\x5EA\x5EB\x3\x2\x2"+ + "\x2\x5EB\x5EC\x5\xCA\x66\x2\x5EC\xA9\x3\x2\x2\x2\x5ED\x5EE\a\x9C\x2\x2"+ + "\x5EE\x5EF\a\xF4\x2\x2\x5EF\x5F1\x5\xDAn\x2\x5F0\x5F2\a\xF4\x2\x2\x5F1"+ + "\x5F0\x3\x2\x2\x2\x5F1\x5F2\x3\x2\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F5"+ + "\a\t\x2\x2\x5F4\x5F6\a\xF4\x2\x2\x5F5\x5F4\x3\x2\x2\x2\x5F5\x5F6\x3\x2"+ + "\x2\x2\x5F6\x5F7\x3\x2\x2\x2\x5F7\x5F8\x5\xCA\x66\x2\x5F8\xAB\x3\x2\x2"+ + "\x2\x5F9\x5FA\a\x9D\x2\x2\x5FA\x5FB\a\xF4\x2\x2\x5FB\x5FC\a\x1B\x2\x2"+ + "\x5FC\x5FD\a\xF4\x2\x2\x5FD\x5FE\x5\xCA\x66\x2\x5FE\x602\x5\x126\x94\x2"+ + "\x5FF\x601\x5\xB0Y\x2\x600\x5FF\x3\x2\x2\x2\x601\x604\x3\x2\x2\x2\x602"+ + "\x600\x3\x2\x2\x2\x602\x603\x3\x2\x2\x2\x603\x605\x3\x2\x2\x2\x604\x602"+ + "\x3\x2\x2\x2\x605\x606\a=\x2\x2\x606\xAD\x3\x2\x2\x2\x607\x609\aZ\x2\x2"+ + "\x608\x60A\a\xF4\x2\x2\x609\x608\x3\x2\x2\x2\x609\x60A\x3\x2\x2\x2\x60A"+ + "\x60B\x3\x2\x2\x2\x60B\x60D\x5\x10C\x87\x2\x60C\x60E\a\xF4\x2\x2\x60D"+ + "\x60C\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610"+ + "\x5\xCA\x66\x2\x610\x619\x3\x2\x2\x2\x611\x612\x5\xCA\x66\x2\x612\x613"+ + "\a\xF4\x2\x2\x613\x614\a\xAD\x2\x2\x614\x615\a\xF4\x2\x2\x615\x616\x5"+ + "\xCA\x66\x2\x616\x619\x3\x2\x2\x2\x617\x619\x5\xCA\x66\x2\x618\x607\x3"+ + "\x2\x2\x2\x618\x611\x3\x2\x2\x2\x618\x617\x3\x2\x2\x2\x619\xAF\x3\x2\x2"+ + "\x2\x61A\x61B\a\x1B\x2\x2\x61B\x61C\a\xF4\x2\x2\x61C\x61D\x5\xB2Z\x2\x61D"+ + "\x61F\x5\x126\x94\x2\x61E\x620\x5\x1C\xF\x2\x61F\x61E\x3\x2\x2\x2\x61F"+ + "\x620\x3\x2\x2\x2\x620\xB1\x3\x2\x2\x2\x621\x631\a\x36\x2\x2\x622\x62D"+ + "\x5\xAEX\x2\x623\x625\a\xF4\x2\x2\x624\x623\x3\x2\x2\x2\x624\x625\x3\x2"+ + "\x2\x2\x625\x626\x3\x2\x2\x2\x626\x628\a\t\x2\x2\x627\x629\a\xF4\x2\x2"+ + "\x628\x627\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62A\x3\x2\x2\x2\x62A"+ + "\x62C\x5\xAEX\x2\x62B\x624\x3\x2\x2\x2\x62C\x62F\x3\x2\x2\x2\x62D\x62B"+ + "\x3\x2\x2\x2\x62D\x62E\x3\x2\x2\x2\x62E\x631\x3\x2\x2\x2\x62F\x62D\x3"+ + "\x2\x2\x2\x630\x621\x3\x2\x2\x2\x630\x622\x3\x2\x2\x2\x631\xB3\x3\x2\x2"+ + "\x2\x632\x633\a\x9E\x2\x2\x633\x634\a\xF4\x2\x2\x634\x63D\x5\xCA\x66\x2"+ + "\x635\x637\a\xF4\x2\x2\x636\x635\x3\x2\x2\x2\x636\x637\x3\x2\x2\x2\x637"+ + "\x638\x3\x2\x2\x2\x638\x63A\a\t\x2\x2\x639\x63B\a\xF4\x2\x2\x63A\x639"+ + "\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63C\x3\x2\x2\x2\x63C\x63E\x5"+ + "\xCA\x66\x2\x63D\x636\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2\x63E\xB5\x3\x2"+ + "\x2\x2\x63F\x640\a\xA0\x2\x2\x640\x641\a\xF4\x2\x2\x641\x643\x5\xCA\x66"+ + "\x2\x642\x644\a\xF4\x2\x2\x643\x642\x3\x2\x2\x2\x643\x644\x3\x2\x2\x2"+ + "\x644\x645\x3\x2\x2\x2\x645\x647\a\t\x2\x2\x646\x648\a\xF4\x2\x2\x647"+ + "\x646\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648\x649\x3\x2\x2\x2\x649\x64A"+ + "\x5\xCA\x66\x2\x64A\xB7\x3\x2\x2\x2\x64B\x64C\a\x9F\x2\x2\x64C\x64D\a"+ + "\xF4\x2\x2\x64D\x64F\x5\xE8u\x2\x64E\x650\a\xF4\x2\x2\x64F\x64E\x3\x2"+ + "\x2\x2\x64F\x650\x3\x2\x2\x2\x650\x651\x3\x2\x2\x2\x651\x653\a\xC1\x2"+ + "\x2\x652\x654\a\xF4\x2\x2\x653\x652\x3\x2\x2\x2\x653\x654\x3\x2\x2\x2"+ + "\x654\x655\x3\x2\x2\x2\x655\x656\x5\xCA\x66\x2\x656\xB9\x3\x2\x2\x2\x657"+ + "\x658\a\xA6\x2\x2\x658\xBB\x3\x2\x2\x2\x659\x65A\x5\x11C\x8F\x2\x65A\x65B"+ + "\a\xF4\x2\x2\x65B\x65D\x3\x2\x2\x2\x65C\x659\x3\x2\x2\x2\x65C\x65D\x3"+ + "\x2\x2\x2\x65D\x660\x3\x2\x2\x2\x65E\x65F\a\xA4\x2\x2\x65F\x661\a\xF4"+ + "\x2\x2\x660\x65E\x3\x2\x2\x2\x660\x661\x3\x2\x2\x2\x661\x662\x3\x2\x2"+ + "\x2\x662\x664\a\xA8\x2\x2\x663\x665\a\xF4\x2\x2\x664\x663\x3\x2\x2\x2"+ + "\x664\x665\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2\x666\x66B\x5\x104\x83\x2"+ + "\x667\x669\a\xF4\x2\x2\x668\x667\x3\x2\x2\x2\x668\x669\x3\x2\x2\x2\x669"+ + "\x66A\x3\x2\x2\x2\x66A\x66C\x5\xFA~\x2\x66B\x668\x3\x2\x2\x2\x66B\x66C"+ + "\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2\x66D\x66F\x5\x126\x94\x2\x66E\x670"+ + "\x5\x1C\xF\x2\x66F\x66E\x3\x2\x2\x2\x66F\x670\x3\x2\x2\x2\x670\x671\x3"+ + "\x2\x2\x2\x671\x672\a>\x2\x2\x672\xBD\x3\x2\x2\x2\x673\x675\a\xAC\x2\x2"+ + "\x674\x676\a\xF4\x2\x2\x675\x674\x3\x2\x2\x2\x675\x676\x3\x2\x2\x2\x676"+ + "\x677\x3\x2\x2\x2\x677\x679\a\xC1\x2\x2\x678\x67A\a\xF4\x2\x2\x679\x678"+ + "\x3\x2\x2\x2\x679\x67A\x3\x2\x2\x2\x67A\x67B\x3\x2\x2\x2\x67B\x67C\x5"+ + "\xCA\x66\x2\x67C\xBF\x3\x2\x2\x2\x67D\x67E\x5\x11C\x8F\x2\x67E\x67F\a"+ + "\xF4\x2\x2\x67F\x681\x3\x2\x2\x2\x680\x67D\x3\x2\x2\x2\x680\x681\x3\x2"+ + "\x2\x2\x681\x682\x3\x2\x2\x2\x682\x683\a\xAF\x2\x2\x683\x684\a\xF4\x2"+ + "\x2\x684\x685\x5\x104\x83\x2\x685\x689\x5\x126\x94\x2\x686\x688\x5\xC2"+ + "\x62\x2\x687\x686\x3\x2\x2\x2\x688\x68B\x3\x2\x2\x2\x689\x687\x3\x2\x2"+ + "\x2\x689\x68A\x3\x2\x2\x2\x68A\x68C\x3\x2\x2\x2\x68B\x689\x3\x2\x2\x2"+ + "\x68C\x68D\a?\x2\x2\x68D\xC1\x3\x2\x2\x2\x68E\x69D\x5\x104\x83\x2\x68F"+ + "\x691\a\xF4\x2\x2\x690\x68F\x3\x2\x2\x2\x690\x691\x3\x2\x2\x2\x691\x692"+ + "\x3\x2\x2\x2\x692\x697\a\xC5\x2\x2\x693\x695\a\xF4\x2\x2\x694\x693\x3"+ + "\x2\x2\x2\x694\x695\x3\x2\x2\x2\x695\x696\x3\x2\x2\x2\x696\x698\x5\x100"+ + "\x81\x2\x697\x694\x3\x2\x2\x2\x697\x698\x3\x2\x2\x2\x698\x69A\x3\x2\x2"+ + "\x2\x699\x69B\a\xF4\x2\x2\x69A\x699\x3\x2\x2\x2\x69A\x69B\x3\x2\x2\x2"+ + "\x69B\x69C\x3\x2\x2\x2\x69C\x69E\a\xCC\x2\x2\x69D\x690\x3\x2\x2\x2\x69D"+ + "\x69E\x3\x2\x2\x2\x69E\x6A1\x3\x2\x2\x2\x69F\x6A0\a\xF4\x2\x2\x6A0\x6A2"+ + "\x5\x106\x84\x2\x6A1\x69F\x3\x2\x2\x2\x6A1\x6A2\x3\x2\x2\x2\x6A2\x6A3"+ + "\x3\x2\x2\x2\x6A3\x6A4\x5\x126\x94\x2\x6A4\xC3\x3\x2\x2\x2\x6A5\x6A6\a"+ + "\xB0\x2\x2\x6A6\x6A7\a\xF4\x2\x2\x6A7\x6AC\x5\xCA\x66\x2\x6A8\x6A9\a\xF4"+ + "\x2\x2\x6A9\x6AA\aZ\x2\x2\x6AA\x6AB\a\xF4\x2\x2\x6AB\x6AD\x5\x118\x8D"+ + "\x2\x6AC\x6A8\x3\x2\x2\x2\x6AC\x6AD\x3\x2\x2\x2\x6AD\xC5\x3\x2\x2\x2\x6AE"+ + "\x6AF\a\xB1\x2\x2\x6AF\x6B0\a\xF4\x2\x2\x6B0\x6B1\x5\xCA\x66\x2\x6B1\xC7"+ + "\x3\x2\x2\x2\x6B2\x6B3\a\xB2\x2\x2\x6B3\x6B4\a\xF4\x2\x2\x6B4\x6C3\x5"+ + "\xDAn\x2\x6B5\x6B7\a\xF4\x2\x2\x6B6\x6B5\x3\x2\x2\x2\x6B6\x6B7\x3\x2\x2"+ + "\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6BA\a\t\x2\x2\x6B9\x6BB\a\xF4\x2\x2\x6BA"+ + "\x6B9\x3\x2\x2\x2\x6BA\x6BB\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6C1"+ + "\x5\xCA\x66\x2\x6BD\x6BE\a\xF4\x2\x2\x6BE\x6BF\a\xAD\x2\x2\x6BF\x6C0\a"+ + "\xF4\x2\x2\x6C0\x6C2\x5\xCA\x66\x2\x6C1\x6BD\x3\x2\x2\x2\x6C1\x6C2\x3"+ + "\x2\x2\x2\x6C2\x6C4\x3\x2\x2\x2\x6C3\x6B6\x3\x2\x2\x2\x6C3\x6C4\x3\x2"+ + "\x2\x2\x6C4\xC9\x3\x2\x2\x2\x6C5\x6C6\b\x66\x1\x2\x6C6\x6C8\au\x2\x2\x6C7"+ + "\x6C9\a\xF4\x2\x2\x6C8\x6C7\x3\x2\x2\x2\x6C8\x6C9\x3\x2\x2\x2\x6C9\x6CA"+ + "\x3\x2\x2\x2\x6CA\x6FD\x5\xCA\x66\x15\x6CB\x6CD\a\f\x2\x2\x6CC\x6CE\a"+ + "\xF4\x2\x2\x6CD\x6CC\x3\x2\x2\x2\x6CD\x6CE\x3\x2\x2\x2\x6CE\x6CF\x3\x2"+ + "\x2\x2\x6CF\x6FD\x5\xCA\x66\x12\x6D0\x6D2\x5\xE8u\x2\x6D1\x6D3\a\xF4\x2"+ + "\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2"+ + "\x6D4\x6D6\a\xBE\x2\x2\x6D5\x6D7\a\xF4\x2\x2\x6D6\x6D5\x3\x2\x2\x2\x6D6"+ + "\x6D7\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8\x6D9\x5\xCA\x66\x11\x6D9"+ + "\x6FD\x3\x2\x2\x2\x6DA\x6DC\a\xC7\x2\x2\x6DB\x6DD\a\xF4\x2\x2\x6DC\x6DB"+ + "\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x6DE\x3\x2\x2\x2\x6DE\x6FD\x5"+ + "\xCA\x66\xF\x6DF\x6E1\av\x2\x2\x6E0\x6E2\a\xF4\x2\x2\x6E1\x6E0\x3\x2\x2"+ + "\x2\x6E1\x6E2\x3\x2\x2\x2\x6E2\x6E3\x3\x2\x2\x2\x6E3\x6FD\x5\xCA\x66\b"+ + "\x6E4\x6FD\x5\x116\x8C\x2\x6E5\x6FD\x5\xE8u\x2\x6E6\x6E8\a\xC5\x2\x2\x6E7"+ + "\x6E9\a\xF4\x2\x2\x6E8\x6E7\x3\x2\x2\x2\x6E8\x6E9\x3\x2\x2\x2\x6E9\x6EA"+ + "\x3\x2\x2\x2\x6EA\x6F5\x5\xCA\x66\x2\x6EB\x6ED\a\xF4\x2\x2\x6EC\x6EB\x3"+ + "\x2\x2\x2\x6EC\x6ED\x3\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x6F0\a\t\x2"+ + "\x2\x6EF\x6F1\a\xF4\x2\x2\x6F0\x6EF\x3\x2\x2\x2\x6F0\x6F1\x3\x2\x2\x2"+ + "\x6F1\x6F2\x3\x2\x2\x2\x6F2\x6F4\x5\xCA\x66\x2\x6F3\x6EC\x3\x2\x2\x2\x6F4"+ + "\x6F7\x3\x2\x2\x2\x6F5\x6F3\x3\x2\x2\x2\x6F5\x6F6\x3\x2\x2\x2\x6F6\x6F8"+ + "\x3\x2\x2\x2\x6F7\x6F5\x3\x2\x2\x2\x6F8\x6F9\a\xCC\x2\x2\x6F9\x6FD\x3"+ + "\x2\x2\x2\x6FA\x6FD\x5\xC4\x63\x2\x6FB\x6FD\x5x=\x2\x6FC\x6C5\x3\x2\x2"+ + "\x2\x6FC\x6CB\x3\x2\x2\x2\x6FC\x6D0\x3\x2\x2\x2\x6FC\x6DA\x3\x2\x2\x2"+ + "\x6FC\x6DF\x3\x2\x2\x2\x6FC\x6E4\x3\x2\x2\x2\x6FC\x6E5\x3\x2\x2\x2\x6FC"+ + "\x6E6\x3\x2\x2\x2\x6FC\x6FA\x3\x2\x2\x2\x6FC\x6FB\x3\x2\x2\x2\x6FD\x76C"+ + "\x3\x2\x2\x2\x6FE\x700\f\x10\x2\x2\x6FF\x701\a\xF4\x2\x2\x700\x6FF\x3"+ + "\x2\x2\x2\x700\x701\x3\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x704\a\xCB"+ + "\x2\x2\x703\x705\a\xF4\x2\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2"+ + "\x2\x705\x706\x3\x2\x2\x2\x706\x76B\x5\xCA\x66\x11\x707\x709\f\xE\x2\x2"+ + "\x708\x70A\a\xF4\x2\x2\x709\x708\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A"+ + "\x70B\x3\x2\x2\x2\x70B\x70D\t\f\x2\x2\x70C\x70E\a\xF4\x2\x2\x70D\x70C"+ + "\x3\x2\x2\x2\x70D\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x76B\x5"+ + "\xCA\x66\xF\x710\x712\f\r\x2\x2\x711\x713\a\xF4\x2\x2\x712\x711\x3\x2"+ + "\x2\x2\x712\x713\x3\x2\x2\x2\x713\x714\x3\x2\x2\x2\x714\x716\a\xC0\x2"+ + "\x2\x715\x717\a\xF4\x2\x2\x716\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2"+ + "\x717\x718\x3\x2\x2\x2\x718\x76B\x5\xCA\x66\xE\x719\x71B\f\f\x2\x2\x71A"+ + "\x71C\a\xF4\x2\x2\x71B\x71A\x3\x2\x2\x2\x71B\x71C\x3\x2\x2\x2\x71C\x71D"+ + "\x3\x2\x2\x2\x71D\x71F\ar\x2\x2\x71E\x720\a\xF4\x2\x2\x71F\x71E\x3\x2"+ + "\x2\x2\x71F\x720\x3\x2\x2\x2\x720\x721\x3\x2\x2\x2\x721\x76B\x5\xCA\x66"+ + "\r\x722\x724\f\v\x2\x2\x723\x725\a\xF4\x2\x2\x724\x723\x3\x2\x2\x2\x724"+ + "\x725\x3\x2\x2\x2\x725\x726\x3\x2\x2\x2\x726\x728\t\r\x2\x2\x727\x729"+ + "\a\xF4\x2\x2\x728\x727\x3\x2\x2\x2\x728\x729\x3\x2\x2\x2\x729\x72A\x3"+ + "\x2\x2\x2\x72A\x76B\x5\xCA\x66\f\x72B\x72D\f\n\x2\x2\x72C\x72E\a\xF4\x2"+ + "\x2\x72D\x72C\x3\x2\x2\x2\x72D\x72E\x3\x2\x2\x2\x72E\x72F\x3\x2\x2\x2"+ + "\x72F\x731\a\xBD\x2\x2\x730\x732\a\xF4\x2\x2\x731\x730\x3\x2\x2\x2\x731"+ + "\x732\x3\x2\x2\x2\x732\x733\x3\x2\x2\x2\x733\x76B\x5\xCA\x66\v\x734\x736"+ + "\f\t\x2\x2\x735\x737\a\xF4\x2\x2\x736\x735\x3\x2\x2\x2\x736\x737\x3\x2"+ + "\x2\x2\x737\x738\x3\x2\x2\x2\x738\x73A\t\xE\x2\x2\x739\x73B\a\xF4\x2\x2"+ + "\x73A\x739\x3\x2\x2\x2\x73A\x73B\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C"+ + "\x76B\x5\xCA\x66\n\x73D\x73F\f\a\x2\x2\x73E\x740\a\xF4\x2\x2\x73F\x73E"+ + "\x3\x2\x2\x2\x73F\x740\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\a\xE"+ + "\x2\x2\x742\x744\a\xF4\x2\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2\x2"+ + "\x2\x744\x745\x3\x2\x2\x2\x745\x76B\x5\xCA\x66\b\x746\x748\f\x6\x2\x2"+ + "\x747\x749\a\xF4\x2\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2\x749"+ + "\x74A\x3\x2\x2\x2\x74A\x74C\a\x82\x2\x2\x74B\x74D\a\xF4\x2\x2\x74C\x74B"+ + "\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x76B\x5"+ + "\xCA\x66\a\x74F\x751\f\x5\x2\x2\x750\x752\a\xF4\x2\x2\x751\x750\x3\x2"+ + "\x2\x2\x751\x752\x3\x2\x2\x2\x752\x753\x3\x2\x2\x2\x753\x755\a\xBC\x2"+ + "\x2\x754\x756\a\xF4\x2\x2\x755\x754\x3\x2\x2\x2\x755\x756\x3\x2\x2\x2"+ + "\x756\x757\x3\x2\x2\x2\x757\x76B\x5\xCA\x66\x6\x758\x75A\f\x4\x2\x2\x759"+ + "\x75B\a\xF4\x2\x2\x75A\x759\x3\x2\x2\x2\x75A\x75B\x3\x2\x2\x2\x75B\x75C"+ + "\x3\x2\x2\x2\x75C\x75E\a\x43\x2\x2\x75D\x75F\a\xF4\x2\x2\x75E\x75D\x3"+ + "\x2\x2\x2\x75E\x75F\x3\x2\x2\x2\x75F\x760\x3\x2\x2\x2\x760\x76B\x5\xCA"+ + "\x66\x5\x761\x763\f\x3\x2\x2\x762\x764\a\xF4\x2\x2\x763\x762\x3\x2\x2"+ + "\x2\x763\x764\x3\x2\x2\x2\x764\x765\x3\x2\x2\x2\x765\x767\aV\x2\x2\x766"+ + "\x768\a\xF4\x2\x2\x767\x766\x3\x2\x2\x2\x767\x768\x3\x2\x2\x2\x768\x769"+ + "\x3\x2\x2\x2\x769\x76B\x5\xCA\x66\x4\x76A\x6FE\x3\x2\x2\x2\x76A\x707\x3"+ + "\x2\x2\x2\x76A\x710\x3\x2\x2\x2\x76A\x719\x3\x2\x2\x2\x76A\x722\x3\x2"+ + "\x2\x2\x76A\x72B\x3\x2\x2\x2\x76A\x734\x3\x2\x2\x2\x76A\x73D\x3\x2\x2"+ + "\x2\x76A\x746\x3\x2\x2\x2\x76A\x74F\x3\x2\x2\x2\x76A\x758\x3\x2\x2\x2"+ + "\x76A\x761\x3\x2\x2\x2\x76B\x76E\x3\x2\x2\x2\x76C\x76A\x3\x2\x2\x2\x76C"+ + "\x76D\x3\x2\x2\x2\x76D\xCB\x3\x2\x2\x2\x76E\x76C\x3\x2\x2\x2\x76F\x773"+ + "\a\x32\x2\x2\x770\x773\a\xA4\x2\x2\x771\x773\x5\x11C\x8F\x2\x772\x76F"+ + "\x3\x2\x2\x2\x772\x770\x3\x2\x2\x2\x772\x771\x3\x2\x2\x2\x773\x774\x3"+ + "\x2\x2\x2\x774\x777\a\xF4\x2\x2\x775\x776\a\xBA\x2\x2\x776\x778\a\xF4"+ + "\x2\x2\x777\x775\x3\x2\x2\x2\x777\x778\x3\x2\x2\x2\x778\x779\x3\x2\x2"+ + "\x2\x779\x77A\x5\xCEh\x2\x77A\xCD\x3\x2\x2\x2\x77B\x786\x5\xD0i\x2\x77C"+ + "\x77E\a\xF4\x2\x2\x77D\x77C\x3\x2\x2\x2\x77D\x77E\x3\x2\x2\x2\x77E\x77F"+ + "\x3\x2\x2\x2\x77F\x781\a\t\x2\x2\x780\x782\a\xF4\x2\x2\x781\x780\x3\x2"+ + "\x2\x2\x781\x782\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\x785\x5\xD0i\x2"+ + "\x784\x77D\x3\x2\x2\x2\x785\x788\x3\x2\x2\x2\x786\x784\x3\x2\x2\x2\x786"+ + "\x787\x3\x2\x2\x2\x787\xCF\x3\x2\x2\x2\x788\x786\x3\x2\x2\x2\x789\x79B"+ + "\x5\x104\x83\x2\x78A\x78C\a\xF4\x2\x2\x78B\x78A\x3\x2\x2\x2\x78B\x78C"+ + "\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\x78F\a\xC5\x2\x2\x78E\x790\a\xF4"+ + "\x2\x2\x78F\x78E\x3\x2\x2\x2\x78F\x790\x3\x2\x2\x2\x790\x795\x3\x2\x2"+ + "\x2\x791\x793\x5\x100\x81\x2\x792\x794\a\xF4\x2\x2\x793\x792\x3\x2\x2"+ + "\x2\x793\x794\x3\x2\x2\x2\x794\x796\x3\x2\x2\x2\x795\x791\x3\x2\x2\x2"+ + "\x795\x796\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x799\a\xCC\x2\x2\x798"+ + "\x79A\a\xF4\x2\x2\x799\x798\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2\x79A\x79C"+ + "\x3\x2\x2\x2\x79B\x78B\x3\x2\x2\x2\x79B\x79C\x3\x2\x2\x2\x79C\x79E\x3"+ + "\x2\x2\x2\x79D\x79F\x5\x11A\x8E\x2\x79E\x79D\x3\x2\x2\x2\x79E\x79F\x3"+ + "\x2\x2\x2\x79F\x7A2\x3\x2\x2\x2\x7A0\x7A1\a\xF4\x2\x2\x7A1\x7A3\x5\x106"+ + "\x84\x2\x7A2\x7A0\x3\x2\x2\x2\x7A2\x7A3\x3\x2\x2\x2\x7A3\xD1\x3\x2\x2"+ + "\x2\x7A4\x7A5\a\xB7\x2\x2\x7A5\x7A6\a\xF4\x2\x2\x7A6\x7A7\x5\xCA\x66\x2"+ + "\x7A7\x7A9\x5\x126\x94\x2\x7A8\x7AA\x5\x1C\xF\x2\x7A9\x7A8\x3\x2\x2\x2"+ + "\x7A9\x7AA\x3\x2\x2\x2\x7AA\x7AB\x3\x2\x2\x2\x7AB\x7AC\a\xB6\x2\x2\x7AC"+ + "\xD3\x3\x2\x2\x2\x7AD\x7AE\a\xB8\x2\x2\x7AE\x7AF\a\xF4\x2\x2\x7AF\x7B1"+ + "\x5\xDAn\x2\x7B0\x7B2\a\xF4\x2\x2\x7B1\x7B0\x3\x2\x2\x2\x7B1\x7B2\x3\x2"+ + "\x2\x2\x7B2\x7B3\x3\x2\x2\x2\x7B3\x7B5\a\t\x2\x2\x7B4\x7B6\a\xF4\x2\x2"+ + "\x7B5\x7B4\x3\x2\x2\x2\x7B5\x7B6\x3\x2\x2\x2\x7B6\x7B7\x3\x2\x2\x2\x7B7"+ + "\x7B8\x5\xCA\x66\x2\x7B8\xD5\x3\x2\x2\x2\x7B9\x7BA\a\xB9\x2\x2\x7BA\x7BF"+ + "\a\xF4\x2\x2\x7BB\x7C0\x5\xE8u\x2\x7BC\x7BD\au\x2\x2\x7BD\x7BE\a\xF4\x2"+ + "\x2\x7BE\x7C0\x5\x118\x8D\x2\x7BF\x7BB\x3\x2\x2\x2\x7BF\x7BC\x3\x2\x2"+ + "\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1\x7C3\x5\x126\x94\x2\x7C2\x7C4\x5\x1C\xF"+ + "\x2\x7C3\x7C2\x3\x2\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2\x2"+ + "\x7C5\x7C6\a@\x2\x2\x7C6\xD7\x3\x2\x2\x2\x7C7\x7C8\a\xBB\x2\x2\x7C8\x7C9"+ + "\a\xF4\x2\x2\x7C9\x7CB\x5\xDAn\x2\x7CA\x7CC\a\xF4\x2\x2\x7CB\x7CA\x3\x2"+ + "\x2\x2\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\x7D2\a\t\x2\x2"+ + "\x7CE\x7D0\a\xF4\x2\x2\x7CF\x7CE\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0"+ + "\x7D1\x3\x2\x2\x2\x7D1\x7D3\x5\x86\x44\x2\x7D2\x7CF\x3\x2\x2\x2\x7D2\x7D3"+ + "\x3\x2\x2\x2\x7D3\xD9\x3\x2\x2\x2\x7D4\x7D6\a\x5\x2\x2\x7D5\x7D4\x3\x2"+ + "\x2\x2\x7D5\x7D6\x3\x2\x2\x2\x7D6\x7D7\x3\x2\x2\x2\x7D7\x7D8\x5\xCA\x66"+ + "\x2\x7D8\xDB\x3\x2\x2\x2\x7D9\x7DC\x5\xDEp\x2\x7DA\x7DC\x5\xE0q\x2\x7DB"+ + "\x7D9\x3\x2\x2\x2\x7DB\x7DA\x3\x2\x2\x2\x7DC\xDD\x3\x2\x2\x2\x7DD\x7DE"+ + "\a\x1A\x2\x2\x7DE\x7DF\a\xF4\x2\x2\x7DF\x7E1\x5\x104\x83\x2\x7E0\x7E2"+ + "\x5\x11A\x8E\x2\x7E1\x7E0\x3\x2\x2\x2\x7E1\x7E2\x3\x2\x2\x2\x7E2\x7F0"+ + "\x3\x2\x2\x2\x7E3\x7E5\a\xF4\x2\x2\x7E4\x7E3\x3\x2\x2\x2\x7E4\x7E5\x3"+ + "\x2\x2\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7E8\a\xC5\x2\x2\x7E7\x7E9\a\xF4"+ + "\x2\x2\x7E8\x7E7\x3\x2\x2\x2\x7E8\x7E9\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2"+ + "\x2\x7EA\x7EC\x5\xF4{\x2\x7EB\x7ED\a\xF4\x2\x2\x7EC\x7EB\x3\x2\x2\x2\x7EC"+ + "\x7ED\x3\x2\x2\x2\x7ED\x7EE\x3\x2\x2\x2\x7EE\x7EF\a\xCC\x2\x2\x7EF\x7F1"+ + "\x3\x2\x2\x2\x7F0\x7E4\x3\x2\x2\x2\x7F0\x7F1\x3\x2\x2\x2\x7F1\x7FB\x3"+ + "\x2\x2\x2\x7F2\x7F4\a\xF4\x2\x2\x7F3\x7F2\x3\x2\x2\x2\x7F3\x7F4\x3\x2"+ + "\x2\x2\x7F4\x7F5\x3\x2\x2\x2\x7F5\x7F6\a\xC5\x2\x2\x7F6\x7F7\x5\x100\x81"+ + "\x2\x7F7\x7F8\a\xCC\x2\x2\x7F8\x7FA\x3\x2\x2\x2\x7F9\x7F3\x3\x2\x2\x2"+ + "\x7FA\x7FD\x3\x2\x2\x2\x7FB\x7F9\x3\x2\x2\x2\x7FB\x7FC\x3\x2\x2\x2\x7FC"+ + "\xDF\x3\x2\x2\x2\x7FD\x7FB\x3\x2\x2\x2\x7FE\x7FF\a\x1A\x2\x2\x7FF\x801"+ + "\a\xF4\x2\x2\x800\x802\x5\xE8u\x2\x801\x800\x3\x2\x2\x2\x801\x802\x3\x2"+ + "\x2\x2\x802\x803\x3\x2\x2\x2\x803\x804\a\n\x2\x2\x804\x806\x5\x104\x83"+ + "\x2\x805\x807\x5\x11A\x8E\x2\x806\x805\x3\x2\x2\x2\x806\x807\x3\x2\x2"+ + "\x2\x807\x815\x3\x2\x2\x2\x808\x80A\a\xF4\x2\x2\x809\x808\x3\x2\x2\x2"+ + "\x809\x80A\x3\x2\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80D\a\xC5\x2\x2\x80C"+ + "\x80E\a\xF4\x2\x2\x80D\x80C\x3\x2\x2\x2\x80D\x80E\x3\x2\x2\x2\x80E\x80F"+ + "\x3\x2\x2\x2\x80F\x811\x5\xF4{\x2\x810\x812\a\xF4\x2\x2\x811\x810\x3\x2"+ + "\x2\x2\x811\x812\x3\x2\x2\x2\x812\x813\x3\x2\x2\x2\x813\x814\a\xCC\x2"+ + "\x2\x814\x816\x3\x2\x2\x2\x815\x809\x3\x2\x2\x2\x815\x816\x3\x2\x2\x2"+ + "\x816\x820\x3\x2\x2\x2\x817\x819\a\xF4\x2\x2\x818\x817\x3\x2\x2\x2\x818"+ + "\x819\x3\x2\x2\x2\x819\x81A\x3\x2\x2\x2\x81A\x81B\a\xC5\x2\x2\x81B\x81C"+ + "\x5\x100\x81\x2\x81C\x81D\a\xCC\x2\x2\x81D\x81F\x3\x2\x2\x2\x81E\x818"+ + "\x3\x2\x2\x2\x81F\x822\x3\x2\x2\x2\x820\x81E\x3\x2\x2\x2\x820\x821\x3"+ + "\x2\x2\x2\x821\xE1\x3\x2\x2\x2\x822\x820\x3\x2\x2\x2\x823\x826\x5\xE4"+ + "s\x2\x824\x826\x5\xE6t\x2\x825\x823\x3\x2\x2\x2\x825\x824\x3\x2\x2\x2"+ + "\x826\xE3\x3\x2\x2\x2\x827\x829\x5\xE8u\x2\x828\x827\x3\x2\x2\x2\x828"+ + "\x829\x3\x2\x2\x2\x829\x82A\x3\x2\x2\x2\x82A\x82B\a\n\x2\x2\x82B\x82D"+ + "\x5\x104\x83\x2\x82C\x82E\x5\x11A\x8E\x2\x82D\x82C\x3\x2\x2\x2\x82D\x82E"+ + "\x3\x2\x2\x2\x82E\x831\x3\x2\x2\x2\x82F\x830\a\xF4\x2\x2\x830\x832\x5"+ + "\xF4{\x2\x831\x82F\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832\x837\x3\x2\x2"+ + "\x2\x833\x835\a\xF4\x2\x2\x834\x833\x3\x2\x2\x2\x834\x835\x3\x2\x2\x2"+ + "\x835\x836\x3\x2\x2\x2\x836\x838\x5\xF8}\x2\x837\x834\x3\x2\x2\x2\x837"+ + "\x838\x3\x2\x2\x2\x838\x842\x3\x2\x2\x2\x839\x83B\a\xF4\x2\x2\x83A\x839"+ + "\x3\x2\x2\x2\x83A\x83B\x3\x2\x2\x2\x83B\x83C\x3\x2\x2\x2\x83C\x83D\a\xC5"+ + "\x2\x2\x83D\x83E\x5\x100\x81\x2\x83E\x83F\a\xCC\x2\x2\x83F\x841\x3\x2"+ + "\x2\x2\x840\x83A\x3\x2\x2\x2\x841\x844\x3\x2\x2\x2\x842\x840\x3\x2\x2"+ + "\x2\x842\x843\x3\x2\x2\x2\x843\xE5\x3\x2\x2\x2\x844\x842\x3\x2\x2\x2\x845"+ + "\x848\x5\x10A\x86\x2\x846\x847\a\xF4\x2\x2\x847\x849\x5\xF4{\x2\x848\x846"+ + "\x3\x2\x2\x2\x848\x849\x3\x2\x2\x2\x849\x853\x3\x2\x2\x2\x84A\x84C\a\xF4"+ + "\x2\x2\x84B\x84A\x3\x2\x2\x2\x84B\x84C\x3\x2\x2\x2\x84C\x84D\x3\x2\x2"+ + "\x2\x84D\x84E\a\xC5\x2\x2\x84E\x84F\x5\x100\x81\x2\x84F\x850\a\xCC\x2"+ + "\x2\x850\x852\x3\x2\x2\x2\x851\x84B\x3\x2\x2\x2\x852\x855\x3\x2\x2\x2"+ + "\x853\x851\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\xE7\x3\x2\x2\x2\x855"+ + "\x853\x3\x2\x2\x2\x856\x85B\x5\xEEx\x2\x857\x85B\x5\xEAv\x2\x858\x85B"+ + "\x5\xECw\x2\x859\x85B\x5\xF2z\x2\x85A\x856\x3\x2\x2\x2\x85A\x857\x3\x2"+ + "\x2\x2\x85A\x858\x3\x2\x2\x2\x85A\x859\x3\x2\x2\x2\x85B\xE9\x3\x2\x2\x2"+ + "\x85C\x85E\x5\x104\x83\x2\x85D\x85F\x5\x11A\x8E\x2\x85E\x85D\x3\x2\x2"+ + "\x2\x85E\x85F\x3\x2\x2\x2\x85F\x864\x3\x2\x2\x2\x860\x862\a\xF4\x2\x2"+ + "\x861\x860\x3\x2\x2\x2\x861\x862\x3\x2\x2\x2\x862\x863\x3\x2\x2\x2\x863"+ + "\x865\x5\xF8}\x2\x864\x861\x3\x2\x2\x2\x864\x865\x3\x2\x2\x2\x865\x86F"+ + "\x3\x2\x2\x2\x866\x868\a\xF4\x2\x2\x867\x866\x3\x2\x2\x2\x867\x868\x3"+ + "\x2\x2\x2\x868\x869\x3\x2\x2\x2\x869\x86A\a\xC5\x2\x2\x86A\x86B\x5\x100"+ + "\x81\x2\x86B\x86C\a\xCC\x2\x2\x86C\x86E\x3\x2\x2\x2\x86D\x867\x3\x2\x2"+ + "\x2\x86E\x871\x3\x2\x2\x2\x86F\x86D\x3\x2\x2\x2\x86F\x870\x3\x2\x2\x2"+ + "\x870\xEB\x3\x2\x2\x2\x871\x86F\x3\x2\x2\x2\x872\x875\x5\x104\x83\x2\x873"+ + "\x875\x5\x108\x85\x2\x874\x872\x3\x2\x2\x2\x874\x873\x3\x2\x2\x2\x875"+ + "\x877\x3\x2\x2\x2\x876\x878\x5\x11A\x8E\x2\x877\x876\x3\x2\x2\x2\x877"+ + "\x878\x3\x2\x2\x2\x878\x87A\x3\x2\x2\x2\x879\x87B\a\xF4\x2\x2\x87A\x879"+ + "\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87E\a\xC5"+ + "\x2\x2\x87D\x87F\a\xF4\x2\x2\x87E\x87D\x3\x2\x2\x2\x87E\x87F\x3\x2\x2"+ + "\x2\x87F\x884\x3\x2\x2\x2\x880\x882\x5\xF4{\x2\x881\x883\a\xF4\x2\x2\x882"+ + "\x881\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x885\x3\x2\x2\x2\x884\x880"+ + "\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x886\x3\x2\x2\x2\x886\x88B\a\xCC"+ + "\x2\x2\x887\x889\a\xF4\x2\x2\x888\x887\x3\x2\x2\x2\x888\x889\x3\x2\x2"+ + "\x2\x889\x88A\x3\x2\x2\x2\x88A\x88C\x5\xF8}\x2\x88B\x888\x3\x2\x2\x2\x88B"+ + "\x88C\x3\x2\x2\x2\x88C\x896\x3\x2\x2\x2\x88D\x88F\a\xF4\x2\x2\x88E\x88D"+ + "\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x890\x3\x2\x2\x2\x890\x891\a\xC5"+ + "\x2\x2\x891\x892\x5\x100\x81\x2\x892\x893\a\xCC\x2\x2\x893\x895\x3\x2"+ + "\x2\x2\x894\x88E\x3\x2\x2\x2\x895\x898\x3\x2\x2\x2\x896\x894\x3\x2\x2"+ + "\x2\x896\x897\x3\x2\x2\x2\x897\xED\x3\x2\x2\x2\x898\x896\x3\x2\x2\x2\x899"+ + "\x89C\x5\xEAv\x2\x89A\x89C\x5\xECw\x2\x89B\x899\x3\x2\x2\x2\x89B\x89A"+ + "\x3\x2\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\x8A1\x3\x2\x2\x2\x89D\x89F\x5"+ + "\xF0y\x2\x89E\x8A0\a\xF4\x2\x2\x89F\x89E\x3\x2\x2\x2\x89F\x8A0\x3\x2\x2"+ + "\x2\x8A0\x8A2\x3\x2\x2\x2\x8A1\x89D\x3\x2\x2\x2\x8A2\x8A3\x3\x2\x2\x2"+ + "\x8A3\x8A1\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A9\x3\x2\x2\x2\x8A5"+ + "\x8A7\a\xF4\x2\x2\x8A6\x8A5\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2\x2\x8A7\x8A8"+ + "\x3\x2\x2\x2\x8A8\x8AA\x5\xF8}\x2\x8A9\x8A6\x3\x2\x2\x2\x8A9\x8AA\x3\x2"+ + "\x2\x2\x8AA\x8B4\x3\x2\x2\x2\x8AB\x8AD\a\xF4\x2\x2\x8AC\x8AB\x3\x2\x2"+ + "\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AE\x3\x2\x2\x2\x8AE\x8AF\a\xC5\x2\x2"+ + "\x8AF\x8B0\x5\x100\x81\x2\x8B0\x8B1\a\xCC\x2\x2\x8B1\x8B3\x3\x2\x2\x2"+ + "\x8B2\x8AC\x3\x2\x2\x2\x8B3\x8B6\x3\x2\x2\x2\x8B4\x8B2\x3\x2\x2\x2\x8B4"+ + "\x8B5\x3\x2\x2\x2\x8B5\xEF\x3\x2\x2\x2\x8B6\x8B4\x3\x2\x2\x2\x8B7\x8B9"+ + "\t\xF\x2\x2\x8B8\x8BA\a\xF4\x2\x2\x8B9\x8B8\x3\x2\x2\x2\x8B9\x8BA\x3\x2"+ + "\x2\x2\x8BA\x8BD\x3\x2\x2\x2\x8BB\x8BE\x5\xEAv\x2\x8BC\x8BE\x5\xECw\x2"+ + "\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2\x2\x2\x8BE\xF1\x3\x2\x2\x2\x8BF"+ + "\x8C1\a\xF4\x2\x2\x8C0\x8BF\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C2"+ + "\x3\x2\x2\x2\x8C2\x8C3\x5\xF8}\x2\x8C3\xF3\x3\x2\x2\x2\x8C4\x8C6\x5\xF6"+ + "|\x2\x8C5\x8C4\x3\x2\x2\x2\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C8\x3\x2\x2\x2"+ + "\x8C7\x8C9\a\xF4\x2\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9"+ + "\x8CA\x3\x2\x2\x2\x8CA\x8CC\t\n\x2\x2\x8CB\x8CD\a\xF4\x2\x2\x8CC\x8CB"+ + "\x3\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\x3\x2\x2\x2\x8CE\x8C5\x3"+ + "\x2\x2\x2\x8CF\x8D2\x3\x2\x2\x2\x8D0\x8CE\x3\x2\x2\x2\x8D0\x8D1\x3\x2"+ + "\x2\x2\x8D1\x8D3\x3\x2\x2\x2\x8D2\x8D0\x3\x2\x2\x2\x8D3\x8E0\x5\xF6|\x2"+ + "\x8D4\x8D6\a\xF4\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6"+ + "\x8D7\x3\x2\x2\x2\x8D7\x8D9\t\n\x2\x2\x8D8\x8DA\a\xF4\x2\x2\x8D9\x8D8"+ + "\x3\x2\x2\x2\x8D9\x8DA\x3\x2\x2\x2\x8DA\x8DC\x3\x2\x2\x2\x8DB\x8DD\x5"+ + "\xF6|\x2\x8DC\x8DB\x3\x2\x2\x2\x8DC\x8DD\x3\x2\x2\x2\x8DD\x8DF\x3\x2\x2"+ + "\x2\x8DE\x8D5\x3\x2\x2\x2\x8DF\x8E2\x3\x2\x2\x2\x8E0\x8DE\x3\x2\x2\x2"+ + "\x8E0\x8E1\x3\x2\x2\x2\x8E1\xF5\x3\x2\x2\x2\x8E2\x8E0\x3\x2\x2\x2\x8E3"+ + "\x8E5\a\xC5\x2\x2\x8E4\x8E3\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5\x8E8"+ + "\x3\x2\x2\x2\x8E6\x8E7\t\x10\x2\x2\x8E7\x8E9\a\xF4\x2\x2\x8E8\x8E6\x3"+ + "\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\x8EB\x3\x2\x2\x2\x8EA\x8EC\a\xCC"+ + "\x2\x2\x8EB\x8EA\x3\x2\x2\x2\x8EB\x8EC\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2"+ + "\x2\x8ED\x8EE\x5\xCA\x66\x2\x8EE\xF7\x3\x2\x2\x2\x8EF\x8F1\a\x4\x2\x2"+ + "\x8F0\x8F2\a\xF4\x2\x2\x8F1\x8F0\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2"+ + "\x8F3\x3\x2\x2\x2\x8F3\x8F5\x5\x104\x83\x2\x8F4\x8F6\x5\x11A\x8E\x2\x8F5"+ + "\x8F4\x3\x2\x2\x2\x8F5\x8F6\x3\x2\x2\x2\x8F6\xF9\x3\x2\x2\x2\x8F7\x909"+ + "\a\xC5\x2\x2\x8F8\x8FA\a\xF4\x2\x2\x8F9\x8F8\x3\x2\x2\x2\x8F9\x8FA\x3"+ + "\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2\x8FB\x906\x5\xFC\x7F\x2\x8FC\x8FE\a\xF4"+ + "\x2\x2\x8FD\x8FC\x3\x2\x2\x2\x8FD\x8FE\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2"+ + "\x2\x8FF\x901\a\t\x2\x2\x900\x902\a\xF4\x2\x2\x901\x900\x3\x2\x2\x2\x901"+ + "\x902\x3\x2\x2\x2\x902\x903\x3\x2\x2\x2\x903\x905\x5\xFC\x7F\x2\x904\x8FD"+ + "\x3\x2\x2\x2\x905\x908\x3\x2\x2\x2\x906\x904\x3\x2\x2\x2\x906\x907\x3"+ + "\x2\x2\x2\x907\x90A\x3\x2\x2\x2\x908\x906\x3\x2\x2\x2\x909\x8F9\x3\x2"+ + "\x2\x2\x909\x90A\x3\x2\x2\x2\x90A\x90C\x3\x2\x2\x2\x90B\x90D\a\xF4\x2"+ + "\x2\x90C\x90B\x3\x2\x2\x2\x90C\x90D\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2"+ + "\x90E\x90F\a\xCC\x2\x2\x90F\xFB\x3\x2\x2\x2\x910\x911\a}\x2\x2\x911\x913"+ + "\a\xF4\x2\x2\x912\x910\x3\x2\x2\x2\x912\x913\x3\x2\x2\x2\x913\x916\x3"+ + "\x2\x2\x2\x914\x915\t\x11\x2\x2\x915\x917\a\xF4\x2\x2\x916\x914\x3\x2"+ + "\x2\x2\x916\x917\x3\x2\x2\x2\x917\x91A\x3\x2\x2\x2\x918\x919\a\x84\x2"+ + "\x2\x919\x91B\a\xF4\x2\x2\x91A\x918\x3\x2\x2\x2\x91A\x91B\x3\x2\x2\x2"+ + "\x91B\x91C\x3\x2\x2\x2\x91C\x91E\x5\x104\x83\x2\x91D\x91F\x5\x11A\x8E"+ + "\x2\x91E\x91D\x3\x2\x2\x2\x91E\x91F\x3\x2\x2\x2\x91F\x928\x3\x2\x2\x2"+ + "\x920\x922\a\xF4\x2\x2\x921\x920\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922"+ + "\x923\x3\x2\x2\x2\x923\x925\a\xC5\x2\x2\x924\x926\a\xF4\x2\x2\x925\x924"+ + "\x3\x2\x2\x2\x925\x926\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x929\a\xCC"+ + "\x2\x2\x928\x921\x3\x2\x2\x2\x928\x929\x3\x2\x2\x2\x929\x92E\x3\x2\x2"+ + "\x2\x92A\x92C\a\xF4\x2\x2\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2"+ + "\x92C\x92D\x3\x2\x2\x2\x92D\x92F\x5\x106\x84\x2\x92E\x92B\x3\x2\x2\x2"+ + "\x92E\x92F\x3\x2\x2\x2\x92F\x934\x3\x2\x2\x2\x930\x932\a\xF4\x2\x2\x931"+ + "\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x935"+ + "\x5\xFE\x80\x2\x934\x931\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\xFD\x3"+ + "\x2\x2\x2\x936\x938\a\xC1\x2\x2\x937\x939\a\xF4\x2\x2\x938\x937\x3\x2"+ + "\x2\x2\x938\x939\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x5\xCA\x66"+ + "\x2\x93B\xFF\x3\x2\x2\x2\x93C\x947\x5\x102\x82\x2\x93D\x93F\a\xF4\x2\x2"+ + "\x93E\x93D\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x940\x3\x2\x2\x2\x940"+ + "\x942\a\t\x2\x2\x941\x943\a\xF4\x2\x2\x942\x941\x3\x2\x2\x2\x942\x943"+ + "\x3\x2\x2\x2\x943\x944\x3\x2\x2\x2\x944\x946\x5\x102\x82\x2\x945\x93E"+ + "\x3\x2\x2\x2\x946\x949\x3\x2\x2\x2\x947\x945\x3\x2\x2\x2\x947\x948\x3"+ + "\x2\x2\x2\x948\x101\x3\x2\x2\x2\x949\x947\x3\x2\x2\x2\x94A\x94B\x5\xCA"+ + "\x66\x2\x94B\x94C\a\xF4\x2\x2\x94C\x94D\a\xAD\x2\x2\x94D\x94E\a\xF4\x2"+ + "\x2\x94E\x950\x3\x2\x2\x2\x94F\x94A\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2"+ + "\x950\x951\x3\x2\x2\x2\x951\x952\x5\xCA\x66\x2\x952\x103\x3\x2\x2\x2\x953"+ + "\x956\a\xF5\x2\x2\x954\x956\x5\x11E\x90\x2\x955\x953\x3\x2\x2\x2\x955"+ + "\x954\x3\x2\x2\x2\x956\x957\x3\x2\x2\x2\x957\x955\x3\x2\x2\x2\x957\x958"+ + "\x3\x2\x2\x2\x958\x105\x3\x2\x2\x2\x959\x95B\a\x12\x2\x2\x95A\x95C\a\xF4"+ + "\x2\x2\x95B\x95A\x3\x2\x2\x2\x95B\x95C\x3\x2\x2\x2\x95C\x95F\x3\x2\x2"+ + "\x2\x95D\x95E\au\x2\x2\x95E\x960\a\xF4\x2\x2\x95F\x95D\x3\x2\x2\x2\x95F"+ + "\x960\x3\x2\x2\x2\x960\x961\x3\x2\x2\x2\x961\x966\x5\x118\x8D\x2\x962"+ + "\x964\a\xF4\x2\x2\x963\x962\x3\x2\x2\x2\x963\x964\x3\x2\x2\x2\x964\x965"+ + "\x3\x2\x2\x2\x965\x967\x5\x110\x89\x2\x966\x963\x3\x2\x2\x2\x966\x967"+ + "\x3\x2\x2\x2\x967\x107\x3\x2\x2\x2\x968\x969\t\x12\x2\x2\x969\x109\x3"+ + "\x2\x2\x2\x96A\x96F\a\xF5\x2\x2\x96B\x96E\x5\x11E\x90\x2\x96C\x96E\a\xF5"+ + "\x2\x2\x96D\x96B\x3\x2\x2\x2\x96D\x96C\x3\x2\x2\x2\x96E\x971\x3\x2\x2"+ + "\x2\x96F\x96D\x3\x2\x2\x2\x96F\x970\x3\x2\x2\x2\x970\x97A\x3\x2\x2\x2"+ + "\x971\x96F\x3\x2\x2\x2\x972\x975\x5\x11E\x90\x2\x973\x976\x5\x11E\x90"+ + "\x2\x974\x976\a\xF5\x2\x2\x975\x973\x3\x2\x2\x2\x975\x974\x3\x2\x2\x2"+ + "\x976\x977\x3\x2\x2\x2\x977\x975\x3\x2\x2\x2\x977\x978\x3\x2\x2\x2\x978"+ + "\x97A\x3\x2\x2\x2\x979\x96A\x3\x2\x2\x2\x979\x972\x3\x2\x2\x2\x97A\x10B"+ + "\x3\x2\x2\x2\x97B\x97C\t\xE\x2\x2\x97C\x10D\x3\x2\x2\x2\x97D\x982\x5\x104"+ + "\x83\x2\x97E\x97F\t\xF\x2\x2\x97F\x981\x5\x104\x83\x2\x980\x97E\x3\x2"+ + "\x2\x2\x981\x984\x3\x2\x2\x2\x982\x980\x3\x2\x2\x2\x982\x983\x3\x2\x2"+ + "\x2\x983\x10F\x3\x2\x2\x2\x984\x982\x3\x2\x2\x2\x985\x987\a\xC8\x2\x2"+ + "\x986\x988\a\xF4\x2\x2\x987\x986\x3\x2\x2\x2\x987\x988\x3\x2\x2\x2\x988"+ + "\x98B\x3\x2\x2\x2\x989\x98C\a\xD3\x2\x2\x98A\x98C\x5\x104\x83\x2\x98B"+ + "\x989\x3\x2\x2\x2\x98B\x98A\x3\x2\x2\x2\x98C\x111\x3\x2\x2\x2\x98D\x996"+ + "\x5\x10A\x86\x2\x98E\x990\a\xF4\x2\x2\x98F\x98E\x3\x2\x2\x2\x98F\x990"+ + "\x3\x2\x2\x2\x990\x991\x3\x2\x2\x2\x991\x993\a\xC7\x2\x2\x992\x994\a\xF4"+ + "\x2\x2\x993\x992\x3\x2\x2\x2\x993\x994\x3\x2\x2\x2\x994\x995\x3\x2\x2"+ + "\x2\x995\x997\x5\x10A\x86\x2\x996\x98F\x3\x2\x2\x2\x996\x997\x3\x2\x2"+ + "\x2\x997\x113\x3\x2\x2\x2\x998\x999\x5\x104\x83\x2\x999\x99A\a\xF2\x2"+ + "\x2\x99A\x115\x3\x2\x2\x2\x99B\x99C\t\x13\x2\x2\x99C\x117\x3\x2\x2\x2"+ + "\x99D\x9A0\x5\x108\x85\x2\x99E\x9A0\x5\x10E\x88\x2\x99F\x99D\x3\x2\x2"+ + "\x2\x99F\x99E\x3\x2\x2\x2\x9A0\x9A9\x3\x2\x2\x2\x9A1\x9A3\a\xF4\x2\x2"+ + "\x9A2\x9A1\x3\x2\x2\x2\x9A2\x9A3\x3\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4"+ + "\x9A6\a\xC5\x2\x2\x9A5\x9A7\a\xF4\x2\x2\x9A6\x9A5\x3\x2\x2\x2\x9A6\x9A7"+ + "\x3\x2\x2\x2\x9A7\x9A8\x3\x2\x2\x2\x9A8\x9AA\a\xCC\x2\x2\x9A9\x9A2\x3"+ + "\x2\x2\x2\x9A9\x9AA\x3\x2\x2\x2\x9AA\x119\x3\x2\x2\x2\x9AB\x9AC\t\x14"+ + "\x2\x2\x9AC\x11B\x3\x2\x2\x2\x9AD\x9AE\t\x15\x2\x2\x9AE\x11D\x3\x2\x2"+ + "\x2\x9AF\x9B0\t\x16\x2\x2\x9B0\x11F\x3\x2\x2\x2\x9B1\x9B2\a\xEF\x2\x2"+ + "\x9B2\x121\x3\x2\x2\x2\x9B3\x9B4\a\xF0\x2\x2\x9B4\x123\x3\x2\x2\x2\x9B5"+ + "\x9B7\a\xF4\x2\x2\x9B6\x9B5\x3\x2\x2\x2\x9B6\x9B7\x3\x2\x2\x2\x9B7\x9BB"+ + "\x3\x2\x2\x2\x9B8\x9BC\a\xEE\x2\x2\x9B9\x9BC\x5\x122\x92\x2\x9BA\x9BC"+ + "\x5\x120\x91\x2\x9BB\x9B8\x3\x2\x2\x2\x9BB\x9B9\x3\x2\x2\x2\x9BB\x9BA"+ + "\x3\x2\x2\x2\x9BC\x9BE\x3\x2\x2\x2\x9BD\x9BF\a\xF4\x2\x2\x9BE\x9BD\x3"+ + "\x2\x2\x2\x9BE\x9BF\x3\x2\x2\x2\x9BF\x125\x3\x2\x2\x2\x9C0\x9C9\x5\x124"+ + "\x93\x2\x9C1\x9C3\a\xF4\x2\x2\x9C2\x9C1\x3\x2\x2\x2\x9C2\x9C3\x3\x2\x2"+ + "\x2\x9C3\x9C4\x3\x2\x2\x2\x9C4\x9C6\a\xF2\x2\x2\x9C5\x9C7\a\xF4\x2\x2"+ + "\x9C6\x9C5\x3\x2\x2\x2\x9C6\x9C7\x3\x2\x2\x2\x9C7\x9C9\x3\x2\x2\x2\x9C8"+ + "\x9C0\x3\x2\x2\x2\x9C8\x9C2\x3\x2\x2\x2\x9C9\x9CC\x3\x2\x2\x2\x9CA\x9C8"+ + "\x3\x2\x2\x2\x9CA\x9CB\x3\x2\x2\x2\x9CB\x127\x3\x2\x2\x2\x9CC\x9CA\x3"+ + "\x2\x2\x2\x1A9\x12C\x132\x135\x139\x13D\x141\x145\x152\x158\x15C\x166"+ + "\x16E\x17B\x186\x18A\x192\x19D\x1A3\x1A7\x1AB\x1AF\x1B4\x1BD\x205\x20B"+ + "\x20F\x212\x222\x226\x22B\x22E\x233\x239\x23D\x242\x247\x24B\x24E\x252"+ + "\x258\x25C\x263\x269\x26D\x270\x275\x27F\x282\x285\x289\x28F\x293\x298"+ + "\x29F\x2A3\x2A7\x2AB\x2AE\x2B3\x2BE\x2CB\x2D2\x2DB\x2E2\x2E6\x2E9\x2F8"+ + "\x2FE\x308\x30C\x316\x31E\x323\x329\x32D\x330\x334\x33F\x343\x348\x34D"+ + "\x351\x355\x359\x35C\x35F\x362\x365\x369\x371\x375\x378\x37B\x37F\x396"+ + "\x39C\x3A0\x3A4\x3AD\x3B8\x3BD\x3C7\x3CB\x3D0\x3D8\x3DC\x3E0\x3E8\x3EC"+ + "\x3F8\x3FC\x403\x405\x40B\x40F\x415\x419\x41D\x425\x429\x42F\x438\x43A"+ + "\x43F\x448\x44A\x452\x454\x459\x45D\x461\x479\x483\x487\x48C\x497\x49B"+ + "\x4A0\x4AE\x4B2\x4BB\x4BF\x4C2\x4C6\x4CA\x4CD\x4D1\x4D5\x4D8\x4DC\x4DF"+ + "\x4E3\x4E5\x4EA\x4EE\x4F2\x4F6\x4F8\x4FE\x502\x505\x50A\x50E\x514\x517"+ + "\x51A\x51E\x522\x529\x52D\x533\x536\x53A\x541\x545\x54B\x54E\x552\x55A"+ + "\x55E\x561\x564\x568\x570\x574\x578\x57A\x57D\x582\x588\x58C\x590\x595"+ + "\x59A\x59E\x5A2\x5A7\x5AF\x5B1\x5BD\x5C1\x5C9\x5CD\x5D5\x5D9\x5DD\x5E1"+ + "\x5E5\x5E9\x5F1\x5F5\x602\x609\x60D\x618\x61F\x624\x628\x62D\x630\x636"+ + "\x63A\x63D\x643\x647\x64F\x653\x65C\x660\x664\x668\x66B\x66F\x675\x679"+ + "\x680\x689\x690\x694\x697\x69A\x69D\x6A1\x6AC\x6B6\x6BA\x6C1\x6C3\x6C8"+ + "\x6CD\x6D2\x6D6\x6DC\x6E1\x6E8\x6EC\x6F0\x6F5\x6FC\x700\x704\x709\x70D"+ + "\x712\x716\x71B\x71F\x724\x728\x72D\x731\x736\x73A\x73F\x743\x748\x74C"+ + "\x751\x755\x75A\x75E\x763\x767\x76A\x76C\x772\x777\x77D\x781\x786\x78B"+ + "\x78F\x793\x795\x799\x79B\x79E\x7A2\x7A9\x7B1\x7B5\x7BF\x7C3\x7CB\x7CF"+ + "\x7D2\x7D5\x7DB\x7E1\x7E4\x7E8\x7EC\x7F0\x7F3\x7FB\x801\x806\x809\x80D"+ + "\x811\x815\x818\x820\x825\x828\x82D\x831\x834\x837\x83A\x842\x848\x84B"+ + "\x853\x85A\x85E\x861\x864\x867\x86F\x874\x877\x87A\x87E\x882\x884\x888"+ + "\x88B\x88E\x896\x89B\x89F\x8A3\x8A6\x8A9\x8AC\x8B4\x8B9\x8BD\x8C0\x8C5"+ + "\x8C8\x8CC\x8D0\x8D5\x8D9\x8DC\x8E0\x8E4\x8E8\x8EB\x8F1\x8F5\x8F9\x8FD"+ + "\x901\x906\x909\x90C\x912\x916\x91A\x91E\x921\x925\x928\x92B\x92E\x931"+ + "\x934\x938\x93E\x942\x947\x94F\x955\x957\x95B\x95F\x963\x966\x96D\x96F"+ + "\x975\x977\x979\x982\x987\x98B\x98F\x993\x996\x99F\x9A2\x9A6\x9A9\x9B6"+ + "\x9BB\x9BE\x9C2\x9C6\x9C8\x9CA"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAVisitor.cs b/Rubberduck.Parsing/Grammar/VBAVisitor.cs index 6a04a1d75b..d806150ed3 100644 --- a/Rubberduck.Parsing/Grammar/VBAVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAVisitor.cs @@ -676,6 +676,13 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); + /// /// Visit a parse tree produced by . /// @@ -850,6 +857,13 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); + /// /// Visit a parse tree produced by . /// @@ -908,6 +922,13 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); + /// /// Visit a parse tree produced by . /// @@ -1108,6 +1129,13 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); + /// /// Visit a parse tree produced by . /// @@ -1144,6 +1172,13 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); + /// /// Visit a parse tree produced by the vsPow /// labeled alternative in . @@ -1238,6 +1273,13 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMacroStmt([NotNull] VBAParser.MacroStmtContext context); + /// /// Visit a parse tree produced by the vsMid /// labeled alternative in . diff --git a/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs index d535d9e6c5..c0d628e43e 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs @@ -4,11 +4,13 @@ public sealed class LogicalEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; + private readonly VBAOptionCompare _optionCompare; - public LogicalEqualsExpression(IExpression left, IExpression right) + public LogicalEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) { _left = left; _right = right; + _optionCompare = optionCompare; } public override IValue Evaluate() @@ -19,19 +21,20 @@ public override IValue Evaluate() { return null; } - if (left.ValueType == ValueType.String && right.ValueType == ValueType.String) + if ( + (left.ValueType == ValueType.String || left.ValueType == ValueType.Empty) + && (right.ValueType == ValueType.String || right.ValueType == ValueType.Empty)) { var leftValue = left.AsString; var rightValue = right.AsString; - return new BoolValue(leftValue == rightValue); - } - else if (left.ValueType == ValueType.String && right.ValueType == ValueType.Empty) - { - return new BoolValue(left.AsString== right.AsString); - } - else if (right.ValueType == ValueType.String && left.ValueType == ValueType.Empty) - { - return new BoolValue(right.AsString== left.AsString); + if (_optionCompare == VBAOptionCompare.Binary) + { + return new BoolValue(string.CompareOrdinal(leftValue, rightValue) == 0); + } + else + { + return new BoolValue(leftValue.CompareTo(rightValue) == 0); + } } else { diff --git a/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs index 764d1555bd..1dfbb575c3 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs @@ -4,16 +4,18 @@ public sealed class LogicalGreaterOrEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; + private readonly VBAOptionCompare _optionCompare; - public LogicalGreaterOrEqualsExpression(IExpression left, IExpression right) + public LogicalGreaterOrEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) { _left = left; _right = right; + _optionCompare = optionCompare; } public override IValue Evaluate() { - var result = new LogicalLessThanExpression(_left, _right).Evaluate(); + var result = new LogicalLessThanExpression(_left, _right, _optionCompare).Evaluate(); if (result == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs index d10b4adde8..ea06a06a71 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs @@ -4,17 +4,19 @@ public sealed class LogicalGreaterThanExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; + private readonly VBAOptionCompare _optionCompare; - public LogicalGreaterThanExpression(IExpression left, IExpression right) + public LogicalGreaterThanExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) { _left = left; _right = right; + _optionCompare = optionCompare; } public override IValue Evaluate() { - var lt = new LogicalLessThanExpression(_left, _right).Evaluate(); - var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); + var lt = new LogicalLessThanExpression(_left, _right, _optionCompare).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right, _optionCompare).Evaluate(); if (lt == null || eq == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs index 8917977121..c8ad3c3a17 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs @@ -4,17 +4,19 @@ public sealed class LogicalLessOrEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; + private readonly VBAOptionCompare _optionCompare; - public LogicalLessOrEqualsExpression(IExpression left, IExpression right) + public LogicalLessOrEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) { _left = left; _right = right; + _optionCompare = optionCompare; } public override IValue Evaluate() { - var lt = new LogicalLessThanExpression(_left, _right).Evaluate(); - var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); + var lt = new LogicalLessThanExpression(_left, _right, _optionCompare).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right, _optionCompare).Evaluate(); if (lt == null || eq == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs index 0e13fe4ab1..2eeaa809b4 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs @@ -4,11 +4,13 @@ public sealed class LogicalLessThanExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; + private readonly VBAOptionCompare _optionCompare; - public LogicalLessThanExpression(IExpression left, IExpression right) + public LogicalLessThanExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) { _left = left; _right = right; + _optionCompare = optionCompare; } public override IValue Evaluate() @@ -19,19 +21,19 @@ public override IValue Evaluate() { return null; } - if (left.ValueType == ValueType.String && right.ValueType == ValueType.String) + if ((left.ValueType == ValueType.String || left.ValueType == ValueType.Empty) + && (right.ValueType == ValueType.String || right.ValueType == ValueType.Empty)) { var leftValue = left.AsString; var rightValue = right.AsString; - return new BoolValue(string.CompareOrdinal(leftValue, rightValue) < 0); - } - else if (left.ValueType == ValueType.String && right.ValueType == ValueType.Empty) - { - return new BoolValue(string.CompareOrdinal(left.AsString, right.AsString) < 0); - } - else if (right.ValueType == ValueType.String && left.ValueType == ValueType.Empty) - { - return new BoolValue(string.CompareOrdinal(right.AsString, left.AsString) < 0); + if (_optionCompare == VBAOptionCompare.Binary) + { + return new BoolValue(string.CompareOrdinal(leftValue, rightValue) < 0); + } + else + { + return new BoolValue(leftValue.CompareTo(rightValue) < 0); + } } else { diff --git a/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs index 7b252c3628..240522a3f0 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs @@ -4,16 +4,18 @@ public sealed class LogicalNotEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; + private readonly VBAOptionCompare _optionCompare; - public LogicalNotEqualsExpression(IExpression left, IExpression right) + public LogicalNotEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) { _left = left; _right = right; + _optionCompare = optionCompare; } public override IValue Evaluate() { - var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right, _optionCompare).Evaluate(); if (eq == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs b/Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs new file mode 100644 index 0000000000..5fdf9179f2 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs @@ -0,0 +1,24 @@ +using Antlr4.Runtime.Misc; +using Rubberduck.Parsing.Grammar; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class OptionCompareListener : VBABaseListener + { + public VBAOptionCompare OptionCompare { get; set; } + + public OptionCompareListener() + { + // Default is binary according to VBA specification. + OptionCompare = VBAOptionCompare.Binary; + } + + public override void ExitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) + { + if (context.TEXT() != null || context.DATABASE() != null) + { + OptionCompare = VBAOptionCompare.Text; + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/StringValue.cs b/Rubberduck.Parsing/Preprocessing/StringValue.cs index 0705e78a7d..251affef82 100644 --- a/Rubberduck.Parsing/Preprocessing/StringValue.cs +++ b/Rubberduck.Parsing/Preprocessing/StringValue.cs @@ -29,11 +29,13 @@ public bool AsBool return false; } var str = _value; - if (str.ToLower() == "true" || str == "#TRUE#") + if (string.CompareOrdinal(str.ToLower(), "true") == 0 + || string.CompareOrdinal(str, "#TRUE#") == 0) { return true; } - else if (str.ToLower() == "false" || str == "#FALSE#") + else if (string.CompareOrdinal(str.ToLower(), "false") == 0 + || string.CompareOrdinal(str, "#FALSE#") == 0) { return false; } diff --git a/Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs b/Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs new file mode 100644 index 0000000000..ac94c192d5 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs @@ -0,0 +1,8 @@ +namespace Rubberduck.Parsing.Preprocessing +{ + public enum VBAOptionCompare + { + Text, + Binary + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs index 63c7cad5a4..e100f2a6f3 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs @@ -1,4 +1,5 @@ using Antlr4.Runtime; +using Rubberduck.Parsing.Grammar; using Rubberduck.Parsing.Symbols; using System; @@ -13,25 +14,44 @@ public VBAPreprocessor(double vbaVersion) _vbaVersion = vbaVersion; } - public string Process(string unprocessedCode) + public string Execute(string unprocessedCode) { try { - SymbolTable symbolTable = new SymbolTable(); - var stream = new AntlrInputStream(unprocessedCode); - var lexer = new VBAConditionalCompilationLexer(stream); - var tokens = new CommonTokenStream(lexer); - var parser = new VBAConditionalCompilationParser(tokens); - parser.AddErrorListener(new ExceptionErrorListener()); - var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion)); - var tree = parser.compilationUnit(); - var expr = evaluator.Visit(tree); - return expr.Evaluate().AsString; + var optionCompare = ExtractOptionCompare(unprocessedCode); + return Preprocess(unprocessedCode, optionCompare); } catch (Exception ex) { throw new VBAPreprocessorException("Exception encountered during preprocessing.", ex); } } + + private VBAOptionCompare ExtractOptionCompare(string unprocessedCode) + { + var stream = new AntlrInputStream(unprocessedCode); + var lexer = new VBALexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBAParser(tokens); + parser.AddErrorListener(new ExceptionErrorListener()); + var optionCompareListener = new OptionCompareListener(); + parser.AddParseListener(optionCompareListener); + var tree = parser.startRule(); + return optionCompareListener.OptionCompare; + } + + private string Preprocess(string unprocessedCode, VBAOptionCompare optionCompare) + { + SymbolTable symbolTable = new SymbolTable(); + var stream = new AntlrInputStream(unprocessedCode); + var lexer = new VBAConditionalCompilationLexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBAConditionalCompilationParser(tokens); + parser.AddErrorListener(new ExceptionErrorListener()); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion), optionCompare); + var tree = parser.compilationUnit(); + var expr = evaluator.Visit(tree); + return expr.Evaluate().AsString; + } } } diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs index 177f91ad08..a3c8730fa9 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs @@ -8,8 +8,12 @@ namespace Rubberduck.Parsing.Preprocessing public sealed class VBAPreprocessorVisitor : VBAConditionalCompilationBaseVisitor { private readonly SymbolTable _symbolTable; + private readonly VBAOptionCompare _optionCompare; - public VBAPreprocessorVisitor(SymbolTable symbolTable, VBAPredefinedCompilationConstants predefinedConstants) + public VBAPreprocessorVisitor( + SymbolTable symbolTable, + VBAPredefinedCompilationConstants predefinedConstants, + VBAOptionCompare optionCompare) { _symbolTable = symbolTable; _symbolTable.Add(VBAPredefinedCompilationConstants.VBA6_NAME, new BoolValue(predefinedConstants.VBA6)); @@ -18,6 +22,7 @@ public VBAPreprocessorVisitor(SymbolTable symbolTable, VBAPredef _symbolTable.Add(VBAPredefinedCompilationConstants.WIN32_NAME, new BoolValue(predefinedConstants.Win32)); _symbolTable.Add(VBAPredefinedCompilationConstants.WIN16_NAME, new BoolValue(predefinedConstants.Win16)); _symbolTable.Add(VBAPredefinedCompilationConstants.MAC_NAME, new BoolValue(predefinedConstants.Mac)); + _optionCompare = optionCompare; } public override IExpression VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) @@ -279,42 +284,42 @@ private IExpression VisitGeq(VBAConditionalCompilationParser.CcExpressionContext { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalGreaterOrEqualsExpression(left, right); + return new LogicalGreaterOrEqualsExpression(left, right, _optionCompare); } private IExpression VisitLeq(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalLessOrEqualsExpression(left, right); + return new LogicalLessOrEqualsExpression(left, right, _optionCompare); } private IExpression VisitGt(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalGreaterThanExpression(left, right); + return new LogicalGreaterThanExpression(left, right, _optionCompare); } private IExpression VisitLt(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalLessThanExpression(left, right); + return new LogicalLessThanExpression(left, right, _optionCompare); } private IExpression VisitNeq(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalNotEqualsExpression(left, right); + return new LogicalNotEqualsExpression(left, right, _optionCompare); } private IExpression VisitEq(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalEqualsExpression(left, right); + return new LogicalEqualsExpression(left, right, _optionCompare); } private IExpression VisitConcat(VBAConditionalCompilationParser.CcExpressionContext context) diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index d46c02d7c2..9715faea33 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -92,6 +92,7 @@ + @@ -144,6 +145,7 @@ + diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index f542c4c935..c489b3916f 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -231,7 +231,7 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok string preprocessedModuleBody; try { - preprocessedModuleBody = preprocessor.Process(code); + preprocessedModuleBody = preprocessor.Execute(code); } catch (VBAPreprocessorException ex) { diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index a6b03e6087..4e0105b90a 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -1085,11 +1085,45 @@ public void TestOperatorPrecedence() public void TestLocale() { string code = @" -#Const a = CDate(""3/2/2016"") +#Const a = CDate(""2016/03/02"") +#Const b = CBool(""tRuE"") +#Const c = CBool(""#TRUE#"") "; - System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); + System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("ja-jp"); var result = Preprocess(code); Assert.AreEqual(new DateTime(2016, 3, 2), result.Item1.Get("a").AsDate); + Assert.AreEqual(true, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + } + + [TestMethod] + public void TestOptionCompareText() + { + string code = @" +#Const a = ""ß"" = ""ss"" +#Const b = ""ß"" < ""ss"" +#Const c = ""ß"" > ""ss"" +"; + System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-de"); + var result = Preprocess(code, VBAOptionCompare.Text); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(false, result.Item1.Get("c").AsBool); + } + + [TestMethod] + public void TestOptionCompareBinary() + { + string code = @" +#Const a = ""ß"" = ""ss"" +#Const b = ""ß"" < ""ss"" +#Const c = ""ß"" > ""ss"" +"; + System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-de"); + var result = Preprocess(code, VBAOptionCompare.Binary); + Assert.AreEqual(false, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); } [TestMethod] @@ -1157,6 +1191,11 @@ End Sub } private Tuple, IValue> Preprocess(string code) + { + return Preprocess(code, VBAOptionCompare.Binary); + } + + private Tuple, IValue> Preprocess(string code, VBAOptionCompare optionCompare) { SymbolTable symbolTable = new SymbolTable(); var stream = new AntlrInputStream(code); @@ -1164,7 +1203,7 @@ private Tuple, IValue> Preprocess(string code) var tokens = new CommonTokenStream(lexer); var parser = new VBAConditionalCompilationParser(tokens); parser.AddErrorListener(new ExceptionErrorListener()); - var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(7.01)); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(7.01), optionCompare); var tree = parser.compilationUnit(); var expr = evaluator.Visit(tree); return Tuple.Create(symbolTable, expr.Evaluate()); From 56d8523ea7de62ee947f79a4091fb5f523bb4274 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Fri, 4 Mar 2016 15:13:39 +0100 Subject: [PATCH 12/17] add vbaparser tests based on real world code --- .../Grammar/VBAParserValidityTests.cs | 44 + RubberduckTests/RubberduckTests.csproj | 67 ++ .../Testfiles/Grammar/Reference_Module_1.txt | 46 + .../Testfiles/Grammar/Reference_Module_10.txt | 37 + .../Testfiles/Grammar/Reference_Module_11.txt | 767 ++++++++++++++ .../Testfiles/Grammar/Reference_Module_12.txt | 979 ++++++++++++++++++ .../Testfiles/Grammar/Reference_Module_13.txt | 154 +++ .../Testfiles/Grammar/Reference_Module_14.txt | 61 ++ .../Testfiles/Grammar/Reference_Module_15.txt | 26 + .../Testfiles/Grammar/Reference_Module_16.txt | 29 + .../Testfiles/Grammar/Reference_Module_17.txt | 196 ++++ .../Testfiles/Grammar/Reference_Module_18.txt | 158 +++ .../Testfiles/Grammar/Reference_Module_19.txt | 178 ++++ .../Testfiles/Grammar/Reference_Module_2.txt | 165 +++ .../Testfiles/Grammar/Reference_Module_20.txt | 272 +++++ .../Testfiles/Grammar/Reference_Module_21.txt | 67 ++ .../Testfiles/Grammar/Reference_Module_3.txt | 138 +++ .../Testfiles/Grammar/Reference_Module_4.txt | 502 +++++++++ .../Testfiles/Grammar/Reference_Module_5.txt | 44 + .../Testfiles/Grammar/Reference_Module_6.txt | 120 +++ .../Testfiles/Grammar/Reference_Module_7.txt | 233 +++++ .../Testfiles/Grammar/Reference_Module_8.txt | 947 +++++++++++++++++ .../Testfiles/Grammar/Reference_Module_9.txt | 150 +++ 23 files changed, 5380 insertions(+) create mode 100644 RubberduckTests/Grammar/VBAParserValidityTests.cs create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_1.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_10.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_2.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_3.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_4.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_5.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_6.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_7.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_8.txt create mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_9.txt diff --git a/RubberduckTests/Grammar/VBAParserValidityTests.cs b/RubberduckTests/Grammar/VBAParserValidityTests.cs new file mode 100644 index 0000000000..4de6c12b93 --- /dev/null +++ b/RubberduckTests/Grammar/VBAParserValidityTests.cs @@ -0,0 +1,44 @@ +using Antlr4.Runtime; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Rubberduck.Parsing.Grammar; +using Rubberduck.Parsing.Symbols; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace RubberduckTests.Grammar +{ + [TestClass] + public class VBAParserValidityTests + { + [TestMethod] + [DeploymentItem(@"Testfiles\")] + public void TestTest() + { + foreach (var testfile in GetTestFiles()) + { + AssertParseResult(testfile, Parse(testfile).module().GetText()); + } + } + + private void AssertParseResult(string originalCode, string materializedParseTree) + { + Assert.AreEqual(originalCode, materializedParseTree); + } + + private IEnumerable GetTestFiles() + { + return Directory.EnumerateFiles("Grammar").Select(file => File.ReadAllText(file)).ToList(); + } + + private VBAParser.StartRuleContext Parse(string code) + { + var stream = new AntlrInputStream(code); + var lexer = new VBALexer(stream); + var tokens = new CommonTokenStream(lexer); + var parser = new VBAParser(tokens); + parser.AddErrorListener(new ExceptionErrorListener()); + return parser.startRule(); + } + } +} diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index 9ab82a83dd..3a3d918b3e 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -80,6 +80,7 @@ + @@ -169,6 +170,72 @@ Rubberduck.VBEditor + + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_1.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_1.txt new file mode 100644 index 0000000000..f4068b50ca --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_1.txt @@ -0,0 +1,46 @@ +Attribute VB_Name = "fnCheckPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|fnCheckPri" + +Public Function GetLongOrStringValue(NameValue As tyNameValue) As Variant + Const ThisProcedure As String = ThisModule & "|GetLongOrStringValue|Function" + + With NameValue + .Value = GetVariantValue(Value:=.Value) + Select Case VBA.VarType(VarName:=.Value) + Case VBA.VbVarType.vbString + GetLongOrStringValue = .Value + + Case VBA.VbVarType.vbDouble + If VBA.Int(.Value) <> .Value Then + RaiseParamIsNotInteger NameValue:=NameValue + End If + GetLongOrStringValue = VBA.CLng(.Value) + + Case VBA.VbVarType.vbLong, VBA.VbVarType.vbInteger + GetLongOrStringValue = VBA.CLng(.Value) + + Case Else + RaiseParamTypeInvalid NameValue:=NameValue + + End Select + End With +End Function + +'Public Sub CheckPivotFieldItemIndexPos(ByVal Name As String _ +' , ByVal Value As Long _ +' , ByVal PivotFields As Excel.PivotFields _ +' , PivotFieldOrientation As XlPivotFieldOrientation _ +' ) +' If Value < Lo1 Then +' RaiseParamValueLt1 Name:=Name, Value:=Value +' End If +' If Value > PivotFields.Count Then +' RaisePivotFieldsItemIndexGtCount Name:=Name _ +' , Value:=Value _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=PivotFields.Count +' End If +'End Sub diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_10.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_10.txt new file mode 100644 index 0000000000..3f2c72f2ca --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_10.txt @@ -0,0 +1,37 @@ +Attribute VB_Name = "vbFnCollectionPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbFnCollectionPri" + +Public Function GetCollectionItemIndex(NameValue As tyNameValue _ + , Collection As Object _ + , Count As Long _ + ) As Long + Const ThisProcedure As String = ThisModule & "|GetCollectionItemIndex|Function" + + With NameValue + Select Case VBA.Sgn(.Value) + Case In1 + If .Value > Count Then + RaiseParamIndexGtCollectionCount NameValue:=NameValue _ + , Collection:=Collection _ + , Count:=Count + End If + GetCollectionItemIndex = .Value + + Case InM1 + If VBA.Abs(.Value) > Count Then + RaiseParamIndexLtCollection1 NameValue:=NameValue _ + , Collection:=Collection _ + , Count:=Count + End If + GetCollectionItemIndex = Count + Lo1 + .Value + + Case In0 + RaiseParamIndexEqCollection0 NameValue:=NameValue _ + , Collection:=Collection _ + , Count:=Count + End Select + End With +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt new file mode 100644 index 0000000000..3dd84df5e3 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt @@ -0,0 +1,767 @@ +Attribute VB_Name = "vbFnPivotFieldPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbFnPivotFieldPri" + +Public Sub ClearPivotFieldsVector(PivotFieldsVector As tyPivotFieldsVector) + Const ThisProcedure As String = ThisModule & "|ClearPivotFieldsVector|Sub" + Dim lvIndex As Long + + With PivotFieldsVector + For lvIndex = Lo1 To .Count + Set .Items(lvIndex) = Nothing + Next + End With +End Sub + +#If VBA7 Then +Private Sub GetPivotFieldSlicerOrNothingTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothingTest|Sub" +Debug.Print GetPivotFieldSlicerOrNothing(ActiveSheet.PivotTables(1).PivotFields("Server")).Name +End Sub +Public Function GetPivotFieldSlicerOrNothing(PivotField As Excel.PivotField) As Excel.Slicer + Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothing|Function" + Dim lcPivotTable As Excel.PivotTable + Dim lcSlicer As Excel.Slicer + + Set lcPivotTable = PivotField.Parent + For Each lcSlicer In lcPivotTable.Slicers + If lcSlicer.SlicerCache.SourceName = PivotField.Name Then + Set GetPivotFieldSlicerOrNothing = lcSlicer + Exit For + End If + Next + + Set lcSlicer = Nothing + Set lcPivotTable = Nothing +End Function +#End If +Public Function GetPivotFieldsVisibleVector(PivotFields As Excel.PivotFields _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + ) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldsVisibleVector|Function" + If GetPivotFieldsCount(PivotFields:=PivotFields, PivotFieldOrientation:=PivotFieldOrientation) = Lo0 Then + Exit Function + End If + + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotFieldsVisibleVector = GetPivotFieldColumnVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlDataField + GetPivotFieldsVisibleVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlRowField + GetPivotFieldsVisibleVector = GetPivotFieldRowVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlPageField + GetPivotFieldsVisibleVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) + + Case Else + RaiseLogicError Source:="GetPivotFieldsVector" + + End Select +End Function + +Private Sub GetPivotFieldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotFields As Excel.PivotFields + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim lvFieldNV As tyNameValue + Dim lvIndex As Long + Dim lvPivotFieldOrientation As XlPivotFieldOrientation + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name + lvPivotFieldOrientation = XlPivotFieldOrientation.xlPageField + Set lcPivotFields = GetPivotTablePivotFields(PivotTable:=lcPivotTable, PivotFieldOrientation:=lvPivotFieldOrientation) + For lvIndex = (lcPivotFields.Count + Lo1) * LoM1 To lcPivotFields.Count + Lo1 + On Error Resume Next + With lvFieldNV + .Name = "Fieldx" + .Value = lvIndex + End With + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If + Next + lvFieldNV.Value = "bla" + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If + lvFieldNV.Value = "Server" + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If +End Sub + +Public Function GetPivotField(PivotFields As Excel.PivotFields _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldNV As tyNameValue _ + ) As Variant + Const ThisProcedure As String = ThisModule & "|GetPivotField|Function" + Dim ltPivotFieldsVector As tyPivotFieldsVector + Dim lvPosition As Long + + If PivotFields.Count = Lo0 Then + RaisePivotFieldsCountEq0 FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotFields.Count + End If + + With FieldNV + .Value = GetLongOrStringValue(NameValue:=FieldNV) + + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then + Set GetPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields _ + , Index:=.Value _ + ) + If GetPivotField Is Nothing Then + RaisePivotFieldsFieldValueStringIsNothing FieldIndex:=.Value _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + Else + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + ltPivotFieldsVector = GetPivotFieldColumnVisibleVector2(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlDataField + ltPivotFieldsVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlPageField + ltPivotFieldsVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlRowField + ltPivotFieldsVector = GetPivotFieldRowVisibleVector2(PivotFields:=PivotFields) + + Case Else + RaiseLogicError Source:="GetPivotField" + + End Select + + Select Case VBA.Sgn(.Value) + Case In1 + If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then + RaisePivotFieldsFieldValueLongPosGtCount FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End If + Set GetPivotField = ltPivotFieldsVector.Items(.Value) + + Case InM1 + If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then + RaisePivotFieldsFieldValueLongNegGtCount FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End If + Set GetPivotField = ltPivotFieldsVector.Items(ltPivotFieldsVector.Count + Lo1 + .Value) + + Case In0 + RaisePivotFieldsFieldValueLongEq0 FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End Select + + End If + End With +End Function + +Public Function GetPivotCRField(PivotFields As Excel.PivotFields, FieldNV As tyNameValue) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotCRField|Function" + Dim lcPivotField As Excel.PivotField + Dim lvVarType As VBA.VbVarType + + Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=FieldNV.Value) + If lcPivotField Is Nothing Then + RaisePivotFieldDoesNotExist NameValue:=FieldNV + Else + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + Set GetPivotCRField = lcPivotField + Else + RaisePivotFieldNoColumnNoRow NameValue:=FieldNV + End If + End With + End If + + Set lcPivotField = Nothing +End Function + +Public Function GetPivotFieldOrNothingByValue(PivotFields As Excel.PivotFields, Value As Variant) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothingByValue|Function" + Dim lcPivotField As Excel.PivotField + Dim lvVarType As VBA.VbVarType + + On Error GoTo CatchError + + If VBA.VarType(VarName:=Value) = VBA.VbVarType.vbString Then + Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=Value) + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + Set GetPivotFieldOrNothingByValue = lcPivotField + End If + End With + Else + lvVarType = VBA.VarType(VarName:=Value) + If lvVarType = VBA.VbVarType.vbLong _ + Or lvVarType = VBA.VbVarType.vbInteger Then + lvVarType = VBA.VbVarType.vbDouble + End If + For Each lcPivotField In PivotFields + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + With .LabelRange.Resize(RowSize:=Lo1, ColumnSize:=Lo1) + 'Debug.Print VBA.VarType(VarName:=.Value), .Value + If VBA.VarType(VarName:=.Value) = lvVarType Then + If .Value = Value Then + Set GetPivotFieldOrNothingByValue = lcPivotField + Exit For + End If + ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then + If .Value2 = Value Then + Set GetPivotFieldOrNothingByValue = lcPivotField + Exit For + End If + End If + End With + End If + End With + Next + End If + + Set lcPivotField = Nothing + Exit Function + +CatchError: + GetPivotFieldOrNothingByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=VBA.Err.Description _ + ) +End Function + +Public Function GetPivotFieldOrientationString(PivotFieldOrientation As Excel.XlPivotFieldOrientation) As String + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientationString|Function" + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotFieldOrientationString = "Column" + Case XlPivotFieldOrientation.xlDataField + GetPivotFieldOrientationString = "Data" + Case XlPivotFieldOrientation.xlHidden + GetPivotFieldOrientationString = "Hidden" + Case XlPivotFieldOrientation.xlPageField + GetPivotFieldOrientationString = "Page" + Case XlPivotFieldOrientation.xlRowField + GetPivotFieldOrientationString = "Row" + Case Else + GetPivotFieldOrientationString = "Pivot" + End Select +End Function + +Public Function GetPivotFieldDataRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotFieldDataRangeOrNothing = PivotField.DataRange +End Function + +Public Function GetPivotFieldLabelRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotFieldLabelRangeOrNothing = PivotField.LabelRange +End Function + +Private Sub GetPivotFieldColumnVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Long + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).ColumnFields + pfv = GetPivotFieldColumnVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldColumnVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laMatrix() As Excel.PivotField + Dim laResult() As Excel.PivotField + Dim lvColumn As Long + Dim lvCount As Long + Dim lvDataFieldPosition As Long + Dim lvIndex As Long + Dim lvPosition As Long + + Set lcPivotTable = PivotFields.Parent + + lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) + + With lcPivotTable.TableRange1 + ReDim laMatrix(.Column To .Column + .Columns.Count - Lo1, Lo1 To PivotFields.Count) + End With + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + If lcPivotField.Position <> lvDataFieldPosition Then + With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laMatrix(.Column, lcPivotField.Position) = lcPivotField + lvCount = lvCount + Lo1 + End With + End If + End If + End If + Next + + ReDim laResult(1 To lvCount) + + For lvColumn = LBound(laMatrix, Lo1) To UBound(laMatrix, Lo1) + For lvPosition = LBound(laMatrix, Lo2) To UBound(laMatrix, Lo2) + If Not laMatrix(lvColumn, lvPosition) Is Nothing Then + lvIndex = lvIndex + Lo1 + Set laResult(lvIndex) = laMatrix(lvColumn, lvPosition) + End If + Next + Next + + GetPivotFieldColumnVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ + , Count:=lvCount _ + ) + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldColumnVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2Test|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Long + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).ColumnFields + pfv = GetPivotFieldColumnVisibleVector2(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldColumnVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotFieldsVector + Dim laVector() As Excel.PivotField + Dim lvDataFieldPosition As Long + Dim lvIndex As Long + + Set lcPivotTable = PivotFields.Parent + + lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) + + If lvDataFieldPosition = Lo0 Then + + If PivotFields.Count > Lo0 Then + ReDim ltVector.Items(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + With ltVector + .Count = .Count + Lo1 + Set .Items(lcPivotField.Position) = lcPivotField + End With + End If + End If + Next + End If + + Else + + If PivotFields.Count > Lo1 Then + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + If lcPivotField.Position <> lvDataFieldPosition Then + Set laVector(lcPivotField.Position) = lcPivotField + End If + End If + End If + Next + + With ltVector + ReDim ltVector.Items(Lo1 To PivotFields.Count - Lo1) + For lvIndex = LBound(laVector) To UBound(laVector) + If Not laVector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = laVector(lvIndex) + End If + Next + End With + + End If + End If + + GetPivotFieldColumnVisibleVector2 = ltVector + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldDataVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Dim pt As PivotTable + Set pt = ActiveSheet.PivotTables(1) + Set pfs = pt.DataFields + pfv = GetPivotFieldDataVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldDataVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotField + Dim lvCount As Long + + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + lvCount = lvCount + Lo1 + Set laVector(lcPivotField.Position) = lcPivotField + Next + + GetPivotFieldDataVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldPageVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim pf As PivotField + Dim pfs As PivotFields + Dim pt As PivotTable + Dim i As Long + Set pt = ActiveSheet.PivotTables(1) + Set pfs = pt.PageFields + pfv = GetPivotFieldPageVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldPageVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotField + Dim lvIndex As Long + + If PivotFields.Count = Lo0 Then + Exit Function + End If + + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + Set laVector(PivotFields.Count + Lo1 - lcPivotField.Position) = lcPivotField + Next + + GetPivotFieldPageVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=PivotFields.Count _ + ) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldRowVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).RowFields + pfv = GetPivotFieldRowVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldRowVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laMatrix() As Excel.PivotField + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotTable = PivotFields.Parent + + With lcPivotTable.TableRange1 + ReDim laMatrix(.Row To .Row + .Rows.Count - Lo1, Lo1 To PivotFields.Count) + End With + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laMatrix(.Row, lcPivotField.Position) = lcPivotField + lvCount = lvCount + Lo1 + End With + End If + End If + Next + + GetPivotFieldRowVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ + , Count:=lvCount _ + ) + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldRowVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2Test|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).RowFields + pfv = GetPivotFieldRowVisibleVector2(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldRowVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotFieldsVector + + Set lcPivotTable = PivotFields.Parent + + With ltVector + ReDim .Items(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + .Count = .Count + Lo1 + Set .Items(lcPivotField.Position) = lcPivotField + End If + End If + Next + End With + + GetPivotFieldRowVisibleVector2 = ltVector + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Public Function HasPivotFieldDataRange(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + HasPivotFieldDataRange = VBA.CBool(Not PivotField.DataRange Is Nothing) +End Function + +Public Function IsPivotFieldPositionReadable(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotFieldPositionReadable|Function" + Dim lvPosition As Long + + On Error GoTo CatchError + + lvPosition = PivotField.Position + IsPivotFieldPositionReadable = True + + Exit Function + +CatchError: + IsPivotFieldPositionReadable = False +End Function + +Private Function GetVectorFromMatrix(ByRef Matrix() As Excel.PivotField, Count As Long) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromMatrix|Function" + Dim lvIndex1 As Long + Dim lvIndex2 As Long + + With GetVectorFromMatrix + + ReDim .Items(Lo1 To Count) + + For lvIndex1 = LBound(Matrix, Lo1) To UBound(Matrix, Lo1) + For lvIndex2 = LBound(Matrix, Lo2) To UBound(Matrix, Lo2) + If Not Matrix(lvIndex1, lvIndex2) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Matrix(lvIndex1, lvIndex2) + Set Matrix(lvIndex1, lvIndex2) = Nothing + End If + Next + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + + End With +End Function + +Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotField, Count As Long) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" + Dim lvIndex As Long + + With GetVectorFromVector + + ReDim .Items(Lo1 To Count) + + For lvIndex = LBound(Vector) To UBound(Vector) + If Not Vector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Vector(lvIndex) + Set Vector(lvIndex) = Nothing + End If + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + + End With +End Function + +Public Function PivotCellValuesColumnFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlColumnField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesColumnFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.ColumnRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesColumnFieldRange" + End If +End Function +Public Function PivotCellValuesDataFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesDataFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlDataField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesDataFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.DataRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesDataFieldRange" + End If +End Function +Public Function PivotCellValuesRowFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlRowField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesRowFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.RowRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesRowFieldRange" + End If +End Function + +Public Function GetPivotFieldByPosition(PivotFields As Excel.PivotFields, Position As Long) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + + For Each lcPivotField In PivotFields + If lcPivotField.Position = Position Then + Set GetPivotFieldByPosition = lcPivotField + Exit For + End If + Next + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldsVectorSortedByPositionTest() + Dim ltVector As tyPivotFieldsVector + ltVector = GetPivotFieldsVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields) + +End Sub +Public Function GetPivotFieldsVectorSortedByPosition(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + Dim ltVector As tyPivotFieldsVector + Dim lvPosition As Long + + ' die PivotFields sortiert nach ihrer Position zurück + + With ltVector + Set .PivotFields = PivotFields + For Each lcPivotField In PivotFields + lvPosition = GetPivotFieldPosition(PivotField:=lcPivotField) + If lvPosition > Lo0 Then + If .Count < lvPosition Then + ReDim Preserve .Items(Lo1 To lvPosition) + .Count = lvPosition + End If + Set .Items(lvPosition) = lcPivotField + End If + Next + End With + + GetPivotFieldsVectorSortedByPosition = ltVector + +End Function + +Private Sub asfdGetPivotFieldItemsVisibleTest() + Const ThisProcedure As String = ThisModule & "|asfdGetPivotFieldItemsVisibleTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim lvKey As String + + Set lcPivotTable = ActiveCell.PivotTable + Set lcPivotField = lcPivotTable.RowFields(1) + Set lcPivotItems = lcPivotField.PivotItems + Set lcPivotItem = lcPivotField.PivotItems(1) + lvKey = VBA.Format$(lcPivotItem.Name, lcPivotItem.LabelRange.NumberFormat) + Set lcPivotItem = lcPivotItems(lvKey) + Set lcPivotItem = lcPivotItems("01.01.2013") + Set lcPivotItem = lcPivotItems("1/1/2013") + Set lcPivotItem = lcPivotItems("Tue") +Debug.Print lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.NumberFormatLocal + 'VBA.Format +End Sub diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt new file mode 100644 index 0000000000..80d1dfdd30 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt @@ -0,0 +1,979 @@ +Attribute VB_Name = "vbFnPivotItemPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbFnPivotItemPri" + +Public Sub ClearPivotItemsVector(PivotItemsVector As tyPivotItemsVector) + Const ThisProcedure As String = ThisModule & "|ClearPivotItemsVector|Sub" + Dim lvIndex As Long + + With PivotItemsVector + For lvIndex = Lo1 To .Count + Set .Items(lvIndex) = Nothing + Next + End With +End Sub + +Public Function GetPivotItemLabelRangeOrNothing(PivotItem As Excel.PivotItem) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotItemDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowItems den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotItemLabelRangeOrNothing = PivotItem.LabelRange +End Function + +Public Function GetPivotItemsVisibleVector(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , SelectedOnly As Boolean _ + ) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleVector|Function" + Dim lcPivotItem As Excel.PivotItem + + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotItemsVisibleVector = GetPivotItemColumnVisibleVector(PivotItems:=PivotItems) + + Case XlPivotFieldOrientation.xlRowField + GetPivotItemsVisibleVector = GetPivotItemRowVisibleVector(PivotItems:=PivotItems) + + Case XlPivotFieldOrientation.xlPageField + GetPivotItemsVisibleVector = GetPivotItemPageVisibleVector(PivotItems:=PivotItems, SelectedOnly:=SelectedOnly) + + Case Else + RaiseLogicError Source:="GetPivotItemsVector" + + End Select +End Function + +Private Sub GetPivotItemTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim v + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name +' Set lcPivotField = lcPivotTable.PageFields("b") + Set lcPivotField = lcPivotTable.RowFields("b") +Debug.Print lcPivotField.Name + For Each lcPivotItem In lcPivotField.PivotItems + On Error Resume Next + v = lcPivotItem.Visible +Debug.Print Err.Number, Err.Description + On Error Resume Next +Debug.Print lcPivotItem.DataRange.Address +Debug.Print Err.Number, Err.Description + Next + Exit Sub + + Set lcPivotItem = GetPivotItem(PivotItems:=lcPivotField.PivotItems _ + , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ + , FieldItem:=GetPINV("F", 1, "n", 2) _ + ) +End Sub +Public Function GetPivotItem(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItem|Function" + Dim lcPivotItem As Excel.PivotItem + + ' dieser Text ist einfach Quatsch; deshalb habe ich die alte Routime (GetPivotItemOld) ausgemustert + ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert + ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String + + With FieldItem + Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) + If lcPivotItem Is Nothing Then + RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + End With + + Set GetPivotItem = lcPivotItem + + Set lcPivotItem = Nothing +End Function + +Private Sub GetPivotItemOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemOldTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim v + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name +' Set lcPivotField = lcPivotTable.PageFields("b") + Set lcPivotField = lcPivotTable.RowFields("b") +Debug.Print lcPivotField.Name + For Each lcPivotItem In lcPivotField.PivotItems + On Error Resume Next + v = lcPivotItem.Visible +Debug.Print Err.Number, Err.Description + On Error Resume Next +Debug.Print lcPivotItem.DataRange.Address +Debug.Print Err.Number, Err.Description + Next + Exit Sub + + Set lcPivotItem = GetPivotItemOld(PivotItems:=lcPivotField.PivotItems _ + , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ + , FieldItem:=GetPINV("F", 1, "n", 2) _ + ) +End Sub +Public Function GetPivotItemOld(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemOld|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + If PivotItems.Count = Lo0 Then + RaisePivotItemsCountEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotItems.Count + End If + + ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert + ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String + + With FieldItem + .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) + End With + + With FieldItem + If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then + Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) + If lcPivotItem Is Nothing Then + RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + Else + ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , SelectedOnly:=False _ + ) + + Select Case VBA.Sgn(.ItemNV.Value) + Case In1 + If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then + RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End If + Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) + + Case InM1 + If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then + RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End If + Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) + + Case In0 + RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End Select + End If + End With + + Set GetPivotItemOld = lcPivotItem + + Set lcPivotItem = Nothing +End Function + +Private Sub x() + +End Sub +'Private Sub GetPivotItem2Test() +' Const ThisProcedure As String = ThisModule & "|GetPivotItem2Test|Sub" +' Dim lcPivotTable As Excel.PivotTable +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotItem As Excel.PivotItem +' Dim lcPivotItems As Excel.PivotItems +' Dim v +' +' Set lcPivotTable = ActiveSheet.PivotTables(1) +' 'Debug.Print lcPivotTable.Parent.Name +'' Set lcPivotField = lcPivotTable.PageFields("b") +' Set lcPivotField = lcPivotTable.RowFields("b") +'Debug.Print lcPivotField.Name +' For Each lcPivotItem In lcPivotField.PivotItems +' On Error Resume Next +' v = lcPivotItem.Visible +'Debug.Print Err.Number, Err.Description +' On Error Resume Next +'Debug.Print lcPivotItem.DataRange.Address +'Debug.Print Err.Number, Err.Description +' Next +' Exit Sub +' +' Set lcPivotItem = GetPivotItem2(PivotItems:=lcPivotField.PivotItems _ +' , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ +' , FieldItem:=GetPINV("F", 1, "n", 2) _ +' ) +'End Sub +'Public Function GetPivotItem2(PivotItems As Excel.PivotItems _ +' , PivotFieldOrientation As XlPivotFieldOrientation _ +' , FieldItem As tyParentItem _ +' ) As Excel.PivotItem +' Const ThisProcedure As String = ThisModule & "|GetPivotItem2|Function" +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotItem As Excel.PivotItem +' Dim ltPivotItemsVector As tyPivotItemsVector +' Dim lvCount As Long +' Dim lvIndex As Long +' +' Set lcPivotField = PivotItems.Parent +' If PivotItems.Count = Lo0 Then +' RaisePivotItemsCountEq0 FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=PivotItems.Count +' End If +' +' ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert +' ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String +' +' With FieldItem +' .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) +' End With +' +' With FieldItem +' If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then +' Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) +' If lcPivotItem Is Nothing Then +' RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation +' End If +' Else +' ltPivotItemsVector = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) +' +' Select Case VBA.Sgn(.ItemNV.Value) +' Case In1 +' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then +' RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End If +' Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) +' +' Case InM1 +' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then +' RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End If +' Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) +' +' Case In0 +' RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End Select +' End If +' End With +' +' Set GetPivotItem2 = lcPivotItem +' +' Set lcPivotItem = Nothing +'End Function +' +Public Function GetPivotItemsVisibleDataRange(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleDataRange|Function" + Dim lcDataRange As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + If PivotItems.Count = Lo0 Then + RaisePivotItemsCountEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotItems.Count + End If + + ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , SelectedOnly:=False _ + ) + With ltPivotItemsVector + For lvIndex = LBound(.Items) To UBound(.Items) + If lcDataRange Is Nothing Then + Set lcDataRange = .Items(lvIndex).DataRange + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange _ + , Arg2:=.Items(lvIndex).DataRange _ + ) + End If + Next + End With + + Set GetPivotItemsVisibleDataRange = lcDataRange + + Set lcPivotField = Nothing + Set lcDataRange = Nothing +End Function + +Private Sub GetPivotItemByValueTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemByValueTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Set lcPivotTable = ActiveSheet.PivotTables(1) + Set lcPivotField = lcPivotTable.PivotFields("Time") + 'Debug.Print GetPivotItemByValue(lcPivotField.PivotItems, VBA.TimeSerial(1, 0, 0), "bla").Name +End Sub +Public Function GetPivotItemByValue(PivotItems As Excel.PivotItems, ItemNV As tyNameValue) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemByValue|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lvVarType As VBA.VbVarType + + On Error GoTo CatchError + + With ItemNV + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then + On Error Resume Next + Set GetPivotItemByValue = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.Value) + Else + lvVarType = VBA.VarType(VarName:=.Value) + If lvVarType = VBA.VbVarType.vbLong _ + Or lvVarType = VBA.VbVarType.vbInteger Then + lvVarType = VBA.VbVarType.vbDouble + End If + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + 'Debug.Print VBA.VarType(VarName:=.Value), .Value + If VBA.VarType(VarName:=.Value) = lvVarType Then + If .Value = ItemNV.Value Then + Set GetPivotItemByValue = lcPivotItem + Exit For + End If + ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then + If .Value2 = ItemNV.Value Then + Set GetPivotItemByValue = lcPivotItem + Exit For + End If + End If + End With + End If + Next + End If + End With + If GetPivotItemByValue Is Nothing Then + RaisePivotItemByValueNotFound NameValue:=ItemNV + End If + + Exit Function + +CatchError: + GetPivotItemByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=VBA.Err.Description _ + ) +End Function + +Private Sub GetPivotFieldItemsVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVectorTest|Sub" + Dim ltVector As tyPivotItemsVector + ltVector = GetPivotFieldItemsVisibleVector(ActiveCell.PivotTable.ColumnFields("host2")) + Stop +End Sub +Private Function GetPivotFieldItemsVisibleVector(PivotField As Excel.PivotField) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVector|Function" + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotLine As Excel.PivotLine + Dim lcPivotLineCell As Excel.PivotCell + Dim lcPivotItem As Excel.PivotItem + Dim ltVector As tyPivotItemsVector + + Set lcPivotAxis = GetPivotFieldPivotAxis(PivotField:=PivotField) + For Each lcPivotLine In lcPivotAxis.PivotLines + If lcPivotLine.LineType = XlPivotLineType.xlPivotLineRegular Then + For Each lcPivotLineCell In lcPivotLine.PivotLineCells + With lcPivotLineCell + If .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + If .PivotField.Name = PivotField.Name Then + Set lcPivotItem = .PivotItem + 'Debug.Print "PivotField", PivotField.Name, PivotField.NumberFormat, PivotFieldDataTypeName(PivotField.DataType) + Debug.Print "PivotItem ", lcPivotItem.Name, VarTypeName(lcPivotItem.Value) + 'Debug.Print "LabelRange", lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.Value, VarTypeName(lcPivotItem.LabelRange.Value) + + With ltVector + .Count = .Count + Lo1 + If .Count = Lo1 Then + ReDim .Items(Lo1 To .Count) + Else + ReDim Preserve .Items(Lo1 To .Count) + End If + Set .Items(.Count) = lcPivotItem + End With +' Select Case PivotField.DataType +' Case XlPivotFieldDataType.xlDate +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case XlPivotFieldDataType.xlNumber +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case XlPivotFieldDataType.xlText +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case Else +' Stop +' End Select + Exit For + End If + End If + End With + Next + End If + Next + + GetPivotFieldItemsVisibleVector = ltVector + +End Function + +Public Function GetPivotItemColumnVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" + + ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemColumnVisibleVectorOldTest) macht + ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten + ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt + ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 + ' aber vorher war's so, also lass ich es + + GetPivotItemColumnVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlColumnField) + +End Function + +Private Sub GetPivotItemColumnVisibleVectorOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOldTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).ColumnFields("host2") + piv = GetPivotItemColumnVisibleVectorOld(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemColumnVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOld|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + Set lcPivotTable = lcPivotField.Parent + 'Debug.Print lcPivotField.Name + + With lcPivotTable.TableRange1 + ReDim laVector(.Column To .Column + .Columns.Count - Lo1) + End With + + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(PivotItem:=lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laVector(.Column) = lcPivotItem + lvCount = lvCount + Lo1 + End With + End If + Next + + GetPivotItemColumnVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + GetPivotItemColumnVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemColumnVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2Test|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).ColumnFields("Server") + piv = GetPivotItemColumnVisibleVector2(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemColumnVisibleVector2(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + + Set lcPivotField = PivotItems.Parent + + GetPivotItemColumnVisibleVector2 = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemPageVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVectorTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).PageFields("DateHHMMSS") + piv = GetPivotItemPageVisibleVector(pf.PivotItems, False) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemPageVisibleVector(PivotItems As Excel.PivotItems, SelectedOnly As Boolean) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVector|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + Dim lvFieldDate As Date + Dim lvItemDate As Date + Dim v As Variant + + Set lcPivotField = PivotItems.Parent + 'Debug.Print lcPivotField.Name + + If lcPivotField.AllItemsVisible Then + + If Not SelectedOnly Then + ReDim laVector(Lo1 To PivotItems.Count) + + For Each lcPivotItem In PivotItems + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + Next + End If + + ElseIf lcPivotField.EnableMultiplePageItems Then + ' mehrere PageFields ausgewählt + + ReDim laVector(Lo1 To PivotItems.Count) + + For Each lcPivotItem In PivotItems + lvIndex = lvIndex + Lo1 + With lcPivotItem + If IsPivotItemVisibleOnError(PivotItem:=lcPivotItem) Then + RaisePivotItemVisibleError ParName:=lcPivotField.Name + End If + If SelectedOnly Then + If .Visible Then + Set laVector(lvIndex) = lcPivotItem + lvCount = lvCount + Lo1 + End If + Else + Set laVector(lvIndex) = lcPivotItem + lvCount = lvCount + Lo1 + End If + End With + Next + + Else + 'nur ein einzelnes PageField ausgewählt + ReDim laVector(Lo1 To Lo1) + If lcPivotField.DataType = XlPivotFieldDataType.xlDate Then + lvFieldDate = lcPivotField.DataRange.Value + For Each lcPivotItem In PivotItems + lvItemDate = GetDateFromPivotItemValue(PivotItemValue:=lcPivotItem.Value) + If lvItemDate = lvFieldDate Then + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + End If + Next + Else + For Each lcPivotItem In PivotItems + If lcPivotItem.Visible Then + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + Exit For + End If + Next + End If + + End If + + If lvCount > Lo0 Then + + GetPivotItemPageVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + End If + GetPivotItemPageVisibleVector.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotField = Nothing +End Function + +Public Function GetPivotItemRowVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" + + ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemRowVisibleVectorOld) macht + ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten + ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt + ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 + ' aber vorher war's so, also lass ich es + + GetPivotItemRowVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlRowField) + +End Function + +Private Sub GetPivotItemRowVisibleVectorOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOldTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).RowFields("Date") + piv = GetPivotItemRowVisibleVectorOld(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemRowVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOld|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + Set lcPivotTable = lcPivotField.Parent + 'Debug.Print lcPivotField.Name + + With lcPivotTable.TableRange1 + ReDim laVector(.Row To .Row + .Rows.Count - Lo1) + End With + + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(PivotItem:=lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laVector(.Row) = lcPivotItem + lvCount = lvCount + Lo1 + End With + End If + Next + + GetPivotItemRowVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + GetPivotItemRowVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemRowColumnVisibleVectorTest() + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lvOrientation As XlPivotFieldOrientation + + Set lcPivotTable = ActiveSheet.PivotTables(1) + Set lcPivotField = lcPivotTable.PivotFields("Host") + lvOrientation = lcPivotField.Orientation + + + ltPivotItemsVector = GetPivotItemRowColumnVisibleVector(lcPivotField.PivotItems, lvOrientation) +End Sub + +Public Function GetPivotItemRowColumnVisibleVector(PivotItems As Excel.PivotItems, PivotFieldOrientation As XlPivotFieldOrientation) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector|Function" + Dim lcArea As Excel.Range + Dim lcRange As Excel.Range + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotCell As Excel.PivotCell + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotLine As Excel.PivotLine + Dim lcPivotTable As Excel.PivotTable + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvAreaOK As Boolean + Dim lvAreaSize As Long + Dim lvCellsCount As Long + Dim lvIndex As Long + Dim lvPivotItemsCount As Long + Dim lvPosition As Long + + ' es werden die ItemNamen des PivotField ermittelt + ' die mit den Kriterien, die in den PivotFieldPivotItemAxes übereinstimmten + ' die ItemName werden von links nacch rechts bei Column und + ' und von oben nach unten bei Row ausgegeben + ' also so, wie sie eben in der PivotTable angezeigt werden + + Set lcPivotField = PivotItems.Parent + With lcPivotField + Set lcPivotTable = .Parent + lvPosition = .Position + End With + + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + Set lcPivotAxis = lcPivotTable.PivotRowAxis + + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + Set lcPivotAxis = lcPivotTable.PivotColumnAxis + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + + Set lcPivotLine = lcPivotAxis.PivotLines(Index:=Lo1) + Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) + Set lcPivotItem = lcPivotCell.PivotItem + + ' die Schrittweite und länge bestimmen, in denen jeweils über die Achse gehoppelt wird + + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + lvCellsCount = lcPivotField.DataRange.Rows.Count + lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Rows.Count + + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + lvCellsCount = lcPivotField.DataRange.Columns.Count + lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Columns.Count + + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + + For lvIndex = Lo1 To lvCellsCount Step lvAreaSize + Set lcPivotLine = lcPivotAxis.PivotLines(Index:=lvIndex) + ' das ist die Cell von PivotField + Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) + Set lcPivotItem = lcPivotCell.PivotItem + #If ccDebug Then + Debug.Print lcPivotItem.DataRange.Address + lcPivotItem.DataRange.Select + #End If + For Each lcArea In lcPivotItem.DataRange.Areas + #If ccDebug Then + lcArea.Select + #End If + lvAreaOK = False + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + If lcArea.Row = lcPivotCell.Range.Row Then + lvAreaOK = True + #If ccDebug Then + lcArea.Select + #End If + End If + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + If lcArea.Column = lcPivotCell.Range.Column Then + lvAreaOK = True + #If ccDebug Then + lcArea.Select + #End If + End If + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + If lvAreaOK Then + With ltPivotItemsVector + lvPivotItemsCount = lvPivotItemsCount + Lo1 + .Count = lvPivotItemsCount + ReDim Preserve .Items(Lo1 To .Count) + Set .Items(.Count) = lcPivotItem + End With + Exit For + End If + Next + Next + + ltPivotItemsVector.PivotFieldDataType = lcPivotField.DataType + + GetPivotItemRowColumnVisibleVector = ltPivotItemsVector + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Public Function IsPivotItemVisible(PivotItem As Excel.PivotItem) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotItemVisible|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + IsPivotItemVisible = VBA.CBool(Not PivotItem.DataRange Is Nothing) +End Function + +Public Function IsPivotItemVisibleOnError(PivotItem As Excel.PivotItem) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotItemVisibleOnError|Function" + Dim lvVisible As Boolean + On Error GoTo CatchError + lvVisible = PivotItem.Visible + IsPivotItemVisibleOnError = False + Exit Function +CatchError: + IsPivotItemVisibleOnError = True +End Function + +Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotItem, Count As Long) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" + Dim lvIndex As Long + + If Count > Lo0 Then + With GetVectorFromVector + ReDim .Items(Lo1 To Count) + + For lvIndex = LBound(Vector) To UBound(Vector) + If Not Vector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Vector(lvIndex) + Set Vector(lvIndex) = Nothing + End If + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + End With + End If +End Function + +Public Function GetPivotItemLabelRangeValue(PivotItem As Excel.PivotItem) As Variant + Const ThisProcedure As String = ThisModule & "|GetPivotItemLabelRangeValue|Function" + Dim lcPivotField As Excel.PivotField + Dim lvNumberFormat As String + + Set lcPivotField = PivotItem.Parent + With PivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDouble Then + On Error Resume Next + ' NumberFormat wirft bei ColumnFields einen Fehler + lvNumberFormat = lcPivotField.NumberFormat + On Error GoTo 0 + If VBA.InStr(lvNumberFormat, ConChrColon) > Lo0 Then + GetPivotItemLabelRangeValue = VBA.CDate(.Value) + Else + GetPivotItemLabelRangeValue = .Value + End If + Else + GetPivotItemLabelRangeValue = .Value + End If + + End With + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemAreasVisibleVectorSortedByPositionTest() + Dim ltVector As tyPivotItemAreasVector + ltVector = GetPivotItemAreasVisibleVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields("CPU").PivotItems) + +End Sub +Public Function GetPivotItemAreasVisibleVectorSortedByPosition(PivotItems As Excel.PivotItems) As tyPivotItemAreasVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcArea As Excel.Range + Dim lcCell As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotItemAreasVector + Dim lvAreaSize As Long + Dim lvCellsCount As Long + Dim lvCount As Long + Dim lvIndex As Long + Dim lvOrientation As XlPivotFieldOrientation + Dim lvPosition As Long + + ' die PivotFields sortiert nach ihrer Position zurück + + Set lcPivotField = PivotItems.Parent + lvOrientation = lcPivotField.Orientation + lvPosition = lcPivotField.Position + + Set lcPivotTable = lcPivotField.Parent + + If lvOrientation = XlPivotFieldOrientation.xlRowField Then + ' rows + lvAreaSize = Lo1 + lvCellsCount = GetPivotTableRowLabelRange(PivotTable:=lcPivotTable).Rows.Count + + With ltVector + For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize + Set lcCell = lcPivotField.DataRange.Offset(RowOffset:=lvIndex).Resize(RowSize:=Lo1) + #If ccDebug Then + lcCell.Select + #End If + Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem + lvCount = lvCount + Lo1 + ReDim Preserve .Items(Lo1 To lvCount) + With .Items(lvCount) + Set .PivotItem = lcPivotItem + End With + .Count = lvCount + Next + + End With + + ElseIf lvOrientation = XlPivotFieldOrientation.xlColumnField Then + ' Columns + lvAreaSize = lcPivotTable.DataFields.Count + lvCellsCount = GetPivotTableColumnLabelRange(PivotTable:=lcPivotTable).Columns.Count + + With ltVector + For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize + Set lcCell = lcPivotField.DataRange.Offset(ColumnOffset:=lvIndex).Resize(ColumnSize:=Lo1) + #If ccDebug Then + lcCell.Select + #End If + Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem + lvCount = lvCount + Lo1 + ReDim Preserve .Items(Lo1 To lvCount) + With .Items(lvCount) + Set .PivotItem = lcPivotItem + End With + .Count = lvCount + Next + + End With + + + End If + + + GetPivotItemAreasVisibleVectorSortedByPosition = ltVector + +End Function + +Private Sub SwapPivotItemArea(LO As tyPivotItemArea, HI As tyPivotItemArea) + Dim ltPivotItemArea As tyPivotItemArea + + ltPivotItemArea = HI + HI = LO + LO = ltPivotItemArea + #If ccDebug Then + LO.Area.Select ' muss jetzt LO sein + HI.Area.Select ' muss jetzt HI sein + #End If + +End Sub + + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt new file mode 100644 index 0000000000..9427d5dbde --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt @@ -0,0 +1,154 @@ +Attribute VB_Name = "vbFnPivotTablePri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbFnPivotTablePri" + +Public Function GetPivotTable(PivotTables As Excel.PivotTables _ + , NameValue As tyNameValue _ + ) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTable|Function" + Dim lvIndex As Long + + NameValue.Value = GetLongOrStringValue(NameValue:=NameValue) + + If VBA.VarType(VarName:=NameValue.Value) = VBA.VbVarType.vbString Then + Set GetPivotTable = GetPivotTableOrNothing(PivotTables:=PivotTables, Index:=NameValue.Value) + If GetPivotTable Is Nothing Then + RaiseCollectionItemItemIsNothing NameValue:=NameValue _ + , Collection:=PivotTables + End If + Else + lvIndex = GetCollectionItemIndex(NameValue:=NameValue _ + , Collection:=PivotTables _ + , Count:=PivotTables.Count _ + ) + Set GetPivotTable = GetPivotTableOrNothing(PivotTables:=PivotTables _ + , Index:=PivotTables.Count + Lo1 - lvIndex _ + ) + End If +End Function + +Public Function GetPivotTableByRange(PivotTableRange As Excel.Range) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableByRange|Function" + Dim lcCell As Excel.Range + + For Each lcCell In PivotTableRange + 'Debug.Print lcCell.Address + Set GetPivotTableByRange = GetRangePivotTableOrNothing(Range:=lcCell) + If Not GetPivotTableByRange Is Nothing Then + Exit For + End If + Next + If GetPivotTableByRange Is Nothing Then + RaiseRangeContainsNoPivotTable PivotTableRange:=PivotTableRange + End If + + Set lcCell = Nothing +End Function + +Private Sub GetPivotTableColumnLabelRangeTest() + GetPivotTableColumnLabelRange(ActiveCell.PivotTable).Select +End Sub +Public Function GetPivotTableColumnLabelRange(PivotTable As Excel.PivotTable) As Excel.Range + With PivotTable + With GetIntersectOrNothing(.ColumnRange.EntireRow, .DataBodyRange.EntireColumn) + Set GetPivotTableColumnLabelRange = .Resize(RowSize:=.Rows.Count - Lo1).Offset(RowOffset:=Lo1) + End With + End With +End Function + +Private Sub GetPivotTableRowLabelRangeTest() + GetPivotTableRowLabelRange(ActiveCell.PivotTable).Select +End Sub +Public Function GetPivotTableRowLabelRange(PivotTable As Excel.PivotTable) As Excel.Range + With PivotTable + Set GetPivotTableRowLabelRange = GetIntersectOrNothing(.RowRange.EntireColumn, .DataBodyRange.EntireRow) + End With +End Function + +Public Function GetPivotTablePivotFields(PivotTable As Excel.PivotTable _ + , PivotFieldOrientation As Excel.XlPivotFieldOrientation _ + ) As Excel.PivotFields + Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotFields|Function" + + With PivotTable + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + Set GetPivotTablePivotFields = .ColumnFields + + Case XlPivotFieldOrientation.xlDataField + Set GetPivotTablePivotFields = .DataFields + + Case XlPivotFieldOrientation.xlHidden + Set GetPivotTablePivotFields = .HiddenFields + + Case XlPivotFieldOrientation.xlPageField + Set GetPivotTablePivotFields = .PageFields + + Case XlPivotFieldOrientation.xlRowField + Set GetPivotTablePivotFields = .RowFields + + Case Else + Set GetPivotTablePivotFields = .PivotFields + + End Select + End With +End Function + +Public Function GetPivotTables(Worksheet As Excel.Worksheet) As Excel.PivotTables + Const ThisProcedure As String = ThisModule & "|GetPivotTables|Function" + + Set GetPivotTables = GetPivotTablesOrNothing(Worksheet:=Worksheet) + If GetPivotTables Is Nothing Then + RaiseWorksheetPivotTablesIsNothing Worksheet:=Worksheet + End If +End Function + +Public Function PFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PFPTR|Function" + Set PFPTR = ActiveWorkbook.Worksheets("PF").PivotTables(1).TableRange1 +End Function +Public Function PCFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PCFPTR|Function" + Set PCFPTR = ActiveWorkbook.Worksheets("PCF").PivotTables(1).TableRange1 +End Function +Public Function PDFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PDFPTR|Function" + Set PDFPTR = ActiveWorkbook.Worksheets("PDF").PivotTables(1).TableRange1 +End Function +Public Function PPFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PPFPTR|Function" + Set PPFPTR = ActiveWorkbook.Worksheets("PPF").PivotTables(1).TableRange1 +End Function +Public Function PRFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PRFPTR|Function" + Set PRFPTR = ActiveWorkbook.Worksheets("PRF").PivotTables(1).TableRange1 +End Function +Public Function PSPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PSPTR|Function" + Set PSPTR = ActiveWorkbook.Worksheets("PS").PivotTables(1).TableRange1 +End Function +Public Function PTPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PTPTR|Function" + Set PTPTR = ActiveWorkbook.Worksheets("PT").PivotTables(1).TableRange1 +End Function +Public Function PYPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PYPTR|Function" + Set PYPTR = ActiveWorkbook.Worksheets("PY").PivotTables(1).TableRange1 +End Function + +Private Function WorksheetPTR(WorksheetName As String) As Excel.Worksheet + Const ThisProcedure As String = ThisModule & "|WorksheetPTR|Function" + Dim lcWorksheet As Excel.Worksheet + Dim lcPivotTable As Excel.PivotTable + + Set lcWorksheet = ActiveWorkbook.Worksheets(Index:=WorksheetName) + With lcWorksheet + .Activate + Set lcPivotTable = .PivotTables(1) + End With + Set WorksheetPTR = lcPivotTable.TableRange1 + Set lcPivotTable = Nothing + Set lcWorksheet = Nothing +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt new file mode 100644 index 0000000000..941c1f994a --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt @@ -0,0 +1,61 @@ +Attribute VB_Name = "vbVarTypeNamePri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbVarTypeNamePri" + +Private Sub VarTypeNameTest() + Const ThisProcedure As String = ThisModule & "|VarTypeNameTest|Sub" + Dim v As Boolean +Debug.Print VarTypeName(v) +End Sub + +Public Function VarTypeName(Var As Variant) As String + Const ThisProcedure As String = ThisModule & "|VarTypeName|Function" + Dim lvArrayType As VBA.VbVarType + Dim lvVarType As VBA.VbVarType + + lvArrayType = VBA.VarType(Var) And VBA.VbVarType.vbArray + lvVarType = VBA.VarType(Var) And Not VBA.VbVarType.vbArray + + Select Case lvVarType + Case VBA.VbVarType.vbEmpty ' 0 Empty (nicht initialisiert) + VarTypeName = "Empty" + Case VBA.VbVarType.vbNull ' 1 Null (keine gültigen Daten) + VarTypeName = "Null" + Case VBA.VbVarType.vbInteger ' 2 Ganzzahl (Integer) + VarTypeName = "Integer" + Case VBA.VbVarType.vbLong ' 3 Ganzzahl (Long) + VarTypeName = "Long" + Case VBA.VbVarType.vbSingle ' 4 Fließkommazahl einfacher Genauigkeit + VarTypeName = "Single" + Case VBA.VbVarType.vbDouble ' 5 Fließkommazahl doppelter Genauigkeit + VarTypeName = "Double" + Case VBA.VbVarType.vbCurrency ' 6 Währungsbetrag (Currency) + VarTypeName = "Currency" + Case VBA.VbVarType.vbDate ' 7 Datumswert (Date) + VarTypeName = "Date" + Case VBA.VbVarType.vbString ' 8 Zeichenfolge (String) + VarTypeName = "String" + Case VBA.VbVarType.vbObject ' 9 Objekt + VarTypeName = "Object" + Case VBA.VbVarType.vbError ' 10 Fehlerwert + VarTypeName = "Error" + Case VBA.VbVarType.vbBoolean ' 11 Boolescher Wert (Boolean) + VarTypeName = "Boolean" + Case VBA.VbVarType.vbVariant ' 12 Variant (nur bei Datenfeldern mit Variant-Werten) + VarTypeName = "Variant" + Case VBA.VbVarType.vbDataObject ' 13 Ein Datenzugriffsobjekt + VarTypeName = "DataObject" + Case VBA.VbVarType.vbDecimal ' 14 Dezimalwert + VarTypeName = "Decimal" + Case VBA.VbVarType.vbByte ' 17 Byte-Wert + VarTypeName = "Byte" + Case Else + On Error GoTo 0 + RaiseLogicError Source:="VarTypeName" + End Select + If lvArrayType = VBA.VbVarType.vbArray Then ' 8192 Datenfeld (Array) + VarTypeName = VarTypeName & "()" + End If +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt new file mode 100644 index 0000000000..383e0c2c6b --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt @@ -0,0 +1,26 @@ +Attribute VB_Name = "vbVBAAllPri" +Option Explicit +Option Private Module + +Public Const ThisProject As String = "ATGfn" +Private Const ThisModule As String = ThisProject & "|ideVBAAllPri" + +'Public Const EmptyDate As Date = #12:00:00 AM#: ' entspricht #00:00:00# +'Public Const EmptyTime As Date = #12:00:00 AM# +'Public Const EmptyString As String = "" + +Public Function GetccDebug() As Boolean + Const ThisProcedure As String = ThisModule & "|GetccDebug|Function" + + On Error GoTo CatchError + + #If ccDebug Then + GetccDebug = True + #Else + GetccDebug = False + #End If + Exit Function + +CatchError: +' vbErr.LogReraise Source:=ThisProcedure +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt new file mode 100644 index 0000000000..6a2b80dd81 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt @@ -0,0 +1,29 @@ +Attribute VB_Name = "vbXlPivotAxisPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbXlPivotAxisPri" + +Private Sub GetPivotAxisColumnDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotAxisColumnDataRangeTest|Sub" +Debug.Print GetPivotAxisColumnDataRange(ActiveCell.PivotTable).Address +End Sub +Public Function GetPivotAxisColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotAxisColumnDataRange|Function" + Set GetPivotAxisColumnDataRange = GetPivotLinesRegularRange(PivotLines:=PivotTable.PivotColumnAxis.PivotLines) +End Function + +Private Sub GetPivotAxisRowDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotAxisRowDataRangeTest|Sub" +Debug.Print GetPivotAxisRowDataRange(ActiveCell.PivotTable).Address +End Sub +Public Function GetPivotAxisRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotAxisRowDataRange|Function" + Dim lcPivotField As Excel.PivotField + For Each lcPivotField In PivotTable.RowFields + If lcPivotField.LayoutForm <> XlLayoutFormType.xlTabular Then + RaisePivotTableNotClassicLayout + End If + Next + Set GetPivotAxisRowDataRange = GetPivotLinesRegularRange(PivotLines:=PivotTable.PivotRowAxis.PivotLines) +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt new file mode 100644 index 0000000000..eb33acfc0a --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt @@ -0,0 +1,196 @@ +Attribute VB_Name = "vbXlPivotFieldPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbXlPivotFieldPri" + +Public Function GetPivotFieldDataRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeOrNothing|Function" + On Error Resume Next + Set GetPivotFieldDataRangeOrNothing = PivotField.DataRange +End Function + +Public Function GetPivotFieldOrNothing(PivotFields As Excel.PivotFields, Index As Variant) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothing|Function" + On Error Resume Next + Set GetPivotFieldOrNothing = PivotFields.Item(Index:=Index) +End Function + +Public Function GetPivotFieldPosition(PivotField As Excel.PivotField) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothing|Function" + On Error Resume Next + GetPivotFieldPosition = PivotField.Position +End Function + +Private Sub GetPivotFieldsCountTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldsCountTest|Sub" + Dim pt As Excel.PivotTable + Set pt = ActiveSheet.PivotTables(1) +Debug.Print GetPivotFieldsCount(pt.ColumnFields, xlColumnField) +End Sub +Public Function GetPivotFieldsCount(PivotFields As Excel.PivotFields, PivotFieldOrientation As XlPivotFieldOrientation) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotFieldsCount|Function" + + If PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + GetPivotFieldsCount = PivotFields.Count + (GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=PivotFields.Parent) > Lo0) + Else + GetPivotFieldsCount = PivotFields.Count + End If +End Function + +Private Sub GetPivotFieldPivotAxisTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPivotAxisTest|Sub" + Dim lcPivotAxis As Excel.PivotAxis + Set lcPivotAxis = GetPivotFieldPivotAxis(PivotField:=ActiveCell.PivotField) +End Sub +Public Function GetPivotFieldPivotAxis(PivotField As Excel.PivotField) As Excel.PivotAxis + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPivotAxis|Function" + Dim lcPivotTable As Excel.PivotTable + + With PivotField + Set lcPivotTable = PivotField.Parent + Select Case .Orientation + Case XlPivotFieldOrientation.xlColumnField + Set GetPivotFieldPivotAxis = lcPivotTable.PivotColumnAxis + + Case XlPivotFieldOrientation.xlRowField + Set GetPivotFieldPivotAxis = lcPivotTable.PivotRowAxis + + Case Else + ' eigentlich müpßte hier ein Fehler kommen + + End Select + End With +End Function + +Private Sub GetPivotFieldDataRangeDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeDataRangeTest|Sub" +Debug.Print GetPivotFieldDataRangeDataRange(ActiveCell.PivotField).Address +End Sub +Public Function GetPivotFieldDataRangeDataRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeDataRange|Function" + Dim lcCell As Excel.Range + Dim lcDataRange As Excel.Range + + For Each lcCell In PivotField.DataRange + lcCell.Select + With lcCell.PivotCell + If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ + Or .PivotCellType = xlPivotCellPivotItem Then + ' xlPivotCellDataField kommt nur bei der PivotColumnAxis vor + ' xlPivotCellPivotItem bei beiden PivotAxes + If lcDataRange Is Nothing Then + Set lcDataRange = .Range + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) + End If + End If + End With + Next + Set GetPivotFieldDataRangeDataRange = lcDataRange +End Function + +Private Function IsPivotFieldPositionReadable(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotFieldPositionReadable|Function" + Dim lvPosition As Long + On Error GoTo CatchError + lvPosition = PivotField.Position + IsPivotFieldPositionReadable = True +CatchError: + IsPivotFieldPositionReadable = False +End Function +Private Sub GetPivotColumnFieldWithHighestPositionTest() + Const ThisProcedure As String = ThisModule & "|GetPivotColumnFieldWithHighestPositionTest|Sub" +Debug.Print GetPivotFieldOrNothingWithHighestPosition(ActiveCell.PivotTable.PageFields, XlPivotFieldOrientation.xlPageField).Name +End Sub +Public Function GetPivotFieldOrNothingWithHighestPosition(PivotFields As Excel.PivotFields, PivotFieldOrientation As XlPivotFieldOrientation) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothingWithHighestPosition|Function" + Dim lcPivotField As Excel.PivotField + Dim lvPosition As Long + Dim lvColumnDataFieldPosition As Long + + If PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + lvColumnDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=PivotFields.Parent) + End If + + For Each lcPivotField In PivotFields + With lcPivotField + If .Position <> lvColumnDataFieldPosition Then + If lvPosition < .Position Then + lvPosition = .Position + Set GetPivotFieldOrNothingWithHighestPosition = lcPivotField + End If + End If + End With + Next +End Function + +Private Sub GetPivotFieldByPositionTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPositionTest|Sub" +Debug.Print GetPivotFieldByPosition(ActiveCell.PivotTable.RowFields, 1).Name +End Sub +Public Function GetPivotFieldByPosition(PivotFields As Excel.PivotFields _ + , Optional Position As Double = 1 _ + ) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + + On Error GoTo CatchError + + For Each lcPivotField In PivotFields + If lcPivotField.Position = Position Then + Set GetPivotFieldByPosition = lcPivotField + Exit For + End If + Next + + GoSub CleanUp + Exit Function + +CleanUp: + Set lcPivotField = Nothing + Return + +CatchError: + GoSub CleanUp +End Function + +Private Sub GetPivotFieldOrientationTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientationTest|Sub" +Debug.Print GetPivotFieldOrientation(ActiveCell.PivotTable.DataFields(1)) +End Sub +Public Function GetPivotFieldOrientation(PivotField As Excel.PivotField) As XlPivotFieldOrientation + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientation|Function" + Dim lcPivotTable As Excel.PivotTable + + With PivotField + Select Case .Orientation + Case XlPivotFieldOrientation.xlColumnField _ + , XlPivotFieldOrientation.xlDataField _ + , XlPivotFieldOrientation.xlPageField _ + , XlPivotFieldOrientation.xlRowField + GetPivotFieldOrientation = .Orientation + + Case Else + + ' die Orientation ist beim Ausführen von WorksheetFunktionen immer lxHidden + ' deshalb muss es dann so festgestellt werden + + Set lcPivotTable = PivotField.Parent + If Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.ColumnFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlColumnField + ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.DataFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlDataField + ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.PageFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlPageField + ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.RowFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlRowField + Else + GetPivotFieldOrientation = XlPivotFieldOrientation.xlHidden + End If + End Select + End With + + Set lcPivotTable = Nothing +End Function + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt new file mode 100644 index 0000000000..5ac2be1baa --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt @@ -0,0 +1,158 @@ +Attribute VB_Name = "vbXlPivotItemPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbXlPivotItemPri" + +Public Function GetPivotItemOrNothing(PivotItems As Excel.PivotItems, Index As Variant) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemOrNothing|Function" + On Error Resume Next + Set GetPivotItemOrNothing = PivotItems.Item(Index:=Index) +End Function + +Public Function GetPivotItemDataRangeOrNothing(PivotItem As Excel.PivotItem) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemDataRangeOrNothing|Function" + On Error Resume Next + Set GetPivotItemDataRangeOrNothing = PivotItem.DataRange +End Function + +Public Function GetPivotItemPosition(PivotItem As Excel.PivotItem) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotItemOrNothing|Function" + On Error Resume Next + GetPivotItemPosition = PivotItem.Position +End Function + +Public Function GetPivotItemsDataRange(PivotItems As Excel.PivotItems) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemsDataRange|Function" + Dim lcDataRange As Excel.Range + Dim lcPivotItem As Excel.PivotItem + + For Each lcPivotItem In PivotItems + 'Debug.Print lcPivotField.Name, lcPivotItem.Name + If Not GetPivotItemDataRangeOrNothing(PivotItem:=lcPivotItem) Is Nothing Then + If lcDataRange Is Nothing Then + Set lcDataRange = lcPivotItem.DataRange + Else + Set lcDataRange = Application.Union(lcDataRange _ + , lcPivotItem.DataRange _ + ) + End If + 'Debug.Print lcDataRange.Address + End If + Next + Set GetPivotItemsDataRange = lcDataRange +End Function + +Private Sub GetDateFromPivotItemValueTest() + Const ThisProcedure As String = ThisModule & "|GetDateFromPivotItemValueTest|Sub" +Debug.Print GetDateFromPivotItemValue("2/3/2011") +Debug.Print GetDateFromPivotItemValue("2/3/2011 12:34:56") +End Sub +Public Function GetDateFromPivotItemValue(PivotItemValue As String) As Date + Const ThisProcedure As String = ThisModule & "|GetDateFromPivotItemValue|Function" + Dim laDateTime As Variant + Dim laDate As Variant + Dim lvDate As Date + + laDateTime = VBA.Split(PivotItemValue, ConChrSpace) + laDate = VBA.Split(laDateTime(Lo0), ConChrSlash) + lvDate = VBA.DateSerial(Year:=VBA.CInt(laDate(Lo2)), Month:=VBA.CInt(laDate(Lo1)), Day:=VBA.CInt(laDate(Lo0))) + If UBound(laDateTime) > LBound(laDateTime) Then + lvDate = lvDate + VBA.TimeValue(laDateTime(Lo1)) + End If + GetDateFromPivotItemValue = lvDate +End Function + +Private Sub PivotCellValuesColumnRangeTest() + Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnRangeTest|Sub" +Debug.Print PivotCellValuesColumnRange(ActiveCell.PivotTable).Address +End Sub +Public Function PivotCellValuesColumnRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnRange|Function" + Dim lcCell As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotFields As Excel.PivotFields + Dim lcRange As Excel.Range + + Set lcPivotFields = PivotTable.ColumnFields + With lcPivotFields + Set lcPivotField = .Item(Index:=.Count) + End With + + For Each lcCell In lcPivotField.DataRange + With lcCell + If .PivotCell.PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + If lcRange Is Nothing Then + Set lcRange = lcCell + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcCell) + End If + End If + End With + Next + + Set PivotCellValuesColumnRange = lcRange +End Function + +Private Sub PivotCellValuesRowRangeTest() + Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowRangeTest|Sub" +Debug.Print PivotCellValuesRowRange(ActiveCell.PivotTable).Address +End Sub +Public Function PivotCellValuesRowRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowRange|Function" + Dim lcCell As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotFields As Excel.PivotFields + Dim lcRange As Excel.Range + + Set lcPivotFields = PivotTable.RowFields + With lcPivotFields + Set lcPivotField = .Item(Index:=.Count) + End With + + For Each lcCell In lcPivotField.DataRange + With lcCell + If .PivotCell.PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + If lcRange Is Nothing Then + Set lcRange = lcCell + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcCell) + End If + End If + End With + Next + + Set PivotCellValuesRowRange = lcRange +End Function + +Private Sub GetPivotItemPivotCellValueRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemPivotCellValueRangeTest|Sub" +Debug.Print GetPivotItemPivotCellValueRange(ActiveCell.PivotTable.RowFields(1).PivotItems(1)).Address +End Sub +Public Function GetPivotItemPivotCellValueRange(PivotItem As Excel.PivotItem) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemPivotCellValueRange|Function" + Dim lcCell As Excel.Range + Dim lcRange As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotLine As Excel.PivotLine + + Set lcPivotField = PivotItem.Parent + With lcPivotField + Select Case .Orientation + Case XlPivotFieldOrientation.xlColumnField + Set lcRange = GetPivotAxisRowDataRange(PivotTable:=lcPivotField.Parent) + + Case XlPivotFieldOrientation.xlRowField + Set lcRange = GetPivotAxisColumnDataRange(PivotTable:=lcPivotField.Parent) + + Case Else + + End Select + + End With + + Set GetPivotItemPivotCellValueRange = Application.Intersect(Arg1:=PivotItem.DataRange _ + , Arg2:=lcRange.EntireColumn _ + ) +End Function + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt new file mode 100644 index 0000000000..fd082e3bb6 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt @@ -0,0 +1,178 @@ +Attribute VB_Name = "vbXlPivotLinePri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbXlPivotLinePri" + +Private Sub GetPivotLinesRegularPivotFieldsDictionaryTest() + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularPivotFieldsDictionaryTest|Sub" + Dim lcDict As Scripting.Dictionary + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotTable As Excel.PivotTable + Dim lcRange As Excel.Range + + Set lcPivotTable = ActiveCell.PivotTable +' Set lcPivotAxis = lcPivotTable.PivotColumnAxis + Set lcPivotAxis = lcPivotTable.PivotRowAxis + Set lcRange = GetPivotLinesRegularPivotFieldsDictionary(PivotLines:=lcPivotAxis.PivotLines) +Debug.Print lcRange.Address + lcRange.Select + +End Sub + +Public Function GetPivotLinesRegularPivotFieldsDictionary(PivotLines As Excel.PivotLines) As Scripting.Dictionary + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularPivotFieldsDictionary|Function" + Dim lcDataRange As Excel.Range + Dim lcDictionary As Scripting.Dictionary + Dim lcPivotCell As Excel.PivotCell + Dim lcPivotLine As Excel.PivotLine + + Set lcDictionary = New Scripting.Dictionary + + For Each lcPivotLine In PivotLines + With lcPivotLine + If .LineType = XlPivotLineType.xlPivotLineRegular Then + ' fälschlicherweise sind auch Zeilen vom Typ Regular, + ' wenn beim letzten RowField noch eine benutzerdefinierte + ' Funktion ausgewählt ist. + ' Deshalb müssen noch die PivotLineCells abgegrast werden + ' Die enthalten nämlich bei benutzerdefinierten Funktionen + ' + For Each lcPivotCell In .PivotLineCells + With lcPivotCell + ' es ist egal, welche Zelle genommen wird, da beim Typ Regular + ' alle Zellen vom Typ Regular sind + If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ + Or .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + ' xlPivotCellDataField kommt nur bei PivotLines der PivotColumnAxis vor + ' xlPivotCellPivotItem bei beiden PivotAxes + If lcDataRange Is Nothing Then + Set lcDataRange = .Range + Exit For + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) + Exit For + End If + End If + End With + Next + End If + End With + Next + + Set GetPivotLinesRegularPivotFieldsDictionary = lcDataRange +End Function + +Private Sub GetPivotLinesRegularRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularRangeTest|Sub" + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotTable As Excel.PivotTable + Dim lcRange As Excel.Range + + Set lcPivotTable = ActiveCell.PivotTable +' Set lcPivotAxis = lcPivotTable.PivotColumnAxis + Set lcPivotAxis = lcPivotTable.PivotRowAxis + Set lcRange = GetPivotLinesRegularRange(PivotLines:=lcPivotAxis.PivotLines) +Debug.Print lcRange.Address + lcRange.Select + +End Sub + +Public Function GetPivotLinesRegularRange(PivotLines As Excel.PivotLines) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularRange|Function" + Dim lcDataRange As Excel.Range + Dim lcPivotCell As Excel.PivotCell + Dim lcPivotLine As Excel.PivotLine + + For Each lcPivotLine In PivotLines + With lcPivotLine + If .LineType = XlPivotLineType.xlPivotLineRegular Then + ' fälschlicherweise sind auch Zeilen vom Typ Regular, + ' wenn beim letzten RowField noch eine benutzerdefinierte + ' Funktion ausgewählt ist. + ' Deshalb müssen noch die PivotLineCells abgegrast werden + ' Die enthalten nämlich bei benutzerdefinierten Funktionen + ' + For Each lcPivotCell In .PivotLineCells + With lcPivotCell + ' es ist egal, welche Zelle genommen wird, da beim Typ Regular + ' alle Zellen vom Typ Regular sind + If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ + Or .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + ' xlPivotCellDataField kommt nur bei PivotLines der PivotColumnAxis vor + ' xlPivotCellPivotItem bei beiden PivotAxes + If lcDataRange Is Nothing Then + Set lcDataRange = .Range + Exit For + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) + Exit For + End If + End If + End With + Next + End If + End With + Next + + Set GetPivotLinesRegularRange = lcDataRange +End Function + +Private Sub GetPivotColumnLineNameTest() + Const ThisProcedure As String = ThisModule & "|GetPivotColumnLineNameTest|Sub" +Debug.Print GetPivotColumnLineName(ActiveCell.PivotCell.PivotColumnLine) +End Sub +Public Function GetPivotColumnLineName(PivotLine As Excel.PivotLine) As String + Const ThisProcedure As String = ThisModule & "|GetPivotColumnLineName|Function" + Dim lcPivotCell As Excel.PivotCell + Dim lvName As String + + With PivotLine + For Each lcPivotCell In .PivotLineCells + With lcPivotCell + If .PivotCellType = xlPivotCellDataField Then + lvName = lcPivotCell.DataField.Name + + ElseIf .PivotCellType = xlPivotCellPivotField Then + lvName = lcPivotCell.PivotItem.Name + + ElseIf .PivotCellType = xlPivotCellPivotItem Then + lvName = lcPivotCell.PivotItem.Name + End If + End With + If VBA.Len(GetPivotColumnLineName) = Lo0 Then + GetPivotColumnLineName = lvName + Else + GetPivotColumnLineName = GetPivotColumnLineName & " - " & lvName + End If + Next + End With +End Function + +Private Sub GetPivotLineRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotLineRangeTest|Sub" + Dim lcPivotLine As Excel.PivotLine + Dim lvIndex As Long + + For Each lcPivotLine In ActiveCell.PivotTable.PivotRowAxis.PivotLines + lvIndex = lvIndex + Lo1 +Debug.Print lvIndex, GetPivotLineRange(lcPivotLine).Address + Next +End Sub +Private Function GetPivotLineRange(PivotLine As Excel.PivotLine) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotLineRange|Function" + Dim lcPivotLineCell As Excel.PivotCell + Dim lcRange As Excel.Range + + For Each lcPivotLineCell In PivotLine.PivotLineCells + With lcPivotLineCell + 'Debug.Print .Range.Address, PivotCellTypeName(.PivotCellType) + If lcRange Is Nothing Then + Set lcRange = .Range + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=.Range) + End If + End With + Next + Set GetPivotLineRange = lcRange +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_2.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_2.txt new file mode 100644 index 0000000000..1509817309 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_2.txt @@ -0,0 +1,165 @@ +Attribute VB_Name = "fnConstPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|fnConstPri" + +Public Const ConAddInName As String = "ATGfn" +Public Const ConAddInTitle As String = "ATG Worksheet functions" +Public Const ConAddInComments As String = "Provides Worksheet functions used by ATG team members." +Public Const ConAddInVersion As String = "v2010.0.18" + +Public Const ConExtensionAddIn As String = ".xlam" +Public Const ConExtensionWorkbook As String = ".xlsm" + +Public Const ConFileNameATGfnxlam As String = "ATGfn.xlam" + +Public Const EmptyDate As Date = #12:00:00 AM#: ' entspricht #00:00:00# +Public Const EmptyTime As Date = #12:00:00 AM# +Public Const EmptyString As String = "" + +Public Const ConChr0 As String = "0" +Public Const ConChr1 As String = "1" +Public Const ConChr2 As String = "2" +Public Const ConChr3 As String = "3" +Public Const ConChr4 As String = "4" +Public Const ConChr5 As String = "5" +Public Const ConChr6 As String = "6" +Public Const ConChr7 As String = "7" +Public Const ConChr8 As String = "8" +Public Const ConChr9 As String = "9" + +Public Const ConChrAmpersand As String = "&" +Public Const ConChrApos As String = "'" +Public Const ConChrAsterisk As String = "*" +Public Const ConChrBackSlash As String = "\" +Public Const ConChrBar As String = "|" +Public Const ConChrColon As String = ":" +Public Const ConChrComma As String = "," +Public Const ConChrDash As String = "-" +Public Const ConChrDegree As String = "°" +Public Const ConChrDollar As String = "$" +Public Const ConChrDot As String = "." +Public Const ConChrEquals As String = "=" +Public Const ConChrExclPoint As String = "!" +Public Const ConChrHash As String = "#" +Public Const ConChrPct As String = "%" +Public Const ConChrPlus As String = "+" +Public Const ConChrQuestMark As String = "?" +Public Const ConChrQuote As String = """" +Public Const ConChrSemiColon As String = ";" +Public Const ConChrSlash As String = "/" +Public Const ConChrSpace As String = " " +Public Const ConChrUnderScore As String = "_" +Public Const ConChrZero As String = "0" + +Public Const ConChrLParan As String = "(" +Public Const ConChrRParan As String = ")" +Public Const ConChrLAngleBracket As String = "<" +Public Const ConChrRAngleBracket As String = ">" +Public Const ConChrLCurlyBracket As String = "{" +Public Const ConChrRCurlyBracket As String = "}" +Public Const ConChrLSquareBracket As String = "[" +Public Const ConChrRSquareBracket As String = "]" + +Public Const ConStrSpaceDashSpace As String = " - " +Public Const ConStrSpaceSpace As String = " " + +Public Const ConRowColMax As Long = 999999999 + +Public Const IntP1 As Integer = 1 + +Public Const InM1 As Integer = -1 +Public Const In0 As Integer = 0 +Public Const In1 As Integer = 1 +Public Const In11 As Integer = 11 +Public Const In12 As Integer = 12 +Public Const In23 As Integer = 23 +Public Const In30 As Integer = 30 + +Public Const LoM1 As Long = -1 +Public Const Lo0 As Long = 0 +Public Const Lo1 As Long = 1 +Public Const Lo2 As Long = 2 +Public Const Lo3 As Long = 3 +Public Const Lo4 As Long = 4 +Public Const Lo5 As Long = 5 +Public Const Lo6 As Long = 6 +Public Const Lo7 As Long = 7 +Public Const Lo8 As Long = 8 +Public Const Lo9 As Long = 9 +Public Const Lo10 As Long = 10 +Public Const Lo11 As Long = 11 +Public Const Lo12 As Long = 12 +Public Const Lo100 As Long = 100 +Public Const Lo109 As Long = 109 +Public Const Lo99999 As Long = 99999 + +Public Const Do0 As Double = 0 +Public Const Do1 As Double = 1 +Public Const Do9 As Double = 9 +Public Const Do10 As Double = 10 +Public Const Do24 As Double = 24 +Public Const Do1440 As Double = 1440 +Public Const Do0d5 As Double = 0.5 +Public Const Do0d75 As Double = 0.75 +Public Const Do0d90 As Double = 0.9 +Public Const DoSecondsPerDay As Double = 86400 +Public Const DoMilliSecondsPerDay As Double = 86400000 + +Public Const ConParPivotTableRange As String = "PivotTableRange" +Public Const ConParChartIndex As String = "ChartIndex" +Public Const ConParWorksheetIndex As String = "WorksheetIndex" +Public Const ConParColumnFieldIndex As String = "ColumnFieldIndex" +Public Const ConParFieldIndex As String = "FieldIndex" +Public Const ConParIndex As String = "Index" +Public Const ConParSlicerIndex As String = "SlicerIndex" +Public Const ConParSlicerItemIndex As String = "SlicerItemIndex" +Public Const ConParItemIndex As String = "ItemIndex" + +Public Const ConParSelectedOnly As String = "SelectedOnly" +Public Const ConParNoDataHeader As String = "NoDataHeader" +Public Const ConParNoFieldHeader As String = "NoFieldHeader" +Public Const ConParNoHeader As String = "NoHeader" +Public Const ConParNoDataField As String = "NoDataField" +Public Const ConParNoTopBottom As String = "NoTopBottom" +Public Const ConParNoCaption As String = "NoCaption" +Public Const ConParNoDate As String = "NoDate" +Public Const ConParNoValue As String = "NoValue" +Public Const ConParNoSeconds As String = "NoSeconds" +Public Const ConParMinutesAlways As String = "MinutesAlways" +Public Const ConParRoundMinutes As String = "RoundMinutes" +Public Const ConParRoundSeconds As String = "RoundSeconds" +Public Const ConParSeparator As String = "Separator" + +Public Const ConParDecimalPlaces As String = "DecimalPlaces" +Public Const ConParExcludeZeros As String = "ExcludeZeros" +Public Const ConParDataIndex As String = "DataIndex" +Public Const ConParName As String = "Name" +Public Const ConParField_Name As String = "Field_Name" +Public Const ConParItem_Value As String = "Item_Value" +Public Const ConParWorksheetRange As String = "WorksheetRange" +Public Const ConParPTIndex As String = "PTIndex" +Public Const ConParPTName As String = "PTName" +Public Const ConParWeightDataIndex As String = "WeightDataIndex" +Public Const ConParByDataIndex1 As String = "ByDataIndex1" +Public Const ConParByDataIndex2 As String = "ByDataIndex2" + +Public Const ConUnitByteExaByte2Exp As Long = 60 +Public Const ConUnitBytePetaByte2Exp As Long = 50 +Public Const ConUnitByteTeraByte2Exp As Long = 40 +Public Const ConUnitByteGigaByte2Exp As Long = 30 +Public Const ConUnitByteMegaByte2Exp As Long = 20 +Public Const ConUnitByteKiloByte2Exp As Long = 10 +Public Const ConUnitByteBlockByte2Exp As Long = 9 +Public Const ConUnitByteByte2Exp As Long = 0 + +Public Const ConUnitByteExaByte2Unit As String = "EB" +Public Const ConUnitBytePetaByte2Unit As String = "PB" +Public Const ConUnitByteTeraByte2Unit As String = "TB" +Public Const ConUnitByteGigaByte2Unit As String = "GB" +Public Const ConUnitByteMegaByte2Unit As String = "MB" +Public Const ConUnitByteKiloByte2Unit As String = "KB" +Public Const ConUnitByteBlockByte2Unit As String = "Blk" +Public Const ConUnitByteByteByte2Unit As String = "B" + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt new file mode 100644 index 0000000000..0ed3824088 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt @@ -0,0 +1,272 @@ +Attribute VB_Name = "vbXlPivotTablePri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbXlPivotTablePri" + +Public Function GetPivotTableOrNothing(PivotTables As Excel.PivotTables, Index As Variant) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothing|Function" + On Error Resume Next + Set GetPivotTableOrNothing = PivotTables.Item(Index:=Index) +End Function + +Public Function GetPivotTablesOrNothing(Worksheet As Excel.Worksheet) As Excel.PivotTables + Const ThisProcedure As String = ThisModule & "|GetPivotTablesOrNothing|Function" + On Error Resume Next + Set GetPivotTablesOrNothing = Worksheet.PivotTables +End Function + +Public Function GetPivotTableOrNothingFromChart(Chart As Excel.Chart) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothingFromChart|Function" + + With Chart + If Not .PivotLayout Is Nothing Then + Set GetPivotTableOrNothingFromChart = .PivotLayout.PivotTable + End If + End With +End Function + +Public Function GetPivotTableOrNothingFromRange(Range As Excel.Range) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothingFromRange|Function" + On Error Resume Next + Set GetPivotTableOrNothingFromRange = Range.PivotTable +End Function + +Public Function IsPivotTablePivotTable(PivotTable1 As Excel.PivotTable, PivotTable2 As Excel.PivotTable) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotTablePivotTable|Function" + Dim lcWorksheet1 As Excel.Worksheet + Dim lcWorksheet2 As Excel.Worksheet + + If Not PivotTable1 Is Nothing And Not PivotTable2 Is Nothing Then + Set lcWorksheet1 = PivotTable1.Parent + Set lcWorksheet2 = PivotTable2.Parent + 'Debug.Print lcWorksheet1.Name, lcWorksheet2.Name + IsPivotTablePivotTable = VBA.CBool(lcWorksheet1 Is lcWorksheet2 And PivotTable1.Name = PivotTable2.Name) + End If +End Function + +'Private Sub GetPivotTableDataRangeTest() +' 'Debug.Print GetPivotTableDataRange(Range("A24").PivotTable).Address +'End Sub +'Public Function GetPivotTableDataRange(PivotTable As Excel.PivotTable) As Excel.Range +' Dim lcColumnDataRange As Excel.Range +' Dim lcRowDataRange As Excel.Range +' +' On Error GoTo CatchError +' +' Set lcRowDataRange = GetPivotTableRowDataRange(PivotTable:=PivotTable) +' Set lcColumnDataRange = GetPivotTableColumnDataRange(PivotTable:=PivotTable) +' +' If lcColumnDataRange Is Nothing Then +' Set GetPivotTableDataRange = lcRowDataRange +' +' ElseIf lcRowDataRange Is Nothing Then +' Set GetPivotTableDataRange = lcColumnDataRange +' +' Else +' Set GetPivotTableDataRange = GetIntersectOrNothing(Range1:=lcColumnDataRange _ +' , Range2:=lcRowDataRange _ +' ) +' End If +' +' Set lcColumnDataRange = Nothing +' Set lcRowDataRange = Nothing +' +' Exit Function +' +'CatchError: +' ReraiseError +'End Function + +Private Sub GetPivotTableDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTableDataRangeTest|Sub" +Debug.Print GetPivotTableDataRange(ActiveCell.PivotTable).Address +End Sub +Public Function GetPivotTableDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotTableDataRange|Function" + Dim lcColumnDataRange As Excel.Range + Dim lcRowDataRange As Excel.Range + + Set lcRowDataRange = GetPivotTableRowDataRange(PivotTable:=PivotTable) + Set lcColumnDataRange = GetPivotTableColumnDataRange(PivotTable:=PivotTable) + + If lcColumnDataRange Is Nothing Then + Set GetPivotTableDataRange = lcRowDataRange + + ElseIf lcRowDataRange Is Nothing Then + Set GetPivotTableDataRange = lcColumnDataRange + + Else + Set GetPivotTableDataRange = GetIntersectOrNothing(Range1:=lcColumnDataRange _ + , Range2:=lcRowDataRange _ + ) + End If + + Set lcColumnDataRange = Nothing + Set lcRowDataRange = Nothing +End Function + +'Private Sub GetPivotTableColumnDataRangeTest() +' 'Debug.Print GetPivotTableColumnDataRange(Range("A30").PivotTable).Address +'End Sub +'Public Function GetPivotTableColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotFields As Excel.PivotFields +' Dim lcPivotItems As Excel.PivotItems +' +' On Error GoTo CatchError +' +' Set lcPivotFields = PivotTable.DataFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotFields = PivotTable.ColumnFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotField = GetPivotFieldOrNothingWithHighestPosition(PivotFields:=lcPivotFields _ +' , PivotFieldOrientation:=XlPivotFieldOrientation.xlColumnField _ +' ) +' +' If Not lcPivotField Is Nothing Then +' Set lcPivotItems = lcPivotField.PivotItems +' If Not lcPivotItems Is Nothing Then +' Set GetPivotTableColumnDataRange = GetPivotItemsDataRange(PivotItems:=lcPivotField.PivotItems).EntireColumn +' End If +' End If +' +' Exit Function +' +'CatchError: +' ReraiseError +'End Function + +Private Sub GetPivotTableColumnDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTableColumnDataRangeTest|Sub" +Debug.Print GetPivotTableColumnDataRange(Range("g2").PivotTable).Address +End Sub +Public Function GetPivotTableColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotTableColumnDataRange|Function" + Dim lcPivotFields As Excel.PivotFields + + Set lcPivotFields = PivotTable.DataFields + If lcPivotFields.Count = Lo0 Then + Exit Function + End If + + Set lcPivotFields = PivotTable.ColumnFields + If lcPivotFields.Count = Lo0 Then + Exit Function + End If + + Set GetPivotTableColumnDataRange = GetPivotAxisColumnDataRange(PivotTable:=PivotTable).EntireColumn +End Function + +'Private Sub GetPivotTableRowDataRangeTest() +' 'Debug.Print GetPivotTableRowDataRange(Range("A30").PivotTable).Address +'End Sub +'Public Function GetPivotTableRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range +' Dim lcDataRange As Excel.Range +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotFields As Excel.PivotFields +' Dim lcPivotItem As Excel.PivotItem +' Dim lcPivotItems As Excel.PivotItems +' +' On Error GoTo CatchError +' +' Set lcPivotFields = PivotTable.DataFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotFields = PivotTable.RowFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotField = GetPivotFieldOrNothingWithHighestPosition(PivotFields:=lcPivotFields _ +' , PivotFieldOrientation:=XlPivotFieldOrientation.xlRowField _ +' ) +' Set GetPivotTableRowDataRange = GetPivotItemsDataRange(PivotItems:=lcPivotField.PivotItems).EntireRow +' +' Exit Function +' +'CatchError: +' ReraiseError +'End Function + +Private Sub GetPivotTableRowDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTableRowDataRangeTest|Sub" +Debug.Print GetPivotTableRowDataRange(Range("g2").PivotTable).Address +End Sub +Public Function GetPivotTableRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotTableRowDataRange|Function" + Dim lcPivotFields As Excel.PivotFields + + Set lcPivotFields = PivotTable.DataFields + If lcPivotFields.Count = Lo0 Then + Exit Function + End If + + Set lcPivotFields = PivotTable.RowFields + If lcPivotFields.Count = Lo0 Then + Exit Function + End If + + Set GetPivotTableRowDataRange = GetPivotAxisRowDataRange(PivotTable:=PivotTable).EntireRow +End Function + +Public Function GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable As Excel.PivotTable) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotTableDataFieldPositionInPivotColumnFields|Function" + Dim lcDataPivotItems As Excel.PivotItems + + With PivotTable.DataPivotField + Set lcDataPivotItems = .PivotItems + If lcDataPivotItems.Count > Lo1 Then + ' nur dann gibt's ein Werte-Feld in den ColumnFields + GetPivotTableDataFieldPositionInPivotColumnFields = .Position + End If + Set lcDataPivotItems = Nothing + End With +End Function + +Private Sub GetPivotTablePivotChartsDictionaryTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotChartsDictionaryTest|Sub" +Debug.Print GetPivotTablePivotChartsDictionary(ActiveCell.PivotTable).Count +End Sub +Public Function GetPivotTablePivotChartsDictionary(PivotTable As Excel.PivotTable) As Scripting.Dictionary + Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotChartsDictionary|Function" + Dim lcChart As Excel.Chart + Dim lcChartObject As Excel.ChartObject + Dim lcDictionary As Scripting.Dictionary + Dim lcWorkbook As Excel.Workbook + Dim lcWorksheet As Excel.Worksheet + + Set lcDictionary = New Scripting.Dictionary + + Set lcWorksheet = PivotTable.Parent + Set lcWorkbook = lcWorksheet.Parent + + For Each lcChart In lcWorkbook.Charts + If Not lcChart.PivotLayout Is Nothing Then + If IsPivotTablePivotTable(PivotTable1:=lcChart.PivotLayout.PivotTable, PivotTable2:=PivotTable) Then + lcDictionary.Add Key:=VBA.ObjPtr(lcChart), Item:=lcChart + End If + End If + Next + For Each lcWorksheet In lcWorkbook.Worksheets + For Each lcChartObject In lcWorksheet.ChartObjects + With lcChartObject.Chart + If Not .PivotLayout Is Nothing Then + If IsPivotTablePivotTable(PivotTable1:=.PivotLayout.PivotTable, PivotTable2:=PivotTable) Then + lcDictionary.Add Key:=VBA.ObjPtr(lcChartObject.Chart), Item:=lcChartObject.Chart + End If + End If + End With + Next + Next + + Set GetPivotTablePivotChartsDictionary = lcDictionary +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt new file mode 100644 index 0000000000..a3526a1ff7 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt @@ -0,0 +1,67 @@ +Attribute VB_Name = "vbXlRangePri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbXlRangePri" + +Public Function GetIntersectOrNothing(Range1 As Excel.Range, Range2 As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetIntersectOrNothing|Function" + On Error Resume Next + Set GetIntersectOrNothing = Application.Intersect(Arg1:=Range1 _ + , Arg2:=Range2 _ + ) +End Function + +Private Sub GetRangePivotTableOrNothingTest() + Const ThisProcedure As String = ThisModule & "|GetRangePivotTableOrNothingTest|Sub" +Debug.Print GetRangePivotTableOrNothing(Selection, True).TableRange1.Address +End Sub +Public Function GetRangePivotTableOrNothing(Range As Excel.Range, Optional CheckAllCells As Boolean = False) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetRangePivotTableOrNothing|Function" + Dim lcColumnCell As Excel.Range + Dim lcRowCell As Excel.Range + Dim lcPivotTable As Excel.PivotTable + + On Error Resume Next + + If CheckAllCells Then + For Each lcColumnCell In Range.Resize(RowSize:=Lo1) + For Each lcRowCell In Application.Intersect(lcColumnCell.EntireColumn, Range) + 'Debug.Print lcRowCell.Address, lcRowCell.Worksheet.Name + ' komischerweise ist manchmal PivotCell korrekt gesetzt, aber PivotTable nicht + ' deshalb wird hier die PivotTable über die PivotCell.PivotTable besorgt + Set GetRangePivotTableOrNothing = lcRowCell.PivotCell.PivotTable + If Not GetRangePivotTableOrNothing Is Nothing Then + Exit Function + End If + Next + Next + Else + Set GetRangePivotTableOrNothing = Range.PivotTable + End If +End Function + +Public Function GetThisCellOrNothing() As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetThisCellOrNothing|Function" + On Error Resume Next + Set GetThisCellOrNothing = Application.ThisCell +End Function + +Public Function GetRangeAddress(Range As Excel.Range, WithWorksheetName As Boolean) As String + Const ThisProcedure As String = ThisModule & "|GetRangeAddress|Function" + If WithWorksheetName Then + GetRangeAddress = ConChrApos _ + & VBA.Replace(Range.Worksheet.Name, ConChrApos, ConChrApos & ConChrApos) _ + & ConChrApos & ConChrExclPoint _ + & Range.Address(RowAbsolute:=True, ColumnAbsolute:=True) + + Else + GetRangeAddress = Range.Address(RowAbsolute:=True, ColumnAbsolute:=True) + End If +End Function + +Public Function GetVisibleCellsOrNothing(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetVisibleCellsOrNothing|Function" + On Error Resume Next + Set GetVisibleCellsOrNothing = Range.SpecialCells(Type:=XlCellType.xlCellTypeVisible) +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_3.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_3.txt new file mode 100644 index 0000000000..a4408ea198 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_3.txt @@ -0,0 +1,138 @@ +Attribute VB_Name = "fnEnumPri" +Option Explicit +'Option Private Module + +Private Const ThisModule As String = ThisProject & "|fnEnumPri" + +Public Enum fnenDateTimeType + dttUndefined + dttTime + dttDate + dttDateTime +End Enum + +Public Enum fnenLogOp + loBLT = 1 + loBLE + loBNE + loBEQ + loBGT + loBGE + loSLe + loSRi + loPLi + loPRE +End Enum + +Public Enum fnenSort + sDescending = -1 + sNOptSort + sAscending +End Enum + +Public Enum enZeros + zExclude + zZerosInclude +End Enum + +Public Enum enStatFn + sfmin = 2 + sfAvg = 4 + sfMax = 8 + sfwAvg = 16 +End Enum + +Public Enum enPivotFilterTypeCategory + pftcTopBottom + pftcCaption + pftcDate + pftcValue +End Enum + +Public Enum enSeriesStackType + sstUndefined + sstNotStacked + sstStacked + sstStacked100 +End Enum +'Public Function fnenLogOpName(Value As fnenLogOp) As String +' Const ThisProcedure As String = ThisModule & "|fnenLogOpName|Function" +' Select Case Value +' Case fnenLogOp.loBLT: fnenLogOpName = "loBLT" +' Case fnenLogOp.loBLE: fnenLogOpName = "loBLE" +' Case fnenLogOp.loBNE: fnenLogOpName = "loBNE" +' Case fnenLogOp.loBEQ: fnenLogOpName = "loBEQ" +' Case fnenLogOp.loBGT: fnenLogOpName = "loBGT" +' Case fnenLogOp.loBGE: fnenLogOpName = "loBGE" +' Case fnenLogOp.loSLe: fnenLogOpName = "loSLe" +' Case fnenLogOp.loSRi: fnenLogOpName = "loSRi" +' Case fnenLogOp.loPLi: fnenLogOpName = "loPLi" +' Case fnenLogOp.loPRE: fnenLogOpName = "loPRE" +' Case Else +' On Error GoTo 0 +' vbVBACmdMsg.UnexpectedSelectCaseValue Value:=Value, Source:=ThisProcedure +' End Select +'End Function + +'Public Function fnenSortName(Value As fnenSort) As String +' Const ThisProcedure As String = ThisModule & "|fnenSortName|Function" +' Select Case Value +' Case fnenSort.sDescending: fnenSortName = "sDescending" +' Case fnenSort.sNOptSort: fnenSortName = "sNOptSort" +' Case fnenSort.sAscending: fnenSortName = "sAscending" +' Case Else +' On Error GoTo 0 +' vbVBACmdMsg.UnexpectedSelectCaseValue Value:=Value, Source:=ThisProcedure +' End Select +'End Function + +'Public Function enZerosName(Value As enZeros) As String +' Const ThisProcedure As String = ThisModule & "|enZerosName|Function" +' Select Case Value +' Case enZeros.zExclude: enZerosName = "zExclude" +' Case enZeros.zZerosInclude: enZerosName = "zZerosInclude" +' Case Else +' On Error GoTo 0 +' vbVBACmdMsg.UnexpectedSelectCaseValue Value:=Value, Source:=ThisProcedure +' End Select +'End Function + +'Public Function enStatFnName(Value As enStatFn) As String +' Const ThisProcedure As String = ThisModule & "|enStatFnName|Function" +' Select Case Value +' Case enStatFn.sfmin: enStatFnName = "sfmin" +' Case enStatFn.sfAvg: enStatFnName = "sfAvg" +' Case enStatFn.sfMax: enStatFnName = "sfMax" +' Case enStatFn.sfwAvg: enStatFnName = "sfwAvg" +' Case Else +' On Error GoTo 0 +' vbVBACmdMsg.UnexpectedSelectCaseValue Value:=Value, Source:=ThisProcedure +' End Select +'End Function + +'Public Function enPivotFilterTypeCategoryName(Value As enPivotFilterTypeCategory) As String +' Const ThisProcedure As String = ThisModule & "|enPivotFilterTypeCategoryName|Function" +' Select Case Value +' Case enPivotFilterTypeCategory.pftcTopBottom: enPivotFilterTypeCategoryName = "pftcTopBottom" +' Case enPivotFilterTypeCategory.pftcCaption: enPivotFilterTypeCategoryName = "pftcCaption" +' Case enPivotFilterTypeCategory.pftcDate: enPivotFilterTypeCategoryName = "pftcDate" +' Case enPivotFilterTypeCategory.pftcValue: enPivotFilterTypeCategoryName = "pftcValue" +' Case Else +' On Error GoTo 0 +' vbVBACmdMsg.UnexpectedSelectCaseValue Value:=Value, Source:=ThisProcedure +' End Select +'End Function + +'Public Function enSeriesStackTypeName(Value As enSeriesStackType) As String +' Const ThisProcedure As String = ThisModule & "|enSeriesStackTypeName|Function" +' Select Case Value +' Case enSeriesStackType.sstUndefined: enSeriesStackTypeName = "sstUndefined" +' Case enSeriesStackType.sstNotStacked: enSeriesStackTypeName = "sstNotStacked" +' Case enSeriesStackType.sstStacked: enSeriesStackTypeName = "sstStacked" +' Case enSeriesStackType.sstStacked100: enSeriesStackTypeName = "sstStacked100" +' Case Else +' On Error GoTo 0 +' vbVBACmdMsg.UnexpectedSelectCaseValue Value:=Value, Source:=ThisProcedure +' End Select +'End Function + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_4.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_4.txt new file mode 100644 index 0000000000..3b1698b6db --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_4.txt @@ -0,0 +1,502 @@ +Attribute VB_Name = "fnErrorPri" +Option Explicit +Option Private Module + +' wenn ATGfn eine fehlerhafte Funktionsanwendung entdeckt, +' muss muss ein Fehler geworfen werden, der ATGfn zugeordnet werden kann +' gleichzeitig muss angegeben werden, welcher XlCVError gemeldet werden soll +' VBA-Laufzeitfehler werden daran erkannt, dass noch kein ATGfn-Fehler gemeldet wurde + +' Alle extern erreichbaren Funktionen (UDFs) müssen eine CatchError-Behandlung haben +' in der der gesetzte Fehler an die Funktion zurückgegeben wird und +' anschließend der Fehler zurückgesetzt wird. + +Private Const ThisModule As String = ThisProject & "|fnErrorPri" + +Dim mvCVError As Excel.XlCVError +Dim mvIsUsageError As Boolean +Public mvDescription As String + +Public Sub RaisePivotTableHasNoPivotCharts() + Const ThisProcedure As String = ThisModule & "|RaisePivotTableHasNoPivotCharts|Sub" + SetXlErrRef Description:="PivotTable has no depending PivotCharts" +End Sub +Public Sub RaisePivotTableHasMoreThanOnePivotCharts() + Const ThisProcedure As String = ThisModule & "|RaisePivotTableHasMoreThanOnePivotCharts|Sub" + SetXlErrRef Description:="PivotTable more than 1 PivotCharts" +End Sub +Public Sub RaiseChartDoesNotExist(ChartNV As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseChartDoesNotExist|Sub" + With ChartNV + SetXlErrRef Description:=.Name & "(=" & .Value & ") does not exist" + End With +End Sub +Public Sub RaiseWorksheetDoesNotExist(WorksheetNV As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseWorksheetDoesNotExist|Sub" + With WorksheetNV + SetXlErrRef Description:=.Name & "(=" & .Value & ") does not exist" + End With +End Sub +Public Sub RaiseChartObjectDoesNotExist(WorksheetRangeNR As tyNameRange, ChartNV As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseChartObjectDoesNotExist|Sub" + With ChartNV + SetXlErrRef Description:=.Name & "(=" & .Value & ") does not exist in " _ + & WorksheetRangeNR.Name & "(=" & WorksheetRangeNR.Range.Worksheet.Name & ")" + End With +End Sub +Public Sub RaiseChartIsNoPivotChart(ChartNV As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseChartIsNoPivotChart|Sub" + With ChartNV + SetXlErrRef Description:=.Name & "(=" & .Value & ") is no PivotChart" + End With +End Sub +Public Sub RaiseChartIsNotBasedOnThisPivotTable(ChartNV As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseChartIsNotBasedOnThisPivotTable|Sub" + With ChartNV + SetXlErrRef Description:=.Name & "(=" & .Value & ") is not based on this PivotTable" + End With +End Sub + +Public Sub RaiseCollectionItemItemIsNothing(NameValue As tyNameValue, Collection As Object) + Const ThisProcedure As String = ThisModule & "|RaiseCollectionItemItemIsNothing|Sub" + With NameValue + SetXlErrRef Description:=VBA.TypeName(Collection) & "(" & GetIndexOrName(NameValue.Value) & ") Is Nothing" + End With +End Sub + +Public Sub RaiseFieldIndexMissingItemIndexAvailable(FieldItem As tyParentItem) + Const ThisProcedure As String = ThisModule & "|RaiseFieldIndexMissingItemIndexAvailable|Sub" + With FieldItem + SetXlErrRef Description:=.ParentNV.Name & "(" & "Index is missing but " _ + & .ItemNV.Name & "(" & GetIndexOrName(Value:=.ItemNV.Value) & ") is available" + End With +End Sub +Public Sub RaiseFieldIndexAvailableItemIndexMissing(FieldItem As tyParentItem) + Const ThisProcedure As String = ThisModule & "|RaiseFieldIndexAvailableItemIndexMissing|Sub" + With FieldItem + SetXlErrRef Description:=.ParentNV.Name & "(" & GetIndexOrName(Value:=.ParentNV.Value) & "Index is available but " _ + & .ItemNV.Name & " is missing" + End With +End Sub + +Public Sub RaiseParamTypeInvalid(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseParamTypeInvalid|Sub" + With NameValue + SetXlErrValue Description:=.Name & "(" & GetIndexOrName(.Value) & ")" _ + & ".Type(=" & VBA.TypeName(VarName:=.Value) & ") is invalid" + End With +End Sub + +Public Sub RaiseRangeStringInvalid(RangeString As String) + Const ThisProcedure As String = ThisModule & "|RaiseRangeStringInvalid|Sub" + SetXlErrRef Description:="RangeString(=""" & RangeString & """)" _ + & " is invalid" +End Sub + +Public Sub RaiseParamMissing(Name As String) + Const ThisProcedure As String = ThisModule & "|RaiseParamMissing|Sub" + SetXlErrValue Description:=Name & " is missing" +End Sub +Private Sub RaiseParamObjTypeTest() + Const ThisProcedure As String = ThisModule & "|RaiseParamObjTypeTest|Sub" + RaiseParamObjType GetNR("a", ActiveCell), "Range" +End Sub +Public Sub RaiseParamObjType(NameRange As tyNameRange, ObjTypeName As String) + Const ThisProcedure As String = ThisModule & "|RaiseParamObjType|Sub" + With NameRange + SetXlErrValue Description:="Invalid ObjType(" & .Name & "(=" _ + & VBA.TypeName(VarName:=.Value) & "). " _ + & "Expected: ObjType(=" & ObjTypeName & ")" + End With +End Sub +Public Sub RaiseParamVarType1(NameValue As tyNameValue, VarType1 As VBA.VbVarType) + Const ThisProcedure As String = ThisModule & "|RaiseParamVarType1|Sub" + With NameValue + SetXlErrValue Description:="Invalid VarType(" & .Name & "(" _ + & VarTypeName(Var:=.Value) & "). " _ + & "Expected: VarType(=" & VarTypeName(Var:=VarType1) & ")" + End With +End Sub +Public Sub RaiseParamVarType2(NameValue As tyNameValue, VarType1 As VBA.VbVarType, VarType2 As VBA.VbVarType) + Const ThisProcedure As String = ThisModule & "|RaiseParamVarType2|Sub" + With NameValue + SetXlErrValue Description:="Invalid VarType(" & .Name & "(" _ + & VarTypeName(Var:=.Value) & "). " _ + & "Expected: VarType(=" & VarTypeName(Var:=VarType1) & ")" _ + & " or VarType(=" & VarTypeName(Var:=VarType2) & ")" + End With +End Sub + +Public Sub RaiseParamIsNotInteger(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseParamIsNotInteger|Sub" + With NameValue + SetXlErrValue Description:=.Name & "(" & GetIndexOrName(.Value) & ")" & " is not integer" + End With +End Sub +Public Sub RaiseParamIndexGtCollectionCount(NameValue As tyNameValue, Collection As Object, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaiseParamIndexGtCollectionCount|Sub" + With NameValue + SetXlErrRef Description:=.Name & "(=" & .Value & ")" _ + & " > " _ + & VBA.TypeName(Collection) & ".Count(=" & Count & ")" + End With +End Sub + +Public Sub RaiseParamIndexLtCollection1(NameValue As tyNameValue, Collection As Object, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaiseParamIndexLtCollection1|Sub" + With NameValue + SetXlErrRef Description:=.Name & "(=" & .Value & ") + " _ + & VBA.TypeName(Collection) & ".Count(=" & Count & ")" _ + & " < 1" + End With +End Sub +Public Sub RaiseParamIndexEqCollection0(NameValue As tyNameValue, Collection As Object, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaiseParamIndexEqCollection0|Sub" + With NameValue + SetXlErrRef Description:=.Name & "(=" & .Value & ") = 0" + End With +End Sub + +Public Sub RaisePivotFieldDoesNotExist(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldDoesNotExist|Sub" + With NameValue + SetXlErrRef Description:="PivotFields(" & .Name & "(" & GetValue(Value:=.Value) & ")) does not exist" + End With +End Sub +Public Sub RaisePivotFieldIsNotUsed(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldDoesNotExist|Sub" + With NameValue + SetXlErrRef Description:="PivotFields(" & .Name & "(" & GetValue(Value:=.Value) & ")) is not being used" + End With +End Sub +Public Sub RaisePivotFieldItemRangeDoesNotIntersect(FieldItem As tyParentItem, DataRange As Excel.Range, PivotItemDataRange As Excel.Range) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldItemRangeDoesNotIntersect|Sub" + With FieldItem + SetXlErrRef Description:="Range(" _ + & .ParentNV.Name & "(" & GetIndexOrName(.ParentNV.Value) & "), " _ + & .ItemNV.Name & "(" & GetIndexOrName(.ItemNV.Value) & "))" _ + & ".Address(=" & PivotItemDataRange.Address & ") does not intersect " _ + & "DataRange.Address(=" & DataRange.Address & ")" + End With +End Sub +Public Sub RaisePivotFieldNoColumn(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldNoColumn|Sub" + With NameValue + SetXlErrRef Description:="PivotFields(" _ + & .Name & "(" & GetIndexOrName(.Value) & "))" _ + & " is no ColumnField" & ")" + End With +End Sub +Public Sub RaisePivotFieldNoColumnNoRow(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldNoColumnNoRow|Sub" + With NameValue + SetXlErrRef Description:="PivotFields(" _ + & .Name & "(" & GetIndexOrName(.Value) & "))" _ + & " is neither a ColumnField nor a RowField" & ")" + End With +End Sub +Public Sub RaisePivotFieldNoData(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldNoData|Sub" + With NameValue + SetXlErrRef Description:="PivotFields(" _ + & .Name & "(" & GetIndexOrName(.Value) & "))" _ + & " is no DataField" & ")" + End With +End Sub +Public Sub RaisePivotFieldNoRow(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldNoRow|Sub" + With NameValue + SetXlErrRef Description:="PivotFields(" _ + & .Name & "(" & GetIndexOrName(.Value) & "))" _ + & " is no RowField" & ")" + End With +End Sub +Public Sub RaisePivotFieldsCountEq0(FieldNV As tyNameValue, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsCountEq0|Sub" + With FieldNV + SetXlErrRef Description:=.Name & "(" & GetIndexOrName(.Value) & ") but " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub +Public Sub RaisePivotFieldsFieldValueStringIsNothing(FieldIndex As Variant, PivotFieldOrientation As XlPivotFieldOrientation) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsFieldValueStringIsNothing|Sub" + SetXlErrRef Description:="Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields(" _ + & GetIndexOrName(Value:=FieldIndex) _ + & ") Is Nothing" +End Sub +Public Sub RaisePivotFieldsFieldValueLongEq0(FieldNV As tyNameValue, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsFieldValueLongEq0|Sub" + With FieldNV + SetXlErrRef Description:=.Name & "(" & GetIndexOrName(.Value) & ") = 0 " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub +Public Sub RaisePivotFieldsFieldValueLongPosGtCount(FieldNV As tyNameValue, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsFieldValueLongPosGtCount|Sub" + With FieldNV + SetXlErrRef Description:=.Name & "(" & GetIndexOrName(.Value) & ") > " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub +Public Sub RaisePivotFieldsFieldValueLongNegGtCount(FieldNV As tyNameValue, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsFieldValueLongNegGtCount|Sub" + With FieldNV + SetXlErrRef Description:="Abs(" & .Name & "(" & GetIndexOrName(.Value) & ")) > " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub + +Public Sub RaisePivotSlicerDoesNotContainAValidDateTimeFormat(Slicer As Excel.Slicer) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsFieldValueLongNegGtCount|Sub" + SetXlErrValue Description:="Slicer(=" & Slicer.Name & ") does not contain a valid DateTime Format." +End Sub + +Public Sub RaisePivotSlicerIsNotSetToShowItemsWithNoData(Slicer As Excel.Slicer) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsFieldValueLongNegGtCount|Sub" + SetXlErrValue Description:="Slicer(=" & Slicer.Name & ") is not set to 'ShowItemsWithNoData'." +End Sub + +Public Sub RaisePivotSlicerIsSetToShowAllItems(Slicer As Excel.Slicer) + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldsFieldValueLongNegGtCount|Sub" + SetXlErrValue Description:="Slicer(=" & Slicer.Name & ") is set to 'ShowAllItems." +End Sub + +Public Sub RaisePivotTableNotClassicLayout() + Const ThisProcedure As String = ThisModule & "|RaisePivotFieldNoColumn|Sub" + SetXlErrRef Description:="Not Classic PivotTable Layout" +End Sub + +Public Sub RaiseLogicError(Source As String) + Const ThisProcedure As String = ThisModule & "|RaiseLogicError|Sub" + SetXlErrNull Description:="Logical Error in " & Source +End Sub + +Public Sub RaiseRangeContainsNoPivotTable(PivotTableRange As Excel.Range) + Const ThisProcedure As String = ThisModule & "|RaiseRangeContainsNoPivotTable|Sub" + SetXlErrRef Description:="PivotTableRange.Address(" & PivotTableRange.Address & ") does not contain a PivotTable" +End Sub + +Public Sub RaisePivotItemsCountEq0(FieldItem As tyParentItem, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotItemsCountEq0|Sub" + With FieldItem + SetXlErrRef Description:=.ParentNV.Name & "(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & "." & .ItemNV.Name & "(" & GetIndexOrName(.ItemNV.Value) & ")" _ + & " but " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & ".PivotItems(.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub +Public Sub RaisePivotItemsItemValueStringIsNothing(FieldItem As tyParentItem, PivotFieldOrientation As XlPivotFieldOrientation) + Const ThisProcedure As String = ThisModule & "|RaisePivotItemsItemValueStringIsNothing|Sub" + With FieldItem + SetXlErrRef Description:=.ParentNV.Name & "(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & "." & .ItemNV.Name & "(" & GetIndexOrName(.ItemNV.Value) & ")" _ + & " but " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields(" _ + & GetIndexOrName(Value:=.ParentNV.Value) _ + & ") Is Nothing" + End With +End Sub +Public Sub RaisePivotItemsItemValueLongEq0(FieldItem As tyParentItem, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotItemsItemValueLongEq0|Sub" + With FieldItem + SetXlErrRef Description:=.ParentNV.Name & "(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & "." & .ItemNV.Name & "(" & GetIndexOrName(.ItemNV.Value) & ")" _ + & " but " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & ".PivotItems(.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub +Public Sub RaisePivotItemsItemValueLongPosGtCount(FieldItem As tyParentItem, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotItemsItemValueLongPosGtCount|Sub" + With FieldItem + SetXlErrRef Description:=.ParentNV.Name & "(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & "." & .ItemNV.Name & "(" & GetIndexOrName(.ItemNV.Value) & ")" _ + & " but " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & ".PivotItems(.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub +Public Sub RaisePivotItemsItemValueLongNegGtCount(FieldItem As tyParentItem, PivotFieldOrientation As XlPivotFieldOrientation, Count As Long) + Const ThisProcedure As String = ThisModule & "|RaisePivotItemsItemValueLongNegGtCount|Sub" + With FieldItem + SetXlErrRef Description:="Abs(" _ + & .ParentNV.Name & "(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & "." & .ItemNV.Name & "(" & GetIndexOrName(.ItemNV.Value) & ")" _ + & ")" _ + & " > " _ + & "Abs(" & .ItemNV.Name & "(" & GetIndexOrName(.ItemNV.Value) & ")) > " _ + & "Pivot" & GetPivotFieldOrientationString(PivotFieldOrientation:=PivotFieldOrientation) & "Fields(" & GetIndexOrName(.ParentNV.Value) & ")" _ + & ".PivotItems(.Count(=" & VBA.CStr(Count) & ")" + End With +End Sub + +Public Sub RaisePivotItemByValueNotFound(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaisePivotItemByValueNotFound|Sub" + With NameValue + SetXlErrRef Description:="PivotItems(" & .Name & "(" & GetValue(Value:=.Value) & ")) not found" + End With +End Sub +Public Sub RaisePivotItemVisibleError(ParName As String) + Const ThisProcedure As String = ThisModule & "|RaisePivotItemVisibleError|Sub" + SetXlErrNA Description:="Excel-Error! Use Slicer for " & ParName +End Sub + +Public Sub RaiseSlicerByValueNotFound(NameValue As tyNameValue) + Const ThisProcedure As String = ThisModule & "|RaiseSlicerByValueNotFound|Sub" + With NameValue + SetXlErrRef Description:="Slicers(" & .Name & "(" & GetValue(Value:=.Value) & ")) not found" + End With +End Sub +Public Sub RaiseSlicerWithOrientationNotFound(NameValue As tyNameValue, PivotFieldOrientation As XlPivotFieldOrientation) + Const ThisProcedure As String = ThisModule & "|RaiseSlicerWithOrientationNotFound|Sub" + Dim lvPivotFieldOrientation As String + + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + lvPivotFieldOrientation = "Column" + Case XlPivotFieldOrientation.xlDataField + lvPivotFieldOrientation = "Data" + Case XlPivotFieldOrientation.xlHidden + lvPivotFieldOrientation = "Hidden" + Case XlPivotFieldOrientation.xlPageField + lvPivotFieldOrientation = "Page" + Case XlPivotFieldOrientation.xlRowField + lvPivotFieldOrientation = "Row" + End Select + With NameValue + SetXlErrRef Description:="Slicers(" & GetValue(Value:=.Value) & "(" & GetValue(Value:=.Name) & ")) is no " & lvPivotFieldOrientation & "Slicer" + End With +End Sub + +Public Sub RaiseWorksheetPivotTablesIsNothing(Worksheet As Excel.Worksheet) + Const ThisProcedure As String = ThisModule & "|RaiseWorksheetPivotTablesIsNothing|Sub" + SetXlErrRef Description:="Worksheets(""" & Worksheet.Name & """).PivotTables Is Nothing" +End Sub +Public Sub RaiseWorksheetRangeNotInThisWorkbook(WorksheetRange As Excel.Range) + Const ThisProcedure As String = ThisModule & "|RaiseWorksheetRangeNotInThisWorkbook|Sub" + SetXlErrRef Description:="WorksheetRange.Address(""" & WorksheetRange.Address(External:=True) & """) not in this workbook" +End Sub + +Public Sub SetXlErrDiv0(Description As String) + Const ThisProcedure As String = ThisModule & "|SetXlErrDiv0|Sub" + SetUsageError CVError:=XlCVError.xlErrDiv0, Description:=Description +End Sub +Public Sub SetXlErrNA(Description As String) + Const ThisProcedure As String = ThisModule & "|SetXlErrNA|Sub" + SetUsageError CVError:=XlCVError.xlErrNA, Description:=Description +End Sub +Public Sub SetXlErrName(Description As String) + Const ThisProcedure As String = ThisModule & "|SetXlErrName|Sub" + SetUsageError CVError:=XlCVError.xlErrName, Description:=Description +End Sub +Public Sub SetXlErrNull(Description As String) + Const ThisProcedure As String = ThisModule & "|SetXlErrNull|Sub" + SetUsageError CVError:=XlCVError.xlErrNull, Description:=Description +End Sub +Public Sub SetXlErrNum(Description As String) + Const ThisProcedure As String = ThisModule & "|SetXlErrNum|Sub" + SetUsageError CVError:=XlCVError.xlErrNum, Description:=Description +End Sub +Public Sub SetXlErrRef(Description As String) + Const ThisProcedure As String = ThisModule & "|SetXlErrRef|Sub" + SetUsageError CVError:=XlCVError.xlErrRef, Description:=Description +End Sub +Public Sub SetXlErrValue(Description As String) + Const ThisProcedure As String = ThisModule & "|SetXlErrValue|Sub" + SetUsageError CVError:=XlCVError.xlErrValue, Description:=Description +End Sub +Private Sub SetUsageError(CVError As Excel.XlCVError, Description As String) + Const ThisProcedure As String = ThisModule & "|SetUsageError|Sub" + mvIsUsageError = True + mvCVError = CVError + mvDescription = Description + VBA.Err.Raise Number:=CVError, Description:=Description +End Sub +Public Sub ReraiseError() + Const ThisProcedure As String = ThisModule & "|ReraiseError|Sub" + ' muss in allen CatchError-Routinen aufgerufen werden, + ' die keine UDF ist + With VBA.Err + If Not mvIsUsageError Then + mvCVError = .Number + mvDescription = .Description + End If + .Raise Number:=.Number, Description:=mvDescription + End With +End Sub +Public Function GetAndClearError() As Variant + Const ThisProcedure As String = ThisModule & "|GetAndClearError|Function" + ' jede UDF muss in der CatchError-Routine den Wert dieser Funktion zurückgeben + ' z. B.: UDF = GetAndClearError + If mvIsUsageError Then + ' dann wurden Parameter falsch angegeben + GetAndClearError = VBA.CVErr(Expression:=mvCVError) + fnInfoErrMsgPri.Number = mvCVError + fnInfoErrMsgPri.Description = mvDescription + Else + ' hier ist ein interner Fehler aufgetreten + ' xlErrNull wird auch oben in RaiseLogicError genommen + GetAndClearError = VBA.CVErr(Expression:=XlCVError.xlErrNull) + With VBA.Err + fnInfoErrMsgPri.Number = .Number + fnInfoErrMsgPri.Description = .Description + End With + End If + mvCVError = Lo0 + mvDescription = EmptyString + mvIsUsageError = False +End Function +Public Function ErrorTest(x) As Variant + Const ThisProcedure As String = ThisModule & "|ErrorTest|Function" + On Error GoTo CatchError + ErrorTest2 x + Exit Function +CatchError: + ErrorTest = GetAndClearError +End Function +Private Sub ErrorTest2(x) + Const ThisProcedure As String = ThisModule & "|ErrorTest2|Sub" + On Error GoTo CatchError + ErrorTest3 x + Exit Sub +CatchError: + ReraiseError +End Sub +Private Function ErrorTest3(x) + Const ThisProcedure As String = ThisModule & "|ErrorTest3|Function" + On Error GoTo CatchError + Select Case x + Case "u": SetUsageError CVError:=XlCVError.xlErrDiv0, Description:="Div" + Case "v": +Debug.Print 1 / 0 + Case Else + End Select + Exit Function +CatchError: + ReraiseError +End Function + +Private Sub ErrorTestTest() + Const ThisProcedure As String = ThisModule & "|ErrorTestTest|Sub" +Debug.Print ErrorTest("u"), fnInfoErrMsgPri.Description +Debug.Print ErrorTest("v"), fnInfoErrMsgPri.Description +Debug.Print ErrorTest(""), fnInfoErrMsgPri.Description +End Sub + +Private Function GetIndexOrName(Value As Variant) As String + Const ThisProcedure As String = ThisModule & "|GetIndexOrName|Function" + If VBA.VarType(VarName:=Value) = VBA.VbVarType.vbString Then + GetIndexOrName = ConChrEquals & ConChrQuote & Value & ConChrQuote + Else + GetIndexOrName = ConChrEquals & VBA.CStr(Value) + End If +End Function +Private Function GetValue(Value As Variant) As String + Const ThisProcedure As String = ThisModule & "|GetValue|Function" + If VBA.VarType(VarName:=Value) = VBA.VbVarType.vbString Then + GetValue = ConChrEquals & ConChrQuote & Value & ConChrQuote + Else + GetValue = ConChrEquals & VBA.CStr(Value) + End If +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_5.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_5.txt new file mode 100644 index 0000000000..3272caca51 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_5.txt @@ -0,0 +1,44 @@ +Attribute VB_Name = "fnInfoErrMsgPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|fnInfoErrMsgPri" + +Dim mvNumber As Long +Dim mvDescription As String +Public pvSource As String +Public pvThisCellAddress As String + +Public Function SetErrMsg(XlCVError As Excel.XlCVError, Description As String) As Variant + Const ThisProcedure As String = ThisModule & "|SetErrMsg|Function" + mvNumber = XlCVError + mvDescription = Description + 'pvThisCellAddress = Application.ThisCell.Address + SetErrMsg = VBA.CVErr(XlCVError) +End Function + +Public Function DescriptionItemByNameDoesNotExist(Collection As Object _ + , ItemName As String _ + ) + Const ThisProcedure As String = ThisModule & "|DescriptionItemByNameDoesNotExist|Function" + DescriptionItemByNameDoesNotExist = VBA.TypeName(VarName:=Collection) _ + & "(""" & ItemName & """) does not exist" +End Function + +Public Property Get Description() As String + Const ThisProcedure As String = ThisModule & "|Description|Property Get" + Description = mvDescription +End Property +Public Property Let Description(pvDescription As String) + Const ThisProcedure As String = ThisModule & "|Description|Property Let" + mvDescription = pvDescription +End Property + +Public Property Get Number() As Long + Const ThisProcedure As String = ThisModule & "|Number|Property Get" + Number = mvNumber +End Property +Public Property Let Number(pvNumber As Long) + Const ThisProcedure As String = ThisModule & "|Number|Property Let" + mvNumber = pvNumber +End Property diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_6.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_6.txt new file mode 100644 index 0000000000..017a7c10f8 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_6.txt @@ -0,0 +1,120 @@ +Attribute VB_Name = "fnPivotFieldStatFn_ParPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|fnPivotFieldStatFn_ParPri" + +Public Function GetNR(Name As String, Value As Variant) As tyNameRange + Const ThisProcedure As String = ThisModule & "|GetNR|Function" + With GetNR + .Name = Name + If VBA.IsObject(Value) Then + Set .Value = Value + Else + .Value = Value + End If + End With +End Function + +Public Function GetNV(Name As String, Value As Variant) As tyNameValue + Const ThisProcedure As String = ThisModule & "|GetNV|Function" + With GetNV + .Name = Name + .Value = Value + End With +End Function + +Public Function GetStatFns(Optional Min As Boolean _ + , Optional Avg As Boolean _ + , Optional wAvg As Boolean _ + , Optional Max As Boolean _ + , Optional DecimalPlaces As Variant _ + , Optional ExcludeZeros As Variant _ + , Optional NoDataHeader As Variant _ + , Optional NoFieldHeader As Variant _ + ) As tyStatFns + Const ThisProcedure As String = ThisModule & "|GetStatFns|Function" + Dim ltStatFns As tyStatFns + + With ltStatFns + .Min = Min + .Avg = Avg + .wAvg = wAvg + .Max = Max + .DecimalPlacesNV = GetNV(Name:=ConParDecimalPlaces, Value:=DecimalPlaces) + .ExcludeZerosNV = GetNV(Name:=ConParExcludeZeros, Value:=ExcludeZeros) + .NoDataHeaderNV = GetNV(Name:=ConParNoHeader, Value:=NoDataHeader) + .NoFieldHeaderNV = GetNV(Name:=ConParNoHeader, Value:=NoFieldHeader) + End With + GetStatFns = ltStatFns +End Function + +Public Function GetPINVList(Optional FName As String, Optional IName As String _ + , Optional ByVal F1 As Variant, Optional ByVal I1 As Variant _ + , Optional ByVal F2 As Variant, Optional ByVal I2 As Variant _ + , Optional ByVal F3 As Variant, Optional ByVal I3 As Variant _ + , Optional ByVal F4 As Variant, Optional ByVal I4 As Variant _ + , Optional ByVal F5 As Variant, Optional ByVal I5 As Variant _ + , Optional ByVal F6 As Variant, Optional ByVal I6 As Variant _ + , Optional ByVal F7 As Variant, Optional ByVal I7 As Variant _ + , Optional ByVal F8 As Variant, Optional ByVal I8 As Variant _ + , Optional ByVal F9 As Variant, Optional ByVal I9 As Variant _ + ) As tyParentItemList + Const ThisProcedure As String = ThisModule & "|GetPINVList|Function" + Dim ltList As tyParentItemList + Dim lvCount As Long + + AddPINV ltList, lvCount, FName, IName, F1, I1 + AddPINV ltList, lvCount, FName, IName, F2, I2 + AddPINV ltList, lvCount, FName, IName, F3, I3 + AddPINV ltList, lvCount, FName, IName, F4, I4 + AddPINV ltList, lvCount, FName, IName, F5, I5 + AddPINV ltList, lvCount, FName, IName, F6, I6 + AddPINV ltList, lvCount, FName, IName, F7, I7 + AddPINV ltList, lvCount, FName, IName, F8, I8 + AddPINV ltList, lvCount, FName, IName, F9, I9 + + ltList.Count = lvCount + + GetPINVList = ltList +End Function + +Private Sub AddPINV(List As tyParentItemList, Count As Long, FName As String, IName As String, Optional FValue As Variant, Optional IValue As Variant) + Const ThisProcedure As String = ThisModule & "|AddPINV|Sub" + If VBA.IsMissing(FValue) And VBA.IsMissing(IValue) Then + Exit Sub + End If + With List + Count = Count + Lo1 + If Count = Lo1 Then + ReDim .PIs(Lo1 To Count) + Else + ReDim Preserve .PIs(Lo1 To Count) + End If + + With .PIs(Count) + With .ParentNV + .Name = VBA.Replace(FName, ConChrUnderScore, VBA.CStr(Count)) + .Value = FValue + End With + With .ItemNV + .Name = VBA.Replace(IName, ConChrUnderScore, VBA.CStr(Count)) + .Value = IValue + End With + End With + End With +End Sub + +Public Function GetPINV(FName As String, FValue As Variant, IName As String, IValue As Variant) As tyParentItem + Const ThisProcedure As String = ThisModule & "|GetPINV|Function" + With GetPINV + With .ParentNV + .Name = FName + .Value = FValue + End With + With .ItemNV + .Name = IName + .Value = IValue + End With + End With +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_7.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_7.txt new file mode 100644 index 0000000000..2e9fa61ae5 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_7.txt @@ -0,0 +1,233 @@ +Attribute VB_Name = "fnRegEx" +Option Explicit + +Private Const ThisModule As String = ThisProject & "|fnRegEx" + +Public Function reCap(SubPattern As String) As Variant +Attribute reCap.VB_Description = "Returns a capturing SearchPattern: ()" +Attribute reCap.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|reCap|Function" + reCap = ConChrLParan & SubPattern & ConChrRParan +End Function +Public Function reNoCap(SubPattern As String) As Variant +Attribute reNoCap.VB_Description = "Returns a non-capturing SearchPattern: (?:)" +Attribute reNoCap.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|reNoCap|Function" + reNoCap = "(?:" & SubPattern & ConChrRParan +End Function +Public Function reNegChrSet(SubPattern As String) As Variant + Const ThisProcedure As String = ThisModule & "|reNegChrSet|Function" + reNegChrSet = "[^" & SubPattern & ConChrRSquareBracket +End Function +Public Function reNegLAhead(SubPattern As String) As Variant +Attribute reNegLAhead.VB_Description = "Returns a negative LookAhead pattern: (?!)" +Attribute reNegLAhead.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|reNegLAhead|Function" + reNegLAhead = "(?!" & SubPattern & ConChrRParan +End Function +Public Function rePosChrSet(SubPattern As String) As Variant + Const ThisProcedure As String = ThisModule & "|rePosChrSet|Function" + rePosChrSet = "[" & SubPattern & ConChrRSquareBracket +End Function +Public Function rePosLAhead(SubPattern As String) As Variant +Attribute rePosLAhead.VB_Description = "Returns a positive LookAhead pattern: (?=)" +Attribute rePosLAhead.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|rePosLAhead|Function" + rePosLAhead = "(?=" & SubPattern & ConChrRParan +End Function + +Public Function x0o1x(Optional Lazy As Boolean = False) As String +Attribute x0o1x.VB_Description = "Returns the '0 or 1 times' subpattern: ?" +Attribute x0o1x.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|x0o1x|Function" + x0o1x = ConChrQuestMark & GetLazy(Value:=Lazy) +End Function +Public Function x0omx(Optional Lazy As Boolean = False) As String +Attribute x0omx.VB_Description = "Returns the '0 or more times' subpattern: *" +Attribute x0omx.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|x0omx|Function" + x0omx = ConChrAsterisk & GetLazy(Value:=Lazy) +End Function +Public Function x1omx(Optional Lazy As Boolean = False) As String +Attribute x1omx.VB_Description = "Returns the '1 or more times' subpattern: +" +Attribute x1omx.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|x1omx|Function" + x1omx = ConChrPlus & GetLazy(Value:=Lazy) +End Function +Public Function xNx(N As Long) As String +Attribute xNx.VB_Description = "Returns a 'N times' subpattern: {}" +Attribute xNx.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|xNx|Function" + If N < 0 Then + xNx = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrNum _ + , Description:="n < 0" _ + ) + Exit Function + End If + If N = Lo1 Then + xNx = EmptyString + Else + xNx = ConChrLCurlyBracket & VBA.CStr(N) & ConChrRCurlyBracket + End If +End Function +Public Function xNomx(N As Long, Optional Lazy As Boolean = False) As String +Attribute xNomx.VB_Description = "Returns a 'N or more times' subpattern: {,}" +Attribute xNomx.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|xNomx|Function" + If N < 0 Then + xNomx = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrNum _ + , Description:="n < 0" _ + ) + Exit Function + End If + Select Case N + Case 0 + xNomx = x0omx(Lazy:=Lazy) + Case 1 + xNomx = x1omx(Lazy:=Lazy) + Case Else + xNomx = ConChrLCurlyBracket & VBA.CStr(N) & ConChrComma & ConChrRCurlyBracket & GetLazy(Value:=Lazy) + End Select +End Function +Public Function xNtMx(N As Long, M As Long, Optional Lazy As Boolean = False) As String +Attribute xNtMx.VB_Description = "Returns a 'N to M times' subpattern: {,}" +Attribute xNtMx.VB_ProcData.VB_Invoke_Func = " \n19" + Const ThisProcedure As String = ThisModule & "|xNtMx|Function" + If N < Lo0 Then + xNtMx = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrNum _ + , Description:="n < 0" _ + ) + Exit Function + End If + If M < N Then + xNtMx = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrNum _ + , Description:="m < n" _ + ) + Exit Function + End If + If N = M Then + If Lazy And N <> Lo0 Then + xNtMx = xNx(N:=N) & GetLazy(Value:=Lazy) + Else + xNtMx = xNx(N:=N) + End If + Else + If N = Lo0 And M = Lo1 Then + xNtMx = x0o1x(Lazy:=Lazy) + Else + xNtMx = ConChrLCurlyBracket & VBA.CStr(N) & ConChrComma & VBA.CStr(M) & ConChrRCurlyBracket & GetLazy(Value:=Lazy) + End If + End If +End Function +Private Function GetLazy(Value As Boolean) As String + Const ThisProcedure As String = ThisModule & "|GetLazy|Function" + If Value Then + GetLazy = ConChrQuestMark + End If +End Function +Public Function GetRunTimeError() As String + Const ThisProcedure As String = ThisModule & "|GetRunTimeError|Function" +' Const ThisProcedure As String = ThisModule & "|RunTimeError|Sub" + ' VBScript Run-time Errors + ' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/48394ca0-beec-4051-9354-b47849725218.asp + With VBA.Err + Select Case VBA.Err.Number + Case 5 + GetRunTimeError = "Invalid procedure call or argument" + Case 6 + GetRunTimeError = "Overflow" + Case 7 + GetRunTimeError = "Out of Memory" + Case 9 + GetRunTimeError = "Subscript out of range" + Case 10 + GetRunTimeError = "This array is fixed or temporarily locked" + Case 11 + GetRunTimeError = "Division by zero" + Case 13 + GetRunTimeError = "Type mismatch" + Case 14 + GetRunTimeError = "Out of string space" + Case 17 + GetRunTimeError = "Can't perform requested operation" + Case 28 + GetRunTimeError = "Out of stack space" + Case 35 + GetRunTimeError = "Sub or function not defined" + Case 48 + GetRunTimeError = "Error in loading DLL" + Case 51 + GetRunTimeError = "Internal error" + Case 91 + GetRunTimeError = "Object variable not set" + Case 92 + GetRunTimeError = "For loop not initialized" + Case 94 + GetRunTimeError = "Invalid use of Null" + Case 424 + GetRunTimeError = "Object required" + Case 429 + GetRunTimeError = "ActiveX component can't create object" + Case 430 + GetRunTimeError = "Class doesn't support Automation" + Case 432 + GetRunTimeError = "File name or class name not found during Automation operation" + Case 438 + GetRunTimeError = "Object doesn't support this property or method" + Case 445 + GetRunTimeError = "Object doesn't support this action" + Case 447 + GetRunTimeError = "Object doesn't support current locale setting" + Case 448 + GetRunTimeError = "Named argument not found" + Case 449 + GetRunTimeError = "Argument not optional" + Case 450 + GetRunTimeError = "Wrong number of arguments or invalid property assignment" + Case 451 + GetRunTimeError = "Object not a collection" + Case 458 + GetRunTimeError = "Variable uses an Automation type not supported in VBScript" + Case 462 + GetRunTimeError = "The remote server machine does not exist or is unavailable" + Case 481 + GetRunTimeError = "Invalid picture" + Case 500 + GetRunTimeError = "Variable is undefined" + Case 502 + GetRunTimeError = "Object not safe for scripting" + Case 503 + GetRunTimeError = "Object not safe for initializing" + Case 504 + GetRunTimeError = "Object not safe for creating" + Case 505 + GetRunTimeError = "Invalid or unqualified reference" + Case 506 + GetRunTimeError = "Class not defined" + Case 507 + GetRunTimeError = "An exception occurred" + Case 5008 + GetRunTimeError = "Illegal assignment" + Case 5017 + GetRunTimeError = "Syntax error in regular expression" + Case 5018 + GetRunTimeError = "Unexpected quantifier" + Case 5019 + GetRunTimeError = "Expected ']' in regular expression" + Case 5020 + GetRunTimeError = "Expected ')' in regular expression" + Case 5021 + GetRunTimeError = "Invalid range in character set" + Case Else + On Error GoTo 0 +' vbVBACmdMsg.UnexpectedSelectCaseValue Value:=Err.Number, Source:=ThisProcedure + End Select +' vbREMsg.PatternIsNotValid Value:=a.aao.VbsRegEx.Pattern _ +' , RunTimeError:=.Description _ +' , Source:=Source +' vbErr.Raise Number:=.Number _ +' , Name:=VbsSource _ +' , Source:=Source _ +' , description:=.description + End With +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_8.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_8.txt new file mode 100644 index 0000000000..042f84ba26 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_8.txt @@ -0,0 +1,947 @@ +Attribute VB_Name = "fnToolsPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|fnToolsPri" + +Private Sub GetDecimalPlacesNumberFormatTest() + Const ThisProcedure As String = ThisModule & "|GetDecimalPlacesNumberFormatTest|Sub" +' 'Debug.Print GetDecimalPlacesNumberFormat(999999999999999#) +' 'Debug.Print GetDecimalPlacesNumberFormat(-9) +' 'Debug.Print GetDecimalPlacesNumberFormat(3) +' 'Debug.Print VBA.Format$(1234.5678, GetDecimalPlacesNumberFormat(3)) +Debug.Print VBA.Format$(0.91, GetDecimalPlacesNumberFormat("#.##0%")) +End Sub +Public Function GetDecimalPlacesNumberFormat(DecimalPlaces As Variant) As String + Const ThisProcedure As String = ThisModule & "|GetDecimalPlacesNumberFormat|Function" + Dim lvLong As Long + Dim lvPercent As String + Dim lvVariant As Variant + + lvVariant = GetVariantValue(Value:=DecimalPlaces) +' If VBA.VarType(lvVariant) = VBA.VbVarType.vbString Then +' lvVariant = VBA.Replace(lvVariant, ".", "°") +' lvVariant = VBA.Replace(lvVariant, ",", ".") +' lvVariant = VBA.Replace(lvVariant, "°", ",") +' GetDecimalPlacesNumberFormat = lvVariant +' Else + On Error Resume Next + lvLong = VBA.CLng(lvVariant) + On Error GoTo 0 + If lvLong >= Lo0 And lvLong <= Lo9 Then + 'lvLong = lvLong ' das ist OK + ElseIf lvLong >= Lo100 And lvLong <= Lo109 Then + lvLong = lvLong - Lo100 + lvPercent = "%" + Else + lvLong = Lo0 + End If + If lvLong = Lo0 Then + GetDecimalPlacesNumberFormat = "#,##0" & lvPercent + Else + GetDecimalPlacesNumberFormat = "#,##0." & VBA.String$(Number:=lvLong, Character:=ConChr0) & lvPercent + End If +' End If +End Function + +Public Function GetOptNotFoundValue(Optional OptNotFoundValue As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|GetOptNotFoundValue|Function" + If VBA.IsMissing(OptNotFoundValue) Then + GetOptNotFoundValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrNA _ + , Description:="Nothing was found" _ + ) + Else + If VBA.VarType(VarName:=OptNotFoundValue) = VBA.VbVarType.vbString Then + If VBA.Len(OptNotFoundValue) = Lo0 Then + GetOptNotFoundValue = Empty + Else + GetOptNotFoundValue = OptNotFoundValue + End If + Else + GetOptNotFoundValue = OptNotFoundValue + End If + End If +End Function + +Public Function GetVariantValue(Value As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|GetVariantValue|Function" + If VBA.IsObject(Value) Then + GetVariantValue = Value.Value + Else + GetVariantValue = Value + End If +End Function + +Public Sub SetValueArraysSearch(SearchValuesCollection As VBA.Collection, SearchRange As Excel.Range, VisibleOnly As Boolean) + Const ThisProcedure As String = ThisModule & "|SetValueArraysSearch|Sub" + Dim lcArea As Excel.Range + Dim laValues As Variant + + If SearchValuesCollection Is Nothing Then + Set SearchValuesCollection = New VBA.Collection + End If + If VisibleOnly Then + For Each lcArea In SearchRange.Areas + 'Debug.Print lcArea.Address + laValues = lcArea + SearchValuesCollection.Add Item:=laValues + Next + Else + For Each lcArea In SearchRange.Areas + 'Debug.Print lcArea.Address + laValues = lcArea + SearchValuesCollection.Add Item:=laValues + Next + 'laValues = SearchRange +' Dim i As Long, c As Long +' For i = LBound(laValues) To LBound(laValues) + 361 +' 'Debug.Print i, laValues(i) +' Next + 'SearchValuesCollection.Add Item:=laValues + End If + Set lcArea = Nothing +End Sub +Public Sub SetValueArraysSearchUse(SearchValuesCollection As VBA.Collection _ + , UseValuesCollection As VBA.Collection _ + , SearchRange As Excel.Range _ + , UseRange As Excel.Range _ + , VisibleOnly As Boolean _ + ) + Const ThisProcedure As String = ThisModule & "|SetValueArraysSearchUse|Sub" + Dim lcArea As Excel.Range + Dim lcUseRange As Excel.Range + Dim laValues As Variant + Dim lvColumnOffset As Long + Dim lvRowOffset As Long + Dim lvColumnSize As Long + Dim lvRowSize As Long + + If SearchValuesCollection Is Nothing Then + Set SearchValuesCollection = New VBA.Collection + End If + If UseRange Is Nothing Then + Set UseValuesCollection = SearchValuesCollection + If VisibleOnly Then + For Each lcArea In SearchRange.Areas + 'Debug.Print lcArea.Address + laValues = lcArea + SearchValuesCollection.Add Item:=laValues + Next + Else + laValues = SearchRange + SearchValuesCollection.Add Item:=laValues + End If + Else + If UseValuesCollection Is Nothing Then + Set UseValuesCollection = New VBA.Collection + End If + If VisibleOnly Then + For Each lcArea In SearchRange.Areas + 'Debug.Print lcArea.Address + SearchValuesCollection.Add Item:=lcArea.Value + lvColumnOffset = lcArea.Column - SearchRange.Column + lvRowOffset = lcArea.Row - SearchRange.Row + lvColumnSize = lcArea.Columns.Count '- SearchRange.Columns.Count + Lo1 + lvRowSize = lcArea.Rows.Count '- SearchRange.Rows.Count + Lo1 + Set lcUseRange = UseRange.Offset(RowOffset:=lvRowOffset, ColumnOffset:=lvColumnOffset) _ + .Resize(RowSize:=lvRowSize, ColumnSize:=lvColumnSize) + 'Debug.Print lcArea.Address, lcUseRange.Address + UseValuesCollection.Add Item:=lcUseRange.Value + Next + Else + laValues = SearchRange.Value + SearchValuesCollection.Add Item:=laValues + laValues = UseRange.Value + UseValuesCollection.Add Item:=laValues + End If + End If + Set lcUseRange = Nothing + Set lcArea = Nothing +End Sub +Private Sub JoinedArraysTest() + Const ThisProcedure As String = ThisModule & "|JoinedArraysTest|Sub" + Dim v As Variant + v = JoinedArrays(Array(1#, 2.1, 3.33333333333333E+15), Array("a", "b")) +End Sub +Public Function JoinedArrays(NumArray As Variant, StrArray As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|JoinedArrays|Function" + Dim laValues As Variant + Dim lvIndex As Long + If UBound(NumArray) < UBound(StrArray) Then + JoinedArrays = VBA.Join(StrArray, ",") + Else + JoinedArrays = VBA.Join(NumArray, ",") & VBA.Join(StrArray, ",") + End If +End Function + +Public Function SetSingleValue(ValueVar As Variant, ValuePar As Variant, Name As String) As Variant + Const ThisProcedure As String = ThisModule & "|SetSingleValue|Function" + Dim lcRange As Excel.Range + If VBA.IsObject(Expression:=ValuePar) Then + Set lcRange = ValuePar + If lcRange.Areas.Count <> Lo1 Then + SetSingleValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " has more than 1 area" _ + ) + End If + If lcRange.Rows.Count <> Lo1 Then + SetSingleValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " has more than 1 row" _ + ) + End If + If lcRange.Columns.Count <> Lo1 Then + SetSingleValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " has more than 1 column" _ + ) + End If + ValueVar = lcRange.Value + Set lcRange = Nothing + ElseIf VBA.IsArray(VarName:=ValuePar) Then + SetSingleValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " is an array" _ + ) + Else + ValueVar = ValuePar + End If + Set lcRange = Nothing +End Function +Public Function GetObjectValue(Value As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|GetObjectValue|Function" + If VBA.IsObject(Value) Then + GetObjectValue = Value.Value + Else + GetObjectValue = Value + End If +End Function + +Public Function CheckLikeCrit(LikeCrit As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|CheckLikeCrit|Function" + If VBA.VarType(LikeCrit) And VBA.VbVarType.vbArray Then + ' das Suchkriterium darf kein Arry sein + CheckLikeCrit = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:="LikeCrit may not be an Array" _ + ) + Exit Function + Else + Select Case VBA.VarType(LikeCrit) + Case VBA.VbVarType.vbDataObject _ + , VbVarType.vbEmpty _ + , VbVarType.vbError _ + , VbVarType.vbNull _ + , VbVarType.vbObject _ + , VbVarType.vbUserDefinedType + CheckLikeCrit = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:="Invalid VarType of LikeCrit" _ + ) + Exit Function + + Case Else + ' der Rest ist OK + End Select + End If +End Function + +Private Sub GetArrayDimensionCountTest() + Const ThisProcedure As String = ThisModule & "|GetArrayDimensionCountTest|Sub" + Dim v + Dim a1(1) + Dim a2(1, 2) +Debug.Print GetArrayDimensionsCount(v) +Debug.Print GetArrayDimensionsCount(a1) +Debug.Print GetArrayDimensionsCount(a2) + +End Sub + +Public Function GetArrayDimensionsCount(Arr As Variant) As Long + Const ThisProcedure As String = ThisModule & "|GetArrayDimensionsCount|Function" + Dim lvCount As Long + Dim lvValue As Variant + + If VBA.IsArray(Arr) Then + Do + lvCount = lvCount + Lo1 + lvValue = LBound(Arr, lvCount) + GetArrayDimensionsCount = lvCount + Loop + End If +End Function + +Public Function ConvertSearchRange(SearchRange As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|ConvertSearchRange|Function" + If Not TypeOf SearchRange Is Excel.Range Then + ConvertSearchRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="SearchRange has more than 1 Area" _ + ) + End If +End Function +Public Function CheckSearchRange(SearchRange As Excel.Range) As Variant + Const ThisProcedure As String = ThisModule & "|CheckSearchRange|Function" + Dim lcRange As Excel.Range + If VBA.IsObject(SearchRange) Then + Set lcRange = SearchRange + If lcRange.Areas.Count <> Lo1 Then + CheckSearchRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="SearchRange has more than 1 Area" _ + ) + End If + Set lcRange = Nothing + Else + CheckSearchRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:="SearchRange is no Range or Array" _ + ) + + End If +End Function + +Public Function CheckUseRange(UseRange As Excel.Range, UseRangePar As Excel.Range, SearchRange As Excel.Range) As Variant + Const ThisProcedure As String = ThisModule & "|CheckUseRange|Function" + + If Not UseRangePar Is Nothing Then + If UseRangePar.Areas.Count <> Lo1 Then + CheckUseRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="UseRange has more than 1 area" _ + ) + End If + On Error Resume Next + ' UseRange wird wie bei SummeWenn auf die Größe des SearchRange angepaßt + Set UseRange = UseRangePar.Resize(RowSize:=SearchRange.Rows.Count _ + , ColumnSize:=SearchRange.Columns.Count _ + ) + On Error GoTo 0 + If UseRange Is Nothing Then + CheckUseRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:="UseRange is over the limits" _ + ) + + End If + End If +End Function + +Public Function CheckCrit(Crit As Variant, CritPar As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|CheckCrit|Function" + Dim lcRange As Excel.Range + If VBA.IsError(CritPar) Then + CheckCrit = CritPar + ElseIf VBA.IsObject(CritPar) Then + Set lcRange = CritPar + If lcRange.Areas.Count <> Lo1 Then + CheckCrit = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="Crit has more than 1 Area" _ + ) + Set lcRange = Nothing + Exit Function + End If + If lcRange.Rows.Count <> Lo1 Then + CheckCrit = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="Crit has more than 1 Row" _ + ) + Set lcRange = Nothing + Exit Function + End If + If lcRange.Columns.Count <> Lo1 Then + CheckCrit = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="Crit has more than 1 Column" _ + ) + Set lcRange = Nothing + Exit Function + End If + Crit = CritPar.Value + ElseIf VBA.IsArray(CritPar) Then + CheckCrit = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="Crit is an array" _ + ) + Set lcRange = Nothing + Exit Function + ElseIf VBA.IsEmpty(CritPar) Then + CheckCrit = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="Crit is empty" _ + ) + Set lcRange = Nothing + Exit Function + Else + Crit = CritPar + Set lcRange = Nothing + End If +End Function + +Public Function CheckLogOp(LogOp As fnenLogOp, LogOpPar As String) As Variant + Const ThisProcedure As String = ThisModule & "|CheckLogOp|Function" + Select Case VBA.UCase$(LogOpPar) + Case "<": LogOp = fnenLogOp.loBLT + Case "<=": LogOp = fnenLogOp.loBLE + Case "<>": LogOp = fnenLogOp.loBNE + Case "=": LogOp = fnenLogOp.loBEQ + Case ">=": LogOp = fnenLogOp.loBGE + Case ">": LogOp = fnenLogOp.loBGT + Case "LE": LogOp = fnenLogOp.loSLe + Case "RI": LogOp = fnenLogOp.loSRi + Case "LI": LogOp = fnenLogOp.loPLi + Case "RE": LogOp = fnenLogOp.loPRE + Case Else + CheckLogOp = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:="Invalid LogOp: " & LogOpPar _ + ) + End Select +End Function + +Public Function CheckText(Text As Variant, TextPar As Variant, Name As String) As Variant + Const ThisProcedure As String = ThisModule & "|CheckText|Function" + Dim lcRange As Excel.Range + If VBA.IsError(TextPar) Then + CheckText = TextPar + ElseIf VBA.IsObject(TextPar) Then + Set lcRange = TextPar + If lcRange.Areas.Count > Lo1 Then + CheckText = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " has more than 1 Area" _ + ) + Set lcRange = Nothing + Exit Function + End If + If lcRange.Cells.Count <> Lo1 Then + CheckText = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " is a range with more than a a single cell." _ + ) + Set lcRange = Nothing + Exit Function + End If + Text = lcRange.Value + ElseIf VBA.IsArray(TextPar) Then + CheckText = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " is an array." _ + ) + Set lcRange = Nothing + Exit Function + ElseIf VBA.IsEmpty(TextPar) Then + CheckText = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " is empty." _ + ) + Set lcRange = Nothing + Exit Function + ElseIf VBA.VarType(VarName:=TextPar) <> VBA.VbVarType.vbString Then + CheckText = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=Name & " is not a string." _ + ) + Set lcRange = Nothing + Exit Function + Else + Text = TextPar + Set lcRange = Nothing + End If +End Function + +Public Sub TerminateCollection(Collection As VBA.Collection) + Const ThisProcedure As String = ThisModule & "|TerminateCollection|Sub" + If Not Collection Is Nothing Then + With Collection + Do While .Count > Lo0 + .Remove Index:=.Count + Loop + End With + Set Collection = Nothing + End If +End Sub +Public Sub TerminateCollectionWithObjects(Collection As VBA.Collection) + Const ThisProcedure As String = ThisModule & "|TerminateCollectionWithObjects|Sub" + Dim lcObject As Object + If Not Collection Is Nothing Then + With Collection + Do While .Count > Lo0 + 'Stop + Set lcObject = .Item(Index:=.Count) + .Remove Index:=.Count + Set lcObject = Nothing + Loop + End With + Set Collection = Nothing + End If +End Sub +Public Sub RemoveAllItemsFromCollection(Collection As VBA.Collection) + Const ThisProcedure As String = ThisModule & "|RemoveAllItemsFromCollection|Sub" + If Not Collection Is Nothing Then + With Collection + Do While .Count > Lo0 + .Remove Index:=.Count + Loop + End With + End If +End Sub + +Public Sub TerminateDictionary(Dictionary As Scripting.Dictionary) + Const ThisProcedure As String = ThisModule & "|TerminateDictionary|Sub" + If Not Dictionary Is Nothing Then + Dictionary.RemoveAll + Set Dictionary = Nothing + End If +End Sub + +Public Function CheckSort(Sort As fnenSort, SortPar As Long) As Variant + Const ThisProcedure As String = ThisModule & "|CheckSort|Function" + If SortPar > Lo0 Then + Sort = fnenSort.sAscending + ElseIf SortPar = Lo0 Then + Sort = fnenSort.sNOptSort + Else + Sort = fnenSort.sDescending + End If +End Function + +Private Sub CheckRegExTest() + Const ThisProcedure As String = ThisModule & "|CheckRegExTest|Sub" + Dim re As VBScript_RegExp_55.RegExp + CheckRegEx re, "[", False +End Sub + +Public Function CheckRegEx(RegEx As VBScript_RegExp_55.RegExp, Crit As Variant, IgnoreCase As Boolean) As Variant + Const ThisProcedure As String = ThisModule & "|CheckRegEx|Function" + If VBA.VarType(VarName:=Crit) = VBA.VbVarType.vbString Then + Set RegEx = New VBScript_RegExp_55.RegExp + With RegEx + .Global = False + .IgnoreCase = IgnoreCase + .MultiLine = False + .Pattern = Crit + On Error Resume Next + If .Test(EmptyString) Then + ' nur um zu schauen, ob das Pattern OK ist + End If + End With + If VBA.Err.Number > Lo0 Then + CheckRegEx = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:=GetRunTimeError _ + ) + End If + End If +End Function +Public Function CheckRangeUseRange(SearchRange As Excel.Range, UseRange As Excel.Range, SearchRangePar As Excel.Range, UseRangePar As Excel.Range, VisibleOnly As Boolean) As Variant + Const ThisProcedure As String = ThisModule & "|CheckRangeUseRange|Function" + Dim lcSearchArea As Excel.Range + Dim lcSearchRange As Excel.Range + Dim lcUseArea As Excel.Range + Dim lcUseRange As Excel.Range + Dim lvIndex As Long + + Set SearchRange = SearchRangePar + Set UseRange = UseRangePar + + If UseRange Is Nothing Then + Set UseRange = SearchRange + End If + + If SearchRange.Areas.Count <> UseRange.Areas.Count Then + CheckRangeUseRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="Range.Areas.Count <> UseRange.Areas.Count" _ + ) + Exit Function + End If + + ' sicherstellen, dass jedes Area dieselben Dimensionen hat + For lvIndex = Lo1 To SearchRange.Areas.Count + Set lcSearchArea = SearchRange.Areas(Index:=lvIndex) + Set lcUseArea = UseRange.Areas(Index:=lvIndex) + If lcSearchArea.Rows.Count <> lcUseArea.Rows.Count Then + CheckRangeUseRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="SearchArea.Rows.Count <> UseArea.Rows.Count" _ + ) + GoSub CleanUp + Exit Function + ElseIf lcSearchArea.Columns.Count <> lcUseArea.Columns.Count Then + CheckRangeUseRange = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:="SearchArea.Columns.Count <> UseArea.Columns.Count" _ + ) + GoSub CleanUp + Exit Function + End If + Next + Exit Function + +CleanUp: + Set lcUseRange = Nothing + Set lcUseArea = Nothing + Set lcSearchRange = Nothing + Set lcSearchArea = Nothing +End Function + +Public Sub SetVisibleSearchRangeUseRange(SearchRange As Excel.Range, UseRange As Excel.Range, VisibleOnly As Boolean) + Const ThisProcedure As String = ThisModule & "|SetVisibleSearchRangeUseRange|Sub" + If VisibleOnly = Lo1 Then + Set SearchRange = SearchRange.SpecialCells(Type:=xlCellTypeVisible) + Set UseRange = UseRange.SpecialCells(Type:=xlCellTypeVisible) + End If +End Sub + +Public Function AllDictionariesCount(AllDictionaries As tyAllDictionaries) As Long + Const ThisProcedure As String = ThisModule & "|AllDictionariesCount|Function" + With AllDictionaries + AllDictionariesCount = .BooleanDictionary.Count _ + + .DateDictionary.Count _ + + .DoubleDictionary.Count _ + + .EmptyDictionary.Count _ + + .ErrorDictionary.Count _ + + .StringDictionary.Count + End With +End Function + +Public Function AllArraysCount(AllArrays As tyAllArrayIndexValues) As Long + Const ThisProcedure As String = ThisModule & "|AllArraysCount|Function" + With AllArrays + AllArraysCount = .BooleanArray.Count _ + + .DateArray.Count _ + + .DoubleArray.Count _ + + .EmptyArray.Count _ + + .ErrorArray.Count _ + + .StringArray.Count + End With +End Function + +Public Function JoinAllArrays(AllArrays As tyAllArrayIndexValues, Sort As fnenSort, SeparatorPar As String) As String + Const ThisProcedure As String = ThisModule & "|JoinAllArrays|Function" + Dim lvResult As String + Dim lvSeparator As String + ' Zahlen, Zeit, Text, Logisch, Fehler, Leere Zellen + With AllArrays + If Sort = fnenSort.sDescending Then + JoinOneArray OneArray:=.EmptyArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.ErrorArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.BooleanArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.StringArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.DateArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.DoubleArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + Else + JoinOneArray OneArray:=.DoubleArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.DateArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.StringArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.BooleanArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.ErrorArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + JoinOneArray OneArray:=.EmptyArray, Result:=lvResult, Separator:=lvSeparator, SeparatorPar:=SeparatorPar + End If + End With + JoinAllArrays = lvResult +End Function +Private Function JoinOneArray(OneArray As tyArrayIndexValues, Result As String, Separator As String, SeparatorPar As String) As String + Const ThisProcedure As String = ThisModule & "|JoinOneArray|Function" + With OneArray + If .Count > Lo0 Then + Result = Result & Separator & VBA.Join(.Values, SeparatorPar) + Separator = SeparatorPar + End If + End With +End Function + +Private Sub IsBooleTest() + Const ThisProcedure As String = ThisModule & "|IsBooleTest|Sub" +Debug.Print IsBoole(0) +Debug.Print IsBoole(-1) +Debug.Print IsBoole(1) +Debug.Print IsBoole(9.9) + +End Sub +Public Function IsBoole(Value As Variant) As Variant + Const ThisProcedure As String = ThisModule & "|IsBoole|Function" + On Error GoTo CatchError + IsBoole = VBA.CBool(Value) + IsBoole = True + Exit Function +CatchError: + IsBoole = False +End Function + +Private Sub VCellsAddressTest() + Const ThisProcedure As String = ThisModule & "|VCellsAddressTest|Sub" +Debug.Print VCellsAddress(Union(Range("A1:e3"), Range("f3:h5"))) +End Sub +Public Function VCellsAddress(Range As Excel.Range) As Variant + Const ThisProcedure As String = ThisModule & "|VCellsAddress|Function" + 'Debug.Print Range.Address + VCellsAddress = Range.SpecialCells(xlCellTypeVisible).Address +End Function + +Public Sub VisibleRangesTest() + Const ThisProcedure As String = ThisModule & "|VisibleRangesTest|Sub" + Dim r As Excel.Range, c As Excel.Range + Set r = Union(Range("A1:e3"), Range("b3:h5")) +Debug.Print r.EntireColumn.Address +Debug.Print VisibleRanges(r).Address + For Each r In VisibleRanges(r).Areas +Debug.Print ">", r.Address + Next +End Sub +Public Function VisibleRanges(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|VisibleRanges|Function" + Dim lcVisibleColumns As Excel.Range + Dim lcVisibleRows As Excel.Range + + ' gibt die Schnittmenge der sichtbaren Spalten und der + ' sichtbaren Zeilen von Range zurück + ' ACHTUNG: die Menge der zurückgegebenen sichtbaren Zellen + ' unterscheidet sich von den SpecialCells(XlCellTypeVisible), + ' falls Range Areas enthält, die nicht dieselben Zeilen oder Spalten + ' abdecken. + ' Beisp.: Range enthält A1:B2,E2:F3 und alle seien sichtbar + ' dann wird z. B. auch A2:A3 zurückgegeben, was in den SpecialCells + ' nicht enthalten ist + + Set lcVisibleColumns = VisibleColumns(Range:=Range) + If lcVisibleColumns Is Nothing Then + Exit Function + End If + 'Debug.Print lcVisibleColumns.Address + Set lcVisibleRows = VisibleRows(Range:=Range) + If lcVisibleRows Is Nothing Then + Set lcVisibleColumns = Nothing + Exit Function + End If + 'Debug.Print lcVisibleRows.Address + + Set VisibleRanges = Application.Intersect(Arg1:=lcVisibleRows, Arg2:=lcVisibleColumns) + + Set lcVisibleColumns = Nothing + Set lcVisibleRows = Nothing +End Function +Private Sub VisibleColumnsTest() + Const ThisProcedure As String = ThisModule & "|VisibleColumnsTest|Sub" + Dim s As String + s = "a1:f3" +Debug.Print VisibleColumns(Application.Union(Range("a1:e1"), Range("f3:g3"))).Address +End Sub +Public Function VisibleColumns(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|VisibleColumns|Function" + Dim lcArea As Excel.Range + Dim lcCell As Excel.Range + Dim lcRange As Excel.Range + Dim lcRow1 As Excel.Range + + For Each lcArea In Range.Areas + For Each lcCell In lcArea.Resize(RowSize:=Lo1) + With lcCell + If Not .EntireColumn.Hidden Then + Set lcRow1 = Application.Cells(RowIndex:=Lo1, ColumnIndex:=.Column) + If lcRange Is Nothing Then + Set lcRange = lcRow1 + Else + If Application.Intersect(Arg1:=lcRange, Arg2:=lcRow1) Is Nothing Then + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcRow1) + End If + End If + End If + End With + Next + Next + If Not lcRange Is Nothing Then + Set VisibleColumns = lcRange.EntireColumn + End If + + Set lcRange = Nothing + Set lcRow1 = Nothing + Set lcCell = Nothing + Set lcArea = Nothing +End Function + +Public Function VisibleColumnsOld(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|VisibleColumnsOld|Function" + ' Hat nicht funktioniert, weil SpecialCells bei benutzerdefinierten Funktionen + ' nur den Original-Range zurückliefert und nicht die sichtbaren Zellen. + Dim lcArea As Excel.Range + Dim lcRange As Excel.Range + Dim lcVisibleArea As Excel.Range + Dim lcVisibleAreas As Excel.Range + + ' gibt die sichtbaren Spalten zurück + ' wenn sich Ranges bzgl. Spalten überlappen, sind die sich überlappenden + ' Spalten im zurückgegebenen Range nur einmal enthalten + + For Each lcArea In Range.Areas + Set lcVisibleAreas = GetVisibleCellsOrNothing(Range:=lcArea) + 'Debug.Print lcVisibleAreas.Address + If Not lcVisibleAreas Is Nothing Then + For Each lcVisibleArea In lcVisibleAreas.Areas + If lcRange Is Nothing Then + Set lcRange = lcVisibleArea.EntireColumn + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcVisibleArea.EntireColumn) + End If + 'Debug.Print lcRange.Address + Next + End If + Next + If Not lcRange Is Nothing Then + Set VisibleColumnsOld = lcRange + End If + + Set lcRange = Nothing + Set lcVisibleArea = Nothing + Set lcVisibleAreas = Nothing + Set lcArea = Nothing +End Function + +Private Sub VisibleRowsTest() + Const ThisProcedure As String = ThisModule & "|VisibleRowsTest|Sub" + Dim s As String + s = "a1:f3" +Debug.Print VisibleRows(Application.Union(Range("a1:a10"), Range("c20:c30"))).Address +End Sub +Public Function VisibleRows(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|VisibleRows|Function" + Dim lcArea As Excel.Range + Dim lcCell As Excel.Range + Dim lcRange As Excel.Range + Dim lcColumn1 As Excel.Range + + For Each lcArea In Range.Areas + For Each lcCell In lcArea.Resize(ColumnSize:=Lo1) + With lcCell + If Not .EntireRow.Hidden Then + Set lcColumn1 = Application.Cells(RowIndex:=.Row, ColumnIndex:=Lo1) + If lcRange Is Nothing Then + Set lcRange = lcColumn1 + Else + If Application.Intersect(Arg1:=lcRange, Arg2:=lcColumn1) Is Nothing Then + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcColumn1) + End If + End If + End If + End With + Next + Next + If Not lcRange Is Nothing Then + Set VisibleRows = lcRange.EntireRow + End If + + Set lcRange = Nothing + Set lcColumn1 = Nothing + Set lcCell = Nothing + Set lcArea = Nothing +End Function + +Public Function VisibleRowsOld2(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|VisibleRowsOld2|Function" + ' Hat nicht funktioniert, weil SpecialCells bei benutzerdefinierten Funktionen + ' nur den Original-Range zurückliefert und nicht die sichtbaren Zellen. + Dim lcArea As Excel.Range + Dim lcRange As Excel.Range + Dim lcVisibleArea As Excel.Range + Dim lcVisibleAreas As Excel.Range + + ' gibt die sichtbaren Zeilen zurück + ' wenn sich Ranges bzgl. Zeilen überlappen, sind die sich überlappenden + ' Zeilen im zurückgegebenen Range nur einmal enthalten + + For Each lcArea In Range.Areas + Set lcVisibleAreas = GetVisibleCellsOrNothing(Range:=lcArea) + 'Debug.Print lcVisibleAreas.Address + If Not lcVisibleAreas Is Nothing Then + For Each lcVisibleArea In lcVisibleAreas.Areas + If lcRange Is Nothing Then + Set lcRange = lcVisibleArea.EntireRow + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcVisibleArea.EntireRow) + End If + 'Debug.Print lcRange.Address + Next + End If + Next + If Not lcRange Is Nothing Then + Set VisibleRowsOld2 = lcRange + End If + + Set lcRange = Nothing + Set lcVisibleArea = Nothing + Set lcVisibleAreas = Nothing + Set lcArea = Nothing +End Function + +Private Sub VisibleRowsOldTest() + Const ThisProcedure As String = ThisModule & "|VisibleRowsOldTest|Sub" +Debug.Print VisibleRowsOld(Range("a29:a34")).Address +End Sub +Public Function VisibleRowsOld(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|VisibleRowsOld|Function" + Dim lcArea As Excel.Range + Dim lcCell As Excel.Range + Dim lcFirstCell As Excel.Range + Dim lcLastCell As Excel.Range + Dim lcRange As Excel.Range + + With Application + For Each lcCell In Range.Resize(ColumnSize:=Lo1) + If lcCell.EntireRow.Hidden Then + If Not lcFirstCell Is Nothing Then + Set lcArea = .Range(lcFirstCell, lcLastCell).EntireRow + 'Debug.Print lcFirstCell.Address, lcLastCell.Address, lcArea.Address + If lcRange Is Nothing Then + Set lcRange = lcArea + Else + Set lcRange = .Union(Arg1:=lcRange, Arg2:=lcArea) + End If + Set lcArea = Nothing + Set lcFirstCell = Nothing + Set lcLastCell = Nothing + End If + Else + If lcFirstCell Is Nothing Then + Set lcFirstCell = lcCell + End If + Set lcLastCell = lcCell + End If + Next + If Not lcFirstCell Is Nothing Then + Set lcArea = .Range(lcFirstCell, lcLastCell).EntireRow + 'Debug.Print lcFirstCell.Address, lcLastCell.Address, lcArea.Address + If lcRange Is Nothing Then + Set lcRange = lcArea + Else + Set lcRange = .Union(Arg1:=lcRange, Arg2:=lcArea) + End If + Set lcArea = Nothing + Set lcFirstCell = Nothing + Set lcLastCell = Nothing + End If + End With + Set VisibleRowsOld = lcRange + Set lcRange = Nothing +End Function + +Public Function CheckVarTypeBoolean(ReturnValue As Boolean _ + , Name As String _ + , Value As Variant _ + , Mandatory As Boolean _ + , Default As Boolean _ + ) As Variant + Const ThisProcedure As String = ThisModule & "|CheckVarTypeBoolean|Function" + + If VBA.IsMissing(ArgName:=Value) Then + If Mandatory Then + CheckVarTypeBoolean = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:=Name & " is missing" _ + ) + Exit Function + End If + ReturnValue = Default + Else + If VBA.VarType(VarName:=Value) <> VBA.VbVarType.vbBoolean Then + CheckVarTypeBoolean = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrValue _ + , Description:=Name & " must be Boolean" _ + ) + Exit Function + End If + ReturnValue = Value + End If + + Exit Function + +CatchError: + CheckVarTypeBoolean = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=VBA.Err.Description _ + ) +End Function + +Public Function CheckDoubleIsInteger(NameValue As tyNameValue) As Variant + Const ThisProcedure As String = ThisModule & "|CheckDoubleIsInteger|Function" + + With NameValue + If VBA.Int(.Value) <> .Value Then + RaiseParamIsNotInteger NameValue:=NameValue + End If + End With + +End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_9.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_9.txt new file mode 100644 index 0000000000..0f37492939 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_9.txt @@ -0,0 +1,150 @@ +Attribute VB_Name = "fnTypePri" +Option Explicit +'Option Private Module + +Private Const ThisModule As String = ThisProject & "|fnTypePri" + +Public Type tyArrayIndexValues + Count As Long + Values As Variant +End Type +Public Type tyAllArrayIndexValues + BooleanArray As tyArrayIndexValues + DateArray As tyArrayIndexValues + DoubleArray As tyArrayIndexValues + EmptyArray As tyArrayIndexValues + ErrorArray As tyArrayIndexValues + StringArray As tyArrayIndexValues +End Type + +Public Type tyAllDictionaries + BooleanDictionary As Scripting.Dictionary + DateDictionary As Scripting.Dictionary + DoubleDictionary As Scripting.Dictionary + EmptyDictionary As Scripting.Dictionary + ErrorDictionary As Scripting.Dictionary + StringDictionary As Scripting.Dictionary +End Type + +Public Type tyNameValue + Name As String + Value As Variant +End Type + +Public Type tyNamesVector + Count As Long + Names() As String +End Type + +Public Type tyNameRange + Name As String + Range As Excel.Range + Value As Variant +End Type + +Public Type tyStatFns + Min As Boolean + Avg As Boolean + wAvg As Boolean + Max As Boolean + DecimalPlacesNV As tyNameValue + ExcludeZerosNV As tyNameValue + NoDataHeaderNV As tyNameValue + NoFieldHeaderNV As tyNameValue +End Type + +Public Type tyParentItem + ParentNV As tyNameValue + ItemNV As tyNameValue +End Type + +Public Type tyParentItemList + Count As Long + PIs() As tyParentItem +End Type + +Public Type tyPivotFieldPivotItem + PivotField As Excel.PivotField + PivotItem As Excel.PivotItem +End Type + +Public Type tyPivotFieldPivotItemVector + Count As Long + Items() As tyPivotFieldPivotItem + LabelRange As Excel.Range +End Type + +Public Type tyPivotFieldPivotItemVectorAxes + DataRange As Excel.Range + RowAxis As tyPivotFieldPivotItemVector + ColumnAxis As tyPivotFieldPivotItemVector +End Type + +Public Type tyPivotFieldsVector + Count As Long + Items() As Excel.PivotField + ' PivotFields ist neu, falls es mal keine Felder gibt + ' ist ein Anker da, um auf die PivotTable zugreifen zu können + PivotFields As Excel.PivotFields + +End Type + +Public Type tyPivotItemArea + Area As Excel.Range + PivotItem As Excel.PivotItem +End Type + +Public Type tyPivotItemAreasVector + Count As Long + Items() As tyPivotItemArea +End Type + +Public Type tyPivotItemsVector + Count As Long + Items() As Excel.PivotItem + PivotFieldDataType As Excel.XlPivotFieldDataType +End Type + +Public Type tyPivotFilterParams + NoHeaderNV As tyNameValue + NoDataFieldNV As tyNameValue + NoTopBottomNV As tyNameValue + NoCaptionNV As tyNameValue + NoDateNV As tyNameValue + NoValueNV As tyNameValue +End Type + +Public Type tySeriesByStackType + Name As String + SeriesStackType As enSeriesStackType + SeriesDictionary As Scripting.Dictionary +End Type + +Public Type tyDateTimeItems + DateText As String + Spaces As String + TimeText As String +End Type + +'Public Type tyDateTimeItems +' DateDate As Date +' DateText As String +' DateTimeText As String +' Spaces As String +' TimeDate As Date +' TimeText As String +'End Type + +Public Type tyDateTimeRange + Key As String + FromDateTimeItems As tyDateTimeItems + ToDateTimeItems As tyDateTimeItems +End Type + +Public Type tyTimeItems + Hour As String + Minute As String + Second As String + AMPM As String +End Type + From 5df7a89edd01a9257ab651c34ed41763856ddfb4 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Fri, 4 Mar 2016 17:03:35 +0100 Subject: [PATCH 13/17] add preprocessor validity tests --- Rubberduck.Parsing/Grammar/VBA.g4 | 32 - Rubberduck.Parsing/Grammar/VBABaseListener.cs | 78 - Rubberduck.Parsing/Grammar/VBABaseVisitor.cs | 66 - Rubberduck.Parsing/Grammar/VBALexer.cs | 2017 +++-- Rubberduck.Parsing/Grammar/VBAListener.cs | 66 - Rubberduck.Parsing/Grammar/VBAParser.cs | 7042 ++++++++--------- Rubberduck.Parsing/Grammar/VBAVisitor.cs | 42 - .../ConditionalCompilationIfExpression.cs | 2 +- .../Preprocessing/OptionCompareParser.cs | 29 + .../Preprocessing/VBAPreprocessor.cs | 25 +- Rubberduck.Parsing/Rubberduck.Parsing.csproj | 1 + Rubberduck.Parsing/VBA/RubberduckParser.cs | 6 +- .../VBA/RubberduckParserState.cs | 5 + .../Grammar/VBAParserValidityTests.cs | 44 +- .../Preprocessing/VBAPreprocessorTests.cs | 66 + RubberduckTests/RubberduckTests.csproj | 38 +- .../Testfiles/Grammar/Reference_Module_11.txt | 821 +- .../Testfiles/Grammar/Reference_Module_12.txt | 1020 +-- .../Testfiles/Grammar/Reference_Module_13.txt | 165 +- .../Testfiles/Grammar/Reference_Module_14.txt | 241 +- .../Testfiles/Grammar/Reference_Module_15.txt | 166 +- .../Testfiles/Grammar/Reference_Module_16.txt | 187 +- .../Testfiles/Grammar/Reference_Module_17.txt | 388 +- .../Testfiles/Grammar/Reference_Module_18.txt | 187 +- .../Testfiles/Grammar/Reference_Module_19.txt | 178 - .../Testfiles/Grammar/Reference_Module_20.txt | 272 - .../Testfiles/Grammar/Reference_Module_21.txt | 67 - .../Preprocessor/Reference_Module_1.txt | 61 + .../Reference_Module_1_Processed.txt | 61 + .../Preprocessor/Reference_Module_2.txt | 767 ++ .../Reference_Module_2_Processed.txt | 767 ++ .../Preprocessor/Reference_Module_3.txt | 981 +++ .../Reference_Module_3_Processed.txt | 981 +++ .../Preprocessor/Reference_Module_4.txt | 28 + .../Reference_Module_4_Processed.txt | 28 + 35 files changed, 8996 insertions(+), 7929 deletions(-) create mode 100644 Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs create mode 100644 RubberduckTests/Preprocessing/VBAPreprocessorTests.cs delete mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt delete mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt delete mode 100644 RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_2.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_2_Processed.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_3.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_3_Processed.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_4.txt create mode 100644 RubberduckTests/Testfiles/Preprocessor/Reference_Module_4_Processed.txt diff --git a/Rubberduck.Parsing/Grammar/VBA.g4 b/Rubberduck.Parsing/Grammar/VBA.g4 index 84f24e9856..1dfb68aad4 100644 --- a/Rubberduck.Parsing/Grammar/VBA.g4 +++ b/Rubberduck.Parsing/Grammar/VBA.g4 @@ -66,12 +66,6 @@ moduleDeclarationsElement : | variableStmt | moduleOption | typeStmt - | macroStmt -; - -macroStmt : - macroConstStmt - | macroIfThenElseStmt ; moduleBody : @@ -83,7 +77,6 @@ moduleBodyElement : | propertySetStmt | propertyLetStmt | subStmt - | macroStmt ; @@ -126,7 +119,6 @@ blockStmt : | loadStmt | lockStmt | lsetStmt - | macroStmt | midStmt | mkdirStmt | nameStmt @@ -291,25 +283,6 @@ lockStmt : LOCK WS valueStmt (WS? ',' WS? valueStmt (WS TO WS valueStmt)?)?; lsetStmt : LSET WS implicitCallStmt_InStmt WS? EQ WS? valueStmt; -macroConstStmt : MACRO_CONST WS? ambiguousIdentifier WS? EQ WS? valueStmt; - -macroIfThenElseStmt : macroIfBlockStmt macroElseIfBlockStmt* macroElseBlockStmt? MACRO_END_IF; - -macroIfBlockStmt : - MACRO_IF WS? ifConditionStmt WS THEN endOfStatement - (moduleDeclarations | moduleBody | block)* -; - -macroElseIfBlockStmt : - MACRO_ELSEIF WS? ifConditionStmt WS THEN endOfStatement - (moduleDeclarations | moduleBody | block)* -; - -macroElseBlockStmt : - MACRO_ELSE endOfStatement - (moduleDeclarations | moduleBody | block)* -; - midStmt : MID WS? LPAREN WS? argsCall WS? RPAREN; mkdirStmt : MKDIR WS valueStmt; @@ -726,11 +699,6 @@ LOCK_READ : L O C K WS R E A D; LOCK_WRITE : L O C K WS W R I T E; LOCK_READ_WRITE : L O C K WS R E A D WS W R I T E; LSET : L S E T; -MACRO_CONST : '#' C O N S T; -MACRO_IF : '#' I F; -MACRO_ELSEIF : '#' E L S E I F; -MACRO_ELSE : '#' E L S E; -MACRO_END_IF : '#' E N D WS? I F; ME : M E; MID : M I D; MKDIR : M K D I R; diff --git a/Rubberduck.Parsing/Grammar/VBABaseListener.cs b/Rubberduck.Parsing/Grammar/VBABaseListener.cs index 6f2ea71d28..f43d8e3dc4 100644 --- a/Rubberduck.Parsing/Grammar/VBABaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBABaseListener.cs @@ -1203,19 +1203,6 @@ public virtual void EnterForEachStmt([NotNull] VBAParser.ForEachStmtContext cont /// The parse tree. public virtual void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1528,19 +1515,6 @@ public virtual void EnterVariableStmt([NotNull] VBAParser.VariableStmtContext co /// The parse tree. public virtual void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1645,19 +1619,6 @@ public virtual void EnterFunctionStmt([NotNull] VBAParser.FunctionStmtContext co /// The parse tree. public virtual void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2022,19 +1983,6 @@ public virtual void EnterVariableListStmt([NotNull] VBAParser.VariableListStmtCo /// The parse tree. public virtual void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2100,19 +2048,6 @@ public virtual void EnterMidStmt([NotNull] VBAParser.MidStmtContext context) { } /// The parse tree. public virtual void ExitMidStmt([NotNull] VBAParser.MidStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2282,19 +2217,6 @@ public virtual void EnterModuleBodyElement([NotNull] VBAParser.ModuleBodyElement /// The parse tree. public virtual void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMacroStmt([NotNull] VBAParser.MacroStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMacroStmt([NotNull] VBAParser.MacroStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs index 29e77377ad..02244c60fb 100644 --- a/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBABaseVisitor.cs @@ -1022,17 +1022,6 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1297,17 +1286,6 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1396,17 +1374,6 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1715,17 +1682,6 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1781,17 +1737,6 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1935,17 +1880,6 @@ public partial class VBABaseVisitor : AbstractParseTreeVisitor, /// The visitor result. public virtual Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMacroStmt([NotNull] VBAParser.MacroStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBALexer.cs b/Rubberduck.Parsing/Grammar/VBALexer.cs index faa6c01115..e732cb6807 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -41,30 +41,29 @@ public const int FRIEND=76, FOR=77, FUNCTION=78, GET=79, GLOBAL=80, GOSUB=81, GOTO=82, IF=83, IMP=84, IMPLEMENTS=85, IN=86, INPUT=87, IS=88, INTEGER=89, KILL=90, LOAD=91, LOCK=92, LONG=93, LOOP=94, LEN=95, LET=96, LIB=97, LIKE=98, LINE_INPUT=99, - LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, MACRO_CONST=104, - MACRO_IF=105, MACRO_ELSEIF=106, MACRO_ELSE=107, MACRO_END_IF=108, ME=109, - MID=110, MKDIR=111, MOD=112, NAME=113, NEXT=114, NEW=115, NOT=116, NOTHING=117, - NULL=118, ON=119, ON_ERROR=120, ON_LOCAL_ERROR=121, OPEN=122, OPTIONAL=123, - OPTION_BASE=124, OPTION_EXPLICIT=125, OPTION_COMPARE=126, OPTION_PRIVATE_MODULE=127, - OR=128, OUTPUT=129, PARAMARRAY=130, PRESERVE=131, PRINT=132, PRIVATE=133, - PROPERTY_GET=134, PROPERTY_LET=135, PROPERTY_SET=136, PTRSAFE=137, PUBLIC=138, - PUT=139, RANDOM=140, RANDOMIZE=141, RAISEEVENT=142, READ=143, READ_WRITE=144, - REDIM=145, REM=146, RESET=147, RESUME=148, RETURN=149, RMDIR=150, RSET=151, - SAVEPICTURE=152, SAVESETTING=153, SEEK=154, SELECT=155, SENDKEYS=156, - SET=157, SETATTR=158, SHARED=159, SINGLE=160, SPC=161, STATIC=162, STEP=163, - STOP=164, STRING=165, SUB=166, TAB=167, TEXT=168, THEN=169, TIME=170, - TO=171, TRUE=172, TYPE=173, TYPEOF=174, UNLOAD=175, UNLOCK=176, UNTIL=177, - VARIANT=178, VERSION=179, WEND=180, WHILE=181, WIDTH=182, WITH=183, WITHEVENTS=184, - WRITE=185, XOR=186, AMPERSAND=187, ASSIGN=188, DIV=189, INTDIV=190, EQ=191, - GEQ=192, GT=193, LEQ=194, LPAREN=195, LT=196, MINUS=197, MULT=198, NEQ=199, - PLUS=200, POW=201, RPAREN=202, L_SQUARE_BRACKET=203, R_SQUARE_BRACKET=204, - STRINGLITERAL=205, OCTLITERAL=206, HEXLITERAL=207, SHORTLITERAL=208, INTEGERLITERAL=209, - DOUBLELITERAL=210, DATELITERAL=211, JANUARY=212, FEBRUARY=213, MARCH=214, - APRIL=215, MAY=216, JUNE=217, JULY=218, AUGUST=219, SEPTEMBER=220, OCTOBER=221, - NOVEMBER=222, DECEMBER=223, JAN=224, FEB=225, MAR=226, APR=227, JUN=228, - JUL=229, AUG=230, SEP=231, OCT=232, NOV=233, DEC=234, LINE_CONTINUATION=235, - NEWLINE=236, REMCOMMENT=237, COMMENT=238, SINGLEQUOTE=239, COLON=240, - UNDERSCORE=241, WS=242, IDENTIFIER=243; + LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, ME=104, + MID=105, MKDIR=106, MOD=107, NAME=108, NEXT=109, NEW=110, NOT=111, NOTHING=112, + NULL=113, ON=114, ON_ERROR=115, ON_LOCAL_ERROR=116, OPEN=117, OPTIONAL=118, + OPTION_BASE=119, OPTION_EXPLICIT=120, OPTION_COMPARE=121, OPTION_PRIVATE_MODULE=122, + OR=123, OUTPUT=124, PARAMARRAY=125, PRESERVE=126, PRINT=127, PRIVATE=128, + PROPERTY_GET=129, PROPERTY_LET=130, PROPERTY_SET=131, PTRSAFE=132, PUBLIC=133, + PUT=134, RANDOM=135, RANDOMIZE=136, RAISEEVENT=137, READ=138, READ_WRITE=139, + REDIM=140, REM=141, RESET=142, RESUME=143, RETURN=144, RMDIR=145, RSET=146, + SAVEPICTURE=147, SAVESETTING=148, SEEK=149, SELECT=150, SENDKEYS=151, + SET=152, SETATTR=153, SHARED=154, SINGLE=155, SPC=156, STATIC=157, STEP=158, + STOP=159, STRING=160, SUB=161, TAB=162, TEXT=163, THEN=164, TIME=165, + TO=166, TRUE=167, TYPE=168, TYPEOF=169, UNLOAD=170, UNLOCK=171, UNTIL=172, + VARIANT=173, VERSION=174, WEND=175, WHILE=176, WIDTH=177, WITH=178, WITHEVENTS=179, + WRITE=180, XOR=181, AMPERSAND=182, ASSIGN=183, DIV=184, INTDIV=185, EQ=186, + GEQ=187, GT=188, LEQ=189, LPAREN=190, LT=191, MINUS=192, MULT=193, NEQ=194, + PLUS=195, POW=196, RPAREN=197, L_SQUARE_BRACKET=198, R_SQUARE_BRACKET=199, + STRINGLITERAL=200, OCTLITERAL=201, HEXLITERAL=202, SHORTLITERAL=203, INTEGERLITERAL=204, + DOUBLELITERAL=205, DATELITERAL=206, JANUARY=207, FEBRUARY=208, MARCH=209, + APRIL=210, MAY=211, JUNE=212, JULY=213, AUGUST=214, SEPTEMBER=215, OCTOBER=216, + NOVEMBER=217, DECEMBER=218, JAN=219, FEB=220, MAR=221, APR=222, JUN=223, + JUL=224, AUG=225, SEP=226, OCT=227, NOV=228, DEC=229, LINE_CONTINUATION=230, + NEWLINE=231, REMCOMMENT=232, COMMENT=233, SINGLEQUOTE=234, COLON=235, + UNDERSCORE=236, WS=237, IDENTIFIER=238; public static string[] modeNames = { "DEFAULT_MODE" }; @@ -103,8 +102,7 @@ public const int "'\\u00DB'", "'\\u00DC'", "'\\u00DD'", "'\\u00DE'", "'\\u00DF'", "'\\u00E0'", "'\\u00E1'", "'\\u00E2'", "'\\u00E3'", "'\\u00E4'", "'\\u00E5'", "'\\u00E6'", "'\\u00E7'", "'\\u00E8'", "'\\u00E9'", "'\\u00EA'", "'\\u00EB'", "'\\u00EC'", - "'\\u00ED'", "'\\u00EE'", "'\\u00EF'", "'\\u00F0'", "'\\u00F1'", "'\\u00F2'", - "'\\u00F3'" + "'\\u00ED'", "'\\u00EE'" }; public static readonly string[] ruleNames = { "T__7", "T__6", "T__5", "T__4", "T__3", "T__2", "T__1", "T__0", "ACCESS", @@ -120,31 +118,30 @@ public const int "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_CONST", "MACRO_IF", "MACRO_ELSEIF", - "MACRO_ELSE", "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", - "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", - "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", - "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", - "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", - "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", - "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", - "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", - "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", - "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", - "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "AMPERSAND", - "ASSIGN", "DIV", "INTDIV", "EQ", "GEQ", "GT", "LEQ", "LPAREN", "LT", "MINUS", - "MULT", "NEQ", "PLUS", "POW", "RPAREN", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", - "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", - "DOUBLELITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", "DATEVALUEPART", - "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", - "TIMEVALUE", "TIMESEPARATOR", "AMPM", "JANUARY", "FEBRUARY", "MARCH", - "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", - "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", - "NOV", "DEC", "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", - "SINGLEQUOTE", "COLON", "UNDERSCORE", "WS", "IDENTIFIER", "LETTER", "DIGIT", - "LETTERORDIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", - "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", - "Z" + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", + "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", + "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", + "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", + "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", + "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", + "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", + "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", + "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", + "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", + "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", + "WRITE", "XOR", "AMPERSAND", "ASSIGN", "DIV", "INTDIV", "EQ", "GEQ", "GT", + "LEQ", "LPAREN", "LT", "MINUS", "MULT", "NEQ", "PLUS", "POW", "RPAREN", + "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", "OCTLITERAL", + "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", + "DATEORTIME", "DATEVALUE", "DATEVALUEPART", "DATESEPARATOR", "MONTHNAME", + "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", "TIMEVALUE", "TIMESEPARATOR", + "AMPM", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", + "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", + "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "LINE_CONTINUATION", + "NEWLINE", "REMCOMMENT", "COMMENT", "SINGLEQUOTE", "COLON", "UNDERSCORE", + "WS", "IDENTIFIER", "LETTER", "DIGIT", "LETTERORDIGIT", "A", "B", "C", + "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", + "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; @@ -165,7 +162,7 @@ public VBALexer(ICharStream input) public override string SerializedAtn { get { return _serializedATN; } } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF5\x91F\b\x1\x4"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF0\x8F2\b\x1\x4"+ "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b"+ "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4"+ "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15"+ @@ -210,26 +207,25 @@ public VBALexer(ICharStream input) "\x105\t\x105\x4\x106\t\x106\x4\x107\t\x107\x4\x108\t\x108\x4\x109\t\x109"+ "\x4\x10A\t\x10A\x4\x10B\t\x10B\x4\x10C\t\x10C\x4\x10D\t\x10D\x4\x10E\t"+ "\x10E\x4\x10F\t\x10F\x4\x110\t\x110\x4\x111\t\x111\x4\x112\t\x112\x4\x113"+ - "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x4\x116\t\x116\x4\x117\t\x117\x4"+ - "\x118\t\x118\x4\x119\t\x119\x4\x11A\t\x11A\x4\x11B\t\x11B\x3\x2\x3\x2"+ - "\x3\x3\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3"+ - "\t\x3\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3"+ - "\v\x3\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3"+ - "\r\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10"+ - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12"+ - "\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13"+ - "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15"+ - "\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16"+ - "\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18"+ - "\x3\x18\x3\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A"+ - "\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C"+ - "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D"+ - "\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F"+ - "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3"+ - " \x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3"+ - "\"\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3"+ - "$\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'"+ + "\t\x113\x4\x114\t\x114\x4\x115\t\x115\x4\x116\t\x116\x3\x2\x3\x2\x3\x3"+ + "\x3\x3\x3\x4\x3\x4\x3\x5\x3\x5\x3\x6\x3\x6\x3\a\x3\a\x3\b\x3\b\x3\t\x3"+ + "\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3"+ + "\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3"+ + "\xE\x3\xE\x3\xE\x3\xE\x3\xE\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\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3"+ + "\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x12\x3"+ + "\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3"+ + "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3"+ + "\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3"+ + "\x18\x3\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A\x3"+ + "\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3"+ + "\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3"+ + "\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3"+ + "\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3"+ + " \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\""+ + "\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$"+ + "\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3\'"+ "\x3\'\x3\'\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x3)\x3)\x3"+ ")\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x3+\x3+"+ "\x3+\x3,\x3,\x3,\x3,\x3,\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x3.\x3.\x3"+ @@ -263,955 +259,934 @@ public VBALexer(ICharStream input) "\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3\x65\x3"+ "\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3"+ "\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3"+ - "g\x3g\x3g\x3g\x3h\x3h\x3h\x3h\x3h\x3i\x3i\x3i\x3i\x3i\x3i\x3i\x3j\x3j"+ - "\x3j\x3j\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3l\x3l\x3m\x3"+ - "m\x3m\x3m\x3m\x5m\x503\nm\x3m\x3m\x3m\x3n\x3n\x3n\x3o\x3o\x3o\x3o\x3p"+ - "\x3p\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3r\x3r\x3r\x3r\x3r\x3s\x3s\x3s\x3"+ - "s\x3s\x3t\x3t\x3t\x3t\x3u\x3u\x3u\x3u\x3v\x3v\x3v\x3v\x3v\x3v\x3v\x3v"+ - "\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3"+ - "z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3{\x3{\x3{"+ - "\x3{\x3{\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3"+ - "}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~"+ - "\x3~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F"+ - "\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80"+ - "\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80"+ - "\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x81"+ - "\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x83"+ - "\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83"+ - "\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x85"+ - "\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86"+ - "\x3\x86\x3\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87"+ - "\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88"+ - "\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x88\x3\x89"+ - "\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89"+ - "\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A"+ - "\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8C"+ - "\x3\x8C\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E"+ - "\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F"+ - "\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90"+ - "\x3\x90\x3\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91"+ - "\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92"+ - "\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94"+ - "\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96"+ - "\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97"+ - "\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99"+ - "\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A"+ - "\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A"+ - "\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C"+ - "\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D"+ - "\x3\x9D\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F"+ - "\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0"+ - "\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA2\x3\xA2\x3\xA2"+ - "\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4"+ - "\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA6\x3\xA6"+ - "\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA8"+ - "\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA"+ - "\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC"+ - "\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE"+ - "\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xB0\x3\xB0"+ - "\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1"+ - "\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3"+ - "\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4"+ - "\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6"+ - "\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB7\x3\xB7\x3\xB7"+ - "\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xB9\x3\xB9"+ - "\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xBA\x3\xBA\x3\xBA"+ - "\x3\xBA\x3\xBA\x3\xBA\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBD"+ - "\x3\xBD\x3\xBD\x3\xBE\x3\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC1\x3\xC1"+ - "\x3\xC1\x3\xC2\x3\xC2\x3\xC3\x3\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5"+ - "\x3\xC6\x3\xC6\x3\xC7\x3\xC7\x3\xC8\x3\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xCA"+ - "\x3\xCA\x3\xCB\x3\xCB\x3\xCC\x3\xCC\x3\xCD\x3\xCD\x3\xCE\x3\xCE\x3\xCE"+ - "\x3\xCE\a\xCE\x766\n\xCE\f\xCE\xE\xCE\x769\v\xCE\x3\xCE\x3\xCE\x3\xCF"+ - "\x3\xCF\x3\xCF\x3\xCF\x6\xCF\x771\n\xCF\r\xCF\xE\xCF\x772\x3\xCF\x5\xCF"+ - "\x776\n\xCF\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x6\xD0\x77C\n\xD0\r\xD0\xE\xD0"+ - "\x77D\x3\xD0\x5\xD0\x781\n\xD0\x3\xD1\x3\xD1\x5\xD1\x785\n\xD1\x3\xD1"+ - "\x6\xD1\x788\n\xD1\r\xD1\xE\xD1\x789\x3\xD1\x5\xD1\x78D\n\xD1\x3\xD2\x3"+ - "\xD2\x3\xD2\x3\xD2\x5\xD2\x793\n\xD2\x3\xD3\x3\xD3\x5\xD3\x797\n\xD3\x3"+ - "\xD3\a\xD3\x79A\n\xD3\f\xD3\xE\xD3\x79D\v\xD3\x3\xD3\x3\xD3\x6\xD3\x7A1"+ - "\n\xD3\r\xD3\xE\xD3\x7A2\x3\xD3\x3\xD3\x3\xD3\x5\xD3\x7A8\n\xD3\x3\xD4"+ - "\x3\xD4\x3\xD4\x3\xD4\x3\xD5\x3\xD5\x5\xD5\x7B0\n\xD5\x3\xD5\x3\xD5\x3"+ - "\xD5\x3\xD5\x5\xD5\x7B6\n\xD5\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6"+ - "\x5\xD6\x7BE\n\xD6\x3\xD7\x6\xD7\x7C1\n\xD7\r\xD7\xE\xD7\x7C2\x3\xD7\x5"+ - "\xD7\x7C6\n\xD7\x3\xD8\x5\xD8\x7C9\n\xD8\x3\xD8\x5\xD8\x7CC\n\xD8\x3\xD8"+ - "\x5\xD8\x7CF\n\xD8\x3\xD9\x3\xD9\x5\xD9\x7D3\n\xD9\x3\xDA\x3\xDA\x3\xDA"+ - "\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x5\xDA"+ - "\x7E1\n\xDA\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3"+ - "\xDB\x3\xDB\x3\xDB\x5\xDB\x7EE\n\xDB\x3\xDC\x6\xDC\x7F1\n\xDC\r\xDC\xE"+ - "\xDC\x7F2\x3\xDC\x3\xDC\x3\xDC\x6\xDC\x7F8\n\xDC\r\xDC\xE\xDC\x7F9\x3"+ - "\xDC\x3\xDC\x6\xDC\x7FE\n\xDC\r\xDC\xE\xDC\x7FF\x3\xDC\x3\xDC\x6\xDC\x804"+ - "\n\xDC\r\xDC\xE\xDC\x805\x5\xDC\x808\n\xDC\x3\xDC\x5\xDC\x80B\n\xDC\x5"+ - "\xDC\x80D\n\xDC\x3\xDD\x5\xDD\x810\n\xDD\x3\xDD\x3\xDD\x5\xDD\x814\n\xDD"+ - "\x3\xDE\x5\xDE\x817\n\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3"+ - "\xDE\x3\xDE\x5\xDE\x821\n\xDE\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF"+ - "\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0\x3\xE0"+ - "\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3\xE2"+ - "\x3\xE2\x3\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4"+ - "\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3\xE6\x3\xE6"+ - "\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE7"+ - "\x3\xE7\x3\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE8"+ - "\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x3\xE9"+ - "\x3\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEA"+ - "\x3\xEB\x3\xEB\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED"+ - "\x3\xED\x3\xED\x3\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF"+ - "\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF1\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x3\xF2"+ - "\x3\xF2\x3\xF2\x3\xF3\x3\xF3\x3\xF3\x3\xF3\x3\xF4\x3\xF4\x3\xF4\x3\xF4"+ - "\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF6\x6\xF6\x8A6\n\xF6\r\xF6\xE\xF6\x8A7"+ - "\x3\xF6\x3\xF6\x5\xF6\x8AC\n\xF6\x3\xF6\x3\xF6\x3\xF6\x3\xF6\x3\xF7\x6"+ - "\xF7\x8B3\n\xF7\r\xF7\xE\xF7\x8B4\x3\xF8\x5\xF8\x8B8\n\xF8\x3\xF8\x3\xF8"+ - "\x3\xF8\x3\xF8\a\xF8\x8BE\n\xF8\f\xF8\xE\xF8\x8C1\v\xF8\x3\xF9\x3\xF9"+ - "\x3\xF9\a\xF9\x8C6\n\xF9\f\xF9\xE\xF9\x8C9\v\xF9\x3\xFA\x3\xFA\x3\xFB"+ - "\x3\xFB\x3\xFC\x3\xFC\x3\xFD\x3\xFD\x6\xFD\x8D3\n\xFD\r\xFD\xE\xFD\x8D4"+ - "\x3\xFE\x6\xFE\x8D8\n\xFE\r\xFE\xE\xFE\x8D9\x3\xFE\x3\xFE\x6\xFE\x8DE"+ - "\n\xFE\r\xFE\xE\xFE\x8DF\x3\xFE\x3\xFE\x5\xFE\x8E4\n\xFE\x3\xFF\x3\xFF"+ - "\x3\x100\x3\x100\x3\x101\x3\x101\x3\x102\x3\x102\x3\x103\x3\x103\x3\x104"+ - "\x3\x104\x3\x105\x3\x105\x3\x106\x3\x106\x3\x107\x3\x107\x3\x108\x3\x108"+ - "\x3\x109\x3\x109\x3\x10A\x3\x10A\x3\x10B\x3\x10B\x3\x10C\x3\x10C\x3\x10D"+ - "\x3\x10D\x3\x10E\x3\x10E\x3\x10F\x3\x10F\x3\x110\x3\x110\x3\x111\x3\x111"+ - "\x3\x112\x3\x112\x3\x113\x3\x113\x3\x114\x3\x114\x3\x115\x3\x115\x3\x116"+ - "\x3\x116\x3\x117\x3\x117\x3\x118\x3\x118\x3\x119\x3\x119\x3\x11A\x3\x11A"+ - "\x3\x11B\x3\x11B\x2\x2\x2\x11C\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2"+ - "\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE\x1B\x2"+ - "\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2\x16+\x2"+ - "\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D\x39\x2"+ - "\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2%I\x2&K\x2\'M\x2(O"+ - "\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31\x61\x2\x32\x63\x2\x33"+ - "\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43\x85\x2\x44\x87\x2\x45"+ - "\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93\x2K\x95\x2L\x97\x2M\x99"+ - "\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5\x2T\xA7\x2U\xA9\x2V\xAB"+ - "\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\\xB7\x2]\xB9\x2^\xBB\x2_"+ - "\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5\x2\x64\xC7\x2\x65\xC9\x2"+ - "\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k\xD5\x2l\xD7\x2m\xD9\x2n\xDB"+ - "\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2t\xE7\x2u\xE9\x2v\xEB\x2w\xED"+ - "\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2"+ - "\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83\x105\x2\x84\x107\x2\x85\x109\x2"+ - "\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89\x111\x2\x8A\x113\x2\x8B\x115"+ - "\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F\x11D\x2\x90\x11F\x2\x91\x121"+ - "\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95\x129\x2\x96\x12B\x2\x97\x12D"+ - "\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B\x135\x2\x9C\x137\x2\x9D\x139"+ - "\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1\x141\x2\xA2\x143\x2\xA3\x145"+ - "\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7\x14D\x2\xA8\x14F\x2\xA9\x151"+ - "\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD\x159\x2\xAE\x15B\x2\xAF\x15D"+ - "\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3\x165\x2\xB4\x167\x2\xB5\x169"+ - "\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9\x171\x2\xBA\x173\x2\xBB\x175"+ - "\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF\x17D\x2\xC0\x17F\x2\xC1\x181"+ - "\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5\x189\x2\xC6\x18B\x2\xC7\x18D"+ - "\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB\x195\x2\xCC\x197\x2\xCD\x199"+ - "\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\xD1\x1A1\x2\xD2\x1A3\x2\xD3\x1A5"+ - "\x2\xD4\x1A7\x2\xD5\x1A9\x2\x2\x1AB\x2\x2\x1AD\x2\x2\x1AF\x2\x2\x1B1\x2"+ - "\x2\x1B3\x2\x2\x1B5\x2\x2\x1B7\x2\x2\x1B9\x2\x2\x1BB\x2\x2\x1BD\x2\xD6"+ - "\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC"+ - "\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1\x2\xE0\x1D3\x2\xE1\x1D5\x2\xE2"+ - "\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD\x2\xE6\x1DF\x2\xE7\x1E1\x2\xE8"+ - "\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9\x2\xEC\x1EB\x2\xED\x1ED\x2\xEE"+ - "\x1EF\x2\xEF\x1F1\x2\xF0\x1F3\x2\xF1\x1F5\x2\xF2\x1F7\x2\xF3\x1F9\x2\xF4"+ - "\x1FB\x2\xF5\x1FD\x2\x2\x1FF\x2\x2\x201\x2\x2\x203\x2\x2\x205\x2\x2\x207"+ - "\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2\x20F\x2\x2\x211\x2\x2\x213\x2"+ - "\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B\x2\x2\x21D\x2\x2\x21F\x2\x2"+ - "\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227\x2\x2\x229\x2\x2\x22B\x2\x2\x22D"+ - "\x2\x2\x22F\x2\x2\x231\x2\x2\x233\x2\x2\x235\x2\x2\x3\x2)\x5\x2\f\f\xF"+ - "\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4"+ - "\x2\x30\x30<<\x4\x2\v\v\"\"\x5\x2\f\f\xF\xF\x202A\x202B\v\x2\v\f\xF\xF"+ - "\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\v\x2\x43\\\x61\x61\x63"+ - "|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x3\x2\x32;\f\x2\x32"+ - ";\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x4"+ - "\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2"+ - "\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4"+ - "\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4"+ - "\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4"+ - "\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x941\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2"+ - "\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2"+ - "\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2"+ - "\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3"+ - "\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2"+ - "\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2"+ - "\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2"+ - "\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2"+ - "\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2"+ - "\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2"+ - "\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3"+ - "\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2"+ - "\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2"+ - "\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2"+ - "\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3"+ - "\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3"+ - "\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2"+ - "\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2"+ - "\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3"+ - "\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2"+ - "\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2"+ - "\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3"+ - "\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2"+ - "\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2"+ - "\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3"+ - "\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2"+ - "\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2"+ - "\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3"+ - "\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2\x2\x2\x2"+ - "\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7\x3\x2\x2"+ - "\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2\x2\xEF\x3"+ - "\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2\x2\x2\x2"+ - "\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD\x3\x2\x2"+ - "\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2\x2\x105"+ - "\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3\x2\x2"+ - "\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2\x2\x113"+ - "\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3\x2\x2"+ - "\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2\x2\x121"+ - "\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3\x2\x2"+ - "\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2\x2\x12F"+ - "\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3\x2\x2"+ - "\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2\x2\x13D"+ - "\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3\x2\x2"+ - "\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2\x2\x14B"+ - "\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3\x2\x2"+ - "\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2\x2\x159"+ - "\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3\x2\x2"+ - "\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2\x2\x167"+ - "\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3\x2\x2"+ - "\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2\x2\x175"+ - "\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3\x2\x2"+ - "\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2\x2\x183"+ - "\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3\x2\x2"+ - "\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2\x2\x191"+ - "\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3\x2\x2"+ - "\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x19D\x3\x2\x2\x2\x2\x19F"+ - "\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2\x1A3\x3\x2\x2\x2\x2\x1A5\x3\x2\x2"+ - "\x2\x2\x1A7\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2\x2\x1C1"+ - "\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3\x2\x2"+ - "\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2\x1CF"+ - "\x3\x2\x2\x2\x2\x1D1\x3\x2\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3\x2\x2"+ - "\x2\x2\x1D7\x3\x2\x2\x2\x2\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2\x2\x1DD"+ - "\x3\x2\x2\x2\x2\x1DF\x3\x2\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3\x2\x2"+ - "\x2\x2\x1E5\x3\x2\x2\x2\x2\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2\x2\x1EB"+ - "\x3\x2\x2\x2\x2\x1ED\x3\x2\x2\x2\x2\x1EF\x3\x2\x2\x2\x2\x1F1\x3\x2\x2"+ - "\x2\x2\x1F3\x3\x2\x2\x2\x2\x1F5\x3\x2\x2\x2\x2\x1F7\x3\x2\x2\x2\x2\x1F9"+ - "\x3\x2\x2\x2\x2\x1FB\x3\x2\x2\x2\x3\x237\x3\x2\x2\x2\x5\x239\x3\x2\x2"+ - "\x2\a\x23B\x3\x2\x2\x2\t\x23D\x3\x2\x2\x2\v\x23F\x3\x2\x2\x2\r\x241\x3"+ - "\x2\x2\x2\xF\x243\x3\x2\x2\x2\x11\x245\x3\x2\x2\x2\x13\x247\x3\x2\x2\x2"+ - "\x15\x24E\x3\x2\x2\x2\x17\x258\x3\x2\x2\x2\x19\x25E\x3\x2\x2\x2\x1B\x262"+ - "\x3\x2\x2\x2\x1D\x26C\x3\x2\x2\x2\x1F\x278\x3\x2\x2\x2!\x27F\x3\x2\x2"+ - "\x2#\x282\x3\x2\x2\x2%\x288\x3\x2\x2\x2\'\x28D\x3\x2\x2\x2)\x294\x3\x2"+ - "\x2\x2+\x29C\x3\x2\x2\x2-\x2A2\x3\x2\x2\x2/\x2A8\x3\x2\x2\x2\x31\x2AD"+ - "\x3\x2\x2\x2\x33\x2B2\x3\x2\x2\x2\x35\x2B7\x3\x2\x2\x2\x37\x2BD\x3\x2"+ - "\x2\x2\x39\x2C5\x3\x2\x2\x2;\x2CB\x3\x2\x2\x2=\x2D1\x3\x2\x2\x2?\x2DC"+ - "\x3\x2\x2\x2\x41\x2E2\x3\x2\x2\x2\x43\x2EB\x3\x2\x2\x2\x45\x2F0\x3\x2"+ - "\x2\x2G\x2F8\x3\x2\x2\x2I\x300\x3\x2\x2\x2K\x308\x3\x2\x2\x2M\x310\x3"+ - "\x2\x2\x2O\x317\x3\x2\x2\x2Q\x31E\x3\x2\x2\x2S\x325\x3\x2\x2\x2U\x32C"+ - "\x3\x2\x2\x2W\x333\x3\x2\x2\x2Y\x33A\x3\x2\x2\x2[\x341\x3\x2\x2\x2]\x348"+ - "\x3\x2\x2\x2_\x34F\x3\x2\x2\x2\x61\x35D\x3\x2\x2\x2\x63\x361\x3\x2\x2"+ - "\x2\x65\x364\x3\x2\x2\x2g\x36B\x3\x2\x2\x2i\x370\x3\x2\x2\x2k\x375\x3"+ - "\x2\x2\x2m\x37C\x3\x2\x2\x2o\x382\x3\x2\x2\x2q\x38B\x3\x2\x2\x2s\x398"+ - "\x3\x2\x2\x2u\x39F\x3\x2\x2\x2w\x3AC\x3\x2\x2\x2y\x3B7\x3\x2\x2\x2{\x3BF"+ - "\x3\x2\x2\x2}\x3C8\x3\x2\x2\x2\x7F\x3D1\x3\x2\x2\x2\x81\x3D5\x3\x2\x2"+ - "\x2\x83\x3DA\x3\x2\x2\x2\x85\x3DE\x3\x2\x2\x2\x87\x3E4\x3\x2\x2\x2\x89"+ - "\x3EA\x3\x2\x2\x2\x8B\x3F0\x3\x2\x2\x2\x8D\x3F8\x3\x2\x2\x2\x8F\x401\x3"+ - "\x2\x2\x2\x91\x40F\x3\x2\x2\x2\x93\x41D\x3\x2\x2\x2\x95\x426\x3\x2\x2"+ - "\x2\x97\x42C\x3\x2\x2\x2\x99\x435\x3\x2\x2\x2\x9B\x43C\x3\x2\x2\x2\x9D"+ - "\x440\x3\x2\x2\x2\x9F\x449\x3\x2\x2\x2\xA1\x44D\x3\x2\x2\x2\xA3\x454\x3"+ - "\x2\x2\x2\xA5\x45A\x3\x2\x2\x2\xA7\x45F\x3\x2\x2\x2\xA9\x462\x3\x2\x2"+ - "\x2\xAB\x466\x3\x2\x2\x2\xAD\x471\x3\x2\x2\x2\xAF\x474\x3\x2\x2\x2\xB1"+ - "\x47A\x3\x2\x2\x2\xB3\x47D\x3\x2\x2\x2\xB5\x485\x3\x2\x2\x2\xB7\x48A\x3"+ - "\x2\x2\x2\xB9\x48F\x3\x2\x2\x2\xBB\x494\x3\x2\x2\x2\xBD\x499\x3\x2\x2"+ - "\x2\xBF\x49E\x3\x2\x2\x2\xC1\x4A2\x3\x2\x2\x2\xC3\x4A6\x3\x2\x2\x2\xC5"+ - "\x4AA\x3\x2\x2\x2\xC7\x4AF\x3\x2\x2\x2\xC9\x4BA\x3\x2\x2\x2\xCB\x4C4\x3"+ - "\x2\x2\x2\xCD\x4CF\x3\x2\x2\x2\xCF\x4DF\x3\x2\x2\x2\xD1\x4E4\x3\x2\x2"+ - "\x2\xD3\x4EB\x3\x2\x2\x2\xD5\x4EF\x3\x2\x2\x2\xD7\x4F7\x3\x2\x2\x2\xD9"+ - "\x4FD\x3\x2\x2\x2\xDB\x507\x3\x2\x2\x2\xDD\x50A\x3\x2\x2\x2\xDF\x50E\x3"+ - "\x2\x2\x2\xE1\x514\x3\x2\x2\x2\xE3\x518\x3\x2\x2\x2\xE5\x51D\x3\x2\x2"+ - "\x2\xE7\x522\x3\x2\x2\x2\xE9\x526\x3\x2\x2\x2\xEB\x52A\x3\x2\x2\x2\xED"+ - "\x532\x3\x2\x2\x2\xEF\x537\x3\x2\x2\x2\xF1\x53A\x3\x2\x2\x2\xF3\x543\x3"+ - "\x2\x2\x2\xF5\x552\x3\x2\x2\x2\xF7\x557\x3\x2\x2\x2\xF9\x560\x3\x2\x2"+ - "\x2\xFB\x56C\x3\x2\x2\x2\xFD\x57C\x3\x2\x2\x2\xFF\x58B\x3\x2\x2\x2\x101"+ - "\x5A1\x3\x2\x2\x2\x103\x5A4\x3\x2\x2\x2\x105\x5AB\x3\x2\x2\x2\x107\x5B6"+ - "\x3\x2\x2\x2\x109\x5BF\x3\x2\x2\x2\x10B\x5C5\x3\x2\x2\x2\x10D\x5CD\x3"+ - "\x2\x2\x2\x10F\x5DA\x3\x2\x2\x2\x111\x5E7\x3\x2\x2\x2\x113\x5F4\x3\x2"+ - "\x2\x2\x115\x5FC\x3\x2\x2\x2\x117\x603\x3\x2\x2\x2\x119\x607\x3\x2\x2"+ - "\x2\x11B\x60E\x3\x2\x2\x2\x11D\x618\x3\x2\x2\x2\x11F\x623\x3\x2\x2\x2"+ - "\x121\x628\x3\x2\x2\x2\x123\x633\x3\x2\x2\x2\x125\x639\x3\x2\x2\x2\x127"+ - "\x63D\x3\x2\x2\x2\x129\x643\x3\x2\x2\x2\x12B\x64A\x3\x2\x2\x2\x12D\x651"+ - "\x3\x2\x2\x2\x12F\x657\x3\x2\x2\x2\x131\x65C\x3\x2\x2\x2\x133\x668\x3"+ - "\x2\x2\x2\x135\x674\x3\x2\x2\x2\x137\x679\x3\x2\x2\x2\x139\x680\x3\x2"+ - "\x2\x2\x13B\x689\x3\x2\x2\x2\x13D\x68D\x3\x2\x2\x2\x13F\x695\x3\x2\x2"+ - "\x2\x141\x69C\x3\x2\x2\x2\x143\x6A3\x3\x2\x2\x2\x145\x6A7\x3\x2\x2\x2"+ - "\x147\x6AE\x3\x2\x2\x2\x149\x6B3\x3\x2\x2\x2\x14B\x6B8\x3\x2\x2\x2\x14D"+ - "\x6BF\x3\x2\x2\x2\x14F\x6C3\x3\x2\x2\x2\x151\x6C7\x3\x2\x2\x2\x153\x6CC"+ - "\x3\x2\x2\x2\x155\x6D1\x3\x2\x2\x2\x157\x6D6\x3\x2\x2\x2\x159\x6D9\x3"+ - "\x2\x2\x2\x15B\x6DE\x3\x2\x2\x2\x15D\x6E3\x3\x2\x2\x2\x15F\x6EA\x3\x2"+ - "\x2\x2\x161\x6F1\x3\x2\x2\x2\x163\x6F8\x3\x2\x2\x2\x165\x6FE\x3\x2\x2"+ - "\x2\x167\x706\x3\x2\x2\x2\x169\x70E\x3\x2\x2\x2\x16B\x713\x3\x2\x2\x2"+ - "\x16D\x719\x3\x2\x2\x2\x16F\x71F\x3\x2\x2\x2\x171\x724\x3\x2\x2\x2\x173"+ - "\x72F\x3\x2\x2\x2\x175\x735\x3\x2\x2\x2\x177\x739\x3\x2\x2\x2\x179\x73B"+ - "\x3\x2\x2\x2\x17B\x73E\x3\x2\x2\x2\x17D\x740\x3\x2\x2\x2\x17F\x742\x3"+ - "\x2\x2\x2\x181\x744\x3\x2\x2\x2\x183\x747\x3\x2\x2\x2\x185\x749\x3\x2"+ - "\x2\x2\x187\x74C\x3\x2\x2\x2\x189\x74E\x3\x2\x2\x2\x18B\x750\x3\x2\x2"+ - "\x2\x18D\x752\x3\x2\x2\x2\x18F\x754\x3\x2\x2\x2\x191\x757\x3\x2\x2\x2"+ - "\x193\x759\x3\x2\x2\x2\x195\x75B\x3\x2\x2\x2\x197\x75D\x3\x2\x2\x2\x199"+ - "\x75F\x3\x2\x2\x2\x19B\x761\x3\x2\x2\x2\x19D\x76C\x3\x2\x2\x2\x19F\x777"+ - "\x3\x2\x2\x2\x1A1\x784\x3\x2\x2\x2\x1A3\x78E\x3\x2\x2\x2\x1A5\x796\x3"+ - "\x2\x2\x2\x1A7\x7A9\x3\x2\x2\x2\x1A9\x7B5\x3\x2\x2\x2\x1AB\x7B7\x3\x2"+ - "\x2\x2\x1AD\x7C5\x3\x2\x2\x2\x1AF\x7C8\x3\x2\x2\x2\x1B1\x7D2\x3\x2\x2"+ - "\x2\x1B3\x7E0\x3\x2\x2\x2\x1B5\x7ED\x3\x2\x2\x2\x1B7\x80C\x3\x2\x2\x2"+ - "\x1B9\x80F\x3\x2\x2\x2\x1BB\x816\x3\x2\x2\x2\x1BD\x822\x3\x2\x2\x2\x1BF"+ - "\x82A\x3\x2\x2\x2\x1C1\x833\x3\x2\x2\x2\x1C3\x839\x3\x2\x2\x2\x1C5\x83F"+ - "\x3\x2\x2\x2\x1C7\x843\x3\x2\x2\x2\x1C9\x848\x3\x2\x2\x2\x1CB\x84D\x3"+ - "\x2\x2\x2\x1CD\x854\x3\x2\x2\x2\x1CF\x85E\x3\x2\x2\x2\x1D1\x866\x3\x2"+ - "\x2\x2\x1D3\x86F\x3\x2\x2\x2\x1D5\x878\x3\x2\x2\x2\x1D7\x87C\x3\x2\x2"+ - "\x2\x1D9\x880\x3\x2\x2\x2\x1DB\x884\x3\x2\x2\x2\x1DD\x888\x3\x2\x2\x2"+ - "\x1DF\x88C\x3\x2\x2\x2\x1E1\x890\x3\x2\x2\x2\x1E3\x894\x3\x2\x2\x2\x1E5"+ - "\x898\x3\x2\x2\x2\x1E7\x89C\x3\x2\x2\x2\x1E9\x8A0\x3\x2\x2\x2\x1EB\x8A5"+ - "\x3\x2\x2\x2\x1ED\x8B2\x3\x2\x2\x2\x1EF\x8B7\x3\x2\x2\x2\x1F1\x8C2\x3"+ - "\x2\x2\x2\x1F3\x8CA\x3\x2\x2\x2\x1F5\x8CC\x3\x2\x2\x2\x1F7\x8CE\x3\x2"+ - "\x2\x2\x1F9\x8D2\x3\x2\x2\x2\x1FB\x8E3\x3\x2\x2\x2\x1FD\x8E5\x3\x2\x2"+ - "\x2\x1FF\x8E7\x3\x2\x2\x2\x201\x8E9\x3\x2\x2\x2\x203\x8EB\x3\x2\x2\x2"+ - "\x205\x8ED\x3\x2\x2\x2\x207\x8EF\x3\x2\x2\x2\x209\x8F1\x3\x2\x2\x2\x20B"+ - "\x8F3\x3\x2\x2\x2\x20D\x8F5\x3\x2\x2\x2\x20F\x8F7\x3\x2\x2\x2\x211\x8F9"+ - "\x3\x2\x2\x2\x213\x8FB\x3\x2\x2\x2\x215\x8FD\x3\x2\x2\x2\x217\x8FF\x3"+ - "\x2\x2\x2\x219\x901\x3\x2\x2\x2\x21B\x903\x3\x2\x2\x2\x21D\x905\x3\x2"+ - "\x2\x2\x21F\x907\x3\x2\x2\x2\x221\x909\x3\x2\x2\x2\x223\x90B\x3\x2\x2"+ - "\x2\x225\x90D\x3\x2\x2\x2\x227\x90F\x3\x2\x2\x2\x229\x911\x3\x2\x2\x2"+ - "\x22B\x913\x3\x2\x2\x2\x22D\x915\x3\x2\x2\x2\x22F\x917\x3\x2\x2\x2\x231"+ - "\x919\x3\x2\x2\x2\x233\x91B\x3\x2\x2\x2\x235\x91D\x3\x2\x2\x2\x237\x238"+ - "\a\x42\x2\x2\x238\x4\x3\x2\x2\x2\x239\x23A\a#\x2\x2\x23A\x6\x3\x2\x2\x2"+ - "\x23B\x23C\a%\x2\x2\x23C\b\x3\x2\x2\x2\x23D\x23E\a&\x2\x2\x23E\n\x3\x2"+ - "\x2\x2\x23F\x240\a\'\x2\x2\x240\f\x3\x2\x2\x2\x241\x242\a=\x2\x2\x242"+ - "\xE\x3\x2\x2\x2\x243\x244\a.\x2\x2\x244\x10\x3\x2\x2\x2\x245\x246\a\x30"+ - "\x2\x2\x246\x12\x3\x2\x2\x2\x247\x248\x5\x203\x102\x2\x248\x249\x5\x207"+ - "\x104\x2\x249\x24A\x5\x207\x104\x2\x24A\x24B\x5\x20B\x106\x2\x24B\x24C"+ - "\x5\x227\x114\x2\x24C\x24D\x5\x227\x114\x2\x24D\x14\x3\x2\x2\x2\x24E\x24F"+ - "\x5\x203\x102\x2\x24F\x250\x5\x209\x105\x2\x250\x251\x5\x209\x105\x2\x251"+ - "\x252\x5\x225\x113\x2\x252\x253\x5\x20B\x106\x2\x253\x254\x5\x227\x114"+ - "\x2\x254\x255\x5\x227\x114\x2\x255\x256\x5\x21F\x110\x2\x256\x257\x5\x20D"+ - "\x107\x2\x257\x16\x3\x2\x2\x2\x258\x259\x5\x203\x102\x2\x259\x25A\x5\x219"+ - "\x10D\x2\x25A\x25B\x5\x213\x10A\x2\x25B\x25C\x5\x203\x102\x2\x25C\x25D"+ - "\x5\x227\x114\x2\x25D\x18\x3\x2\x2\x2\x25E\x25F\x5\x203\x102\x2\x25F\x260"+ - "\x5\x21D\x10F\x2\x260\x261\x5\x209\x105\x2\x261\x1A\x3\x2\x2\x2\x262\x263"+ - "\x5\x203\x102\x2\x263\x264\x5\x229\x115\x2\x264\x265\x5\x229\x115\x2\x265"+ - "\x266\x5\x225\x113\x2\x266\x267\x5\x213\x10A\x2\x267\x268\x5\x205\x103"+ - "\x2\x268\x269\x5\x22B\x116\x2\x269\x26A\x5\x229\x115\x2\x26A\x26B\x5\x20B"+ - "\x106\x2\x26B\x1C\x3\x2\x2\x2\x26C\x26D\x5\x203\x102\x2\x26D\x26E\x5\x221"+ - "\x111\x2\x26E\x26F\x5\x221\x111\x2\x26F\x270\x5\x203\x102\x2\x270\x271"+ - "\x5\x207\x104\x2\x271\x272\x5\x229\x115\x2\x272\x273\x5\x213\x10A\x2\x273"+ - "\x274\x5\x22D\x117\x2\x274\x275\x5\x203\x102\x2\x275\x276\x5\x229\x115"+ - "\x2\x276\x277\x5\x20B\x106\x2\x277\x1E\x3\x2\x2\x2\x278\x279\x5\x203\x102"+ - "\x2\x279\x27A\x5\x221\x111\x2\x27A\x27B\x5\x221\x111\x2\x27B\x27C\x5\x20B"+ - "\x106\x2\x27C\x27D\x5\x21D\x10F\x2\x27D\x27E\x5\x209\x105\x2\x27E \x3"+ - "\x2\x2\x2\x27F\x280\x5\x203\x102\x2\x280\x281\x5\x227\x114\x2\x281\"\x3"+ - "\x2\x2\x2\x282\x283\x5\x205\x103\x2\x283\x284\x5\x20B\x106\x2\x284\x285"+ - "\x5\x20F\x108\x2\x285\x286\x5\x213\x10A\x2\x286\x287\x5\x21D\x10F\x2\x287"+ - "$\x3\x2\x2\x2\x288\x289\x5\x205\x103\x2\x289\x28A\x5\x20B\x106\x2\x28A"+ - "\x28B\x5\x20B\x106\x2\x28B\x28C\x5\x221\x111\x2\x28C&\x3\x2\x2\x2\x28D"+ - "\x28E\x5\x205\x103\x2\x28E\x28F\x5\x213\x10A\x2\x28F\x290\x5\x21D\x10F"+ - "\x2\x290\x291\x5\x203\x102\x2\x291\x292\x5\x225\x113\x2\x292\x293\x5\x233"+ - "\x11A\x2\x293(\x3\x2\x2\x2\x294\x295\x5\x205\x103\x2\x295\x296\x5\x21F"+ - "\x110\x2\x296\x297\x5\x21F\x110\x2\x297\x298\x5\x219\x10D\x2\x298\x299"+ - "\x5\x20B\x106\x2\x299\x29A\x5\x203\x102\x2\x29A\x29B\x5\x21D\x10F\x2\x29B"+ - "*\x3\x2\x2\x2\x29C\x29D\x5\x205\x103\x2\x29D\x29E\x5\x233\x11A\x2\x29E"+ - "\x29F\x5\x22D\x117\x2\x29F\x2A0\x5\x203\x102\x2\x2A0\x2A1\x5\x219\x10D"+ - "\x2\x2A1,\x3\x2\x2\x2\x2A2\x2A3\x5\x205\x103\x2\x2A3\x2A4\x5\x233\x11A"+ - "\x2\x2A4\x2A5\x5\x225\x113\x2\x2A5\x2A6\x5\x20B\x106\x2\x2A6\x2A7\x5\x20D"+ - "\x107\x2\x2A7.\x3\x2\x2\x2\x2A8\x2A9\x5\x205\x103\x2\x2A9\x2AA\x5\x233"+ - "\x11A\x2\x2AA\x2AB\x5\x229\x115\x2\x2AB\x2AC\x5\x20B\x106\x2\x2AC\x30"+ - "\x3\x2\x2\x2\x2AD\x2AE\x5\x207\x104\x2\x2AE\x2AF\x5\x203\x102\x2\x2AF"+ - "\x2B0\x5\x219\x10D\x2\x2B0\x2B1\x5\x219\x10D\x2\x2B1\x32\x3\x2\x2\x2\x2B2"+ - "\x2B3\x5\x207\x104\x2\x2B3\x2B4\x5\x203\x102\x2\x2B4\x2B5\x5\x227\x114"+ - "\x2\x2B5\x2B6\x5\x20B\x106\x2\x2B6\x34\x3\x2\x2\x2\x2B7\x2B8\x5\x207\x104"+ - "\x2\x2B8\x2B9\x5\x211\x109\x2\x2B9\x2BA\x5\x209\x105\x2\x2BA\x2BB\x5\x213"+ - "\x10A\x2\x2BB\x2BC\x5\x225\x113\x2\x2BC\x36\x3\x2\x2\x2\x2BD\x2BE\x5\x207"+ - "\x104\x2\x2BE\x2BF\x5\x211\x109\x2\x2BF\x2C0\x5\x209\x105\x2\x2C0\x2C1"+ - "\x5\x225\x113\x2\x2C1\x2C2\x5\x213\x10A\x2\x2C2\x2C3\x5\x22D\x117\x2\x2C3"+ - "\x2C4\x5\x20B\x106\x2\x2C4\x38\x3\x2\x2\x2\x2C5\x2C6\x5\x207\x104\x2\x2C6"+ - "\x2C7\x5\x219\x10D\x2\x2C7\x2C8\x5\x203\x102\x2\x2C8\x2C9\x5\x227\x114"+ - "\x2\x2C9\x2CA\x5\x227\x114\x2\x2CA:\x3\x2\x2\x2\x2CB\x2CC\x5\x207\x104"+ - "\x2\x2CC\x2CD\x5\x219\x10D\x2\x2CD\x2CE\x5\x21F\x110\x2\x2CE\x2CF\x5\x227"+ - "\x114\x2\x2CF\x2D0\x5\x20B\x106\x2\x2D0<\x3\x2\x2\x2\x2D1\x2D2\x5\x207"+ - "\x104\x2\x2D2\x2D3\x5\x21F\x110\x2\x2D3\x2D4\x5\x219\x10D\x2\x2D4\x2D5"+ - "\x5\x219\x10D\x2\x2D5\x2D6\x5\x20B\x106\x2\x2D6\x2D7\x5\x207\x104\x2\x2D7"+ - "\x2D8\x5\x229\x115\x2\x2D8\x2D9\x5\x213\x10A\x2\x2D9\x2DA\x5\x21F\x110"+ - "\x2\x2DA\x2DB\x5\x21D\x10F\x2\x2DB>\x3\x2\x2\x2\x2DC\x2DD\x5\x207\x104"+ - "\x2\x2DD\x2DE\x5\x21F\x110\x2\x2DE\x2DF\x5\x21D\x10F\x2\x2DF\x2E0\x5\x227"+ - "\x114\x2\x2E0\x2E1\x5\x229\x115\x2\x2E1@\x3\x2\x2\x2\x2E2\x2E3\x5\x209"+ - "\x105\x2\x2E3\x2E4\x5\x203\x102\x2\x2E4\x2E5\x5\x229\x115\x2\x2E5\x2E6"+ - "\x5\x203\x102\x2\x2E6\x2E7\x5\x205\x103\x2\x2E7\x2E8\x5\x203\x102\x2\x2E8"+ - "\x2E9\x5\x227\x114\x2\x2E9\x2EA\x5\x20B\x106\x2\x2EA\x42\x3\x2\x2\x2\x2EB"+ - "\x2EC\x5\x209\x105\x2\x2EC\x2ED\x5\x203\x102\x2\x2ED\x2EE\x5\x229\x115"+ - "\x2\x2EE\x2EF\x5\x20B\x106\x2\x2EF\x44\x3\x2\x2\x2\x2F0\x2F1\x5\x209\x105"+ - "\x2\x2F1\x2F2\x5\x20B\x106\x2\x2F2\x2F3\x5\x207\x104\x2\x2F3\x2F4\x5\x219"+ - "\x10D\x2\x2F4\x2F5\x5\x203\x102\x2\x2F5\x2F6\x5\x225\x113\x2\x2F6\x2F7"+ - "\x5\x20B\x106\x2\x2F7\x46\x3\x2\x2\x2\x2F8\x2F9\x5\x209\x105\x2\x2F9\x2FA"+ - "\x5\x20B\x106\x2\x2FA\x2FB\x5\x20D\x107\x2\x2FB\x2FC\x5\x205\x103\x2\x2FC"+ - "\x2FD\x5\x21F\x110\x2\x2FD\x2FE\x5\x21F\x110\x2\x2FE\x2FF\x5\x219\x10D"+ - "\x2\x2FFH\x3\x2\x2\x2\x300\x301\x5\x209\x105\x2\x301\x302\x5\x20B\x106"+ - "\x2\x302\x303\x5\x20D\x107\x2\x303\x304\x5\x205\x103\x2\x304\x305\x5\x233"+ - "\x11A\x2\x305\x306\x5\x229\x115\x2\x306\x307\x5\x20B\x106\x2\x307J\x3"+ - "\x2\x2\x2\x308\x309\x5\x209\x105\x2\x309\x30A\x5\x20B\x106\x2\x30A\x30B"+ - "\x5\x20D\x107\x2\x30B\x30C\x5\x209\x105\x2\x30C\x30D\x5\x203\x102\x2\x30D"+ - "\x30E\x5\x229\x115\x2\x30E\x30F\x5\x20B\x106\x2\x30FL\x3\x2\x2\x2\x310"+ - "\x311\x5\x209\x105\x2\x311\x312\x5\x20B\x106\x2\x312\x313\x5\x20D\x107"+ - "\x2\x313\x314\x5\x209\x105\x2\x314\x315\x5\x205\x103\x2\x315\x316\x5\x219"+ - "\x10D\x2\x316N\x3\x2\x2\x2\x317\x318\x5\x209\x105\x2\x318\x319\x5\x20B"+ - "\x106\x2\x319\x31A\x5\x20D\x107\x2\x31A\x31B\x5\x209\x105\x2\x31B\x31C"+ - "\x5\x20B\x106\x2\x31C\x31D\x5\x207\x104\x2\x31DP\x3\x2\x2\x2\x31E\x31F"+ - "\x5\x209\x105\x2\x31F\x320\x5\x20B\x106\x2\x320\x321\x5\x20D\x107\x2\x321"+ - "\x322\x5\x207\x104\x2\x322\x323\x5\x22B\x116\x2\x323\x324\x5\x225\x113"+ - "\x2\x324R\x3\x2\x2\x2\x325\x326\x5\x209\x105\x2\x326\x327\x5\x20B\x106"+ - "\x2\x327\x328\x5\x20D\x107\x2\x328\x329\x5\x213\x10A\x2\x329\x32A\x5\x21D"+ - "\x10F\x2\x32A\x32B\x5\x229\x115\x2\x32BT\x3\x2\x2\x2\x32C\x32D\x5\x209"+ - "\x105\x2\x32D\x32E\x5\x20B\x106\x2\x32E\x32F\x5\x20D\x107\x2\x32F\x330"+ - "\x5\x219\x10D\x2\x330\x331\x5\x21D\x10F\x2\x331\x332\x5\x20F\x108\x2\x332"+ - "V\x3\x2\x2\x2\x333\x334\x5\x209\x105\x2\x334\x335\x5\x20B\x106\x2\x335"+ - "\x336\x5\x20D\x107\x2\x336\x337\x5\x21F\x110\x2\x337\x338\x5\x205\x103"+ - "\x2\x338\x339\x5\x215\x10B\x2\x339X\x3\x2\x2\x2\x33A\x33B\x5\x209\x105"+ - "\x2\x33B\x33C\x5\x20B\x106\x2\x33C\x33D\x5\x20D\x107\x2\x33D\x33E\x5\x227"+ - "\x114\x2\x33E\x33F\x5\x21D\x10F\x2\x33F\x340\x5\x20F\x108\x2\x340Z\x3"+ - "\x2\x2\x2\x341\x342\x5\x209\x105\x2\x342\x343\x5\x20B\x106\x2\x343\x344"+ - "\x5\x20D\x107\x2\x344\x345\x5\x227\x114\x2\x345\x346\x5\x229\x115\x2\x346"+ - "\x347\x5\x225\x113\x2\x347\\\x3\x2\x2\x2\x348\x349\x5\x209\x105\x2\x349"+ - "\x34A\x5\x20B\x106\x2\x34A\x34B\x5\x20D\x107\x2\x34B\x34C\x5\x22D\x117"+ - "\x2\x34C\x34D\x5\x203\x102\x2\x34D\x34E\x5\x225\x113\x2\x34E^\x3\x2\x2"+ - "\x2\x34F\x350\x5\x209\x105\x2\x350\x351\x5\x20B\x106\x2\x351\x352\x5\x219"+ - "\x10D\x2\x352\x353\x5\x20B\x106\x2\x353\x354\x5\x229\x115\x2\x354\x355"+ - "\x5\x20B\x106\x2\x355\x356\x5\x227\x114\x2\x356\x357\x5\x20B\x106\x2\x357"+ - "\x358\x5\x229\x115\x2\x358\x359\x5\x229\x115\x2\x359\x35A\x5\x213\x10A"+ - "\x2\x35A\x35B\x5\x21D\x10F\x2\x35B\x35C\x5\x20F\x108\x2\x35C`\x3\x2\x2"+ - "\x2\x35D\x35E\x5\x209\x105\x2\x35E\x35F\x5\x213\x10A\x2\x35F\x360\x5\x21B"+ - "\x10E\x2\x360\x62\x3\x2\x2\x2\x361\x362\x5\x209\x105\x2\x362\x363\x5\x21F"+ - "\x110\x2\x363\x64\x3\x2\x2\x2\x364\x365\x5\x209\x105\x2\x365\x366\x5\x21F"+ - "\x110\x2\x366\x367\x5\x22B\x116\x2\x367\x368\x5\x205\x103\x2\x368\x369"+ - "\x5\x219\x10D\x2\x369\x36A\x5\x20B\x106\x2\x36A\x66\x3\x2\x2\x2\x36B\x36C"+ - "\x5\x20B\x106\x2\x36C\x36D\x5\x203\x102\x2\x36D\x36E\x5\x207\x104\x2\x36E"+ - "\x36F\x5\x211\x109\x2\x36Fh\x3\x2\x2\x2\x370\x371\x5\x20B\x106\x2\x371"+ - "\x372\x5\x219\x10D\x2\x372\x373\x5\x227\x114\x2\x373\x374\x5\x20B\x106"+ - "\x2\x374j\x3\x2\x2\x2\x375\x376\x5\x20B\x106\x2\x376\x377\x5\x219\x10D"+ - "\x2\x377\x378\x5\x227\x114\x2\x378\x379\x5\x20B\x106\x2\x379\x37A\x5\x213"+ - "\x10A\x2\x37A\x37B\x5\x20D\x107\x2\x37Bl\x3\x2\x2\x2\x37C\x37D\x5\x20B"+ - "\x106\x2\x37D\x37E\x5\x21B\x10E\x2\x37E\x37F\x5\x221\x111\x2\x37F\x380"+ - "\x5\x229\x115\x2\x380\x381\x5\x233\x11A\x2\x381n\x3\x2\x2\x2\x382\x383"+ - "\x5\x20B\x106\x2\x383\x384\x5\x21D\x10F\x2\x384\x385\x5\x209\x105\x2\x385"+ - "\x386\x5\x1F9\xFD\x2\x386\x387\x5\x20B\x106\x2\x387\x388\x5\x21D\x10F"+ - "\x2\x388\x389\x5\x22B\x116\x2\x389\x38A\x5\x21B\x10E\x2\x38Ap\x3\x2\x2"+ - "\x2\x38B\x38C\x5\x20B\x106\x2\x38C\x38D\x5\x21D\x10F\x2\x38D\x38E\x5\x209"+ - "\x105\x2\x38E\x38F\x5\x1F9\xFD\x2\x38F\x390\x5\x20D\x107\x2\x390\x391"+ - "\x5\x22B\x116\x2\x391\x392\x5\x21D\x10F\x2\x392\x393\x5\x207\x104\x2\x393"+ - "\x394\x5\x229\x115\x2\x394\x395\x5\x213\x10A\x2\x395\x396\x5\x21F\x110"+ - "\x2\x396\x397\x5\x21D\x10F\x2\x397r\x3\x2\x2\x2\x398\x399\x5\x20B\x106"+ - "\x2\x399\x39A\x5\x21D\x10F\x2\x39A\x39B\x5\x209\x105\x2\x39B\x39C\x5\x1F9"+ - "\xFD\x2\x39C\x39D\x5\x213\x10A\x2\x39D\x39E\x5\x20D\x107\x2\x39Et\x3\x2"+ - "\x2\x2\x39F\x3A0\x5\x20B\x106\x2\x3A0\x3A1\x5\x21D\x10F\x2\x3A1\x3A2\x5"+ - "\x209\x105\x2\x3A2\x3A3\x5\x1F9\xFD\x2\x3A3\x3A4\x5\x221\x111\x2\x3A4"+ - "\x3A5\x5\x225\x113\x2\x3A5\x3A6\x5\x21F\x110\x2\x3A6\x3A7\x5\x221\x111"+ - "\x2\x3A7\x3A8\x5\x20B\x106\x2\x3A8\x3A9\x5\x225\x113\x2\x3A9\x3AA\x5\x229"+ - "\x115\x2\x3AA\x3AB\x5\x233\x11A\x2\x3ABv\x3\x2\x2\x2\x3AC\x3AD\x5\x20B"+ - "\x106\x2\x3AD\x3AE\x5\x21D\x10F\x2\x3AE\x3AF\x5\x209\x105\x2\x3AF\x3B0"+ - "\x5\x1F9\xFD\x2\x3B0\x3B1\x5\x227\x114\x2\x3B1\x3B2\x5\x20B\x106\x2\x3B2"+ - "\x3B3\x5\x219\x10D\x2\x3B3\x3B4\x5\x20B\x106\x2\x3B4\x3B5\x5\x207\x104"+ - "\x2\x3B5\x3B6\x5\x229\x115\x2\x3B6x\x3\x2\x2\x2\x3B7\x3B8\x5\x20B\x106"+ - "\x2\x3B8\x3B9\x5\x21D\x10F\x2\x3B9\x3BA\x5\x209\x105\x2\x3BA\x3BB\x5\x1F9"+ - "\xFD\x2\x3BB\x3BC\x5\x227\x114\x2\x3BC\x3BD\x5\x22B\x116\x2\x3BD\x3BE"+ - "\x5\x205\x103\x2\x3BEz\x3\x2\x2\x2\x3BF\x3C0\x5\x20B\x106\x2\x3C0\x3C1"+ - "\x5\x21D\x10F\x2\x3C1\x3C2\x5\x209\x105\x2\x3C2\x3C3\x5\x1F9\xFD\x2\x3C3"+ - "\x3C4\x5\x229\x115\x2\x3C4\x3C5\x5\x233\x11A\x2\x3C5\x3C6\x5\x221\x111"+ - "\x2\x3C6\x3C7\x5\x20B\x106\x2\x3C7|\x3\x2\x2\x2\x3C8\x3C9\x5\x20B\x106"+ - "\x2\x3C9\x3CA\x5\x21D\x10F\x2\x3CA\x3CB\x5\x209\x105\x2\x3CB\x3CC\x5\x1F9"+ - "\xFD\x2\x3CC\x3CD\x5\x22F\x118\x2\x3CD\x3CE\x5\x213\x10A\x2\x3CE\x3CF"+ - "\x5\x229\x115\x2\x3CF\x3D0\x5\x211\x109\x2\x3D0~\x3\x2\x2\x2\x3D1\x3D2"+ - "\x5\x20B\x106\x2\x3D2\x3D3\x5\x21D\x10F\x2\x3D3\x3D4\x5\x209\x105\x2\x3D4"+ - "\x80\x3\x2\x2\x2\x3D5\x3D6\x5\x20B\x106\x2\x3D6\x3D7\x5\x21D\x10F\x2\x3D7"+ - "\x3D8\x5\x22B\x116\x2\x3D8\x3D9\x5\x21B\x10E\x2\x3D9\x82\x3\x2\x2\x2\x3DA"+ - "\x3DB\x5\x20B\x106\x2\x3DB\x3DC\x5\x223\x112\x2\x3DC\x3DD\x5\x22D\x117"+ - "\x2\x3DD\x84\x3\x2\x2\x2\x3DE\x3DF\x5\x20B\x106\x2\x3DF\x3E0\x5\x225\x113"+ - "\x2\x3E0\x3E1\x5\x203\x102\x2\x3E1\x3E2\x5\x227\x114\x2\x3E2\x3E3\x5\x20B"+ - "\x106\x2\x3E3\x86\x3\x2\x2\x2\x3E4\x3E5\x5\x20B\x106\x2\x3E5\x3E6\x5\x225"+ - "\x113\x2\x3E6\x3E7\x5\x225\x113\x2\x3E7\x3E8\x5\x21F\x110\x2\x3E8\x3E9"+ - "\x5\x225\x113\x2\x3E9\x88\x3\x2\x2\x2\x3EA\x3EB\x5\x20B\x106\x2\x3EB\x3EC"+ - "\x5\x22D\x117\x2\x3EC\x3ED\x5\x20B\x106\x2\x3ED\x3EE\x5\x21D\x10F\x2\x3EE"+ - "\x3EF\x5\x229\x115\x2\x3EF\x8A\x3\x2\x2\x2\x3F0\x3F1\x5\x20B\x106\x2\x3F1"+ - "\x3F2\x5\x231\x119\x2\x3F2\x3F3\x5\x213\x10A\x2\x3F3\x3F4\x5\x229\x115"+ - "\x2\x3F4\x3F5\x5\x1F9\xFD\x2\x3F5\x3F6\x5\x209\x105\x2\x3F6\x3F7\x5\x21F"+ - "\x110\x2\x3F7\x8C\x3\x2\x2\x2\x3F8\x3F9\x5\x20B\x106\x2\x3F9\x3FA\x5\x231"+ - "\x119\x2\x3FA\x3FB\x5\x213\x10A\x2\x3FB\x3FC\x5\x229\x115\x2\x3FC\x3FD"+ - "\x5\x1F9\xFD\x2\x3FD\x3FE\x5\x20D\x107\x2\x3FE\x3FF\x5\x21F\x110\x2\x3FF"+ - "\x400\x5\x225\x113\x2\x400\x8E\x3\x2\x2\x2\x401\x402\x5\x20B\x106\x2\x402"+ - "\x403\x5\x231\x119\x2\x403\x404\x5\x213\x10A\x2\x404\x405\x5\x229\x115"+ - "\x2\x405\x406\x5\x1F9\xFD\x2\x406\x407\x5\x20D\x107\x2\x407\x408\x5\x22B"+ - "\x116\x2\x408\x409\x5\x21D\x10F\x2\x409\x40A\x5\x207\x104\x2\x40A\x40B"+ - "\x5\x229\x115\x2\x40B\x40C\x5\x213\x10A\x2\x40C\x40D\x5\x21F\x110\x2\x40D"+ - "\x40E\x5\x21D\x10F\x2\x40E\x90\x3\x2\x2\x2\x40F\x410\x5\x20B\x106\x2\x410"+ - "\x411\x5\x231\x119\x2\x411\x412\x5\x213\x10A\x2\x412\x413\x5\x229\x115"+ - "\x2\x413\x414\x5\x1F9\xFD\x2\x414\x415\x5\x221\x111\x2\x415\x416\x5\x225"+ - "\x113\x2\x416\x417\x5\x21F\x110\x2\x417\x418\x5\x221\x111\x2\x418\x419"+ - "\x5\x20B\x106\x2\x419\x41A\x5\x225\x113\x2\x41A\x41B\x5\x229\x115\x2\x41B"+ - "\x41C\x5\x233\x11A\x2\x41C\x92\x3\x2\x2\x2\x41D\x41E\x5\x20B\x106\x2\x41E"+ - "\x41F\x5\x231\x119\x2\x41F\x420\x5\x213\x10A\x2\x420\x421\x5\x229\x115"+ - "\x2\x421\x422\x5\x1F9\xFD\x2\x422\x423\x5\x227\x114\x2\x423\x424\x5\x22B"+ - "\x116\x2\x424\x425\x5\x205\x103\x2\x425\x94\x3\x2\x2\x2\x426\x427\x5\x20D"+ - "\x107\x2\x427\x428\x5\x203\x102\x2\x428\x429\x5\x219\x10D\x2\x429\x42A"+ - "\x5\x227\x114\x2\x42A\x42B\x5\x20B\x106\x2\x42B\x96\x3\x2\x2\x2\x42C\x42D"+ - "\x5\x20D\x107\x2\x42D\x42E\x5\x213\x10A\x2\x42E\x42F\x5\x219\x10D\x2\x42F"+ - "\x430\x5\x20B\x106\x2\x430\x431\x5\x207\x104\x2\x431\x432\x5\x21F\x110"+ - "\x2\x432\x433\x5\x221\x111\x2\x433\x434\x5\x233\x11A\x2\x434\x98\x3\x2"+ - "\x2\x2\x435\x436\x5\x20D\x107\x2\x436\x437\x5\x225\x113\x2\x437\x438\x5"+ - "\x213\x10A\x2\x438\x439\x5\x20B\x106\x2\x439\x43A\x5\x21D\x10F\x2\x43A"+ - "\x43B\x5\x209\x105\x2\x43B\x9A\x3\x2\x2\x2\x43C\x43D\x5\x20D\x107\x2\x43D"+ - "\x43E\x5\x21F\x110\x2\x43E\x43F\x5\x225\x113\x2\x43F\x9C\x3\x2\x2\x2\x440"+ - "\x441\x5\x20D\x107\x2\x441\x442\x5\x22B\x116\x2\x442\x443\x5\x21D\x10F"+ - "\x2\x443\x444\x5\x207\x104\x2\x444\x445\x5\x229\x115\x2\x445\x446\x5\x213"+ - "\x10A\x2\x446\x447\x5\x21F\x110\x2\x447\x448\x5\x21D\x10F\x2\x448\x9E"+ - "\x3\x2\x2\x2\x449\x44A\x5\x20F\x108\x2\x44A\x44B\x5\x20B\x106\x2\x44B"+ - "\x44C\x5\x229\x115\x2\x44C\xA0\x3\x2\x2\x2\x44D\x44E\x5\x20F\x108\x2\x44E"+ - "\x44F\x5\x219\x10D\x2\x44F\x450\x5\x21F\x110\x2\x450\x451\x5\x205\x103"+ - "\x2\x451\x452\x5\x203\x102\x2\x452\x453\x5\x219\x10D\x2\x453\xA2\x3\x2"+ - "\x2\x2\x454\x455\x5\x20F\x108\x2\x455\x456\x5\x21F\x110\x2\x456\x457\x5"+ - "\x227\x114\x2\x457\x458\x5\x22B\x116\x2\x458\x459\x5\x205\x103\x2\x459"+ - "\xA4\x3\x2\x2\x2\x45A\x45B\x5\x20F\x108\x2\x45B\x45C\x5\x21F\x110\x2\x45C"+ - "\x45D\x5\x229\x115\x2\x45D\x45E\x5\x21F\x110\x2\x45E\xA6\x3\x2\x2\x2\x45F"+ - "\x460\x5\x213\x10A\x2\x460\x461\x5\x20D\x107\x2\x461\xA8\x3\x2\x2\x2\x462"+ - "\x463\x5\x213\x10A\x2\x463\x464\x5\x21B\x10E\x2\x464\x465\x5\x221\x111"+ - "\x2\x465\xAA\x3\x2\x2\x2\x466\x467\x5\x213\x10A\x2\x467\x468\x5\x21B\x10E"+ - "\x2\x468\x469\x5\x221\x111\x2\x469\x46A\x5\x219\x10D\x2\x46A\x46B\x5\x20B"+ - "\x106\x2\x46B\x46C\x5\x21B\x10E\x2\x46C\x46D\x5\x20B\x106\x2\x46D\x46E"+ - "\x5\x21D\x10F\x2\x46E\x46F\x5\x229\x115\x2\x46F\x470\x5\x227\x114\x2\x470"+ - "\xAC\x3\x2\x2\x2\x471\x472\x5\x213\x10A\x2\x472\x473\x5\x21D\x10F\x2\x473"+ - "\xAE\x3\x2\x2\x2\x474\x475\x5\x213\x10A\x2\x475\x476\x5\x21D\x10F\x2\x476"+ - "\x477\x5\x221\x111\x2\x477\x478\x5\x22B\x116\x2\x478\x479\x5\x229\x115"+ - "\x2\x479\xB0\x3\x2\x2\x2\x47A\x47B\x5\x213\x10A\x2\x47B\x47C\x5\x227\x114"+ - "\x2\x47C\xB2\x3\x2\x2\x2\x47D\x47E\x5\x213\x10A\x2\x47E\x47F\x5\x21D\x10F"+ - "\x2\x47F\x480\x5\x229\x115\x2\x480\x481\x5\x20B\x106\x2\x481\x482\x5\x20F"+ - "\x108\x2\x482\x483\x5\x20B\x106\x2\x483\x484\x5\x225\x113\x2\x484\xB4"+ - "\x3\x2\x2\x2\x485\x486\x5\x217\x10C\x2\x486\x487\x5\x213\x10A\x2\x487"+ - "\x488\x5\x219\x10D\x2\x488\x489\x5\x219\x10D\x2\x489\xB6\x3\x2\x2\x2\x48A"+ - "\x48B\x5\x219\x10D\x2\x48B\x48C\x5\x21F\x110\x2\x48C\x48D\x5\x203\x102"+ - "\x2\x48D\x48E\x5\x209\x105\x2\x48E\xB8\x3\x2\x2\x2\x48F\x490\x5\x219\x10D"+ - "\x2\x490\x491\x5\x21F\x110\x2\x491\x492\x5\x207\x104\x2\x492\x493\x5\x217"+ - "\x10C\x2\x493\xBA\x3\x2\x2\x2\x494\x495\x5\x219\x10D\x2\x495\x496\x5\x21F"+ - "\x110\x2\x496\x497\x5\x21D\x10F\x2\x497\x498\x5\x20F\x108\x2\x498\xBC"+ - "\x3\x2\x2\x2\x499\x49A\x5\x219\x10D\x2\x49A\x49B\x5\x21F\x110\x2\x49B"+ - "\x49C\x5\x21F\x110\x2\x49C\x49D\x5\x221\x111\x2\x49D\xBE\x3\x2\x2\x2\x49E"+ - "\x49F\x5\x219\x10D\x2\x49F\x4A0\x5\x20B\x106\x2\x4A0\x4A1\x5\x21D\x10F"+ - "\x2\x4A1\xC0\x3\x2\x2\x2\x4A2\x4A3\x5\x219\x10D\x2\x4A3\x4A4\x5\x20B\x106"+ - "\x2\x4A4\x4A5\x5\x229\x115\x2\x4A5\xC2\x3\x2\x2\x2\x4A6\x4A7\x5\x219\x10D"+ - "\x2\x4A7\x4A8\x5\x213\x10A\x2\x4A8\x4A9\x5\x205\x103\x2\x4A9\xC4\x3\x2"+ - "\x2\x2\x4AA\x4AB\x5\x219\x10D\x2\x4AB\x4AC\x5\x213\x10A\x2\x4AC\x4AD\x5"+ - "\x217\x10C\x2\x4AD\x4AE\x5\x20B\x106\x2\x4AE\xC6\x3\x2\x2\x2\x4AF\x4B0"+ - "\x5\x219\x10D\x2\x4B0\x4B1\x5\x213\x10A\x2\x4B1\x4B2\x5\x21D\x10F\x2\x4B2"+ - "\x4B3\x5\x20B\x106\x2\x4B3\x4B4\x5\x1F9\xFD\x2\x4B4\x4B5\x5\x213\x10A"+ - "\x2\x4B5\x4B6\x5\x21D\x10F\x2\x4B6\x4B7\x5\x221\x111\x2\x4B7\x4B8\x5\x22B"+ - "\x116\x2\x4B8\x4B9\x5\x229\x115\x2\x4B9\xC8\x3\x2\x2\x2\x4BA\x4BB\x5\x219"+ - "\x10D\x2\x4BB\x4BC\x5\x21F\x110\x2\x4BC\x4BD\x5\x207\x104\x2\x4BD\x4BE"+ - "\x5\x217\x10C\x2\x4BE\x4BF\x5\x1F9\xFD\x2\x4BF\x4C0\x5\x225\x113\x2\x4C0"+ - "\x4C1\x5\x20B\x106\x2\x4C1\x4C2\x5\x203\x102\x2\x4C2\x4C3\x5\x209\x105"+ - "\x2\x4C3\xCA\x3\x2\x2\x2\x4C4\x4C5\x5\x219\x10D\x2\x4C5\x4C6\x5\x21F\x110"+ - "\x2\x4C6\x4C7\x5\x207\x104\x2\x4C7\x4C8\x5\x217\x10C\x2\x4C8\x4C9\x5\x1F9"+ - "\xFD\x2\x4C9\x4CA\x5\x22F\x118\x2\x4CA\x4CB\x5\x225\x113\x2\x4CB\x4CC"+ - "\x5\x213\x10A\x2\x4CC\x4CD\x5\x229\x115\x2\x4CD\x4CE\x5\x20B\x106\x2\x4CE"+ - "\xCC\x3\x2\x2\x2\x4CF\x4D0\x5\x219\x10D\x2\x4D0\x4D1\x5\x21F\x110\x2\x4D1"+ - "\x4D2\x5\x207\x104\x2\x4D2\x4D3\x5\x217\x10C\x2\x4D3\x4D4\x5\x1F9\xFD"+ - "\x2\x4D4\x4D5\x5\x225\x113\x2\x4D5\x4D6\x5\x20B\x106\x2\x4D6\x4D7\x5\x203"+ - "\x102\x2\x4D7\x4D8\x5\x209\x105\x2\x4D8\x4D9\x5\x1F9\xFD\x2\x4D9\x4DA"+ - "\x5\x22F\x118\x2\x4DA\x4DB\x5\x225\x113\x2\x4DB\x4DC\x5\x213\x10A\x2\x4DC"+ - "\x4DD\x5\x229\x115\x2\x4DD\x4DE\x5\x20B\x106\x2\x4DE\xCE\x3\x2\x2\x2\x4DF"+ - "\x4E0\x5\x219\x10D\x2\x4E0\x4E1\x5\x227\x114\x2\x4E1\x4E2\x5\x20B\x106"+ - "\x2\x4E2\x4E3\x5\x229\x115\x2\x4E3\xD0\x3\x2\x2\x2\x4E4\x4E5\a%\x2\x2"+ - "\x4E5\x4E6\x5\x207\x104\x2\x4E6\x4E7\x5\x21F\x110\x2\x4E7\x4E8\x5\x21D"+ - "\x10F\x2\x4E8\x4E9\x5\x227\x114\x2\x4E9\x4EA\x5\x229\x115\x2\x4EA\xD2"+ - "\x3\x2\x2\x2\x4EB\x4EC\a%\x2\x2\x4EC\x4ED\x5\x213\x10A\x2\x4ED\x4EE\x5"+ - "\x20D\x107\x2\x4EE\xD4\x3\x2\x2\x2\x4EF\x4F0\a%\x2\x2\x4F0\x4F1\x5\x20B"+ - "\x106\x2\x4F1\x4F2\x5\x219\x10D\x2\x4F2\x4F3\x5\x227\x114\x2\x4F3\x4F4"+ - "\x5\x20B\x106\x2\x4F4\x4F5\x5\x213\x10A\x2\x4F5\x4F6\x5\x20D\x107\x2\x4F6"+ - "\xD6\x3\x2\x2\x2\x4F7\x4F8\a%\x2\x2\x4F8\x4F9\x5\x20B\x106\x2\x4F9\x4FA"+ - "\x5\x219\x10D\x2\x4FA\x4FB\x5\x227\x114\x2\x4FB\x4FC\x5\x20B\x106\x2\x4FC"+ - "\xD8\x3\x2\x2\x2\x4FD\x4FE\a%\x2\x2\x4FE\x4FF\x5\x20B\x106\x2\x4FF\x500"+ - "\x5\x21D\x10F\x2\x500\x502\x5\x209\x105\x2\x501\x503\x5\x1F9\xFD\x2\x502"+ - "\x501\x3\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x505"+ - "\x5\x213\x10A\x2\x505\x506\x5\x20D\x107\x2\x506\xDA\x3\x2\x2\x2\x507\x508"+ - "\x5\x21B\x10E\x2\x508\x509\x5\x20B\x106\x2\x509\xDC\x3\x2\x2\x2\x50A\x50B"+ - "\x5\x21B\x10E\x2\x50B\x50C\x5\x213\x10A\x2\x50C\x50D\x5\x209\x105\x2\x50D"+ - "\xDE\x3\x2\x2\x2\x50E\x50F\x5\x21B\x10E\x2\x50F\x510\x5\x217\x10C\x2\x510"+ - "\x511\x5\x209\x105\x2\x511\x512\x5\x213\x10A\x2\x512\x513\x5\x225\x113"+ - "\x2\x513\xE0\x3\x2\x2\x2\x514\x515\x5\x21B\x10E\x2\x515\x516\x5\x21F\x110"+ - "\x2\x516\x517\x5\x209\x105\x2\x517\xE2\x3\x2\x2\x2\x518\x519\x5\x21D\x10F"+ - "\x2\x519\x51A\x5\x203\x102\x2\x51A\x51B\x5\x21B\x10E\x2\x51B\x51C\x5\x20B"+ - "\x106\x2\x51C\xE4\x3\x2\x2\x2\x51D\x51E\x5\x21D\x10F\x2\x51E\x51F\x5\x20B"+ - "\x106\x2\x51F\x520\x5\x231\x119\x2\x520\x521\x5\x229\x115\x2\x521\xE6"+ - "\x3\x2\x2\x2\x522\x523\x5\x21D\x10F\x2\x523\x524\x5\x20B\x106\x2\x524"+ - "\x525\x5\x22F\x118\x2\x525\xE8\x3\x2\x2\x2\x526\x527\x5\x21D\x10F\x2\x527"+ - "\x528\x5\x21F\x110\x2\x528\x529\x5\x229\x115\x2\x529\xEA\x3\x2\x2\x2\x52A"+ - "\x52B\x5\x21D\x10F\x2\x52B\x52C\x5\x21F\x110\x2\x52C\x52D\x5\x229\x115"+ - "\x2\x52D\x52E\x5\x211\x109\x2\x52E\x52F\x5\x213\x10A\x2\x52F\x530\x5\x21D"+ - "\x10F\x2\x530\x531\x5\x20F\x108\x2\x531\xEC\x3\x2\x2\x2\x532\x533\x5\x21D"+ - "\x10F\x2\x533\x534\x5\x22B\x116\x2\x534\x535\x5\x219\x10D\x2\x535\x536"+ - "\x5\x219\x10D\x2\x536\xEE\x3\x2\x2\x2\x537\x538\x5\x21F\x110\x2\x538\x539"+ - "\x5\x21D\x10F\x2\x539\xF0\x3\x2\x2\x2\x53A\x53B\x5\x21F\x110\x2\x53B\x53C"+ - "\x5\x21D\x10F\x2\x53C\x53D\x5\x1F9\xFD\x2\x53D\x53E\x5\x20B\x106\x2\x53E"+ - "\x53F\x5\x225\x113\x2\x53F\x540\x5\x225\x113\x2\x540\x541\x5\x21F\x110"+ - "\x2\x541\x542\x5\x225\x113\x2\x542\xF2\x3\x2\x2\x2\x543\x544\x5\x21F\x110"+ - "\x2\x544\x545\x5\x21D\x10F\x2\x545\x546\x5\x1F9\xFD\x2\x546\x547\x5\x219"+ - "\x10D\x2\x547\x548\x5\x21F\x110\x2\x548\x549\x5\x207\x104\x2\x549\x54A"+ - "\x5\x203\x102\x2\x54A\x54B\x5\x219\x10D\x2\x54B\x54C\x5\x1F9\xFD\x2\x54C"+ - "\x54D\x5\x20B\x106\x2\x54D\x54E\x5\x225\x113\x2\x54E\x54F\x5\x225\x113"+ - "\x2\x54F\x550\x5\x21F\x110\x2\x550\x551\x5\x225\x113\x2\x551\xF4\x3\x2"+ - "\x2\x2\x552\x553\x5\x21F\x110\x2\x553\x554\x5\x221\x111\x2\x554\x555\x5"+ - "\x20B\x106\x2\x555\x556\x5\x21D\x10F\x2\x556\xF6\x3\x2\x2\x2\x557\x558"+ - "\x5\x21F\x110\x2\x558\x559\x5\x221\x111\x2\x559\x55A\x5\x229\x115\x2\x55A"+ - "\x55B\x5\x213\x10A\x2\x55B\x55C\x5\x21F\x110\x2\x55C\x55D\x5\x21D\x10F"+ - "\x2\x55D\x55E\x5\x203\x102\x2\x55E\x55F\x5\x219\x10D\x2\x55F\xF8\x3\x2"+ - "\x2\x2\x560\x561\x5\x21F\x110\x2\x561\x562\x5\x221\x111\x2\x562\x563\x5"+ - "\x229\x115\x2\x563\x564\x5\x213\x10A\x2\x564\x565\x5\x21F\x110\x2\x565"+ - "\x566\x5\x21D\x10F\x2\x566\x567\x5\x1F9\xFD\x2\x567\x568\x5\x205\x103"+ - "\x2\x568\x569\x5\x203\x102\x2\x569\x56A\x5\x227\x114\x2\x56A\x56B\x5\x20B"+ - "\x106\x2\x56B\xFA\x3\x2\x2\x2\x56C\x56D\x5\x21F\x110\x2\x56D\x56E\x5\x221"+ - "\x111\x2\x56E\x56F\x5\x229\x115\x2\x56F\x570\x5\x213\x10A\x2\x570\x571"+ - "\x5\x21F\x110\x2\x571\x572\x5\x21D\x10F\x2\x572\x573\x5\x1F9\xFD\x2\x573"+ - "\x574\x5\x20B\x106\x2\x574\x575\x5\x231\x119\x2\x575\x576\x5\x221\x111"+ - "\x2\x576\x577\x5\x219\x10D\x2\x577\x578\x5\x213\x10A\x2\x578\x579\x5\x207"+ - "\x104\x2\x579\x57A\x5\x213\x10A\x2\x57A\x57B\x5\x229\x115\x2\x57B\xFC"+ - "\x3\x2\x2\x2\x57C\x57D\x5\x21F\x110\x2\x57D\x57E\x5\x221\x111\x2\x57E"+ - "\x57F\x5\x229\x115\x2\x57F\x580\x5\x213\x10A\x2\x580\x581\x5\x21F\x110"+ - "\x2\x581\x582\x5\x21D\x10F\x2\x582\x583\x5\x1F9\xFD\x2\x583\x584\x5\x207"+ - "\x104\x2\x584\x585\x5\x21F\x110\x2\x585\x586\x5\x21B\x10E\x2\x586\x587"+ - "\x5\x221\x111\x2\x587\x588\x5\x203\x102\x2\x588\x589\x5\x225\x113\x2\x589"+ - "\x58A\x5\x20B\x106\x2\x58A\xFE\x3\x2\x2\x2\x58B\x58C\x5\x21F\x110\x2\x58C"+ - "\x58D\x5\x221\x111\x2\x58D\x58E\x5\x229\x115\x2\x58E\x58F\x5\x213\x10A"+ - "\x2\x58F\x590\x5\x21F\x110\x2\x590\x591\x5\x21D\x10F\x2\x591\x592\x5\x1F9"+ - "\xFD\x2\x592\x593\x5\x221\x111\x2\x593\x594\x5\x225\x113\x2\x594\x595"+ - "\x5\x213\x10A\x2\x595\x596\x5\x22D\x117\x2\x596\x597\x5\x203\x102\x2\x597"+ - "\x598\x5\x229\x115\x2\x598\x599\x5\x20B\x106\x2\x599\x59A\x5\x1F9\xFD"+ - "\x2\x59A\x59B\x5\x21B\x10E\x2\x59B\x59C\x5\x21F\x110\x2\x59C\x59D\x5\x209"+ - "\x105\x2\x59D\x59E\x5\x22B\x116\x2\x59E\x59F\x5\x219\x10D\x2\x59F\x5A0"+ - "\x5\x20B\x106\x2\x5A0\x100\x3\x2\x2\x2\x5A1\x5A2\x5\x21F\x110\x2\x5A2"+ - "\x5A3\x5\x225\x113\x2\x5A3\x102\x3\x2\x2\x2\x5A4\x5A5\x5\x21F\x110\x2"+ - "\x5A5\x5A6\x5\x22B\x116\x2\x5A6\x5A7\x5\x229\x115\x2\x5A7\x5A8\x5\x221"+ - "\x111\x2\x5A8\x5A9\x5\x22B\x116\x2\x5A9\x5AA\x5\x229\x115\x2\x5AA\x104"+ - "\x3\x2\x2\x2\x5AB\x5AC\x5\x221\x111\x2\x5AC\x5AD\x5\x203\x102\x2\x5AD"+ - "\x5AE\x5\x225\x113\x2\x5AE\x5AF\x5\x203\x102\x2\x5AF\x5B0\x5\x21B\x10E"+ - "\x2\x5B0\x5B1\x5\x203\x102\x2\x5B1\x5B2\x5\x225\x113\x2\x5B2\x5B3\x5\x225"+ - "\x113\x2\x5B3\x5B4\x5\x203\x102\x2\x5B4\x5B5\x5\x233\x11A\x2\x5B5\x106"+ - "\x3\x2\x2\x2\x5B6\x5B7\x5\x221\x111\x2\x5B7\x5B8\x5\x225\x113\x2\x5B8"+ - "\x5B9\x5\x20B\x106\x2\x5B9\x5BA\x5\x227\x114\x2\x5BA\x5BB\x5\x20B\x106"+ - "\x2\x5BB\x5BC\x5\x225\x113\x2\x5BC\x5BD\x5\x22D\x117\x2\x5BD\x5BE\x5\x20B"+ - "\x106\x2\x5BE\x108\x3\x2\x2\x2\x5BF\x5C0\x5\x221\x111\x2\x5C0\x5C1\x5"+ - "\x225\x113\x2\x5C1\x5C2\x5\x213\x10A\x2\x5C2\x5C3\x5\x21D\x10F\x2\x5C3"+ - "\x5C4\x5\x229\x115\x2\x5C4\x10A\x3\x2\x2\x2\x5C5\x5C6\x5\x221\x111\x2"+ - "\x5C6\x5C7\x5\x225\x113\x2\x5C7\x5C8\x5\x213\x10A\x2\x5C8\x5C9\x5\x22D"+ - "\x117\x2\x5C9\x5CA\x5\x203\x102\x2\x5CA\x5CB\x5\x229\x115\x2\x5CB\x5CC"+ - "\x5\x20B\x106\x2\x5CC\x10C\x3\x2\x2\x2\x5CD\x5CE\x5\x221\x111\x2\x5CE"+ - "\x5CF\x5\x225\x113\x2\x5CF\x5D0\x5\x21F\x110\x2\x5D0\x5D1\x5\x221\x111"+ - "\x2\x5D1\x5D2\x5\x20B\x106\x2\x5D2\x5D3\x5\x225\x113\x2\x5D3\x5D4\x5\x229"+ - "\x115\x2\x5D4\x5D5\x5\x233\x11A\x2\x5D5\x5D6\x5\x1F9\xFD\x2\x5D6\x5D7"+ - "\x5\x20F\x108\x2\x5D7\x5D8\x5\x20B\x106\x2\x5D8\x5D9\x5\x229\x115\x2\x5D9"+ - "\x10E\x3\x2\x2\x2\x5DA\x5DB\x5\x221\x111\x2\x5DB\x5DC\x5\x225\x113\x2"+ - "\x5DC\x5DD\x5\x21F\x110\x2\x5DD\x5DE\x5\x221\x111\x2\x5DE\x5DF\x5\x20B"+ - "\x106\x2\x5DF\x5E0\x5\x225\x113\x2\x5E0\x5E1\x5\x229\x115\x2\x5E1\x5E2"+ - "\x5\x233\x11A\x2\x5E2\x5E3\x5\x1F9\xFD\x2\x5E3\x5E4\x5\x219\x10D\x2\x5E4"+ - "\x5E5\x5\x20B\x106\x2\x5E5\x5E6\x5\x229\x115\x2\x5E6\x110\x3\x2\x2\x2"+ - "\x5E7\x5E8\x5\x221\x111\x2\x5E8\x5E9\x5\x225\x113\x2\x5E9\x5EA\x5\x21F"+ - "\x110\x2\x5EA\x5EB\x5\x221\x111\x2\x5EB\x5EC\x5\x20B\x106\x2\x5EC\x5ED"+ - "\x5\x225\x113\x2\x5ED\x5EE\x5\x229\x115\x2\x5EE\x5EF\x5\x233\x11A\x2\x5EF"+ - "\x5F0\x5\x1F9\xFD\x2\x5F0\x5F1\x5\x227\x114\x2\x5F1\x5F2\x5\x20B\x106"+ - "\x2\x5F2\x5F3\x5\x229\x115\x2\x5F3\x112\x3\x2\x2\x2\x5F4\x5F5\x5\x221"+ - "\x111\x2\x5F5\x5F6\x5\x229\x115\x2\x5F6\x5F7\x5\x225\x113\x2\x5F7\x5F8"+ - "\x5\x227\x114\x2\x5F8\x5F9\x5\x203\x102\x2\x5F9\x5FA\x5\x20D\x107\x2\x5FA"+ - "\x5FB\x5\x20B\x106\x2\x5FB\x114\x3\x2\x2\x2\x5FC\x5FD\x5\x221\x111\x2"+ - "\x5FD\x5FE\x5\x22B\x116\x2\x5FE\x5FF\x5\x205\x103\x2\x5FF\x600\x5\x219"+ - "\x10D\x2\x600\x601\x5\x213\x10A\x2\x601\x602\x5\x207\x104\x2\x602\x116"+ - "\x3\x2\x2\x2\x603\x604\x5\x221\x111\x2\x604\x605\x5\x22B\x116\x2\x605"+ - "\x606\x5\x229\x115\x2\x606\x118\x3\x2\x2\x2\x607\x608\x5\x225\x113\x2"+ - "\x608\x609\x5\x203\x102\x2\x609\x60A\x5\x21D\x10F\x2\x60A\x60B\x5\x209"+ - "\x105\x2\x60B\x60C\x5\x21F\x110\x2\x60C\x60D\x5\x21B\x10E\x2\x60D\x11A"+ - "\x3\x2\x2\x2\x60E\x60F\x5\x225\x113\x2\x60F\x610\x5\x203\x102\x2\x610"+ - "\x611\x5\x21D\x10F\x2\x611\x612\x5\x209\x105\x2\x612\x613\x5\x21F\x110"+ - "\x2\x613\x614\x5\x21B\x10E\x2\x614\x615\x5\x213\x10A\x2\x615\x616\x5\x235"+ - "\x11B\x2\x616\x617\x5\x20B\x106\x2\x617\x11C\x3\x2\x2\x2\x618\x619\x5"+ - "\x225\x113\x2\x619\x61A\x5\x203\x102\x2\x61A\x61B\x5\x213\x10A\x2\x61B"+ - "\x61C\x5\x227\x114\x2\x61C\x61D\x5\x20B\x106\x2\x61D\x61E\x5\x20B\x106"+ - "\x2\x61E\x61F\x5\x22D\x117\x2\x61F\x620\x5\x20B\x106\x2\x620\x621\x5\x21D"+ - "\x10F\x2\x621\x622\x5\x229\x115\x2\x622\x11E\x3\x2\x2\x2\x623\x624\x5"+ - "\x225\x113\x2\x624\x625\x5\x20B\x106\x2\x625\x626\x5\x203\x102\x2\x626"+ - "\x627\x5\x209\x105\x2\x627\x120\x3\x2\x2\x2\x628\x629\x5\x225\x113\x2"+ - "\x629\x62A\x5\x20B\x106\x2\x62A\x62B\x5\x203\x102\x2\x62B\x62C\x5\x209"+ - "\x105\x2\x62C\x62D\x5\x1F9\xFD\x2\x62D\x62E\x5\x22F\x118\x2\x62E\x62F"+ - "\x5\x225\x113\x2\x62F\x630\x5\x213\x10A\x2\x630\x631\x5\x229\x115\x2\x631"+ - "\x632\x5\x20B\x106\x2\x632\x122\x3\x2\x2\x2\x633\x634\x5\x225\x113\x2"+ - "\x634\x635\x5\x20B\x106\x2\x635\x636\x5\x209\x105\x2\x636\x637\x5\x213"+ - "\x10A\x2\x637\x638\x5\x21B\x10E\x2\x638\x124\x3\x2\x2\x2\x639\x63A\x5"+ - "\x225\x113\x2\x63A\x63B\x5\x20B\x106\x2\x63B\x63C\x5\x21B\x10E\x2\x63C"+ - "\x126\x3\x2\x2\x2\x63D\x63E\x5\x225\x113\x2\x63E\x63F\x5\x20B\x106\x2"+ - "\x63F\x640\x5\x227\x114\x2\x640\x641\x5\x20B\x106\x2\x641\x642\x5\x229"+ - "\x115\x2\x642\x128\x3\x2\x2\x2\x643\x644\x5\x225\x113\x2\x644\x645\x5"+ - "\x20B\x106\x2\x645\x646\x5\x227\x114\x2\x646\x647\x5\x22B\x116\x2\x647"+ - "\x648\x5\x21B\x10E\x2\x648\x649\x5\x20B\x106\x2\x649\x12A\x3\x2\x2\x2"+ - "\x64A\x64B\x5\x225\x113\x2\x64B\x64C\x5\x20B\x106\x2\x64C\x64D\x5\x229"+ - "\x115\x2\x64D\x64E\x5\x22B\x116\x2\x64E\x64F\x5\x225\x113\x2\x64F\x650"+ - "\x5\x21D\x10F\x2\x650\x12C\x3\x2\x2\x2\x651\x652\x5\x225\x113\x2\x652"+ - "\x653\x5\x21B\x10E\x2\x653\x654\x5\x209\x105\x2\x654\x655\x5\x213\x10A"+ - "\x2\x655\x656\x5\x225\x113\x2\x656\x12E\x3\x2\x2\x2\x657\x658\x5\x225"+ - "\x113\x2\x658\x659\x5\x227\x114\x2\x659\x65A\x5\x20B\x106\x2\x65A\x65B"+ - "\x5\x229\x115\x2\x65B\x130\x3\x2\x2\x2\x65C\x65D\x5\x227\x114\x2\x65D"+ - "\x65E\x5\x203\x102\x2\x65E\x65F\x5\x22D\x117\x2\x65F\x660\x5\x20B\x106"+ - "\x2\x660\x661\x5\x221\x111\x2\x661\x662\x5\x213\x10A\x2\x662\x663\x5\x207"+ - "\x104\x2\x663\x664\x5\x229\x115\x2\x664\x665\x5\x22B\x116\x2\x665\x666"+ - "\x5\x225\x113\x2\x666\x667\x5\x20B\x106\x2\x667\x132\x3\x2\x2\x2\x668"+ - "\x669\x5\x227\x114\x2\x669\x66A\x5\x203\x102\x2\x66A\x66B\x5\x22D\x117"+ - "\x2\x66B\x66C\x5\x20B\x106\x2\x66C\x66D\x5\x227\x114\x2\x66D\x66E\x5\x20B"+ - "\x106\x2\x66E\x66F\x5\x229\x115\x2\x66F\x670\x5\x229\x115\x2\x670\x671"+ - "\x5\x213\x10A\x2\x671\x672\x5\x21D\x10F\x2\x672\x673\x5\x20F\x108\x2\x673"+ - "\x134\x3\x2\x2\x2\x674\x675\x5\x227\x114\x2\x675\x676\x5\x20B\x106\x2"+ - "\x676\x677\x5\x20B\x106\x2\x677\x678\x5\x217\x10C\x2\x678\x136\x3\x2\x2"+ - "\x2\x679\x67A\x5\x227\x114\x2\x67A\x67B\x5\x20B\x106\x2\x67B\x67C\x5\x219"+ - "\x10D\x2\x67C\x67D\x5\x20B\x106\x2\x67D\x67E\x5\x207\x104\x2\x67E\x67F"+ - "\x5\x229\x115\x2\x67F\x138\x3\x2\x2\x2\x680\x681\x5\x227\x114\x2\x681"+ - "\x682\x5\x20B\x106\x2\x682\x683\x5\x21D\x10F\x2\x683\x684\x5\x209\x105"+ - "\x2\x684\x685\x5\x217\x10C\x2\x685\x686\x5\x20B\x106\x2\x686\x687\x5\x233"+ - "\x11A\x2\x687\x688\x5\x227\x114\x2\x688\x13A\x3\x2\x2\x2\x689\x68A\x5"+ - "\x227\x114\x2\x68A\x68B\x5\x20B\x106\x2\x68B\x68C\x5\x229\x115\x2\x68C"+ - "\x13C\x3\x2\x2\x2\x68D\x68E\x5\x227\x114\x2\x68E\x68F\x5\x20B\x106\x2"+ - "\x68F\x690\x5\x229\x115\x2\x690\x691\x5\x203\x102\x2\x691\x692\x5\x229"+ - "\x115\x2\x692\x693\x5\x229\x115\x2\x693\x694\x5\x225\x113\x2\x694\x13E"+ - "\x3\x2\x2\x2\x695\x696\x5\x227\x114\x2\x696\x697\x5\x211\x109\x2\x697"+ - "\x698\x5\x203\x102\x2\x698\x699\x5\x225\x113\x2\x699\x69A\x5\x20B\x106"+ - "\x2\x69A\x69B\x5\x209\x105\x2\x69B\x140\x3\x2\x2\x2\x69C\x69D\x5\x227"+ - "\x114\x2\x69D\x69E\x5\x213\x10A\x2\x69E\x69F\x5\x21D\x10F\x2\x69F\x6A0"+ - "\x5\x20F\x108\x2\x6A0\x6A1\x5\x219\x10D\x2\x6A1\x6A2\x5\x20B\x106\x2\x6A2"+ - "\x142\x3\x2\x2\x2\x6A3\x6A4\x5\x227\x114\x2\x6A4\x6A5\x5\x221\x111\x2"+ - "\x6A5\x6A6\x5\x207\x104\x2\x6A6\x144\x3\x2\x2\x2\x6A7\x6A8\x5\x227\x114"+ - "\x2\x6A8\x6A9\x5\x229\x115\x2\x6A9\x6AA\x5\x203\x102\x2\x6AA\x6AB\x5\x229"+ - "\x115\x2\x6AB\x6AC\x5\x213\x10A\x2\x6AC\x6AD\x5\x207\x104\x2\x6AD\x146"+ - "\x3\x2\x2\x2\x6AE\x6AF\x5\x227\x114\x2\x6AF\x6B0\x5\x229\x115\x2\x6B0"+ - "\x6B1\x5\x20B\x106\x2\x6B1\x6B2\x5\x221\x111\x2\x6B2\x148\x3\x2\x2\x2"+ - "\x6B3\x6B4\x5\x227\x114\x2\x6B4\x6B5\x5\x229\x115\x2\x6B5\x6B6\x5\x21F"+ - "\x110\x2\x6B6\x6B7\x5\x221\x111\x2\x6B7\x14A\x3\x2\x2\x2\x6B8\x6B9\x5"+ - "\x227\x114\x2\x6B9\x6BA\x5\x229\x115\x2\x6BA\x6BB\x5\x225\x113\x2\x6BB"+ - "\x6BC\x5\x213\x10A\x2\x6BC\x6BD\x5\x21D\x10F\x2\x6BD\x6BE\x5\x20F\x108"+ - "\x2\x6BE\x14C\x3\x2\x2\x2\x6BF\x6C0\x5\x227\x114\x2\x6C0\x6C1\x5\x22B"+ - "\x116\x2\x6C1\x6C2\x5\x205\x103\x2\x6C2\x14E\x3\x2\x2\x2\x6C3\x6C4\x5"+ - "\x229\x115\x2\x6C4\x6C5\x5\x203\x102\x2\x6C5\x6C6\x5\x205\x103\x2\x6C6"+ - "\x150\x3\x2\x2\x2\x6C7\x6C8\x5\x229\x115\x2\x6C8\x6C9\x5\x20B\x106\x2"+ - "\x6C9\x6CA\x5\x231\x119\x2\x6CA\x6CB\x5\x229\x115\x2\x6CB\x152\x3\x2\x2"+ - "\x2\x6CC\x6CD\x5\x229\x115\x2\x6CD\x6CE\x5\x211\x109\x2\x6CE\x6CF\x5\x20B"+ - "\x106\x2\x6CF\x6D0\x5\x21D\x10F\x2\x6D0\x154\x3\x2\x2\x2\x6D1\x6D2\x5"+ - "\x229\x115\x2\x6D2\x6D3\x5\x213\x10A\x2\x6D3\x6D4\x5\x21B\x10E\x2\x6D4"+ - "\x6D5\x5\x20B\x106\x2\x6D5\x156\x3\x2\x2\x2\x6D6\x6D7\x5\x229\x115\x2"+ - "\x6D7\x6D8\x5\x21F\x110\x2\x6D8\x158\x3\x2\x2\x2\x6D9\x6DA\x5\x229\x115"+ - "\x2\x6DA\x6DB\x5\x225\x113\x2\x6DB\x6DC\x5\x22B\x116\x2\x6DC\x6DD\x5\x20B"+ - "\x106\x2\x6DD\x15A\x3\x2\x2\x2\x6DE\x6DF\x5\x229\x115\x2\x6DF\x6E0\x5"+ - "\x233\x11A\x2\x6E0\x6E1\x5\x221\x111\x2\x6E1\x6E2\x5\x20B\x106\x2\x6E2"+ - "\x15C\x3\x2\x2\x2\x6E3\x6E4\x5\x229\x115\x2\x6E4\x6E5\x5\x233\x11A\x2"+ - "\x6E5\x6E6\x5\x221\x111\x2\x6E6\x6E7\x5\x20B\x106\x2\x6E7\x6E8\x5\x21F"+ - "\x110\x2\x6E8\x6E9\x5\x20D\x107\x2\x6E9\x15E\x3\x2\x2\x2\x6EA\x6EB\x5"+ - "\x22B\x116\x2\x6EB\x6EC\x5\x21D\x10F\x2\x6EC\x6ED\x5\x219\x10D\x2\x6ED"+ - "\x6EE\x5\x21F\x110\x2\x6EE\x6EF\x5\x203\x102\x2\x6EF\x6F0\x5\x209\x105"+ - "\x2\x6F0\x160\x3\x2\x2\x2\x6F1\x6F2\x5\x22B\x116\x2\x6F2\x6F3\x5\x21D"+ - "\x10F\x2\x6F3\x6F4\x5\x219\x10D\x2\x6F4\x6F5\x5\x21F\x110\x2\x6F5\x6F6"+ - "\x5\x207\x104\x2\x6F6\x6F7\x5\x217\x10C\x2\x6F7\x162\x3\x2\x2\x2\x6F8"+ - "\x6F9\x5\x22B\x116\x2\x6F9\x6FA\x5\x21D\x10F\x2\x6FA\x6FB\x5\x229\x115"+ - "\x2\x6FB\x6FC\x5\x213\x10A\x2\x6FC\x6FD\x5\x219\x10D\x2\x6FD\x164\x3\x2"+ - "\x2\x2\x6FE\x6FF\x5\x22D\x117\x2\x6FF\x700\x5\x203\x102\x2\x700\x701\x5"+ - "\x225\x113\x2\x701\x702\x5\x213\x10A\x2\x702\x703\x5\x203\x102\x2\x703"+ - "\x704\x5\x21D\x10F\x2\x704\x705\x5\x229\x115\x2\x705\x166\x3\x2\x2\x2"+ - "\x706\x707\x5\x22D\x117\x2\x707\x708\x5\x20B\x106\x2\x708\x709\x5\x225"+ - "\x113\x2\x709\x70A\x5\x227\x114\x2\x70A\x70B\x5\x213\x10A\x2\x70B\x70C"+ - "\x5\x21F\x110\x2\x70C\x70D\x5\x21D\x10F\x2\x70D\x168\x3\x2\x2\x2\x70E"+ - "\x70F\x5\x22F\x118\x2\x70F\x710\x5\x20B\x106\x2\x710\x711\x5\x21D\x10F"+ - "\x2\x711\x712\x5\x209\x105\x2\x712\x16A\x3\x2\x2\x2\x713\x714\x5\x22F"+ - "\x118\x2\x714\x715\x5\x211\x109\x2\x715\x716\x5\x213\x10A\x2\x716\x717"+ - "\x5\x219\x10D\x2\x717\x718\x5\x20B\x106\x2\x718\x16C\x3\x2\x2\x2\x719"+ - "\x71A\x5\x22F\x118\x2\x71A\x71B\x5\x213\x10A\x2\x71B\x71C\x5\x209\x105"+ - "\x2\x71C\x71D\x5\x229\x115\x2\x71D\x71E\x5\x211\x109\x2\x71E\x16E\x3\x2"+ - "\x2\x2\x71F\x720\x5\x22F\x118\x2\x720\x721\x5\x213\x10A\x2\x721\x722\x5"+ - "\x229\x115\x2\x722\x723\x5\x211\x109\x2\x723\x170\x3\x2\x2\x2\x724\x725"+ - "\x5\x22F\x118\x2\x725\x726\x5\x213\x10A\x2\x726\x727\x5\x229\x115\x2\x727"+ - "\x728\x5\x211\x109\x2\x728\x729\x5\x20B\x106\x2\x729\x72A\x5\x22D\x117"+ - "\x2\x72A\x72B\x5\x20B\x106\x2\x72B\x72C\x5\x21D\x10F\x2\x72C\x72D\x5\x229"+ - "\x115\x2\x72D\x72E\x5\x227\x114\x2\x72E\x172\x3\x2\x2\x2\x72F\x730\x5"+ - "\x22F\x118\x2\x730\x731\x5\x225\x113\x2\x731\x732\x5\x213\x10A\x2\x732"+ - "\x733\x5\x229\x115\x2\x733\x734\x5\x20B\x106\x2\x734\x174\x3\x2\x2\x2"+ - "\x735\x736\x5\x231\x119\x2\x736\x737\x5\x21F\x110\x2\x737\x738\x5\x225"+ - "\x113\x2\x738\x176\x3\x2\x2\x2\x739\x73A\a(\x2\x2\x73A\x178\x3\x2\x2\x2"+ - "\x73B\x73C\a<\x2\x2\x73C\x73D\a?\x2\x2\x73D\x17A\x3\x2\x2\x2\x73E\x73F"+ - "\a\x31\x2\x2\x73F\x17C\x3\x2\x2\x2\x740\x741\a^\x2\x2\x741\x17E\x3\x2"+ - "\x2\x2\x742\x743\a?\x2\x2\x743\x180\x3\x2\x2\x2\x744\x745\a@\x2\x2\x745"+ - "\x746\a?\x2\x2\x746\x182\x3\x2\x2\x2\x747\x748\a@\x2\x2\x748\x184\x3\x2"+ - "\x2\x2\x749\x74A\a>\x2\x2\x74A\x74B\a?\x2\x2\x74B\x186\x3\x2\x2\x2\x74C"+ - "\x74D\a*\x2\x2\x74D\x188\x3\x2\x2\x2\x74E\x74F\a>\x2\x2\x74F\x18A\x3\x2"+ - "\x2\x2\x750\x751\a/\x2\x2\x751\x18C\x3\x2\x2\x2\x752\x753\a,\x2\x2\x753"+ - "\x18E\x3\x2\x2\x2\x754\x755\a>\x2\x2\x755\x756\a@\x2\x2\x756\x190\x3\x2"+ - "\x2\x2\x757\x758\a-\x2\x2\x758\x192\x3\x2\x2\x2\x759\x75A\a`\x2\x2\x75A"+ - "\x194\x3\x2\x2\x2\x75B\x75C\a+\x2\x2\x75C\x196\x3\x2\x2\x2\x75D\x75E\a"+ - "]\x2\x2\x75E\x198\x3\x2\x2\x2\x75F\x760\a_\x2\x2\x760\x19A\x3\x2\x2\x2"+ - "\x761\x767\a$\x2\x2\x762\x766\n\x2\x2\x2\x763\x764\a$\x2\x2\x764\x766"+ - "\a$\x2\x2\x765\x762\x3\x2\x2\x2\x765\x763\x3\x2\x2\x2\x766\x769\x3\x2"+ - "\x2\x2\x767\x765\x3\x2\x2\x2\x767\x768\x3\x2\x2\x2\x768\x76A\x3\x2\x2"+ - "\x2\x769\x767\x3\x2\x2\x2\x76A\x76B\a$\x2\x2\x76B\x19C\x3\x2\x2\x2\x76C"+ - "\x76D\a(\x2\x2\x76D\x76E\aQ\x2\x2\x76E\x770\x3\x2\x2\x2\x76F\x771\t\x3"+ - "\x2\x2\x770\x76F\x3\x2\x2\x2\x771\x772\x3\x2\x2\x2\x772\x770\x3\x2\x2"+ - "\x2\x772\x773\x3\x2\x2\x2\x773\x775\x3\x2\x2\x2\x774\x776\a(\x2\x2\x775"+ - "\x774\x3\x2\x2\x2\x775\x776\x3\x2\x2\x2\x776\x19E\x3\x2\x2\x2\x777\x778"+ - "\a(\x2\x2\x778\x779\aJ\x2\x2\x779\x77B\x3\x2\x2\x2\x77A\x77C\t\x4\x2\x2"+ - "\x77B\x77A\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\x77B\x3\x2\x2\x2\x77D"+ - "\x77E\x3\x2\x2\x2\x77E\x780\x3\x2\x2\x2\x77F\x781\a(\x2\x2\x780\x77F\x3"+ - "\x2\x2\x2\x780\x781\x3\x2\x2\x2\x781\x1A0\x3\x2\x2\x2\x782\x785\x5\x191"+ - "\xC9\x2\x783\x785\x5\x18B\xC6\x2\x784\x782\x3\x2\x2\x2\x784\x783\x3\x2"+ - "\x2\x2\x784\x785\x3\x2\x2\x2\x785\x787\x3\x2\x2\x2\x786\x788\x5\x1FF\x100"+ - "\x2\x787\x786\x3\x2\x2\x2\x788\x789\x3\x2\x2\x2\x789\x787\x3\x2\x2\x2"+ - "\x789\x78A\x3\x2\x2\x2\x78A\x78C\x3\x2\x2\x2\x78B\x78D\t\x5\x2\x2\x78C"+ - "\x78B\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\x1A2\x3\x2\x2\x2\x78E\x792"+ - "\x5\x1A1\xD1\x2\x78F\x790\x5\x20B\x106\x2\x790\x791\x5\x1A1\xD1\x2\x791"+ - "\x793\x3\x2\x2\x2\x792\x78F\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\x1A4"+ - "\x3\x2\x2\x2\x794\x797\x5\x191\xC9\x2\x795\x797\x5\x18B\xC6\x2\x796\x794"+ - "\x3\x2\x2\x2\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x79B\x3"+ - "\x2\x2\x2\x798\x79A\x5\x1FF\x100\x2\x799\x798\x3\x2\x2\x2\x79A\x79D\x3"+ - "\x2\x2\x2\x79B\x799\x3\x2\x2\x2\x79B\x79C\x3\x2\x2\x2\x79C\x79E\x3\x2"+ - "\x2\x2\x79D\x79B\x3\x2\x2\x2\x79E\x7A0\a\x30\x2\x2\x79F\x7A1\x5\x1FF\x100"+ - "\x2\x7A0\x79F\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x7A0\x3\x2\x2\x2"+ - "\x7A2\x7A3\x3\x2\x2\x2\x7A3\x7A7\x3\x2\x2\x2\x7A4\x7A5\x5\x20B\x106\x2"+ - "\x7A5\x7A6\x5\x1A1\xD1\x2\x7A6\x7A8\x3\x2\x2\x2\x7A7\x7A4\x3\x2\x2\x2"+ - "\x7A7\x7A8\x3\x2\x2\x2\x7A8\x1A6\x3\x2\x2\x2\x7A9\x7AA\a%\x2\x2\x7AA\x7AB"+ - "\x5\x1A9\xD5\x2\x7AB\x7AC\a%\x2\x2\x7AC\x1A8\x3\x2\x2\x2\x7AD\x7AF\x5"+ - "\x1AB\xD6\x2\x7AE\x7B0\x5\x1F9\xFD\x2\x7AF\x7AE\x3\x2\x2\x2\x7AF\x7B0"+ - "\x3\x2\x2\x2\x7B0\x7B1\x3\x2\x2\x2\x7B1\x7B2\x5\x1B7\xDC\x2\x7B2\x7B6"+ - "\x3\x2\x2\x2\x7B3\x7B6\x5\x1AB\xD6\x2\x7B4\x7B6\x5\x1B7\xDC\x2\x7B5\x7AD"+ - "\x3\x2\x2\x2\x7B5\x7B3\x3\x2\x2\x2\x7B5\x7B4\x3\x2\x2\x2\x7B6\x1AA\x3"+ - "\x2\x2\x2\x7B7\x7B8\x5\x1AD\xD7\x2\x7B8\x7B9\x5\x1AF\xD8\x2\x7B9\x7BD"+ - "\x5\x1AD\xD7\x2\x7BA\x7BB\x5\x1AF\xD8\x2\x7BB\x7BC\x5\x1AD\xD7\x2\x7BC"+ - "\x7BE\x3\x2\x2\x2\x7BD\x7BA\x3\x2\x2\x2\x7BD\x7BE\x3\x2\x2\x2\x7BE\x1AC"+ - "\x3\x2\x2\x2\x7BF\x7C1\x5\x1FF\x100\x2\x7C0\x7BF\x3\x2\x2\x2\x7C1\x7C2"+ - "\x3\x2\x2\x2\x7C2\x7C0\x3\x2\x2\x2\x7C2\x7C3\x3\x2\x2\x2\x7C3\x7C6\x3"+ - "\x2\x2\x2\x7C4\x7C6\x5\x1B1\xD9\x2\x7C5\x7C0\x3\x2\x2\x2\x7C5\x7C4\x3"+ - "\x2\x2\x2\x7C6\x1AE\x3\x2\x2\x2\x7C7\x7C9\x5\x1F9\xFD\x2\x7C8\x7C7\x3"+ - "\x2\x2\x2\x7C8\x7C9\x3\x2\x2\x2\x7C9\x7CB\x3\x2\x2\x2\x7CA\x7CC\t\x6\x2"+ - "\x2\x7CB\x7CA\x3\x2\x2\x2\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CE\x3\x2\x2\x2"+ - "\x7CD\x7CF\x5\x1F9\xFD\x2\x7CE\x7CD\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2"+ - "\x7CF\x1B0\x3\x2\x2\x2\x7D0\x7D3\x5\x1B3\xDA\x2\x7D1\x7D3\x5\x1B5\xDB"+ - "\x2\x7D2\x7D0\x3\x2\x2\x2\x7D2\x7D1\x3\x2\x2\x2\x7D3\x1B2\x3\x2\x2\x2"+ - "\x7D4\x7E1\x5\x1BD\xDF\x2\x7D5\x7E1\x5\x1BF\xE0\x2\x7D6\x7E1\x5\x1C1\xE1"+ - "\x2\x7D7\x7E1\x5\x1C3\xE2\x2\x7D8\x7E1\x5\x1C5\xE3\x2\x7D9\x7E1\x5\x1C7"+ - "\xE4\x2\x7DA\x7E1\x5\x1C9\xE5\x2\x7DB\x7E1\x5\x1CB\xE6\x2\x7DC\x7E1\x5"+ - "\x1CD\xE7\x2\x7DD\x7E1\x5\x1CF\xE8\x2\x7DE\x7E1\x5\x1D1\xE9\x2\x7DF\x7E1"+ - "\x5\x1D3\xEA\x2\x7E0\x7D4\x3\x2\x2\x2\x7E0\x7D5\x3\x2\x2\x2\x7E0\x7D6"+ - "\x3\x2\x2\x2\x7E0\x7D7\x3\x2\x2\x2\x7E0\x7D8\x3\x2\x2\x2\x7E0\x7D9\x3"+ - "\x2\x2\x2\x7E0\x7DA\x3\x2\x2\x2\x7E0\x7DB\x3\x2\x2\x2\x7E0\x7DC\x3\x2"+ - "\x2\x2\x7E0\x7DD\x3\x2\x2\x2\x7E0\x7DE\x3\x2\x2\x2\x7E0\x7DF\x3\x2\x2"+ - "\x2\x7E1\x1B4\x3\x2\x2\x2\x7E2\x7EE\x5\x1D5\xEB\x2\x7E3\x7EE\x5\x1D7\xEC"+ - "\x2\x7E4\x7EE\x5\x1D9\xED\x2\x7E5\x7EE\x5\x1DB\xEE\x2\x7E6\x7EE\x5\x1DD"+ - "\xEF\x2\x7E7\x7EE\x5\x1DF\xF0\x2\x7E8\x7EE\x5\x1E1\xF1\x2\x7E9\x7EE\x5"+ - "\x1E3\xF2\x2\x7EA\x7EE\x5\x1E5\xF3\x2\x7EB\x7EE\x5\x1E7\xF4\x2\x7EC\x7EE"+ - "\x5\x1E9\xF5\x2\x7ED\x7E2\x3\x2\x2\x2\x7ED\x7E3\x3\x2\x2\x2\x7ED\x7E4"+ - "\x3\x2\x2\x2\x7ED\x7E5\x3\x2\x2\x2\x7ED\x7E6\x3\x2\x2\x2\x7ED\x7E7\x3"+ - "\x2\x2\x2\x7ED\x7E8\x3\x2\x2\x2\x7ED\x7E9\x3\x2\x2\x2\x7ED\x7EA\x3\x2"+ - "\x2\x2\x7ED\x7EB\x3\x2\x2\x2\x7ED\x7EC\x3\x2\x2\x2\x7EE\x1B6\x3\x2\x2"+ - "\x2\x7EF\x7F1\x5\x1FF\x100\x2\x7F0\x7EF\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2"+ - "\x2\x7F2\x7F0\x3\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F4\x3\x2\x2\x2"+ - "\x7F4\x7F5\x5\x1BB\xDE\x2\x7F5\x80D\x3\x2\x2\x2\x7F6\x7F8\x5\x1FF\x100"+ - "\x2\x7F7\x7F6\x3\x2\x2\x2\x7F8\x7F9\x3\x2\x2\x2\x7F9\x7F7\x3\x2\x2\x2"+ - "\x7F9\x7FA\x3\x2\x2\x2\x7FA\x7FB\x3\x2\x2\x2\x7FB\x7FD\x5\x1B9\xDD\x2"+ - "\x7FC\x7FE\x5\x1FF\x100\x2\x7FD\x7FC\x3\x2\x2\x2\x7FE\x7FF\x3\x2\x2\x2"+ - "\x7FF\x7FD\x3\x2\x2\x2\x7FF\x800\x3\x2\x2\x2\x800\x807\x3\x2\x2\x2\x801"+ - "\x803\x5\x1B9\xDD\x2\x802\x804\x5\x1FF\x100\x2\x803\x802\x3\x2\x2\x2\x804"+ - "\x805\x3\x2\x2\x2\x805\x803\x3\x2\x2\x2\x805\x806\x3\x2\x2\x2\x806\x808"+ - "\x3\x2\x2\x2\x807\x801\x3\x2\x2\x2\x807\x808\x3\x2\x2\x2\x808\x80A\x3"+ - "\x2\x2\x2\x809\x80B\x5\x1BB\xDE\x2\x80A\x809\x3\x2\x2\x2\x80A\x80B\x3"+ - "\x2\x2\x2\x80B\x80D\x3\x2\x2\x2\x80C\x7F0\x3\x2\x2\x2\x80C\x7F7\x3\x2"+ - "\x2\x2\x80D\x1B8\x3\x2\x2\x2\x80E\x810\x5\x1F9\xFD\x2\x80F\x80E\x3\x2"+ - "\x2\x2\x80F\x810\x3\x2\x2\x2\x810\x811\x3\x2\x2\x2\x811\x813\t\a\x2\x2"+ - "\x812\x814\x5\x1F9\xFD\x2\x813\x812\x3\x2\x2\x2\x813\x814\x3\x2\x2\x2"+ - "\x814\x1BA\x3\x2\x2\x2\x815\x817\x5\x1F9\xFD\x2\x816\x815\x3\x2\x2\x2"+ - "\x816\x817\x3\x2\x2\x2\x817\x820\x3\x2\x2\x2\x818\x819\x5\x203\x102\x2"+ - "\x819\x81A\x5\x21B\x10E\x2\x81A\x821\x3\x2\x2\x2\x81B\x81C\x5\x221\x111"+ - "\x2\x81C\x81D\x5\x21B\x10E\x2\x81D\x821\x3\x2\x2\x2\x81E\x821\x5\x203"+ - "\x102\x2\x81F\x821\x5\x221\x111\x2\x820\x818\x3\x2\x2\x2\x820\x81B\x3"+ - "\x2\x2\x2\x820\x81E\x3\x2\x2\x2\x820\x81F\x3\x2\x2\x2\x821\x1BC\x3\x2"+ - "\x2\x2\x822\x823\x5\x215\x10B\x2\x823\x824\x5\x203\x102\x2\x824\x825\x5"+ - "\x21D\x10F\x2\x825\x826\x5\x22B\x116\x2\x826\x827\x5\x203\x102\x2\x827"+ - "\x828\x5\x225\x113\x2\x828\x829\x5\x233\x11A\x2\x829\x1BE\x3\x2\x2\x2"+ - "\x82A\x82B\x5\x20D\x107\x2\x82B\x82C\x5\x20B\x106\x2\x82C\x82D\x5\x205"+ - "\x103\x2\x82D\x82E\x5\x225\x113\x2\x82E\x82F\x5\x22B\x116\x2\x82F\x830"+ - "\x5\x203\x102\x2\x830\x831\x5\x225\x113\x2\x831\x832\x5\x233\x11A\x2\x832"+ - "\x1C0\x3\x2\x2\x2\x833\x834\x5\x21B\x10E\x2\x834\x835\x5\x203\x102\x2"+ - "\x835\x836\x5\x225\x113\x2\x836\x837\x5\x207\x104\x2\x837\x838\x5\x211"+ - "\x109\x2\x838\x1C2\x3\x2\x2\x2\x839\x83A\x5\x203\x102\x2\x83A\x83B\x5"+ - "\x221\x111\x2\x83B\x83C\x5\x225\x113\x2\x83C\x83D\x5\x213\x10A\x2\x83D"+ - "\x83E\x5\x219\x10D\x2\x83E\x1C4\x3\x2\x2\x2\x83F\x840\x5\x21B\x10E\x2"+ - "\x840\x841\x5\x203\x102\x2\x841\x842\x5\x233\x11A\x2\x842\x1C6\x3\x2\x2"+ - "\x2\x843\x844\x5\x215\x10B\x2\x844\x845\x5\x22B\x116\x2\x845\x846\x5\x21D"+ - "\x10F\x2\x846\x847\x5\x20B\x106\x2\x847\x1C8\x3\x2\x2\x2\x848\x849\x5"+ - "\x215\x10B\x2\x849\x84A\x5\x22B\x116\x2\x84A\x84B\x5\x219\x10D\x2\x84B"+ - "\x84C\x5\x233\x11A\x2\x84C\x1CA\x3\x2\x2\x2\x84D\x84E\x5\x203\x102\x2"+ - "\x84E\x84F\x5\x22B\x116\x2\x84F\x850\x5\x20F\x108\x2\x850\x851\x5\x22B"+ - "\x116\x2\x851\x852\x5\x227\x114\x2\x852\x853\x5\x229\x115\x2\x853\x1CC"+ - "\x3\x2\x2\x2\x854\x855\x5\x227\x114\x2\x855\x856\x5\x20B\x106\x2\x856"+ - "\x857\x5\x221\x111\x2\x857\x858\x5\x229\x115\x2\x858\x859\x5\x20B\x106"+ - "\x2\x859\x85A\x5\x21B\x10E\x2\x85A\x85B\x5\x205\x103\x2\x85B\x85C\x5\x20B"+ - "\x106\x2\x85C\x85D\x5\x225\x113\x2\x85D\x1CE\x3\x2\x2\x2\x85E\x85F\x5"+ - "\x21F\x110\x2\x85F\x860\x5\x207\x104\x2\x860\x861\x5\x229\x115\x2\x861"+ - "\x862\x5\x21F\x110\x2\x862\x863\x5\x205\x103\x2\x863\x864\x5\x20B\x106"+ - "\x2\x864\x865\x5\x225\x113\x2\x865\x1D0\x3\x2\x2\x2\x866\x867\x5\x21D"+ - "\x10F\x2\x867\x868\x5\x21F\x110\x2\x868\x869\x5\x22D\x117\x2\x869\x86A"+ - "\x5\x20B\x106\x2\x86A\x86B\x5\x21B\x10E\x2\x86B\x86C\x5\x205\x103\x2\x86C"+ - "\x86D\x5\x20B\x106\x2\x86D\x86E\x5\x225\x113\x2\x86E\x1D2\x3\x2\x2\x2"+ - "\x86F\x870\x5\x209\x105\x2\x870\x871\x5\x20B\x106\x2\x871\x872\x5\x207"+ - "\x104\x2\x872\x873\x5\x20B\x106\x2\x873\x874\x5\x21B\x10E\x2\x874\x875"+ - "\x5\x205\x103\x2\x875\x876\x5\x20B\x106\x2\x876\x877\x5\x225\x113\x2\x877"+ - "\x1D4\x3\x2\x2\x2\x878\x879\x5\x215\x10B\x2\x879\x87A\x5\x203\x102\x2"+ - "\x87A\x87B\x5\x21D\x10F\x2\x87B\x1D6\x3\x2\x2\x2\x87C\x87D\x5\x20D\x107"+ - "\x2\x87D\x87E\x5\x20B\x106\x2\x87E\x87F\x5\x205\x103\x2\x87F\x1D8\x3\x2"+ - "\x2\x2\x880\x881\x5\x21B\x10E\x2\x881\x882\x5\x203\x102\x2\x882\x883\x5"+ - "\x225\x113\x2\x883\x1DA\x3\x2\x2\x2\x884\x885\x5\x203\x102\x2\x885\x886"+ - "\x5\x221\x111\x2\x886\x887\x5\x225\x113\x2\x887\x1DC\x3\x2\x2\x2\x888"+ - "\x889\x5\x215\x10B\x2\x889\x88A\x5\x22B\x116\x2\x88A\x88B\x5\x21D\x10F"+ - "\x2\x88B\x1DE\x3\x2\x2\x2\x88C\x88D\x5\x215\x10B\x2\x88D\x88E\x5\x22B"+ - "\x116\x2\x88E\x88F\x5\x219\x10D\x2\x88F\x1E0\x3\x2\x2\x2\x890\x891\x5"+ - "\x203\x102\x2\x891\x892\x5\x22B\x116\x2\x892\x893\x5\x20F\x108\x2\x893"+ - "\x1E2\x3\x2\x2\x2\x894\x895\x5\x227\x114\x2\x895\x896\x5\x20B\x106\x2"+ - "\x896\x897\x5\x221\x111\x2\x897\x1E4\x3\x2\x2\x2\x898\x899\x5\x21F\x110"+ - "\x2\x899\x89A\x5\x207\x104\x2\x89A\x89B\x5\x229\x115\x2\x89B\x1E6\x3\x2"+ - "\x2\x2\x89C\x89D\x5\x21D\x10F\x2\x89D\x89E\x5\x21F\x110\x2\x89E\x89F\x5"+ - "\x22D\x117\x2\x89F\x1E8\x3\x2\x2\x2\x8A0\x8A1\x5\x209\x105\x2\x8A1\x8A2"+ - "\x5\x20B\x106\x2\x8A2\x8A3\x5\x207\x104\x2\x8A3\x1EA\x3\x2\x2\x2\x8A4"+ - "\x8A6\t\b\x2\x2\x8A5\x8A4\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2\x2\x8A7\x8A5"+ - "\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AB\x5"+ - "\x1F7\xFC\x2\x8AA\x8AC\a\xF\x2\x2\x8AB\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2"+ - "\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AE\a\f\x2\x2\x8AE\x8AF\x3\x2\x2\x2"+ - "\x8AF\x8B0\b\xF6\x2\x2\x8B0\x1EC\x3\x2\x2\x2\x8B1\x8B3\t\t\x2\x2\x8B2"+ - "\x8B1\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B2\x3\x2\x2\x2\x8B4\x8B5"+ - "\x3\x2\x2\x2\x8B5\x1EE\x3\x2\x2\x2\x8B6\x8B8\x5\x1F5\xFB\x2\x8B7\x8B6"+ - "\x3\x2\x2\x2\x8B7\x8B8\x3\x2\x2\x2\x8B8\x8B9\x3\x2\x2\x2\x8B9\x8BA\x5"+ - "\x125\x93\x2\x8BA\x8BF\x5\x1F9\xFD\x2\x8BB\x8BE\x5\x1EB\xF6\x2\x8BC\x8BE"+ - "\n\t\x2\x2\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2\x2\x2\x8BE\x8C1\x3\x2"+ - "\x2\x2\x8BF\x8BD\x3\x2\x2\x2\x8BF\x8C0\x3\x2\x2\x2\x8C0\x1F0\x3\x2\x2"+ - "\x2\x8C1\x8BF\x3\x2\x2\x2\x8C2\x8C7\x5\x1F3\xFA\x2\x8C3\x8C6\x5\x1EB\xF6"+ - "\x2\x8C4\x8C6\n\t\x2\x2\x8C5\x8C3\x3\x2\x2\x2\x8C5\x8C4\x3\x2\x2\x2\x8C6"+ - "\x8C9\x3\x2\x2\x2\x8C7\x8C5\x3\x2\x2\x2\x8C7\x8C8\x3\x2\x2\x2\x8C8\x1F2"+ - "\x3\x2\x2\x2\x8C9\x8C7\x3\x2\x2\x2\x8CA\x8CB\a)\x2\x2\x8CB\x1F4\x3\x2"+ - "\x2\x2\x8CC\x8CD\a<\x2\x2\x8CD\x1F6\x3\x2\x2\x2\x8CE\x8CF\a\x61\x2\x2"+ - "\x8CF\x1F8\x3\x2\x2\x2\x8D0\x8D3\t\b\x2\x2\x8D1\x8D3\x5\x1EB\xF6\x2\x8D2"+ - "\x8D0\x3\x2\x2\x2\x8D2\x8D1\x3\x2\x2\x2\x8D3\x8D4\x3\x2\x2\x2\x8D4\x8D2"+ - "\x3\x2\x2\x2\x8D4\x8D5\x3\x2\x2\x2\x8D5\x1FA\x3\x2\x2\x2\x8D6\x8D8\n\n"+ - "\x2\x2\x8D7\x8D6\x3\x2\x2\x2\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8D7\x3\x2\x2"+ - "\x2\x8D9\x8DA\x3\x2\x2\x2\x8DA\x8E4\x3\x2\x2\x2\x8DB\x8DD\x5\x197\xCC"+ - "\x2\x8DC\x8DE\n\v\x2\x2\x8DD\x8DC\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF"+ - "\x8DD\x3\x2\x2\x2\x8DF\x8E0\x3\x2\x2\x2\x8E0\x8E1\x3\x2\x2\x2\x8E1\x8E2"+ - "\x5\x199\xCD\x2\x8E2\x8E4\x3\x2\x2\x2\x8E3\x8D7\x3\x2\x2\x2\x8E3\x8DB"+ - "\x3\x2\x2\x2\x8E4\x1FC\x3\x2\x2\x2\x8E5\x8E6\t\f\x2\x2\x8E6\x1FE\x3\x2"+ - "\x2\x2\x8E7\x8E8\t\r\x2\x2\x8E8\x200\x3\x2\x2\x2\x8E9\x8EA\t\xE\x2\x2"+ - "\x8EA\x202\x3\x2\x2\x2\x8EB\x8EC\t\xF\x2\x2\x8EC\x204\x3\x2\x2\x2\x8ED"+ - "\x8EE\t\x10\x2\x2\x8EE\x206\x3\x2\x2\x2\x8EF\x8F0\t\x11\x2\x2\x8F0\x208"+ - "\x3\x2\x2\x2\x8F1\x8F2\t\x12\x2\x2\x8F2\x20A\x3\x2\x2\x2\x8F3\x8F4\t\x13"+ - "\x2\x2\x8F4\x20C\x3\x2\x2\x2\x8F5\x8F6\t\x14\x2\x2\x8F6\x20E\x3\x2\x2"+ - "\x2\x8F7\x8F8\t\x15\x2\x2\x8F8\x210\x3\x2\x2\x2\x8F9\x8FA\t\x16\x2\x2"+ - "\x8FA\x212\x3\x2\x2\x2\x8FB\x8FC\t\x17\x2\x2\x8FC\x214\x3\x2\x2\x2\x8FD"+ - "\x8FE\t\x18\x2\x2\x8FE\x216\x3\x2\x2\x2\x8FF\x900\t\x19\x2\x2\x900\x218"+ - "\x3\x2\x2\x2\x901\x902\t\x1A\x2\x2\x902\x21A\x3\x2\x2\x2\x903\x904\t\x1B"+ - "\x2\x2\x904\x21C\x3\x2\x2\x2\x905\x906\t\x1C\x2\x2\x906\x21E\x3\x2\x2"+ - "\x2\x907\x908\t\x1D\x2\x2\x908\x220\x3\x2\x2\x2\x909\x90A\t\x1E\x2\x2"+ - "\x90A\x222\x3\x2\x2\x2\x90B\x90C\t\x1F\x2\x2\x90C\x224\x3\x2\x2\x2\x90D"+ - "\x90E\t \x2\x2\x90E\x226\x3\x2\x2\x2\x90F\x910\t!\x2\x2\x910\x228\x3\x2"+ - "\x2\x2\x911\x912\t\"\x2\x2\x912\x22A\x3\x2\x2\x2\x913\x914\t#\x2\x2\x914"+ - "\x22C\x3\x2\x2\x2\x915\x916\t$\x2\x2\x916\x22E\x3\x2\x2\x2\x917\x918\t"+ - "%\x2\x2\x918\x230\x3\x2\x2\x2\x919\x91A\t&\x2\x2\x91A\x232\x3\x2\x2\x2"+ - "\x91B\x91C\t\'\x2\x2\x91C\x234\x3\x2\x2\x2\x91D\x91E\t(\x2\x2\x91E\x236"+ - "\x3\x2\x2\x2\x35\x2\x502\x765\x767\x772\x775\x77D\x780\x784\x789\x78C"+ - "\x792\x796\x79B\x7A2\x7A7\x7AF\x7B5\x7BD\x7C2\x7C5\x7C8\x7CB\x7CE\x7D2"+ - "\x7E0\x7ED\x7F2\x7F9\x7FF\x805\x807\x80A\x80C\x80F\x813\x816\x820\x8A7"+ - "\x8AB\x8B4\x8B7\x8BD\x8BF\x8C5\x8C7\x8D2\x8D4\x8D9\x8DF\x8E3\x3\b\x2\x2"; + "g\x3g\x3g\x3g\x3h\x3h\x3h\x3h\x3h\x3i\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x3k"+ + "\x3k\x3k\x3k\x3k\x3l\x3l\x3l\x3l\x3m\x3m\x3m\x3m\x3m\x3n\x3n\x3n\x3n\x3"+ + "n\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3r"+ + "\x3r\x3r\x3r\x3r\x3s\x3s\x3s\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3u\x3"+ + "u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3v\x3v\x3v\x3v"+ + "\x3v\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3"+ + "x\x3x\x3x\x3x\x3x\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y\x3y"+ + "\x3y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3z\x3"+ + "z\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{\x3{"+ + "\x3{\x3{\x3{\x3{\x3{\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3"+ + "~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x7F\x3"+ + "\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3"+ + "\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x81\x3\x82\x3\x82\x3"+ + "\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3"+ + "\x82\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3"+ + "\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3"+ + "\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3"+ + "\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3"+ + "\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88\x3"+ + "\x88\x3\x88\x3\x88\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3\x89\x3"+ + "\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3"+ + "\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3"+ + "\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3"+ + "\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3"+ + "\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90\x3\x90\x3\x90\x3\x90\x3"+ + "\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3"+ + "\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3"+ + "\x93\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3"+ + "\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3"+ + "\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3"+ + "\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x98\x3\x98\x3\x98\x3"+ + "\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99\x3"+ + "\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3\x9B\x3\x9B\x3"+ + "\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3"+ + "\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3"+ + "\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\xA0\x3\xA0\x3"+ + "\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3"+ + "\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4\x3"+ + "\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA6\x3\xA6\x3"+ + "\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3"+ + "\xA8\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3"+ + "\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3"+ + "\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3"+ + "\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3"+ + "\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xB0\x3"+ + "\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3"+ + "\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3"+ + "\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3"+ + "\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6\x3\xB6\x3"+ + "\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xBA\x3"+ + "\xBA\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBE\x3\xBE\x3"+ + "\xBE\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC1\x3\xC1\x3\xC2\x3\xC2\x3\xC3\x3"+ + "\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC7\x3\xC7\x3"+ + "\xC8\x3\xC8\x3\xC9\x3\xC9\x3\xC9\x3\xC9\a\xC9\x739\n\xC9\f\xC9\xE\xC9"+ + "\x73C\v\xC9\x3\xC9\x3\xC9\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x6\xCA\x744\n\xCA"+ + "\r\xCA\xE\xCA\x745\x3\xCA\x5\xCA\x749\n\xCA\x3\xCB\x3\xCB\x3\xCB\x3\xCB"+ + "\x6\xCB\x74F\n\xCB\r\xCB\xE\xCB\x750\x3\xCB\x5\xCB\x754\n\xCB\x3\xCC\x3"+ + "\xCC\x5\xCC\x758\n\xCC\x3\xCC\x6\xCC\x75B\n\xCC\r\xCC\xE\xCC\x75C\x3\xCC"+ + "\x5\xCC\x760\n\xCC\x3\xCD\x3\xCD\x3\xCD\x3\xCD\x5\xCD\x766\n\xCD\x3\xCE"+ + "\x3\xCE\x5\xCE\x76A\n\xCE\x3\xCE\a\xCE\x76D\n\xCE\f\xCE\xE\xCE\x770\v"+ + "\xCE\x3\xCE\x3\xCE\x6\xCE\x774\n\xCE\r\xCE\xE\xCE\x775\x3\xCE\x3\xCE\x3"+ + "\xCE\x5\xCE\x77B\n\xCE\x3\xCF\x3\xCF\x3\xCF\x3\xCF\x3\xD0\x3\xD0\x5\xD0"+ + "\x783\n\xD0\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x5\xD0\x789\n\xD0\x3\xD1\x3\xD1"+ + "\x3\xD1\x3\xD1\x3\xD1\x3\xD1\x5\xD1\x791\n\xD1\x3\xD2\x6\xD2\x794\n\xD2"+ + "\r\xD2\xE\xD2\x795\x3\xD2\x5\xD2\x799\n\xD2\x3\xD3\x5\xD3\x79C\n\xD3\x3"+ + "\xD3\x5\xD3\x79F\n\xD3\x3\xD3\x5\xD3\x7A2\n\xD3\x3\xD4\x3\xD4\x5\xD4\x7A6"+ + "\n\xD4\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5"+ + "\x3\xD5\x3\xD5\x3\xD5\x5\xD5\x7B4\n\xD5\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3"+ + "\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x5\xD6\x7C1\n\xD6\x3\xD7"+ + "\x6\xD7\x7C4\n\xD7\r\xD7\xE\xD7\x7C5\x3\xD7\x3\xD7\x3\xD7\x6\xD7\x7CB"+ + "\n\xD7\r\xD7\xE\xD7\x7CC\x3\xD7\x3\xD7\x6\xD7\x7D1\n\xD7\r\xD7\xE\xD7"+ + "\x7D2\x3\xD7\x3\xD7\x6\xD7\x7D7\n\xD7\r\xD7\xE\xD7\x7D8\x5\xD7\x7DB\n"+ + "\xD7\x3\xD7\x5\xD7\x7DE\n\xD7\x5\xD7\x7E0\n\xD7\x3\xD8\x5\xD8\x7E3\n\xD8"+ + "\x3\xD8\x3\xD8\x5\xD8\x7E7\n\xD8\x3\xD9\x5\xD9\x7EA\n\xD9\x3\xD9\x3\xD9"+ + "\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x5\xD9\x7F4\n\xD9\x3\xDA\x3"+ + "\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDA\x3\xDB\x3\xDB\x3\xDB\x3"+ + "\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3"+ + "\xDC\x3\xDC\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDE\x3\xDE\x3"+ + "\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE0\x3"+ + "\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE1\x3\xE2\x3"+ + "\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x3\xE3\x3"+ + "\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x3\xE4\x3\xE4\x3\xE4\x3"+ + "\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3"+ + "\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE5\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE7\x3"+ + "\xE7\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3"+ + "\xE9\x3\xEA\x3\xEA\x3\xEA\x3\xEA\x3\xEB\x3\xEB\x3\xEB\x3\xEB\x3\xEC\x3"+ + "\xEC\x3\xEC\x3\xEC\x3\xED\x3\xED\x3\xED\x3\xED\x3\xEE\x3\xEE\x3\xEE\x3"+ + "\xEE\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF1\x6"+ + "\xF1\x879\n\xF1\r\xF1\xE\xF1\x87A\x3\xF1\x3\xF1\x5\xF1\x87F\n\xF1\x3\xF1"+ + "\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x6\xF2\x886\n\xF2\r\xF2\xE\xF2\x887\x3\xF3"+ + "\x5\xF3\x88B\n\xF3\x3\xF3\x3\xF3\x3\xF3\x3\xF3\a\xF3\x891\n\xF3\f\xF3"+ + "\xE\xF3\x894\v\xF3\x3\xF4\x3\xF4\x3\xF4\a\xF4\x899\n\xF4\f\xF4\xE\xF4"+ + "\x89C\v\xF4\x3\xF5\x3\xF5\x3\xF6\x3\xF6\x3\xF7\x3\xF7\x3\xF8\x3\xF8\x6"+ + "\xF8\x8A6\n\xF8\r\xF8\xE\xF8\x8A7\x3\xF9\x6\xF9\x8AB\n\xF9\r\xF9\xE\xF9"+ + "\x8AC\x3\xF9\x3\xF9\x6\xF9\x8B1\n\xF9\r\xF9\xE\xF9\x8B2\x3\xF9\x3\xF9"+ + "\x5\xF9\x8B7\n\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x3\xFD\x3"+ + "\xFD\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x101\x3\x101\x3\x102"+ + "\x3\x102\x3\x103\x3\x103\x3\x104\x3\x104\x3\x105\x3\x105\x3\x106\x3\x106"+ + "\x3\x107\x3\x107\x3\x108\x3\x108\x3\x109\x3\x109\x3\x10A\x3\x10A\x3\x10B"+ + "\x3\x10B\x3\x10C\x3\x10C\x3\x10D\x3\x10D\x3\x10E\x3\x10E\x3\x10F\x3\x10F"+ + "\x3\x110\x3\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113\x3\x113\x3\x114"+ + "\x3\x114\x3\x115\x3\x115\x3\x116\x3\x116\x2\x2\x2\x117\x3\x2\x3\x5\x2"+ + "\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17"+ + "\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14"+ + "\'\x2\x15)\x2\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2"+ + "\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$"+ + "G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31"+ + "\x61\x2\x32\x63\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2"+ + "\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43"+ + "\x85\x2\x44\x87\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93"+ + "\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5"+ + "\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\"+ + "\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5"+ + "\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k"+ + "\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2"+ + "t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7"+ + "\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83"+ + "\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89"+ + "\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F"+ + "\x11D\x2\x90\x11F\x2\x91\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95"+ + "\x129\x2\x96\x12B\x2\x97\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B"+ + "\x135\x2\x9C\x137\x2\x9D\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1"+ + "\x141\x2\xA2\x143\x2\xA3\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7"+ + "\x14D\x2\xA8\x14F\x2\xA9\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD"+ + "\x159\x2\xAE\x15B\x2\xAF\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3"+ + "\x165\x2\xB4\x167\x2\xB5\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9"+ + "\x171\x2\xBA\x173\x2\xBB\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF"+ + "\x17D\x2\xC0\x17F\x2\xC1\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5"+ + "\x189\x2\xC6\x18B\x2\xC7\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB"+ + "\x195\x2\xCC\x197\x2\xCD\x199\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\x2"+ + "\x1A1\x2\x2\x1A3\x2\x2\x1A5\x2\x2\x1A7\x2\x2\x1A9\x2\x2\x1AB\x2\x2\x1AD"+ + "\x2\x2\x1AF\x2\x2\x1B1\x2\x2\x1B3\x2\xD1\x1B5\x2\xD2\x1B7\x2\xD3\x1B9"+ + "\x2\xD4\x1BB\x2\xD5\x1BD\x2\xD6\x1BF\x2\xD7\x1C1\x2\xD8\x1C3\x2\xD9\x1C5"+ + "\x2\xDA\x1C7\x2\xDB\x1C9\x2\xDC\x1CB\x2\xDD\x1CD\x2\xDE\x1CF\x2\xDF\x1D1"+ + "\x2\xE0\x1D3\x2\xE1\x1D5\x2\xE2\x1D7\x2\xE3\x1D9\x2\xE4\x1DB\x2\xE5\x1DD"+ + "\x2\xE6\x1DF\x2\xE7\x1E1\x2\xE8\x1E3\x2\xE9\x1E5\x2\xEA\x1E7\x2\xEB\x1E9"+ + "\x2\xEC\x1EB\x2\xED\x1ED\x2\xEE\x1EF\x2\xEF\x1F1\x2\xF0\x1F3\x2\x2\x1F5"+ + "\x2\x2\x1F7\x2\x2\x1F9\x2\x2\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2"+ + "\x2\x203\x2\x2\x205\x2\x2\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2"+ + "\x20F\x2\x2\x211\x2\x2\x213\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B"+ + "\x2\x2\x21D\x2\x2\x21F\x2\x2\x221\x2\x2\x223\x2\x2\x225\x2\x2\x227\x2"+ + "\x2\x229\x2\x2\x22B\x2\x2\x3\x2)\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32"+ + ";\x43H\x5\x2%%((\x42\x42\x4\x2./\x31\x31\x4\x2\x30\x30<<\x4\x2\v\v\"\""+ + "\x5\x2\f\f\xF\xF\x202A\x202B\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~"+ + "~\x6\x2\f\f\xF\xF##^_\v\x2\x43\\\x61\x61\x63|\xC6\xC6\xD8\xD8\xDE\xDE"+ + "\xE6\xE6\xF8\xF8\xFE\xFE\x3\x2\x32;\f\x2\x32;\x43\\\x61\x61\x63|\xC6\xC6"+ + "\xD8\xD8\xDE\xDE\xE6\xE6\xF8\xF8\xFE\xFE\x4\x2\x43\x43\x63\x63\x4\x2\x44"+ + "\x44\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4"+ + "\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4"+ + "\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4"+ + "\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||"+ + "\x913\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2"+ + "\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2"+ + "\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19"+ + "\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2"+ + "\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)"+ + "\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3"+ + "\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2"+ + "\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41"+ + "\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2"+ + "I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2"+ + "\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2"+ + "\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2"+ + "\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2"+ + "k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2"+ + "\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2"+ + "\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2"+ + "\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3"+ + "\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2"+ + "\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2"+ + "\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3"+ + "\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2"+ + "\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2"+ + "\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3"+ + "\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2"+ + "\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2"+ + "\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3"+ + "\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2"+ + "\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2"+ + "\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3"+ + "\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2"+ + "\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2"+ + "\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3"+ + "\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2"+ + "\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2"+ + "\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2"+ + "\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2"+ + "\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2"+ + "\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2"+ + "\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2"+ + "\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2"+ + "\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2"+ + "\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2"+ + "\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2"+ + "\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2"+ + "\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2"+ + "\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2"+ + "\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2"+ + "\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2"+ + "\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2"+ + "\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2"+ + "\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2"+ + "\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2"+ + "\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2"+ + "\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2"+ + "\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2"+ + "\x19B\x3\x2\x2\x2\x2\x19D\x3\x2\x2\x2\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2"+ + "\x2\x2\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2"+ + "\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2"+ + "\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2"+ + "\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2\x1CF\x3\x2\x2\x2\x2\x1D1\x3\x2"+ + "\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3\x2\x2\x2\x2\x1D7\x3\x2\x2\x2\x2"+ + "\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2\x2\x1DD\x3\x2\x2\x2\x2\x1DF\x3\x2"+ + "\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3\x2\x2\x2\x2\x1E5\x3\x2\x2\x2\x2"+ + "\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2\x2\x1EB\x3\x2\x2\x2\x2\x1ED\x3\x2"+ + "\x2\x2\x2\x1EF\x3\x2\x2\x2\x2\x1F1\x3\x2\x2\x2\x3\x22D\x3\x2\x2\x2\x5"+ + "\x22F\x3\x2\x2\x2\a\x231\x3\x2\x2\x2\t\x233\x3\x2\x2\x2\v\x235\x3\x2\x2"+ + "\x2\r\x237\x3\x2\x2\x2\xF\x239\x3\x2\x2\x2\x11\x23B\x3\x2\x2\x2\x13\x23D"+ + "\x3\x2\x2\x2\x15\x244\x3\x2\x2\x2\x17\x24E\x3\x2\x2\x2\x19\x254\x3\x2"+ + "\x2\x2\x1B\x258\x3\x2\x2\x2\x1D\x262\x3\x2\x2\x2\x1F\x26E\x3\x2\x2\x2"+ + "!\x275\x3\x2\x2\x2#\x278\x3\x2\x2\x2%\x27E\x3\x2\x2\x2\'\x283\x3\x2\x2"+ + "\x2)\x28A\x3\x2\x2\x2+\x292\x3\x2\x2\x2-\x298\x3\x2\x2\x2/\x29E\x3\x2"+ + "\x2\x2\x31\x2A3\x3\x2\x2\x2\x33\x2A8\x3\x2\x2\x2\x35\x2AD\x3\x2\x2\x2"+ + "\x37\x2B3\x3\x2\x2\x2\x39\x2BB\x3\x2\x2\x2;\x2C1\x3\x2\x2\x2=\x2C7\x3"+ + "\x2\x2\x2?\x2D2\x3\x2\x2\x2\x41\x2D8\x3\x2\x2\x2\x43\x2E1\x3\x2\x2\x2"+ + "\x45\x2E6\x3\x2\x2\x2G\x2EE\x3\x2\x2\x2I\x2F6\x3\x2\x2\x2K\x2FE\x3\x2"+ + "\x2\x2M\x306\x3\x2\x2\x2O\x30D\x3\x2\x2\x2Q\x314\x3\x2\x2\x2S\x31B\x3"+ + "\x2\x2\x2U\x322\x3\x2\x2\x2W\x329\x3\x2\x2\x2Y\x330\x3\x2\x2\x2[\x337"+ + "\x3\x2\x2\x2]\x33E\x3\x2\x2\x2_\x345\x3\x2\x2\x2\x61\x353\x3\x2\x2\x2"+ + "\x63\x357\x3\x2\x2\x2\x65\x35A\x3\x2\x2\x2g\x361\x3\x2\x2\x2i\x366\x3"+ + "\x2\x2\x2k\x36B\x3\x2\x2\x2m\x372\x3\x2\x2\x2o\x378\x3\x2\x2\x2q\x381"+ + "\x3\x2\x2\x2s\x38E\x3\x2\x2\x2u\x395\x3\x2\x2\x2w\x3A2\x3\x2\x2\x2y\x3AD"+ + "\x3\x2\x2\x2{\x3B5\x3\x2\x2\x2}\x3BE\x3\x2\x2\x2\x7F\x3C7\x3\x2\x2\x2"+ + "\x81\x3CB\x3\x2\x2\x2\x83\x3D0\x3\x2\x2\x2\x85\x3D4\x3\x2\x2\x2\x87\x3DA"+ + "\x3\x2\x2\x2\x89\x3E0\x3\x2\x2\x2\x8B\x3E6\x3\x2\x2\x2\x8D\x3EE\x3\x2"+ + "\x2\x2\x8F\x3F7\x3\x2\x2\x2\x91\x405\x3\x2\x2\x2\x93\x413\x3\x2\x2\x2"+ + "\x95\x41C\x3\x2\x2\x2\x97\x422\x3\x2\x2\x2\x99\x42B\x3\x2\x2\x2\x9B\x432"+ + "\x3\x2\x2\x2\x9D\x436\x3\x2\x2\x2\x9F\x43F\x3\x2\x2\x2\xA1\x443\x3\x2"+ + "\x2\x2\xA3\x44A\x3\x2\x2\x2\xA5\x450\x3\x2\x2\x2\xA7\x455\x3\x2\x2\x2"+ + "\xA9\x458\x3\x2\x2\x2\xAB\x45C\x3\x2\x2\x2\xAD\x467\x3\x2\x2\x2\xAF\x46A"+ + "\x3\x2\x2\x2\xB1\x470\x3\x2\x2\x2\xB3\x473\x3\x2\x2\x2\xB5\x47B\x3\x2"+ + "\x2\x2\xB7\x480\x3\x2\x2\x2\xB9\x485\x3\x2\x2\x2\xBB\x48A\x3\x2\x2\x2"+ + "\xBD\x48F\x3\x2\x2\x2\xBF\x494\x3\x2\x2\x2\xC1\x498\x3\x2\x2\x2\xC3\x49C"+ + "\x3\x2\x2\x2\xC5\x4A0\x3\x2\x2\x2\xC7\x4A5\x3\x2\x2\x2\xC9\x4B0\x3\x2"+ + "\x2\x2\xCB\x4BA\x3\x2\x2\x2\xCD\x4C5\x3\x2\x2\x2\xCF\x4D5\x3\x2\x2\x2"+ + "\xD1\x4DA\x3\x2\x2\x2\xD3\x4DD\x3\x2\x2\x2\xD5\x4E1\x3\x2\x2\x2\xD7\x4E7"+ + "\x3\x2\x2\x2\xD9\x4EB\x3\x2\x2\x2\xDB\x4F0\x3\x2\x2\x2\xDD\x4F5\x3\x2"+ + "\x2\x2\xDF\x4F9\x3\x2\x2\x2\xE1\x4FD\x3\x2\x2\x2\xE3\x505\x3\x2\x2\x2"+ + "\xE5\x50A\x3\x2\x2\x2\xE7\x50D\x3\x2\x2\x2\xE9\x516\x3\x2\x2\x2\xEB\x525"+ + "\x3\x2\x2\x2\xED\x52A\x3\x2\x2\x2\xEF\x533\x3\x2\x2\x2\xF1\x53F\x3\x2"+ + "\x2\x2\xF3\x54F\x3\x2\x2\x2\xF5\x55E\x3\x2\x2\x2\xF7\x574\x3\x2\x2\x2"+ + "\xF9\x577\x3\x2\x2\x2\xFB\x57E\x3\x2\x2\x2\xFD\x589\x3\x2\x2\x2\xFF\x592"+ + "\x3\x2\x2\x2\x101\x598\x3\x2\x2\x2\x103\x5A0\x3\x2\x2\x2\x105\x5AD\x3"+ + "\x2\x2\x2\x107\x5BA\x3\x2\x2\x2\x109\x5C7\x3\x2\x2\x2\x10B\x5CF\x3\x2"+ + "\x2\x2\x10D\x5D6\x3\x2\x2\x2\x10F\x5DA\x3\x2\x2\x2\x111\x5E1\x3\x2\x2"+ + "\x2\x113\x5EB\x3\x2\x2\x2\x115\x5F6\x3\x2\x2\x2\x117\x5FB\x3\x2\x2\x2"+ + "\x119\x606\x3\x2\x2\x2\x11B\x60C\x3\x2\x2\x2\x11D\x610\x3\x2\x2\x2\x11F"+ + "\x616\x3\x2\x2\x2\x121\x61D\x3\x2\x2\x2\x123\x624\x3\x2\x2\x2\x125\x62A"+ + "\x3\x2\x2\x2\x127\x62F\x3\x2\x2\x2\x129\x63B\x3\x2\x2\x2\x12B\x647\x3"+ + "\x2\x2\x2\x12D\x64C\x3\x2\x2\x2\x12F\x653\x3\x2\x2\x2\x131\x65C\x3\x2"+ + "\x2\x2\x133\x660\x3\x2\x2\x2\x135\x668\x3\x2\x2\x2\x137\x66F\x3\x2\x2"+ + "\x2\x139\x676\x3\x2\x2\x2\x13B\x67A\x3\x2\x2\x2\x13D\x681\x3\x2\x2\x2"+ + "\x13F\x686\x3\x2\x2\x2\x141\x68B\x3\x2\x2\x2\x143\x692\x3\x2\x2\x2\x145"+ + "\x696\x3\x2\x2\x2\x147\x69A\x3\x2\x2\x2\x149\x69F\x3\x2\x2\x2\x14B\x6A4"+ + "\x3\x2\x2\x2\x14D\x6A9\x3\x2\x2\x2\x14F\x6AC\x3\x2\x2\x2\x151\x6B1\x3"+ + "\x2\x2\x2\x153\x6B6\x3\x2\x2\x2\x155\x6BD\x3\x2\x2\x2\x157\x6C4\x3\x2"+ + "\x2\x2\x159\x6CB\x3\x2\x2\x2\x15B\x6D1\x3\x2\x2\x2\x15D\x6D9\x3\x2\x2"+ + "\x2\x15F\x6E1\x3\x2\x2\x2\x161\x6E6\x3\x2\x2\x2\x163\x6EC\x3\x2\x2\x2"+ + "\x165\x6F2\x3\x2\x2\x2\x167\x6F7\x3\x2\x2\x2\x169\x702\x3\x2\x2\x2\x16B"+ + "\x708\x3\x2\x2\x2\x16D\x70C\x3\x2\x2\x2\x16F\x70E\x3\x2\x2\x2\x171\x711"+ + "\x3\x2\x2\x2\x173\x713\x3\x2\x2\x2\x175\x715\x3\x2\x2\x2\x177\x717\x3"+ + "\x2\x2\x2\x179\x71A\x3\x2\x2\x2\x17B\x71C\x3\x2\x2\x2\x17D\x71F\x3\x2"+ + "\x2\x2\x17F\x721\x3\x2\x2\x2\x181\x723\x3\x2\x2\x2\x183\x725\x3\x2\x2"+ + "\x2\x185\x727\x3\x2\x2\x2\x187\x72A\x3\x2\x2\x2\x189\x72C\x3\x2\x2\x2"+ + "\x18B\x72E\x3\x2\x2\x2\x18D\x730\x3\x2\x2\x2\x18F\x732\x3\x2\x2\x2\x191"+ + "\x734\x3\x2\x2\x2\x193\x73F\x3\x2\x2\x2\x195\x74A\x3\x2\x2\x2\x197\x757"+ + "\x3\x2\x2\x2\x199\x761\x3\x2\x2\x2\x19B\x769\x3\x2\x2\x2\x19D\x77C\x3"+ + "\x2\x2\x2\x19F\x788\x3\x2\x2\x2\x1A1\x78A\x3\x2\x2\x2\x1A3\x798\x3\x2"+ + "\x2\x2\x1A5\x79B\x3\x2\x2\x2\x1A7\x7A5\x3\x2\x2\x2\x1A9\x7B3\x3\x2\x2"+ + "\x2\x1AB\x7C0\x3\x2\x2\x2\x1AD\x7DF\x3\x2\x2\x2\x1AF\x7E2\x3\x2\x2\x2"+ + "\x1B1\x7E9\x3\x2\x2\x2\x1B3\x7F5\x3\x2\x2\x2\x1B5\x7FD\x3\x2\x2\x2\x1B7"+ + "\x806\x3\x2\x2\x2\x1B9\x80C\x3\x2\x2\x2\x1BB\x812\x3\x2\x2\x2\x1BD\x816"+ + "\x3\x2\x2\x2\x1BF\x81B\x3\x2\x2\x2\x1C1\x820\x3\x2\x2\x2\x1C3\x827\x3"+ + "\x2\x2\x2\x1C5\x831\x3\x2\x2\x2\x1C7\x839\x3\x2\x2\x2\x1C9\x842\x3\x2"+ + "\x2\x2\x1CB\x84B\x3\x2\x2\x2\x1CD\x84F\x3\x2\x2\x2\x1CF\x853\x3\x2\x2"+ + "\x2\x1D1\x857\x3\x2\x2\x2\x1D3\x85B\x3\x2\x2\x2\x1D5\x85F\x3\x2\x2\x2"+ + "\x1D7\x863\x3\x2\x2\x2\x1D9\x867\x3\x2\x2\x2\x1DB\x86B\x3\x2\x2\x2\x1DD"+ + "\x86F\x3\x2\x2\x2\x1DF\x873\x3\x2\x2\x2\x1E1\x878\x3\x2\x2\x2\x1E3\x885"+ + "\x3\x2\x2\x2\x1E5\x88A\x3\x2\x2\x2\x1E7\x895\x3\x2\x2\x2\x1E9\x89D\x3"+ + "\x2\x2\x2\x1EB\x89F\x3\x2\x2\x2\x1ED\x8A1\x3\x2\x2\x2\x1EF\x8A5\x3\x2"+ + "\x2\x2\x1F1\x8B6\x3\x2\x2\x2\x1F3\x8B8\x3\x2\x2\x2\x1F5\x8BA\x3\x2\x2"+ + "\x2\x1F7\x8BC\x3\x2\x2\x2\x1F9\x8BE\x3\x2\x2\x2\x1FB\x8C0\x3\x2\x2\x2"+ + "\x1FD\x8C2\x3\x2\x2\x2\x1FF\x8C4\x3\x2\x2\x2\x201\x8C6\x3\x2\x2\x2\x203"+ + "\x8C8\x3\x2\x2\x2\x205\x8CA\x3\x2\x2\x2\x207\x8CC\x3\x2\x2\x2\x209\x8CE"+ + "\x3\x2\x2\x2\x20B\x8D0\x3\x2\x2\x2\x20D\x8D2\x3\x2\x2\x2\x20F\x8D4\x3"+ + "\x2\x2\x2\x211\x8D6\x3\x2\x2\x2\x213\x8D8\x3\x2\x2\x2\x215\x8DA\x3\x2"+ + "\x2\x2\x217\x8DC\x3\x2\x2\x2\x219\x8DE\x3\x2\x2\x2\x21B\x8E0\x3\x2\x2"+ + "\x2\x21D\x8E2\x3\x2\x2\x2\x21F\x8E4\x3\x2\x2\x2\x221\x8E6\x3\x2\x2\x2"+ + "\x223\x8E8\x3\x2\x2\x2\x225\x8EA\x3\x2\x2\x2\x227\x8EC\x3\x2\x2\x2\x229"+ + "\x8EE\x3\x2\x2\x2\x22B\x8F0\x3\x2\x2\x2\x22D\x22E\a\x42\x2\x2\x22E\x4"+ + "\x3\x2\x2\x2\x22F\x230\a#\x2\x2\x230\x6\x3\x2\x2\x2\x231\x232\a%\x2\x2"+ + "\x232\b\x3\x2\x2\x2\x233\x234\a&\x2\x2\x234\n\x3\x2\x2\x2\x235\x236\a"+ + "\'\x2\x2\x236\f\x3\x2\x2\x2\x237\x238\a=\x2\x2\x238\xE\x3\x2\x2\x2\x239"+ + "\x23A\a.\x2\x2\x23A\x10\x3\x2\x2\x2\x23B\x23C\a\x30\x2\x2\x23C\x12\x3"+ + "\x2\x2\x2\x23D\x23E\x5\x1F9\xFD\x2\x23E\x23F\x5\x1FD\xFF\x2\x23F\x240"+ + "\x5\x1FD\xFF\x2\x240\x241\x5\x201\x101\x2\x241\x242\x5\x21D\x10F\x2\x242"+ + "\x243\x5\x21D\x10F\x2\x243\x14\x3\x2\x2\x2\x244\x245\x5\x1F9\xFD\x2\x245"+ + "\x246\x5\x1FF\x100\x2\x246\x247\x5\x1FF\x100\x2\x247\x248\x5\x21B\x10E"+ + "\x2\x248\x249\x5\x201\x101\x2\x249\x24A\x5\x21D\x10F\x2\x24A\x24B\x5\x21D"+ + "\x10F\x2\x24B\x24C\x5\x215\x10B\x2\x24C\x24D\x5\x203\x102\x2\x24D\x16"+ + "\x3\x2\x2\x2\x24E\x24F\x5\x1F9\xFD\x2\x24F\x250\x5\x20F\x108\x2\x250\x251"+ + "\x5\x209\x105\x2\x251\x252\x5\x1F9\xFD\x2\x252\x253\x5\x21D\x10F\x2\x253"+ + "\x18\x3\x2\x2\x2\x254\x255\x5\x1F9\xFD\x2\x255\x256\x5\x213\x10A\x2\x256"+ + "\x257\x5\x1FF\x100\x2\x257\x1A\x3\x2\x2\x2\x258\x259\x5\x1F9\xFD\x2\x259"+ + "\x25A\x5\x21F\x110\x2\x25A\x25B\x5\x21F\x110\x2\x25B\x25C\x5\x21B\x10E"+ + "\x2\x25C\x25D\x5\x209\x105\x2\x25D\x25E\x5\x1FB\xFE\x2\x25E\x25F\x5\x221"+ + "\x111\x2\x25F\x260\x5\x21F\x110\x2\x260\x261\x5\x201\x101\x2\x261\x1C"+ + "\x3\x2\x2\x2\x262\x263\x5\x1F9\xFD\x2\x263\x264\x5\x217\x10C\x2\x264\x265"+ + "\x5\x217\x10C\x2\x265\x266\x5\x1F9\xFD\x2\x266\x267\x5\x1FD\xFF\x2\x267"+ + "\x268\x5\x21F\x110\x2\x268\x269\x5\x209\x105\x2\x269\x26A\x5\x223\x112"+ + "\x2\x26A\x26B\x5\x1F9\xFD\x2\x26B\x26C\x5\x21F\x110\x2\x26C\x26D\x5\x201"+ + "\x101\x2\x26D\x1E\x3\x2\x2\x2\x26E\x26F\x5\x1F9\xFD\x2\x26F\x270\x5\x217"+ + "\x10C\x2\x270\x271\x5\x217\x10C\x2\x271\x272\x5\x201\x101\x2\x272\x273"+ + "\x5\x213\x10A\x2\x273\x274\x5\x1FF\x100\x2\x274 \x3\x2\x2\x2\x275\x276"+ + "\x5\x1F9\xFD\x2\x276\x277\x5\x21D\x10F\x2\x277\"\x3\x2\x2\x2\x278\x279"+ + "\x5\x1FB\xFE\x2\x279\x27A\x5\x201\x101\x2\x27A\x27B\x5\x205\x103\x2\x27B"+ + "\x27C\x5\x209\x105\x2\x27C\x27D\x5\x213\x10A\x2\x27D$\x3\x2\x2\x2\x27E"+ + "\x27F\x5\x1FB\xFE\x2\x27F\x280\x5\x201\x101\x2\x280\x281\x5\x201\x101"+ + "\x2\x281\x282\x5\x217\x10C\x2\x282&\x3\x2\x2\x2\x283\x284\x5\x1FB\xFE"+ + "\x2\x284\x285\x5\x209\x105\x2\x285\x286\x5\x213\x10A\x2\x286\x287\x5\x1F9"+ + "\xFD\x2\x287\x288\x5\x21B\x10E\x2\x288\x289\x5\x229\x115\x2\x289(\x3\x2"+ + "\x2\x2\x28A\x28B\x5\x1FB\xFE\x2\x28B\x28C\x5\x215\x10B\x2\x28C\x28D\x5"+ + "\x215\x10B\x2\x28D\x28E\x5\x20F\x108\x2\x28E\x28F\x5\x201\x101\x2\x28F"+ + "\x290\x5\x1F9\xFD\x2\x290\x291\x5\x213\x10A\x2\x291*\x3\x2\x2\x2\x292"+ + "\x293\x5\x1FB\xFE\x2\x293\x294\x5\x229\x115\x2\x294\x295\x5\x223\x112"+ + "\x2\x295\x296\x5\x1F9\xFD\x2\x296\x297\x5\x20F\x108\x2\x297,\x3\x2\x2"+ + "\x2\x298\x299\x5\x1FB\xFE\x2\x299\x29A\x5\x229\x115\x2\x29A\x29B\x5\x21B"+ + "\x10E\x2\x29B\x29C\x5\x201\x101\x2\x29C\x29D\x5\x203\x102\x2\x29D.\x3"+ + "\x2\x2\x2\x29E\x29F\x5\x1FB\xFE\x2\x29F\x2A0\x5\x229\x115\x2\x2A0\x2A1"+ + "\x5\x21F\x110\x2\x2A1\x2A2\x5\x201\x101\x2\x2A2\x30\x3\x2\x2\x2\x2A3\x2A4"+ + "\x5\x1FD\xFF\x2\x2A4\x2A5\x5\x1F9\xFD\x2\x2A5\x2A6\x5\x20F\x108\x2\x2A6"+ + "\x2A7\x5\x20F\x108\x2\x2A7\x32\x3\x2\x2\x2\x2A8\x2A9\x5\x1FD\xFF\x2\x2A9"+ + "\x2AA\x5\x1F9\xFD\x2\x2AA\x2AB\x5\x21D\x10F\x2\x2AB\x2AC\x5\x201\x101"+ + "\x2\x2AC\x34\x3\x2\x2\x2\x2AD\x2AE\x5\x1FD\xFF\x2\x2AE\x2AF\x5\x207\x104"+ + "\x2\x2AF\x2B0\x5\x1FF\x100\x2\x2B0\x2B1\x5\x209\x105\x2\x2B1\x2B2\x5\x21B"+ + "\x10E\x2\x2B2\x36\x3\x2\x2\x2\x2B3\x2B4\x5\x1FD\xFF\x2\x2B4\x2B5\x5\x207"+ + "\x104\x2\x2B5\x2B6\x5\x1FF\x100\x2\x2B6\x2B7\x5\x21B\x10E\x2\x2B7\x2B8"+ + "\x5\x209\x105\x2\x2B8\x2B9\x5\x223\x112\x2\x2B9\x2BA\x5\x201\x101\x2\x2BA"+ + "\x38\x3\x2\x2\x2\x2BB\x2BC\x5\x1FD\xFF\x2\x2BC\x2BD\x5\x20F\x108\x2\x2BD"+ + "\x2BE\x5\x1F9\xFD\x2\x2BE\x2BF\x5\x21D\x10F\x2\x2BF\x2C0\x5\x21D\x10F"+ + "\x2\x2C0:\x3\x2\x2\x2\x2C1\x2C2\x5\x1FD\xFF\x2\x2C2\x2C3\x5\x20F\x108"+ + "\x2\x2C3\x2C4\x5\x215\x10B\x2\x2C4\x2C5\x5\x21D\x10F\x2\x2C5\x2C6\x5\x201"+ + "\x101\x2\x2C6<\x3\x2\x2\x2\x2C7\x2C8\x5\x1FD\xFF\x2\x2C8\x2C9\x5\x215"+ + "\x10B\x2\x2C9\x2CA\x5\x20F\x108\x2\x2CA\x2CB\x5\x20F\x108\x2\x2CB\x2CC"+ + "\x5\x201\x101\x2\x2CC\x2CD\x5\x1FD\xFF\x2\x2CD\x2CE\x5\x21F\x110\x2\x2CE"+ + "\x2CF\x5\x209\x105\x2\x2CF\x2D0\x5\x215\x10B\x2\x2D0\x2D1\x5\x213\x10A"+ + "\x2\x2D1>\x3\x2\x2\x2\x2D2\x2D3\x5\x1FD\xFF\x2\x2D3\x2D4\x5\x215\x10B"+ + "\x2\x2D4\x2D5\x5\x213\x10A\x2\x2D5\x2D6\x5\x21D\x10F\x2\x2D6\x2D7\x5\x21F"+ + "\x110\x2\x2D7@\x3\x2\x2\x2\x2D8\x2D9\x5\x1FF\x100\x2\x2D9\x2DA\x5\x1F9"+ + "\xFD\x2\x2DA\x2DB\x5\x21F\x110\x2\x2DB\x2DC\x5\x1F9\xFD\x2\x2DC\x2DD\x5"+ + "\x1FB\xFE\x2\x2DD\x2DE\x5\x1F9\xFD\x2\x2DE\x2DF\x5\x21D\x10F\x2\x2DF\x2E0"+ + "\x5\x201\x101\x2\x2E0\x42\x3\x2\x2\x2\x2E1\x2E2\x5\x1FF\x100\x2\x2E2\x2E3"+ + "\x5\x1F9\xFD\x2\x2E3\x2E4\x5\x21F\x110\x2\x2E4\x2E5\x5\x201\x101\x2\x2E5"+ + "\x44\x3\x2\x2\x2\x2E6\x2E7\x5\x1FF\x100\x2\x2E7\x2E8\x5\x201\x101\x2\x2E8"+ + "\x2E9\x5\x1FD\xFF\x2\x2E9\x2EA\x5\x20F\x108\x2\x2EA\x2EB\x5\x1F9\xFD\x2"+ + "\x2EB\x2EC\x5\x21B\x10E\x2\x2EC\x2ED\x5\x201\x101\x2\x2ED\x46\x3\x2\x2"+ + "\x2\x2EE\x2EF\x5\x1FF\x100\x2\x2EF\x2F0\x5\x201\x101\x2\x2F0\x2F1\x5\x203"+ + "\x102\x2\x2F1\x2F2\x5\x1FB\xFE\x2\x2F2\x2F3\x5\x215\x10B\x2\x2F3\x2F4"+ + "\x5\x215\x10B\x2\x2F4\x2F5\x5\x20F\x108\x2\x2F5H\x3\x2\x2\x2\x2F6\x2F7"+ + "\x5\x1FF\x100\x2\x2F7\x2F8\x5\x201\x101\x2\x2F8\x2F9\x5\x203\x102\x2\x2F9"+ + "\x2FA\x5\x1FB\xFE\x2\x2FA\x2FB\x5\x229\x115\x2\x2FB\x2FC\x5\x21F\x110"+ + "\x2\x2FC\x2FD\x5\x201\x101\x2\x2FDJ\x3\x2\x2\x2\x2FE\x2FF\x5\x1FF\x100"+ + "\x2\x2FF\x300\x5\x201\x101\x2\x300\x301\x5\x203\x102\x2\x301\x302\x5\x1FF"+ + "\x100\x2\x302\x303\x5\x1F9\xFD\x2\x303\x304\x5\x21F\x110\x2\x304\x305"+ + "\x5\x201\x101\x2\x305L\x3\x2\x2\x2\x306\x307\x5\x1FF\x100\x2\x307\x308"+ + "\x5\x201\x101\x2\x308\x309\x5\x203\x102\x2\x309\x30A\x5\x1FF\x100\x2\x30A"+ + "\x30B\x5\x1FB\xFE\x2\x30B\x30C\x5\x20F\x108\x2\x30CN\x3\x2\x2\x2\x30D"+ + "\x30E\x5\x1FF\x100\x2\x30E\x30F\x5\x201\x101\x2\x30F\x310\x5\x203\x102"+ + "\x2\x310\x311\x5\x1FF\x100\x2\x311\x312\x5\x201\x101\x2\x312\x313\x5\x1FD"+ + "\xFF\x2\x313P\x3\x2\x2\x2\x314\x315\x5\x1FF\x100\x2\x315\x316\x5\x201"+ + "\x101\x2\x316\x317\x5\x203\x102\x2\x317\x318\x5\x1FD\xFF\x2\x318\x319"+ + "\x5\x221\x111\x2\x319\x31A\x5\x21B\x10E\x2\x31AR\x3\x2\x2\x2\x31B\x31C"+ + "\x5\x1FF\x100\x2\x31C\x31D\x5\x201\x101\x2\x31D\x31E\x5\x203\x102\x2\x31E"+ + "\x31F\x5\x209\x105\x2\x31F\x320\x5\x213\x10A\x2\x320\x321\x5\x21F\x110"+ + "\x2\x321T\x3\x2\x2\x2\x322\x323\x5\x1FF\x100\x2\x323\x324\x5\x201\x101"+ + "\x2\x324\x325\x5\x203\x102\x2\x325\x326\x5\x20F\x108\x2\x326\x327\x5\x213"+ + "\x10A\x2\x327\x328\x5\x205\x103\x2\x328V\x3\x2\x2\x2\x329\x32A\x5\x1FF"+ + "\x100\x2\x32A\x32B\x5\x201\x101\x2\x32B\x32C\x5\x203\x102\x2\x32C\x32D"+ + "\x5\x215\x10B\x2\x32D\x32E\x5\x1FB\xFE\x2\x32E\x32F\x5\x20B\x106\x2\x32F"+ + "X\x3\x2\x2\x2\x330\x331\x5\x1FF\x100\x2\x331\x332\x5\x201\x101\x2\x332"+ + "\x333\x5\x203\x102\x2\x333\x334\x5\x21D\x10F\x2\x334\x335\x5\x213\x10A"+ + "\x2\x335\x336\x5\x205\x103\x2\x336Z\x3\x2\x2\x2\x337\x338\x5\x1FF\x100"+ + "\x2\x338\x339\x5\x201\x101\x2\x339\x33A\x5\x203\x102\x2\x33A\x33B\x5\x21D"+ + "\x10F\x2\x33B\x33C\x5\x21F\x110\x2\x33C\x33D\x5\x21B\x10E\x2\x33D\\\x3"+ + "\x2\x2\x2\x33E\x33F\x5\x1FF\x100\x2\x33F\x340\x5\x201\x101\x2\x340\x341"+ + "\x5\x203\x102\x2\x341\x342\x5\x223\x112\x2\x342\x343\x5\x1F9\xFD\x2\x343"+ + "\x344\x5\x21B\x10E\x2\x344^\x3\x2\x2\x2\x345\x346\x5\x1FF\x100\x2\x346"+ + "\x347\x5\x201\x101\x2\x347\x348\x5\x20F\x108\x2\x348\x349\x5\x201\x101"+ + "\x2\x349\x34A\x5\x21F\x110\x2\x34A\x34B\x5\x201\x101\x2\x34B\x34C\x5\x21D"+ + "\x10F\x2\x34C\x34D\x5\x201\x101\x2\x34D\x34E\x5\x21F\x110\x2\x34E\x34F"+ + "\x5\x21F\x110\x2\x34F\x350\x5\x209\x105\x2\x350\x351\x5\x213\x10A\x2\x351"+ + "\x352\x5\x205\x103\x2\x352`\x3\x2\x2\x2\x353\x354\x5\x1FF\x100\x2\x354"+ + "\x355\x5\x209\x105\x2\x355\x356\x5\x211\x109\x2\x356\x62\x3\x2\x2\x2\x357"+ + "\x358\x5\x1FF\x100\x2\x358\x359\x5\x215\x10B\x2\x359\x64\x3\x2\x2\x2\x35A"+ + "\x35B\x5\x1FF\x100\x2\x35B\x35C\x5\x215\x10B\x2\x35C\x35D\x5\x221\x111"+ + "\x2\x35D\x35E\x5\x1FB\xFE\x2\x35E\x35F\x5\x20F\x108\x2\x35F\x360\x5\x201"+ + "\x101\x2\x360\x66\x3\x2\x2\x2\x361\x362\x5\x201\x101\x2\x362\x363\x5\x1F9"+ + "\xFD\x2\x363\x364\x5\x1FD\xFF\x2\x364\x365\x5\x207\x104\x2\x365h\x3\x2"+ + "\x2\x2\x366\x367\x5\x201\x101\x2\x367\x368\x5\x20F\x108\x2\x368\x369\x5"+ + "\x21D\x10F\x2\x369\x36A\x5\x201\x101\x2\x36Aj\x3\x2\x2\x2\x36B\x36C\x5"+ + "\x201\x101\x2\x36C\x36D\x5\x20F\x108\x2\x36D\x36E\x5\x21D\x10F\x2\x36E"+ + "\x36F\x5\x201\x101\x2\x36F\x370\x5\x209\x105\x2\x370\x371\x5\x203\x102"+ + "\x2\x371l\x3\x2\x2\x2\x372\x373\x5\x201\x101\x2\x373\x374\x5\x211\x109"+ + "\x2\x374\x375\x5\x217\x10C\x2\x375\x376\x5\x21F\x110\x2\x376\x377\x5\x229"+ + "\x115\x2\x377n\x3\x2\x2\x2\x378\x379\x5\x201\x101\x2\x379\x37A\x5\x213"+ + "\x10A\x2\x37A\x37B\x5\x1FF\x100\x2\x37B\x37C\x5\x1EF\xF8\x2\x37C\x37D"+ + "\x5\x201\x101\x2\x37D\x37E\x5\x213\x10A\x2\x37E\x37F\x5\x221\x111\x2\x37F"+ + "\x380\x5\x211\x109\x2\x380p\x3\x2\x2\x2\x381\x382\x5\x201\x101\x2\x382"+ + "\x383\x5\x213\x10A\x2\x383\x384\x5\x1FF\x100\x2\x384\x385\x5\x1EF\xF8"+ + "\x2\x385\x386\x5\x203\x102\x2\x386\x387\x5\x221\x111\x2\x387\x388\x5\x213"+ + "\x10A\x2\x388\x389\x5\x1FD\xFF\x2\x389\x38A\x5\x21F\x110\x2\x38A\x38B"+ + "\x5\x209\x105\x2\x38B\x38C\x5\x215\x10B\x2\x38C\x38D\x5\x213\x10A\x2\x38D"+ + "r\x3\x2\x2\x2\x38E\x38F\x5\x201\x101\x2\x38F\x390\x5\x213\x10A\x2\x390"+ + "\x391\x5\x1FF\x100\x2\x391\x392\x5\x1EF\xF8\x2\x392\x393\x5\x209\x105"+ + "\x2\x393\x394\x5\x203\x102\x2\x394t\x3\x2\x2\x2\x395\x396\x5\x201\x101"+ + "\x2\x396\x397\x5\x213\x10A\x2\x397\x398\x5\x1FF\x100\x2\x398\x399\x5\x1EF"+ + "\xF8\x2\x399\x39A\x5\x217\x10C\x2\x39A\x39B\x5\x21B\x10E\x2\x39B\x39C"+ + "\x5\x215\x10B\x2\x39C\x39D\x5\x217\x10C\x2\x39D\x39E\x5\x201\x101\x2\x39E"+ + "\x39F\x5\x21B\x10E\x2\x39F\x3A0\x5\x21F\x110\x2\x3A0\x3A1\x5\x229\x115"+ + "\x2\x3A1v\x3\x2\x2\x2\x3A2\x3A3\x5\x201\x101\x2\x3A3\x3A4\x5\x213\x10A"+ + "\x2\x3A4\x3A5\x5\x1FF\x100\x2\x3A5\x3A6\x5\x1EF\xF8\x2\x3A6\x3A7\x5\x21D"+ + "\x10F\x2\x3A7\x3A8\x5\x201\x101\x2\x3A8\x3A9\x5\x20F\x108\x2\x3A9\x3AA"+ + "\x5\x201\x101\x2\x3AA\x3AB\x5\x1FD\xFF\x2\x3AB\x3AC\x5\x21F\x110\x2\x3AC"+ + "x\x3\x2\x2\x2\x3AD\x3AE\x5\x201\x101\x2\x3AE\x3AF\x5\x213\x10A\x2\x3AF"+ + "\x3B0\x5\x1FF\x100\x2\x3B0\x3B1\x5\x1EF\xF8\x2\x3B1\x3B2\x5\x21D\x10F"+ + "\x2\x3B2\x3B3\x5\x221\x111\x2\x3B3\x3B4\x5\x1FB\xFE\x2\x3B4z\x3\x2\x2"+ + "\x2\x3B5\x3B6\x5\x201\x101\x2\x3B6\x3B7\x5\x213\x10A\x2\x3B7\x3B8\x5\x1FF"+ + "\x100\x2\x3B8\x3B9\x5\x1EF\xF8\x2\x3B9\x3BA\x5\x21F\x110\x2\x3BA\x3BB"+ + "\x5\x229\x115\x2\x3BB\x3BC\x5\x217\x10C\x2\x3BC\x3BD\x5\x201\x101\x2\x3BD"+ + "|\x3\x2\x2\x2\x3BE\x3BF\x5\x201\x101\x2\x3BF\x3C0\x5\x213\x10A\x2\x3C0"+ + "\x3C1\x5\x1FF\x100\x2\x3C1\x3C2\x5\x1EF\xF8\x2\x3C2\x3C3\x5\x225\x113"+ + "\x2\x3C3\x3C4\x5\x209\x105\x2\x3C4\x3C5\x5\x21F\x110\x2\x3C5\x3C6\x5\x207"+ + "\x104\x2\x3C6~\x3\x2\x2\x2\x3C7\x3C8\x5\x201\x101\x2\x3C8\x3C9\x5\x213"+ + "\x10A\x2\x3C9\x3CA\x5\x1FF\x100\x2\x3CA\x80\x3\x2\x2\x2\x3CB\x3CC\x5\x201"+ + "\x101\x2\x3CC\x3CD\x5\x213\x10A\x2\x3CD\x3CE\x5\x221\x111\x2\x3CE\x3CF"+ + "\x5\x211\x109\x2\x3CF\x82\x3\x2\x2\x2\x3D0\x3D1\x5\x201\x101\x2\x3D1\x3D2"+ + "\x5\x219\x10D\x2\x3D2\x3D3\x5\x223\x112\x2\x3D3\x84\x3\x2\x2\x2\x3D4\x3D5"+ + "\x5\x201\x101\x2\x3D5\x3D6\x5\x21B\x10E\x2\x3D6\x3D7\x5\x1F9\xFD\x2\x3D7"+ + "\x3D8\x5\x21D\x10F\x2\x3D8\x3D9\x5\x201\x101\x2\x3D9\x86\x3\x2\x2\x2\x3DA"+ + "\x3DB\x5\x201\x101\x2\x3DB\x3DC\x5\x21B\x10E\x2\x3DC\x3DD\x5\x21B\x10E"+ + "\x2\x3DD\x3DE\x5\x215\x10B\x2\x3DE\x3DF\x5\x21B\x10E\x2\x3DF\x88\x3\x2"+ + "\x2\x2\x3E0\x3E1\x5\x201\x101\x2\x3E1\x3E2\x5\x223\x112\x2\x3E2\x3E3\x5"+ + "\x201\x101\x2\x3E3\x3E4\x5\x213\x10A\x2\x3E4\x3E5\x5\x21F\x110\x2\x3E5"+ + "\x8A\x3\x2\x2\x2\x3E6\x3E7\x5\x201\x101\x2\x3E7\x3E8\x5\x227\x114\x2\x3E8"+ + "\x3E9\x5\x209\x105\x2\x3E9\x3EA\x5\x21F\x110\x2\x3EA\x3EB\x5\x1EF\xF8"+ + "\x2\x3EB\x3EC\x5\x1FF\x100\x2\x3EC\x3ED\x5\x215\x10B\x2\x3ED\x8C\x3\x2"+ + "\x2\x2\x3EE\x3EF\x5\x201\x101\x2\x3EF\x3F0\x5\x227\x114\x2\x3F0\x3F1\x5"+ + "\x209\x105\x2\x3F1\x3F2\x5\x21F\x110\x2\x3F2\x3F3\x5\x1EF\xF8\x2\x3F3"+ + "\x3F4\x5\x203\x102\x2\x3F4\x3F5\x5\x215\x10B\x2\x3F5\x3F6\x5\x21B\x10E"+ + "\x2\x3F6\x8E\x3\x2\x2\x2\x3F7\x3F8\x5\x201\x101\x2\x3F8\x3F9\x5\x227\x114"+ + "\x2\x3F9\x3FA\x5\x209\x105\x2\x3FA\x3FB\x5\x21F\x110\x2\x3FB\x3FC\x5\x1EF"+ + "\xF8\x2\x3FC\x3FD\x5\x203\x102\x2\x3FD\x3FE\x5\x221\x111\x2\x3FE\x3FF"+ + "\x5\x213\x10A\x2\x3FF\x400\x5\x1FD\xFF\x2\x400\x401\x5\x21F\x110\x2\x401"+ + "\x402\x5\x209\x105\x2\x402\x403\x5\x215\x10B\x2\x403\x404\x5\x213\x10A"+ + "\x2\x404\x90\x3\x2\x2\x2\x405\x406\x5\x201\x101\x2\x406\x407\x5\x227\x114"+ + "\x2\x407\x408\x5\x209\x105\x2\x408\x409\x5\x21F\x110\x2\x409\x40A\x5\x1EF"+ + "\xF8\x2\x40A\x40B\x5\x217\x10C\x2\x40B\x40C\x5\x21B\x10E\x2\x40C\x40D"+ + "\x5\x215\x10B\x2\x40D\x40E\x5\x217\x10C\x2\x40E\x40F\x5\x201\x101\x2\x40F"+ + "\x410\x5\x21B\x10E\x2\x410\x411\x5\x21F\x110\x2\x411\x412\x5\x229\x115"+ + "\x2\x412\x92\x3\x2\x2\x2\x413\x414\x5\x201\x101\x2\x414\x415\x5\x227\x114"+ + "\x2\x415\x416\x5\x209\x105\x2\x416\x417\x5\x21F\x110\x2\x417\x418\x5\x1EF"+ + "\xF8\x2\x418\x419\x5\x21D\x10F\x2\x419\x41A\x5\x221\x111\x2\x41A\x41B"+ + "\x5\x1FB\xFE\x2\x41B\x94\x3\x2\x2\x2\x41C\x41D\x5\x203\x102\x2\x41D\x41E"+ + "\x5\x1F9\xFD\x2\x41E\x41F\x5\x20F\x108\x2\x41F\x420\x5\x21D\x10F\x2\x420"+ + "\x421\x5\x201\x101\x2\x421\x96\x3\x2\x2\x2\x422\x423\x5\x203\x102\x2\x423"+ + "\x424\x5\x209\x105\x2\x424\x425\x5\x20F\x108\x2\x425\x426\x5\x201\x101"+ + "\x2\x426\x427\x5\x1FD\xFF\x2\x427\x428\x5\x215\x10B\x2\x428\x429\x5\x217"+ + "\x10C\x2\x429\x42A\x5\x229\x115\x2\x42A\x98\x3\x2\x2\x2\x42B\x42C\x5\x203"+ + "\x102\x2\x42C\x42D\x5\x21B\x10E\x2\x42D\x42E\x5\x209\x105\x2\x42E\x42F"+ + "\x5\x201\x101\x2\x42F\x430\x5\x213\x10A\x2\x430\x431\x5\x1FF\x100\x2\x431"+ + "\x9A\x3\x2\x2\x2\x432\x433\x5\x203\x102\x2\x433\x434\x5\x215\x10B\x2\x434"+ + "\x435\x5\x21B\x10E\x2\x435\x9C\x3\x2\x2\x2\x436\x437\x5\x203\x102\x2\x437"+ + "\x438\x5\x221\x111\x2\x438\x439\x5\x213\x10A\x2\x439\x43A\x5\x1FD\xFF"+ + "\x2\x43A\x43B\x5\x21F\x110\x2\x43B\x43C\x5\x209\x105\x2\x43C\x43D\x5\x215"+ + "\x10B\x2\x43D\x43E\x5\x213\x10A\x2\x43E\x9E\x3\x2\x2\x2\x43F\x440\x5\x205"+ + "\x103\x2\x440\x441\x5\x201\x101\x2\x441\x442\x5\x21F\x110\x2\x442\xA0"+ + "\x3\x2\x2\x2\x443\x444\x5\x205\x103\x2\x444\x445\x5\x20F\x108\x2\x445"+ + "\x446\x5\x215\x10B\x2\x446\x447\x5\x1FB\xFE\x2\x447\x448\x5\x1F9\xFD\x2"+ + "\x448\x449\x5\x20F\x108\x2\x449\xA2\x3\x2\x2\x2\x44A\x44B\x5\x205\x103"+ + "\x2\x44B\x44C\x5\x215\x10B\x2\x44C\x44D\x5\x21D\x10F\x2\x44D\x44E\x5\x221"+ + "\x111\x2\x44E\x44F\x5\x1FB\xFE\x2\x44F\xA4\x3\x2\x2\x2\x450\x451\x5\x205"+ + "\x103\x2\x451\x452\x5\x215\x10B\x2\x452\x453\x5\x21F\x110\x2\x453\x454"+ + "\x5\x215\x10B\x2\x454\xA6\x3\x2\x2\x2\x455\x456\x5\x209\x105\x2\x456\x457"+ + "\x5\x203\x102\x2\x457\xA8\x3\x2\x2\x2\x458\x459\x5\x209\x105\x2\x459\x45A"+ + "\x5\x211\x109\x2\x45A\x45B\x5\x217\x10C\x2\x45B\xAA\x3\x2\x2\x2\x45C\x45D"+ + "\x5\x209\x105\x2\x45D\x45E\x5\x211\x109\x2\x45E\x45F\x5\x217\x10C\x2\x45F"+ + "\x460\x5\x20F\x108\x2\x460\x461\x5\x201\x101\x2\x461\x462\x5\x211\x109"+ + "\x2\x462\x463\x5\x201\x101\x2\x463\x464\x5\x213\x10A\x2\x464\x465\x5\x21F"+ + "\x110\x2\x465\x466\x5\x21D\x10F\x2\x466\xAC\x3\x2\x2\x2\x467\x468\x5\x209"+ + "\x105\x2\x468\x469\x5\x213\x10A\x2\x469\xAE\x3\x2\x2\x2\x46A\x46B\x5\x209"+ + "\x105\x2\x46B\x46C\x5\x213\x10A\x2\x46C\x46D\x5\x217\x10C\x2\x46D\x46E"+ + "\x5\x221\x111\x2\x46E\x46F\x5\x21F\x110\x2\x46F\xB0\x3\x2\x2\x2\x470\x471"+ + "\x5\x209\x105\x2\x471\x472\x5\x21D\x10F\x2\x472\xB2\x3\x2\x2\x2\x473\x474"+ + "\x5\x209\x105\x2\x474\x475\x5\x213\x10A\x2\x475\x476\x5\x21F\x110\x2\x476"+ + "\x477\x5\x201\x101\x2\x477\x478\x5\x205\x103\x2\x478\x479\x5\x201\x101"+ + "\x2\x479\x47A\x5\x21B\x10E\x2\x47A\xB4\x3\x2\x2\x2\x47B\x47C\x5\x20D\x107"+ + "\x2\x47C\x47D\x5\x209\x105\x2\x47D\x47E\x5\x20F\x108\x2\x47E\x47F\x5\x20F"+ + "\x108\x2\x47F\xB6\x3\x2\x2\x2\x480\x481\x5\x20F\x108\x2\x481\x482\x5\x215"+ + "\x10B\x2\x482\x483\x5\x1F9\xFD\x2\x483\x484\x5\x1FF\x100\x2\x484\xB8\x3"+ + "\x2\x2\x2\x485\x486\x5\x20F\x108\x2\x486\x487\x5\x215\x10B\x2\x487\x488"+ + "\x5\x1FD\xFF\x2\x488\x489\x5\x20D\x107\x2\x489\xBA\x3\x2\x2\x2\x48A\x48B"+ + "\x5\x20F\x108\x2\x48B\x48C\x5\x215\x10B\x2\x48C\x48D\x5\x213\x10A\x2\x48D"+ + "\x48E\x5\x205\x103\x2\x48E\xBC\x3\x2\x2\x2\x48F\x490\x5\x20F\x108\x2\x490"+ + "\x491\x5\x215\x10B\x2\x491\x492\x5\x215\x10B\x2\x492\x493\x5\x217\x10C"+ + "\x2\x493\xBE\x3\x2\x2\x2\x494\x495\x5\x20F\x108\x2\x495\x496\x5\x201\x101"+ + "\x2\x496\x497\x5\x213\x10A\x2\x497\xC0\x3\x2\x2\x2\x498\x499\x5\x20F\x108"+ + "\x2\x499\x49A\x5\x201\x101\x2\x49A\x49B\x5\x21F\x110\x2\x49B\xC2\x3\x2"+ + "\x2\x2\x49C\x49D\x5\x20F\x108\x2\x49D\x49E\x5\x209\x105\x2\x49E\x49F\x5"+ + "\x1FB\xFE\x2\x49F\xC4\x3\x2\x2\x2\x4A0\x4A1\x5\x20F\x108\x2\x4A1\x4A2"+ + "\x5\x209\x105\x2\x4A2\x4A3\x5\x20D\x107\x2\x4A3\x4A4\x5\x201\x101\x2\x4A4"+ + "\xC6\x3\x2\x2\x2\x4A5\x4A6\x5\x20F\x108\x2\x4A6\x4A7\x5\x209\x105\x2\x4A7"+ + "\x4A8\x5\x213\x10A\x2\x4A8\x4A9\x5\x201\x101\x2\x4A9\x4AA\x5\x1EF\xF8"+ + "\x2\x4AA\x4AB\x5\x209\x105\x2\x4AB\x4AC\x5\x213\x10A\x2\x4AC\x4AD\x5\x217"+ + "\x10C\x2\x4AD\x4AE\x5\x221\x111\x2\x4AE\x4AF\x5\x21F\x110\x2\x4AF\xC8"+ + "\x3\x2\x2\x2\x4B0\x4B1\x5\x20F\x108\x2\x4B1\x4B2\x5\x215\x10B\x2\x4B2"+ + "\x4B3\x5\x1FD\xFF\x2\x4B3\x4B4\x5\x20D\x107\x2\x4B4\x4B5\x5\x1EF\xF8\x2"+ + "\x4B5\x4B6\x5\x21B\x10E\x2\x4B6\x4B7\x5\x201\x101\x2\x4B7\x4B8\x5\x1F9"+ + "\xFD\x2\x4B8\x4B9\x5\x1FF\x100\x2\x4B9\xCA\x3\x2\x2\x2\x4BA\x4BB\x5\x20F"+ + "\x108\x2\x4BB\x4BC\x5\x215\x10B\x2\x4BC\x4BD\x5\x1FD\xFF\x2\x4BD\x4BE"+ + "\x5\x20D\x107\x2\x4BE\x4BF\x5\x1EF\xF8\x2\x4BF\x4C0\x5\x225\x113\x2\x4C0"+ + "\x4C1\x5\x21B\x10E\x2\x4C1\x4C2\x5\x209\x105\x2\x4C2\x4C3\x5\x21F\x110"+ + "\x2\x4C3\x4C4\x5\x201\x101\x2\x4C4\xCC\x3\x2\x2\x2\x4C5\x4C6\x5\x20F\x108"+ + "\x2\x4C6\x4C7\x5\x215\x10B\x2\x4C7\x4C8\x5\x1FD\xFF\x2\x4C8\x4C9\x5\x20D"+ + "\x107\x2\x4C9\x4CA\x5\x1EF\xF8\x2\x4CA\x4CB\x5\x21B\x10E\x2\x4CB\x4CC"+ + "\x5\x201\x101\x2\x4CC\x4CD\x5\x1F9\xFD\x2\x4CD\x4CE\x5\x1FF\x100\x2\x4CE"+ + "\x4CF\x5\x1EF\xF8\x2\x4CF\x4D0\x5\x225\x113\x2\x4D0\x4D1\x5\x21B\x10E"+ + "\x2\x4D1\x4D2\x5\x209\x105\x2\x4D2\x4D3\x5\x21F\x110\x2\x4D3\x4D4\x5\x201"+ + "\x101\x2\x4D4\xCE\x3\x2\x2\x2\x4D5\x4D6\x5\x20F\x108\x2\x4D6\x4D7\x5\x21D"+ + "\x10F\x2\x4D7\x4D8\x5\x201\x101\x2\x4D8\x4D9\x5\x21F\x110\x2\x4D9\xD0"+ + "\x3\x2\x2\x2\x4DA\x4DB\x5\x211\x109\x2\x4DB\x4DC\x5\x201\x101\x2\x4DC"+ + "\xD2\x3\x2\x2\x2\x4DD\x4DE\x5\x211\x109\x2\x4DE\x4DF\x5\x209\x105\x2\x4DF"+ + "\x4E0\x5\x1FF\x100\x2\x4E0\xD4\x3\x2\x2\x2\x4E1\x4E2\x5\x211\x109\x2\x4E2"+ + "\x4E3\x5\x20D\x107\x2\x4E3\x4E4\x5\x1FF\x100\x2\x4E4\x4E5\x5\x209\x105"+ + "\x2\x4E5\x4E6\x5\x21B\x10E\x2\x4E6\xD6\x3\x2\x2\x2\x4E7\x4E8\x5\x211\x109"+ + "\x2\x4E8\x4E9\x5\x215\x10B\x2\x4E9\x4EA\x5\x1FF\x100\x2\x4EA\xD8\x3\x2"+ + "\x2\x2\x4EB\x4EC\x5\x213\x10A\x2\x4EC\x4ED\x5\x1F9\xFD\x2\x4ED\x4EE\x5"+ + "\x211\x109\x2\x4EE\x4EF\x5\x201\x101\x2\x4EF\xDA\x3\x2\x2\x2\x4F0\x4F1"+ + "\x5\x213\x10A\x2\x4F1\x4F2\x5\x201\x101\x2\x4F2\x4F3\x5\x227\x114\x2\x4F3"+ + "\x4F4\x5\x21F\x110\x2\x4F4\xDC\x3\x2\x2\x2\x4F5\x4F6\x5\x213\x10A\x2\x4F6"+ + "\x4F7\x5\x201\x101\x2\x4F7\x4F8\x5\x225\x113\x2\x4F8\xDE\x3\x2\x2\x2\x4F9"+ + "\x4FA\x5\x213\x10A\x2\x4FA\x4FB\x5\x215\x10B\x2\x4FB\x4FC\x5\x21F\x110"+ + "\x2\x4FC\xE0\x3\x2\x2\x2\x4FD\x4FE\x5\x213\x10A\x2\x4FE\x4FF\x5\x215\x10B"+ + "\x2\x4FF\x500\x5\x21F\x110\x2\x500\x501\x5\x207\x104\x2\x501\x502\x5\x209"+ + "\x105\x2\x502\x503\x5\x213\x10A\x2\x503\x504\x5\x205\x103\x2\x504\xE2"+ + "\x3\x2\x2\x2\x505\x506\x5\x213\x10A\x2\x506\x507\x5\x221\x111\x2\x507"+ + "\x508\x5\x20F\x108\x2\x508\x509\x5\x20F\x108\x2\x509\xE4\x3\x2\x2\x2\x50A"+ + "\x50B\x5\x215\x10B\x2\x50B\x50C\x5\x213\x10A\x2\x50C\xE6\x3\x2\x2\x2\x50D"+ + "\x50E\x5\x215\x10B\x2\x50E\x50F\x5\x213\x10A\x2\x50F\x510\x5\x1EF\xF8"+ + "\x2\x510\x511\x5\x201\x101\x2\x511\x512\x5\x21B\x10E\x2\x512\x513\x5\x21B"+ + "\x10E\x2\x513\x514\x5\x215\x10B\x2\x514\x515\x5\x21B\x10E\x2\x515\xE8"+ + "\x3\x2\x2\x2\x516\x517\x5\x215\x10B\x2\x517\x518\x5\x213\x10A\x2\x518"+ + "\x519\x5\x1EF\xF8\x2\x519\x51A\x5\x20F\x108\x2\x51A\x51B\x5\x215\x10B"+ + "\x2\x51B\x51C\x5\x1FD\xFF\x2\x51C\x51D\x5\x1F9\xFD\x2\x51D\x51E\x5\x20F"+ + "\x108\x2\x51E\x51F\x5\x1EF\xF8\x2\x51F\x520\x5\x201\x101\x2\x520\x521"+ + "\x5\x21B\x10E\x2\x521\x522\x5\x21B\x10E\x2\x522\x523\x5\x215\x10B\x2\x523"+ + "\x524\x5\x21B\x10E\x2\x524\xEA\x3\x2\x2\x2\x525\x526\x5\x215\x10B\x2\x526"+ + "\x527\x5\x217\x10C\x2\x527\x528\x5\x201\x101\x2\x528\x529\x5\x213\x10A"+ + "\x2\x529\xEC\x3\x2\x2\x2\x52A\x52B\x5\x215\x10B\x2\x52B\x52C\x5\x217\x10C"+ + "\x2\x52C\x52D\x5\x21F\x110\x2\x52D\x52E\x5\x209\x105\x2\x52E\x52F\x5\x215"+ + "\x10B\x2\x52F\x530\x5\x213\x10A\x2\x530\x531\x5\x1F9\xFD\x2\x531\x532"+ + "\x5\x20F\x108\x2\x532\xEE\x3\x2\x2\x2\x533\x534\x5\x215\x10B\x2\x534\x535"+ + "\x5\x217\x10C\x2\x535\x536\x5\x21F\x110\x2\x536\x537\x5\x209\x105\x2\x537"+ + "\x538\x5\x215\x10B\x2\x538\x539\x5\x213\x10A\x2\x539\x53A\x5\x1EF\xF8"+ + "\x2\x53A\x53B\x5\x1FB\xFE\x2\x53B\x53C\x5\x1F9\xFD\x2\x53C\x53D\x5\x21D"+ + "\x10F\x2\x53D\x53E\x5\x201\x101\x2\x53E\xF0\x3\x2\x2\x2\x53F\x540\x5\x215"+ + "\x10B\x2\x540\x541\x5\x217\x10C\x2\x541\x542\x5\x21F\x110\x2\x542\x543"+ + "\x5\x209\x105\x2\x543\x544\x5\x215\x10B\x2\x544\x545\x5\x213\x10A\x2\x545"+ + "\x546\x5\x1EF\xF8\x2\x546\x547\x5\x201\x101\x2\x547\x548\x5\x227\x114"+ + "\x2\x548\x549\x5\x217\x10C\x2\x549\x54A\x5\x20F\x108\x2\x54A\x54B\x5\x209"+ + "\x105\x2\x54B\x54C\x5\x1FD\xFF\x2\x54C\x54D\x5\x209\x105\x2\x54D\x54E"+ + "\x5\x21F\x110\x2\x54E\xF2\x3\x2\x2\x2\x54F\x550\x5\x215\x10B\x2\x550\x551"+ + "\x5\x217\x10C\x2\x551\x552\x5\x21F\x110\x2\x552\x553\x5\x209\x105\x2\x553"+ + "\x554\x5\x215\x10B\x2\x554\x555\x5\x213\x10A\x2\x555\x556\x5\x1EF\xF8"+ + "\x2\x556\x557\x5\x1FD\xFF\x2\x557\x558\x5\x215\x10B\x2\x558\x559\x5\x211"+ + "\x109\x2\x559\x55A\x5\x217\x10C\x2\x55A\x55B\x5\x1F9\xFD\x2\x55B\x55C"+ + "\x5\x21B\x10E\x2\x55C\x55D\x5\x201\x101\x2\x55D\xF4\x3\x2\x2\x2\x55E\x55F"+ + "\x5\x215\x10B\x2\x55F\x560\x5\x217\x10C\x2\x560\x561\x5\x21F\x110\x2\x561"+ + "\x562\x5\x209\x105\x2\x562\x563\x5\x215\x10B\x2\x563\x564\x5\x213\x10A"+ + "\x2\x564\x565\x5\x1EF\xF8\x2\x565\x566\x5\x217\x10C\x2\x566\x567\x5\x21B"+ + "\x10E\x2\x567\x568\x5\x209\x105\x2\x568\x569\x5\x223\x112\x2\x569\x56A"+ + "\x5\x1F9\xFD\x2\x56A\x56B\x5\x21F\x110\x2\x56B\x56C\x5\x201\x101\x2\x56C"+ + "\x56D\x5\x1EF\xF8\x2\x56D\x56E\x5\x211\x109\x2\x56E\x56F\x5\x215\x10B"+ + "\x2\x56F\x570\x5\x1FF\x100\x2\x570\x571\x5\x221\x111\x2\x571\x572\x5\x20F"+ + "\x108\x2\x572\x573\x5\x201\x101\x2\x573\xF6\x3\x2\x2\x2\x574\x575\x5\x215"+ + "\x10B\x2\x575\x576\x5\x21B\x10E\x2\x576\xF8\x3\x2\x2\x2\x577\x578\x5\x215"+ + "\x10B\x2\x578\x579\x5\x221\x111\x2\x579\x57A\x5\x21F\x110\x2\x57A\x57B"+ + "\x5\x217\x10C\x2\x57B\x57C\x5\x221\x111\x2\x57C\x57D\x5\x21F\x110\x2\x57D"+ + "\xFA\x3\x2\x2\x2\x57E\x57F\x5\x217\x10C\x2\x57F\x580\x5\x1F9\xFD\x2\x580"+ + "\x581\x5\x21B\x10E\x2\x581\x582\x5\x1F9\xFD\x2\x582\x583\x5\x211\x109"+ + "\x2\x583\x584\x5\x1F9\xFD\x2\x584\x585\x5\x21B\x10E\x2\x585\x586\x5\x21B"+ + "\x10E\x2\x586\x587\x5\x1F9\xFD\x2\x587\x588\x5\x229\x115\x2\x588\xFC\x3"+ + "\x2\x2\x2\x589\x58A\x5\x217\x10C\x2\x58A\x58B\x5\x21B\x10E\x2\x58B\x58C"+ + "\x5\x201\x101\x2\x58C\x58D\x5\x21D\x10F\x2\x58D\x58E\x5\x201\x101\x2\x58E"+ + "\x58F\x5\x21B\x10E\x2\x58F\x590\x5\x223\x112\x2\x590\x591\x5\x201\x101"+ + "\x2\x591\xFE\x3\x2\x2\x2\x592\x593\x5\x217\x10C\x2\x593\x594\x5\x21B\x10E"+ + "\x2\x594\x595\x5\x209\x105\x2\x595\x596\x5\x213\x10A\x2\x596\x597\x5\x21F"+ + "\x110\x2\x597\x100\x3\x2\x2\x2\x598\x599\x5\x217\x10C\x2\x599\x59A\x5"+ + "\x21B\x10E\x2\x59A\x59B\x5\x209\x105\x2\x59B\x59C\x5\x223\x112\x2\x59C"+ + "\x59D\x5\x1F9\xFD\x2\x59D\x59E\x5\x21F\x110\x2\x59E\x59F\x5\x201\x101"+ + "\x2\x59F\x102\x3\x2\x2\x2\x5A0\x5A1\x5\x217\x10C\x2\x5A1\x5A2\x5\x21B"+ + "\x10E\x2\x5A2\x5A3\x5\x215\x10B\x2\x5A3\x5A4\x5\x217\x10C\x2\x5A4\x5A5"+ + "\x5\x201\x101\x2\x5A5\x5A6\x5\x21B\x10E\x2\x5A6\x5A7\x5\x21F\x110\x2\x5A7"+ + "\x5A8\x5\x229\x115\x2\x5A8\x5A9\x5\x1EF\xF8\x2\x5A9\x5AA\x5\x205\x103"+ + "\x2\x5AA\x5AB\x5\x201\x101\x2\x5AB\x5AC\x5\x21F\x110\x2\x5AC\x104\x3\x2"+ + "\x2\x2\x5AD\x5AE\x5\x217\x10C\x2\x5AE\x5AF\x5\x21B\x10E\x2\x5AF\x5B0\x5"+ + "\x215\x10B\x2\x5B0\x5B1\x5\x217\x10C\x2\x5B1\x5B2\x5\x201\x101\x2\x5B2"+ + "\x5B3\x5\x21B\x10E\x2\x5B3\x5B4\x5\x21F\x110\x2\x5B4\x5B5\x5\x229\x115"+ + "\x2\x5B5\x5B6\x5\x1EF\xF8\x2\x5B6\x5B7\x5\x20F\x108\x2\x5B7\x5B8\x5\x201"+ + "\x101\x2\x5B8\x5B9\x5\x21F\x110\x2\x5B9\x106\x3\x2\x2\x2\x5BA\x5BB\x5"+ + "\x217\x10C\x2\x5BB\x5BC\x5\x21B\x10E\x2\x5BC\x5BD\x5\x215\x10B\x2\x5BD"+ + "\x5BE\x5\x217\x10C\x2\x5BE\x5BF\x5\x201\x101\x2\x5BF\x5C0\x5\x21B\x10E"+ + "\x2\x5C0\x5C1\x5\x21F\x110\x2\x5C1\x5C2\x5\x229\x115\x2\x5C2\x5C3\x5\x1EF"+ + "\xF8\x2\x5C3\x5C4\x5\x21D\x10F\x2\x5C4\x5C5\x5\x201\x101\x2\x5C5\x5C6"+ + "\x5\x21F\x110\x2\x5C6\x108\x3\x2\x2\x2\x5C7\x5C8\x5\x217\x10C\x2\x5C8"+ + "\x5C9\x5\x21F\x110\x2\x5C9\x5CA\x5\x21B\x10E\x2\x5CA\x5CB\x5\x21D\x10F"+ + "\x2\x5CB\x5CC\x5\x1F9\xFD\x2\x5CC\x5CD\x5\x203\x102\x2\x5CD\x5CE\x5\x201"+ + "\x101\x2\x5CE\x10A\x3\x2\x2\x2\x5CF\x5D0\x5\x217\x10C\x2\x5D0\x5D1\x5"+ + "\x221\x111\x2\x5D1\x5D2\x5\x1FB\xFE\x2\x5D2\x5D3\x5\x20F\x108\x2\x5D3"+ + "\x5D4\x5\x209\x105\x2\x5D4\x5D5\x5\x1FD\xFF\x2\x5D5\x10C\x3\x2\x2\x2\x5D6"+ + "\x5D7\x5\x217\x10C\x2\x5D7\x5D8\x5\x221\x111\x2\x5D8\x5D9\x5\x21F\x110"+ + "\x2\x5D9\x10E\x3\x2\x2\x2\x5DA\x5DB\x5\x21B\x10E\x2\x5DB\x5DC\x5\x1F9"+ + "\xFD\x2\x5DC\x5DD\x5\x213\x10A\x2\x5DD\x5DE\x5\x1FF\x100\x2\x5DE\x5DF"+ + "\x5\x215\x10B\x2\x5DF\x5E0\x5\x211\x109\x2\x5E0\x110\x3\x2\x2\x2\x5E1"+ + "\x5E2\x5\x21B\x10E\x2\x5E2\x5E3\x5\x1F9\xFD\x2\x5E3\x5E4\x5\x213\x10A"+ + "\x2\x5E4\x5E5\x5\x1FF\x100\x2\x5E5\x5E6\x5\x215\x10B\x2\x5E6\x5E7\x5\x211"+ + "\x109\x2\x5E7\x5E8\x5\x209\x105\x2\x5E8\x5E9\x5\x22B\x116\x2\x5E9\x5EA"+ + "\x5\x201\x101\x2\x5EA\x112\x3\x2\x2\x2\x5EB\x5EC\x5\x21B\x10E\x2\x5EC"+ + "\x5ED\x5\x1F9\xFD\x2\x5ED\x5EE\x5\x209\x105\x2\x5EE\x5EF\x5\x21D\x10F"+ + "\x2\x5EF\x5F0\x5\x201\x101\x2\x5F0\x5F1\x5\x201\x101\x2\x5F1\x5F2\x5\x223"+ + "\x112\x2\x5F2\x5F3\x5\x201\x101\x2\x5F3\x5F4\x5\x213\x10A\x2\x5F4\x5F5"+ + "\x5\x21F\x110\x2\x5F5\x114\x3\x2\x2\x2\x5F6\x5F7\x5\x21B\x10E\x2\x5F7"+ + "\x5F8\x5\x201\x101\x2\x5F8\x5F9\x5\x1F9\xFD\x2\x5F9\x5FA\x5\x1FF\x100"+ + "\x2\x5FA\x116\x3\x2\x2\x2\x5FB\x5FC\x5\x21B\x10E\x2\x5FC\x5FD\x5\x201"+ + "\x101\x2\x5FD\x5FE\x5\x1F9\xFD\x2\x5FE\x5FF\x5\x1FF\x100\x2\x5FF\x600"+ + "\x5\x1EF\xF8\x2\x600\x601\x5\x225\x113\x2\x601\x602\x5\x21B\x10E\x2\x602"+ + "\x603\x5\x209\x105\x2\x603\x604\x5\x21F\x110\x2\x604\x605\x5\x201\x101"+ + "\x2\x605\x118\x3\x2\x2\x2\x606\x607\x5\x21B\x10E\x2\x607\x608\x5\x201"+ + "\x101\x2\x608\x609\x5\x1FF\x100\x2\x609\x60A\x5\x209\x105\x2\x60A\x60B"+ + "\x5\x211\x109\x2\x60B\x11A\x3\x2\x2\x2\x60C\x60D\x5\x21B\x10E\x2\x60D"+ + "\x60E\x5\x201\x101\x2\x60E\x60F\x5\x211\x109\x2\x60F\x11C\x3\x2\x2\x2"+ + "\x610\x611\x5\x21B\x10E\x2\x611\x612\x5\x201\x101\x2\x612\x613\x5\x21D"+ + "\x10F\x2\x613\x614\x5\x201\x101\x2\x614\x615\x5\x21F\x110\x2\x615\x11E"+ + "\x3\x2\x2\x2\x616\x617\x5\x21B\x10E\x2\x617\x618\x5\x201\x101\x2\x618"+ + "\x619\x5\x21D\x10F\x2\x619\x61A\x5\x221\x111\x2\x61A\x61B\x5\x211\x109"+ + "\x2\x61B\x61C\x5\x201\x101\x2\x61C\x120\x3\x2\x2\x2\x61D\x61E\x5\x21B"+ + "\x10E\x2\x61E\x61F\x5\x201\x101\x2\x61F\x620\x5\x21F\x110\x2\x620\x621"+ + "\x5\x221\x111\x2\x621\x622\x5\x21B\x10E\x2\x622\x623\x5\x213\x10A\x2\x623"+ + "\x122\x3\x2\x2\x2\x624\x625\x5\x21B\x10E\x2\x625\x626\x5\x211\x109\x2"+ + "\x626\x627\x5\x1FF\x100\x2\x627\x628\x5\x209\x105\x2\x628\x629\x5\x21B"+ + "\x10E\x2\x629\x124\x3\x2\x2\x2\x62A\x62B\x5\x21B\x10E\x2\x62B\x62C\x5"+ + "\x21D\x10F\x2\x62C\x62D\x5\x201\x101\x2\x62D\x62E\x5\x21F\x110\x2\x62E"+ + "\x126\x3\x2\x2\x2\x62F\x630\x5\x21D\x10F\x2\x630\x631\x5\x1F9\xFD\x2\x631"+ + "\x632\x5\x223\x112\x2\x632\x633\x5\x201\x101\x2\x633\x634\x5\x217\x10C"+ + "\x2\x634\x635\x5\x209\x105\x2\x635\x636\x5\x1FD\xFF\x2\x636\x637\x5\x21F"+ + "\x110\x2\x637\x638\x5\x221\x111\x2\x638\x639\x5\x21B\x10E\x2\x639\x63A"+ + "\x5\x201\x101\x2\x63A\x128\x3\x2\x2\x2\x63B\x63C\x5\x21D\x10F\x2\x63C"+ + "\x63D\x5\x1F9\xFD\x2\x63D\x63E\x5\x223\x112\x2\x63E\x63F\x5\x201\x101"+ + "\x2\x63F\x640\x5\x21D\x10F\x2\x640\x641\x5\x201\x101\x2\x641\x642\x5\x21F"+ + "\x110\x2\x642\x643\x5\x21F\x110\x2\x643\x644\x5\x209\x105\x2\x644\x645"+ + "\x5\x213\x10A\x2\x645\x646\x5\x205\x103\x2\x646\x12A\x3\x2\x2\x2\x647"+ + "\x648\x5\x21D\x10F\x2\x648\x649\x5\x201\x101\x2\x649\x64A\x5\x201\x101"+ + "\x2\x64A\x64B\x5\x20D\x107\x2\x64B\x12C\x3\x2\x2\x2\x64C\x64D\x5\x21D"+ + "\x10F\x2\x64D\x64E\x5\x201\x101\x2\x64E\x64F\x5\x20F\x108\x2\x64F\x650"+ + "\x5\x201\x101\x2\x650\x651\x5\x1FD\xFF\x2\x651\x652\x5\x21F\x110\x2\x652"+ + "\x12E\x3\x2\x2\x2\x653\x654\x5\x21D\x10F\x2\x654\x655\x5\x201\x101\x2"+ + "\x655\x656\x5\x213\x10A\x2\x656\x657\x5\x1FF\x100\x2\x657\x658\x5\x20D"+ + "\x107\x2\x658\x659\x5\x201\x101\x2\x659\x65A\x5\x229\x115\x2\x65A\x65B"+ + "\x5\x21D\x10F\x2\x65B\x130\x3\x2\x2\x2\x65C\x65D\x5\x21D\x10F\x2\x65D"+ + "\x65E\x5\x201\x101\x2\x65E\x65F\x5\x21F\x110\x2\x65F\x132\x3\x2\x2\x2"+ + "\x660\x661\x5\x21D\x10F\x2\x661\x662\x5\x201\x101\x2\x662\x663\x5\x21F"+ + "\x110\x2\x663\x664\x5\x1F9\xFD\x2\x664\x665\x5\x21F\x110\x2\x665\x666"+ + "\x5\x21F\x110\x2\x666\x667\x5\x21B\x10E\x2\x667\x134\x3\x2\x2\x2\x668"+ + "\x669\x5\x21D\x10F\x2\x669\x66A\x5\x207\x104\x2\x66A\x66B\x5\x1F9\xFD"+ + "\x2\x66B\x66C\x5\x21B\x10E\x2\x66C\x66D\x5\x201\x101\x2\x66D\x66E\x5\x1FF"+ + "\x100\x2\x66E\x136\x3\x2\x2\x2\x66F\x670\x5\x21D\x10F\x2\x670\x671\x5"+ + "\x209\x105\x2\x671\x672\x5\x213\x10A\x2\x672\x673\x5\x205\x103\x2\x673"+ + "\x674\x5\x20F\x108\x2\x674\x675\x5\x201\x101\x2\x675\x138\x3\x2\x2\x2"+ + "\x676\x677\x5\x21D\x10F\x2\x677\x678\x5\x217\x10C\x2\x678\x679\x5\x1FD"+ + "\xFF\x2\x679\x13A\x3\x2\x2\x2\x67A\x67B\x5\x21D\x10F\x2\x67B\x67C\x5\x21F"+ + "\x110\x2\x67C\x67D\x5\x1F9\xFD\x2\x67D\x67E\x5\x21F\x110\x2\x67E\x67F"+ + "\x5\x209\x105\x2\x67F\x680\x5\x1FD\xFF\x2\x680\x13C\x3\x2\x2\x2\x681\x682"+ + "\x5\x21D\x10F\x2\x682\x683\x5\x21F\x110\x2\x683\x684\x5\x201\x101\x2\x684"+ + "\x685\x5\x217\x10C\x2\x685\x13E\x3\x2\x2\x2\x686\x687\x5\x21D\x10F\x2"+ + "\x687\x688\x5\x21F\x110\x2\x688\x689\x5\x215\x10B\x2\x689\x68A\x5\x217"+ + "\x10C\x2\x68A\x140\x3\x2\x2\x2\x68B\x68C\x5\x21D\x10F\x2\x68C\x68D\x5"+ + "\x21F\x110\x2\x68D\x68E\x5\x21B\x10E\x2\x68E\x68F\x5\x209\x105\x2\x68F"+ + "\x690\x5\x213\x10A\x2\x690\x691\x5\x205\x103\x2\x691\x142\x3\x2\x2\x2"+ + "\x692\x693\x5\x21D\x10F\x2\x693\x694\x5\x221\x111\x2\x694\x695\x5\x1FB"+ + "\xFE\x2\x695\x144\x3\x2\x2\x2\x696\x697\x5\x21F\x110\x2\x697\x698\x5\x1F9"+ + "\xFD\x2\x698\x699\x5\x1FB\xFE\x2\x699\x146\x3\x2\x2\x2\x69A\x69B\x5\x21F"+ + "\x110\x2\x69B\x69C\x5\x201\x101\x2\x69C\x69D\x5\x227\x114\x2\x69D\x69E"+ + "\x5\x21F\x110\x2\x69E\x148\x3\x2\x2\x2\x69F\x6A0\x5\x21F\x110\x2\x6A0"+ + "\x6A1\x5\x207\x104\x2\x6A1\x6A2\x5\x201\x101\x2\x6A2\x6A3\x5\x213\x10A"+ + "\x2\x6A3\x14A\x3\x2\x2\x2\x6A4\x6A5\x5\x21F\x110\x2\x6A5\x6A6\x5\x209"+ + "\x105\x2\x6A6\x6A7\x5\x211\x109\x2\x6A7\x6A8\x5\x201\x101\x2\x6A8\x14C"+ + "\x3\x2\x2\x2\x6A9\x6AA\x5\x21F\x110\x2\x6AA\x6AB\x5\x215\x10B\x2\x6AB"+ + "\x14E\x3\x2\x2\x2\x6AC\x6AD\x5\x21F\x110\x2\x6AD\x6AE\x5\x21B\x10E\x2"+ + "\x6AE\x6AF\x5\x221\x111\x2\x6AF\x6B0\x5\x201\x101\x2\x6B0\x150\x3\x2\x2"+ + "\x2\x6B1\x6B2\x5\x21F\x110\x2\x6B2\x6B3\x5\x229\x115\x2\x6B3\x6B4\x5\x217"+ + "\x10C\x2\x6B4\x6B5\x5\x201\x101\x2\x6B5\x152\x3\x2\x2\x2\x6B6\x6B7\x5"+ + "\x21F\x110\x2\x6B7\x6B8\x5\x229\x115\x2\x6B8\x6B9\x5\x217\x10C\x2\x6B9"+ + "\x6BA\x5\x201\x101\x2\x6BA\x6BB\x5\x215\x10B\x2\x6BB\x6BC\x5\x203\x102"+ + "\x2\x6BC\x154\x3\x2\x2\x2\x6BD\x6BE\x5\x221\x111\x2\x6BE\x6BF\x5\x213"+ + "\x10A\x2\x6BF\x6C0\x5\x20F\x108\x2\x6C0\x6C1\x5\x215\x10B\x2\x6C1\x6C2"+ + "\x5\x1F9\xFD\x2\x6C2\x6C3\x5\x1FF\x100\x2\x6C3\x156\x3\x2\x2\x2\x6C4\x6C5"+ + "\x5\x221\x111\x2\x6C5\x6C6\x5\x213\x10A\x2\x6C6\x6C7\x5\x20F\x108\x2\x6C7"+ + "\x6C8\x5\x215\x10B\x2\x6C8\x6C9\x5\x1FD\xFF\x2\x6C9\x6CA\x5\x20D\x107"+ + "\x2\x6CA\x158\x3\x2\x2\x2\x6CB\x6CC\x5\x221\x111\x2\x6CC\x6CD\x5\x213"+ + "\x10A\x2\x6CD\x6CE\x5\x21F\x110\x2\x6CE\x6CF\x5\x209\x105\x2\x6CF\x6D0"+ + "\x5\x20F\x108\x2\x6D0\x15A\x3\x2\x2\x2\x6D1\x6D2\x5\x223\x112\x2\x6D2"+ + "\x6D3\x5\x1F9\xFD\x2\x6D3\x6D4\x5\x21B\x10E\x2\x6D4\x6D5\x5\x209\x105"+ + "\x2\x6D5\x6D6\x5\x1F9\xFD\x2\x6D6\x6D7\x5\x213\x10A\x2\x6D7\x6D8\x5\x21F"+ + "\x110\x2\x6D8\x15C\x3\x2\x2\x2\x6D9\x6DA\x5\x223\x112\x2\x6DA\x6DB\x5"+ + "\x201\x101\x2\x6DB\x6DC\x5\x21B\x10E\x2\x6DC\x6DD\x5\x21D\x10F\x2\x6DD"+ + "\x6DE\x5\x209\x105\x2\x6DE\x6DF\x5\x215\x10B\x2\x6DF\x6E0\x5\x213\x10A"+ + "\x2\x6E0\x15E\x3\x2\x2\x2\x6E1\x6E2\x5\x225\x113\x2\x6E2\x6E3\x5\x201"+ + "\x101\x2\x6E3\x6E4\x5\x213\x10A\x2\x6E4\x6E5\x5\x1FF\x100\x2\x6E5\x160"+ + "\x3\x2\x2\x2\x6E6\x6E7\x5\x225\x113\x2\x6E7\x6E8\x5\x207\x104\x2\x6E8"+ + "\x6E9\x5\x209\x105\x2\x6E9\x6EA\x5\x20F\x108\x2\x6EA\x6EB\x5\x201\x101"+ + "\x2\x6EB\x162\x3\x2\x2\x2\x6EC\x6ED\x5\x225\x113\x2\x6ED\x6EE\x5\x209"+ + "\x105\x2\x6EE\x6EF\x5\x1FF\x100\x2\x6EF\x6F0\x5\x21F\x110\x2\x6F0\x6F1"+ + "\x5\x207\x104\x2\x6F1\x164\x3\x2\x2\x2\x6F2\x6F3\x5\x225\x113\x2\x6F3"+ + "\x6F4\x5\x209\x105\x2\x6F4\x6F5\x5\x21F\x110\x2\x6F5\x6F6\x5\x207\x104"+ + "\x2\x6F6\x166\x3\x2\x2\x2\x6F7\x6F8\x5\x225\x113\x2\x6F8\x6F9\x5\x209"+ + "\x105\x2\x6F9\x6FA\x5\x21F\x110\x2\x6FA\x6FB\x5\x207\x104\x2\x6FB\x6FC"+ + "\x5\x201\x101\x2\x6FC\x6FD\x5\x223\x112\x2\x6FD\x6FE\x5\x201\x101\x2\x6FE"+ + "\x6FF\x5\x213\x10A\x2\x6FF\x700\x5\x21F\x110\x2\x700\x701\x5\x21D\x10F"+ + "\x2\x701\x168\x3\x2\x2\x2\x702\x703\x5\x225\x113\x2\x703\x704\x5\x21B"+ + "\x10E\x2\x704\x705\x5\x209\x105\x2\x705\x706\x5\x21F\x110\x2\x706\x707"+ + "\x5\x201\x101\x2\x707\x16A\x3\x2\x2\x2\x708\x709\x5\x227\x114\x2\x709"+ + "\x70A\x5\x215\x10B\x2\x70A\x70B\x5\x21B\x10E\x2\x70B\x16C\x3\x2\x2\x2"+ + "\x70C\x70D\a(\x2\x2\x70D\x16E\x3\x2\x2\x2\x70E\x70F\a<\x2\x2\x70F\x710"+ + "\a?\x2\x2\x710\x170\x3\x2\x2\x2\x711\x712\a\x31\x2\x2\x712\x172\x3\x2"+ + "\x2\x2\x713\x714\a^\x2\x2\x714\x174\x3\x2\x2\x2\x715\x716\a?\x2\x2\x716"+ + "\x176\x3\x2\x2\x2\x717\x718\a@\x2\x2\x718\x719\a?\x2\x2\x719\x178\x3\x2"+ + "\x2\x2\x71A\x71B\a@\x2\x2\x71B\x17A\x3\x2\x2\x2\x71C\x71D\a>\x2\x2\x71D"+ + "\x71E\a?\x2\x2\x71E\x17C\x3\x2\x2\x2\x71F\x720\a*\x2\x2\x720\x17E\x3\x2"+ + "\x2\x2\x721\x722\a>\x2\x2\x722\x180\x3\x2\x2\x2\x723\x724\a/\x2\x2\x724"+ + "\x182\x3\x2\x2\x2\x725\x726\a,\x2\x2\x726\x184\x3\x2\x2\x2\x727\x728\a"+ + ">\x2\x2\x728\x729\a@\x2\x2\x729\x186\x3\x2\x2\x2\x72A\x72B\a-\x2\x2\x72B"+ + "\x188\x3\x2\x2\x2\x72C\x72D\a`\x2\x2\x72D\x18A\x3\x2\x2\x2\x72E\x72F\a"+ + "+\x2\x2\x72F\x18C\x3\x2\x2\x2\x730\x731\a]\x2\x2\x731\x18E\x3\x2\x2\x2"+ + "\x732\x733\a_\x2\x2\x733\x190\x3\x2\x2\x2\x734\x73A\a$\x2\x2\x735\x739"+ + "\n\x2\x2\x2\x736\x737\a$\x2\x2\x737\x739\a$\x2\x2\x738\x735\x3\x2\x2\x2"+ + "\x738\x736\x3\x2\x2\x2\x739\x73C\x3\x2\x2\x2\x73A\x738\x3\x2\x2\x2\x73A"+ + "\x73B\x3\x2\x2\x2\x73B\x73D\x3\x2\x2\x2\x73C\x73A\x3\x2\x2\x2\x73D\x73E"+ + "\a$\x2\x2\x73E\x192\x3\x2\x2\x2\x73F\x740\a(\x2\x2\x740\x741\aQ\x2\x2"+ + "\x741\x743\x3\x2\x2\x2\x742\x744\t\x3\x2\x2\x743\x742\x3\x2\x2\x2\x744"+ + "\x745\x3\x2\x2\x2\x745\x743\x3\x2\x2\x2\x745\x746\x3\x2\x2\x2\x746\x748"+ + "\x3\x2\x2\x2\x747\x749\a(\x2\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2"+ + "\x2\x2\x749\x194\x3\x2\x2\x2\x74A\x74B\a(\x2\x2\x74B\x74C\aJ\x2\x2\x74C"+ + "\x74E\x3\x2\x2\x2\x74D\x74F\t\x4\x2\x2\x74E\x74D\x3\x2\x2\x2\x74F\x750"+ + "\x3\x2\x2\x2\x750\x74E\x3\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751\x753\x3"+ + "\x2\x2\x2\x752\x754\a(\x2\x2\x753\x752\x3\x2\x2\x2\x753\x754\x3\x2\x2"+ + "\x2\x754\x196\x3\x2\x2\x2\x755\x758\x5\x187\xC4\x2\x756\x758\x5\x181\xC1"+ + "\x2\x757\x755\x3\x2\x2\x2\x757\x756\x3\x2\x2\x2\x757\x758\x3\x2\x2\x2"+ + "\x758\x75A\x3\x2\x2\x2\x759\x75B\x5\x1F5\xFB\x2\x75A\x759\x3\x2\x2\x2"+ + "\x75B\x75C\x3\x2\x2\x2\x75C\x75A\x3\x2\x2\x2\x75C\x75D\x3\x2\x2\x2\x75D"+ + "\x75F\x3\x2\x2\x2\x75E\x760\t\x5\x2\x2\x75F\x75E\x3\x2\x2\x2\x75F\x760"+ + "\x3\x2\x2\x2\x760\x198\x3\x2\x2\x2\x761\x765\x5\x197\xCC\x2\x762\x763"+ + "\x5\x201\x101\x2\x763\x764\x5\x197\xCC\x2\x764\x766\x3\x2\x2\x2\x765\x762"+ + "\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766\x19A\x3\x2\x2\x2\x767\x76A\x5"+ + "\x187\xC4\x2\x768\x76A\x5\x181\xC1\x2\x769\x767\x3\x2\x2\x2\x769\x768"+ + "\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2\x76A\x76E\x3\x2\x2\x2\x76B\x76D\x5"+ + "\x1F5\xFB\x2\x76C\x76B\x3\x2\x2\x2\x76D\x770\x3\x2\x2\x2\x76E\x76C\x3"+ + "\x2\x2\x2\x76E\x76F\x3\x2\x2\x2\x76F\x771\x3\x2\x2\x2\x770\x76E\x3\x2"+ + "\x2\x2\x771\x773\a\x30\x2\x2\x772\x774\x5\x1F5\xFB\x2\x773\x772\x3\x2"+ + "\x2\x2\x774\x775\x3\x2\x2\x2\x775\x773\x3\x2\x2\x2\x775\x776\x3\x2\x2"+ + "\x2\x776\x77A\x3\x2\x2\x2\x777\x778\x5\x201\x101\x2\x778\x779\x5\x197"+ + "\xCC\x2\x779\x77B\x3\x2\x2\x2\x77A\x777\x3\x2\x2\x2\x77A\x77B\x3\x2\x2"+ + "\x2\x77B\x19C\x3\x2\x2\x2\x77C\x77D\a%\x2\x2\x77D\x77E\x5\x19F\xD0\x2"+ + "\x77E\x77F\a%\x2\x2\x77F\x19E\x3\x2\x2\x2\x780\x782\x5\x1A1\xD1\x2\x781"+ + "\x783\x5\x1EF\xF8\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783"+ + "\x784\x3\x2\x2\x2\x784\x785\x5\x1AD\xD7\x2\x785\x789\x3\x2\x2\x2\x786"+ + "\x789\x5\x1A1\xD1\x2\x787\x789\x5\x1AD\xD7\x2\x788\x780\x3\x2\x2\x2\x788"+ + "\x786\x3\x2\x2\x2\x788\x787\x3\x2\x2\x2\x789\x1A0\x3\x2\x2\x2\x78A\x78B"+ + "\x5\x1A3\xD2\x2\x78B\x78C\x5\x1A5\xD3\x2\x78C\x790\x5\x1A3\xD2\x2\x78D"+ + "\x78E\x5\x1A5\xD3\x2\x78E\x78F\x5\x1A3\xD2\x2\x78F\x791\x3\x2\x2\x2\x790"+ + "\x78D\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x1A2\x3\x2\x2\x2\x792\x794"+ + "\x5\x1F5\xFB\x2\x793\x792\x3\x2\x2\x2\x794\x795\x3\x2\x2\x2\x795\x793"+ + "\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796\x799\x3\x2\x2\x2\x797\x799\x5"+ + "\x1A7\xD4\x2\x798\x793\x3\x2\x2\x2\x798\x797\x3\x2\x2\x2\x799\x1A4\x3"+ + "\x2\x2\x2\x79A\x79C\x5\x1EF\xF8\x2\x79B\x79A\x3\x2\x2\x2\x79B\x79C\x3"+ + "\x2\x2\x2\x79C\x79E\x3\x2\x2\x2\x79D\x79F\t\x6\x2\x2\x79E\x79D\x3\x2\x2"+ + "\x2\x79E\x79F\x3\x2\x2\x2\x79F\x7A1\x3\x2\x2\x2\x7A0\x7A2\x5\x1EF\xF8"+ + "\x2\x7A1\x7A0\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x1A6\x3\x2\x2\x2"+ + "\x7A3\x7A6\x5\x1A9\xD5\x2\x7A4\x7A6\x5\x1AB\xD6\x2\x7A5\x7A3\x3\x2\x2"+ + "\x2\x7A5\x7A4\x3\x2\x2\x2\x7A6\x1A8\x3\x2\x2\x2\x7A7\x7B4\x5\x1B3\xDA"+ + "\x2\x7A8\x7B4\x5\x1B5\xDB\x2\x7A9\x7B4\x5\x1B7\xDC\x2\x7AA\x7B4\x5\x1B9"+ + "\xDD\x2\x7AB\x7B4\x5\x1BB\xDE\x2\x7AC\x7B4\x5\x1BD\xDF\x2\x7AD\x7B4\x5"+ + "\x1BF\xE0\x2\x7AE\x7B4\x5\x1C1\xE1\x2\x7AF\x7B4\x5\x1C3\xE2\x2\x7B0\x7B4"+ + "\x5\x1C5\xE3\x2\x7B1\x7B4\x5\x1C7\xE4\x2\x7B2\x7B4\x5\x1C9\xE5\x2\x7B3"+ + "\x7A7\x3\x2\x2\x2\x7B3\x7A8\x3\x2\x2\x2\x7B3\x7A9\x3\x2\x2\x2\x7B3\x7AA"+ + "\x3\x2\x2\x2\x7B3\x7AB\x3\x2\x2\x2\x7B3\x7AC\x3\x2\x2\x2\x7B3\x7AD\x3"+ + "\x2\x2\x2\x7B3\x7AE\x3\x2\x2\x2\x7B3\x7AF\x3\x2\x2\x2\x7B3\x7B0\x3\x2"+ + "\x2\x2\x7B3\x7B1\x3\x2\x2\x2\x7B3\x7B2\x3\x2\x2\x2\x7B4\x1AA\x3\x2\x2"+ + "\x2\x7B5\x7C1\x5\x1CB\xE6\x2\x7B6\x7C1\x5\x1CD\xE7\x2\x7B7\x7C1\x5\x1CF"+ + "\xE8\x2\x7B8\x7C1\x5\x1D1\xE9\x2\x7B9\x7C1\x5\x1D3\xEA\x2\x7BA\x7C1\x5"+ + "\x1D5\xEB\x2\x7BB\x7C1\x5\x1D7\xEC\x2\x7BC\x7C1\x5\x1D9\xED\x2\x7BD\x7C1"+ + "\x5\x1DB\xEE\x2\x7BE\x7C1\x5\x1DD\xEF\x2\x7BF\x7C1\x5\x1DF\xF0\x2\x7C0"+ + "\x7B5\x3\x2\x2\x2\x7C0\x7B6\x3\x2\x2\x2\x7C0\x7B7\x3\x2\x2\x2\x7C0\x7B8"+ + "\x3\x2\x2\x2\x7C0\x7B9\x3\x2\x2\x2\x7C0\x7BA\x3\x2\x2\x2\x7C0\x7BB\x3"+ + "\x2\x2\x2\x7C0\x7BC\x3\x2\x2\x2\x7C0\x7BD\x3\x2\x2\x2\x7C0\x7BE\x3\x2"+ + "\x2\x2\x7C0\x7BF\x3\x2\x2\x2\x7C1\x1AC\x3\x2\x2\x2\x7C2\x7C4\x5\x1F5\xFB"+ + "\x2\x7C3\x7C2\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2\x2\x7C5\x7C3\x3\x2\x2\x2"+ + "\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C7\x3\x2\x2\x2\x7C7\x7C8\x5\x1B1\xD9\x2"+ + "\x7C8\x7E0\x3\x2\x2\x2\x7C9\x7CB\x5\x1F5\xFB\x2\x7CA\x7C9\x3\x2\x2\x2"+ + "\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CA\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD"+ + "\x7CE\x3\x2\x2\x2\x7CE\x7D0\x5\x1AF\xD8\x2\x7CF\x7D1\x5\x1F5\xFB\x2\x7D0"+ + "\x7CF\x3\x2\x2\x2\x7D1\x7D2\x3\x2\x2\x2\x7D2\x7D0\x3\x2\x2\x2\x7D2\x7D3"+ + "\x3\x2\x2\x2\x7D3\x7DA\x3\x2\x2\x2\x7D4\x7D6\x5\x1AF\xD8\x2\x7D5\x7D7"+ + "\x5\x1F5\xFB\x2\x7D6\x7D5\x3\x2\x2\x2\x7D7\x7D8\x3\x2\x2\x2\x7D8\x7D6"+ + "\x3\x2\x2\x2\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7DB\x3\x2\x2\x2\x7DA\x7D4\x3"+ + "\x2\x2\x2\x7DA\x7DB\x3\x2\x2\x2\x7DB\x7DD\x3\x2\x2\x2\x7DC\x7DE\x5\x1B1"+ + "\xD9\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE\x7E0\x3\x2\x2"+ + "\x2\x7DF\x7C3\x3\x2\x2\x2\x7DF\x7CA\x3\x2\x2\x2\x7E0\x1AE\x3\x2\x2\x2"+ + "\x7E1\x7E3\x5\x1EF\xF8\x2\x7E2\x7E1\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2"+ + "\x7E3\x7E4\x3\x2\x2\x2\x7E4\x7E6\t\a\x2\x2\x7E5\x7E7\x5\x1EF\xF8\x2\x7E6"+ + "\x7E5\x3\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x1B0\x3\x2\x2\x2\x7E8\x7EA"+ + "\x5\x1EF\xF8\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7F3"+ + "\x3\x2\x2\x2\x7EB\x7EC\x5\x1F9\xFD\x2\x7EC\x7ED\x5\x211\x109\x2\x7ED\x7F4"+ + "\x3\x2\x2\x2\x7EE\x7EF\x5\x217\x10C\x2\x7EF\x7F0\x5\x211\x109\x2\x7F0"+ + "\x7F4\x3\x2\x2\x2\x7F1\x7F4\x5\x1F9\xFD\x2\x7F2\x7F4\x5\x217\x10C\x2\x7F3"+ + "\x7EB\x3\x2\x2\x2\x7F3\x7EE\x3\x2\x2\x2\x7F3\x7F1\x3\x2\x2\x2\x7F3\x7F2"+ + "\x3\x2\x2\x2\x7F4\x1B2\x3\x2\x2\x2\x7F5\x7F6\x5\x20B\x106\x2\x7F6\x7F7"+ + "\x5\x1F9\xFD\x2\x7F7\x7F8\x5\x213\x10A\x2\x7F8\x7F9\x5\x221\x111\x2\x7F9"+ + "\x7FA\x5\x1F9\xFD\x2\x7FA\x7FB\x5\x21B\x10E\x2\x7FB\x7FC\x5\x229\x115"+ + "\x2\x7FC\x1B4\x3\x2\x2\x2\x7FD\x7FE\x5\x203\x102\x2\x7FE\x7FF\x5\x201"+ + "\x101\x2\x7FF\x800\x5\x1FB\xFE\x2\x800\x801\x5\x21B\x10E\x2\x801\x802"+ + "\x5\x221\x111\x2\x802\x803\x5\x1F9\xFD\x2\x803\x804\x5\x21B\x10E\x2\x804"+ + "\x805\x5\x229\x115\x2\x805\x1B6\x3\x2\x2\x2\x806\x807\x5\x211\x109\x2"+ + "\x807\x808\x5\x1F9\xFD\x2\x808\x809\x5\x21B\x10E\x2\x809\x80A\x5\x1FD"+ + "\xFF\x2\x80A\x80B\x5\x207\x104\x2\x80B\x1B8\x3\x2\x2\x2\x80C\x80D\x5\x1F9"+ + "\xFD\x2\x80D\x80E\x5\x217\x10C\x2\x80E\x80F\x5\x21B\x10E\x2\x80F\x810"+ + "\x5\x209\x105\x2\x810\x811\x5\x20F\x108\x2\x811\x1BA\x3\x2\x2\x2\x812"+ + "\x813\x5\x211\x109\x2\x813\x814\x5\x1F9\xFD\x2\x814\x815\x5\x229\x115"+ + "\x2\x815\x1BC\x3\x2\x2\x2\x816\x817\x5\x20B\x106\x2\x817\x818\x5\x221"+ + "\x111\x2\x818\x819\x5\x213\x10A\x2\x819\x81A\x5\x201\x101\x2\x81A\x1BE"+ + "\x3\x2\x2\x2\x81B\x81C\x5\x20B\x106\x2\x81C\x81D\x5\x221\x111\x2\x81D"+ + "\x81E\x5\x20F\x108\x2\x81E\x81F\x5\x229\x115\x2\x81F\x1C0\x3\x2\x2\x2"+ + "\x820\x821\x5\x1F9\xFD\x2\x821\x822\x5\x221\x111\x2\x822\x823\x5\x205"+ + "\x103\x2\x823\x824\x5\x221\x111\x2\x824\x825\x5\x21D\x10F\x2\x825\x826"+ + "\x5\x21F\x110\x2\x826\x1C2\x3\x2\x2\x2\x827\x828\x5\x21D\x10F\x2\x828"+ + "\x829\x5\x201\x101\x2\x829\x82A\x5\x217\x10C\x2\x82A\x82B\x5\x21F\x110"+ + "\x2\x82B\x82C\x5\x201\x101\x2\x82C\x82D\x5\x211\x109\x2\x82D\x82E\x5\x1FB"+ + "\xFE\x2\x82E\x82F\x5\x201\x101\x2\x82F\x830\x5\x21B\x10E\x2\x830\x1C4"+ + "\x3\x2\x2\x2\x831\x832\x5\x215\x10B\x2\x832\x833\x5\x1FD\xFF\x2\x833\x834"+ + "\x5\x21F\x110\x2\x834\x835\x5\x215\x10B\x2\x835\x836\x5\x1FB\xFE\x2\x836"+ + "\x837\x5\x201\x101\x2\x837\x838\x5\x21B\x10E\x2\x838\x1C6\x3\x2\x2\x2"+ + "\x839\x83A\x5\x213\x10A\x2\x83A\x83B\x5\x215\x10B\x2\x83B\x83C\x5\x223"+ + "\x112\x2\x83C\x83D\x5\x201\x101\x2\x83D\x83E\x5\x211\x109\x2\x83E\x83F"+ + "\x5\x1FB\xFE\x2\x83F\x840\x5\x201\x101\x2\x840\x841\x5\x21B\x10E\x2\x841"+ + "\x1C8\x3\x2\x2\x2\x842\x843\x5\x1FF\x100\x2\x843\x844\x5\x201\x101\x2"+ + "\x844\x845\x5\x1FD\xFF\x2\x845\x846\x5\x201\x101\x2\x846\x847\x5\x211"+ + "\x109\x2\x847\x848\x5\x1FB\xFE\x2\x848\x849\x5\x201\x101\x2\x849\x84A"+ + "\x5\x21B\x10E\x2\x84A\x1CA\x3\x2\x2\x2\x84B\x84C\x5\x20B\x106\x2\x84C"+ + "\x84D\x5\x1F9\xFD\x2\x84D\x84E\x5\x213\x10A\x2\x84E\x1CC\x3\x2\x2\x2\x84F"+ + "\x850\x5\x203\x102\x2\x850\x851\x5\x201\x101\x2\x851\x852\x5\x1FB\xFE"+ + "\x2\x852\x1CE\x3\x2\x2\x2\x853\x854\x5\x211\x109\x2\x854\x855\x5\x1F9"+ + "\xFD\x2\x855\x856\x5\x21B\x10E\x2\x856\x1D0\x3\x2\x2\x2\x857\x858\x5\x1F9"+ + "\xFD\x2\x858\x859\x5\x217\x10C\x2\x859\x85A\x5\x21B\x10E\x2\x85A\x1D2"+ + "\x3\x2\x2\x2\x85B\x85C\x5\x20B\x106\x2\x85C\x85D\x5\x221\x111\x2\x85D"+ + "\x85E\x5\x213\x10A\x2\x85E\x1D4\x3\x2\x2\x2\x85F\x860\x5\x20B\x106\x2"+ + "\x860\x861\x5\x221\x111\x2\x861\x862\x5\x20F\x108\x2\x862\x1D6\x3\x2\x2"+ + "\x2\x863\x864\x5\x1F9\xFD\x2\x864\x865\x5\x221\x111\x2\x865\x866\x5\x205"+ + "\x103\x2\x866\x1D8\x3\x2\x2\x2\x867\x868\x5\x21D\x10F\x2\x868\x869\x5"+ + "\x201\x101\x2\x869\x86A\x5\x217\x10C\x2\x86A\x1DA\x3\x2\x2\x2\x86B\x86C"+ + "\x5\x215\x10B\x2\x86C\x86D\x5\x1FD\xFF\x2\x86D\x86E\x5\x21F\x110\x2\x86E"+ + "\x1DC\x3\x2\x2\x2\x86F\x870\x5\x213\x10A\x2\x870\x871\x5\x215\x10B\x2"+ + "\x871\x872\x5\x223\x112\x2\x872\x1DE\x3\x2\x2\x2\x873\x874\x5\x1FF\x100"+ + "\x2\x874\x875\x5\x201\x101\x2\x875\x876\x5\x1FD\xFF\x2\x876\x1E0\x3\x2"+ + "\x2\x2\x877\x879\t\b\x2\x2\x878\x877\x3\x2\x2\x2\x879\x87A\x3\x2\x2\x2"+ + "\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C"+ + "\x87E\x5\x1ED\xF7\x2\x87D\x87F\a\xF\x2\x2\x87E\x87D\x3\x2\x2\x2\x87E\x87F"+ + "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\a\f\x2\x2\x881\x882\x3\x2"+ + "\x2\x2\x882\x883\b\xF1\x2\x2\x883\x1E2\x3\x2\x2\x2\x884\x886\t\t\x2\x2"+ + "\x885\x884\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x885\x3\x2\x2\x2\x887"+ + "\x888\x3\x2\x2\x2\x888\x1E4\x3\x2\x2\x2\x889\x88B\x5\x1EB\xF6\x2\x88A"+ + "\x889\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B\x88C\x3\x2\x2\x2\x88C\x88D"+ + "\x5\x11B\x8E\x2\x88D\x892\x5\x1EF\xF8\x2\x88E\x891\x5\x1E1\xF1\x2\x88F"+ + "\x891\n\t\x2\x2\x890\x88E\x3\x2\x2\x2\x890\x88F\x3\x2\x2\x2\x891\x894"+ + "\x3\x2\x2\x2\x892\x890\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893\x1E6\x3"+ + "\x2\x2\x2\x894\x892\x3\x2\x2\x2\x895\x89A\x5\x1E9\xF5\x2\x896\x899\x5"+ + "\x1E1\xF1\x2\x897\x899\n\t\x2\x2\x898\x896\x3\x2\x2\x2\x898\x897\x3\x2"+ + "\x2\x2\x899\x89C\x3\x2\x2\x2\x89A\x898\x3\x2\x2\x2\x89A\x89B\x3\x2\x2"+ + "\x2\x89B\x1E8\x3\x2\x2\x2\x89C\x89A\x3\x2\x2\x2\x89D\x89E\a)\x2\x2\x89E"+ + "\x1EA\x3\x2\x2\x2\x89F\x8A0\a<\x2\x2\x8A0\x1EC\x3\x2\x2\x2\x8A1\x8A2\a"+ + "\x61\x2\x2\x8A2\x1EE\x3\x2\x2\x2\x8A3\x8A6\t\b\x2\x2\x8A4\x8A6\x5\x1E1"+ + "\xF1\x2\x8A5\x8A3\x3\x2\x2\x2\x8A5\x8A4\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2"+ + "\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x1F0\x3\x2\x2\x2"+ + "\x8A9\x8AB\n\n\x2\x2\x8AA\x8A9\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC"+ + "\x8AA\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8B7\x3\x2\x2\x2\x8AE\x8B0"+ + "\x5\x18D\xC7\x2\x8AF\x8B1\n\v\x2\x2\x8B0\x8AF\x3\x2\x2\x2\x8B1\x8B2\x3"+ + "\x2\x2\x2\x8B2\x8B0\x3\x2\x2\x2\x8B2\x8B3\x3\x2\x2\x2\x8B3\x8B4\x3\x2"+ + "\x2\x2\x8B4\x8B5\x5\x18F\xC8\x2\x8B5\x8B7\x3\x2\x2\x2\x8B6\x8AA\x3\x2"+ + "\x2\x2\x8B6\x8AE\x3\x2\x2\x2\x8B7\x1F2\x3\x2\x2\x2\x8B8\x8B9\t\f\x2\x2"+ + "\x8B9\x1F4\x3\x2\x2\x2\x8BA\x8BB\t\r\x2\x2\x8BB\x1F6\x3\x2\x2\x2\x8BC"+ + "\x8BD\t\xE\x2\x2\x8BD\x1F8\x3\x2\x2\x2\x8BE\x8BF\t\xF\x2\x2\x8BF\x1FA"+ + "\x3\x2\x2\x2\x8C0\x8C1\t\x10\x2\x2\x8C1\x1FC\x3\x2\x2\x2\x8C2\x8C3\t\x11"+ + "\x2\x2\x8C3\x1FE\x3\x2\x2\x2\x8C4\x8C5\t\x12\x2\x2\x8C5\x200\x3\x2\x2"+ + "\x2\x8C6\x8C7\t\x13\x2\x2\x8C7\x202\x3\x2\x2\x2\x8C8\x8C9\t\x14\x2\x2"+ + "\x8C9\x204\x3\x2\x2\x2\x8CA\x8CB\t\x15\x2\x2\x8CB\x206\x3\x2\x2\x2\x8CC"+ + "\x8CD\t\x16\x2\x2\x8CD\x208\x3\x2\x2\x2\x8CE\x8CF\t\x17\x2\x2\x8CF\x20A"+ + "\x3\x2\x2\x2\x8D0\x8D1\t\x18\x2\x2\x8D1\x20C\x3\x2\x2\x2\x8D2\x8D3\t\x19"+ + "\x2\x2\x8D3\x20E\x3\x2\x2\x2\x8D4\x8D5\t\x1A\x2\x2\x8D5\x210\x3\x2\x2"+ + "\x2\x8D6\x8D7\t\x1B\x2\x2\x8D7\x212\x3\x2\x2\x2\x8D8\x8D9\t\x1C\x2\x2"+ + "\x8D9\x214\x3\x2\x2\x2\x8DA\x8DB\t\x1D\x2\x2\x8DB\x216\x3\x2\x2\x2\x8DC"+ + "\x8DD\t\x1E\x2\x2\x8DD\x218\x3\x2\x2\x2\x8DE\x8DF\t\x1F\x2\x2\x8DF\x21A"+ + "\x3\x2\x2\x2\x8E0\x8E1\t \x2\x2\x8E1\x21C\x3\x2\x2\x2\x8E2\x8E3\t!\x2"+ + "\x2\x8E3\x21E\x3\x2\x2\x2\x8E4\x8E5\t\"\x2\x2\x8E5\x220\x3\x2\x2\x2\x8E6"+ + "\x8E7\t#\x2\x2\x8E7\x222\x3\x2\x2\x2\x8E8\x8E9\t$\x2\x2\x8E9\x224\x3\x2"+ + "\x2\x2\x8EA\x8EB\t%\x2\x2\x8EB\x226\x3\x2\x2\x2\x8EC\x8ED\t&\x2\x2\x8ED"+ + "\x228\x3\x2\x2\x2\x8EE\x8EF\t\'\x2\x2\x8EF\x22A\x3\x2\x2\x2\x8F0\x8F1"+ + "\t(\x2\x2\x8F1\x22C\x3\x2\x2\x2\x34\x2\x738\x73A\x745\x748\x750\x753\x757"+ + "\x75C\x75F\x765\x769\x76E\x775\x77A\x782\x788\x790\x795\x798\x79B\x79E"+ + "\x7A1\x7A5\x7B3\x7C0\x7C5\x7CC\x7D2\x7D8\x7DA\x7DD\x7DF\x7E2\x7E6\x7E9"+ + "\x7F3\x87A\x87E\x887\x88A\x890\x892\x898\x89A\x8A5\x8A7\x8AC\x8B2\x8B6"+ + "\x3\b\x2\x2"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAListener.cs b/Rubberduck.Parsing/Grammar/VBAListener.cs index 117fb36a82..e7cdb159b4 100644 --- a/Rubberduck.Parsing/Grammar/VBAListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAListener.cs @@ -1051,17 +1051,6 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1338,17 +1327,6 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitVariableStmt([NotNull] VBAParser.VariableStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1441,17 +1419,6 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1768,17 +1735,6 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1836,17 +1792,6 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitMidStmt([NotNull] VBAParser.MidStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); - /// /// Enter a parse tree produced by the vsPow /// labeled alternative in . @@ -1996,17 +1941,6 @@ public interface IVBAListener : IParseTreeListener { /// The parse tree. void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMacroStmt([NotNull] VBAParser.MacroStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMacroStmt([NotNull] VBAParser.MacroStmtContext context); - /// /// Enter a parse tree produced by the vsMid /// labeled alternative in . diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index a762ae4b30..b98ce94e20 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -43,30 +43,29 @@ public const int FRIEND=76, FOR=77, FUNCTION=78, GET=79, GLOBAL=80, GOSUB=81, GOTO=82, IF=83, IMP=84, IMPLEMENTS=85, IN=86, INPUT=87, IS=88, INTEGER=89, KILL=90, LOAD=91, LOCK=92, LONG=93, LOOP=94, LEN=95, LET=96, LIB=97, LIKE=98, LINE_INPUT=99, - LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, MACRO_CONST=104, - MACRO_IF=105, MACRO_ELSEIF=106, MACRO_ELSE=107, MACRO_END_IF=108, ME=109, - MID=110, MKDIR=111, MOD=112, NAME=113, NEXT=114, NEW=115, NOT=116, NOTHING=117, - NULL=118, ON=119, ON_ERROR=120, ON_LOCAL_ERROR=121, OPEN=122, OPTIONAL=123, - OPTION_BASE=124, OPTION_EXPLICIT=125, OPTION_COMPARE=126, OPTION_PRIVATE_MODULE=127, - OR=128, OUTPUT=129, PARAMARRAY=130, PRESERVE=131, PRINT=132, PRIVATE=133, - PROPERTY_GET=134, PROPERTY_LET=135, PROPERTY_SET=136, PTRSAFE=137, PUBLIC=138, - PUT=139, RANDOM=140, RANDOMIZE=141, RAISEEVENT=142, READ=143, READ_WRITE=144, - REDIM=145, REM=146, RESET=147, RESUME=148, RETURN=149, RMDIR=150, RSET=151, - SAVEPICTURE=152, SAVESETTING=153, SEEK=154, SELECT=155, SENDKEYS=156, - SET=157, SETATTR=158, SHARED=159, SINGLE=160, SPC=161, STATIC=162, STEP=163, - STOP=164, STRING=165, SUB=166, TAB=167, TEXT=168, THEN=169, TIME=170, - TO=171, TRUE=172, TYPE=173, TYPEOF=174, UNLOAD=175, UNLOCK=176, UNTIL=177, - VARIANT=178, VERSION=179, WEND=180, WHILE=181, WIDTH=182, WITH=183, WITHEVENTS=184, - WRITE=185, XOR=186, AMPERSAND=187, ASSIGN=188, DIV=189, INTDIV=190, EQ=191, - GEQ=192, GT=193, LEQ=194, LPAREN=195, LT=196, MINUS=197, MULT=198, NEQ=199, - PLUS=200, POW=201, RPAREN=202, L_SQUARE_BRACKET=203, R_SQUARE_BRACKET=204, - STRINGLITERAL=205, OCTLITERAL=206, HEXLITERAL=207, SHORTLITERAL=208, INTEGERLITERAL=209, - DOUBLELITERAL=210, DATELITERAL=211, JANUARY=212, FEBRUARY=213, MARCH=214, - APRIL=215, MAY=216, JUNE=217, JULY=218, AUGUST=219, SEPTEMBER=220, OCTOBER=221, - NOVEMBER=222, DECEMBER=223, JAN=224, FEB=225, MAR=226, APR=227, JUN=228, - JUL=229, AUG=230, SEP=231, OCT=232, NOV=233, DEC=234, LINE_CONTINUATION=235, - NEWLINE=236, REMCOMMENT=237, COMMENT=238, SINGLEQUOTE=239, COLON=240, - UNDERSCORE=241, WS=242, IDENTIFIER=243; + LOCK_READ=100, LOCK_WRITE=101, LOCK_READ_WRITE=102, LSET=103, ME=104, + MID=105, MKDIR=106, MOD=107, NAME=108, NEXT=109, NEW=110, NOT=111, NOTHING=112, + NULL=113, ON=114, ON_ERROR=115, ON_LOCAL_ERROR=116, OPEN=117, OPTIONAL=118, + OPTION_BASE=119, OPTION_EXPLICIT=120, OPTION_COMPARE=121, OPTION_PRIVATE_MODULE=122, + OR=123, OUTPUT=124, PARAMARRAY=125, PRESERVE=126, PRINT=127, PRIVATE=128, + PROPERTY_GET=129, PROPERTY_LET=130, PROPERTY_SET=131, PTRSAFE=132, PUBLIC=133, + PUT=134, RANDOM=135, RANDOMIZE=136, RAISEEVENT=137, READ=138, READ_WRITE=139, + REDIM=140, REM=141, RESET=142, RESUME=143, RETURN=144, RMDIR=145, RSET=146, + SAVEPICTURE=147, SAVESETTING=148, SEEK=149, SELECT=150, SENDKEYS=151, + SET=152, SETATTR=153, SHARED=154, SINGLE=155, SPC=156, STATIC=157, STEP=158, + STOP=159, STRING=160, SUB=161, TAB=162, TEXT=163, THEN=164, TIME=165, + TO=166, TRUE=167, TYPE=168, TYPEOF=169, UNLOAD=170, UNLOCK=171, UNTIL=172, + VARIANT=173, VERSION=174, WEND=175, WHILE=176, WIDTH=177, WITH=178, WITHEVENTS=179, + WRITE=180, XOR=181, AMPERSAND=182, ASSIGN=183, DIV=184, INTDIV=185, EQ=186, + GEQ=187, GT=188, LEQ=189, LPAREN=190, LT=191, MINUS=192, MULT=193, NEQ=194, + PLUS=195, POW=196, RPAREN=197, L_SQUARE_BRACKET=198, R_SQUARE_BRACKET=199, + STRINGLITERAL=200, OCTLITERAL=201, HEXLITERAL=202, SHORTLITERAL=203, INTEGERLITERAL=204, + DOUBLELITERAL=205, DATELITERAL=206, JANUARY=207, FEBRUARY=208, MARCH=209, + APRIL=210, MAY=211, JUNE=212, JULY=213, AUGUST=214, SEPTEMBER=215, OCTOBER=216, + NOVEMBER=217, DECEMBER=218, JAN=219, FEB=220, MAR=221, APR=222, JUN=223, + JUL=224, AUG=225, SEP=226, OCT=227, NOV=228, DEC=229, LINE_CONTINUATION=230, + NEWLINE=231, REMCOMMENT=232, COMMENT=233, SINGLEQUOTE=234, COLON=235, + UNDERSCORE=236, WS=237, IDENTIFIER=238; public static readonly string[] tokenNames = { "", "'@'", "'!'", "'#'", "'$'", "'%'", "';'", "','", "'.'", "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", "AS", @@ -81,102 +80,98 @@ public const int "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_CONST", "MACRO_IF", "MACRO_ELSEIF", - "MACRO_ELSE", "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", - "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", - "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", - "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", - "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", - "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", - "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", - "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", - "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", - "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", - "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "'&'", - "':='", "'/'", "'\\'", "'='", "'>='", "'>'", "'<='", "'('", "'<'", "'-'", - "'*'", "'<>'", "'+'", "'^'", "')'", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", - "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "DATELITERAL", - "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", - "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", "MAR", "APR", - "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "LINE_CONTINUATION", - "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "':'", "'_'", "WS", "IDENTIFIER" + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", + "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", + "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", + "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", + "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", + "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", + "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", + "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", + "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", + "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", + "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", + "WRITE", "XOR", "'&'", "':='", "'/'", "'\\'", "'='", "'>='", "'>'", "'<='", + "'('", "'<'", "'-'", "'*'", "'<>'", "'+'", "'^'", "')'", "'['", "']'", + "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "SHORTLITERAL", "INTEGERLITERAL", + "DOUBLELITERAL", "DATELITERAL", "JANUARY", "FEBRUARY", "MARCH", "APRIL", + "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", + "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", + "DEC", "LINE_CONTINUATION", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", + "':'", "'_'", "WS", "IDENTIFIER" }; public const int RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, RULE_moduleConfigElement = 4, RULE_moduleAttributes = 5, RULE_moduleDeclarations = 6, - RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_macroStmt = 9, - RULE_moduleBody = 10, RULE_moduleBodyElement = 11, RULE_attributeStmt = 12, - RULE_block = 13, RULE_blockStmt = 14, RULE_appactivateStmt = 15, RULE_beepStmt = 16, - RULE_chdirStmt = 17, RULE_chdriveStmt = 18, RULE_closeStmt = 19, RULE_constStmt = 20, - RULE_constSubStmt = 21, RULE_dateStmt = 22, RULE_declareStmt = 23, RULE_deftypeStmt = 24, - RULE_deleteSettingStmt = 25, RULE_doLoopStmt = 26, RULE_endStmt = 27, - RULE_enumerationStmt = 28, RULE_enumerationStmt_Constant = 29, RULE_eraseStmt = 30, - RULE_errorStmt = 31, RULE_eventStmt = 32, RULE_exitStmt = 33, RULE_filecopyStmt = 34, - RULE_forEachStmt = 35, RULE_forNextStmt = 36, RULE_functionStmt = 37, - RULE_getStmt = 38, RULE_goSubStmt = 39, RULE_goToStmt = 40, RULE_ifThenElseStmt = 41, - RULE_ifBlockStmt = 42, RULE_ifConditionStmt = 43, RULE_ifElseIfBlockStmt = 44, - RULE_ifElseBlockStmt = 45, RULE_implementsStmt = 46, RULE_inputStmt = 47, - RULE_killStmt = 48, RULE_letStmt = 49, RULE_lineInputStmt = 50, RULE_loadStmt = 51, - RULE_lockStmt = 52, RULE_lsetStmt = 53, RULE_macroConstStmt = 54, RULE_macroIfThenElseStmt = 55, - RULE_macroIfBlockStmt = 56, RULE_macroElseIfBlockStmt = 57, RULE_macroElseBlockStmt = 58, - RULE_midStmt = 59, RULE_mkdirStmt = 60, RULE_nameStmt = 61, RULE_onErrorStmt = 62, - RULE_onGoToStmt = 63, RULE_onGoSubStmt = 64, RULE_openStmt = 65, RULE_outputList = 66, - RULE_outputList_Expression = 67, RULE_printStmt = 68, RULE_propertyGetStmt = 69, - RULE_propertySetStmt = 70, RULE_propertyLetStmt = 71, RULE_putStmt = 72, - RULE_raiseEventStmt = 73, RULE_randomizeStmt = 74, RULE_redimStmt = 75, - RULE_redimSubStmt = 76, RULE_resetStmt = 77, RULE_resumeStmt = 78, RULE_returnStmt = 79, - RULE_rmdirStmt = 80, RULE_rsetStmt = 81, RULE_savepictureStmt = 82, RULE_saveSettingStmt = 83, - RULE_seekStmt = 84, RULE_selectCaseStmt = 85, RULE_sC_Selection = 86, - RULE_sC_Case = 87, RULE_sC_Cond = 88, RULE_sendkeysStmt = 89, RULE_setattrStmt = 90, - RULE_setStmt = 91, RULE_stopStmt = 92, RULE_subStmt = 93, RULE_timeStmt = 94, - RULE_typeStmt = 95, RULE_typeStmt_Element = 96, RULE_typeOfStmt = 97, - RULE_unloadStmt = 98, RULE_unlockStmt = 99, RULE_valueStmt = 100, RULE_variableStmt = 101, - RULE_variableListStmt = 102, RULE_variableSubStmt = 103, RULE_whileWendStmt = 104, - RULE_widthStmt = 105, RULE_withStmt = 106, RULE_writeStmt = 107, RULE_fileNumber = 108, - RULE_explicitCallStmt = 109, RULE_eCS_ProcedureCall = 110, RULE_eCS_MemberProcedureCall = 111, - RULE_implicitCallStmt_InBlock = 112, RULE_iCS_B_MemberProcedureCall = 113, - RULE_iCS_B_ProcedureCall = 114, RULE_implicitCallStmt_InStmt = 115, RULE_iCS_S_VariableOrProcedureCall = 116, - RULE_iCS_S_ProcedureOrArrayCall = 117, RULE_iCS_S_MembersCall = 118, RULE_iCS_S_MemberCall = 119, - RULE_iCS_S_DictionaryCall = 120, RULE_argsCall = 121, RULE_argCall = 122, - RULE_dictionaryCallStmt = 123, RULE_argList = 124, RULE_arg = 125, RULE_argDefaultValue = 126, - RULE_subscripts = 127, RULE_subscript = 128, RULE_ambiguousIdentifier = 129, - RULE_asTypeClause = 130, RULE_baseType = 131, RULE_certainIdentifier = 132, - RULE_comparisonOperator = 133, RULE_complexType = 134, RULE_fieldLength = 135, - RULE_letterrange = 136, RULE_lineLabel = 137, RULE_literal = 138, RULE_type = 139, - RULE_typeHint = 140, RULE_visibility = 141, RULE_ambiguousKeyword = 142, - RULE_remComment = 143, RULE_comment = 144, RULE_endOfLine = 145, RULE_endOfStatement = 146; + RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_moduleBody = 9, + RULE_moduleBodyElement = 10, RULE_attributeStmt = 11, RULE_block = 12, + RULE_blockStmt = 13, RULE_appactivateStmt = 14, RULE_beepStmt = 15, RULE_chdirStmt = 16, + RULE_chdriveStmt = 17, RULE_closeStmt = 18, RULE_constStmt = 19, RULE_constSubStmt = 20, + RULE_dateStmt = 21, RULE_declareStmt = 22, RULE_deftypeStmt = 23, RULE_deleteSettingStmt = 24, + RULE_doLoopStmt = 25, RULE_endStmt = 26, RULE_enumerationStmt = 27, RULE_enumerationStmt_Constant = 28, + RULE_eraseStmt = 29, RULE_errorStmt = 30, RULE_eventStmt = 31, RULE_exitStmt = 32, + RULE_filecopyStmt = 33, RULE_forEachStmt = 34, RULE_forNextStmt = 35, + RULE_functionStmt = 36, RULE_getStmt = 37, RULE_goSubStmt = 38, RULE_goToStmt = 39, + RULE_ifThenElseStmt = 40, RULE_ifBlockStmt = 41, RULE_ifConditionStmt = 42, + RULE_ifElseIfBlockStmt = 43, RULE_ifElseBlockStmt = 44, RULE_implementsStmt = 45, + RULE_inputStmt = 46, RULE_killStmt = 47, RULE_letStmt = 48, RULE_lineInputStmt = 49, + RULE_loadStmt = 50, RULE_lockStmt = 51, RULE_lsetStmt = 52, RULE_midStmt = 53, + RULE_mkdirStmt = 54, RULE_nameStmt = 55, RULE_onErrorStmt = 56, RULE_onGoToStmt = 57, + RULE_onGoSubStmt = 58, RULE_openStmt = 59, RULE_outputList = 60, RULE_outputList_Expression = 61, + RULE_printStmt = 62, RULE_propertyGetStmt = 63, RULE_propertySetStmt = 64, + RULE_propertyLetStmt = 65, RULE_putStmt = 66, RULE_raiseEventStmt = 67, + RULE_randomizeStmt = 68, RULE_redimStmt = 69, RULE_redimSubStmt = 70, + RULE_resetStmt = 71, RULE_resumeStmt = 72, RULE_returnStmt = 73, RULE_rmdirStmt = 74, + RULE_rsetStmt = 75, RULE_savepictureStmt = 76, RULE_saveSettingStmt = 77, + RULE_seekStmt = 78, RULE_selectCaseStmt = 79, RULE_sC_Selection = 80, + RULE_sC_Case = 81, RULE_sC_Cond = 82, RULE_sendkeysStmt = 83, RULE_setattrStmt = 84, + RULE_setStmt = 85, RULE_stopStmt = 86, RULE_subStmt = 87, RULE_timeStmt = 88, + RULE_typeStmt = 89, RULE_typeStmt_Element = 90, RULE_typeOfStmt = 91, + RULE_unloadStmt = 92, RULE_unlockStmt = 93, RULE_valueStmt = 94, RULE_variableStmt = 95, + RULE_variableListStmt = 96, RULE_variableSubStmt = 97, RULE_whileWendStmt = 98, + RULE_widthStmt = 99, RULE_withStmt = 100, RULE_writeStmt = 101, RULE_fileNumber = 102, + RULE_explicitCallStmt = 103, RULE_eCS_ProcedureCall = 104, RULE_eCS_MemberProcedureCall = 105, + RULE_implicitCallStmt_InBlock = 106, RULE_iCS_B_MemberProcedureCall = 107, + RULE_iCS_B_ProcedureCall = 108, RULE_implicitCallStmt_InStmt = 109, RULE_iCS_S_VariableOrProcedureCall = 110, + RULE_iCS_S_ProcedureOrArrayCall = 111, RULE_iCS_S_MembersCall = 112, RULE_iCS_S_MemberCall = 113, + RULE_iCS_S_DictionaryCall = 114, RULE_argsCall = 115, RULE_argCall = 116, + RULE_dictionaryCallStmt = 117, RULE_argList = 118, RULE_arg = 119, RULE_argDefaultValue = 120, + RULE_subscripts = 121, RULE_subscript = 122, RULE_ambiguousIdentifier = 123, + RULE_asTypeClause = 124, RULE_baseType = 125, RULE_certainIdentifier = 126, + RULE_comparisonOperator = 127, RULE_complexType = 128, RULE_fieldLength = 129, + RULE_letterrange = 130, RULE_lineLabel = 131, RULE_literal = 132, RULE_type = 133, + RULE_typeHint = 134, RULE_visibility = 135, RULE_ambiguousKeyword = 136, + RULE_remComment = 137, RULE_comment = 138, RULE_endOfLine = 139, RULE_endOfStatement = 140; public static readonly string[] ruleNames = { "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", - "macroStmt", "moduleBody", "moduleBodyElement", "attributeStmt", "block", - "blockStmt", "appactivateStmt", "beepStmt", "chdirStmt", "chdriveStmt", - "closeStmt", "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", + "moduleBody", "moduleBodyElement", "attributeStmt", "block", "blockStmt", + "appactivateStmt", "beepStmt", "chdirStmt", "chdriveStmt", "closeStmt", + "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", "deleteSettingStmt", "doLoopStmt", "endStmt", "enumerationStmt", "enumerationStmt_Constant", "eraseStmt", "errorStmt", "eventStmt", "exitStmt", "filecopyStmt", "forEachStmt", "forNextStmt", "functionStmt", "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", "ifBlockStmt", "ifConditionStmt", "ifElseIfBlockStmt", "ifElseBlockStmt", "implementsStmt", "inputStmt", "killStmt", "letStmt", "lineInputStmt", - "loadStmt", "lockStmt", "lsetStmt", "macroConstStmt", "macroIfThenElseStmt", - "macroIfBlockStmt", "macroElseIfBlockStmt", "macroElseBlockStmt", "midStmt", - "mkdirStmt", "nameStmt", "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", - "outputList", "outputList_Expression", "printStmt", "propertyGetStmt", - "propertySetStmt", "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", - "redimStmt", "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", - "rmdirStmt", "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", - "selectCaseStmt", "sC_Selection", "sC_Case", "sC_Cond", "sendkeysStmt", - "setattrStmt", "setStmt", "stopStmt", "subStmt", "timeStmt", "typeStmt", - "typeStmt_Element", "typeOfStmt", "unloadStmt", "unlockStmt", "valueStmt", - "variableStmt", "variableListStmt", "variableSubStmt", "whileWendStmt", - "widthStmt", "withStmt", "writeStmt", "fileNumber", "explicitCallStmt", - "eCS_ProcedureCall", "eCS_MemberProcedureCall", "implicitCallStmt_InBlock", - "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", - "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", "iCS_S_MembersCall", - "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", "argCall", "dictionaryCallStmt", - "argList", "arg", "argDefaultValue", "subscripts", "subscript", "ambiguousIdentifier", - "asTypeClause", "baseType", "certainIdentifier", "comparisonOperator", - "complexType", "fieldLength", "letterrange", "lineLabel", "literal", "type", - "typeHint", "visibility", "ambiguousKeyword", "remComment", "comment", - "endOfLine", "endOfStatement" + "loadStmt", "lockStmt", "lsetStmt", "midStmt", "mkdirStmt", "nameStmt", + "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", + "outputList_Expression", "printStmt", "propertyGetStmt", "propertySetStmt", + "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", "redimStmt", + "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rmdirStmt", + "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", "selectCaseStmt", + "sC_Selection", "sC_Case", "sC_Cond", "sendkeysStmt", "setattrStmt", "setStmt", + "stopStmt", "subStmt", "timeStmt", "typeStmt", "typeStmt_Element", "typeOfStmt", + "unloadStmt", "unlockStmt", "valueStmt", "variableStmt", "variableListStmt", + "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", "writeStmt", + "fileNumber", "explicitCallStmt", "eCS_ProcedureCall", "eCS_MemberProcedureCall", + "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", + "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", + "iCS_S_MembersCall", "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", + "argCall", "dictionaryCallStmt", "argList", "arg", "argDefaultValue", + "subscripts", "subscript", "ambiguousIdentifier", "asTypeClause", "baseType", + "certainIdentifier", "comparisonOperator", "complexType", "fieldLength", + "letterrange", "lineLabel", "literal", "type", "typeHint", "visibility", + "ambiguousKeyword", "remComment", "comment", "endOfLine", "endOfStatement" }; public override string GrammarFileName { get { return "VBA.g4"; } } @@ -224,8 +219,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 294; module(); - State = 295; Match(Eof); + State = 282; module(); + State = 283; Match(Eof); } } catch (RecognitionException re) { @@ -293,65 +288,65 @@ public ModuleContext module() { try { EnterOuterAlt(_localctx, 1); { - State = 298; + State = 286; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: { - State = 297; Match(WS); + State = 285; Match(WS); } break; } - State = 300; endOfStatement(); - State = 304; + State = 288; endOfStatement(); + State = 292; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: { - State = 301; moduleHeader(); - State = 302; endOfStatement(); + State = 289; moduleHeader(); + State = 290; endOfStatement(); } break; } - State = 307; + State = 295; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: { - State = 306; moduleConfig(); + State = 294; moduleConfig(); } break; } - State = 309; endOfStatement(); - State = 311; + State = 297; endOfStatement(); + State = 299; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 310; moduleAttributes(); + State = 298; moduleAttributes(); } break; } - State = 313; endOfStatement(); - State = 315; + State = 301; endOfStatement(); + State = 303; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: { - State = 314; moduleDeclarations(); + State = 302; moduleDeclarations(); } break; } - State = 317; endOfStatement(); - State = 319; + State = 305; endOfStatement(); + State = 307; switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: { - State = 318; moduleBody(); + State = 306; moduleBody(); } break; } - State = 321; endOfStatement(); - State = 323; + State = 309; endOfStatement(); + State = 311; _la = _input.La(1); if (_la==WS) { { - State = 322; Match(WS); + State = 310; Match(WS); } } @@ -403,11 +398,11 @@ public ModuleHeaderContext moduleHeader() { try { EnterOuterAlt(_localctx, 1); { - State = 325; Match(VERSION); - State = 326; Match(WS); - State = 327; Match(DOUBLELITERAL); - State = 328; Match(WS); - State = 329; Match(CLASS); + State = 313; Match(VERSION); + State = 314; Match(WS); + State = 315; Match(DOUBLELITERAL); + State = 316; Match(WS); + State = 317; Match(CLASS); } } catch (RecognitionException re) { @@ -461,9 +456,9 @@ public ModuleConfigContext moduleConfig() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 331; Match(BEGIN); - State = 332; endOfStatement(); - State = 334; + State = 319; Match(BEGIN); + State = 320; endOfStatement(); + State = 322; _errHandler.Sync(this); _alt = 1; do { @@ -471,18 +466,18 @@ public ModuleConfigContext moduleConfig() { case 1: { { - State = 333; moduleConfigElement(); + State = 321; moduleConfigElement(); } } break; default: throw new NoViableAltException(this); } - State = 336; + State = 324; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,7,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 338; Match(END); + State = 326; Match(END); } } catch (RecognitionException re) { @@ -539,26 +534,26 @@ public ModuleConfigElementContext moduleConfigElement() { try { EnterOuterAlt(_localctx, 1); { - State = 340; ambiguousIdentifier(); - State = 342; + State = 328; ambiguousIdentifier(); + State = 330; _la = _input.La(1); if (_la==WS) { { - State = 341; Match(WS); + State = 329; Match(WS); } } - State = 344; Match(EQ); - State = 346; + State = 332; Match(EQ); + State = 334; _la = _input.La(1); if (_la==WS) { { - State = 345; Match(WS); + State = 333; Match(WS); } } - State = 348; literal(); - State = 349; endOfStatement(); + State = 336; literal(); + State = 337; endOfStatement(); } } catch (RecognitionException re) { @@ -613,7 +608,7 @@ public ModuleAttributesContext moduleAttributes() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 354; + State = 342; _errHandler.Sync(this); _alt = 1; do { @@ -621,15 +616,15 @@ public ModuleAttributesContext moduleAttributes() { case 1: { { - State = 351; attributeStmt(); - State = 352; endOfStatement(); + State = 339; attributeStmt(); + State = 340; endOfStatement(); } } break; default: throw new NoViableAltException(this); } - State = 356; + State = 344; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,10,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -687,24 +682,24 @@ public ModuleDeclarationsContext moduleDeclarations() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 358; moduleDeclarationsElement(); - State = 364; + State = 346; moduleDeclarationsElement(); + State = 352; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 359; endOfStatement(); - State = 360; moduleDeclarationsElement(); + State = 347; endOfStatement(); + State = 348; moduleDeclarationsElement(); } } } - State = 366; + State = 354; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); } - State = 367; endOfStatement(); + State = 355; endOfStatement(); } } catch (RecognitionException re) { @@ -811,24 +806,24 @@ public ModuleOptionContext moduleOption() { EnterRule(_localctx, 14, RULE_moduleOption); int _la; try { - State = 377; + State = 365; switch (_input.La(1)) { case OPTION_BASE: _localctx = new OptionBaseStmtContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 369; Match(OPTION_BASE); - State = 370; Match(WS); - State = 371; Match(SHORTLITERAL); + State = 357; Match(OPTION_BASE); + State = 358; Match(WS); + State = 359; Match(SHORTLITERAL); } break; case OPTION_COMPARE: _localctx = new OptionCompareStmtContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 372; Match(OPTION_COMPARE); - State = 373; Match(WS); - State = 374; + State = 360; Match(OPTION_COMPARE); + State = 361; Match(WS); + State = 362; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -840,14 +835,14 @@ public ModuleOptionContext moduleOption() { _localctx = new OptionExplicitStmtContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 375; Match(OPTION_EXPLICIT); + State = 363; Match(OPTION_EXPLICIT); } break; case OPTION_PRIVATE_MODULE: _localctx = new OptionPrivateModuleStmtContext(_localctx); EnterOuterAlt(_localctx, 4); { - State = 376; Match(OPTION_PRIVATE_MODULE); + State = 364; Match(OPTION_PRIVATE_MODULE); } break; default: @@ -890,9 +885,6 @@ public ModuleOptionContext moduleOption() { public DeclareStmtContext declareStmt() { return GetRuleContext(0); } - public MacroStmtContext macroStmt() { - return GetRuleContext(0); - } public ModuleDeclarationsElementContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -918,68 +910,61 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); try { - State = 388; + State = 375; switch ( Interpreter.AdaptivePredict(_input,13,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 379; declareStmt(); + State = 367; declareStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 380; enumerationStmt(); + State = 368; enumerationStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 381; eventStmt(); + State = 369; eventStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 382; constStmt(); + State = 370; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 383; implementsStmt(); + State = 371; implementsStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 384; variableStmt(); + State = 372; variableStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 385; moduleOption(); + State = 373; moduleOption(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 386; typeStmt(); - } - break; - - case 9: - EnterOuterAlt(_localctx, 9); - { - State = 387; macroStmt(); + State = 374; typeStmt(); } break; } @@ -995,67 +980,6 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { return _localctx; } - public partial class MacroStmtContext : ParserRuleContext { - public MacroConstStmtContext macroConstStmt() { - return GetRuleContext(0); - } - public MacroIfThenElseStmtContext macroIfThenElseStmt() { - return GetRuleContext(0); - } - public MacroStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroStmtContext macroStmt() { - MacroStmtContext _localctx = new MacroStmtContext(_ctx, State); - EnterRule(_localctx, 18, RULE_macroStmt); - try { - State = 392; - switch (_input.La(1)) { - case MACRO_CONST: - EnterOuterAlt(_localctx, 1); - { - State = 390; macroConstStmt(); - } - break; - case MACRO_IF: - EnterOuterAlt(_localctx, 2); - { - State = 391; macroIfThenElseStmt(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - public partial class ModuleBodyContext : ParserRuleContext { public EndOfStatementContext endOfStatement(int i) { return GetRuleContext(i); @@ -1092,29 +1016,29 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ModuleBodyContext moduleBody() { ModuleBodyContext _localctx = new ModuleBodyContext(_ctx, State); - EnterRule(_localctx, 20, RULE_moduleBody); + EnterRule(_localctx, 18, RULE_moduleBody); try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 394; moduleBodyElement(); - State = 400; + State = 377; moduleBodyElement(); + State = 383; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,15,_ctx); + _alt = Interpreter.AdaptivePredict(_input,14,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 395; endOfStatement(); - State = 396; moduleBodyElement(); + State = 378; endOfStatement(); + State = 379; moduleBodyElement(); } } } - State = 402; + State = 385; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,15,_ctx); + _alt = Interpreter.AdaptivePredict(_input,14,_ctx); } - State = 403; endOfStatement(); + State = 386; endOfStatement(); } } catch (RecognitionException re) { @@ -1138,9 +1062,6 @@ public PropertyLetStmtContext propertyLetStmt() { public PropertyGetStmtContext propertyGetStmt() { return GetRuleContext(0); } - public MacroStmtContext macroStmt() { - return GetRuleContext(0); - } public SubStmtContext subStmt() { return GetRuleContext(0); } @@ -1170,49 +1091,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ModuleBodyElementContext moduleBodyElement() { ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); - EnterRule(_localctx, 22, RULE_moduleBodyElement); + EnterRule(_localctx, 20, RULE_moduleBodyElement); try { - State = 411; - switch ( Interpreter.AdaptivePredict(_input,16,_ctx) ) { + State = 393; + switch ( Interpreter.AdaptivePredict(_input,15,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 405; functionStmt(); + State = 388; functionStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 406; propertyGetStmt(); + State = 389; propertyGetStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 407; propertySetStmt(); + State = 390; propertySetStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 408; propertyLetStmt(); + State = 391; propertyLetStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 409; subStmt(); - } - break; - - case 6: - EnterOuterAlt(_localctx, 6); - { - State = 410; macroStmt(); + State = 392; subStmt(); } break; } @@ -1267,64 +1181,64 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AttributeStmtContext attributeStmt() { AttributeStmtContext _localctx = new AttributeStmtContext(_ctx, State); - EnterRule(_localctx, 24, RULE_attributeStmt); + EnterRule(_localctx, 22, RULE_attributeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 413; Match(ATTRIBUTE); - State = 414; Match(WS); - State = 415; implicitCallStmt_InStmt(); - State = 417; + State = 395; Match(ATTRIBUTE); + State = 396; Match(WS); + State = 397; implicitCallStmt_InStmt(); + State = 399; _la = _input.La(1); if (_la==WS) { { - State = 416; Match(WS); + State = 398; Match(WS); } } - State = 419; Match(EQ); - State = 421; + State = 401; Match(EQ); + State = 403; _la = _input.La(1); if (_la==WS) { { - State = 420; Match(WS); + State = 402; Match(WS); } } - State = 423; literal(); - State = 434; + State = 405; literal(); + State = 416; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + _alt = Interpreter.AdaptivePredict(_input,20,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 425; + State = 407; _la = _input.La(1); if (_la==WS) { { - State = 424; Match(WS); + State = 406; Match(WS); } } - State = 427; Match(T__1); - State = 429; + State = 409; Match(T__1); + State = 411; _la = _input.La(1); if (_la==WS) { { - State = 428; Match(WS); + State = 410; Match(WS); } } - State = 431; literal(); + State = 413; literal(); } } } - State = 436; + State = 418; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + _alt = Interpreter.AdaptivePredict(_input,20,_ctx); } } } @@ -1375,29 +1289,29 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BlockContext block() { BlockContext _localctx = new BlockContext(_ctx, State); - EnterRule(_localctx, 26, RULE_block); + EnterRule(_localctx, 24, RULE_block); try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 437; blockStmt(); - State = 443; + State = 419; blockStmt(); + State = 425; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,22,_ctx); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 438; endOfStatement(); - State = 439; blockStmt(); + State = 420; endOfStatement(); + State = 421; blockStmt(); } } } - State = 445; + State = 427; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,22,_ctx); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); } - State = 446; endOfStatement(); + State = 428; endOfStatement(); } } catch (RecognitionException re) { @@ -1595,9 +1509,6 @@ public WidthStmtContext widthStmt() { public PrintStmtContext printStmt() { return GetRuleContext(0); } - public MacroStmtContext macroStmt() { - return GetRuleContext(0); - } public SeekStmtContext seekStmt() { return GetRuleContext(0); } @@ -1636,476 +1547,469 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BlockStmtContext blockStmt() { BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); - EnterRule(_localctx, 28, RULE_blockStmt); + EnterRule(_localctx, 26, RULE_blockStmt); try { - State = 515; - switch ( Interpreter.AdaptivePredict(_input,23,_ctx) ) { + State = 496; + switch ( Interpreter.AdaptivePredict(_input,22,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 448; lineLabel(); + State = 430; lineLabel(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 449; appactivateStmt(); + State = 431; appactivateStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 450; attributeStmt(); + State = 432; attributeStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 451; beepStmt(); + State = 433; beepStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 452; chdirStmt(); + State = 434; chdirStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 453; chdriveStmt(); + State = 435; chdriveStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 454; closeStmt(); + State = 436; closeStmt(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 455; constStmt(); + State = 437; constStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 456; dateStmt(); + State = 438; dateStmt(); } break; case 10: EnterOuterAlt(_localctx, 10); { - State = 457; deleteSettingStmt(); + State = 439; deleteSettingStmt(); } break; case 11: EnterOuterAlt(_localctx, 11); { - State = 458; deftypeStmt(); + State = 440; deftypeStmt(); } break; case 12: EnterOuterAlt(_localctx, 12); { - State = 459; doLoopStmt(); + State = 441; doLoopStmt(); } break; case 13: EnterOuterAlt(_localctx, 13); { - State = 460; endStmt(); + State = 442; endStmt(); } break; case 14: EnterOuterAlt(_localctx, 14); { - State = 461; eraseStmt(); + State = 443; eraseStmt(); } break; case 15: EnterOuterAlt(_localctx, 15); { - State = 462; errorStmt(); + State = 444; errorStmt(); } break; case 16: EnterOuterAlt(_localctx, 16); { - State = 463; exitStmt(); + State = 445; exitStmt(); } break; case 17: EnterOuterAlt(_localctx, 17); { - State = 464; explicitCallStmt(); + State = 446; explicitCallStmt(); } break; case 18: EnterOuterAlt(_localctx, 18); { - State = 465; filecopyStmt(); + State = 447; filecopyStmt(); } break; case 19: EnterOuterAlt(_localctx, 19); { - State = 466; forEachStmt(); + State = 448; forEachStmt(); } break; case 20: EnterOuterAlt(_localctx, 20); { - State = 467; forNextStmt(); + State = 449; forNextStmt(); } break; case 21: EnterOuterAlt(_localctx, 21); { - State = 468; getStmt(); + State = 450; getStmt(); } break; case 22: EnterOuterAlt(_localctx, 22); { - State = 469; goSubStmt(); + State = 451; goSubStmt(); } break; case 23: EnterOuterAlt(_localctx, 23); { - State = 470; goToStmt(); + State = 452; goToStmt(); } break; case 24: EnterOuterAlt(_localctx, 24); { - State = 471; ifThenElseStmt(); + State = 453; ifThenElseStmt(); } break; case 25: EnterOuterAlt(_localctx, 25); { - State = 472; implementsStmt(); + State = 454; implementsStmt(); } break; case 26: EnterOuterAlt(_localctx, 26); { - State = 473; inputStmt(); + State = 455; inputStmt(); } break; case 27: EnterOuterAlt(_localctx, 27); { - State = 474; killStmt(); + State = 456; killStmt(); } break; case 28: EnterOuterAlt(_localctx, 28); { - State = 475; letStmt(); + State = 457; letStmt(); } break; case 29: EnterOuterAlt(_localctx, 29); { - State = 476; lineInputStmt(); + State = 458; lineInputStmt(); } break; case 30: EnterOuterAlt(_localctx, 30); { - State = 477; loadStmt(); + State = 459; loadStmt(); } break; case 31: EnterOuterAlt(_localctx, 31); { - State = 478; lockStmt(); + State = 460; lockStmt(); } break; case 32: EnterOuterAlt(_localctx, 32); { - State = 479; lsetStmt(); + State = 461; lsetStmt(); } break; case 33: EnterOuterAlt(_localctx, 33); { - State = 480; macroStmt(); + State = 462; midStmt(); } break; case 34: EnterOuterAlt(_localctx, 34); { - State = 481; midStmt(); + State = 463; mkdirStmt(); } break; case 35: EnterOuterAlt(_localctx, 35); { - State = 482; mkdirStmt(); + State = 464; nameStmt(); } break; case 36: EnterOuterAlt(_localctx, 36); { - State = 483; nameStmt(); + State = 465; onErrorStmt(); } break; case 37: EnterOuterAlt(_localctx, 37); { - State = 484; onErrorStmt(); + State = 466; onGoToStmt(); } break; case 38: EnterOuterAlt(_localctx, 38); { - State = 485; onGoToStmt(); + State = 467; onGoSubStmt(); } break; case 39: EnterOuterAlt(_localctx, 39); { - State = 486; onGoSubStmt(); + State = 468; openStmt(); } break; case 40: EnterOuterAlt(_localctx, 40); { - State = 487; openStmt(); + State = 469; printStmt(); } break; case 41: EnterOuterAlt(_localctx, 41); { - State = 488; printStmt(); + State = 470; putStmt(); } break; case 42: EnterOuterAlt(_localctx, 42); { - State = 489; putStmt(); + State = 471; raiseEventStmt(); } break; case 43: EnterOuterAlt(_localctx, 43); { - State = 490; raiseEventStmt(); + State = 472; randomizeStmt(); } break; case 44: EnterOuterAlt(_localctx, 44); { - State = 491; randomizeStmt(); + State = 473; redimStmt(); } break; case 45: EnterOuterAlt(_localctx, 45); { - State = 492; redimStmt(); + State = 474; resetStmt(); } break; case 46: EnterOuterAlt(_localctx, 46); { - State = 493; resetStmt(); + State = 475; resumeStmt(); } break; case 47: EnterOuterAlt(_localctx, 47); { - State = 494; resumeStmt(); + State = 476; returnStmt(); } break; case 48: EnterOuterAlt(_localctx, 48); { - State = 495; returnStmt(); + State = 477; rmdirStmt(); } break; case 49: EnterOuterAlt(_localctx, 49); { - State = 496; rmdirStmt(); + State = 478; rsetStmt(); } break; case 50: EnterOuterAlt(_localctx, 50); { - State = 497; rsetStmt(); + State = 479; savepictureStmt(); } break; case 51: EnterOuterAlt(_localctx, 51); { - State = 498; savepictureStmt(); + State = 480; saveSettingStmt(); } break; case 52: EnterOuterAlt(_localctx, 52); { - State = 499; saveSettingStmt(); + State = 481; seekStmt(); } break; case 53: EnterOuterAlt(_localctx, 53); { - State = 500; seekStmt(); + State = 482; selectCaseStmt(); } break; case 54: EnterOuterAlt(_localctx, 54); { - State = 501; selectCaseStmt(); + State = 483; sendkeysStmt(); } break; case 55: EnterOuterAlt(_localctx, 55); { - State = 502; sendkeysStmt(); + State = 484; setattrStmt(); } break; case 56: EnterOuterAlt(_localctx, 56); { - State = 503; setattrStmt(); + State = 485; setStmt(); } break; case 57: EnterOuterAlt(_localctx, 57); { - State = 504; setStmt(); + State = 486; stopStmt(); } break; case 58: EnterOuterAlt(_localctx, 58); { - State = 505; stopStmt(); + State = 487; timeStmt(); } break; case 59: EnterOuterAlt(_localctx, 59); { - State = 506; timeStmt(); + State = 488; unloadStmt(); } break; case 60: EnterOuterAlt(_localctx, 60); { - State = 507; unloadStmt(); + State = 489; unlockStmt(); } break; case 61: EnterOuterAlt(_localctx, 61); { - State = 508; unlockStmt(); + State = 490; variableStmt(); } break; case 62: EnterOuterAlt(_localctx, 62); { - State = 509; variableStmt(); + State = 491; whileWendStmt(); } break; case 63: EnterOuterAlt(_localctx, 63); { - State = 510; whileWendStmt(); + State = 492; widthStmt(); } break; case 64: EnterOuterAlt(_localctx, 64); { - State = 511; widthStmt(); + State = 493; withStmt(); } break; case 65: EnterOuterAlt(_localctx, 65); { - State = 512; withStmt(); + State = 494; writeStmt(); } break; case 66: EnterOuterAlt(_localctx, 66); { - State = 513; writeStmt(); - } - break; - - case 67: - EnterOuterAlt(_localctx, 67); - { - State = 514; implicitCallStmt_InBlock(); + State = 495; implicitCallStmt_InBlock(); } break; } @@ -2156,36 +2060,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AppactivateStmtContext appactivateStmt() { AppactivateStmtContext _localctx = new AppactivateStmtContext(_ctx, State); - EnterRule(_localctx, 30, RULE_appactivateStmt); + EnterRule(_localctx, 28, RULE_appactivateStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 517; Match(APPACTIVATE); - State = 518; Match(WS); - State = 519; valueStmt(0); - State = 528; - switch ( Interpreter.AdaptivePredict(_input,26,_ctx) ) { + State = 498; Match(APPACTIVATE); + State = 499; Match(WS); + State = 500; valueStmt(0); + State = 509; + switch ( Interpreter.AdaptivePredict(_input,25,_ctx) ) { case 1: { - State = 521; + State = 502; _la = _input.La(1); if (_la==WS) { { - State = 520; Match(WS); + State = 501; Match(WS); } } - State = 523; Match(T__1); - State = 525; - switch ( Interpreter.AdaptivePredict(_input,25,_ctx) ) { + State = 504; Match(T__1); + State = 506; + switch ( Interpreter.AdaptivePredict(_input,24,_ctx) ) { case 1: { - State = 524; Match(WS); + State = 505; Match(WS); } break; } - State = 527; valueStmt(0); + State = 508; valueStmt(0); } break; } @@ -2227,11 +2131,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BeepStmtContext beepStmt() { BeepStmtContext _localctx = new BeepStmtContext(_ctx, State); - EnterRule(_localctx, 32, RULE_beepStmt); + EnterRule(_localctx, 30, RULE_beepStmt); try { EnterOuterAlt(_localctx, 1); { - State = 530; Match(BEEP); + State = 511; Match(BEEP); } } catch (RecognitionException re) { @@ -2274,13 +2178,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ChdirStmtContext chdirStmt() { ChdirStmtContext _localctx = new ChdirStmtContext(_ctx, State); - EnterRule(_localctx, 34, RULE_chdirStmt); + EnterRule(_localctx, 32, RULE_chdirStmt); try { EnterOuterAlt(_localctx, 1); { - State = 532; Match(CHDIR); - State = 533; Match(WS); - State = 534; valueStmt(0); + State = 513; Match(CHDIR); + State = 514; Match(WS); + State = 515; valueStmt(0); } } catch (RecognitionException re) { @@ -2323,13 +2227,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ChdriveStmtContext chdriveStmt() { ChdriveStmtContext _localctx = new ChdriveStmtContext(_ctx, State); - EnterRule(_localctx, 36, RULE_chdriveStmt); + EnterRule(_localctx, 34, RULE_chdriveStmt); try { EnterOuterAlt(_localctx, 1); { - State = 536; Match(CHDRIVE); - State = 537; Match(WS); - State = 538; valueStmt(0); + State = 517; Match(CHDRIVE); + State = 518; Match(WS); + State = 519; valueStmt(0); } } catch (RecognitionException re) { @@ -2378,50 +2282,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CloseStmtContext closeStmt() { CloseStmtContext _localctx = new CloseStmtContext(_ctx, State); - EnterRule(_localctx, 38, RULE_closeStmt); + EnterRule(_localctx, 36, RULE_closeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 540; Match(CLOSE); - State = 556; - switch ( Interpreter.AdaptivePredict(_input,30,_ctx) ) { + State = 521; Match(CLOSE); + State = 537; + switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { case 1: { - State = 541; Match(WS); - State = 542; fileNumber(); - State = 553; + State = 522; Match(WS); + State = 523; fileNumber(); + State = 534; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,29,_ctx); + _alt = Interpreter.AdaptivePredict(_input,28,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 544; + State = 525; _la = _input.La(1); if (_la==WS) { { - State = 543; Match(WS); + State = 524; Match(WS); } } - State = 546; Match(T__1); - State = 548; - switch ( Interpreter.AdaptivePredict(_input,28,_ctx) ) { + State = 527; Match(T__1); + State = 529; + switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { case 1: { - State = 547; Match(WS); + State = 528; Match(WS); } break; } - State = 550; fileNumber(); + State = 531; fileNumber(); } } } - State = 555; + State = 536; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,29,_ctx); + _alt = Interpreter.AdaptivePredict(_input,28,_ctx); } } break; @@ -2477,55 +2381,55 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstStmtContext constStmt() { ConstStmtContext _localctx = new ConstStmtContext(_ctx, State); - EnterRule(_localctx, 40, RULE_constStmt); + EnterRule(_localctx, 38, RULE_constStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 561; + State = 542; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 558; visibility(); - State = 559; Match(WS); + State = 539; visibility(); + State = 540; Match(WS); } } - State = 563; Match(CONST); - State = 564; Match(WS); - State = 565; constSubStmt(); - State = 576; + State = 544; Match(CONST); + State = 545; Match(WS); + State = 546; constSubStmt(); + State = 557; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,34,_ctx); + _alt = Interpreter.AdaptivePredict(_input,33,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 567; + State = 548; _la = _input.La(1); if (_la==WS) { { - State = 566; Match(WS); + State = 547; Match(WS); } } - State = 569; Match(T__1); - State = 571; + State = 550; Match(T__1); + State = 552; _la = _input.La(1); if (_la==WS) { { - State = 570; Match(WS); + State = 551; Match(WS); } } - State = 573; constSubStmt(); + State = 554; constSubStmt(); } } } - State = 578; + State = 559; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,34,_ctx); + _alt = Interpreter.AdaptivePredict(_input,33,_ctx); } } } @@ -2581,47 +2485,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstSubStmtContext constSubStmt() { ConstSubStmtContext _localctx = new ConstSubStmtContext(_ctx, State); - EnterRule(_localctx, 42, RULE_constSubStmt); + EnterRule(_localctx, 40, RULE_constSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 579; ambiguousIdentifier(); - State = 581; + State = 560; ambiguousIdentifier(); + State = 562; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 580; typeHint(); + State = 561; typeHint(); } } - State = 585; - switch ( Interpreter.AdaptivePredict(_input,36,_ctx) ) { + State = 566; + switch ( Interpreter.AdaptivePredict(_input,35,_ctx) ) { case 1: { - State = 583; Match(WS); - State = 584; asTypeClause(); + State = 564; Match(WS); + State = 565; asTypeClause(); } break; } - State = 588; + State = 569; _la = _input.La(1); if (_la==WS) { { - State = 587; Match(WS); + State = 568; Match(WS); } } - State = 590; Match(EQ); - State = 592; - switch ( Interpreter.AdaptivePredict(_input,38,_ctx) ) { + State = 571; Match(EQ); + State = 573; + switch ( Interpreter.AdaptivePredict(_input,37,_ctx) ) { case 1: { - State = 591; Match(WS); + State = 572; Match(WS); } break; } - State = 594; valueStmt(0); + State = 575; valueStmt(0); } } catch (RecognitionException re) { @@ -2668,30 +2572,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DateStmtContext dateStmt() { DateStmtContext _localctx = new DateStmtContext(_ctx, State); - EnterRule(_localctx, 44, RULE_dateStmt); + EnterRule(_localctx, 42, RULE_dateStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 596; Match(DATE); - State = 598; + State = 577; Match(DATE); + State = 579; _la = _input.La(1); if (_la==WS) { { - State = 597; Match(WS); + State = 578; Match(WS); } } - State = 600; Match(EQ); - State = 602; - switch ( Interpreter.AdaptivePredict(_input,40,_ctx) ) { + State = 581; Match(EQ); + State = 583; + switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { case 1: { - State = 601; Match(WS); + State = 582; Match(WS); } break; } - State = 604; valueStmt(0); + State = 585; valueStmt(0); } } catch (RecognitionException re) { @@ -2761,42 +2665,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeclareStmtContext declareStmt() { DeclareStmtContext _localctx = new DeclareStmtContext(_ctx, State); - EnterRule(_localctx, 46, RULE_declareStmt); + EnterRule(_localctx, 44, RULE_declareStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 609; + State = 590; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 606; visibility(); - State = 607; Match(WS); + State = 587; visibility(); + State = 588; Match(WS); } } - State = 611; Match(DECLARE); - State = 612; Match(WS); - State = 615; + State = 592; Match(DECLARE); + State = 593; Match(WS); + State = 596; _la = _input.La(1); if (_la==PTRSAFE) { { - State = 613; Match(PTRSAFE); - State = 614; Match(WS); + State = 594; Match(PTRSAFE); + State = 595; Match(WS); } } - State = 622; + State = 603; switch (_input.La(1)) { case FUNCTION: { { - State = 617; Match(FUNCTION); - State = 619; + State = 598; Match(FUNCTION); + State = 600; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 618; typeHint(); + State = 599; typeHint(); } } @@ -2805,59 +2709,59 @@ public DeclareStmtContext declareStmt() { break; case SUB: { - State = 621; Match(SUB); + State = 602; Match(SUB); } break; default: throw new NoViableAltException(this); } - State = 624; Match(WS); - State = 625; ambiguousIdentifier(); - State = 627; + State = 605; Match(WS); + State = 606; ambiguousIdentifier(); + State = 608; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 626; typeHint(); + State = 607; typeHint(); } } - State = 629; Match(WS); - State = 630; Match(LIB); - State = 631; Match(WS); - State = 632; Match(STRINGLITERAL); - State = 637; - switch ( Interpreter.AdaptivePredict(_input,46,_ctx) ) { + State = 610; Match(WS); + State = 611; Match(LIB); + State = 612; Match(WS); + State = 613; Match(STRINGLITERAL); + State = 618; + switch ( Interpreter.AdaptivePredict(_input,45,_ctx) ) { case 1: { - State = 633; Match(WS); - State = 634; Match(ALIAS); - State = 635; Match(WS); - State = 636; Match(STRINGLITERAL); + State = 614; Match(WS); + State = 615; Match(ALIAS); + State = 616; Match(WS); + State = 617; Match(STRINGLITERAL); } break; } - State = 643; - switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { + State = 624; + switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { case 1: { - State = 640; + State = 621; _la = _input.La(1); if (_la==WS) { { - State = 639; Match(WS); + State = 620; Match(WS); } } - State = 642; argList(); + State = 623; argList(); } break; } - State = 647; - switch ( Interpreter.AdaptivePredict(_input,49,_ctx) ) { + State = 628; + switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { case 1: { - State = 645; Match(WS); - State = 646; asTypeClause(); + State = 626; Match(WS); + State = 627; asTypeClause(); } break; } @@ -2920,51 +2824,51 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeftypeStmtContext deftypeStmt() { DeftypeStmtContext _localctx = new DeftypeStmtContext(_ctx, State); - EnterRule(_localctx, 48, RULE_deftypeStmt); + EnterRule(_localctx, 46, RULE_deftypeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 649; + State = 630; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 650; Match(WS); - State = 651; letterrange(); - State = 662; + State = 631; Match(WS); + State = 632; letterrange(); + State = 643; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,52,_ctx); + _alt = Interpreter.AdaptivePredict(_input,51,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 653; + State = 634; _la = _input.La(1); if (_la==WS) { { - State = 652; Match(WS); + State = 633; Match(WS); } } - State = 655; Match(T__1); - State = 657; + State = 636; Match(T__1); + State = 638; _la = _input.La(1); if (_la==WS) { { - State = 656; Match(WS); + State = 637; Match(WS); } } - State = 659; letterrange(); + State = 640; letterrange(); } } } - State = 664; + State = 645; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,52,_ctx); + _alt = Interpreter.AdaptivePredict(_input,51,_ctx); } } } @@ -3014,54 +2918,54 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeleteSettingStmtContext deleteSettingStmt() { DeleteSettingStmtContext _localctx = new DeleteSettingStmtContext(_ctx, State); - EnterRule(_localctx, 50, RULE_deleteSettingStmt); + EnterRule(_localctx, 48, RULE_deleteSettingStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 665; Match(DELETESETTING); - State = 666; Match(WS); - State = 667; valueStmt(0); - State = 669; + State = 646; Match(DELETESETTING); + State = 647; Match(WS); + State = 648; valueStmt(0); + State = 650; _la = _input.La(1); if (_la==WS) { { - State = 668; Match(WS); + State = 649; Match(WS); } } - State = 671; Match(T__1); - State = 673; - switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { + State = 652; Match(T__1); + State = 654; + switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { case 1: { - State = 672; Match(WS); + State = 653; Match(WS); } break; } - State = 675; valueStmt(0); - State = 684; - switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { + State = 656; valueStmt(0); + State = 665; + switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { case 1: { - State = 677; + State = 658; _la = _input.La(1); if (_la==WS) { { - State = 676; Match(WS); + State = 657; Match(WS); } } - State = 679; Match(T__1); - State = 681; - switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { + State = 660; Match(T__1); + State = 662; + switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { case 1: { - State = 680; Match(WS); + State = 661; Match(WS); } break; } - State = 683; valueStmt(0); + State = 664; valueStmt(0); } break; } @@ -3119,70 +3023,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DoLoopStmtContext doLoopStmt() { DoLoopStmtContext _localctx = new DoLoopStmtContext(_ctx, State); - EnterRule(_localctx, 52, RULE_doLoopStmt); + EnterRule(_localctx, 50, RULE_doLoopStmt); int _la; try { - State = 713; - switch ( Interpreter.AdaptivePredict(_input,60,_ctx) ) { + State = 694; + switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 686; Match(DO); - State = 687; endOfStatement(); - State = 689; - switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { + State = 667; Match(DO); + State = 668; endOfStatement(); + State = 670; + switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { case 1: { - State = 688; block(); + State = 669; block(); } break; } - State = 691; Match(LOOP); + State = 672; Match(LOOP); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 693; Match(DO); - State = 694; Match(WS); - State = 695; + State = 674; Match(DO); + State = 675; Match(WS); + State = 676; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 696; Match(WS); - State = 697; valueStmt(0); - State = 698; endOfStatement(); - State = 700; - switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { + State = 677; Match(WS); + State = 678; valueStmt(0); + State = 679; endOfStatement(); + State = 681; + switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { case 1: { - State = 699; block(); + State = 680; block(); } break; } - State = 702; Match(LOOP); + State = 683; Match(LOOP); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 704; Match(DO); - State = 705; endOfStatement(); - State = 706; block(); - State = 707; Match(LOOP); - State = 708; Match(WS); - State = 709; + State = 685; Match(DO); + State = 686; endOfStatement(); + State = 687; block(); + State = 688; Match(LOOP); + State = 689; Match(WS); + State = 690; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 710; Match(WS); - State = 711; valueStmt(0); + State = 691; Match(WS); + State = 692; valueStmt(0); } break; } @@ -3223,11 +3127,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndStmtContext endStmt() { EndStmtContext _localctx = new EndStmtContext(_ctx, State); - EnterRule(_localctx, 54, RULE_endStmt); + EnterRule(_localctx, 52, RULE_endStmt); try { EnterOuterAlt(_localctx, 1); { - State = 715; Match(END); + State = 696; Match(END); } } catch (RecognitionException re) { @@ -3286,38 +3190,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmtContext enumerationStmt() { EnumerationStmtContext _localctx = new EnumerationStmtContext(_ctx, State); - EnterRule(_localctx, 56, RULE_enumerationStmt); + EnterRule(_localctx, 54, RULE_enumerationStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 720; + State = 701; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 717; visibility(); - State = 718; Match(WS); + State = 698; visibility(); + State = 699; Match(WS); } } - State = 722; Match(ENUM); - State = 723; Match(WS); - State = 724; ambiguousIdentifier(); - State = 725; endOfStatement(); - State = 729; + State = 703; Match(ENUM); + State = 704; Match(WS); + State = 705; ambiguousIdentifier(); + State = 706; endOfStatement(); + State = 710; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { { { - State = 726; enumerationStmt_Constant(); + State = 707; enumerationStmt_Constant(); } } - State = 731; + State = 712; _errHandler.Sync(this); _la = _input.La(1); } - State = 732; Match(END_ENUM); + State = 713; Match(END_ENUM); } } catch (RecognitionException re) { @@ -3369,38 +3273,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmt_ConstantContext enumerationStmt_Constant() { EnumerationStmt_ConstantContext _localctx = new EnumerationStmt_ConstantContext(_ctx, State); - EnterRule(_localctx, 58, RULE_enumerationStmt_Constant); + EnterRule(_localctx, 56, RULE_enumerationStmt_Constant); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 734; ambiguousIdentifier(); - State = 743; - switch ( Interpreter.AdaptivePredict(_input,65,_ctx) ) { + State = 715; ambiguousIdentifier(); + State = 724; + switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { case 1: { - State = 736; + State = 717; _la = _input.La(1); if (_la==WS) { { - State = 735; Match(WS); + State = 716; Match(WS); } } - State = 738; Match(EQ); - State = 740; - switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { + State = 719; Match(EQ); + State = 721; + switch ( Interpreter.AdaptivePredict(_input,63,_ctx) ) { case 1: { - State = 739; Match(WS); + State = 720; Match(WS); } break; } - State = 742; valueStmt(0); + State = 723; valueStmt(0); } break; } - State = 745; endOfStatement(); + State = 726; endOfStatement(); } } catch (RecognitionException re) { @@ -3443,13 +3347,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EraseStmtContext eraseStmt() { EraseStmtContext _localctx = new EraseStmtContext(_ctx, State); - EnterRule(_localctx, 60, RULE_eraseStmt); + EnterRule(_localctx, 58, RULE_eraseStmt); try { EnterOuterAlt(_localctx, 1); { - State = 747; Match(ERASE); - State = 748; Match(WS); - State = 749; valueStmt(0); + State = 728; Match(ERASE); + State = 729; Match(WS); + State = 730; valueStmt(0); } } catch (RecognitionException re) { @@ -3492,13 +3396,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ErrorStmtContext errorStmt() { ErrorStmtContext _localctx = new ErrorStmtContext(_ctx, State); - EnterRule(_localctx, 62, RULE_errorStmt); + EnterRule(_localctx, 60, RULE_errorStmt); try { EnterOuterAlt(_localctx, 1); { - State = 751; Match(ERROR); - State = 752; Match(WS); - State = 753; valueStmt(0); + State = 732; Match(ERROR); + State = 733; Match(WS); + State = 734; valueStmt(0); } } catch (RecognitionException re) { @@ -3550,32 +3454,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EventStmtContext eventStmt() { EventStmtContext _localctx = new EventStmtContext(_ctx, State); - EnterRule(_localctx, 64, RULE_eventStmt); + EnterRule(_localctx, 62, RULE_eventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 758; + State = 739; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 755; visibility(); - State = 756; Match(WS); + State = 736; visibility(); + State = 737; Match(WS); } } - State = 760; Match(EVENT); - State = 761; Match(WS); - State = 762; ambiguousIdentifier(); - State = 764; + State = 741; Match(EVENT); + State = 742; Match(WS); + State = 743; ambiguousIdentifier(); + State = 745; _la = _input.La(1); if (_la==WS) { { - State = 763; Match(WS); + State = 744; Match(WS); } } - State = 766; argList(); + State = 747; argList(); } } catch (RecognitionException re) { @@ -3618,12 +3522,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExitStmtContext exitStmt() { ExitStmtContext _localctx = new ExitStmtContext(_ctx, State); - EnterRule(_localctx, 66, RULE_exitStmt); + EnterRule(_localctx, 64, RULE_exitStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 768; + State = 749; _la = _input.La(1); if ( !(((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (EXIT_DO - 69)) | (1L << (EXIT_FOR - 69)) | (1L << (EXIT_FUNCTION - 69)) | (1L << (EXIT_PROPERTY - 69)) | (1L << (EXIT_SUB - 69)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -3677,32 +3581,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FilecopyStmtContext filecopyStmt() { FilecopyStmtContext _localctx = new FilecopyStmtContext(_ctx, State); - EnterRule(_localctx, 68, RULE_filecopyStmt); + EnterRule(_localctx, 66, RULE_filecopyStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 770; Match(FILECOPY); - State = 771; Match(WS); - State = 772; valueStmt(0); - State = 774; + State = 751; Match(FILECOPY); + State = 752; Match(WS); + State = 753; valueStmt(0); + State = 755; _la = _input.La(1); if (_la==WS) { { - State = 773; Match(WS); + State = 754; Match(WS); } } - State = 776; Match(T__1); - State = 778; - switch ( Interpreter.AdaptivePredict(_input,69,_ctx) ) { + State = 757; Match(T__1); + State = 759; + switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { case 1: { - State = 777; Match(WS); + State = 758; Match(WS); } break; } - State = 780; valueStmt(0); + State = 761; valueStmt(0); } } catch (RecognitionException re) { @@ -3766,44 +3670,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForEachStmtContext forEachStmt() { ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); - EnterRule(_localctx, 70, RULE_forEachStmt); + EnterRule(_localctx, 68, RULE_forEachStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 782; Match(FOR); - State = 783; Match(WS); - State = 784; Match(EACH); - State = 785; Match(WS); - State = 786; ambiguousIdentifier(); - State = 788; + State = 763; Match(FOR); + State = 764; Match(WS); + State = 765; Match(EACH); + State = 766; Match(WS); + State = 767; ambiguousIdentifier(); + State = 769; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 787; typeHint(); + State = 768; typeHint(); } } - State = 790; Match(WS); - State = 791; Match(IN); - State = 792; Match(WS); - State = 793; valueStmt(0); - State = 794; endOfStatement(); - State = 796; - switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { + State = 771; Match(WS); + State = 772; Match(IN); + State = 773; Match(WS); + State = 774; valueStmt(0); + State = 775; endOfStatement(); + State = 777; + switch ( Interpreter.AdaptivePredict(_input,70,_ctx) ) { case 1: { - State = 795; block(); + State = 776; block(); } break; } - State = 798; Match(NEXT); - State = 801; - switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { + State = 779; Match(NEXT); + State = 782; + switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { case 1: { - State = 799; Match(WS); - State = 800; ambiguousIdentifier(); + State = 780; Match(WS); + State = 781; ambiguousIdentifier(); } break; } @@ -3877,80 +3781,80 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForNextStmtContext forNextStmt() { ForNextStmtContext _localctx = new ForNextStmtContext(_ctx, State); - EnterRule(_localctx, 72, RULE_forNextStmt); + EnterRule(_localctx, 70, RULE_forNextStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 803; Match(FOR); - State = 804; Match(WS); - State = 805; ambiguousIdentifier(); - State = 807; + State = 784; Match(FOR); + State = 785; Match(WS); + State = 786; ambiguousIdentifier(); + State = 788; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 806; typeHint(); + State = 787; typeHint(); } } - State = 811; - switch ( Interpreter.AdaptivePredict(_input,74,_ctx) ) { + State = 792; + switch ( Interpreter.AdaptivePredict(_input,73,_ctx) ) { case 1: { - State = 809; Match(WS); - State = 810; asTypeClause(); + State = 790; Match(WS); + State = 791; asTypeClause(); } break; } - State = 814; + State = 795; _la = _input.La(1); if (_la==WS) { { - State = 813; Match(WS); + State = 794; Match(WS); } } - State = 816; Match(EQ); - State = 818; - switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { + State = 797; Match(EQ); + State = 799; + switch ( Interpreter.AdaptivePredict(_input,75,_ctx) ) { case 1: { - State = 817; Match(WS); + State = 798; Match(WS); } break; } - State = 820; valueStmt(0); - State = 821; Match(WS); - State = 822; Match(TO); - State = 823; Match(WS); - State = 824; valueStmt(0); - State = 829; - switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { + State = 801; valueStmt(0); + State = 802; Match(WS); + State = 803; Match(TO); + State = 804; Match(WS); + State = 805; valueStmt(0); + State = 810; + switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { case 1: { - State = 825; Match(WS); - State = 826; Match(STEP); - State = 827; Match(WS); - State = 828; valueStmt(0); + State = 806; Match(WS); + State = 807; Match(STEP); + State = 808; Match(WS); + State = 809; valueStmt(0); } break; } - State = 831; endOfStatement(); - State = 833; - switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { + State = 812; endOfStatement(); + State = 814; + switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { case 1: { - State = 832; block(); + State = 813; block(); } break; } - State = 835; Match(NEXT); - State = 838; - switch ( Interpreter.AdaptivePredict(_input,79,_ctx) ) { + State = 816; Match(NEXT); + State = 819; + switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { case 1: { - State = 836; Match(WS); - State = 837; ambiguousIdentifier(); + State = 817; Match(WS); + State = 818; ambiguousIdentifier(); } break; } @@ -4019,89 +3923,89 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FunctionStmtContext functionStmt() { FunctionStmtContext _localctx = new FunctionStmtContext(_ctx, State); - EnterRule(_localctx, 74, RULE_functionStmt); + EnterRule(_localctx, 72, RULE_functionStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 843; + State = 824; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 840; visibility(); - State = 841; Match(WS); + State = 821; visibility(); + State = 822; Match(WS); } } - State = 847; + State = 828; _la = _input.La(1); if (_la==STATIC) { { - State = 845; Match(STATIC); - State = 846; Match(WS); + State = 826; Match(STATIC); + State = 827; Match(WS); } } - State = 849; Match(FUNCTION); - State = 851; + State = 830; Match(FUNCTION); + State = 832; _la = _input.La(1); if (_la==WS) { { - State = 850; Match(WS); + State = 831; Match(WS); } } - State = 853; ambiguousIdentifier(); - State = 855; - switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { + State = 834; ambiguousIdentifier(); + State = 836; + switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { case 1: { - State = 854; typeHint(); + State = 835; typeHint(); } break; } - State = 861; - switch ( Interpreter.AdaptivePredict(_input,85,_ctx) ) { + State = 842; + switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { case 1: { - State = 858; + State = 839; _la = _input.La(1); if (_la==WS) { { - State = 857; Match(WS); + State = 838; Match(WS); } } - State = 860; argList(); + State = 841; argList(); } break; } - State = 867; - switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { + State = 848; + switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { case 1: { - State = 864; + State = 845; _la = _input.La(1); if (_la==WS) { { - State = 863; Match(WS); + State = 844; Match(WS); } } - State = 866; asTypeClause(); + State = 847; asTypeClause(); } break; } - State = 869; endOfStatement(); - State = 871; + State = 850; endOfStatement(); + State = 852; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 870; block(); + State = 851; block(); } } - State = 873; Match(END_FUNCTION); + State = 854; Match(END_FUNCTION); } } catch (RecognitionException re) { @@ -4153,57 +4057,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GetStmtContext getStmt() { GetStmtContext _localctx = new GetStmtContext(_ctx, State); - EnterRule(_localctx, 76, RULE_getStmt); + EnterRule(_localctx, 74, RULE_getStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 875; Match(GET); - State = 876; Match(WS); - State = 877; fileNumber(); - State = 879; + State = 856; Match(GET); + State = 857; Match(WS); + State = 858; fileNumber(); + State = 860; _la = _input.La(1); if (_la==WS) { { - State = 878; Match(WS); + State = 859; Match(WS); } } - State = 881; Match(T__1); - State = 883; - switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { + State = 862; Match(T__1); + State = 864; + switch ( Interpreter.AdaptivePredict(_input,89,_ctx) ) { case 1: { - State = 882; Match(WS); + State = 863; Match(WS); } break; } - State = 886; - switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { + State = 867; + switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { case 1: { - State = 885; valueStmt(0); + State = 866; valueStmt(0); } break; } - State = 889; + State = 870; _la = _input.La(1); if (_la==WS) { { - State = 888; Match(WS); + State = 869; Match(WS); } } - State = 891; Match(T__1); - State = 893; - switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { + State = 872; Match(T__1); + State = 874; + switch ( Interpreter.AdaptivePredict(_input,92,_ctx) ) { case 1: { - State = 892; Match(WS); + State = 873; Match(WS); } break; } - State = 895; valueStmt(0); + State = 876; valueStmt(0); } } catch (RecognitionException re) { @@ -4246,13 +4150,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoSubStmtContext goSubStmt() { GoSubStmtContext _localctx = new GoSubStmtContext(_ctx, State); - EnterRule(_localctx, 78, RULE_goSubStmt); + EnterRule(_localctx, 76, RULE_goSubStmt); try { EnterOuterAlt(_localctx, 1); { - State = 897; Match(GOSUB); - State = 898; Match(WS); - State = 899; valueStmt(0); + State = 878; Match(GOSUB); + State = 879; Match(WS); + State = 880; valueStmt(0); } } catch (RecognitionException re) { @@ -4295,13 +4199,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoToStmtContext goToStmt() { GoToStmtContext _localctx = new GoToStmtContext(_ctx, State); - EnterRule(_localctx, 80, RULE_goToStmt); + EnterRule(_localctx, 78, RULE_goToStmt); try { EnterOuterAlt(_localctx, 1); { - State = 901; Match(GOTO); - State = 902; Match(WS); - State = 903; valueStmt(0); + State = 882; Match(GOTO); + State = 883; Match(WS); + State = 884; valueStmt(0); } } catch (RecognitionException re) { @@ -4392,30 +4296,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfThenElseStmtContext ifThenElseStmt() { IfThenElseStmtContext _localctx = new IfThenElseStmtContext(_ctx, State); - EnterRule(_localctx, 82, RULE_ifThenElseStmt); + EnterRule(_localctx, 80, RULE_ifThenElseStmt); int _la; try { - State = 930; - switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { + State = 911; + switch ( Interpreter.AdaptivePredict(_input,96,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 905; Match(IF); - State = 906; Match(WS); - State = 907; ifConditionStmt(); - State = 908; Match(WS); - State = 909; Match(THEN); - State = 910; Match(WS); - State = 911; blockStmt(); - State = 916; - switch ( Interpreter.AdaptivePredict(_input,94,_ctx) ) { + State = 886; Match(IF); + State = 887; Match(WS); + State = 888; ifConditionStmt(); + State = 889; Match(WS); + State = 890; Match(THEN); + State = 891; Match(WS); + State = 892; blockStmt(); + State = 897; + switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { case 1: { - State = 912; Match(WS); - State = 913; Match(ELSE); - State = 914; Match(WS); - State = 915; blockStmt(); + State = 893; Match(WS); + State = 894; Match(ELSE); + State = 895; Match(WS); + State = 896; blockStmt(); } break; } @@ -4426,29 +4330,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 918; ifBlockStmt(); - State = 922; + State = 899; ifBlockStmt(); + State = 903; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 919; ifElseIfBlockStmt(); + State = 900; ifElseIfBlockStmt(); } } - State = 924; + State = 905; _errHandler.Sync(this); _la = _input.La(1); } - State = 926; + State = 907; _la = _input.La(1); if (_la==ELSE) { { - State = 925; ifElseBlockStmt(); + State = 906; ifElseBlockStmt(); } } - State = 928; Match(END_IF); + State = 909; Match(END_IF); } break; } @@ -4503,21 +4407,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfBlockStmtContext ifBlockStmt() { IfBlockStmtContext _localctx = new IfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 84, RULE_ifBlockStmt); + EnterRule(_localctx, 82, RULE_ifBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 932; Match(IF); - State = 933; Match(WS); - State = 934; ifConditionStmt(); - State = 935; Match(WS); - State = 936; Match(THEN); - State = 937; endOfStatement(); - State = 939; - switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { + State = 913; Match(IF); + State = 914; Match(WS); + State = 915; ifConditionStmt(); + State = 916; Match(WS); + State = 917; Match(THEN); + State = 918; endOfStatement(); + State = 920; + switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { case 1: { - State = 938; block(); + State = 919; block(); } break; } @@ -4561,11 +4465,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfConditionStmtContext ifConditionStmt() { IfConditionStmtContext _localctx = new IfConditionStmtContext(_ctx, State); - EnterRule(_localctx, 86, RULE_ifConditionStmt); + EnterRule(_localctx, 84, RULE_ifConditionStmt); try { EnterOuterAlt(_localctx, 1); { - State = 941; valueStmt(0); + State = 922; valueStmt(0); } } catch (RecognitionException re) { @@ -4618,21 +4522,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseIfBlockStmtContext ifElseIfBlockStmt() { IfElseIfBlockStmtContext _localctx = new IfElseIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 88, RULE_ifElseIfBlockStmt); + EnterRule(_localctx, 86, RULE_ifElseIfBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 943; Match(ELSEIF); - State = 944; Match(WS); - State = 945; ifConditionStmt(); - State = 946; Match(WS); - State = 947; Match(THEN); - State = 948; endOfStatement(); - State = 950; - switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { + State = 924; Match(ELSEIF); + State = 925; Match(WS); + State = 926; ifConditionStmt(); + State = 927; Match(WS); + State = 928; Match(THEN); + State = 929; endOfStatement(); + State = 931; + switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { case 1: { - State = 949; block(); + State = 930; block(); } break; } @@ -4680,18 +4584,18 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseBlockStmtContext ifElseBlockStmt() { IfElseBlockStmtContext _localctx = new IfElseBlockStmtContext(_ctx, State); - EnterRule(_localctx, 90, RULE_ifElseBlockStmt); + EnterRule(_localctx, 88, RULE_ifElseBlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 952; Match(ELSE); - State = 953; endOfStatement(); - State = 955; + State = 933; Match(ELSE); + State = 934; endOfStatement(); + State = 936; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 954; block(); + State = 935; block(); } } @@ -4737,13 +4641,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplementsStmtContext implementsStmt() { ImplementsStmtContext _localctx = new ImplementsStmtContext(_ctx, State); - EnterRule(_localctx, 92, RULE_implementsStmt); + EnterRule(_localctx, 90, RULE_implementsStmt); try { EnterOuterAlt(_localctx, 1); { - State = 957; Match(IMPLEMENTS); - State = 958; Match(WS); - State = 959; ambiguousIdentifier(); + State = 938; Match(IMPLEMENTS); + State = 939; Match(WS); + State = 940; ambiguousIdentifier(); } } catch (RecognitionException re) { @@ -4795,16 +4699,16 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public InputStmtContext inputStmt() { InputStmtContext _localctx = new InputStmtContext(_ctx, State); - EnterRule(_localctx, 94, RULE_inputStmt); + EnterRule(_localctx, 92, RULE_inputStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 961; Match(INPUT); - State = 962; Match(WS); - State = 963; fileNumber(); - State = 972; + State = 942; Match(INPUT); + State = 943; Match(WS); + State = 944; fileNumber(); + State = 953; _errHandler.Sync(this); _alt = 1; do { @@ -4812,33 +4716,33 @@ public InputStmtContext inputStmt() { case 1: { { - State = 965; + State = 946; _la = _input.La(1); if (_la==WS) { { - State = 964; Match(WS); + State = 945; Match(WS); } } - State = 967; Match(T__1); - State = 969; - switch ( Interpreter.AdaptivePredict(_input,102,_ctx) ) { + State = 948; Match(T__1); + State = 950; + switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { case 1: { - State = 968; Match(WS); + State = 949; Match(WS); } break; } - State = 971; valueStmt(0); + State = 952; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 974; + State = 955; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,103,_ctx); + _alt = Interpreter.AdaptivePredict(_input,102,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -4882,13 +4786,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public KillStmtContext killStmt() { KillStmtContext _localctx = new KillStmtContext(_ctx, State); - EnterRule(_localctx, 96, RULE_killStmt); + EnterRule(_localctx, 94, RULE_killStmt); try { EnterOuterAlt(_localctx, 1); { - State = 976; Match(KILL); - State = 977; Match(WS); - State = 978; valueStmt(0); + State = 957; Match(KILL); + State = 958; Match(WS); + State = 959; valueStmt(0); } } catch (RecognitionException re) { @@ -4938,39 +4842,39 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetStmtContext letStmt() { LetStmtContext _localctx = new LetStmtContext(_ctx, State); - EnterRule(_localctx, 98, RULE_letStmt); + EnterRule(_localctx, 96, RULE_letStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 982; - switch ( Interpreter.AdaptivePredict(_input,104,_ctx) ) { + State = 963; + switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { case 1: { - State = 980; Match(LET); - State = 981; Match(WS); + State = 961; Match(LET); + State = 962; Match(WS); } break; } - State = 984; implicitCallStmt_InStmt(); - State = 986; + State = 965; implicitCallStmt_InStmt(); + State = 967; _la = _input.La(1); if (_la==WS) { { - State = 985; Match(WS); + State = 966; Match(WS); } } - State = 988; Match(EQ); - State = 990; - switch ( Interpreter.AdaptivePredict(_input,106,_ctx) ) { + State = 969; Match(EQ); + State = 971; + switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { case 1: { - State = 989; Match(WS); + State = 970; Match(WS); } break; } - State = 992; valueStmt(0); + State = 973; valueStmt(0); } } catch (RecognitionException re) { @@ -5019,32 +4923,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineInputStmtContext lineInputStmt() { LineInputStmtContext _localctx = new LineInputStmtContext(_ctx, State); - EnterRule(_localctx, 100, RULE_lineInputStmt); + EnterRule(_localctx, 98, RULE_lineInputStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 994; Match(LINE_INPUT); - State = 995; Match(WS); - State = 996; fileNumber(); - State = 998; + State = 975; Match(LINE_INPUT); + State = 976; Match(WS); + State = 977; fileNumber(); + State = 979; _la = _input.La(1); if (_la==WS) { { - State = 997; Match(WS); + State = 978; Match(WS); } } - State = 1000; Match(T__1); - State = 1002; - switch ( Interpreter.AdaptivePredict(_input,108,_ctx) ) { + State = 981; Match(T__1); + State = 983; + switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { case 1: { - State = 1001; Match(WS); + State = 982; Match(WS); } break; } - State = 1004; valueStmt(0); + State = 985; valueStmt(0); } } catch (RecognitionException re) { @@ -5068,475 +4972,32 @@ public LoadStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_loadStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLoadStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLoadStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLoadStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LoadStmtContext loadStmt() { - LoadStmtContext _localctx = new LoadStmtContext(_ctx, State); - EnterRule(_localctx, 102, RULE_loadStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1006; Match(LOAD); - State = 1007; Match(WS); - State = 1008; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class LockStmtContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); - } - public LockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_lockStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLockStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLockStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLockStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LockStmtContext lockStmt() { - LockStmtContext _localctx = new LockStmtContext(_ctx, State); - EnterRule(_localctx, 104, RULE_lockStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1010; Match(LOCK); - State = 1011; Match(WS); - State = 1012; valueStmt(0); - State = 1027; - switch ( Interpreter.AdaptivePredict(_input,112,_ctx) ) { - case 1: - { - State = 1014; - _la = _input.La(1); - if (_la==WS) { - { - State = 1013; Match(WS); - } - } - - State = 1016; Match(T__1); - State = 1018; - switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { - case 1: - { - State = 1017; Match(WS); - } - break; - } - State = 1020; valueStmt(0); - State = 1025; - switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { - case 1: - { - State = 1021; Match(WS); - State = 1022; Match(TO); - State = 1023; Match(WS); - State = 1024; valueStmt(0); - } - break; - } - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class LsetStmtContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBAParser.WS, i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); - } - public LsetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_lsetStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterLsetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitLsetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitLsetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LsetStmtContext lsetStmt() { - LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); - EnterRule(_localctx, 106, RULE_lsetStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1029; Match(LSET); - State = 1030; Match(WS); - State = 1031; implicitCallStmt_InStmt(); - State = 1033; - _la = _input.La(1); - if (_la==WS) { - { - State = 1032; Match(WS); - } - } - - State = 1035; Match(EQ); - State = 1037; - switch ( Interpreter.AdaptivePredict(_input,114,_ctx) ) { - case 1: - { - State = 1036; Match(WS); - } - break; - } - State = 1039; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class MacroConstStmtContext : ParserRuleContext { - public ITerminalNode MACRO_CONST() { return GetToken(VBAParser.MACRO_CONST, 0); } - public AmbiguousIdentifierContext ambiguousIdentifier() { - return GetRuleContext(0); - } - public ITerminalNode WS(int i) { - return GetToken(VBAParser.WS, i); - } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public MacroConstStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroConstStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroConstStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroConstStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroConstStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroConstStmtContext macroConstStmt() { - MacroConstStmtContext _localctx = new MacroConstStmtContext(_ctx, State); - EnterRule(_localctx, 108, RULE_macroConstStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1041; Match(MACRO_CONST); - State = 1043; - _la = _input.La(1); - if (_la==WS) { - { - State = 1042; Match(WS); - } - } - - State = 1045; ambiguousIdentifier(); - State = 1047; - _la = _input.La(1); - if (_la==WS) { - { - State = 1046; Match(WS); - } - } - - State = 1049; Match(EQ); - State = 1051; - switch ( Interpreter.AdaptivePredict(_input,117,_ctx) ) { - case 1: - { - State = 1050; Match(WS); - } - break; - } - State = 1053; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class MacroIfThenElseStmtContext : ParserRuleContext { - public IReadOnlyList macroElseIfBlockStmt() { - return GetRuleContexts(); - } - public ITerminalNode MACRO_END_IF() { return GetToken(VBAParser.MACRO_END_IF, 0); } - public MacroIfBlockStmtContext macroIfBlockStmt() { - return GetRuleContext(0); - } - public MacroElseIfBlockStmtContext macroElseIfBlockStmt(int i) { - return GetRuleContext(i); - } - public MacroElseBlockStmtContext macroElseBlockStmt() { - return GetRuleContext(0); - } - public MacroIfThenElseStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroIfThenElseStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroIfThenElseStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroIfThenElseStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroIfThenElseStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MacroIfThenElseStmtContext macroIfThenElseStmt() { - MacroIfThenElseStmtContext _localctx = new MacroIfThenElseStmtContext(_ctx, State); - EnterRule(_localctx, 110, RULE_macroIfThenElseStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1055; macroIfBlockStmt(); - State = 1059; - _errHandler.Sync(this); - _la = _input.La(1); - while (_la==MACRO_ELSEIF) { - { - { - State = 1056; macroElseIfBlockStmt(); - } - } - State = 1061; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 1063; - _la = _input.La(1); - if (_la==MACRO_ELSE) { - { - State = 1062; macroElseBlockStmt(); - } - } - - State = 1065; Match(MACRO_END_IF); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class MacroIfBlockStmtContext : ParserRuleContext { - public ITerminalNode WS(int i) { - return GetToken(VBAParser.WS, i); - } - public ModuleBodyContext moduleBody(int i) { - return GetRuleContext(i); - } - public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public BlockContext block(int i) { - return GetRuleContext(i); - } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public ModuleDeclarationsContext moduleDeclarations(int i) { - return GetRuleContext(i); - } - public ITerminalNode MACRO_IF() { return GetToken(VBAParser.MACRO_IF, 0); } - public IfConditionStmtContext ifConditionStmt() { - return GetRuleContext(0); - } - public IReadOnlyList moduleBody() { - return GetRuleContexts(); - } - public IReadOnlyList moduleDeclarations() { - return GetRuleContexts(); - } - public EndOfStatementContext endOfStatement() { - return GetRuleContext(0); - } - public IReadOnlyList block() { - return GetRuleContexts(); - } - public MacroIfBlockStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_macroIfBlockStmt; } } + public override int RuleIndex { get { return RULE_loadStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroIfBlockStmt(this); + if (typedListener != null) typedListener.EnterLoadStmt(this); } public override void ExitRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroIfBlockStmt(this); + if (typedListener != null) typedListener.ExitLoadStmt(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroIfBlockStmt(this); + if (typedVisitor != null) return typedVisitor.VisitLoadStmt(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public MacroIfBlockStmtContext macroIfBlockStmt() { - MacroIfBlockStmtContext _localctx = new MacroIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 112, RULE_macroIfBlockStmt); - int _la; + public LoadStmtContext loadStmt() { + LoadStmtContext _localctx = new LoadStmtContext(_ctx, State); + EnterRule(_localctx, 100, RULE_loadStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1067; Match(MACRO_IF); - State = 1069; - switch ( Interpreter.AdaptivePredict(_input,120,_ctx) ) { - case 1: - { - State = 1068; Match(WS); - } - break; - } - State = 1071; ifConditionStmt(); - State = 1072; Match(WS); - State = 1073; Match(THEN); - State = 1074; endOfStatement(); - State = 1080; - _errHandler.Sync(this); - _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { - { - State = 1078; - switch ( Interpreter.AdaptivePredict(_input,121,_ctx) ) { - case 1: - { - State = 1075; moduleDeclarations(); - } - break; - - case 2: - { - State = 1076; moduleBody(); - } - break; - - case 3: - { - State = 1077; block(); - } - break; - } - } - State = 1082; - _errHandler.Sync(this); - _la = _input.La(1); - } + State = 987; Match(LOAD); + State = 988; Match(WS); + State = 989; valueStmt(0); } } catch (RecognitionException re) { @@ -5550,107 +5011,85 @@ public MacroIfBlockStmtContext macroIfBlockStmt() { return _localctx; } - public partial class MacroElseIfBlockStmtContext : ParserRuleContext { + public partial class LockStmtContext : ParserRuleContext { public ITerminalNode WS(int i) { return GetToken(VBAParser.WS, i); } - public ModuleBodyContext moduleBody(int i) { - return GetRuleContext(i); - } - public ITerminalNode MACRO_ELSEIF() { return GetToken(VBAParser.MACRO_ELSEIF, 0); } public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } - public BlockContext block(int i) { - return GetRuleContext(i); - } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public ModuleDeclarationsContext moduleDeclarations(int i) { - return GetRuleContext(i); - } - public IfConditionStmtContext ifConditionStmt() { - return GetRuleContext(0); - } - public IReadOnlyList moduleBody() { - return GetRuleContexts(); - } - public IReadOnlyList moduleDeclarations() { - return GetRuleContexts(); - } - public EndOfStatementContext endOfStatement() { - return GetRuleContext(0); + public IReadOnlyList valueStmt() { + return GetRuleContexts(); } - public IReadOnlyList block() { - return GetRuleContexts(); + public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); } - public MacroElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) + public LockStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_macroElseIfBlockStmt; } } + public override int RuleIndex { get { return RULE_lockStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroElseIfBlockStmt(this); + if (typedListener != null) typedListener.EnterLockStmt(this); } public override void ExitRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroElseIfBlockStmt(this); + if (typedListener != null) typedListener.ExitLockStmt(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroElseIfBlockStmt(this); + if (typedVisitor != null) return typedVisitor.VisitLockStmt(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public MacroElseIfBlockStmtContext macroElseIfBlockStmt() { - MacroElseIfBlockStmtContext _localctx = new MacroElseIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 114, RULE_macroElseIfBlockStmt); + public LockStmtContext lockStmt() { + LockStmtContext _localctx = new LockStmtContext(_ctx, State); + EnterRule(_localctx, 102, RULE_lockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1083; Match(MACRO_ELSEIF); - State = 1085; - switch ( Interpreter.AdaptivePredict(_input,123,_ctx) ) { + State = 991; Match(LOCK); + State = 992; Match(WS); + State = 993; valueStmt(0); + State = 1008; + switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { case 1: { - State = 1084; Match(WS); - } - break; - } - State = 1087; ifConditionStmt(); - State = 1088; Match(WS); - State = 1089; Match(THEN); - State = 1090; endOfStatement(); - State = 1096; - _errHandler.Sync(this); - _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { - { - State = 1094; - switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { - case 1: + State = 995; + _la = _input.La(1); + if (_la==WS) { { - State = 1091; moduleDeclarations(); + State = 994; Match(WS); } - break; + } - case 2: + State = 997; Match(T__1); + State = 999; + switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { + case 1: { - State = 1092; moduleBody(); + State = 998; Match(WS); } break; - - case 3: + } + State = 1001; valueStmt(0); + State = 1006; + switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { + case 1: { - State = 1093; block(); + State = 1002; Match(WS); + State = 1003; Match(TO); + State = 1004; Match(WS); + State = 1005; valueStmt(0); } break; } } - State = 1098; - _errHandler.Sync(this); - _la = _input.La(1); + break; } } } @@ -5665,89 +5104,68 @@ public MacroElseIfBlockStmtContext macroElseIfBlockStmt() { return _localctx; } - public partial class MacroElseBlockStmtContext : ParserRuleContext { - public ModuleBodyContext moduleBody(int i) { - return GetRuleContext(i); - } - public BlockContext block(int i) { - return GetRuleContext(i); - } - public ITerminalNode MACRO_ELSE() { return GetToken(VBAParser.MACRO_ELSE, 0); } - public ModuleDeclarationsContext moduleDeclarations(int i) { - return GetRuleContext(i); - } - public IReadOnlyList moduleBody() { - return GetRuleContexts(); - } - public IReadOnlyList moduleDeclarations() { - return GetRuleContexts(); + public partial class LsetStmtContext : ParserRuleContext { + public ITerminalNode WS(int i) { + return GetToken(VBAParser.WS, i); } - public EndOfStatementContext endOfStatement() { - return GetRuleContext(0); + public IReadOnlyList WS() { return GetTokens(VBAParser.WS); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); } - public IReadOnlyList block() { - return GetRuleContexts(); + public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); } - public MacroElseBlockStmtContext(ParserRuleContext parent, int invokingState) + public LsetStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_macroElseBlockStmt; } } + public override int RuleIndex { get { return RULE_lsetStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.EnterMacroElseBlockStmt(this); + if (typedListener != null) typedListener.EnterLsetStmt(this); } public override void ExitRule(IParseTreeListener listener) { IVBAListener typedListener = listener as IVBAListener; - if (typedListener != null) typedListener.ExitMacroElseBlockStmt(this); + if (typedListener != null) typedListener.ExitLsetStmt(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAVisitor typedVisitor = visitor as IVBAVisitor; - if (typedVisitor != null) return typedVisitor.VisitMacroElseBlockStmt(this); + if (typedVisitor != null) return typedVisitor.VisitLsetStmt(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public MacroElseBlockStmtContext macroElseBlockStmt() { - MacroElseBlockStmtContext _localctx = new MacroElseBlockStmtContext(_ctx, State); - EnterRule(_localctx, 116, RULE_macroElseBlockStmt); + public LsetStmtContext lsetStmt() { + LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); + EnterRule(_localctx, 104, RULE_lsetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1099; Match(MACRO_ELSE); - State = 1100; endOfStatement(); - State = 1106; - _errHandler.Sync(this); + State = 1010; Match(LSET); + State = 1011; Match(WS); + State = 1012; implicitCallStmt_InStmt(); + State = 1014; _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OPTION_BASE - 64)) | (1L << (OPTION_EXPLICIT - 64)) | (1L << (OPTION_COMPARE - 64)) | (1L << (OPTION_PRIVATE_MODULE - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if (_la==WS) { { - State = 1104; - switch ( Interpreter.AdaptivePredict(_input,126,_ctx) ) { - case 1: - { - State = 1101; moduleDeclarations(); - } - break; - - case 2: - { - State = 1102; moduleBody(); - } - break; - - case 3: - { - State = 1103; block(); - } - break; + State = 1013; Match(WS); } + } + + State = 1016; Match(EQ); + State = 1018; + switch ( Interpreter.AdaptivePredict(_input,113,_ctx) ) { + case 1: + { + State = 1017; Match(WS); } - State = 1108; - _errHandler.Sync(this); - _la = _input.La(1); + break; } + State = 1020; valueStmt(0); } } catch (RecognitionException re) { @@ -5795,39 +5213,39 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MidStmtContext midStmt() { MidStmtContext _localctx = new MidStmtContext(_ctx, State); - EnterRule(_localctx, 118, RULE_midStmt); + EnterRule(_localctx, 106, RULE_midStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1109; Match(MID); - State = 1111; + State = 1022; Match(MID); + State = 1024; _la = _input.La(1); if (_la==WS) { { - State = 1110; Match(WS); + State = 1023; Match(WS); } } - State = 1113; Match(LPAREN); - State = 1115; - switch ( Interpreter.AdaptivePredict(_input,129,_ctx) ) { + State = 1026; Match(LPAREN); + State = 1028; + switch ( Interpreter.AdaptivePredict(_input,115,_ctx) ) { case 1: { - State = 1114; Match(WS); + State = 1027; Match(WS); } break; } - State = 1117; argsCall(); - State = 1119; + State = 1030; argsCall(); + State = 1032; _la = _input.La(1); if (_la==WS) { { - State = 1118; Match(WS); + State = 1031; Match(WS); } } - State = 1121; Match(RPAREN); + State = 1034; Match(RPAREN); } } catch (RecognitionException re) { @@ -5870,13 +5288,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MkdirStmtContext mkdirStmt() { MkdirStmtContext _localctx = new MkdirStmtContext(_ctx, State); - EnterRule(_localctx, 120, RULE_mkdirStmt); + EnterRule(_localctx, 108, RULE_mkdirStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1123; Match(MKDIR); - State = 1124; Match(WS); - State = 1125; valueStmt(0); + State = 1036; Match(MKDIR); + State = 1037; Match(WS); + State = 1038; valueStmt(0); } } catch (RecognitionException re) { @@ -5926,17 +5344,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NameStmtContext nameStmt() { NameStmtContext _localctx = new NameStmtContext(_ctx, State); - EnterRule(_localctx, 122, RULE_nameStmt); + EnterRule(_localctx, 110, RULE_nameStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1127; Match(NAME); - State = 1128; Match(WS); - State = 1129; valueStmt(0); - State = 1130; Match(WS); - State = 1131; Match(AS); - State = 1132; Match(WS); - State = 1133; valueStmt(0); + State = 1040; Match(NAME); + State = 1041; Match(WS); + State = 1042; valueStmt(0); + State = 1043; Match(WS); + State = 1044; Match(AS); + State = 1045; Match(WS); + State = 1046; valueStmt(0); } } catch (RecognitionException re) { @@ -5986,32 +5404,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnErrorStmtContext onErrorStmt() { OnErrorStmtContext _localctx = new OnErrorStmtContext(_ctx, State); - EnterRule(_localctx, 124, RULE_onErrorStmt); + EnterRule(_localctx, 112, RULE_onErrorStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1135; + State = 1048; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1136; Match(WS); - State = 1143; + State = 1049; Match(WS); + State = 1056; switch (_input.La(1)) { case GOTO: { - State = 1137; Match(GOTO); - State = 1138; Match(WS); - State = 1139; valueStmt(0); + State = 1050; Match(GOTO); + State = 1051; Match(WS); + State = 1052; valueStmt(0); } break; case RESUME: { - State = 1140; Match(RESUME); - State = 1141; Match(WS); - State = 1142; Match(NEXT); + State = 1053; Match(RESUME); + State = 1054; Match(WS); + State = 1055; Match(NEXT); } break; default: @@ -6066,50 +5484,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoToStmtContext onGoToStmt() { OnGoToStmtContext _localctx = new OnGoToStmtContext(_ctx, State); - EnterRule(_localctx, 126, RULE_onGoToStmt); + EnterRule(_localctx, 114, RULE_onGoToStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1145; Match(ON); - State = 1146; Match(WS); - State = 1147; valueStmt(0); - State = 1148; Match(WS); - State = 1149; Match(GOTO); - State = 1150; Match(WS); - State = 1151; valueStmt(0); - State = 1162; + State = 1058; Match(ON); + State = 1059; Match(WS); + State = 1060; valueStmt(0); + State = 1061; Match(WS); + State = 1062; Match(GOTO); + State = 1063; Match(WS); + State = 1064; valueStmt(0); + State = 1075; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,134,_ctx); + _alt = Interpreter.AdaptivePredict(_input,120,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1153; + State = 1066; _la = _input.La(1); if (_la==WS) { { - State = 1152; Match(WS); + State = 1065; Match(WS); } } - State = 1155; Match(T__1); - State = 1157; - switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { + State = 1068; Match(T__1); + State = 1070; + switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { case 1: { - State = 1156; Match(WS); + State = 1069; Match(WS); } break; } - State = 1159; valueStmt(0); + State = 1072; valueStmt(0); } } } - State = 1164; + State = 1077; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,134,_ctx); + _alt = Interpreter.AdaptivePredict(_input,120,_ctx); } } } @@ -6160,50 +5578,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoSubStmtContext onGoSubStmt() { OnGoSubStmtContext _localctx = new OnGoSubStmtContext(_ctx, State); - EnterRule(_localctx, 128, RULE_onGoSubStmt); + EnterRule(_localctx, 116, RULE_onGoSubStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1165; Match(ON); - State = 1166; Match(WS); - State = 1167; valueStmt(0); - State = 1168; Match(WS); - State = 1169; Match(GOSUB); - State = 1170; Match(WS); - State = 1171; valueStmt(0); - State = 1182; + State = 1078; Match(ON); + State = 1079; Match(WS); + State = 1080; valueStmt(0); + State = 1081; Match(WS); + State = 1082; Match(GOSUB); + State = 1083; Match(WS); + State = 1084; valueStmt(0); + State = 1095; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,137,_ctx); + _alt = Interpreter.AdaptivePredict(_input,123,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1173; + State = 1086; _la = _input.La(1); if (_la==WS) { { - State = 1172; Match(WS); + State = 1085; Match(WS); } } - State = 1175; Match(T__1); - State = 1177; - switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { + State = 1088; Match(T__1); + State = 1090; + switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { case 1: { - State = 1176; Match(WS); + State = 1089; Match(WS); } break; } - State = 1179; valueStmt(0); + State = 1092; valueStmt(0); } } } - State = 1184; + State = 1097; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,137,_ctx); + _alt = Interpreter.AdaptivePredict(_input,123,_ctx); } } } @@ -6273,45 +5691,45 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OpenStmtContext openStmt() { OpenStmtContext _localctx = new OpenStmtContext(_ctx, State); - EnterRule(_localctx, 130, RULE_openStmt); + EnterRule(_localctx, 118, RULE_openStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1185; Match(OPEN); - State = 1186; Match(WS); - State = 1187; valueStmt(0); - State = 1188; Match(WS); - State = 1189; Match(FOR); - State = 1190; Match(WS); - State = 1191; + State = 1098; Match(OPEN); + State = 1099; Match(WS); + State = 1100; valueStmt(0); + State = 1101; Match(WS); + State = 1102; Match(FOR); + State = 1103; Match(WS); + State = 1104; _la = _input.La(1); if ( !(_la==APPEND || _la==BINARY || ((((_la - 87)) & ~0x3f) == 0 && ((1L << (_la - 87)) & ((1L << (INPUT - 87)) | (1L << (OUTPUT - 87)) | (1L << (RANDOM - 87)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1196; - switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { + State = 1109; + switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { case 1: { - State = 1192; Match(WS); - State = 1193; Match(ACCESS); - State = 1194; Match(WS); - State = 1195; + State = 1105; Match(WS); + State = 1106; Match(ACCESS); + State = 1107; Match(WS); + State = 1108; _la = _input.La(1); - if ( !(((((_la - 143)) & ~0x3f) == 0 && ((1L << (_la - 143)) & ((1L << (READ - 143)) | (1L << (READ_WRITE - 143)) | (1L << (WRITE - 143)))) != 0)) ) { + if ( !(((((_la - 138)) & ~0x3f) == 0 && ((1L << (_la - 138)) & ((1L << (READ - 138)) | (1L << (READ_WRITE - 138)) | (1L << (WRITE - 138)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); } break; } - State = 1200; - switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { + State = 1113; + switch ( Interpreter.AdaptivePredict(_input,125,_ctx) ) { case 1: { - State = 1198; Match(WS); - State = 1199; + State = 1111; Match(WS); + State = 1112; _la = _input.La(1); if ( !(((((_la - 100)) & ~0x3f) == 0 && ((1L << (_la - 100)) & ((1L << (LOCK_READ - 100)) | (1L << (LOCK_WRITE - 100)) | (1L << (LOCK_READ_WRITE - 100)) | (1L << (SHARED - 100)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -6320,34 +5738,34 @@ public OpenStmtContext openStmt() { } break; } - State = 1202; Match(WS); - State = 1203; Match(AS); - State = 1204; Match(WS); - State = 1205; fileNumber(); - State = 1216; - switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { + State = 1115; Match(WS); + State = 1116; Match(AS); + State = 1117; Match(WS); + State = 1118; fileNumber(); + State = 1129; + switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { case 1: { - State = 1206; Match(WS); - State = 1207; Match(LEN); - State = 1209; + State = 1119; Match(WS); + State = 1120; Match(LEN); + State = 1122; _la = _input.La(1); if (_la==WS) { { - State = 1208; Match(WS); + State = 1121; Match(WS); } } - State = 1211; Match(EQ); - State = 1213; - switch ( Interpreter.AdaptivePredict(_input,141,_ctx) ) { + State = 1124; Match(EQ); + State = 1126; + switch ( Interpreter.AdaptivePredict(_input,127,_ctx) ) { case 1: { - State = 1212; Match(WS); + State = 1125; Match(WS); } break; } - State = 1215; valueStmt(0); + State = 1128; valueStmt(0); } break; } @@ -6398,59 +5816,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputListContext outputList() { OutputListContext _localctx = new OutputListContext(_ctx, State); - EnterRule(_localctx, 132, RULE_outputList); + EnterRule(_localctx, 120, RULE_outputList); int _la; try { int _alt; - State = 1251; - switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { + State = 1164; + switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1218; outputList_Expression(); - State = 1231; + State = 1131; outputList_Expression(); + State = 1144; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,146,_ctx); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1220; + State = 1133; _la = _input.La(1); if (_la==WS) { { - State = 1219; Match(WS); + State = 1132; Match(WS); } } - State = 1222; + State = 1135; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1224; - switch ( Interpreter.AdaptivePredict(_input,144,_ctx) ) { + State = 1137; + switch ( Interpreter.AdaptivePredict(_input,130,_ctx) ) { case 1: { - State = 1223; Match(WS); + State = 1136; Match(WS); } break; } - State = 1227; - switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { + State = 1140; + switch ( Interpreter.AdaptivePredict(_input,131,_ctx) ) { case 1: { - State = 1226; outputList_Expression(); + State = 1139; outputList_Expression(); } break; } } } } - State = 1233; + State = 1146; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,146,_ctx); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); } } break; @@ -6458,15 +5876,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1235; - switch ( Interpreter.AdaptivePredict(_input,147,_ctx) ) { + State = 1148; + switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { case 1: { - State = 1234; outputList_Expression(); + State = 1147; outputList_Expression(); } break; } - State = 1247; + State = 1160; _errHandler.Sync(this); _alt = 1; do { @@ -6474,33 +5892,33 @@ public OutputListContext outputList() { case 1: { { - State = 1238; + State = 1151; _la = _input.La(1); if (_la==WS) { { - State = 1237; Match(WS); + State = 1150; Match(WS); } } - State = 1240; + State = 1153; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1242; - switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { + State = 1155; + switch ( Interpreter.AdaptivePredict(_input,135,_ctx) ) { case 1: { - State = 1241; Match(WS); + State = 1154; Match(WS); } break; } - State = 1245; - switch ( Interpreter.AdaptivePredict(_input,150,_ctx) ) { + State = 1158; + switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { case 1: { - State = 1244; outputList_Expression(); + State = 1157; outputList_Expression(); } break; } @@ -6510,9 +5928,9 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1249; + State = 1162; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,151,_ctx); + _alt = Interpreter.AdaptivePredict(_input,137,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; @@ -6567,58 +5985,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputList_ExpressionContext outputList_Expression() { OutputList_ExpressionContext _localctx = new OutputList_ExpressionContext(_ctx, State); - EnterRule(_localctx, 134, RULE_outputList_Expression); + EnterRule(_localctx, 122, RULE_outputList_Expression); int _la; try { - State = 1270; - switch ( Interpreter.AdaptivePredict(_input,157,_ctx) ) { + State = 1183; + switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1253; valueStmt(0); + State = 1166; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1254; + State = 1167; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1268; - switch ( Interpreter.AdaptivePredict(_input,156,_ctx) ) { + State = 1181; + switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { case 1: { - State = 1256; + State = 1169; _la = _input.La(1); if (_la==WS) { { - State = 1255; Match(WS); + State = 1168; Match(WS); } } - State = 1258; Match(LPAREN); - State = 1260; - switch ( Interpreter.AdaptivePredict(_input,154,_ctx) ) { + State = 1171; Match(LPAREN); + State = 1173; + switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { case 1: { - State = 1259; Match(WS); + State = 1172; Match(WS); } break; } - State = 1262; argsCall(); - State = 1264; + State = 1175; argsCall(); + State = 1177; _la = _input.La(1); if (_la==WS) { { - State = 1263; Match(WS); + State = 1176; Match(WS); } } - State = 1266; Match(RPAREN); + State = 1179; Match(RPAREN); } break; } @@ -6672,36 +6090,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PrintStmtContext printStmt() { PrintStmtContext _localctx = new PrintStmtContext(_ctx, State); - EnterRule(_localctx, 136, RULE_printStmt); + EnterRule(_localctx, 124, RULE_printStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1272; Match(PRINT); - State = 1273; Match(WS); - State = 1274; fileNumber(); - State = 1276; + State = 1185; Match(PRINT); + State = 1186; Match(WS); + State = 1187; fileNumber(); + State = 1189; _la = _input.La(1); if (_la==WS) { { - State = 1275; Match(WS); + State = 1188; Match(WS); } } - State = 1278; Match(T__1); - State = 1283; - switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { + State = 1191; Match(T__1); + State = 1196; + switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { case 1: { - State = 1280; - switch ( Interpreter.AdaptivePredict(_input,159,_ctx) ) { + State = 1193; + switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { case 1: { - State = 1279; Match(WS); + State = 1192; Match(WS); } break; } - State = 1282; outputList(); + State = 1195; outputList(); } break; } @@ -6770,75 +6188,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyGetStmtContext propertyGetStmt() { PropertyGetStmtContext _localctx = new PropertyGetStmtContext(_ctx, State); - EnterRule(_localctx, 138, RULE_propertyGetStmt); + EnterRule(_localctx, 126, RULE_propertyGetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1288; + State = 1201; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1285; visibility(); - State = 1286; Match(WS); + State = 1198; visibility(); + State = 1199; Match(WS); } } - State = 1292; + State = 1205; _la = _input.La(1); if (_la==STATIC) { { - State = 1290; Match(STATIC); - State = 1291; Match(WS); + State = 1203; Match(STATIC); + State = 1204; Match(WS); } } - State = 1294; Match(PROPERTY_GET); - State = 1295; Match(WS); - State = 1296; ambiguousIdentifier(); - State = 1298; - switch ( Interpreter.AdaptivePredict(_input,163,_ctx) ) { + State = 1207; Match(PROPERTY_GET); + State = 1208; Match(WS); + State = 1209; ambiguousIdentifier(); + State = 1211; + switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { case 1: { - State = 1297; typeHint(); + State = 1210; typeHint(); } break; } - State = 1304; - switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { + State = 1217; + switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { case 1: { - State = 1301; + State = 1214; _la = _input.La(1); if (_la==WS) { { - State = 1300; Match(WS); + State = 1213; Match(WS); } } - State = 1303; argList(); + State = 1216; argList(); } break; } - State = 1308; - switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { + State = 1221; + switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { case 1: { - State = 1306; Match(WS); - State = 1307; asTypeClause(); + State = 1219; Match(WS); + State = 1220; asTypeClause(); } break; } - State = 1310; endOfStatement(); - State = 1312; + State = 1223; endOfStatement(); + State = 1225; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1311; block(); + State = 1224; block(); } } - State = 1314; Match(END_PROPERTY); + State = 1227; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6898,58 +6316,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertySetStmtContext propertySetStmt() { PropertySetStmtContext _localctx = new PropertySetStmtContext(_ctx, State); - EnterRule(_localctx, 140, RULE_propertySetStmt); + EnterRule(_localctx, 128, RULE_propertySetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1319; + State = 1232; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1316; visibility(); - State = 1317; Match(WS); + State = 1229; visibility(); + State = 1230; Match(WS); } } - State = 1323; + State = 1236; _la = _input.La(1); if (_la==STATIC) { { - State = 1321; Match(STATIC); - State = 1322; Match(WS); + State = 1234; Match(STATIC); + State = 1235; Match(WS); } } - State = 1325; Match(PROPERTY_SET); - State = 1326; Match(WS); - State = 1327; ambiguousIdentifier(); - State = 1332; - switch ( Interpreter.AdaptivePredict(_input,171,_ctx) ) { + State = 1238; Match(PROPERTY_SET); + State = 1239; Match(WS); + State = 1240; ambiguousIdentifier(); + State = 1245; + switch ( Interpreter.AdaptivePredict(_input,157,_ctx) ) { case 1: { - State = 1329; + State = 1242; _la = _input.La(1); if (_la==WS) { { - State = 1328; Match(WS); + State = 1241; Match(WS); } } - State = 1331; argList(); + State = 1244; argList(); } break; } - State = 1334; endOfStatement(); - State = 1336; + State = 1247; endOfStatement(); + State = 1249; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1335; block(); + State = 1248; block(); } } - State = 1338; Match(END_PROPERTY); + State = 1251; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -7009,58 +6427,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyLetStmtContext propertyLetStmt() { PropertyLetStmtContext _localctx = new PropertyLetStmtContext(_ctx, State); - EnterRule(_localctx, 142, RULE_propertyLetStmt); + EnterRule(_localctx, 130, RULE_propertyLetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1343; + State = 1256; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1340; visibility(); - State = 1341; Match(WS); + State = 1253; visibility(); + State = 1254; Match(WS); } } - State = 1347; + State = 1260; _la = _input.La(1); if (_la==STATIC) { { - State = 1345; Match(STATIC); - State = 1346; Match(WS); + State = 1258; Match(STATIC); + State = 1259; Match(WS); } } - State = 1349; Match(PROPERTY_LET); - State = 1350; Match(WS); - State = 1351; ambiguousIdentifier(); - State = 1356; - switch ( Interpreter.AdaptivePredict(_input,176,_ctx) ) { + State = 1262; Match(PROPERTY_LET); + State = 1263; Match(WS); + State = 1264; ambiguousIdentifier(); + State = 1269; + switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { case 1: { - State = 1353; + State = 1266; _la = _input.La(1); if (_la==WS) { { - State = 1352; Match(WS); + State = 1265; Match(WS); } } - State = 1355; argList(); + State = 1268; argList(); } break; } - State = 1358; endOfStatement(); - State = 1360; + State = 1271; endOfStatement(); + State = 1273; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1359; block(); + State = 1272; block(); } } - State = 1362; Match(END_PROPERTY); + State = 1275; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -7112,57 +6530,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PutStmtContext putStmt() { PutStmtContext _localctx = new PutStmtContext(_ctx, State); - EnterRule(_localctx, 144, RULE_putStmt); + EnterRule(_localctx, 132, RULE_putStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1364; Match(PUT); - State = 1365; Match(WS); - State = 1366; fileNumber(); - State = 1368; + State = 1277; Match(PUT); + State = 1278; Match(WS); + State = 1279; fileNumber(); + State = 1281; _la = _input.La(1); if (_la==WS) { { - State = 1367; Match(WS); + State = 1280; Match(WS); } } - State = 1370; Match(T__1); - State = 1372; - switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { + State = 1283; Match(T__1); + State = 1285; + switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { case 1: { - State = 1371; Match(WS); + State = 1284; Match(WS); } break; } - State = 1375; - switch ( Interpreter.AdaptivePredict(_input,180,_ctx) ) { + State = 1288; + switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { case 1: { - State = 1374; valueStmt(0); + State = 1287; valueStmt(0); } break; } - State = 1378; + State = 1291; _la = _input.La(1); if (_la==WS) { { - State = 1377; Match(WS); + State = 1290; Match(WS); } } - State = 1380; Match(T__1); - State = 1382; - switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { + State = 1293; Match(T__1); + State = 1295; + switch ( Interpreter.AdaptivePredict(_input,168,_ctx) ) { case 1: { - State = 1381; Match(WS); + State = 1294; Match(WS); } break; } - State = 1384; valueStmt(0); + State = 1297; valueStmt(0); } } catch (RecognitionException re) { @@ -7213,52 +6631,52 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RaiseEventStmtContext raiseEventStmt() { RaiseEventStmtContext _localctx = new RaiseEventStmtContext(_ctx, State); - EnterRule(_localctx, 146, RULE_raiseEventStmt); + EnterRule(_localctx, 134, RULE_raiseEventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1386; Match(RAISEEVENT); - State = 1387; Match(WS); - State = 1388; ambiguousIdentifier(); - State = 1403; - switch ( Interpreter.AdaptivePredict(_input,187,_ctx) ) { + State = 1299; Match(RAISEEVENT); + State = 1300; Match(WS); + State = 1301; ambiguousIdentifier(); + State = 1316; + switch ( Interpreter.AdaptivePredict(_input,173,_ctx) ) { case 1: { - State = 1390; + State = 1303; _la = _input.La(1); if (_la==WS) { { - State = 1389; Match(WS); + State = 1302; Match(WS); } } - State = 1392; Match(LPAREN); - State = 1394; - switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { + State = 1305; Match(LPAREN); + State = 1307; + switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { case 1: { - State = 1393; Match(WS); + State = 1306; Match(WS); } break; } - State = 1400; - switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { + State = 1313; + switch ( Interpreter.AdaptivePredict(_input,172,_ctx) ) { case 1: { - State = 1396; argsCall(); - State = 1398; + State = 1309; argsCall(); + State = 1311; _la = _input.La(1); if (_la==WS) { { - State = 1397; Match(WS); + State = 1310; Match(WS); } } } break; } - State = 1402; Match(RPAREN); + State = 1315; Match(RPAREN); } break; } @@ -7304,17 +6722,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RandomizeStmtContext randomizeStmt() { RandomizeStmtContext _localctx = new RandomizeStmtContext(_ctx, State); - EnterRule(_localctx, 148, RULE_randomizeStmt); + EnterRule(_localctx, 136, RULE_randomizeStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1405; Match(RANDOMIZE); - State = 1408; - switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { + State = 1318; Match(RANDOMIZE); + State = 1321; + switch ( Interpreter.AdaptivePredict(_input,174,_ctx) ) { case 1: { - State = 1406; Match(WS); - State = 1407; valueStmt(0); + State = 1319; Match(WS); + State = 1320; valueStmt(0); } break; } @@ -7367,55 +6785,55 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimStmtContext redimStmt() { RedimStmtContext _localctx = new RedimStmtContext(_ctx, State); - EnterRule(_localctx, 150, RULE_redimStmt); + EnterRule(_localctx, 138, RULE_redimStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1410; Match(REDIM); - State = 1411; Match(WS); - State = 1414; - switch ( Interpreter.AdaptivePredict(_input,189,_ctx) ) { + State = 1323; Match(REDIM); + State = 1324; Match(WS); + State = 1327; + switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { case 1: { - State = 1412; Match(PRESERVE); - State = 1413; Match(WS); + State = 1325; Match(PRESERVE); + State = 1326; Match(WS); } break; } - State = 1416; redimSubStmt(); - State = 1427; + State = 1329; redimSubStmt(); + State = 1340; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,192,_ctx); + _alt = Interpreter.AdaptivePredict(_input,178,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1418; + State = 1331; _la = _input.La(1); if (_la==WS) { { - State = 1417; Match(WS); + State = 1330; Match(WS); } } - State = 1420; Match(T__1); - State = 1422; - switch ( Interpreter.AdaptivePredict(_input,191,_ctx) ) { + State = 1333; Match(T__1); + State = 1335; + switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { case 1: { - State = 1421; Match(WS); + State = 1334; Match(WS); } break; } - State = 1424; redimSubStmt(); + State = 1337; redimSubStmt(); } } } - State = 1429; + State = 1342; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,192,_ctx); + _alt = Interpreter.AdaptivePredict(_input,178,_ctx); } } } @@ -7469,45 +6887,45 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimSubStmtContext redimSubStmt() { RedimSubStmtContext _localctx = new RedimSubStmtContext(_ctx, State); - EnterRule(_localctx, 152, RULE_redimSubStmt); + EnterRule(_localctx, 140, RULE_redimSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1430; implicitCallStmt_InStmt(); - State = 1432; + State = 1343; implicitCallStmt_InStmt(); + State = 1345; _la = _input.La(1); if (_la==WS) { { - State = 1431; Match(WS); + State = 1344; Match(WS); } } - State = 1434; Match(LPAREN); - State = 1436; - switch ( Interpreter.AdaptivePredict(_input,194,_ctx) ) { + State = 1347; Match(LPAREN); + State = 1349; + switch ( Interpreter.AdaptivePredict(_input,180,_ctx) ) { case 1: { - State = 1435; Match(WS); + State = 1348; Match(WS); } break; } - State = 1438; subscripts(); - State = 1440; + State = 1351; subscripts(); + State = 1353; _la = _input.La(1); if (_la==WS) { { - State = 1439; Match(WS); + State = 1352; Match(WS); } } - State = 1442; Match(RPAREN); - State = 1445; - switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { + State = 1355; Match(RPAREN); + State = 1358; + switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { case 1: { - State = 1443; Match(WS); - State = 1444; asTypeClause(); + State = 1356; Match(WS); + State = 1357; asTypeClause(); } break; } @@ -7549,11 +6967,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResetStmtContext resetStmt() { ResetStmtContext _localctx = new ResetStmtContext(_ctx, State); - EnterRule(_localctx, 154, RULE_resetStmt); + EnterRule(_localctx, 142, RULE_resetStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1447; Match(RESET); + State = 1360; Match(RESET); } } catch (RecognitionException re) { @@ -7597,27 +7015,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResumeStmtContext resumeStmt() { ResumeStmtContext _localctx = new ResumeStmtContext(_ctx, State); - EnterRule(_localctx, 156, RULE_resumeStmt); + EnterRule(_localctx, 144, RULE_resumeStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1449; Match(RESUME); - State = 1455; - switch ( Interpreter.AdaptivePredict(_input,198,_ctx) ) { + State = 1362; Match(RESUME); + State = 1368; + switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { case 1: { - State = 1450; Match(WS); - State = 1453; - switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { + State = 1363; Match(WS); + State = 1366; + switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { case 1: { - State = 1451; Match(NEXT); + State = 1364; Match(NEXT); } break; case 2: { - State = 1452; ambiguousIdentifier(); + State = 1365; ambiguousIdentifier(); } break; } @@ -7662,11 +7080,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReturnStmtContext returnStmt() { ReturnStmtContext _localctx = new ReturnStmtContext(_ctx, State); - EnterRule(_localctx, 158, RULE_returnStmt); + EnterRule(_localctx, 146, RULE_returnStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1457; Match(RETURN); + State = 1370; Match(RETURN); } } catch (RecognitionException re) { @@ -7709,13 +7127,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RmdirStmtContext rmdirStmt() { RmdirStmtContext _localctx = new RmdirStmtContext(_ctx, State); - EnterRule(_localctx, 160, RULE_rmdirStmt); + EnterRule(_localctx, 148, RULE_rmdirStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1459; Match(RMDIR); - State = 1460; Match(WS); - State = 1461; valueStmt(0); + State = 1372; Match(RMDIR); + State = 1373; Match(WS); + State = 1374; valueStmt(0); } } catch (RecognitionException re) { @@ -7765,32 +7183,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RsetStmtContext rsetStmt() { RsetStmtContext _localctx = new RsetStmtContext(_ctx, State); - EnterRule(_localctx, 162, RULE_rsetStmt); + EnterRule(_localctx, 150, RULE_rsetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1463; Match(RSET); - State = 1464; Match(WS); - State = 1465; implicitCallStmt_InStmt(); - State = 1467; + State = 1376; Match(RSET); + State = 1377; Match(WS); + State = 1378; implicitCallStmt_InStmt(); + State = 1380; _la = _input.La(1); if (_la==WS) { { - State = 1466; Match(WS); + State = 1379; Match(WS); } } - State = 1469; Match(EQ); - State = 1471; - switch ( Interpreter.AdaptivePredict(_input,200,_ctx) ) { + State = 1382; Match(EQ); + State = 1384; + switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { case 1: { - State = 1470; Match(WS); + State = 1383; Match(WS); } break; } - State = 1473; valueStmt(0); + State = 1386; valueStmt(0); } } catch (RecognitionException re) { @@ -7839,32 +7257,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SavepictureStmtContext savepictureStmt() { SavepictureStmtContext _localctx = new SavepictureStmtContext(_ctx, State); - EnterRule(_localctx, 164, RULE_savepictureStmt); + EnterRule(_localctx, 152, RULE_savepictureStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1475; Match(SAVEPICTURE); - State = 1476; Match(WS); - State = 1477; valueStmt(0); - State = 1479; + State = 1388; Match(SAVEPICTURE); + State = 1389; Match(WS); + State = 1390; valueStmt(0); + State = 1392; _la = _input.La(1); if (_la==WS) { { - State = 1478; Match(WS); + State = 1391; Match(WS); } } - State = 1481; Match(T__1); - State = 1483; - switch ( Interpreter.AdaptivePredict(_input,202,_ctx) ) { + State = 1394; Match(T__1); + State = 1396; + switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { case 1: { - State = 1482; Match(WS); + State = 1395; Match(WS); } break; } - State = 1485; valueStmt(0); + State = 1398; valueStmt(0); } } catch (RecognitionException re) { @@ -7913,68 +7331,68 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SaveSettingStmtContext saveSettingStmt() { SaveSettingStmtContext _localctx = new SaveSettingStmtContext(_ctx, State); - EnterRule(_localctx, 166, RULE_saveSettingStmt); + EnterRule(_localctx, 154, RULE_saveSettingStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1487; Match(SAVESETTING); - State = 1488; Match(WS); - State = 1489; valueStmt(0); - State = 1491; + State = 1400; Match(SAVESETTING); + State = 1401; Match(WS); + State = 1402; valueStmt(0); + State = 1404; _la = _input.La(1); if (_la==WS) { { - State = 1490; Match(WS); + State = 1403; Match(WS); } } - State = 1493; Match(T__1); - State = 1495; - switch ( Interpreter.AdaptivePredict(_input,204,_ctx) ) { + State = 1406; Match(T__1); + State = 1408; + switch ( Interpreter.AdaptivePredict(_input,190,_ctx) ) { case 1: { - State = 1494; Match(WS); + State = 1407; Match(WS); } break; } - State = 1497; valueStmt(0); - State = 1499; + State = 1410; valueStmt(0); + State = 1412; _la = _input.La(1); if (_la==WS) { { - State = 1498; Match(WS); + State = 1411; Match(WS); } } - State = 1501; Match(T__1); - State = 1503; - switch ( Interpreter.AdaptivePredict(_input,206,_ctx) ) { + State = 1414; Match(T__1); + State = 1416; + switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { case 1: { - State = 1502; Match(WS); + State = 1415; Match(WS); } break; } - State = 1505; valueStmt(0); - State = 1507; + State = 1418; valueStmt(0); + State = 1420; _la = _input.La(1); if (_la==WS) { { - State = 1506; Match(WS); + State = 1419; Match(WS); } } - State = 1509; Match(T__1); - State = 1511; - switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { + State = 1422; Match(T__1); + State = 1424; + switch ( Interpreter.AdaptivePredict(_input,194,_ctx) ) { case 1: { - State = 1510; Match(WS); + State = 1423; Match(WS); } break; } - State = 1513; valueStmt(0); + State = 1426; valueStmt(0); } } catch (RecognitionException re) { @@ -8023,32 +7441,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SeekStmtContext seekStmt() { SeekStmtContext _localctx = new SeekStmtContext(_ctx, State); - EnterRule(_localctx, 168, RULE_seekStmt); + EnterRule(_localctx, 156, RULE_seekStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1515; Match(SEEK); - State = 1516; Match(WS); - State = 1517; fileNumber(); - State = 1519; + State = 1428; Match(SEEK); + State = 1429; Match(WS); + State = 1430; fileNumber(); + State = 1432; _la = _input.La(1); if (_la==WS) { { - State = 1518; Match(WS); + State = 1431; Match(WS); } } - State = 1521; Match(T__1); - State = 1523; - switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { + State = 1434; Match(T__1); + State = 1436; + switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { case 1: { - State = 1522; Match(WS); + State = 1435; Match(WS); } break; } - State = 1525; valueStmt(0); + State = 1438; valueStmt(0); } } catch (RecognitionException re) { @@ -8105,31 +7523,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SelectCaseStmtContext selectCaseStmt() { SelectCaseStmtContext _localctx = new SelectCaseStmtContext(_ctx, State); - EnterRule(_localctx, 170, RULE_selectCaseStmt); + EnterRule(_localctx, 158, RULE_selectCaseStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1527; Match(SELECT); - State = 1528; Match(WS); - State = 1529; Match(CASE); - State = 1530; Match(WS); - State = 1531; valueStmt(0); - State = 1532; endOfStatement(); - State = 1536; + State = 1440; Match(SELECT); + State = 1441; Match(WS); + State = 1442; Match(CASE); + State = 1443; Match(WS); + State = 1444; valueStmt(0); + State = 1445; endOfStatement(); + State = 1449; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1533; sC_Case(); + State = 1446; sC_Case(); } } - State = 1538; + State = 1451; _errHandler.Sync(this); _la = _input.La(1); } - State = 1539; Match(END_SELECT); + State = 1452; Match(END_SELECT); } } catch (RecognitionException re) { @@ -8232,34 +7650,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_SelectionContext sC_Selection() { SC_SelectionContext _localctx = new SC_SelectionContext(_ctx, State); - EnterRule(_localctx, 172, RULE_sC_Selection); + EnterRule(_localctx, 160, RULE_sC_Selection); int _la; try { - State = 1558; - switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { + State = 1471; + switch ( Interpreter.AdaptivePredict(_input,200,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1541; Match(IS); - State = 1543; + State = 1454; Match(IS); + State = 1456; _la = _input.La(1); if (_la==WS) { { - State = 1542; Match(WS); + State = 1455; Match(WS); } } - State = 1545; comparisonOperator(); - State = 1547; - switch ( Interpreter.AdaptivePredict(_input,213,_ctx) ) { + State = 1458; comparisonOperator(); + State = 1460; + switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { case 1: { - State = 1546; Match(WS); + State = 1459; Match(WS); } break; } - State = 1549; valueStmt(0); + State = 1462; valueStmt(0); } break; @@ -8267,11 +7685,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1551; valueStmt(0); - State = 1552; Match(WS); - State = 1553; Match(TO); - State = 1554; Match(WS); - State = 1555; valueStmt(0); + State = 1464; valueStmt(0); + State = 1465; Match(WS); + State = 1466; Match(TO); + State = 1467; Match(WS); + State = 1468; valueStmt(0); } break; @@ -8279,7 +7697,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1557; valueStmt(0); + State = 1470; valueStmt(0); } break; } @@ -8330,19 +7748,19 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CaseContext sC_Case() { SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); - EnterRule(_localctx, 174, RULE_sC_Case); + EnterRule(_localctx, 162, RULE_sC_Case); try { EnterOuterAlt(_localctx, 1); { - State = 1560; Match(CASE); - State = 1561; Match(WS); - State = 1562; sC_Cond(); - State = 1563; endOfStatement(); - State = 1565; - switch ( Interpreter.AdaptivePredict(_input,215,_ctx) ) { + State = 1473; Match(CASE); + State = 1474; Match(WS); + State = 1475; sC_Cond(); + State = 1476; endOfStatement(); + State = 1478; + switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { case 1: { - State = 1564; block(); + State = 1477; block(); } break; } @@ -8418,17 +7836,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CondContext sC_Cond() { SC_CondContext _localctx = new SC_CondContext(_ctx, State); - EnterRule(_localctx, 176, RULE_sC_Cond); + EnterRule(_localctx, 164, RULE_sC_Cond); int _la; try { int _alt; - State = 1582; - switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { + State = 1495; + switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { case 1: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1567; Match(ELSE); + State = 1480; Match(ELSE); } break; @@ -8436,38 +7854,38 @@ public SC_CondContext sC_Cond() { _localctx = new CaseCondSelectionContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1568; sC_Selection(); - State = 1579; + State = 1481; sC_Selection(); + State = 1492; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,218,_ctx); + _alt = Interpreter.AdaptivePredict(_input,204,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1570; + State = 1483; _la = _input.La(1); if (_la==WS) { { - State = 1569; Match(WS); + State = 1482; Match(WS); } } - State = 1572; Match(T__1); - State = 1574; - switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { + State = 1485; Match(T__1); + State = 1487; + switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { case 1: { - State = 1573; Match(WS); + State = 1486; Match(WS); } break; } - State = 1576; sC_Selection(); + State = 1489; sC_Selection(); } } } - State = 1581; + State = 1494; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,218,_ctx); + _alt = Interpreter.AdaptivePredict(_input,204,_ctx); } } break; @@ -8519,36 +7937,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SendkeysStmtContext sendkeysStmt() { SendkeysStmtContext _localctx = new SendkeysStmtContext(_ctx, State); - EnterRule(_localctx, 178, RULE_sendkeysStmt); + EnterRule(_localctx, 166, RULE_sendkeysStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1584; Match(SENDKEYS); - State = 1585; Match(WS); - State = 1586; valueStmt(0); - State = 1595; - switch ( Interpreter.AdaptivePredict(_input,222,_ctx) ) { + State = 1497; Match(SENDKEYS); + State = 1498; Match(WS); + State = 1499; valueStmt(0); + State = 1508; + switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { case 1: { - State = 1588; + State = 1501; _la = _input.La(1); if (_la==WS) { { - State = 1587; Match(WS); + State = 1500; Match(WS); } } - State = 1590; Match(T__1); - State = 1592; - switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { + State = 1503; Match(T__1); + State = 1505; + switch ( Interpreter.AdaptivePredict(_input,207,_ctx) ) { case 1: { - State = 1591; Match(WS); + State = 1504; Match(WS); } break; } - State = 1594; valueStmt(0); + State = 1507; valueStmt(0); } break; } @@ -8600,32 +8018,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SetattrStmtContext setattrStmt() { SetattrStmtContext _localctx = new SetattrStmtContext(_ctx, State); - EnterRule(_localctx, 180, RULE_setattrStmt); + EnterRule(_localctx, 168, RULE_setattrStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1597; Match(SETATTR); - State = 1598; Match(WS); - State = 1599; valueStmt(0); - State = 1601; + State = 1510; Match(SETATTR); + State = 1511; Match(WS); + State = 1512; valueStmt(0); + State = 1514; _la = _input.La(1); if (_la==WS) { { - State = 1600; Match(WS); + State = 1513; Match(WS); } } - State = 1603; Match(T__1); - State = 1605; - switch ( Interpreter.AdaptivePredict(_input,224,_ctx) ) { + State = 1516; Match(T__1); + State = 1518; + switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { case 1: { - State = 1604; Match(WS); + State = 1517; Match(WS); } break; } - State = 1607; valueStmt(0); + State = 1520; valueStmt(0); } } catch (RecognitionException re) { @@ -8675,32 +8093,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SetStmtContext setStmt() { SetStmtContext _localctx = new SetStmtContext(_ctx, State); - EnterRule(_localctx, 182, RULE_setStmt); + EnterRule(_localctx, 170, RULE_setStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1609; Match(SET); - State = 1610; Match(WS); - State = 1611; implicitCallStmt_InStmt(); - State = 1613; + State = 1522; Match(SET); + State = 1523; Match(WS); + State = 1524; implicitCallStmt_InStmt(); + State = 1526; _la = _input.La(1); if (_la==WS) { { - State = 1612; Match(WS); + State = 1525; Match(WS); } } - State = 1615; Match(EQ); - State = 1617; - switch ( Interpreter.AdaptivePredict(_input,226,_ctx) ) { + State = 1528; Match(EQ); + State = 1530; + switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { case 1: { - State = 1616; Match(WS); + State = 1529; Match(WS); } break; } - State = 1619; valueStmt(0); + State = 1532; valueStmt(0); } } catch (RecognitionException re) { @@ -8739,11 +8157,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public StopStmtContext stopStmt() { StopStmtContext _localctx = new StopStmtContext(_ctx, State); - EnterRule(_localctx, 184, RULE_stopStmt); + EnterRule(_localctx, 172, RULE_stopStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1621; Match(STOP); + State = 1534; Match(STOP); } } catch (RecognitionException re) { @@ -8803,65 +8221,65 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubStmtContext subStmt() { SubStmtContext _localctx = new SubStmtContext(_ctx, State); - EnterRule(_localctx, 186, RULE_subStmt); + EnterRule(_localctx, 174, RULE_subStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1626; + State = 1539; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1623; visibility(); - State = 1624; Match(WS); + State = 1536; visibility(); + State = 1537; Match(WS); } } - State = 1630; + State = 1543; _la = _input.La(1); if (_la==STATIC) { { - State = 1628; Match(STATIC); - State = 1629; Match(WS); + State = 1541; Match(STATIC); + State = 1542; Match(WS); } } - State = 1632; Match(SUB); - State = 1634; + State = 1545; Match(SUB); + State = 1547; _la = _input.La(1); if (_la==WS) { { - State = 1633; Match(WS); + State = 1546; Match(WS); } } - State = 1636; ambiguousIdentifier(); - State = 1641; - switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { + State = 1549; ambiguousIdentifier(); + State = 1554; + switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { case 1: { - State = 1638; + State = 1551; _la = _input.La(1); if (_la==WS) { { - State = 1637; Match(WS); + State = 1550; Match(WS); } } - State = 1640; argList(); + State = 1553; argList(); } break; } - State = 1643; endOfStatement(); - State = 1645; + State = 1556; endOfStatement(); + State = 1558; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1644; block(); + State = 1557; block(); } } - State = 1647; Match(END_SUB); + State = 1560; Match(END_SUB); } } catch (RecognitionException re) { @@ -8908,30 +8326,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TimeStmtContext timeStmt() { TimeStmtContext _localctx = new TimeStmtContext(_ctx, State); - EnterRule(_localctx, 188, RULE_timeStmt); + EnterRule(_localctx, 176, RULE_timeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1649; Match(TIME); - State = 1651; + State = 1562; Match(TIME); + State = 1564; _la = _input.La(1); if (_la==WS) { { - State = 1650; Match(WS); + State = 1563; Match(WS); } } - State = 1653; Match(EQ); - State = 1655; - switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { + State = 1566; Match(EQ); + State = 1568; + switch ( Interpreter.AdaptivePredict(_input,220,_ctx) ) { case 1: { - State = 1654; Match(WS); + State = 1567; Match(WS); } break; } - State = 1657; valueStmt(0); + State = 1570; valueStmt(0); } } catch (RecognitionException re) { @@ -8990,38 +8408,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmtContext typeStmt() { TypeStmtContext _localctx = new TypeStmtContext(_ctx, State); - EnterRule(_localctx, 190, RULE_typeStmt); + EnterRule(_localctx, 178, RULE_typeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1662; + State = 1575; _la = _input.La(1); if (((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) { { - State = 1659; visibility(); - State = 1660; Match(WS); + State = 1572; visibility(); + State = 1573; Match(WS); } } - State = 1664; Match(TYPE); - State = 1665; Match(WS); - State = 1666; ambiguousIdentifier(); - State = 1667; endOfStatement(); - State = 1671; + State = 1577; Match(TYPE); + State = 1578; Match(WS); + State = 1579; ambiguousIdentifier(); + State = 1580; endOfStatement(); + State = 1584; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==IDENTIFIER) { { { - State = 1668; typeStmt_Element(); + State = 1581; typeStmt_Element(); } } - State = 1673; + State = 1586; _errHandler.Sync(this); _la = _input.La(1); } - State = 1674; Match(END_TYPE); + State = 1587; Match(END_TYPE); } } catch (RecognitionException re) { @@ -9077,63 +8495,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmt_ElementContext typeStmt_Element() { TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(_ctx, State); - EnterRule(_localctx, 192, RULE_typeStmt_Element); + EnterRule(_localctx, 180, RULE_typeStmt_Element); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1676; ambiguousIdentifier(); - State = 1691; - switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { + State = 1589; ambiguousIdentifier(); + State = 1604; + switch ( Interpreter.AdaptivePredict(_input,227,_ctx) ) { case 1: { - State = 1678; + State = 1591; _la = _input.La(1); if (_la==WS) { { - State = 1677; Match(WS); + State = 1590; Match(WS); } } - State = 1680; Match(LPAREN); - State = 1685; - switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { + State = 1593; Match(LPAREN); + State = 1598; + switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { case 1: { - State = 1682; - switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { + State = 1595; + switch ( Interpreter.AdaptivePredict(_input,224,_ctx) ) { case 1: { - State = 1681; Match(WS); + State = 1594; Match(WS); } break; } - State = 1684; subscripts(); + State = 1597; subscripts(); } break; } - State = 1688; + State = 1601; _la = _input.La(1); if (_la==WS) { { - State = 1687; Match(WS); + State = 1600; Match(WS); } } - State = 1690; Match(RPAREN); + State = 1603; Match(RPAREN); } break; } - State = 1695; - switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { + State = 1608; + switch ( Interpreter.AdaptivePredict(_input,228,_ctx) ) { case 1: { - State = 1693; Match(WS); - State = 1694; asTypeClause(); + State = 1606; Match(WS); + State = 1607; asTypeClause(); } break; } - State = 1697; endOfStatement(); + State = 1610; endOfStatement(); } } catch (RecognitionException re) { @@ -9183,21 +8601,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeOfStmtContext typeOfStmt() { TypeOfStmtContext _localctx = new TypeOfStmtContext(_ctx, State); - EnterRule(_localctx, 194, RULE_typeOfStmt); + EnterRule(_localctx, 182, RULE_typeOfStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1699; Match(TYPEOF); - State = 1700; Match(WS); - State = 1701; valueStmt(0); - State = 1706; - switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { + State = 1612; Match(TYPEOF); + State = 1613; Match(WS); + State = 1614; valueStmt(0); + State = 1619; + switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { case 1: { - State = 1702; Match(WS); - State = 1703; Match(IS); - State = 1704; Match(WS); - State = 1705; type(); + State = 1615; Match(WS); + State = 1616; Match(IS); + State = 1617; Match(WS); + State = 1618; type(); } break; } @@ -9243,13 +8661,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnloadStmtContext unloadStmt() { UnloadStmtContext _localctx = new UnloadStmtContext(_ctx, State); - EnterRule(_localctx, 196, RULE_unloadStmt); + EnterRule(_localctx, 184, RULE_unloadStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1708; Match(UNLOAD); - State = 1709; Match(WS); - State = 1710; valueStmt(0); + State = 1621; Match(UNLOAD); + State = 1622; Match(WS); + State = 1623; valueStmt(0); } } catch (RecognitionException re) { @@ -9302,44 +8720,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnlockStmtContext unlockStmt() { UnlockStmtContext _localctx = new UnlockStmtContext(_ctx, State); - EnterRule(_localctx, 198, RULE_unlockStmt); + EnterRule(_localctx, 186, RULE_unlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1712; Match(UNLOCK); - State = 1713; Match(WS); - State = 1714; fileNumber(); - State = 1729; - switch ( Interpreter.AdaptivePredict(_input,247,_ctx) ) { + State = 1625; Match(UNLOCK); + State = 1626; Match(WS); + State = 1627; fileNumber(); + State = 1642; + switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { case 1: { - State = 1716; + State = 1629; _la = _input.La(1); if (_la==WS) { { - State = 1715; Match(WS); + State = 1628; Match(WS); } } - State = 1718; Match(T__1); - State = 1720; - switch ( Interpreter.AdaptivePredict(_input,245,_ctx) ) { + State = 1631; Match(T__1); + State = 1633; + switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { case 1: { - State = 1719; Match(WS); + State = 1632; Match(WS); } break; } - State = 1722; valueStmt(0); - State = 1727; - switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { + State = 1635; valueStmt(0); + State = 1640; + switch ( Interpreter.AdaptivePredict(_input,232,_ctx) ) { case 1: { - State = 1723; Match(WS); - State = 1724; Match(TO); - State = 1725; Match(WS); - State = 1726; valueStmt(0); + State = 1636; Match(WS); + State = 1637; Match(TO); + State = 1638; Match(WS); + State = 1639; valueStmt(0); } break; } @@ -9930,31 +9348,31 @@ private ValueStmtContext valueStmt(int _p) { int _parentState = State; ValueStmtContext _localctx = new ValueStmtContext(_ctx, _parentState); ValueStmtContext _prevctx = _localctx; - int _startState = 200; - EnterRecursionRule(_localctx, 200, RULE_valueStmt, _p); + int _startState = 188; + EnterRecursionRule(_localctx, 188, RULE_valueStmt, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1786; - switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { + State = 1699; + switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { case 1: { _localctx = new VsNewContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1732; Match(NEW); - State = 1734; - switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { + State = 1645; Match(NEW); + State = 1647; + switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { case 1: { - State = 1733; Match(WS); + State = 1646; Match(WS); } break; } - State = 1736; valueStmt(19); + State = 1649; valueStmt(19); } break; @@ -9963,16 +9381,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1737; Match(ADDRESSOF); - State = 1739; - switch ( Interpreter.AdaptivePredict(_input,249,_ctx) ) { + State = 1650; Match(ADDRESSOF); + State = 1652; + switch ( Interpreter.AdaptivePredict(_input,235,_ctx) ) { case 1: { - State = 1738; Match(WS); + State = 1651; Match(WS); } break; } - State = 1741; valueStmt(16); + State = 1654; valueStmt(16); } break; @@ -9981,25 +9399,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1742; implicitCallStmt_InStmt(); - State = 1744; + State = 1655; implicitCallStmt_InStmt(); + State = 1657; _la = _input.La(1); if (_la==WS) { { - State = 1743; Match(WS); + State = 1656; Match(WS); } } - State = 1746; Match(ASSIGN); - State = 1748; - switch ( Interpreter.AdaptivePredict(_input,251,_ctx) ) { + State = 1659; Match(ASSIGN); + State = 1661; + switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { case 1: { - State = 1747; Match(WS); + State = 1660; Match(WS); } break; } - State = 1750; valueStmt(15); + State = 1663; valueStmt(15); } break; @@ -10008,16 +9426,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1752; Match(MINUS); - State = 1754; - switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { + State = 1665; Match(MINUS); + State = 1667; + switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { case 1: { - State = 1753; Match(WS); + State = 1666; Match(WS); } break; } - State = 1756; valueStmt(13); + State = 1669; valueStmt(13); } break; @@ -10026,16 +9444,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1757; Match(NOT); - State = 1759; - switch ( Interpreter.AdaptivePredict(_input,253,_ctx) ) { + State = 1670; Match(NOT); + State = 1672; + switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { case 1: { - State = 1758; Match(WS); + State = 1671; Match(WS); } break; } - State = 1761; valueStmt(6); + State = 1674; valueStmt(6); } break; @@ -10044,7 +9462,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1762; literal(); + State = 1675; literal(); } break; @@ -10053,7 +9471,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1763; implicitCallStmt_InStmt(); + State = 1676; implicitCallStmt_InStmt(); } break; @@ -10062,47 +9480,47 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1764; Match(LPAREN); - State = 1766; - switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { + State = 1677; Match(LPAREN); + State = 1679; + switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { case 1: { - State = 1765; Match(WS); + State = 1678; Match(WS); } break; } - State = 1768; valueStmt(0); - State = 1779; + State = 1681; valueStmt(0); + State = 1692; _errHandler.Sync(this); _la = _input.La(1); while (_la==T__1 || _la==WS) { { { - State = 1770; + State = 1683; _la = _input.La(1); if (_la==WS) { { - State = 1769; Match(WS); + State = 1682; Match(WS); } } - State = 1772; Match(T__1); - State = 1774; - switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { + State = 1685; Match(T__1); + State = 1687; + switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { case 1: { - State = 1773; Match(WS); + State = 1686; Match(WS); } break; } - State = 1776; valueStmt(0); + State = 1689; valueStmt(0); } } - State = 1781; + State = 1694; _errHandler.Sync(this); _la = _input.La(1); } - State = 1782; Match(RPAREN); + State = 1695; Match(RPAREN); } break; @@ -10111,7 +9529,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1784; typeOfStmt(); + State = 1697; typeOfStmt(); } break; @@ -10120,45 +9538,45 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1785; midStmt(); + State = 1698; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1898; + State = 1811; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,284,_ctx); + _alt = Interpreter.AdaptivePredict(_input,270,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1896; - switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { + State = 1809; + switch ( Interpreter.AdaptivePredict(_input,269,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1788; + State = 1701; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1790; + State = 1703; _la = _input.La(1); if (_la==WS) { { - State = 1789; Match(WS); + State = 1702; Match(WS); } } - State = 1792; Match(POW); - State = 1794; - switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { + State = 1705; Match(POW); + State = 1707; + switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1793; Match(WS); + State = 1706; Match(WS); } break; } - State = 1796; valueStmt(15); + State = 1709; valueStmt(15); } break; @@ -10166,31 +9584,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1797; + State = 1710; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1799; + State = 1712; _la = _input.La(1); if (_la==WS) { { - State = 1798; Match(WS); + State = 1711; Match(WS); } } - State = 1801; + State = 1714; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1803; - switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { + State = 1716; + switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { case 1: { - State = 1802; Match(WS); + State = 1715; Match(WS); } break; } - State = 1805; valueStmt(13); + State = 1718; valueStmt(13); } break; @@ -10198,26 +9616,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1806; + State = 1719; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1808; + State = 1721; _la = _input.La(1); if (_la==WS) { { - State = 1807; Match(WS); + State = 1720; Match(WS); } } - State = 1810; Match(INTDIV); - State = 1812; - switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { + State = 1723; Match(INTDIV); + State = 1725; + switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { case 1: { - State = 1811; Match(WS); + State = 1724; Match(WS); } break; } - State = 1814; valueStmt(12); + State = 1727; valueStmt(12); } break; @@ -10225,26 +9643,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1815; + State = 1728; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1817; + State = 1730; _la = _input.La(1); if (_la==WS) { { - State = 1816; Match(WS); + State = 1729; Match(WS); } } - State = 1819; Match(MOD); - State = 1821; - switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { + State = 1732; Match(MOD); + State = 1734; + switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { case 1: { - State = 1820; Match(WS); + State = 1733; Match(WS); } break; } - State = 1823; valueStmt(11); + State = 1736; valueStmt(11); } break; @@ -10252,31 +9670,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1824; + State = 1737; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1826; + State = 1739; _la = _input.La(1); if (_la==WS) { { - State = 1825; Match(WS); + State = 1738; Match(WS); } } - State = 1828; + State = 1741; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1830; - switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { + State = 1743; + switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { case 1: { - State = 1829; Match(WS); + State = 1742; Match(WS); } break; } - State = 1832; valueStmt(10); + State = 1745; valueStmt(10); } break; @@ -10284,26 +9702,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1833; + State = 1746; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1835; + State = 1748; _la = _input.La(1); if (_la==WS) { { - State = 1834; Match(WS); + State = 1747; Match(WS); } } - State = 1837; Match(AMPERSAND); - State = 1839; - switch ( Interpreter.AdaptivePredict(_input,270,_ctx) ) { + State = 1750; Match(AMPERSAND); + State = 1752; + switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1838; Match(WS); + State = 1751; Match(WS); } break; } - State = 1841; valueStmt(9); + State = 1754; valueStmt(9); } break; @@ -10311,31 +9729,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1842; + State = 1755; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1844; + State = 1757; _la = _input.La(1); if (_la==WS) { { - State = 1843; Match(WS); + State = 1756; Match(WS); } } - State = 1846; + State = 1759; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 191)) & ~0x3f) == 0 && ((1L << (_la - 191)) & ((1L << (EQ - 191)) | (1L << (GEQ - 191)) | (1L << (GT - 191)) | (1L << (LEQ - 191)) | (1L << (LT - 191)) | (1L << (NEQ - 191)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 186)) & ~0x3f) == 0 && ((1L << (_la - 186)) & ((1L << (EQ - 186)) | (1L << (GEQ - 186)) | (1L << (GT - 186)) | (1L << (LEQ - 186)) | (1L << (LT - 186)) | (1L << (NEQ - 186)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1848; - switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { + State = 1761; + switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { - State = 1847; Match(WS); + State = 1760; Match(WS); } break; } - State = 1850; valueStmt(8); + State = 1763; valueStmt(8); } break; @@ -10343,26 +9761,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1851; + State = 1764; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1853; + State = 1766; _la = _input.La(1); if (_la==WS) { { - State = 1852; Match(WS); + State = 1765; Match(WS); } } - State = 1855; Match(AND); - State = 1857; - switch ( Interpreter.AdaptivePredict(_input,274,_ctx) ) { + State = 1768; Match(AND); + State = 1770; + switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { case 1: { - State = 1856; Match(WS); + State = 1769; Match(WS); } break; } - State = 1859; valueStmt(6); + State = 1772; valueStmt(6); } break; @@ -10370,26 +9788,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1860; + State = 1773; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1862; + State = 1775; _la = _input.La(1); if (_la==WS) { { - State = 1861; Match(WS); + State = 1774; Match(WS); } } - State = 1864; Match(OR); - State = 1866; - switch ( Interpreter.AdaptivePredict(_input,276,_ctx) ) { + State = 1777; Match(OR); + State = 1779; + switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1865; Match(WS); + State = 1778; Match(WS); } break; } - State = 1868; valueStmt(5); + State = 1781; valueStmt(5); } break; @@ -10397,26 +9815,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1869; + State = 1782; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1871; + State = 1784; _la = _input.La(1); if (_la==WS) { { - State = 1870; Match(WS); + State = 1783; Match(WS); } } - State = 1873; Match(XOR); - State = 1875; - switch ( Interpreter.AdaptivePredict(_input,278,_ctx) ) { + State = 1786; Match(XOR); + State = 1788; + switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { case 1: { - State = 1874; Match(WS); + State = 1787; Match(WS); } break; } - State = 1877; valueStmt(4); + State = 1790; valueStmt(4); } break; @@ -10424,26 +9842,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1878; + State = 1791; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1880; + State = 1793; _la = _input.La(1); if (_la==WS) { { - State = 1879; Match(WS); + State = 1792; Match(WS); } } - State = 1882; Match(EQV); - State = 1884; - switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { + State = 1795; Match(EQV); + State = 1797; + switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1883; Match(WS); + State = 1796; Match(WS); } break; } - State = 1886; valueStmt(3); + State = 1799; valueStmt(3); } break; @@ -10451,34 +9869,34 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1887; + State = 1800; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1889; + State = 1802; _la = _input.La(1); if (_la==WS) { { - State = 1888; Match(WS); + State = 1801; Match(WS); } } - State = 1891; Match(IMP); - State = 1893; - switch ( Interpreter.AdaptivePredict(_input,282,_ctx) ) { + State = 1804; Match(IMP); + State = 1806; + switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 1892; Match(WS); + State = 1805; Match(WS); } break; } - State = 1895; valueStmt(2); + State = 1808; valueStmt(2); } break; } } } - State = 1900; + State = 1813; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,284,_ctx); + _alt = Interpreter.AdaptivePredict(_input,270,_ctx); } } } @@ -10530,20 +9948,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableStmtContext variableStmt() { VariableStmtContext _localctx = new VariableStmtContext(_ctx, State); - EnterRule(_localctx, 202, RULE_variableStmt); + EnterRule(_localctx, 190, RULE_variableStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1904; + State = 1817; switch (_input.La(1)) { case DIM: { - State = 1901; Match(DIM); + State = 1814; Match(DIM); } break; case STATIC: { - State = 1902; Match(STATIC); + State = 1815; Match(STATIC); } break; case FRIEND: @@ -10551,23 +9969,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1903; visibility(); + State = 1816; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1906; Match(WS); - State = 1909; - switch ( Interpreter.AdaptivePredict(_input,286,_ctx) ) { + State = 1819; Match(WS); + State = 1822; + switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { case 1: { - State = 1907; Match(WITHEVENTS); - State = 1908; Match(WS); + State = 1820; Match(WITHEVENTS); + State = 1821; Match(WS); } break; } - State = 1911; variableListStmt(); + State = 1824; variableListStmt(); } } catch (RecognitionException re) { @@ -10615,44 +10033,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableListStmtContext variableListStmt() { VariableListStmtContext _localctx = new VariableListStmtContext(_ctx, State); - EnterRule(_localctx, 204, RULE_variableListStmt); + EnterRule(_localctx, 192, RULE_variableListStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1913; variableSubStmt(); - State = 1924; + State = 1826; variableSubStmt(); + State = 1837; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,289,_ctx); + _alt = Interpreter.AdaptivePredict(_input,275,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1915; + State = 1828; _la = _input.La(1); if (_la==WS) { { - State = 1914; Match(WS); + State = 1827; Match(WS); } } - State = 1917; Match(T__1); - State = 1919; + State = 1830; Match(T__1); + State = 1832; _la = _input.La(1); if (_la==WS) { { - State = 1918; Match(WS); + State = 1831; Match(WS); } } - State = 1921; variableSubStmt(); + State = 1834; variableSubStmt(); } } } - State = 1926; + State = 1839; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,289,_ctx); + _alt = Interpreter.AdaptivePredict(_input,275,_ctx); } } } @@ -10709,75 +10127,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableSubStmtContext variableSubStmt() { VariableSubStmtContext _localctx = new VariableSubStmtContext(_ctx, State); - EnterRule(_localctx, 206, RULE_variableSubStmt); + EnterRule(_localctx, 194, RULE_variableSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1927; ambiguousIdentifier(); - State = 1945; - switch ( Interpreter.AdaptivePredict(_input,295,_ctx) ) { + State = 1840; ambiguousIdentifier(); + State = 1858; + switch ( Interpreter.AdaptivePredict(_input,281,_ctx) ) { case 1: { - State = 1929; + State = 1842; _la = _input.La(1); if (_la==WS) { { - State = 1928; Match(WS); + State = 1841; Match(WS); } } - State = 1931; Match(LPAREN); - State = 1933; - switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { + State = 1844; Match(LPAREN); + State = 1846; + switch ( Interpreter.AdaptivePredict(_input,277,_ctx) ) { case 1: { - State = 1932; Match(WS); + State = 1845; Match(WS); } break; } - State = 1939; + State = 1852; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << EMPTY) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (LPAREN - 195)) | (1L << (MINUS - 195)) | (1L << (STRINGLITERAL - 195)) | (1L << (OCTLITERAL - 195)) | (1L << (HEXLITERAL - 195)) | (1L << (SHORTLITERAL - 195)) | (1L << (INTEGERLITERAL - 195)) | (1L << (DOUBLELITERAL - 195)) | (1L << (DATELITERAL - 195)) | (1L << (WS - 195)) | (1L << (IDENTIFIER - 195)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << EMPTY) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)) | (1L << (LPAREN - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (SHORTLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DOUBLELITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0)) { { - State = 1935; subscripts(); - State = 1937; + State = 1848; subscripts(); + State = 1850; _la = _input.La(1); if (_la==WS) { { - State = 1936; Match(WS); + State = 1849; Match(WS); } } } } - State = 1941; Match(RPAREN); - State = 1943; - switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { + State = 1854; Match(RPAREN); + State = 1856; + switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { case 1: { - State = 1942; Match(WS); + State = 1855; Match(WS); } break; } } break; } - State = 1948; - switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { + State = 1861; + switch ( Interpreter.AdaptivePredict(_input,282,_ctx) ) { case 1: { - State = 1947; typeHint(); + State = 1860; typeHint(); } break; } - State = 1952; - switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { + State = 1865; + switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { case 1: { - State = 1950; Match(WS); - State = 1951; asTypeClause(); + State = 1863; Match(WS); + State = 1864; asTypeClause(); } break; } @@ -10830,23 +10248,23 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhileWendStmtContext whileWendStmt() { WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); - EnterRule(_localctx, 208, RULE_whileWendStmt); + EnterRule(_localctx, 196, RULE_whileWendStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1954; Match(WHILE); - State = 1955; Match(WS); - State = 1956; valueStmt(0); - State = 1957; endOfStatement(); - State = 1959; - switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { + State = 1867; Match(WHILE); + State = 1868; Match(WS); + State = 1869; valueStmt(0); + State = 1870; endOfStatement(); + State = 1872; + switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { case 1: { - State = 1958; block(); + State = 1871; block(); } break; } - State = 1961; Match(WEND); + State = 1874; Match(WEND); } } catch (RecognitionException re) { @@ -10895,32 +10313,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WidthStmtContext widthStmt() { WidthStmtContext _localctx = new WidthStmtContext(_ctx, State); - EnterRule(_localctx, 210, RULE_widthStmt); + EnterRule(_localctx, 198, RULE_widthStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1963; Match(WIDTH); - State = 1964; Match(WS); - State = 1965; fileNumber(); - State = 1967; + State = 1876; Match(WIDTH); + State = 1877; Match(WS); + State = 1878; fileNumber(); + State = 1880; _la = _input.La(1); if (_la==WS) { { - State = 1966; Match(WS); + State = 1879; Match(WS); } } - State = 1969; Match(T__1); - State = 1971; - switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { + State = 1882; Match(T__1); + State = 1884; + switch ( Interpreter.AdaptivePredict(_input,286,_ctx) ) { case 1: { - State = 1970; Match(WS); + State = 1883; Match(WS); } break; } - State = 1973; valueStmt(0); + State = 1886; valueStmt(0); } } catch (RecognitionException re) { @@ -10977,41 +10395,41 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtContext withStmt() { WithStmtContext _localctx = new WithStmtContext(_ctx, State); - EnterRule(_localctx, 212, RULE_withStmt); + EnterRule(_localctx, 200, RULE_withStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1975; Match(WITH); - State = 1976; Match(WS); - State = 1981; - switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { + State = 1888; Match(WITH); + State = 1889; Match(WS); + State = 1894; + switch ( Interpreter.AdaptivePredict(_input,287,_ctx) ) { case 1: { - State = 1977; implicitCallStmt_InStmt(); + State = 1890; implicitCallStmt_InStmt(); } break; case 2: { { - State = 1978; Match(NEW); - State = 1979; Match(WS); - State = 1980; type(); + State = 1891; Match(NEW); + State = 1892; Match(WS); + State = 1893; type(); } } break; } - State = 1983; endOfStatement(); - State = 1985; + State = 1896; endOfStatement(); + State = 1898; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (MACRO_CONST - 64)) | (1L << (MACRO_IF - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__6) | (1L << T__0) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LINE_INPUT - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (ON_ERROR - 64)) | (1L << (ON_LOCAL_ERROR - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0) || _la==WS || _la==IDENTIFIER) { { - State = 1984; block(); + State = 1897; block(); } } - State = 1987; Match(END_WITH); + State = 1900; Match(END_WITH); } } catch (RecognitionException re) { @@ -11060,36 +10478,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WriteStmtContext writeStmt() { WriteStmtContext _localctx = new WriteStmtContext(_ctx, State); - EnterRule(_localctx, 214, RULE_writeStmt); + EnterRule(_localctx, 202, RULE_writeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1989; Match(WRITE); - State = 1990; Match(WS); - State = 1991; fileNumber(); - State = 1993; + State = 1902; Match(WRITE); + State = 1903; Match(WS); + State = 1904; fileNumber(); + State = 1906; _la = _input.La(1); if (_la==WS) { { - State = 1992; Match(WS); + State = 1905; Match(WS); } } - State = 1995; Match(T__1); - State = 2000; - switch ( Interpreter.AdaptivePredict(_input,305,_ctx) ) { + State = 1908; Match(T__1); + State = 1913; + switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { case 1: { - State = 1997; - switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + State = 1910; + switch ( Interpreter.AdaptivePredict(_input,290,_ctx) ) { case 1: { - State = 1996; Match(WS); + State = 1909; Match(WS); } break; } - State = 1999; outputList(); + State = 1912; outputList(); } break; } @@ -11133,20 +10551,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FileNumberContext fileNumber() { FileNumberContext _localctx = new FileNumberContext(_ctx, State); - EnterRule(_localctx, 216, RULE_fileNumber); + EnterRule(_localctx, 204, RULE_fileNumber); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2003; + State = 1916; _la = _input.La(1); if (_la==T__5) { { - State = 2002; Match(T__5); + State = 1915; Match(T__5); } } - State = 2005; valueStmt(0); + State = 1918; valueStmt(0); } } catch (RecognitionException re) { @@ -11190,21 +10608,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtContext explicitCallStmt() { ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); - EnterRule(_localctx, 218, RULE_explicitCallStmt); + EnterRule(_localctx, 206, RULE_explicitCallStmt); try { - State = 2009; - switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { + State = 1922; + switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2007; eCS_ProcedureCall(); + State = 1920; eCS_ProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2008; eCS_MemberProcedureCall(); + State = 1921; eCS_MemberProcedureCall(); } break; } @@ -11272,81 +10690,81 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ECS_ProcedureCallContext eCS_ProcedureCall() { ECS_ProcedureCallContext _localctx = new ECS_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 220, RULE_eCS_ProcedureCall); + EnterRule(_localctx, 208, RULE_eCS_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2011; Match(CALL); - State = 2012; Match(WS); - State = 2013; ambiguousIdentifier(); - State = 2015; - switch ( Interpreter.AdaptivePredict(_input,308,_ctx) ) { + State = 1924; Match(CALL); + State = 1925; Match(WS); + State = 1926; ambiguousIdentifier(); + State = 1928; + switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { case 1: { - State = 2014; typeHint(); + State = 1927; typeHint(); } break; } - State = 2030; - switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { + State = 1943; + switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { case 1: { - State = 2018; + State = 1931; _la = _input.La(1); if (_la==WS) { { - State = 2017; Match(WS); + State = 1930; Match(WS); } } - State = 2020; Match(LPAREN); - State = 2022; - switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { + State = 1933; Match(LPAREN); + State = 1935; + switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { case 1: { - State = 2021; Match(WS); + State = 1934; Match(WS); } break; } - State = 2024; argsCall(); - State = 2026; + State = 1937; argsCall(); + State = 1939; _la = _input.La(1); if (_la==WS) { { - State = 2025; Match(WS); + State = 1938; Match(WS); } } - State = 2028; Match(RPAREN); + State = 1941; Match(RPAREN); } break; } - State = 2041; + State = 1954; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,314,_ctx); + _alt = Interpreter.AdaptivePredict(_input,300,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2033; + State = 1946; _la = _input.La(1); if (_la==WS) { { - State = 2032; Match(WS); + State = 1945; Match(WS); } } - State = 2035; Match(LPAREN); - State = 2036; subscripts(); - State = 2037; Match(RPAREN); + State = 1948; Match(LPAREN); + State = 1949; subscripts(); + State = 1950; Match(RPAREN); } } } - State = 2043; + State = 1956; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,314,_ctx); + _alt = Interpreter.AdaptivePredict(_input,300,_ctx); } } } @@ -11416,90 +10834,90 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { ECS_MemberProcedureCallContext _localctx = new ECS_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 222, RULE_eCS_MemberProcedureCall); + EnterRule(_localctx, 210, RULE_eCS_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2044; Match(CALL); - State = 2045; Match(WS); - State = 2047; - switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { + State = 1957; Match(CALL); + State = 1958; Match(WS); + State = 1960; + switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { case 1: { - State = 2046; implicitCallStmt_InStmt(); + State = 1959; implicitCallStmt_InStmt(); } break; } - State = 2049; Match(T__0); - State = 2050; ambiguousIdentifier(); - State = 2052; - switch ( Interpreter.AdaptivePredict(_input,316,_ctx) ) { + State = 1962; Match(T__0); + State = 1963; ambiguousIdentifier(); + State = 1965; + switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { case 1: { - State = 2051; typeHint(); + State = 1964; typeHint(); } break; } - State = 2067; - switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { + State = 1980; + switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { case 1: { - State = 2055; + State = 1968; _la = _input.La(1); if (_la==WS) { { - State = 2054; Match(WS); + State = 1967; Match(WS); } } - State = 2057; Match(LPAREN); - State = 2059; - switch ( Interpreter.AdaptivePredict(_input,318,_ctx) ) { + State = 1970; Match(LPAREN); + State = 1972; + switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { case 1: { - State = 2058; Match(WS); + State = 1971; Match(WS); } break; } - State = 2061; argsCall(); - State = 2063; + State = 1974; argsCall(); + State = 1976; _la = _input.La(1); if (_la==WS) { { - State = 2062; Match(WS); + State = 1975; Match(WS); } } - State = 2065; Match(RPAREN); + State = 1978; Match(RPAREN); } break; } - State = 2078; + State = 1991; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,322,_ctx); + _alt = Interpreter.AdaptivePredict(_input,308,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2070; + State = 1983; _la = _input.La(1); if (_la==WS) { { - State = 2069; Match(WS); + State = 1982; Match(WS); } } - State = 2072; Match(LPAREN); - State = 2073; subscripts(); - State = 2074; Match(RPAREN); + State = 1985; Match(LPAREN); + State = 1986; subscripts(); + State = 1987; Match(RPAREN); } } } - State = 2080; + State = 1993; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,322,_ctx); + _alt = Interpreter.AdaptivePredict(_input,308,_ctx); } } } @@ -11544,21 +10962,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); - EnterRule(_localctx, 224, RULE_implicitCallStmt_InBlock); + EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); try { - State = 2083; - switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { + State = 1996; + switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2081; iCS_B_MemberProcedureCall(); + State = 1994; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2082; iCS_B_ProcedureCall(); + State = 1995; iCS_B_ProcedureCall(); } break; } @@ -11631,79 +11049,79 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 226, RULE_iCS_B_MemberProcedureCall); + EnterRule(_localctx, 214, RULE_iCS_B_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2086; - switch ( Interpreter.AdaptivePredict(_input,324,_ctx) ) { + State = 1999; + switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { case 1: { - State = 2085; implicitCallStmt_InStmt(); + State = 1998; implicitCallStmt_InStmt(); } break; } - State = 2088; Match(T__0); - State = 2089; ambiguousIdentifier(); - State = 2091; - switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { + State = 2001; Match(T__0); + State = 2002; ambiguousIdentifier(); + State = 2004; + switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { case 1: { - State = 2090; typeHint(); + State = 2003; typeHint(); } break; } - State = 2095; - switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { + State = 2008; + switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { case 1: { - State = 2093; Match(WS); - State = 2094; argsCall(); + State = 2006; Match(WS); + State = 2007; argsCall(); } break; } - State = 2101; - switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { + State = 2014; + switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { case 1: { - State = 2098; + State = 2011; _la = _input.La(1); if (_la==WS) { { - State = 2097; Match(WS); + State = 2010; Match(WS); } } - State = 2100; dictionaryCallStmt(); + State = 2013; dictionaryCallStmt(); } break; } - State = 2112; + State = 2025; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,330,_ctx); + _alt = Interpreter.AdaptivePredict(_input,316,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2104; + State = 2017; _la = _input.La(1); if (_la==WS) { { - State = 2103; Match(WS); + State = 2016; Match(WS); } } - State = 2106; Match(LPAREN); - State = 2107; subscripts(); - State = 2108; Match(RPAREN); + State = 2019; Match(LPAREN); + State = 2020; subscripts(); + State = 2021; Match(RPAREN); } } } - State = 2114; + State = 2027; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,330,_ctx); + _alt = Interpreter.AdaptivePredict(_input,316,_ctx); } } } @@ -11766,46 +11184,46 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 228, RULE_iCS_B_ProcedureCall); + EnterRule(_localctx, 216, RULE_iCS_B_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2115; certainIdentifier(); - State = 2118; - switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { + State = 2028; certainIdentifier(); + State = 2031; + switch ( Interpreter.AdaptivePredict(_input,317,_ctx) ) { case 1: { - State = 2116; Match(WS); - State = 2117; argsCall(); + State = 2029; Match(WS); + State = 2030; argsCall(); } break; } - State = 2129; + State = 2042; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,333,_ctx); + _alt = Interpreter.AdaptivePredict(_input,319,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2121; + State = 2034; _la = _input.La(1); if (_la==WS) { { - State = 2120; Match(WS); + State = 2033; Match(WS); } } - State = 2123; Match(LPAREN); - State = 2124; subscripts(); - State = 2125; Match(RPAREN); + State = 2036; Match(LPAREN); + State = 2037; subscripts(); + State = 2038; Match(RPAREN); } } } - State = 2131; + State = 2044; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,333,_ctx); + _alt = Interpreter.AdaptivePredict(_input,319,_ctx); } } } @@ -11856,35 +11274,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); - EnterRule(_localctx, 230, RULE_implicitCallStmt_InStmt); + EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); try { - State = 2136; - switch ( Interpreter.AdaptivePredict(_input,334,_ctx) ) { + State = 2049; + switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2132; iCS_S_MembersCall(); + State = 2045; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2133; iCS_S_VariableOrProcedureCall(); + State = 2046; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 2134; iCS_S_ProcedureOrArrayCall(); + State = 2047; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 2135; iCS_S_DictionaryCall(); + State = 2048; iCS_S_DictionaryCall(); } break; } @@ -11951,61 +11369,61 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); - EnterRule(_localctx, 232, RULE_iCS_S_VariableOrProcedureCall); + EnterRule(_localctx, 220, RULE_iCS_S_VariableOrProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2138; ambiguousIdentifier(); - State = 2140; - switch ( Interpreter.AdaptivePredict(_input,335,_ctx) ) { + State = 2051; ambiguousIdentifier(); + State = 2053; + switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { case 1: { - State = 2139; typeHint(); + State = 2052; typeHint(); } break; } - State = 2146; - switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { + State = 2059; + switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { case 1: { - State = 2143; + State = 2056; _la = _input.La(1); if (_la==WS) { { - State = 2142; Match(WS); + State = 2055; Match(WS); } } - State = 2145; dictionaryCallStmt(); + State = 2058; dictionaryCallStmt(); } break; } - State = 2157; + State = 2070; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,339,_ctx); + _alt = Interpreter.AdaptivePredict(_input,325,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2149; + State = 2062; _la = _input.La(1); if (_la==WS) { { - State = 2148; Match(WS); + State = 2061; Match(WS); } } - State = 2151; Match(LPAREN); - State = 2152; subscripts(); - State = 2153; Match(RPAREN); + State = 2064; Match(LPAREN); + State = 2065; subscripts(); + State = 2066; Match(RPAREN); } } } - State = 2159; + State = 2072; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,339,_ctx); + _alt = Interpreter.AdaptivePredict(_input,325,_ctx); } } } @@ -12077,108 +11495,108 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); - EnterRule(_localctx, 234, RULE_iCS_S_ProcedureOrArrayCall); + EnterRule(_localctx, 222, RULE_iCS_S_ProcedureOrArrayCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2162; - switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { + State = 2075; + switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { case 1: { - State = 2160; ambiguousIdentifier(); + State = 2073; ambiguousIdentifier(); } break; case 2: { - State = 2161; baseType(); + State = 2074; baseType(); } break; } - State = 2165; + State = 2078; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 2164; typeHint(); + State = 2077; typeHint(); } } - State = 2168; + State = 2081; _la = _input.La(1); if (_la==WS) { { - State = 2167; Match(WS); + State = 2080; Match(WS); } } - State = 2170; Match(LPAREN); - State = 2172; - switch ( Interpreter.AdaptivePredict(_input,343,_ctx) ) { + State = 2083; Match(LPAREN); + State = 2085; + switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { case 1: { - State = 2171; Match(WS); + State = 2084; Match(WS); } break; } - State = 2178; - switch ( Interpreter.AdaptivePredict(_input,345,_ctx) ) { + State = 2091; + switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { case 1: { - State = 2174; argsCall(); - State = 2176; + State = 2087; argsCall(); + State = 2089; _la = _input.La(1); if (_la==WS) { { - State = 2175; Match(WS); + State = 2088; Match(WS); } } } break; } - State = 2180; Match(RPAREN); - State = 2185; - switch ( Interpreter.AdaptivePredict(_input,347,_ctx) ) { + State = 2093; Match(RPAREN); + State = 2098; + switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { case 1: { - State = 2182; + State = 2095; _la = _input.La(1); if (_la==WS) { { - State = 2181; Match(WS); + State = 2094; Match(WS); } } - State = 2184; dictionaryCallStmt(); + State = 2097; dictionaryCallStmt(); } break; } - State = 2196; + State = 2109; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + _alt = Interpreter.AdaptivePredict(_input,335,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2188; + State = 2101; _la = _input.La(1); if (_la==WS) { { - State = 2187; Match(WS); + State = 2100; Match(WS); } } - State = 2190; Match(LPAREN); - State = 2191; subscripts(); - State = 2192; Match(RPAREN); + State = 2103; Match(LPAREN); + State = 2104; subscripts(); + State = 2105; Match(RPAREN); } } } - State = 2198; + State = 2111; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + _alt = Interpreter.AdaptivePredict(_input,335,_ctx); } } } @@ -12250,27 +11668,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MembersCallContext iCS_S_MembersCall() { ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 236, RULE_iCS_S_MembersCall); + EnterRule(_localctx, 224, RULE_iCS_S_MembersCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2201; - switch ( Interpreter.AdaptivePredict(_input,350,_ctx) ) { + State = 2114; + switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { case 1: { - State = 2199; iCS_S_VariableOrProcedureCall(); + State = 2112; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2200; iCS_S_ProcedureOrArrayCall(); + State = 2113; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2207; + State = 2120; _errHandler.Sync(this); _alt = 1; do { @@ -12278,12 +11696,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2203; iCS_S_MemberCall(); - State = 2205; - switch ( Interpreter.AdaptivePredict(_input,351,_ctx) ) { + State = 2116; iCS_S_MemberCall(); + State = 2118; + switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { case 1: { - State = 2204; Match(WS); + State = 2117; Match(WS); } break; } @@ -12293,50 +11711,50 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2209; + State = 2122; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,352,_ctx); + _alt = Interpreter.AdaptivePredict(_input,338,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2215; - switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { + State = 2128; + switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { case 1: { - State = 2212; + State = 2125; _la = _input.La(1); if (_la==WS) { { - State = 2211; Match(WS); + State = 2124; Match(WS); } } - State = 2214; dictionaryCallStmt(); + State = 2127; dictionaryCallStmt(); } break; } - State = 2226; + State = 2139; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,356,_ctx); + _alt = Interpreter.AdaptivePredict(_input,342,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2218; + State = 2131; _la = _input.La(1); if (_la==WS) { { - State = 2217; Match(WS); + State = 2130; Match(WS); } } - State = 2220; Match(LPAREN); - State = 2221; subscripts(); - State = 2222; Match(RPAREN); + State = 2133; Match(LPAREN); + State = 2134; subscripts(); + State = 2135; Match(RPAREN); } } } - State = 2228; + State = 2141; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,356,_ctx); + _alt = Interpreter.AdaptivePredict(_input,342,_ctx); } } } @@ -12382,36 +11800,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MemberCallContext iCS_S_MemberCall() { ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 238, RULE_iCS_S_MemberCall); + EnterRule(_localctx, 226, RULE_iCS_S_MemberCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2229; + State = 2142; _la = _input.La(1); if ( !(_la==T__6 || _la==T__0) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2231; + State = 2144; _la = _input.La(1); if (_la==WS) { { - State = 2230; Match(WS); + State = 2143; Match(WS); } } - State = 2235; - switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { + State = 2148; + switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { case 1: { - State = 2233; iCS_S_VariableOrProcedureCall(); + State = 2146; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2234; iCS_S_ProcedureOrArrayCall(); + State = 2147; iCS_S_ProcedureOrArrayCall(); } break; } @@ -12456,20 +11874,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 240, RULE_iCS_S_DictionaryCall); + EnterRule(_localctx, 228, RULE_iCS_S_DictionaryCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2238; + State = 2151; _la = _input.La(1); if (_la==WS) { { - State = 2237; Match(WS); + State = 2150; Match(WS); } } - State = 2240; dictionaryCallStmt(); + State = 2153; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -12517,100 +11935,100 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgsCallContext argsCall() { ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 242, RULE_argsCall); + EnterRule(_localctx, 230, RULE_argsCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2254; + State = 2167; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,363,_ctx); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2243; - switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { + State = 2156; + switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { case 1: { - State = 2242; argCall(); + State = 2155; argCall(); } break; } - State = 2246; + State = 2159; _la = _input.La(1); if (_la==WS) { { - State = 2245; Match(WS); + State = 2158; Match(WS); } } - State = 2248; + State = 2161; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2250; - switch ( Interpreter.AdaptivePredict(_input,362,_ctx) ) { + State = 2163; + switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { case 1: { - State = 2249; Match(WS); + State = 2162; Match(WS); } break; } } } } - State = 2256; + State = 2169; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,363,_ctx); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); } - State = 2257; argCall(); - State = 2270; + State = 2170; argCall(); + State = 2183; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,367,_ctx); + _alt = Interpreter.AdaptivePredict(_input,353,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2259; + State = 2172; _la = _input.La(1); if (_la==WS) { { - State = 2258; Match(WS); + State = 2171; Match(WS); } } - State = 2261; + State = 2174; _la = _input.La(1); if ( !(_la==T__2 || _la==T__1) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2263; - switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { + State = 2176; + switch ( Interpreter.AdaptivePredict(_input,351,_ctx) ) { case 1: { - State = 2262; Match(WS); + State = 2175; Match(WS); } break; } - State = 2266; - switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { + State = 2179; + switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { case 1: { - State = 2265; argCall(); + State = 2178; argCall(); } break; } } } } - State = 2272; + State = 2185; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,367,_ctx); + _alt = Interpreter.AdaptivePredict(_input,353,_ctx); } } } @@ -12658,42 +12076,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgCallContext argCall() { ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 244, RULE_argCall); + EnterRule(_localctx, 232, RULE_argCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2274; - switch ( Interpreter.AdaptivePredict(_input,368,_ctx) ) { + State = 2187; + switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { case 1: { - State = 2273; Match(LPAREN); + State = 2186; Match(LPAREN); } break; } - State = 2278; - switch ( Interpreter.AdaptivePredict(_input,369,_ctx) ) { + State = 2191; + switch ( Interpreter.AdaptivePredict(_input,355,_ctx) ) { case 1: { - State = 2276; + State = 2189; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2277; Match(WS); + State = 2190; Match(WS); } break; } - State = 2281; + State = 2194; _la = _input.La(1); if (_la==RPAREN) { { - State = 2280; Match(RPAREN); + State = 2193; Match(RPAREN); } } - State = 2283; valueStmt(0); + State = 2196; valueStmt(0); } } catch (RecognitionException re) { @@ -12738,26 +12156,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryCallStmtContext dictionaryCallStmt() { DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 246, RULE_dictionaryCallStmt); + EnterRule(_localctx, 234, RULE_dictionaryCallStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2285; Match(T__6); - State = 2287; + State = 2198; Match(T__6); + State = 2200; _la = _input.La(1); if (_la==WS) { { - State = 2286; Match(WS); + State = 2199; Match(WS); } } - State = 2289; ambiguousIdentifier(); - State = 2291; - switch ( Interpreter.AdaptivePredict(_input,372,_ctx) ) { + State = 2202; ambiguousIdentifier(); + State = 2204; + switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { case 1: { - State = 2290; typeHint(); + State = 2203; typeHint(); } break; } @@ -12810,70 +12228,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgListContext argList() { ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 248, RULE_argList); + EnterRule(_localctx, 236, RULE_argList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2293; Match(LPAREN); - State = 2311; - switch ( Interpreter.AdaptivePredict(_input,377,_ctx) ) { + State = 2206; Match(LPAREN); + State = 2224; + switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { case 1: { - State = 2295; + State = 2208; _la = _input.La(1); if (_la==WS) { { - State = 2294; Match(WS); + State = 2207; Match(WS); } } - State = 2297; arg(); - State = 2308; + State = 2210; arg(); + State = 2221; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,376,_ctx); + _alt = Interpreter.AdaptivePredict(_input,362,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2299; + State = 2212; _la = _input.La(1); if (_la==WS) { { - State = 2298; Match(WS); + State = 2211; Match(WS); } } - State = 2301; Match(T__1); - State = 2303; + State = 2214; Match(T__1); + State = 2216; _la = _input.La(1); if (_la==WS) { { - State = 2302; Match(WS); + State = 2215; Match(WS); } } - State = 2305; arg(); + State = 2218; arg(); } } } - State = 2310; + State = 2223; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,376,_ctx); + _alt = Interpreter.AdaptivePredict(_input,362,_ctx); } } break; } - State = 2314; + State = 2227; _la = _input.La(1); if (_la==WS) { { - State = 2313; Match(WS); + State = 2226; Match(WS); } } - State = 2316; Match(RPAREN); + State = 2229; Match(RPAREN); } } catch (RecognitionException re) { @@ -12933,106 +12351,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgContext arg() { ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 250, RULE_arg); + EnterRule(_localctx, 238, RULE_arg); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2320; - switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { + State = 2233; + switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { case 1: { - State = 2318; Match(OPTIONAL); - State = 2319; Match(WS); + State = 2231; Match(OPTIONAL); + State = 2232; Match(WS); } break; } - State = 2324; - switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { + State = 2237; + switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { case 1: { - State = 2322; + State = 2235; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2323; Match(WS); + State = 2236; Match(WS); } break; } - State = 2328; - switch ( Interpreter.AdaptivePredict(_input,381,_ctx) ) { + State = 2241; + switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { case 1: { - State = 2326; Match(PARAMARRAY); - State = 2327; Match(WS); + State = 2239; Match(PARAMARRAY); + State = 2240; Match(WS); } break; } - State = 2330; ambiguousIdentifier(); - State = 2332; + State = 2243; ambiguousIdentifier(); + State = 2245; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) { { - State = 2331; typeHint(); + State = 2244; typeHint(); } } - State = 2342; - switch ( Interpreter.AdaptivePredict(_input,385,_ctx) ) { + State = 2255; + switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { case 1: { - State = 2335; + State = 2248; _la = _input.La(1); if (_la==WS) { { - State = 2334; Match(WS); + State = 2247; Match(WS); } } - State = 2337; Match(LPAREN); - State = 2339; + State = 2250; Match(LPAREN); + State = 2252; _la = _input.La(1); if (_la==WS) { { - State = 2338; Match(WS); + State = 2251; Match(WS); } } - State = 2341; Match(RPAREN); + State = 2254; Match(RPAREN); } break; } - State = 2348; - switch ( Interpreter.AdaptivePredict(_input,387,_ctx) ) { + State = 2261; + switch ( Interpreter.AdaptivePredict(_input,373,_ctx) ) { case 1: { - State = 2345; + State = 2258; _la = _input.La(1); if (_la==WS) { { - State = 2344; Match(WS); + State = 2257; Match(WS); } } - State = 2347; asTypeClause(); + State = 2260; asTypeClause(); } break; } - State = 2354; - switch ( Interpreter.AdaptivePredict(_input,389,_ctx) ) { + State = 2267; + switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { case 1: { - State = 2351; + State = 2264; _la = _input.La(1); if (_la==WS) { { - State = 2350; Match(WS); + State = 2263; Match(WS); } } - State = 2353; argDefaultValue(); + State = 2266; argDefaultValue(); } break; } @@ -13078,20 +12496,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgDefaultValueContext argDefaultValue() { ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 252, RULE_argDefaultValue); + EnterRule(_localctx, 240, RULE_argDefaultValue); try { EnterOuterAlt(_localctx, 1); { - State = 2356; Match(EQ); - State = 2358; - switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { + State = 2269; Match(EQ); + State = 2271; + switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { case 1: { - State = 2357; Match(WS); + State = 2270; Match(WS); } break; } - State = 2360; valueStmt(0); + State = 2273; valueStmt(0); } } catch (RecognitionException re) { @@ -13139,44 +12557,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptsContext subscripts() { SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 254, RULE_subscripts); + EnterRule(_localctx, 242, RULE_subscripts); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2362; subscript(); - State = 2373; + State = 2275; subscript(); + State = 2286; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,393,_ctx); + _alt = Interpreter.AdaptivePredict(_input,379,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2364; + State = 2277; _la = _input.La(1); if (_la==WS) { { - State = 2363; Match(WS); + State = 2276; Match(WS); } } - State = 2366; Match(T__1); - State = 2368; - switch ( Interpreter.AdaptivePredict(_input,392,_ctx) ) { + State = 2279; Match(T__1); + State = 2281; + switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { case 1: { - State = 2367; Match(WS); + State = 2280; Match(WS); } break; } - State = 2370; subscript(); + State = 2283; subscript(); } } } - State = 2375; + State = 2288; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,393,_ctx); + _alt = Interpreter.AdaptivePredict(_input,379,_ctx); } } } @@ -13226,22 +12644,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptContext subscript() { SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 256, RULE_subscript); + EnterRule(_localctx, 244, RULE_subscript); try { EnterOuterAlt(_localctx, 1); { - State = 2381; - switch ( Interpreter.AdaptivePredict(_input,394,_ctx) ) { + State = 2294; + switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { case 1: { - State = 2376; valueStmt(0); - State = 2377; Match(WS); - State = 2378; Match(TO); - State = 2379; Match(WS); + State = 2289; valueStmt(0); + State = 2290; Match(WS); + State = 2291; Match(TO); + State = 2292; Match(WS); } break; } - State = 2383; valueStmt(0); + State = 2296; valueStmt(0); } } catch (RecognitionException re) { @@ -13289,23 +12707,23 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AmbiguousIdentifierContext ambiguousIdentifier() { AmbiguousIdentifierContext _localctx = new AmbiguousIdentifierContext(_ctx, State); - EnterRule(_localctx, 258, RULE_ambiguousIdentifier); + EnterRule(_localctx, 246, RULE_ambiguousIdentifier); try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2387; + State = 2300; _errHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 2387; + State = 2300; switch (_input.La(1)) { case IDENTIFIER: { - State = 2385; Match(IDENTIFIER); + State = 2298; Match(IDENTIFIER); } break; case ACCESS: @@ -13453,7 +12871,7 @@ public AmbiguousIdentifierContext ambiguousIdentifier() { case WRITE: case XOR: { - State = 2386; ambiguousKeyword(); + State = 2299; ambiguousKeyword(); } break; default: @@ -13464,9 +12882,9 @@ public AmbiguousIdentifierContext ambiguousIdentifier() { default: throw new NoViableAltException(this); } - State = 2389; + State = 2302; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,396,_ctx); + _alt = Interpreter.AdaptivePredict(_input,382,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -13517,43 +12935,43 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AsTypeClauseContext asTypeClause() { AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 260, RULE_asTypeClause); + EnterRule(_localctx, 248, RULE_asTypeClause); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2391; Match(AS); - State = 2393; + State = 2304; Match(AS); + State = 2306; _la = _input.La(1); if (_la==WS) { { - State = 2392; Match(WS); + State = 2305; Match(WS); } } - State = 2397; - switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { + State = 2310; + switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { case 1: { - State = 2395; Match(NEW); - State = 2396; Match(WS); + State = 2308; Match(NEW); + State = 2309; Match(WS); } break; } - State = 2399; type(); - State = 2404; - switch ( Interpreter.AdaptivePredict(_input,400,_ctx) ) { + State = 2312; type(); + State = 2317; + switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { case 1: { - State = 2401; + State = 2314; _la = _input.La(1); if (_la==WS) { { - State = 2400; Match(WS); + State = 2313; Match(WS); } } - State = 2403; fieldLength(); + State = 2316; fieldLength(); } break; } @@ -13604,14 +13022,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BaseTypeContext baseType() { BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 262, RULE_baseType); + EnterRule(_localctx, 250, RULE_baseType); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2406; + State = 2319; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la==INTEGER || _la==LONG || ((((_la - 160)) & ~0x3f) == 0 && ((1L << (_la - 160)) & ((1L << (SINGLE - 160)) | (1L << (STRING - 160)) | (1L << (VARIANT - 160)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOLEAN) | (1L << BYTE) | (1L << COLLECTION) | (1L << DATE) | (1L << DOUBLE))) != 0) || _la==INTEGER || _la==LONG || ((((_la - 155)) & ~0x3f) == 0 && ((1L << (_la - 155)) & ((1L << (SINGLE - 155)) | (1L << (STRING - 155)) | (1L << (VARIANT - 155)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -13662,22 +13080,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CertainIdentifierContext certainIdentifier() { CertainIdentifierContext _localctx = new CertainIdentifierContext(_ctx, State); - EnterRule(_localctx, 264, RULE_certainIdentifier); + EnterRule(_localctx, 252, RULE_certainIdentifier); try { int _alt; - State = 2423; + State = 2336; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2408; Match(IDENTIFIER); - State = 2413; + State = 2321; Match(IDENTIFIER); + State = 2326; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,402,_ctx); + _alt = Interpreter.AdaptivePredict(_input,388,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2411; + State = 2324; switch (_input.La(1)) { case ACCESS: case ADDRESSOF: @@ -13824,12 +13242,12 @@ public CertainIdentifierContext certainIdentifier() { case WRITE: case XOR: { - State = 2409; ambiguousKeyword(); + State = 2322; ambiguousKeyword(); } break; case IDENTIFIER: { - State = 2410; Match(IDENTIFIER); + State = 2323; Match(IDENTIFIER); } break; default: @@ -13837,9 +13255,9 @@ public CertainIdentifierContext certainIdentifier() { } } } - State = 2415; + State = 2328; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,402,_ctx); + _alt = Interpreter.AdaptivePredict(_input,388,_ctx); } } break; @@ -13989,15 +13407,15 @@ public CertainIdentifierContext certainIdentifier() { case XOR: EnterOuterAlt(_localctx, 2); { - State = 2416; ambiguousKeyword(); - State = 2419; + State = 2329; ambiguousKeyword(); + State = 2332; _errHandler.Sync(this); _alt = 1; do { switch (_alt) { case 1: { - State = 2419; + State = 2332; switch (_input.La(1)) { case ACCESS: case ADDRESSOF: @@ -14144,12 +13562,12 @@ public CertainIdentifierContext certainIdentifier() { case WRITE: case XOR: { - State = 2417; ambiguousKeyword(); + State = 2330; ambiguousKeyword(); } break; case IDENTIFIER: { - State = 2418; Match(IDENTIFIER); + State = 2331; Match(IDENTIFIER); } break; default: @@ -14160,9 +13578,9 @@ public CertainIdentifierContext certainIdentifier() { default: throw new NoViableAltException(this); } - State = 2421; + State = 2334; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,404,_ctx); + _alt = Interpreter.AdaptivePredict(_input,390,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; @@ -14213,14 +13631,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComparisonOperatorContext comparisonOperator() { ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 266, RULE_comparisonOperator); + EnterRule(_localctx, 254, RULE_comparisonOperator); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2425; + State = 2338; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 191)) & ~0x3f) == 0 && ((1L << (_la - 191)) & ((1L << (EQ - 191)) | (1L << (GEQ - 191)) | (1L << (GT - 191)) | (1L << (LEQ - 191)) | (1L << (LT - 191)) | (1L << (NEQ - 191)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 186)) & ~0x3f) == 0 && ((1L << (_la - 186)) & ((1L << (EQ - 186)) | (1L << (GEQ - 186)) | (1L << (GT - 186)) | (1L << (LEQ - 186)) | (1L << (LT - 186)) | (1L << (NEQ - 186)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14267,33 +13685,33 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComplexTypeContext complexType() { ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 268, RULE_complexType); + EnterRule(_localctx, 256, RULE_complexType); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2427; ambiguousIdentifier(); - State = 2432; + State = 2340; ambiguousIdentifier(); + State = 2345; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,406,_ctx); + _alt = Interpreter.AdaptivePredict(_input,392,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2428; + State = 2341; _la = _input.La(1); if ( !(_la==T__6 || _la==T__0) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2429; ambiguousIdentifier(); + State = 2342; ambiguousIdentifier(); } } } - State = 2434; + State = 2347; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,406,_ctx); + _alt = Interpreter.AdaptivePredict(_input,392,_ctx); } } } @@ -14338,25 +13756,25 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FieldLengthContext fieldLength() { FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 270, RULE_fieldLength); + EnterRule(_localctx, 258, RULE_fieldLength); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2435; Match(MULT); - State = 2437; + State = 2348; Match(MULT); + State = 2350; _la = _input.La(1); if (_la==WS) { { - State = 2436; Match(WS); + State = 2349; Match(WS); } } - State = 2441; + State = 2354; switch (_input.La(1)) { case INTEGERLITERAL: { - State = 2439; Match(INTEGERLITERAL); + State = 2352; Match(INTEGERLITERAL); } break; case ACCESS: @@ -14505,7 +13923,7 @@ public FieldLengthContext fieldLength() { case XOR: case IDENTIFIER: { - State = 2440; ambiguousIdentifier(); + State = 2353; ambiguousIdentifier(); } break; default: @@ -14559,34 +13977,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetterrangeContext letterrange() { LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 272, RULE_letterrange); + EnterRule(_localctx, 260, RULE_letterrange); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2443; certainIdentifier(); - State = 2452; - switch ( Interpreter.AdaptivePredict(_input,411,_ctx) ) { + State = 2356; certainIdentifier(); + State = 2365; + switch ( Interpreter.AdaptivePredict(_input,397,_ctx) ) { case 1: { - State = 2445; + State = 2358; _la = _input.La(1); if (_la==WS) { { - State = 2444; Match(WS); + State = 2357; Match(WS); } } - State = 2447; Match(MINUS); - State = 2449; + State = 2360; Match(MINUS); + State = 2362; _la = _input.La(1); if (_la==WS) { { - State = 2448; Match(WS); + State = 2361; Match(WS); } } - State = 2451; certainIdentifier(); + State = 2364; certainIdentifier(); } break; } @@ -14630,12 +14048,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineLabelContext lineLabel() { LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 274, RULE_lineLabel); + EnterRule(_localctx, 262, RULE_lineLabel); try { EnterOuterAlt(_localctx, 1); { - State = 2454; ambiguousIdentifier(); - State = 2455; Match(COLON); + State = 2367; ambiguousIdentifier(); + State = 2368; Match(COLON); } } catch (RecognitionException re) { @@ -14685,14 +14103,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 276, RULE_literal); + EnterRule(_localctx, 264, RULE_literal); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2457; + State = 2370; _la = _input.La(1); - if ( !(_la==EMPTY || ((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & ((1L << (FALSE - 74)) | (1L << (NOTHING - 74)) | (1L << (NULL - 74)))) != 0) || ((((_la - 172)) & ~0x3f) == 0 && ((1L << (_la - 172)) & ((1L << (TRUE - 172)) | (1L << (STRINGLITERAL - 172)) | (1L << (OCTLITERAL - 172)) | (1L << (HEXLITERAL - 172)) | (1L << (SHORTLITERAL - 172)) | (1L << (INTEGERLITERAL - 172)) | (1L << (DOUBLELITERAL - 172)) | (1L << (DATELITERAL - 172)))) != 0)) ) { + if ( !(((((_la - 54)) & ~0x3f) == 0 && ((1L << (_la - 54)) & ((1L << (EMPTY - 54)) | (1L << (FALSE - 54)) | (1L << (NOTHING - 54)) | (1L << (NULL - 54)))) != 0) || ((((_la - 167)) & ~0x3f) == 0 && ((1L << (_la - 167)) & ((1L << (TRUE - 167)) | (1L << (STRINGLITERAL - 167)) | (1L << (OCTLITERAL - 167)) | (1L << (HEXLITERAL - 167)) | (1L << (SHORTLITERAL - 167)) | (1L << (INTEGERLITERAL - 167)) | (1L << (DOUBLELITERAL - 167)) | (1L << (DATELITERAL - 167)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14745,47 +14163,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeContext type() { TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 278, RULE_type); + EnterRule(_localctx, 266, RULE_type); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2461; - switch ( Interpreter.AdaptivePredict(_input,412,_ctx) ) { + State = 2374; + switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { case 1: { - State = 2459; baseType(); + State = 2372; baseType(); } break; case 2: { - State = 2460; complexType(); + State = 2373; complexType(); } break; } - State = 2471; - switch ( Interpreter.AdaptivePredict(_input,415,_ctx) ) { + State = 2384; + switch ( Interpreter.AdaptivePredict(_input,401,_ctx) ) { case 1: { - State = 2464; + State = 2377; _la = _input.La(1); if (_la==WS) { { - State = 2463; Match(WS); + State = 2376; Match(WS); } } - State = 2466; Match(LPAREN); - State = 2468; + State = 2379; Match(LPAREN); + State = 2381; _la = _input.La(1); if (_la==WS) { { - State = 2467; Match(WS); + State = 2380; Match(WS); } } - State = 2470; Match(RPAREN); + State = 2383; Match(RPAREN); } break; } @@ -14826,12 +14244,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 280, RULE_typeHint); + EnterRule(_localctx, 268, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2473; + State = 2386; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__7) | (1L << T__6) | (1L << T__5) | (1L << T__4) | (1L << T__3))) != 0) || _la==AMPERSAND) ) { _errHandler.RecoverInline(this); @@ -14878,12 +14296,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VisibilityContext visibility() { VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 282, RULE_visibility); + EnterRule(_localctx, 270, RULE_visibility); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2475; + State = 2388; _la = _input.La(1); if ( !(((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (FRIEND - 76)) | (1L << (GLOBAL - 76)) | (1L << (PRIVATE - 76)) | (1L << (PUBLIC - 76)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -15070,14 +14488,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AmbiguousKeywordContext ambiguousKeyword() { AmbiguousKeywordContext _localctx = new AmbiguousKeywordContext(_ctx, State); - EnterRule(_localctx, 284, RULE_ambiguousKeyword); + EnterRule(_localctx, 272, RULE_ambiguousKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2477; + State = 2390; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE) | (1L << CHDIR) | (1L << CHDRIVE) | (1L << CLASS) | (1L << CLOSE) | (1L << COLLECTION) | (1L << CONST) | (1L << DATABASE) | (1L << DATE) | (1L << DECLARE) | (1L << DEFBOOL) | (1L << DEFBYTE) | (1L << DEFDATE) | (1L << DEFDBL) | (1L << DEFDEC) | (1L << DEFCUR) | (1L << DEFINT) | (1L << DEFLNG) | (1L << DEFOBJ) | (1L << DEFSNG) | (1L << DEFSTR) | (1L << DEFVAR) | (1L << DELETESETTING) | (1L << DIM) | (1L << DO) | (1L << DOUBLE) | (1L << EACH) | (1L << ELSE) | (1L << ELSEIF) | (1L << END))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (KILL - 64)) | (1L << (LOAD - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LEN - 64)) | (1L << (LET - 64)) | (1L << (LIB - 64)) | (1L << (LIKE - 64)) | (1L << (LSET - 64)) | (1L << (ME - 64)) | (1L << (MID - 64)) | (1L << (MKDIR - 64)) | (1L << (MOD - 64)) | (1L << (NAME - 64)) | (1L << (NEXT - 64)) | (1L << (NEW - 64)) | (1L << (NOT - 64)) | (1L << (NOTHING - 64)) | (1L << (NULL - 64)) | (1L << (ON - 64)) | (1L << (OPEN - 64)) | (1L << (OPTIONAL - 64)) | (1L << (OR - 64)) | (1L << (OUTPUT - 64)) | (1L << (PARAMARRAY - 64)) | (1L << (PRESERVE - 64)) | (1L << (PRINT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)) | (1L << (SETATTR - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TIME - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)) | (1L << (UNLOAD - 128)) | (1L << (UNLOCK - 128)) | (1L << (UNTIL - 128)) | (1L << (VARIANT - 128)) | (1L << (VERSION - 128)) | (1L << (WEND - 128)) | (1L << (WHILE - 128)) | (1L << (WIDTH - 128)) | (1L << (WITH - 128)) | (1L << (WITHEVENTS - 128)) | (1L << (WRITE - 128)) | (1L << (XOR - 128)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -15119,11 +14537,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemCommentContext remComment() { RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 286, RULE_remComment); + EnterRule(_localctx, 274, RULE_remComment); try { EnterOuterAlt(_localctx, 1); { - State = 2479; Match(REMCOMMENT); + State = 2392; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -15162,11 +14580,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CommentContext comment() { CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 288, RULE_comment); + EnterRule(_localctx, 276, RULE_comment); try { EnterOuterAlt(_localctx, 1); { - State = 2481; Match(COMMENT); + State = 2394; Match(COMMENT); } } catch (RecognitionException re) { @@ -15215,44 +14633,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfLineContext endOfLine() { EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 290, RULE_endOfLine); + EnterRule(_localctx, 278, RULE_endOfLine); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2484; + State = 2397; _la = _input.La(1); if (_la==WS) { { - State = 2483; Match(WS); + State = 2396; Match(WS); } } - State = 2489; + State = 2402; switch (_input.La(1)) { case NEWLINE: { - State = 2486; Match(NEWLINE); + State = 2399; Match(NEWLINE); } break; case COMMENT: { - State = 2487; comment(); + State = 2400; comment(); } break; case REMCOMMENT: { - State = 2488; remComment(); + State = 2401; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2492; - switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { + State = 2405; + switch ( Interpreter.AdaptivePredict(_input,404,_ctx) ) { case 1: { - State = 2491; Match(WS); + State = 2404; Match(WS); } break; } @@ -15307,42 +14725,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfStatementContext endOfStatement() { EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 292, RULE_endOfStatement); + EnterRule(_localctx, 280, RULE_endOfStatement); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2504; + State = 2417; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,422,_ctx); + _alt = Interpreter.AdaptivePredict(_input,408,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2502; - switch ( Interpreter.AdaptivePredict(_input,421,_ctx) ) { + State = 2415; + switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { case 1: { - State = 2494; endOfLine(); + State = 2407; endOfLine(); } break; case 2: { - State = 2496; + State = 2409; _la = _input.La(1); if (_la==WS) { { - State = 2495; Match(WS); + State = 2408; Match(WS); } } - State = 2498; Match(COLON); - State = 2500; - switch ( Interpreter.AdaptivePredict(_input,420,_ctx) ) { + State = 2411; Match(COLON); + State = 2413; + switch ( Interpreter.AdaptivePredict(_input,406,_ctx) ) { case 1: { - State = 2499; Match(WS); + State = 2412; Match(WS); } break; } @@ -15351,9 +14769,9 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2506; + State = 2419; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,422,_ctx); + _alt = Interpreter.AdaptivePredict(_input,408,_ctx); } } } @@ -15370,7 +14788,7 @@ public EndOfStatementContext endOfStatement() { public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 100: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + case 94: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); } return true; } @@ -15404,7 +14822,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF5\x9CE\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF0\x977\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -15424,1157 +14842,1097 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4\x82"+ "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ "\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C\x4\x8D"+ - "\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92\t\x92"+ - "\x4\x93\t\x93\x4\x94\t\x94\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x12D\n\x3\x3"+ - "\x3\x3\x3\x3\x3\x3\x3\x5\x3\x133\n\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3\x3"+ - "\x5\x3\x13A\n\x3\x3\x3\x3\x3\x5\x3\x13E\n\x3\x3\x3\x3\x3\x5\x3\x142\n"+ - "\x3\x3\x3\x3\x3\x5\x3\x146\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3"+ - "\x5\x3\x5\x3\x5\x6\x5\x151\n\x5\r\x5\xE\x5\x152\x3\x5\x3\x5\x3\x6\x3\x6"+ - "\x5\x6\x159\n\x6\x3\x6\x3\x6\x5\x6\x15D\n\x6\x3\x6\x3\x6\x3\x6\x3\a\x3"+ - "\a\x3\a\x6\a\x165\n\a\r\a\xE\a\x166\x3\b\x3\b\x3\b\x3\b\a\b\x16D\n\b\f"+ - "\b\xE\b\x170\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5"+ - "\t\x17C\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x187\n\n"+ - "\x3\v\x3\v\x5\v\x18B\n\v\x3\f\x3\f\x3\f\x3\f\a\f\x191\n\f\f\f\xE\f\x194"+ - "\v\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\r\x3\r\x5\r\x19E\n\r\x3\xE\x3\xE"+ - "\x3\xE\x3\xE\x5\xE\x1A4\n\xE\x3\xE\x3\xE\x5\xE\x1A8\n\xE\x3\xE\x3\xE\x5"+ - "\xE\x1AC\n\xE\x3\xE\x3\xE\x5\xE\x1B0\n\xE\x3\xE\a\xE\x1B3\n\xE\f\xE\xE"+ - "\xE\x1B6\v\xE\x3\xF\x3\xF\x3\xF\x3\xF\a\xF\x1BC\n\xF\f\xF\xE\xF\x1BF\v"+ - "\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x3\x10\x5\x10"+ - "\x206\n\x10\x3\x11\x3\x11\x3\x11\x3\x11\x5\x11\x20C\n\x11\x3\x11\x3\x11"+ - "\x5\x11\x210\n\x11\x3\x11\x5\x11\x213\n\x11\x3\x12\x3\x12\x3\x13\x3\x13"+ - "\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15"+ - "\x5\x15\x223\n\x15\x3\x15\x3\x15\x5\x15\x227\n\x15\x3\x15\a\x15\x22A\n"+ - "\x15\f\x15\xE\x15\x22D\v\x15\x5\x15\x22F\n\x15\x3\x16\x3\x16\x3\x16\x5"+ - "\x16\x234\n\x16\x3\x16\x3\x16\x3\x16\x3\x16\x5\x16\x23A\n\x16\x3\x16\x3"+ - "\x16\x5\x16\x23E\n\x16\x3\x16\a\x16\x241\n\x16\f\x16\xE\x16\x244\v\x16"+ - "\x3\x17\x3\x17\x5\x17\x248\n\x17\x3\x17\x3\x17\x5\x17\x24C\n\x17\x3\x17"+ - "\x5\x17\x24F\n\x17\x3\x17\x3\x17\x5\x17\x253\n\x17\x3\x17\x3\x17\x3\x18"+ - "\x3\x18\x5\x18\x259\n\x18\x3\x18\x3\x18\x5\x18\x25D\n\x18\x3\x18\x3\x18"+ - "\x3\x19\x3\x19\x3\x19\x5\x19\x264\n\x19\x3\x19\x3\x19\x3\x19\x3\x19\x5"+ - "\x19\x26A\n\x19\x3\x19\x3\x19\x5\x19\x26E\n\x19\x3\x19\x5\x19\x271\n\x19"+ - "\x3\x19\x3\x19\x3\x19\x5\x19\x276\n\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3"+ - "\x19\x3\x19\x3\x19\x3\x19\x5\x19\x280\n\x19\x3\x19\x5\x19\x283\n\x19\x3"+ - "\x19\x5\x19\x286\n\x19\x3\x19\x3\x19\x5\x19\x28A\n\x19\x3\x1A\x3\x1A\x3"+ - "\x1A\x3\x1A\x5\x1A\x290\n\x1A\x3\x1A\x3\x1A\x5\x1A\x294\n\x1A\x3\x1A\a"+ - "\x1A\x297\n\x1A\f\x1A\xE\x1A\x29A\v\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5"+ - "\x1B\x2A0\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2A4\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2A8"+ - "\n\x1B\x3\x1B\x3\x1B\x5\x1B\x2AC\n\x1B\x3\x1B\x5\x1B\x2AF\n\x1B\x3\x1C"+ - "\x3\x1C\x3\x1C\x5\x1C\x2B4\n\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3"+ - "\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2BF\n\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C"+ - "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2CC\n\x1C\x3"+ - "\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x5\x1E\x2D3\n\x1E\x3\x1E\x3\x1E\x3\x1E"+ - "\x3\x1E\x3\x1E\a\x1E\x2DA\n\x1E\f\x1E\xE\x1E\x2DD\v\x1E\x3\x1E\x3\x1E"+ - "\x3\x1F\x3\x1F\x5\x1F\x2E3\n\x1F\x3\x1F\x3\x1F\x5\x1F\x2E7\n\x1F\x3\x1F"+ - "\x5\x1F\x2EA\n\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3\""+ - "\x3\"\x3\"\x5\"\x2F9\n\"\x3\"\x3\"\x3\"\x3\"\x5\"\x2FF\n\"\x3\"\x3\"\x3"+ - "#\x3#\x3$\x3$\x3$\x3$\x5$\x309\n$\x3$\x3$\x5$\x30D\n$\x3$\x3$\x3%\x3%"+ - "\x3%\x3%\x3%\x3%\x5%\x317\n%\x3%\x3%\x3%\x3%\x3%\x3%\x5%\x31F\n%\x3%\x3"+ - "%\x3%\x5%\x324\n%\x3&\x3&\x3&\x3&\x5&\x32A\n&\x3&\x3&\x5&\x32E\n&\x3&"+ - "\x5&\x331\n&\x3&\x3&\x5&\x335\n&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x5"+ - "&\x340\n&\x3&\x3&\x5&\x344\n&\x3&\x3&\x3&\x5&\x349\n&\x3\'\x3\'\x3\'\x5"+ - "\'\x34E\n\'\x3\'\x3\'\x5\'\x352\n\'\x3\'\x3\'\x5\'\x356\n\'\x3\'\x3\'"+ - "\x5\'\x35A\n\'\x3\'\x5\'\x35D\n\'\x3\'\x5\'\x360\n\'\x3\'\x5\'\x363\n"+ - "\'\x3\'\x5\'\x366\n\'\x3\'\x3\'\x5\'\x36A\n\'\x3\'\x3\'\x3(\x3(\x3(\x3"+ - "(\x5(\x372\n(\x3(\x3(\x5(\x376\n(\x3(\x5(\x379\n(\x3(\x5(\x37C\n(\x3("+ - "\x3(\x5(\x380\n(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3"+ - "+\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x5+\x397\n+\x3+\x3+\a+\x39B\n+\f+\xE+\x39E"+ - "\v+\x3+\x5+\x3A1\n+\x3+\x3+\x5+\x3A5\n+\x3,\x3,\x3,\x3,\x3,\x3,\x3,\x5"+ - ",\x3AE\n,\x3-\x3-\x3.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3B9\n.\x3/\x3/\x3/"+ - "\x5/\x3BE\n/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x31\x3\x31\x3\x31\x3\x31\x5"+ - "\x31\x3C8\n\x31\x3\x31\x3\x31\x5\x31\x3CC\n\x31\x3\x31\x6\x31\x3CF\n\x31"+ - "\r\x31\xE\x31\x3D0\x3\x32\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x5\x33\x3D9"+ - "\n\x33\x3\x33\x3\x33\x5\x33\x3DD\n\x33\x3\x33\x3\x33\x5\x33\x3E1\n\x33"+ - "\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x3E9\n\x34\x3\x34\x3"+ - "\x34\x5\x34\x3ED\n\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3\x35\x3\x35\x3\x36"+ + "\t\x8D\x4\x8E\t\x8E\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x121\n\x3\x3\x3\x3\x3"+ + "\x3\x3\x3\x3\x5\x3\x127\n\x3\x3\x3\x5\x3\x12A\n\x3\x3\x3\x3\x3\x5\x3\x12E"+ + "\n\x3\x3\x3\x3\x3\x5\x3\x132\n\x3\x3\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3"+ + "\x3\x5\x3\x13A\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3"+ + "\x5\x6\x5\x145\n\x5\r\x5\xE\x5\x146\x3\x5\x3\x5\x3\x6\x3\x6\x5\x6\x14D"+ + "\n\x6\x3\x6\x3\x6\x5\x6\x151\n\x6\x3\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x6"+ + "\a\x159\n\a\r\a\xE\a\x15A\x3\b\x3\b\x3\b\x3\b\a\b\x161\n\b\f\b\xE\b\x164"+ + "\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x170\n\t\x3"+ + "\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x17A\n\n\x3\v\x3\v\x3\v\x3"+ + "\v\a\v\x180\n\v\f\v\xE\v\x183\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5"+ + "\f\x18C\n\f\x3\r\x3\r\x3\r\x3\r\x5\r\x192\n\r\x3\r\x3\r\x5\r\x196\n\r"+ + "\x3\r\x3\r\x5\r\x19A\n\r\x3\r\x3\r\x5\r\x19E\n\r\x3\r\a\r\x1A1\n\r\f\r"+ + "\xE\r\x1A4\v\r\x3\xE\x3\xE\x3\xE\x3\xE\a\xE\x1AA\n\xE\f\xE\xE\xE\x1AD"+ + "\v\xE\x3\xE\x3\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5"+ + "\xF\x1F3\n\xF\x3\x10\x3\x10\x3\x10\x3\x10\x5\x10\x1F9\n\x10\x3\x10\x3"+ + "\x10\x5\x10\x1FD\n\x10\x3\x10\x5\x10\x200\n\x10\x3\x11\x3\x11\x3\x12\x3"+ + "\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3"+ + "\x14\x5\x14\x210\n\x14\x3\x14\x3\x14\x5\x14\x214\n\x14\x3\x14\a\x14\x217"+ + "\n\x14\f\x14\xE\x14\x21A\v\x14\x5\x14\x21C\n\x14\x3\x15\x3\x15\x3\x15"+ + "\x5\x15\x221\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x227\n\x15\x3\x15"+ + "\x3\x15\x5\x15\x22B\n\x15\x3\x15\a\x15\x22E\n\x15\f\x15\xE\x15\x231\v"+ + "\x15\x3\x16\x3\x16\x5\x16\x235\n\x16\x3\x16\x3\x16\x5\x16\x239\n\x16\x3"+ + "\x16\x5\x16\x23C\n\x16\x3\x16\x3\x16\x5\x16\x240\n\x16\x3\x16\x3\x16\x3"+ + "\x17\x3\x17\x5\x17\x246\n\x17\x3\x17\x3\x17\x5\x17\x24A\n\x17\x3\x17\x3"+ + "\x17\x3\x18\x3\x18\x3\x18\x5\x18\x251\n\x18\x3\x18\x3\x18\x3\x18\x3\x18"+ + "\x5\x18\x257\n\x18\x3\x18\x3\x18\x5\x18\x25B\n\x18\x3\x18\x5\x18\x25E"+ + "\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x263\n\x18\x3\x18\x3\x18\x3\x18\x3"+ + "\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x26D\n\x18\x3\x18\x5\x18\x270"+ + "\n\x18\x3\x18\x5\x18\x273\n\x18\x3\x18\x3\x18\x5\x18\x277\n\x18\x3\x19"+ + "\x3\x19\x3\x19\x3\x19\x5\x19\x27D\n\x19\x3\x19\x3\x19\x5\x19\x281\n\x19"+ + "\x3\x19\a\x19\x284\n\x19\f\x19\xE\x19\x287\v\x19\x3\x1A\x3\x1A\x3\x1A"+ + "\x3\x1A\x5\x1A\x28D\n\x1A\x3\x1A\x3\x1A\x5\x1A\x291\n\x1A\x3\x1A\x3\x1A"+ + "\x5\x1A\x295\n\x1A\x3\x1A\x3\x1A\x5\x1A\x299\n\x1A\x3\x1A\x5\x1A\x29C"+ + "\n\x1A\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2A1\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ + "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2AC\n\x1B\x3\x1B\x3\x1B"+ + "\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B"+ + "\x2B9\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x2C0\n\x1D\x3\x1D"+ + "\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x2C7\n\x1D\f\x1D\xE\x1D\x2CA\v\x1D"+ + "\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x2D0\n\x1E\x3\x1E\x3\x1E\x5\x1E\x2D4"+ + "\n\x1E\x3\x1E\x5\x1E\x2D7\n\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3"+ + "\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x5!\x2E6\n!\x3!\x3!\x3!\x3!\x5!\x2EC"+ + "\n!\x3!\x3!\x3\"\x3\"\x3#\x3#\x3#\x3#\x5#\x2F6\n#\x3#\x3#\x5#\x2FA\n#"+ + "\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x304\n$\x3$\x3$\x3$\x3$\x3$\x3$\x5"+ + "$\x30C\n$\x3$\x3$\x3$\x5$\x311\n$\x3%\x3%\x3%\x3%\x5%\x317\n%\x3%\x3%"+ + "\x5%\x31B\n%\x3%\x5%\x31E\n%\x3%\x3%\x5%\x322\n%\x3%\x3%\x3%\x3%\x3%\x3"+ + "%\x3%\x3%\x3%\x5%\x32D\n%\x3%\x3%\x5%\x331\n%\x3%\x3%\x3%\x5%\x336\n%"+ + "\x3&\x3&\x3&\x5&\x33B\n&\x3&\x3&\x5&\x33F\n&\x3&\x3&\x5&\x343\n&\x3&\x3"+ + "&\x5&\x347\n&\x3&\x5&\x34A\n&\x3&\x5&\x34D\n&\x3&\x5&\x350\n&\x3&\x5&"+ + "\x353\n&\x3&\x3&\x5&\x357\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x35F\n\'"+ + "\x3\'\x3\'\x5\'\x363\n\'\x3\'\x5\'\x366\n\'\x3\'\x5\'\x369\n\'\x3\'\x3"+ + "\'\x5\'\x36D\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3"+ + "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x384\n*\x3*\x3*\a*\x388\n*\f*\xE"+ + "*\x38B\v*\x3*\x5*\x38E\n*\x3*\x3*\x5*\x392\n*\x3+\x3+\x3+\x3+\x3+\x3+"+ + "\x3+\x5+\x39B\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3A6\n-\x3.\x3"+ + ".\x3.\x5.\x3AB\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30\x3B5"+ + "\n\x30\x3\x30\x3\x30\x5\x30\x3B9\n\x30\x3\x30\x6\x30\x3BC\n\x30\r\x30"+ + "\xE\x30\x3BD\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5\x32\x3C6\n\x32"+ + "\x3\x32\x3\x32\x5\x32\x3CA\n\x32\x3\x32\x3\x32\x5\x32\x3CE\n\x32\x3\x32"+ + "\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x3D6\n\x33\x3\x33\x3\x33\x5"+ + "\x33\x3DA\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35"+ + "\x3\x35\x3\x35\x5\x35\x3E6\n\x35\x3\x35\x3\x35\x5\x35\x3EA\n\x35\x3\x35"+ + "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x3F1\n\x35\x5\x35\x3F3\n\x35\x3\x36"+ "\x3\x36\x3\x36\x3\x36\x5\x36\x3F9\n\x36\x3\x36\x3\x36\x5\x36\x3FD\n\x36"+ - "\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x404\n\x36\x5\x36\x406\n\x36"+ - "\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x40C\n\x37\x3\x37\x3\x37\x5\x37\x410"+ - "\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x5\x38\x416\n\x38\x3\x38\x3\x38\x5"+ - "\x38\x41A\n\x38\x3\x38\x3\x38\x5\x38\x41E\n\x38\x3\x38\x3\x38\x3\x39\x3"+ - "\x39\a\x39\x424\n\x39\f\x39\xE\x39\x427\v\x39\x3\x39\x5\x39\x42A\n\x39"+ - "\x3\x39\x3\x39\x3:\x3:\x5:\x430\n:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\a:\x439"+ - "\n:\f:\xE:\x43C\v:\x3;\x3;\x5;\x440\n;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\a;"+ - "\x449\n;\f;\xE;\x44C\v;\x3<\x3<\x3<\x3<\x3<\a<\x453\n<\f<\xE<\x456\v<"+ - "\x3=\x3=\x5=\x45A\n=\x3=\x3=\x5=\x45E\n=\x3=\x3=\x5=\x462\n=\x3=\x3=\x3"+ - ">\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3?\x3?\x3?\x3?\x3@\x3@\x3@\x3@\x3@\x3@"+ - "\x3@\x3@\x5@\x47A\n@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41"+ - "\x3\x41\x5\x41\x484\n\x41\x3\x41\x3\x41\x5\x41\x488\n\x41\x3\x41\a\x41"+ - "\x48B\n\x41\f\x41\xE\x41\x48E\v\x41\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42"+ - "\x3\x42\x3\x42\x3\x42\x5\x42\x498\n\x42\x3\x42\x3\x42\x5\x42\x49C\n\x42"+ - "\x3\x42\a\x42\x49F\n\x42\f\x42\xE\x42\x4A2\v\x42\x3\x43\x3\x43\x3\x43"+ - "\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x4AF\n"+ - "\x43\x3\x43\x3\x43\x5\x43\x4B3\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x3\x43"+ - "\x3\x43\x3\x43\x5\x43\x4BC\n\x43\x3\x43\x3\x43\x5\x43\x4C0\n\x43\x3\x43"+ - "\x5\x43\x4C3\n\x43\x3\x44\x3\x44\x5\x44\x4C7\n\x44\x3\x44\x3\x44\x5\x44"+ - "\x4CB\n\x44\x3\x44\x5\x44\x4CE\n\x44\a\x44\x4D0\n\x44\f\x44\xE\x44\x4D3"+ - "\v\x44\x3\x44\x5\x44\x4D6\n\x44\x3\x44\x5\x44\x4D9\n\x44\x3\x44\x3\x44"+ - "\x5\x44\x4DD\n\x44\x3\x44\x5\x44\x4E0\n\x44\x6\x44\x4E2\n\x44\r\x44\xE"+ - "\x44\x4E3\x5\x44\x4E6\n\x44\x3\x45\x3\x45\x3\x45\x5\x45\x4EB\n\x45\x3"+ - "\x45\x3\x45\x5\x45\x4EF\n\x45\x3\x45\x3\x45\x5\x45\x4F3\n\x45\x3\x45\x3"+ - "\x45\x5\x45\x4F7\n\x45\x5\x45\x4F9\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5"+ - "\x46\x4FF\n\x46\x3\x46\x3\x46\x5\x46\x503\n\x46\x3\x46\x5\x46\x506\n\x46"+ - "\x3G\x3G\x3G\x5G\x50B\nG\x3G\x3G\x5G\x50F\nG\x3G\x3G\x3G\x3G\x5G\x515"+ - "\nG\x3G\x5G\x518\nG\x3G\x5G\x51B\nG\x3G\x3G\x5G\x51F\nG\x3G\x3G\x5G\x523"+ - "\nG\x3G\x3G\x3H\x3H\x3H\x5H\x52A\nH\x3H\x3H\x5H\x52E\nH\x3H\x3H\x3H\x3"+ - "H\x5H\x534\nH\x3H\x5H\x537\nH\x3H\x3H\x5H\x53B\nH\x3H\x3H\x3I\x3I\x3I"+ - "\x5I\x542\nI\x3I\x3I\x5I\x546\nI\x3I\x3I\x3I\x3I\x5I\x54C\nI\x3I\x5I\x54F"+ - "\nI\x3I\x3I\x5I\x553\nI\x3I\x3I\x3J\x3J\x3J\x3J\x5J\x55B\nJ\x3J\x3J\x5"+ - "J\x55F\nJ\x3J\x5J\x562\nJ\x3J\x5J\x565\nJ\x3J\x3J\x5J\x569\nJ\x3J\x3J"+ - "\x3K\x3K\x3K\x3K\x5K\x571\nK\x3K\x3K\x5K\x575\nK\x3K\x3K\x5K\x579\nK\x5"+ - "K\x57B\nK\x3K\x5K\x57E\nK\x3L\x3L\x3L\x5L\x583\nL\x3M\x3M\x3M\x3M\x5M"+ - "\x589\nM\x3M\x3M\x5M\x58D\nM\x3M\x3M\x5M\x591\nM\x3M\aM\x594\nM\fM\xE"+ - "M\x597\vM\x3N\x3N\x5N\x59B\nN\x3N\x3N\x5N\x59F\nN\x3N\x3N\x5N\x5A3\nN"+ - "\x3N\x3N\x3N\x5N\x5A8\nN\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5B0\nP\x5P\x5B2"+ - "\nP\x3Q\x3Q\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3S\x5S\x5BE\nS\x3S\x3S\x5S\x5C2"+ - "\nS\x3S\x3S\x3T\x3T\x3T\x3T\x5T\x5CA\nT\x3T\x3T\x5T\x5CE\nT\x3T\x3T\x3"+ - "U\x3U\x3U\x3U\x5U\x5D6\nU\x3U\x3U\x5U\x5DA\nU\x3U\x3U\x5U\x5DE\nU\x3U"+ - "\x3U\x5U\x5E2\nU\x3U\x3U\x5U\x5E6\nU\x3U\x3U\x5U\x5EA\nU\x3U\x3U\x3V\x3"+ - "V\x3V\x3V\x5V\x5F2\nV\x3V\x3V\x5V\x5F6\nV\x3V\x3V\x3W\x3W\x3W\x3W\x3W"+ - "\x3W\x3W\aW\x601\nW\fW\xEW\x604\vW\x3W\x3W\x3X\x3X\x5X\x60A\nX\x3X\x3"+ - "X\x5X\x60E\nX\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x5X\x619\nX\x3Y\x3Y"+ - "\x3Y\x3Y\x3Y\x5Y\x620\nY\x3Z\x3Z\x3Z\x5Z\x625\nZ\x3Z\x3Z\x5Z\x629\nZ\x3"+ - "Z\aZ\x62C\nZ\fZ\xEZ\x62F\vZ\x5Z\x631\nZ\x3[\x3[\x3[\x3[\x5[\x637\n[\x3"+ - "[\x3[\x5[\x63B\n[\x3[\x5[\x63E\n[\x3\\\x3\\\x3\\\x3\\\x5\\\x644\n\\\x3"+ - "\\\x3\\\x5\\\x648\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x5]\x650\n]\x3]\x3]\x5"+ - "]\x654\n]\x3]\x3]\x3^\x3^\x3_\x3_\x3_\x5_\x65D\n_\x3_\x3_\x5_\x661\n_"+ - "\x3_\x3_\x5_\x665\n_\x3_\x3_\x5_\x669\n_\x3_\x5_\x66C\n_\x3_\x3_\x5_\x670"+ - "\n_\x3_\x3_\x3`\x3`\x5`\x676\n`\x3`\x3`\x5`\x67A\n`\x3`\x3`\x3\x61\x3"+ - "\x61\x3\x61\x5\x61\x681\n\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\a\x61"+ - "\x688\n\x61\f\x61\xE\x61\x68B\v\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62"+ - "\x691\n\x62\x3\x62\x3\x62\x5\x62\x695\n\x62\x3\x62\x5\x62\x698\n\x62\x3"+ - "\x62\x5\x62\x69B\n\x62\x3\x62\x5\x62\x69E\n\x62\x3\x62\x3\x62\x5\x62\x6A2"+ - "\n\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63"+ - "\x5\x63\x6AD\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3"+ - "\x65\x5\x65\x6B7\n\x65\x3\x65\x3\x65\x5\x65\x6BB\n\x65\x3\x65\x3\x65\x3"+ - "\x65\x3\x65\x3\x65\x5\x65\x6C2\n\x65\x5\x65\x6C4\n\x65\x3\x66\x3\x66\x3"+ - "\x66\x5\x66\x6C9\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6CE\n\x66\x3\x66\x3"+ - "\x66\x3\x66\x5\x66\x6D3\n\x66\x3\x66\x3\x66\x5\x66\x6D7\n\x66\x3\x66\x3"+ - "\x66\x3\x66\x3\x66\x5\x66\x6DD\n\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6E2"+ - "\n\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6E9\n\x66\x3\x66\x3"+ - "\x66\x5\x66\x6ED\n\x66\x3\x66\x3\x66\x5\x66\x6F1\n\x66\x3\x66\a\x66\x6F4"+ - "\n\x66\f\x66\xE\x66\x6F7\v\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x6FD"+ - "\n\x66\x3\x66\x3\x66\x5\x66\x701\n\x66\x3\x66\x3\x66\x5\x66\x705\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x70A\n\x66\x3\x66\x3\x66\x5\x66\x70E\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x713\n\x66\x3\x66\x3\x66\x5\x66\x717\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x71C\n\x66\x3\x66\x3\x66\x5\x66\x720\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x725\n\x66\x3\x66\x3\x66\x5\x66\x729\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x72E\n\x66\x3\x66\x3\x66\x5\x66\x732\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x737\n\x66\x3\x66\x3\x66\x5\x66\x73B\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x740\n\x66\x3\x66\x3\x66\x5\x66\x744\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x749\n\x66\x3\x66\x3\x66\x5\x66\x74D\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x752\n\x66\x3\x66\x3\x66\x5\x66\x756\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x75B\n\x66\x3\x66\x3\x66\x5\x66\x75F\n\x66"+ - "\x3\x66\x3\x66\x3\x66\x5\x66\x764\n\x66\x3\x66\x3\x66\x5\x66\x768\n\x66"+ - "\x3\x66\a\x66\x76B\n\x66\f\x66\xE\x66\x76E\v\x66\x3g\x3g\x3g\x5g\x773"+ - "\ng\x3g\x3g\x3g\x5g\x778\ng\x3g\x3g\x3h\x3h\x5h\x77E\nh\x3h\x3h\x5h\x782"+ - "\nh\x3h\ah\x785\nh\fh\xEh\x788\vh\x3i\x3i\x5i\x78C\ni\x3i\x3i\x5i\x790"+ - "\ni\x3i\x3i\x5i\x794\ni\x5i\x796\ni\x3i\x3i\x5i\x79A\ni\x5i\x79C\ni\x3"+ - "i\x5i\x79F\ni\x3i\x3i\x5i\x7A3\ni\x3j\x3j\x3j\x3j\x3j\x5j\x7AA\nj\x3j"+ - "\x3j\x3k\x3k\x3k\x3k\x5k\x7B2\nk\x3k\x3k\x5k\x7B6\nk\x3k\x3k\x3l\x3l\x3"+ - "l\x3l\x3l\x3l\x5l\x7C0\nl\x3l\x3l\x5l\x7C4\nl\x3l\x3l\x3m\x3m\x3m\x3m"+ - "\x5m\x7CC\nm\x3m\x3m\x5m\x7D0\nm\x3m\x5m\x7D3\nm\x3n\x5n\x7D6\nn\x3n\x3"+ - "n\x3o\x3o\x5o\x7DC\no\x3p\x3p\x3p\x3p\x5p\x7E2\np\x3p\x5p\x7E5\np\x3p"+ - "\x3p\x5p\x7E9\np\x3p\x3p\x5p\x7ED\np\x3p\x3p\x5p\x7F1\np\x3p\x5p\x7F4"+ - "\np\x3p\x3p\x3p\x3p\ap\x7FA\np\fp\xEp\x7FD\vp\x3q\x3q\x3q\x5q\x802\nq"+ - "\x3q\x3q\x3q\x5q\x807\nq\x3q\x5q\x80A\nq\x3q\x3q\x5q\x80E\nq\x3q\x3q\x5"+ - "q\x812\nq\x3q\x3q\x5q\x816\nq\x3q\x5q\x819\nq\x3q\x3q\x3q\x3q\aq\x81F"+ - "\nq\fq\xEq\x822\vq\x3r\x3r\x5r\x826\nr\x3s\x5s\x829\ns\x3s\x3s\x3s\x5"+ - "s\x82E\ns\x3s\x3s\x5s\x832\ns\x3s\x5s\x835\ns\x3s\x5s\x838\ns\x3s\x5s"+ - "\x83B\ns\x3s\x3s\x3s\x3s\as\x841\ns\fs\xEs\x844\vs\x3t\x3t\x3t\x5t\x849"+ - "\nt\x3t\x5t\x84C\nt\x3t\x3t\x3t\x3t\at\x852\nt\ft\xEt\x855\vt\x3u\x3u"+ - "\x3u\x3u\x5u\x85B\nu\x3v\x3v\x5v\x85F\nv\x3v\x5v\x862\nv\x3v\x5v\x865"+ - "\nv\x3v\x5v\x868\nv\x3v\x3v\x3v\x3v\av\x86E\nv\fv\xEv\x871\vv\x3w\x3w"+ - "\x5w\x875\nw\x3w\x5w\x878\nw\x3w\x5w\x87B\nw\x3w\x3w\x5w\x87F\nw\x3w\x3"+ - "w\x5w\x883\nw\x5w\x885\nw\x3w\x3w\x5w\x889\nw\x3w\x5w\x88C\nw\x3w\x5w"+ - "\x88F\nw\x3w\x3w\x3w\x3w\aw\x895\nw\fw\xEw\x898\vw\x3x\x3x\x5x\x89C\n"+ - "x\x3x\x3x\x5x\x8A0\nx\x6x\x8A2\nx\rx\xEx\x8A3\x3x\x5x\x8A7\nx\x3x\x5x"+ - "\x8AA\nx\x3x\x5x\x8AD\nx\x3x\x3x\x3x\x3x\ax\x8B3\nx\fx\xEx\x8B6\vx\x3"+ - "y\x3y\x5y\x8BA\ny\x3y\x3y\x5y\x8BE\ny\x3z\x5z\x8C1\nz\x3z\x3z\x3{\x5{"+ - "\x8C6\n{\x3{\x5{\x8C9\n{\x3{\x3{\x5{\x8CD\n{\a{\x8CF\n{\f{\xE{\x8D2\v"+ - "{\x3{\x3{\x5{\x8D6\n{\x3{\x3{\x5{\x8DA\n{\x3{\x5{\x8DD\n{\a{\x8DF\n{\f"+ - "{\xE{\x8E2\v{\x3|\x5|\x8E5\n|\x3|\x3|\x5|\x8E9\n|\x3|\x5|\x8EC\n|\x3|"+ - "\x3|\x3}\x3}\x5}\x8F2\n}\x3}\x3}\x5}\x8F6\n}\x3~\x3~\x5~\x8FA\n~\x3~\x3"+ - "~\x5~\x8FE\n~\x3~\x3~\x5~\x902\n~\x3~\a~\x905\n~\f~\xE~\x908\v~\x5~\x90A"+ - "\n~\x3~\x5~\x90D\n~\x3~\x3~\x3\x7F\x3\x7F\x5\x7F\x913\n\x7F\x3\x7F\x3"+ - "\x7F\x5\x7F\x917\n\x7F\x3\x7F\x3\x7F\x5\x7F\x91B\n\x7F\x3\x7F\x3\x7F\x5"+ - "\x7F\x91F\n\x7F\x3\x7F\x5\x7F\x922\n\x7F\x3\x7F\x3\x7F\x5\x7F\x926\n\x7F"+ - "\x3\x7F\x5\x7F\x929\n\x7F\x3\x7F\x5\x7F\x92C\n\x7F\x3\x7F\x5\x7F\x92F"+ - "\n\x7F\x3\x7F\x5\x7F\x932\n\x7F\x3\x7F\x5\x7F\x935\n\x7F\x3\x80\x3\x80"+ - "\x5\x80\x939\n\x80\x3\x80\x3\x80\x3\x81\x3\x81\x5\x81\x93F\n\x81\x3\x81"+ - "\x3\x81\x5\x81\x943\n\x81\x3\x81\a\x81\x946\n\x81\f\x81\xE\x81\x949\v"+ - "\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x5\x82\x950\n\x82\x3\x82\x3\x82"+ - "\x3\x83\x3\x83\x6\x83\x956\n\x83\r\x83\xE\x83\x957\x3\x84\x3\x84\x5\x84"+ - "\x95C\n\x84\x3\x84\x3\x84\x5\x84\x960\n\x84\x3\x84\x3\x84\x5\x84\x964"+ - "\n\x84\x3\x84\x5\x84\x967\n\x84\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\a\x86"+ - "\x96E\n\x86\f\x86\xE\x86\x971\v\x86\x3\x86\x3\x86\x3\x86\x6\x86\x976\n"+ - "\x86\r\x86\xE\x86\x977\x5\x86\x97A\n\x86\x3\x87\x3\x87\x3\x88\x3\x88\x3"+ - "\x88\a\x88\x981\n\x88\f\x88\xE\x88\x984\v\x88\x3\x89\x3\x89\x5\x89\x988"+ - "\n\x89\x3\x89\x3\x89\x5\x89\x98C\n\x89\x3\x8A\x3\x8A\x5\x8A\x990\n\x8A"+ - "\x3\x8A\x3\x8A\x5\x8A\x994\n\x8A\x3\x8A\x5\x8A\x997\n\x8A\x3\x8B\x3\x8B"+ - "\x3\x8B\x3\x8C\x3\x8C\x3\x8D\x3\x8D\x5\x8D\x9A0\n\x8D\x3\x8D\x5\x8D\x9A3"+ - "\n\x8D\x3\x8D\x3\x8D\x5\x8D\x9A7\n\x8D\x3\x8D\x5\x8D\x9AA\n\x8D\x3\x8E"+ - "\x3\x8E\x3\x8F\x3\x8F\x3\x90\x3\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x93"+ - "\x5\x93\x9B7\n\x93\x3\x93\x3\x93\x3\x93\x5\x93\x9BC\n\x93\x3\x93\x5\x93"+ - "\x9BF\n\x93\x3\x94\x3\x94\x5\x94\x9C3\n\x94\x3\x94\x3\x94\x5\x94\x9C7"+ - "\n\x94\a\x94\x9C9\n\x94\f\x94\xE\x94\x9CC\v\x94\x3\x94\x2\x2\x3\xCA\x95"+ - "\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18"+ - "\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2"+ - "\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2"+ - "N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2"+ - "l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88"+ - "\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C"+ - "\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0"+ - "\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4"+ - "\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8"+ - "\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC"+ - "\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100"+ - "\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112"+ - "\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E\x2\x120\x2\x122\x2\x124"+ - "\x2\x126\x2\x2\x17\x5\x2\x15\x15\"\"\xAA\xAA\x3\x2%\x30\x4\x2\xB3\xB3"+ - "\xB7\xB7\x3\x2GK\x3\x2z{\a\x2\x11\x11\x15\x15YY\x83\x83\x8E\x8E\x4\x2"+ - "\x91\x92\xBB\xBB\x4\x2\x66h\xA1\xA1\x3\x2\b\t\x4\x2\xA3\xA3\xA9\xA9\x4"+ - "\x2\xBF\xBF\xC8\xC8\x4\x2\xC7\xC7\xCA\xCA\a\x2ZZ\x64\x64\xC1\xC4\xC6\xC6"+ - "\xC9\xC9\x4\x2\x4\x4\n\n\x4\x2\x17\x18\x84\x84\x3\x2\x17\x18\f\x2\x16"+ - "\x16\x19\x19 ##\x34\x34[[__\xA2\xA2\xA7\xA7\xB4\xB4\a\x2\x38\x38LLwx"+ - "\xAE\xAE\xCF\xD5\x4\x2\x3\a\xBD\xBD\x6\x2NNRR\x87\x87\x8C\x8C\v\x2\v\x37"+ - "\x41\x46L\x64iioy|}\x82\x87\x8C\x91\x93\xBC\xB4B\x2\x128\x3\x2\x2\x2\x4"+ - "\x12C\x3\x2\x2\x2\x6\x147\x3\x2\x2\x2\b\x14D\x3\x2\x2\x2\n\x156\x3\x2"+ - "\x2\x2\f\x164\x3\x2\x2\x2\xE\x168\x3\x2\x2\x2\x10\x17B\x3\x2\x2\x2\x12"+ - "\x186\x3\x2\x2\x2\x14\x18A\x3\x2\x2\x2\x16\x18C\x3\x2\x2\x2\x18\x19D\x3"+ - "\x2\x2\x2\x1A\x19F\x3\x2\x2\x2\x1C\x1B7\x3\x2\x2\x2\x1E\x205\x3\x2\x2"+ - "\x2 \x207\x3\x2\x2\x2\"\x214\x3\x2\x2\x2$\x216\x3\x2\x2\x2&\x21A\x3\x2"+ - "\x2\x2(\x21E\x3\x2\x2\x2*\x233\x3\x2\x2\x2,\x245\x3\x2\x2\x2.\x256\x3"+ - "\x2\x2\x2\x30\x263\x3\x2\x2\x2\x32\x28B\x3\x2\x2\x2\x34\x29B\x3\x2\x2"+ - "\x2\x36\x2CB\x3\x2\x2\x2\x38\x2CD\x3\x2\x2\x2:\x2D2\x3\x2\x2\x2<\x2E0"+ - "\x3\x2\x2\x2>\x2ED\x3\x2\x2\x2@\x2F1\x3\x2\x2\x2\x42\x2F8\x3\x2\x2\x2"+ - "\x44\x302\x3\x2\x2\x2\x46\x304\x3\x2\x2\x2H\x310\x3\x2\x2\x2J\x325\x3"+ - "\x2\x2\x2L\x34D\x3\x2\x2\x2N\x36D\x3\x2\x2\x2P\x383\x3\x2\x2\x2R\x387"+ - "\x3\x2\x2\x2T\x3A4\x3\x2\x2\x2V\x3A6\x3\x2\x2\x2X\x3AF\x3\x2\x2\x2Z\x3B1"+ - "\x3\x2\x2\x2\\\x3BA\x3\x2\x2\x2^\x3BF\x3\x2\x2\x2`\x3C3\x3\x2\x2\x2\x62"+ - "\x3D2\x3\x2\x2\x2\x64\x3D8\x3\x2\x2\x2\x66\x3E4\x3\x2\x2\x2h\x3F0\x3\x2"+ - "\x2\x2j\x3F4\x3\x2\x2\x2l\x407\x3\x2\x2\x2n\x413\x3\x2\x2\x2p\x421\x3"+ - "\x2\x2\x2r\x42D\x3\x2\x2\x2t\x43D\x3\x2\x2\x2v\x44D\x3\x2\x2\x2x\x457"+ - "\x3\x2\x2\x2z\x465\x3\x2\x2\x2|\x469\x3\x2\x2\x2~\x471\x3\x2\x2\x2\x80"+ - "\x47B\x3\x2\x2\x2\x82\x48F\x3\x2\x2\x2\x84\x4A3\x3\x2\x2\x2\x86\x4E5\x3"+ - "\x2\x2\x2\x88\x4F8\x3\x2\x2\x2\x8A\x4FA\x3\x2\x2\x2\x8C\x50A\x3\x2\x2"+ - "\x2\x8E\x529\x3\x2\x2\x2\x90\x541\x3\x2\x2\x2\x92\x556\x3\x2\x2\x2\x94"+ - "\x56C\x3\x2\x2\x2\x96\x57F\x3\x2\x2\x2\x98\x584\x3\x2\x2\x2\x9A\x598\x3"+ - "\x2\x2\x2\x9C\x5A9\x3\x2\x2\x2\x9E\x5AB\x3\x2\x2\x2\xA0\x5B3\x3\x2\x2"+ - "\x2\xA2\x5B5\x3\x2\x2\x2\xA4\x5B9\x3\x2\x2\x2\xA6\x5C5\x3\x2\x2\x2\xA8"+ - "\x5D1\x3\x2\x2\x2\xAA\x5ED\x3\x2\x2\x2\xAC\x5F9\x3\x2\x2\x2\xAE\x618\x3"+ - "\x2\x2\x2\xB0\x61A\x3\x2\x2\x2\xB2\x630\x3\x2\x2\x2\xB4\x632\x3\x2\x2"+ - "\x2\xB6\x63F\x3\x2\x2\x2\xB8\x64B\x3\x2\x2\x2\xBA\x657\x3\x2\x2\x2\xBC"+ - "\x65C\x3\x2\x2\x2\xBE\x673\x3\x2\x2\x2\xC0\x680\x3\x2\x2\x2\xC2\x68E\x3"+ - "\x2\x2\x2\xC4\x6A5\x3\x2\x2\x2\xC6\x6AE\x3\x2\x2\x2\xC8\x6B2\x3\x2\x2"+ - "\x2\xCA\x6FC\x3\x2\x2\x2\xCC\x772\x3\x2\x2\x2\xCE\x77B\x3\x2\x2\x2\xD0"+ - "\x789\x3\x2\x2\x2\xD2\x7A4\x3\x2\x2\x2\xD4\x7AD\x3\x2\x2\x2\xD6\x7B9\x3"+ - "\x2\x2\x2\xD8\x7C7\x3\x2\x2\x2\xDA\x7D5\x3\x2\x2\x2\xDC\x7DB\x3\x2\x2"+ - "\x2\xDE\x7DD\x3\x2\x2\x2\xE0\x7FE\x3\x2\x2\x2\xE2\x825\x3\x2\x2\x2\xE4"+ - "\x828\x3\x2\x2\x2\xE6\x845\x3\x2\x2\x2\xE8\x85A\x3\x2\x2\x2\xEA\x85C\x3"+ - "\x2\x2\x2\xEC\x874\x3\x2\x2\x2\xEE\x89B\x3\x2\x2\x2\xF0\x8B7\x3\x2\x2"+ - "\x2\xF2\x8C0\x3\x2\x2\x2\xF4\x8D0\x3\x2\x2\x2\xF6\x8E4\x3\x2\x2\x2\xF8"+ - "\x8EF\x3\x2\x2\x2\xFA\x8F7\x3\x2\x2\x2\xFC\x912\x3\x2\x2\x2\xFE\x936\x3"+ - "\x2\x2\x2\x100\x93C\x3\x2\x2\x2\x102\x94F\x3\x2\x2\x2\x104\x955\x3\x2"+ - "\x2\x2\x106\x959\x3\x2\x2\x2\x108\x968\x3\x2\x2\x2\x10A\x979\x3\x2\x2"+ - "\x2\x10C\x97B\x3\x2\x2\x2\x10E\x97D\x3\x2\x2\x2\x110\x985\x3\x2\x2\x2"+ - "\x112\x98D\x3\x2\x2\x2\x114\x998\x3\x2\x2\x2\x116\x99B\x3\x2\x2\x2\x118"+ - "\x99F\x3\x2\x2\x2\x11A\x9AB\x3\x2\x2\x2\x11C\x9AD\x3\x2\x2\x2\x11E\x9AF"+ - "\x3\x2\x2\x2\x120\x9B1\x3\x2\x2\x2\x122\x9B3\x3\x2\x2\x2\x124\x9B6\x3"+ - "\x2\x2\x2\x126\x9CA\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2"+ - "\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\a\xF4\x2\x2\x12C\x12B\x3\x2\x2\x2\x12C"+ - "\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x126\x94\x2\x12F"+ - "\x130\x5\x6\x4\x2\x130\x131\x5\x126\x94\x2\x131\x133\x3\x2\x2\x2\x132"+ - "\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134\x136"+ - "\x5\b\x5\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2"+ - "\x2\x2\x137\x139\x5\x126\x94\x2\x138\x13A\x5\f\a\x2\x139\x138\x3\x2\x2"+ - "\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x5\x126\x94"+ - "\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2\x2\x13E"+ - "\x13F\x3\x2\x2\x2\x13F\x141\x5\x126\x94\x2\x140\x142\x5\x16\f\x2\x141"+ - "\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x145"+ - "\x5\x126\x94\x2\x144\x146\a\xF4\x2\x2\x145\x144\x3\x2\x2\x2\x145\x146"+ - "\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xB5\x2\x2\x148\x149\a\xF4"+ - "\x2\x2\x149\x14A\a\xD4\x2\x2\x14A\x14B\a\xF4\x2\x2\x14B\x14C\a\x1E\x2"+ - "\x2\x14C\a\x3\x2\x2\x2\x14D\x14E\a\x13\x2\x2\x14E\x150\x5\x126\x94\x2"+ - "\x14F\x151\x5\n\x6\x2\x150\x14F\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152"+ - "\x150\x3\x2\x2\x2\x152\x153\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x155"+ - "\a\x41\x2\x2\x155\t\x3\x2\x2\x2\x156\x158\x5\x104\x83\x2\x157\x159\a\xF4"+ - "\x2\x2\x158\x157\x3\x2\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15A\x3\x2\x2"+ - "\x2\x15A\x15C\a\xC1\x2\x2\x15B\x15D\a\xF4\x2\x2\x15C\x15B\x3\x2\x2\x2"+ - "\x15C\x15D\x3\x2\x2\x2\x15D\x15E\x3\x2\x2\x2\x15E\x15F\x5\x116\x8C\x2"+ - "\x15F\x160\x5\x126\x94\x2\x160\v\x3\x2\x2\x2\x161\x162\x5\x1A\xE\x2\x162"+ - "\x163\x5\x126\x94\x2\x163\x165\x3\x2\x2\x2\x164\x161\x3\x2\x2\x2\x165"+ - "\x166\x3\x2\x2\x2\x166\x164\x3\x2\x2\x2\x166\x167\x3\x2\x2\x2\x167\r\x3"+ - "\x2\x2\x2\x168\x16E\x5\x12\n\x2\x169\x16A\x5\x126\x94\x2\x16A\x16B\x5"+ - "\x12\n\x2\x16B\x16D\x3\x2\x2\x2\x16C\x169\x3\x2\x2\x2\x16D\x170\x3\x2"+ - "\x2\x2\x16E\x16C\x3\x2\x2\x2\x16E\x16F\x3\x2\x2\x2\x16F\x171\x3\x2\x2"+ - "\x2\x170\x16E\x3\x2\x2\x2\x171\x172\x5\x126\x94\x2\x172\xF\x3\x2\x2\x2"+ - "\x173\x174\a~\x2\x2\x174\x175\a\xF4\x2\x2\x175\x17C\a\xD2\x2\x2\x176\x177"+ - "\a\x80\x2\x2\x177\x178\a\xF4\x2\x2\x178\x17C\t\x2\x2\x2\x179\x17C\a\x7F"+ - "\x2\x2\x17A\x17C\a\x81\x2\x2\x17B\x173\x3\x2\x2\x2\x17B\x176\x3\x2\x2"+ - "\x2\x17B\x179\x3\x2\x2\x2\x17B\x17A\x3\x2\x2\x2\x17C\x11\x3\x2\x2\x2\x17D"+ - "\x187\x5\x30\x19\x2\x17E\x187\x5:\x1E\x2\x17F\x187\x5\x42\"\x2\x180\x187"+ - "\x5*\x16\x2\x181\x187\x5^\x30\x2\x182\x187\x5\xCCg\x2\x183\x187\x5\x10"+ - "\t\x2\x184\x187\x5\xC0\x61\x2\x185\x187\x5\x14\v\x2\x186\x17D\x3\x2\x2"+ - "\x2\x186\x17E\x3\x2\x2\x2\x186\x17F\x3\x2\x2\x2\x186\x180\x3\x2\x2\x2"+ - "\x186\x181\x3\x2\x2\x2\x186\x182\x3\x2\x2\x2\x186\x183\x3\x2\x2\x2\x186"+ - "\x184\x3\x2\x2\x2\x186\x185\x3\x2\x2\x2\x187\x13\x3\x2\x2\x2\x188\x18B"+ - "\x5n\x38\x2\x189\x18B\x5p\x39\x2\x18A\x188\x3\x2\x2\x2\x18A\x189\x3\x2"+ - "\x2\x2\x18B\x15\x3\x2\x2\x2\x18C\x192\x5\x18\r\x2\x18D\x18E\x5\x126\x94"+ - "\x2\x18E\x18F\x5\x18\r\x2\x18F\x191\x3\x2\x2\x2\x190\x18D\x3\x2\x2\x2"+ - "\x191\x194\x3\x2\x2\x2\x192\x190\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2\x193"+ - "\x195\x3\x2\x2\x2\x194\x192\x3\x2\x2\x2\x195\x196\x5\x126\x94\x2\x196"+ - "\x17\x3\x2\x2\x2\x197\x19E\x5L\'\x2\x198\x19E\x5\x8CG\x2\x199\x19E\x5"+ - "\x8EH\x2\x19A\x19E\x5\x90I\x2\x19B\x19E\x5\xBC_\x2\x19C\x19E\x5\x14\v"+ - "\x2\x19D\x197\x3\x2\x2\x2\x19D\x198\x3\x2\x2\x2\x19D\x199\x3\x2\x2\x2"+ - "\x19D\x19A\x3\x2\x2\x2\x19D\x19B\x3\x2\x2\x2\x19D\x19C\x3\x2\x2\x2\x19E"+ - "\x19\x3\x2\x2\x2\x19F\x1A0\a\xF\x2\x2\x1A0\x1A1\a\xF4\x2\x2\x1A1\x1A3"+ - "\x5\xE8u\x2\x1A2\x1A4\a\xF4\x2\x2\x1A3\x1A2\x3\x2\x2\x2\x1A3\x1A4\x3\x2"+ - "\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A7\a\xC1\x2\x2\x1A6\x1A8\a\xF4\x2"+ - "\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1A9\x3\x2\x2\x2"+ - "\x1A9\x1B4\x5\x116\x8C\x2\x1AA\x1AC\a\xF4\x2\x2\x1AB\x1AA\x3\x2\x2\x2"+ - "\x1AB\x1AC\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\a\t\x2\x2\x1AE"+ - "\x1B0\a\xF4\x2\x2\x1AF\x1AE\x3\x2\x2\x2\x1AF\x1B0\x3\x2\x2\x2\x1B0\x1B1"+ - "\x3\x2\x2\x2\x1B1\x1B3\x5\x116\x8C\x2\x1B2\x1AB\x3\x2\x2\x2\x1B3\x1B6"+ - "\x3\x2\x2\x2\x1B4\x1B2\x3\x2\x2\x2\x1B4\x1B5\x3\x2\x2\x2\x1B5\x1B\x3\x2"+ - "\x2\x2\x1B6\x1B4\x3\x2\x2\x2\x1B7\x1BD\x5\x1E\x10\x2\x1B8\x1B9\x5\x126"+ - "\x94\x2\x1B9\x1BA\x5\x1E\x10\x2\x1BA\x1BC\x3\x2\x2\x2\x1BB\x1B8\x3\x2"+ - "\x2\x2\x1BC\x1BF\x3\x2\x2\x2\x1BD\x1BB\x3\x2\x2\x2\x1BD\x1BE\x3\x2\x2"+ - "\x2\x1BE\x1C0\x3\x2\x2\x2\x1BF\x1BD\x3\x2\x2\x2\x1C0\x1C1\x5\x126\x94"+ - "\x2\x1C1\x1D\x3\x2\x2\x2\x1C2\x206\x5\x114\x8B\x2\x1C3\x206\x5 \x11\x2"+ - "\x1C4\x206\x5\x1A\xE\x2\x1C5\x206\x5\"\x12\x2\x1C6\x206\x5$\x13\x2\x1C7"+ - "\x206\x5&\x14\x2\x1C8\x206\x5(\x15\x2\x1C9\x206\x5*\x16\x2\x1CA\x206\x5"+ - ".\x18\x2\x1CB\x206\x5\x34\x1B\x2\x1CC\x206\x5\x32\x1A\x2\x1CD\x206\x5"+ - "\x36\x1C\x2\x1CE\x206\x5\x38\x1D\x2\x1CF\x206\x5> \x2\x1D0\x206\x5@!\x2"+ - "\x1D1\x206\x5\x44#\x2\x1D2\x206\x5\xDCo\x2\x1D3\x206\x5\x46$\x2\x1D4\x206"+ - "\x5H%\x2\x1D5\x206\x5J&\x2\x1D6\x206\x5N(\x2\x1D7\x206\x5P)\x2\x1D8\x206"+ - "\x5R*\x2\x1D9\x206\x5T+\x2\x1DA\x206\x5^\x30\x2\x1DB\x206\x5`\x31\x2\x1DC"+ - "\x206\x5\x62\x32\x2\x1DD\x206\x5\x64\x33\x2\x1DE\x206\x5\x66\x34\x2\x1DF"+ - "\x206\x5h\x35\x2\x1E0\x206\x5j\x36\x2\x1E1\x206\x5l\x37\x2\x1E2\x206\x5"+ - "\x14\v\x2\x1E3\x206\x5x=\x2\x1E4\x206\x5z>\x2\x1E5\x206\x5|?\x2\x1E6\x206"+ - "\x5~@\x2\x1E7\x206\x5\x80\x41\x2\x1E8\x206\x5\x82\x42\x2\x1E9\x206\x5"+ - "\x84\x43\x2\x1EA\x206\x5\x8A\x46\x2\x1EB\x206\x5\x92J\x2\x1EC\x206\x5"+ - "\x94K\x2\x1ED\x206\x5\x96L\x2\x1EE\x206\x5\x98M\x2\x1EF\x206\x5\x9CO\x2"+ - "\x1F0\x206\x5\x9EP\x2\x1F1\x206\x5\xA0Q\x2\x1F2\x206\x5\xA2R\x2\x1F3\x206"+ - "\x5\xA4S\x2\x1F4\x206\x5\xA6T\x2\x1F5\x206\x5\xA8U\x2\x1F6\x206\x5\xAA"+ - "V\x2\x1F7\x206\x5\xACW\x2\x1F8\x206\x5\xB4[\x2\x1F9\x206\x5\xB6\\\x2\x1FA"+ - "\x206\x5\xB8]\x2\x1FB\x206\x5\xBA^\x2\x1FC\x206\x5\xBE`\x2\x1FD\x206\x5"+ - "\xC6\x64\x2\x1FE\x206\x5\xC8\x65\x2\x1FF\x206\x5\xCCg\x2\x200\x206\x5"+ - "\xD2j\x2\x201\x206\x5\xD4k\x2\x202\x206\x5\xD6l\x2\x203\x206\x5\xD8m\x2"+ - "\x204\x206\x5\xE2r\x2\x205\x1C2\x3\x2\x2\x2\x205\x1C3\x3\x2\x2\x2\x205"+ - "\x1C4\x3\x2\x2\x2\x205\x1C5\x3\x2\x2\x2\x205\x1C6\x3\x2\x2\x2\x205\x1C7"+ - "\x3\x2\x2\x2\x205\x1C8\x3\x2\x2\x2\x205\x1C9\x3\x2\x2\x2\x205\x1CA\x3"+ - "\x2\x2\x2\x205\x1CB\x3\x2\x2\x2\x205\x1CC\x3\x2\x2\x2\x205\x1CD\x3\x2"+ - "\x2\x2\x205\x1CE\x3\x2\x2\x2\x205\x1CF\x3\x2\x2\x2\x205\x1D0\x3\x2\x2"+ - "\x2\x205\x1D1\x3\x2\x2\x2\x205\x1D2\x3\x2\x2\x2\x205\x1D3\x3\x2\x2\x2"+ - "\x205\x1D4\x3\x2\x2\x2\x205\x1D5\x3\x2\x2\x2\x205\x1D6\x3\x2\x2\x2\x205"+ - "\x1D7\x3\x2\x2\x2\x205\x1D8\x3\x2\x2\x2\x205\x1D9\x3\x2\x2\x2\x205\x1DA"+ - "\x3\x2\x2\x2\x205\x1DB\x3\x2\x2\x2\x205\x1DC\x3\x2\x2\x2\x205\x1DD\x3"+ - "\x2\x2\x2\x205\x1DE\x3\x2\x2\x2\x205\x1DF\x3\x2\x2\x2\x205\x1E0\x3\x2"+ - "\x2\x2\x205\x1E1\x3\x2\x2\x2\x205\x1E2\x3\x2\x2\x2\x205\x1E3\x3\x2\x2"+ - "\x2\x205\x1E4\x3\x2\x2\x2\x205\x1E5\x3\x2\x2\x2\x205\x1E6\x3\x2\x2\x2"+ - "\x205\x1E7\x3\x2\x2\x2\x205\x1E8\x3\x2\x2\x2\x205\x1E9\x3\x2\x2\x2\x205"+ - "\x1EA\x3\x2\x2\x2\x205\x1EB\x3\x2\x2\x2\x205\x1EC\x3\x2\x2\x2\x205\x1ED"+ - "\x3\x2\x2\x2\x205\x1EE\x3\x2\x2\x2\x205\x1EF\x3\x2\x2\x2\x205\x1F0\x3"+ - "\x2\x2\x2\x205\x1F1\x3\x2\x2\x2\x205\x1F2\x3\x2\x2\x2\x205\x1F3\x3\x2"+ - "\x2\x2\x205\x1F4\x3\x2\x2\x2\x205\x1F5\x3\x2\x2\x2\x205\x1F6\x3\x2\x2"+ - "\x2\x205\x1F7\x3\x2\x2\x2\x205\x1F8\x3\x2\x2\x2\x205\x1F9\x3\x2\x2\x2"+ - "\x205\x1FA\x3\x2\x2\x2\x205\x1FB\x3\x2\x2\x2\x205\x1FC\x3\x2\x2\x2\x205"+ - "\x1FD\x3\x2\x2\x2\x205\x1FE\x3\x2\x2\x2\x205\x1FF\x3\x2\x2\x2\x205\x200"+ - "\x3\x2\x2\x2\x205\x201\x3\x2\x2\x2\x205\x202\x3\x2\x2\x2\x205\x203\x3"+ - "\x2\x2\x2\x205\x204\x3\x2\x2\x2\x206\x1F\x3\x2\x2\x2\x207\x208\a\x10\x2"+ - "\x2\x208\x209\a\xF4\x2\x2\x209\x212\x5\xCA\x66\x2\x20A\x20C\a\xF4\x2\x2"+ - "\x20B\x20A\x3\x2\x2\x2\x20B\x20C\x3\x2\x2\x2\x20C\x20D\x3\x2\x2\x2\x20D"+ - "\x20F\a\t\x2\x2\x20E\x210\a\xF4\x2\x2\x20F\x20E\x3\x2\x2\x2\x20F\x210"+ - "\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x213\x5\xCA\x66\x2\x212\x20B\x3"+ - "\x2\x2\x2\x212\x213\x3\x2\x2\x2\x213!\x3\x2\x2\x2\x214\x215\a\x14\x2\x2"+ - "\x215#\x3\x2\x2\x2\x216\x217\a\x1C\x2\x2\x217\x218\a\xF4\x2\x2\x218\x219"+ - "\x5\xCA\x66\x2\x219%\x3\x2\x2\x2\x21A\x21B\a\x1D\x2\x2\x21B\x21C\a\xF4"+ - "\x2\x2\x21C\x21D\x5\xCA\x66\x2\x21D\'\x3\x2\x2\x2\x21E\x22E\a\x1F\x2\x2"+ - "\x21F\x220\a\xF4\x2\x2\x220\x22B\x5\xDAn\x2\x221\x223\a\xF4\x2\x2\x222"+ - "\x221\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2\x224\x226"+ - "\a\t\x2\x2\x225\x227\a\xF4\x2\x2\x226\x225\x3\x2\x2\x2\x226\x227\x3\x2"+ - "\x2\x2\x227\x228\x3\x2\x2\x2\x228\x22A\x5\xDAn\x2\x229\x222\x3\x2\x2\x2"+ - "\x22A\x22D\x3\x2\x2\x2\x22B\x229\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C"+ - "\x22F\x3\x2\x2\x2\x22D\x22B\x3\x2\x2\x2\x22E\x21F\x3\x2\x2\x2\x22E\x22F"+ - "\x3\x2\x2\x2\x22F)\x3\x2\x2\x2\x230\x231\x5\x11C\x8F\x2\x231\x232\a\xF4"+ - "\x2\x2\x232\x234\x3\x2\x2\x2\x233\x230\x3\x2\x2\x2\x233\x234\x3\x2\x2"+ - "\x2\x234\x235\x3\x2\x2\x2\x235\x236\a!\x2\x2\x236\x237\a\xF4\x2\x2\x237"+ - "\x242\x5,\x17\x2\x238\x23A\a\xF4\x2\x2\x239\x238\x3\x2\x2\x2\x239\x23A"+ - "\x3\x2\x2\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\a\t\x2\x2\x23C\x23E\a\xF4"+ - "\x2\x2\x23D\x23C\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E\x23F\x3\x2\x2"+ - "\x2\x23F\x241\x5,\x17\x2\x240\x239\x3\x2\x2\x2\x241\x244\x3\x2\x2\x2\x242"+ - "\x240\x3\x2\x2\x2\x242\x243\x3\x2\x2\x2\x243+\x3\x2\x2\x2\x244\x242\x3"+ - "\x2\x2\x2\x245\x247\x5\x104\x83\x2\x246\x248\x5\x11A\x8E\x2\x247\x246"+ - "\x3\x2\x2\x2\x247\x248\x3\x2\x2\x2\x248\x24B\x3\x2\x2\x2\x249\x24A\a\xF4"+ - "\x2\x2\x24A\x24C\x5\x106\x84\x2\x24B\x249\x3\x2\x2\x2\x24B\x24C\x3\x2"+ - "\x2\x2\x24C\x24E\x3\x2\x2\x2\x24D\x24F\a\xF4\x2\x2\x24E\x24D\x3\x2\x2"+ - "\x2\x24E\x24F\x3\x2\x2\x2\x24F\x250\x3\x2\x2\x2\x250\x252\a\xC1\x2\x2"+ - "\x251\x253\a\xF4\x2\x2\x252\x251\x3\x2\x2\x2\x252\x253\x3\x2\x2\x2\x253"+ - "\x254\x3\x2\x2\x2\x254\x255\x5\xCA\x66\x2\x255-\x3\x2\x2\x2\x256\x258"+ - "\a#\x2\x2\x257\x259\a\xF4\x2\x2\x258\x257\x3\x2\x2\x2\x258\x259\x3\x2"+ - "\x2\x2\x259\x25A\x3\x2\x2\x2\x25A\x25C\a\xC1\x2\x2\x25B\x25D\a\xF4\x2"+ - "\x2\x25C\x25B\x3\x2\x2\x2\x25C\x25D\x3\x2\x2\x2\x25D\x25E\x3\x2\x2\x2"+ - "\x25E\x25F\x5\xCA\x66\x2\x25F/\x3\x2\x2\x2\x260\x261\x5\x11C\x8F\x2\x261"+ - "\x262\a\xF4\x2\x2\x262\x264\x3\x2\x2\x2\x263\x260\x3\x2\x2\x2\x263\x264"+ - "\x3\x2\x2\x2\x264\x265\x3\x2\x2\x2\x265\x266\a$\x2\x2\x266\x269\a\xF4"+ - "\x2\x2\x267\x268\a\x8B\x2\x2\x268\x26A\a\xF4\x2\x2\x269\x267\x3\x2\x2"+ - "\x2\x269\x26A\x3\x2\x2\x2\x26A\x270\x3\x2\x2\x2\x26B\x26D\aP\x2\x2\x26C"+ - "\x26E\x5\x11A\x8E\x2\x26D\x26C\x3\x2\x2\x2\x26D\x26E\x3\x2\x2\x2\x26E"+ - "\x271\x3\x2\x2\x2\x26F\x271\a\xA8\x2\x2\x270\x26B\x3\x2\x2\x2\x270\x26F"+ - "\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272\x273\a\xF4\x2\x2\x273\x275\x5"+ - "\x104\x83\x2\x274\x276\x5\x11A\x8E\x2\x275\x274\x3\x2\x2\x2\x275\x276"+ - "\x3\x2\x2\x2\x276\x277\x3\x2\x2\x2\x277\x278\a\xF4\x2\x2\x278\x279\a\x63"+ - "\x2\x2\x279\x27A\a\xF4\x2\x2\x27A\x27F\a\xCF\x2\x2\x27B\x27C\a\xF4\x2"+ - "\x2\x27C\x27D\a\r\x2\x2\x27D\x27E\a\xF4\x2\x2\x27E\x280\a\xCF\x2\x2\x27F"+ - "\x27B\x3\x2\x2\x2\x27F\x280\x3\x2\x2\x2\x280\x285\x3\x2\x2\x2\x281\x283"+ - "\a\xF4\x2\x2\x282\x281\x3\x2\x2\x2\x282\x283\x3\x2\x2\x2\x283\x284\x3"+ - "\x2\x2\x2\x284\x286\x5\xFA~\x2\x285\x282\x3\x2\x2\x2\x285\x286\x3\x2\x2"+ - "\x2\x286\x289\x3\x2\x2\x2\x287\x288\a\xF4\x2\x2\x288\x28A\x5\x106\x84"+ - "\x2\x289\x287\x3\x2\x2\x2\x289\x28A\x3\x2\x2\x2\x28A\x31\x3\x2\x2\x2\x28B"+ - "\x28C\t\x3\x2\x2\x28C\x28D\a\xF4\x2\x2\x28D\x298\x5\x112\x8A\x2\x28E\x290"+ - "\a\xF4\x2\x2\x28F\x28E\x3\x2\x2\x2\x28F\x290\x3\x2\x2\x2\x290\x291\x3"+ - "\x2\x2\x2\x291\x293\a\t\x2\x2\x292\x294\a\xF4\x2\x2\x293\x292\x3\x2\x2"+ - "\x2\x293\x294\x3\x2\x2\x2\x294\x295\x3\x2\x2\x2\x295\x297\x5\x112\x8A"+ - "\x2\x296\x28F\x3\x2\x2\x2\x297\x29A\x3\x2\x2\x2\x298\x296\x3\x2\x2\x2"+ - "\x298\x299\x3\x2\x2\x2\x299\x33\x3\x2\x2\x2\x29A\x298\x3\x2\x2\x2\x29B"+ - "\x29C\a\x31\x2\x2\x29C\x29D\a\xF4\x2\x2\x29D\x29F\x5\xCA\x66\x2\x29E\x2A0"+ - "\a\xF4\x2\x2\x29F\x29E\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0\x2A1\x3"+ - "\x2\x2\x2\x2A1\x2A3\a\t\x2\x2\x2A2\x2A4\a\xF4\x2\x2\x2A3\x2A2\x3\x2\x2"+ - "\x2\x2A3\x2A4\x3\x2\x2\x2\x2A4\x2A5\x3\x2\x2\x2\x2A5\x2AE\x5\xCA\x66\x2"+ - "\x2A6\x2A8\a\xF4\x2\x2\x2A7\x2A6\x3\x2\x2\x2\x2A7\x2A8\x3\x2\x2\x2\x2A8"+ - "\x2A9\x3\x2\x2\x2\x2A9\x2AB\a\t\x2\x2\x2AA\x2AC\a\xF4\x2\x2\x2AB\x2AA"+ - "\x3\x2\x2\x2\x2AB\x2AC\x3\x2\x2\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AF\x5"+ - "\xCA\x66\x2\x2AE\x2A7\x3\x2\x2\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x35\x3\x2"+ - "\x2\x2\x2B0\x2B1\a\x33\x2\x2\x2B1\x2B3\x5\x126\x94\x2\x2B2\x2B4\x5\x1C"+ - "\xF\x2\x2B3\x2B2\x3\x2\x2\x2\x2B3\x2B4\x3\x2\x2\x2\x2B4\x2B5\x3\x2\x2"+ - "\x2\x2B5\x2B6\a`\x2\x2\x2B6\x2CC\x3\x2\x2\x2\x2B7\x2B8\a\x33\x2\x2\x2B8"+ - "\x2B9\a\xF4\x2\x2\x2B9\x2BA\t\x4\x2\x2\x2BA\x2BB\a\xF4\x2\x2\x2BB\x2BC"+ - "\x5\xCA\x66\x2\x2BC\x2BE\x5\x126\x94\x2\x2BD\x2BF\x5\x1C\xF\x2\x2BE\x2BD"+ - "\x3\x2\x2\x2\x2BE\x2BF\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\a`"+ - "\x2\x2\x2C1\x2CC\x3\x2\x2\x2\x2C2\x2C3\a\x33\x2\x2\x2C3\x2C4\x5\x126\x94"+ - "\x2\x2C4\x2C5\x5\x1C\xF\x2\x2C5\x2C6\a`\x2\x2\x2C6\x2C7\a\xF4\x2\x2\x2C7"+ - "\x2C8\t\x4\x2\x2\x2C8\x2C9\a\xF4\x2\x2\x2C9\x2CA\x5\xCA\x66\x2\x2CA\x2CC"+ - "\x3\x2\x2\x2\x2CB\x2B0\x3\x2\x2\x2\x2CB\x2B7\x3\x2\x2\x2\x2CB\x2C2\x3"+ - "\x2\x2\x2\x2CC\x37\x3\x2\x2\x2\x2CD\x2CE\a\x41\x2\x2\x2CE\x39\x3\x2\x2"+ - "\x2\x2CF\x2D0\x5\x11C\x8F\x2\x2D0\x2D1\a\xF4\x2\x2\x2D1\x2D3\x3\x2\x2"+ - "\x2\x2D2\x2CF\x3\x2\x2\x2\x2D2\x2D3\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2"+ - "\x2D4\x2D5\a\x42\x2\x2\x2D5\x2D6\a\xF4\x2\x2\x2D6\x2D7\x5\x104\x83\x2"+ - "\x2D7\x2DB\x5\x126\x94\x2\x2D8\x2DA\x5<\x1F\x2\x2D9\x2D8\x3\x2\x2\x2\x2DA"+ - "\x2DD\x3\x2\x2\x2\x2DB\x2D9\x3\x2\x2\x2\x2DB\x2DC\x3\x2\x2\x2\x2DC\x2DE"+ - "\x3\x2\x2\x2\x2DD\x2DB\x3\x2\x2\x2\x2DE\x2DF\a\x39\x2\x2\x2DF;\x3\x2\x2"+ - "\x2\x2E0\x2E9\x5\x104\x83\x2\x2E1\x2E3\a\xF4\x2\x2\x2E2\x2E1\x3\x2\x2"+ - "\x2\x2E2\x2E3\x3\x2\x2\x2\x2E3\x2E4\x3\x2\x2\x2\x2E4\x2E6\a\xC1\x2\x2"+ - "\x2E5\x2E7\a\xF4\x2\x2\x2E6\x2E5\x3\x2\x2\x2\x2E6\x2E7\x3\x2\x2\x2\x2E7"+ - "\x2E8\x3\x2\x2\x2\x2E8\x2EA\x5\xCA\x66\x2\x2E9\x2E2\x3\x2\x2\x2\x2E9\x2EA"+ - "\x3\x2\x2\x2\x2EA\x2EB\x3\x2\x2\x2\x2EB\x2EC\x5\x126\x94\x2\x2EC=\x3\x2"+ - "\x2\x2\x2ED\x2EE\a\x44\x2\x2\x2EE\x2EF\a\xF4\x2\x2\x2EF\x2F0\x5\xCA\x66"+ - "\x2\x2F0?\x3\x2\x2\x2\x2F1\x2F2\a\x45\x2\x2\x2F2\x2F3\a\xF4\x2\x2\x2F3"+ - "\x2F4\x5\xCA\x66\x2\x2F4\x41\x3\x2\x2\x2\x2F5\x2F6\x5\x11C\x8F\x2\x2F6"+ - "\x2F7\a\xF4\x2\x2\x2F7\x2F9\x3\x2\x2\x2\x2F8\x2F5\x3\x2\x2\x2\x2F8\x2F9"+ - "\x3\x2\x2\x2\x2F9\x2FA\x3\x2\x2\x2\x2FA\x2FB\a\x46\x2\x2\x2FB\x2FC\a\xF4"+ - "\x2\x2\x2FC\x2FE\x5\x104\x83\x2\x2FD\x2FF\a\xF4\x2\x2\x2FE\x2FD\x3\x2"+ - "\x2\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\x3\x2\x2\x2\x300\x301\x5\xFA~\x2"+ - "\x301\x43\x3\x2\x2\x2\x302\x303\t\x5\x2\x2\x303\x45\x3\x2\x2\x2\x304\x305"+ - "\aM\x2\x2\x305\x306\a\xF4\x2\x2\x306\x308\x5\xCA\x66\x2\x307\x309\a\xF4"+ - "\x2\x2\x308\x307\x3\x2\x2\x2\x308\x309\x3\x2\x2\x2\x309\x30A\x3\x2\x2"+ - "\x2\x30A\x30C\a\t\x2\x2\x30B\x30D\a\xF4\x2\x2\x30C\x30B\x3\x2\x2\x2\x30C"+ - "\x30D\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x30F\x5\xCA\x66\x2\x30FG"+ - "\x3\x2\x2\x2\x310\x311\aO\x2\x2\x311\x312\a\xF4\x2\x2\x312\x313\a\x35"+ - "\x2\x2\x313\x314\a\xF4\x2\x2\x314\x316\x5\x104\x83\x2\x315\x317\x5\x11A"+ - "\x8E\x2\x316\x315\x3\x2\x2\x2\x316\x317\x3\x2\x2\x2\x317\x318\x3\x2\x2"+ - "\x2\x318\x319\a\xF4\x2\x2\x319\x31A\aX\x2\x2\x31A\x31B\a\xF4\x2\x2\x31B"+ - "\x31C\x5\xCA\x66\x2\x31C\x31E\x5\x126\x94\x2\x31D\x31F\x5\x1C\xF\x2\x31E"+ - "\x31D\x3\x2\x2\x2\x31E\x31F\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x323"+ - "\at\x2\x2\x321\x322\a\xF4\x2\x2\x322\x324\x5\x104\x83\x2\x323\x321\x3"+ - "\x2\x2\x2\x323\x324\x3\x2\x2\x2\x324I\x3\x2\x2\x2\x325\x326\aO\x2\x2\x326"+ - "\x327\a\xF4\x2\x2\x327\x329\x5\x104\x83\x2\x328\x32A\x5\x11A\x8E\x2\x329"+ - "\x328\x3\x2\x2\x2\x329\x32A\x3\x2\x2\x2\x32A\x32D\x3\x2\x2\x2\x32B\x32C"+ - "\a\xF4\x2\x2\x32C\x32E\x5\x106\x84\x2\x32D\x32B\x3\x2\x2\x2\x32D\x32E"+ - "\x3\x2\x2\x2\x32E\x330\x3\x2\x2\x2\x32F\x331\a\xF4\x2\x2\x330\x32F\x3"+ - "\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332\x3\x2\x2\x2\x332\x334\a\xC1"+ - "\x2\x2\x333\x335\a\xF4\x2\x2\x334\x333\x3\x2\x2\x2\x334\x335\x3\x2\x2"+ - "\x2\x335\x336\x3\x2\x2\x2\x336\x337\x5\xCA\x66\x2\x337\x338\a\xF4\x2\x2"+ - "\x338\x339\a\xAD\x2\x2\x339\x33A\a\xF4\x2\x2\x33A\x33F\x5\xCA\x66\x2\x33B"+ - "\x33C\a\xF4\x2\x2\x33C\x33D\a\xA5\x2\x2\x33D\x33E\a\xF4\x2\x2\x33E\x340"+ - "\x5\xCA\x66\x2\x33F\x33B\x3\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341\x3"+ - "\x2\x2\x2\x341\x343\x5\x126\x94\x2\x342\x344\x5\x1C\xF\x2\x343\x342\x3"+ - "\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x348\at\x2"+ - "\x2\x346\x347\a\xF4\x2\x2\x347\x349\x5\x104\x83\x2\x348\x346\x3\x2\x2"+ - "\x2\x348\x349\x3\x2\x2\x2\x349K\x3\x2\x2\x2\x34A\x34B\x5\x11C\x8F\x2\x34B"+ - "\x34C\a\xF4\x2\x2\x34C\x34E\x3\x2\x2\x2\x34D\x34A\x3\x2\x2\x2\x34D\x34E"+ - "\x3\x2\x2\x2\x34E\x351\x3\x2\x2\x2\x34F\x350\a\xA4\x2\x2\x350\x352\a\xF4"+ - "\x2\x2\x351\x34F\x3\x2\x2\x2\x351\x352\x3\x2\x2\x2\x352\x353\x3\x2\x2"+ - "\x2\x353\x355\aP\x2\x2\x354\x356\a\xF4\x2\x2\x355\x354\x3\x2\x2\x2\x355"+ - "\x356\x3\x2\x2\x2\x356\x357\x3\x2\x2\x2\x357\x359\x5\x104\x83\x2\x358"+ - "\x35A\x5\x11A\x8E\x2\x359\x358\x3\x2\x2\x2\x359\x35A\x3\x2\x2\x2\x35A"+ - "\x35F\x3\x2\x2\x2\x35B\x35D\a\xF4\x2\x2\x35C\x35B\x3\x2\x2\x2\x35C\x35D"+ - "\x3\x2\x2\x2\x35D\x35E\x3\x2\x2\x2\x35E\x360\x5\xFA~\x2\x35F\x35C\x3\x2"+ - "\x2\x2\x35F\x360\x3\x2\x2\x2\x360\x365\x3\x2\x2\x2\x361\x363\a\xF4\x2"+ - "\x2\x362\x361\x3\x2\x2\x2\x362\x363\x3\x2\x2\x2\x363\x364\x3\x2\x2\x2"+ - "\x364\x366\x5\x106\x84\x2\x365\x362\x3\x2\x2\x2\x365\x366\x3\x2\x2\x2"+ - "\x366\x367\x3\x2\x2\x2\x367\x369\x5\x126\x94\x2\x368\x36A\x5\x1C\xF\x2"+ - "\x369\x368\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B"+ - "\x36C\a:\x2\x2\x36CM\x3\x2\x2\x2\x36D\x36E\aQ\x2\x2\x36E\x36F\a\xF4\x2"+ - "\x2\x36F\x371\x5\xDAn\x2\x370\x372\a\xF4\x2\x2\x371\x370\x3\x2\x2\x2\x371"+ - "\x372\x3\x2\x2\x2\x372\x373\x3\x2\x2\x2\x373\x375\a\t\x2\x2\x374\x376"+ - "\a\xF4\x2\x2\x375\x374\x3\x2\x2\x2\x375\x376\x3\x2\x2\x2\x376\x378\x3"+ - "\x2\x2\x2\x377\x379\x5\xCA\x66\x2\x378\x377\x3\x2\x2\x2\x378\x379\x3\x2"+ - "\x2\x2\x379\x37B\x3\x2\x2\x2\x37A\x37C\a\xF4\x2\x2\x37B\x37A\x3\x2\x2"+ - "\x2\x37B\x37C\x3\x2\x2\x2\x37C\x37D\x3\x2\x2\x2\x37D\x37F\a\t\x2\x2\x37E"+ - "\x380\a\xF4\x2\x2\x37F\x37E\x3\x2\x2\x2\x37F\x380\x3\x2\x2\x2\x380\x381"+ - "\x3\x2\x2\x2\x381\x382\x5\xCA\x66\x2\x382O\x3\x2\x2\x2\x383\x384\aS\x2"+ - "\x2\x384\x385\a\xF4\x2\x2\x385\x386\x5\xCA\x66\x2\x386Q\x3\x2\x2\x2\x387"+ - "\x388\aT\x2\x2\x388\x389\a\xF4\x2\x2\x389\x38A\x5\xCA\x66\x2\x38AS\x3"+ - "\x2\x2\x2\x38B\x38C\aU\x2\x2\x38C\x38D\a\xF4\x2\x2\x38D\x38E\x5X-\x2\x38E"+ - "\x38F\a\xF4\x2\x2\x38F\x390\a\xAB\x2\x2\x390\x391\a\xF4\x2\x2\x391\x396"+ - "\x5\x1E\x10\x2\x392\x393\a\xF4\x2\x2\x393\x394\a\x36\x2\x2\x394\x395\a"+ - "\xF4\x2\x2\x395\x397\x5\x1E\x10\x2\x396\x392\x3\x2\x2\x2\x396\x397\x3"+ - "\x2\x2\x2\x397\x3A5\x3\x2\x2\x2\x398\x39C\x5V,\x2\x399\x39B\x5Z.\x2\x39A"+ - "\x399\x3\x2\x2\x2\x39B\x39E\x3\x2\x2\x2\x39C\x39A\x3\x2\x2\x2\x39C\x39D"+ - "\x3\x2\x2\x2\x39D\x3A0\x3\x2\x2\x2\x39E\x39C\x3\x2\x2\x2\x39F\x3A1\x5"+ - "\\/\x2\x3A0\x39F\x3\x2\x2\x2\x3A0\x3A1\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2"+ - "\x2\x3A2\x3A3\a;\x2\x2\x3A3\x3A5\x3\x2\x2\x2\x3A4\x38B\x3\x2\x2\x2\x3A4"+ - "\x398\x3\x2\x2\x2\x3A5U\x3\x2\x2\x2\x3A6\x3A7\aU\x2\x2\x3A7\x3A8\a\xF4"+ - "\x2\x2\x3A8\x3A9\x5X-\x2\x3A9\x3AA\a\xF4\x2\x2\x3AA\x3AB\a\xAB\x2\x2\x3AB"+ - "\x3AD\x5\x126\x94\x2\x3AC\x3AE\x5\x1C\xF\x2\x3AD\x3AC\x3\x2\x2\x2\x3AD"+ - "\x3AE\x3\x2\x2\x2\x3AEW\x3\x2\x2\x2\x3AF\x3B0\x5\xCA\x66\x2\x3B0Y\x3\x2"+ - "\x2\x2\x3B1\x3B2\a\x37\x2\x2\x3B2\x3B3\a\xF4\x2\x2\x3B3\x3B4\x5X-\x2\x3B4"+ - "\x3B5\a\xF4\x2\x2\x3B5\x3B6\a\xAB\x2\x2\x3B6\x3B8\x5\x126\x94\x2\x3B7"+ - "\x3B9\x5\x1C\xF\x2\x3B8\x3B7\x3\x2\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9[\x3"+ - "\x2\x2\x2\x3BA\x3BB\a\x36\x2\x2\x3BB\x3BD\x5\x126\x94\x2\x3BC\x3BE\x5"+ - "\x1C\xF\x2\x3BD\x3BC\x3\x2\x2\x2\x3BD\x3BE\x3\x2\x2\x2\x3BE]\x3\x2\x2"+ - "\x2\x3BF\x3C0\aW\x2\x2\x3C0\x3C1\a\xF4\x2\x2\x3C1\x3C2\x5\x104\x83\x2"+ - "\x3C2_\x3\x2\x2\x2\x3C3\x3C4\aY\x2\x2\x3C4\x3C5\a\xF4\x2\x2\x3C5\x3CE"+ - "\x5\xDAn\x2\x3C6\x3C8\a\xF4\x2\x2\x3C7\x3C6\x3\x2\x2\x2\x3C7\x3C8\x3\x2"+ - "\x2\x2\x3C8\x3C9\x3\x2\x2\x2\x3C9\x3CB\a\t\x2\x2\x3CA\x3CC\a\xF4\x2\x2"+ - "\x3CB\x3CA\x3\x2\x2\x2\x3CB\x3CC\x3\x2\x2\x2\x3CC\x3CD\x3\x2\x2\x2\x3CD"+ - "\x3CF\x5\xCA\x66\x2\x3CE\x3C7\x3\x2\x2\x2\x3CF\x3D0\x3\x2\x2\x2\x3D0\x3CE"+ - "\x3\x2\x2\x2\x3D0\x3D1\x3\x2\x2\x2\x3D1\x61\x3\x2\x2\x2\x3D2\x3D3\a\\"+ - "\x2\x2\x3D3\x3D4\a\xF4\x2\x2\x3D4\x3D5\x5\xCA\x66\x2\x3D5\x63\x3\x2\x2"+ - "\x2\x3D6\x3D7\a\x62\x2\x2\x3D7\x3D9\a\xF4\x2\x2\x3D8\x3D6\x3\x2\x2\x2"+ - "\x3D8\x3D9\x3\x2\x2\x2\x3D9\x3DA\x3\x2\x2\x2\x3DA\x3DC\x5\xE8u\x2\x3DB"+ - "\x3DD\a\xF4\x2\x2\x3DC\x3DB\x3\x2\x2\x2\x3DC\x3DD\x3\x2\x2\x2\x3DD\x3DE"+ - "\x3\x2\x2\x2\x3DE\x3E0\a\xC1\x2\x2\x3DF\x3E1\a\xF4\x2\x2\x3E0\x3DF\x3"+ - "\x2\x2\x2\x3E0\x3E1\x3\x2\x2\x2\x3E1\x3E2\x3\x2\x2\x2\x3E2\x3E3\x5\xCA"+ - "\x66\x2\x3E3\x65\x3\x2\x2\x2\x3E4\x3E5\a\x65\x2\x2\x3E5\x3E6\a\xF4\x2"+ - "\x2\x3E6\x3E8\x5\xDAn\x2\x3E7\x3E9\a\xF4\x2\x2\x3E8\x3E7\x3\x2\x2\x2\x3E8"+ - "\x3E9\x3\x2\x2\x2\x3E9\x3EA\x3\x2\x2\x2\x3EA\x3EC\a\t\x2\x2\x3EB\x3ED"+ - "\a\xF4\x2\x2\x3EC\x3EB\x3\x2\x2\x2\x3EC\x3ED\x3\x2\x2\x2\x3ED\x3EE\x3"+ - "\x2\x2\x2\x3EE\x3EF\x5\xCA\x66\x2\x3EFg\x3\x2\x2\x2\x3F0\x3F1\a]\x2\x2"+ - "\x3F1\x3F2\a\xF4\x2\x2\x3F2\x3F3\x5\xCA\x66\x2\x3F3i\x3\x2\x2\x2\x3F4"+ - "\x3F5\a^\x2\x2\x3F5\x3F6\a\xF4\x2\x2\x3F6\x405\x5\xCA\x66\x2\x3F7\x3F9"+ - "\a\xF4\x2\x2\x3F8\x3F7\x3\x2\x2\x2\x3F8\x3F9\x3\x2\x2\x2\x3F9\x3FA\x3"+ - "\x2\x2\x2\x3FA\x3FC\a\t\x2\x2\x3FB\x3FD\a\xF4\x2\x2\x3FC\x3FB\x3\x2\x2"+ - "\x2\x3FC\x3FD\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2\x2\x3FE\x403\x5\xCA\x66\x2"+ - "\x3FF\x400\a\xF4\x2\x2\x400\x401\a\xAD\x2\x2\x401\x402\a\xF4\x2\x2\x402"+ - "\x404\x5\xCA\x66\x2\x403\x3FF\x3\x2\x2\x2\x403\x404\x3\x2\x2\x2\x404\x406"+ - "\x3\x2\x2\x2\x405\x3F8\x3\x2\x2\x2\x405\x406\x3\x2\x2\x2\x406k\x3\x2\x2"+ - "\x2\x407\x408\ai\x2\x2\x408\x409\a\xF4\x2\x2\x409\x40B\x5\xE8u\x2\x40A"+ - "\x40C\a\xF4\x2\x2\x40B\x40A\x3\x2\x2\x2\x40B\x40C\x3\x2\x2\x2\x40C\x40D"+ - "\x3\x2\x2\x2\x40D\x40F\a\xC1\x2\x2\x40E\x410\a\xF4\x2\x2\x40F\x40E\x3"+ - "\x2\x2\x2\x40F\x410\x3\x2\x2\x2\x410\x411\x3\x2\x2\x2\x411\x412\x5\xCA"+ - "\x66\x2\x412m\x3\x2\x2\x2\x413\x415\aj\x2\x2\x414\x416\a\xF4\x2\x2\x415"+ - "\x414\x3\x2\x2\x2\x415\x416\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x419"+ - "\x5\x104\x83\x2\x418\x41A\a\xF4\x2\x2\x419\x418\x3\x2\x2\x2\x419\x41A"+ - "\x3\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41D\a\xC1\x2\x2\x41C\x41E\a\xF4"+ - "\x2\x2\x41D\x41C\x3\x2\x2\x2\x41D\x41E\x3\x2\x2\x2\x41E\x41F\x3\x2\x2"+ - "\x2\x41F\x420\x5\xCA\x66\x2\x420o\x3\x2\x2\x2\x421\x425\x5r:\x2\x422\x424"+ - "\x5t;\x2\x423\x422\x3\x2\x2\x2\x424\x427\x3\x2\x2\x2\x425\x423\x3\x2\x2"+ - "\x2\x425\x426\x3\x2\x2\x2\x426\x429\x3\x2\x2\x2\x427\x425\x3\x2\x2\x2"+ - "\x428\x42A\x5v<\x2\x429\x428\x3\x2\x2\x2\x429\x42A\x3\x2\x2\x2\x42A\x42B"+ - "\x3\x2\x2\x2\x42B\x42C\an\x2\x2\x42Cq\x3\x2\x2\x2\x42D\x42F\ak\x2\x2\x42E"+ - "\x430\a\xF4\x2\x2\x42F\x42E\x3\x2\x2\x2\x42F\x430\x3\x2\x2\x2\x430\x431"+ - "\x3\x2\x2\x2\x431\x432\x5X-\x2\x432\x433\a\xF4\x2\x2\x433\x434\a\xAB\x2"+ - "\x2\x434\x43A\x5\x126\x94\x2\x435\x439\x5\xE\b\x2\x436\x439\x5\x16\f\x2"+ - "\x437\x439\x5\x1C\xF\x2\x438\x435\x3\x2\x2\x2\x438\x436\x3\x2\x2\x2\x438"+ - "\x437\x3\x2\x2\x2\x439\x43C\x3\x2\x2\x2\x43A\x438\x3\x2\x2\x2\x43A\x43B"+ - "\x3\x2\x2\x2\x43Bs\x3\x2\x2\x2\x43C\x43A\x3\x2\x2\x2\x43D\x43F\al\x2\x2"+ - "\x43E\x440\a\xF4\x2\x2\x43F\x43E\x3\x2\x2\x2\x43F\x440\x3\x2\x2\x2\x440"+ - "\x441\x3\x2\x2\x2\x441\x442\x5X-\x2\x442\x443\a\xF4\x2\x2\x443\x444\a"+ - "\xAB\x2\x2\x444\x44A\x5\x126\x94\x2\x445\x449\x5\xE\b\x2\x446\x449\x5"+ - "\x16\f\x2\x447\x449\x5\x1C\xF\x2\x448\x445\x3\x2\x2\x2\x448\x446\x3\x2"+ - "\x2\x2\x448\x447\x3\x2\x2\x2\x449\x44C\x3\x2\x2\x2\x44A\x448\x3\x2\x2"+ - "\x2\x44A\x44B\x3\x2\x2\x2\x44Bu\x3\x2\x2\x2\x44C\x44A\x3\x2\x2\x2\x44D"+ - "\x44E\am\x2\x2\x44E\x454\x5\x126\x94\x2\x44F\x453\x5\xE\b\x2\x450\x453"+ - "\x5\x16\f\x2\x451\x453\x5\x1C\xF\x2\x452\x44F\x3\x2\x2\x2\x452\x450\x3"+ - "\x2\x2\x2\x452\x451\x3\x2\x2\x2\x453\x456\x3\x2\x2\x2\x454\x452\x3\x2"+ - "\x2\x2\x454\x455\x3\x2\x2\x2\x455w\x3\x2\x2\x2\x456\x454\x3\x2\x2\x2\x457"+ - "\x459\ap\x2\x2\x458\x45A\a\xF4\x2\x2\x459\x458\x3\x2\x2\x2\x459\x45A\x3"+ - "\x2\x2\x2\x45A\x45B\x3\x2\x2\x2\x45B\x45D\a\xC5\x2\x2\x45C\x45E\a\xF4"+ - "\x2\x2\x45D\x45C\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\x3\x2\x2"+ - "\x2\x45F\x461\x5\xF4{\x2\x460\x462\a\xF4\x2\x2\x461\x460\x3\x2\x2\x2\x461"+ - "\x462\x3\x2\x2\x2\x462\x463\x3\x2\x2\x2\x463\x464\a\xCC\x2\x2\x464y\x3"+ - "\x2\x2\x2\x465\x466\aq\x2\x2\x466\x467\a\xF4\x2\x2\x467\x468\x5\xCA\x66"+ - "\x2\x468{\x3\x2\x2\x2\x469\x46A\as\x2\x2\x46A\x46B\a\xF4\x2\x2\x46B\x46C"+ - "\x5\xCA\x66\x2\x46C\x46D\a\xF4\x2\x2\x46D\x46E\a\x12\x2\x2\x46E\x46F\a"+ - "\xF4\x2\x2\x46F\x470\x5\xCA\x66\x2\x470}\x3\x2\x2\x2\x471\x472\t\x6\x2"+ - "\x2\x472\x479\a\xF4\x2\x2\x473\x474\aT\x2\x2\x474\x475\a\xF4\x2\x2\x475"+ - "\x47A\x5\xCA\x66\x2\x476\x477\a\x96\x2\x2\x477\x478\a\xF4\x2\x2\x478\x47A"+ - "\at\x2\x2\x479\x473\x3\x2\x2\x2\x479\x476\x3\x2\x2\x2\x47A\x7F\x3\x2\x2"+ - "\x2\x47B\x47C\ay\x2\x2\x47C\x47D\a\xF4\x2\x2\x47D\x47E\x5\xCA\x66\x2\x47E"+ - "\x47F\a\xF4\x2\x2\x47F\x480\aT\x2\x2\x480\x481\a\xF4\x2\x2\x481\x48C\x5"+ - "\xCA\x66\x2\x482\x484\a\xF4\x2\x2\x483\x482\x3\x2\x2\x2\x483\x484\x3\x2"+ - "\x2\x2\x484\x485\x3\x2\x2\x2\x485\x487\a\t\x2\x2\x486\x488\a\xF4\x2\x2"+ - "\x487\x486\x3\x2\x2\x2\x487\x488\x3\x2\x2\x2\x488\x489\x3\x2\x2\x2\x489"+ - "\x48B\x5\xCA\x66\x2\x48A\x483\x3\x2\x2\x2\x48B\x48E\x3\x2\x2\x2\x48C\x48A"+ - "\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x81\x3\x2\x2\x2\x48E\x48C\x3\x2"+ - "\x2\x2\x48F\x490\ay\x2\x2\x490\x491\a\xF4\x2\x2\x491\x492\x5\xCA\x66\x2"+ - "\x492\x493\a\xF4\x2\x2\x493\x494\aS\x2\x2\x494\x495\a\xF4\x2\x2\x495\x4A0"+ - "\x5\xCA\x66\x2\x496\x498\a\xF4\x2\x2\x497\x496\x3\x2\x2\x2\x497\x498\x3"+ - "\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49B\a\t\x2\x2\x49A\x49C\a\xF4\x2"+ - "\x2\x49B\x49A\x3\x2\x2\x2\x49B\x49C\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2"+ - "\x49D\x49F\x5\xCA\x66\x2\x49E\x497\x3\x2\x2\x2\x49F\x4A2\x3\x2\x2\x2\x4A0"+ - "\x49E\x3\x2\x2\x2\x4A0\x4A1\x3\x2\x2\x2\x4A1\x83\x3\x2\x2\x2\x4A2\x4A0"+ - "\x3\x2\x2\x2\x4A3\x4A4\a|\x2\x2\x4A4\x4A5\a\xF4\x2\x2\x4A5\x4A6\x5\xCA"+ - "\x66\x2\x4A6\x4A7\a\xF4\x2\x2\x4A7\x4A8\aO\x2\x2\x4A8\x4A9\a\xF4\x2\x2"+ - "\x4A9\x4AE\t\a\x2\x2\x4AA\x4AB\a\xF4\x2\x2\x4AB\x4AC\a\v\x2\x2\x4AC\x4AD"+ - "\a\xF4\x2\x2\x4AD\x4AF\t\b\x2\x2\x4AE\x4AA\x3\x2\x2\x2\x4AE\x4AF\x3\x2"+ - "\x2\x2\x4AF\x4B2\x3\x2\x2\x2\x4B0\x4B1\a\xF4\x2\x2\x4B1\x4B3\t\t\x2\x2"+ - "\x4B2\x4B0\x3\x2\x2\x2\x4B2\x4B3\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4"+ - "\x4B5\a\xF4\x2\x2\x4B5\x4B6\a\x12\x2\x2\x4B6\x4B7\a\xF4\x2\x2\x4B7\x4C2"+ - "\x5\xDAn\x2\x4B8\x4B9\a\xF4\x2\x2\x4B9\x4BB\a\x61\x2\x2\x4BA\x4BC\a\xF4"+ - "\x2\x2\x4BB\x4BA\x3\x2\x2\x2\x4BB\x4BC\x3\x2\x2\x2\x4BC\x4BD\x3\x2\x2"+ - "\x2\x4BD\x4BF\a\xC1\x2\x2\x4BE\x4C0\a\xF4\x2\x2\x4BF\x4BE\x3\x2\x2\x2"+ - "\x4BF\x4C0\x3\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C3\x5\xCA\x66\x2\x4C2"+ - "\x4B8\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x85\x3\x2\x2\x2\x4C4\x4D1"+ - "\x5\x88\x45\x2\x4C5\x4C7\a\xF4\x2\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3"+ - "\x2\x2\x2\x4C7\x4C8\x3\x2\x2\x2\x4C8\x4CA\t\n\x2\x2\x4C9\x4CB\a\xF4\x2"+ - "\x2\x4CA\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CD\x3\x2\x2\x2"+ - "\x4CC\x4CE\x5\x88\x45\x2\x4CD\x4CC\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE"+ - "\x4D0\x3\x2\x2\x2\x4CF\x4C6\x3\x2\x2\x2\x4D0\x4D3\x3\x2\x2\x2\x4D1\x4CF"+ - "\x3\x2\x2\x2\x4D1\x4D2\x3\x2\x2\x2\x4D2\x4E6\x3\x2\x2\x2\x4D3\x4D1\x3"+ - "\x2\x2\x2\x4D4\x4D6\x5\x88\x45\x2\x4D5\x4D4\x3\x2\x2\x2\x4D5\x4D6\x3\x2"+ - "\x2\x2\x4D6\x4E1\x3\x2\x2\x2\x4D7\x4D9\a\xF4\x2\x2\x4D8\x4D7\x3\x2\x2"+ - "\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9\x4DA\x3\x2\x2\x2\x4DA\x4DC\t\n\x2\x2\x4DB"+ - "\x4DD\a\xF4\x2\x2\x4DC\x4DB\x3\x2\x2\x2\x4DC\x4DD\x3\x2\x2\x2\x4DD\x4DF"+ - "\x3\x2\x2\x2\x4DE\x4E0\x5\x88\x45\x2\x4DF\x4DE\x3\x2\x2\x2\x4DF\x4E0\x3"+ - "\x2\x2\x2\x4E0\x4E2\x3\x2\x2\x2\x4E1\x4D8\x3\x2\x2\x2\x4E2\x4E3\x3\x2"+ - "\x2\x2\x4E3\x4E1\x3\x2\x2\x2\x4E3\x4E4\x3\x2\x2\x2\x4E4\x4E6\x3\x2\x2"+ - "\x2\x4E5\x4C4\x3\x2\x2\x2\x4E5\x4D5\x3\x2\x2\x2\x4E6\x87\x3\x2\x2\x2\x4E7"+ - "\x4F9\x5\xCA\x66\x2\x4E8\x4F6\t\v\x2\x2\x4E9\x4EB\a\xF4\x2\x2\x4EA\x4E9"+ - "\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC\x4EE\a\xC5"+ - "\x2\x2\x4ED\x4EF\a\xF4\x2\x2\x4EE\x4ED\x3\x2\x2\x2\x4EE\x4EF\x3\x2\x2"+ - "\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F2\x5\xF4{\x2\x4F1\x4F3\a\xF4\x2\x2\x4F2"+ - "\x4F1\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2\x4F3\x4F4\x3\x2\x2\x2\x4F4\x4F5"+ - "\a\xCC\x2\x2\x4F5\x4F7\x3\x2\x2\x2\x4F6\x4EA\x3\x2\x2\x2\x4F6\x4F7\x3"+ - "\x2\x2\x2\x4F7\x4F9\x3\x2\x2\x2\x4F8\x4E7\x3\x2\x2\x2\x4F8\x4E8\x3\x2"+ - "\x2\x2\x4F9\x89\x3\x2\x2\x2\x4FA\x4FB\a\x86\x2\x2\x4FB\x4FC\a\xF4\x2\x2"+ - "\x4FC\x4FE\x5\xDAn\x2\x4FD\x4FF\a\xF4\x2\x2\x4FE\x4FD\x3\x2\x2\x2\x4FE"+ - "\x4FF\x3\x2\x2\x2\x4FF\x500\x3\x2\x2\x2\x500\x505\a\t\x2\x2\x501\x503"+ - "\a\xF4\x2\x2\x502\x501\x3\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503\x504\x3"+ - "\x2\x2\x2\x504\x506\x5\x86\x44\x2\x505\x502\x3\x2\x2\x2\x505\x506\x3\x2"+ - "\x2\x2\x506\x8B\x3\x2\x2\x2\x507\x508\x5\x11C\x8F\x2\x508\x509\a\xF4\x2"+ - "\x2\x509\x50B\x3\x2\x2\x2\x50A\x507\x3\x2\x2\x2\x50A\x50B\x3\x2\x2\x2"+ - "\x50B\x50E\x3\x2\x2\x2\x50C\x50D\a\xA4\x2\x2\x50D\x50F\a\xF4\x2\x2\x50E"+ - "\x50C\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x511"+ - "\a\x88\x2\x2\x511\x512\a\xF4\x2\x2\x512\x514\x5\x104\x83\x2\x513\x515"+ - "\x5\x11A\x8E\x2\x514\x513\x3\x2\x2\x2\x514\x515\x3\x2\x2\x2\x515\x51A"+ - "\x3\x2\x2\x2\x516\x518\a\xF4\x2\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3"+ - "\x2\x2\x2\x518\x519\x3\x2\x2\x2\x519\x51B\x5\xFA~\x2\x51A\x517\x3\x2\x2"+ - "\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51E\x3\x2\x2\x2\x51C\x51D\a\xF4\x2\x2"+ - "\x51D\x51F\x5\x106\x84\x2\x51E\x51C\x3\x2\x2\x2\x51E\x51F\x3\x2\x2\x2"+ - "\x51F\x520\x3\x2\x2\x2\x520\x522\x5\x126\x94\x2\x521\x523\x5\x1C\xF\x2"+ - "\x522\x521\x3\x2\x2\x2\x522\x523\x3\x2\x2\x2\x523\x524\x3\x2\x2\x2\x524"+ - "\x525\a<\x2\x2\x525\x8D\x3\x2\x2\x2\x526\x527\x5\x11C\x8F\x2\x527\x528"+ - "\a\xF4\x2\x2\x528\x52A\x3\x2\x2\x2\x529\x526\x3\x2\x2\x2\x529\x52A\x3"+ - "\x2\x2\x2\x52A\x52D\x3\x2\x2\x2\x52B\x52C\a\xA4\x2\x2\x52C\x52E\a\xF4"+ - "\x2\x2\x52D\x52B\x3\x2\x2\x2\x52D\x52E\x3\x2\x2\x2\x52E\x52F\x3\x2\x2"+ - "\x2\x52F\x530\a\x8A\x2\x2\x530\x531\a\xF4\x2\x2\x531\x536\x5\x104\x83"+ - "\x2\x532\x534\a\xF4\x2\x2\x533\x532\x3\x2\x2\x2\x533\x534\x3\x2\x2\x2"+ - "\x534\x535\x3\x2\x2\x2\x535\x537\x5\xFA~\x2\x536\x533\x3\x2\x2\x2\x536"+ - "\x537\x3\x2\x2\x2\x537\x538\x3\x2\x2\x2\x538\x53A\x5\x126\x94\x2\x539"+ - "\x53B\x5\x1C\xF\x2\x53A\x539\x3\x2\x2\x2\x53A\x53B\x3\x2\x2\x2\x53B\x53C"+ - "\x3\x2\x2\x2\x53C\x53D\a<\x2\x2\x53D\x8F\x3\x2\x2\x2\x53E\x53F\x5\x11C"+ - "\x8F\x2\x53F\x540\a\xF4\x2\x2\x540\x542\x3\x2\x2\x2\x541\x53E\x3\x2\x2"+ - "\x2\x541\x542\x3\x2\x2\x2\x542\x545\x3\x2\x2\x2\x543\x544\a\xA4\x2\x2"+ - "\x544\x546\a\xF4\x2\x2\x545\x543\x3\x2\x2\x2\x545\x546\x3\x2\x2\x2\x546"+ - "\x547\x3\x2\x2\x2\x547\x548\a\x89\x2\x2\x548\x549\a\xF4\x2\x2\x549\x54E"+ - "\x5\x104\x83\x2\x54A\x54C\a\xF4\x2\x2\x54B\x54A\x3\x2\x2\x2\x54B\x54C"+ - "\x3\x2\x2\x2\x54C\x54D\x3\x2\x2\x2\x54D\x54F\x5\xFA~\x2\x54E\x54B\x3\x2"+ - "\x2\x2\x54E\x54F\x3\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x552\x5\x126\x94"+ - "\x2\x551\x553\x5\x1C\xF\x2\x552\x551\x3\x2\x2\x2\x552\x553\x3\x2\x2\x2"+ - "\x553\x554\x3\x2\x2\x2\x554\x555\a<\x2\x2\x555\x91\x3\x2\x2\x2\x556\x557"+ - "\a\x8D\x2\x2\x557\x558\a\xF4\x2\x2\x558\x55A\x5\xDAn\x2\x559\x55B\a\xF4"+ - "\x2\x2\x55A\x559\x3\x2\x2\x2\x55A\x55B\x3\x2\x2\x2\x55B\x55C\x3\x2\x2"+ - "\x2\x55C\x55E\a\t\x2\x2\x55D\x55F\a\xF4\x2\x2\x55E\x55D\x3\x2\x2\x2\x55E"+ - "\x55F\x3\x2\x2\x2\x55F\x561\x3\x2\x2\x2\x560\x562\x5\xCA\x66\x2\x561\x560"+ - "\x3\x2\x2\x2\x561\x562\x3\x2\x2\x2\x562\x564\x3\x2\x2\x2\x563\x565\a\xF4"+ - "\x2\x2\x564\x563\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2\x565\x566\x3\x2\x2"+ - "\x2\x566\x568\a\t\x2\x2\x567\x569\a\xF4\x2\x2\x568\x567\x3\x2\x2\x2\x568"+ - "\x569\x3\x2\x2\x2\x569\x56A\x3\x2\x2\x2\x56A\x56B\x5\xCA\x66\x2\x56B\x93"+ - "\x3\x2\x2\x2\x56C\x56D\a\x90\x2\x2\x56D\x56E\a\xF4\x2\x2\x56E\x57D\x5"+ - "\x104\x83\x2\x56F\x571\a\xF4\x2\x2\x570\x56F\x3\x2\x2\x2\x570\x571\x3"+ - "\x2\x2\x2\x571\x572\x3\x2\x2\x2\x572\x574\a\xC5\x2\x2\x573\x575\a\xF4"+ - "\x2\x2\x574\x573\x3\x2\x2\x2\x574\x575\x3\x2\x2\x2\x575\x57A\x3\x2\x2"+ - "\x2\x576\x578\x5\xF4{\x2\x577\x579\a\xF4\x2\x2\x578\x577\x3\x2\x2\x2\x578"+ - "\x579\x3\x2\x2\x2\x579\x57B\x3\x2\x2\x2\x57A\x576\x3\x2\x2\x2\x57A\x57B"+ - "\x3\x2\x2\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57E\a\xCC\x2\x2\x57D\x570\x3"+ - "\x2\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x95\x3\x2\x2\x2\x57F\x582\a\x8F\x2"+ - "\x2\x580\x581\a\xF4\x2\x2\x581\x583\x5\xCA\x66\x2\x582\x580\x3\x2\x2\x2"+ - "\x582\x583\x3\x2\x2\x2\x583\x97\x3\x2\x2\x2\x584\x585\a\x93\x2\x2\x585"+ - "\x588\a\xF4\x2\x2\x586\x587\a\x85\x2\x2\x587\x589\a\xF4\x2\x2\x588\x586"+ - "\x3\x2\x2\x2\x588\x589\x3\x2\x2\x2\x589\x58A\x3\x2\x2\x2\x58A\x595\x5"+ - "\x9AN\x2\x58B\x58D\a\xF4\x2\x2\x58C\x58B\x3\x2\x2\x2\x58C\x58D\x3\x2\x2"+ - "\x2\x58D\x58E\x3\x2\x2\x2\x58E\x590\a\t\x2\x2\x58F\x591\a\xF4\x2\x2\x590"+ - "\x58F\x3\x2\x2\x2\x590\x591\x3\x2\x2\x2\x591\x592\x3\x2\x2\x2\x592\x594"+ - "\x5\x9AN\x2\x593\x58C\x3\x2\x2\x2\x594\x597\x3\x2\x2\x2\x595\x593\x3\x2"+ - "\x2\x2\x595\x596\x3\x2\x2\x2\x596\x99\x3\x2\x2\x2\x597\x595\x3\x2\x2\x2"+ - "\x598\x59A\x5\xE8u\x2\x599\x59B\a\xF4\x2\x2\x59A\x599\x3\x2\x2\x2\x59A"+ - "\x59B\x3\x2\x2\x2\x59B\x59C\x3\x2\x2\x2\x59C\x59E\a\xC5\x2\x2\x59D\x59F"+ - "\a\xF4\x2\x2\x59E\x59D\x3\x2\x2\x2\x59E\x59F\x3\x2\x2\x2\x59F\x5A0\x3"+ - "\x2\x2\x2\x5A0\x5A2\x5\x100\x81\x2\x5A1\x5A3\a\xF4\x2\x2\x5A2\x5A1\x3"+ - "\x2\x2\x2\x5A2\x5A3\x3\x2\x2\x2\x5A3\x5A4\x3\x2\x2\x2\x5A4\x5A7\a\xCC"+ - "\x2\x2\x5A5\x5A6\a\xF4\x2\x2\x5A6\x5A8\x5\x106\x84\x2\x5A7\x5A5\x3\x2"+ - "\x2\x2\x5A7\x5A8\x3\x2\x2\x2\x5A8\x9B\x3\x2\x2\x2\x5A9\x5AA\a\x95\x2\x2"+ - "\x5AA\x9D\x3\x2\x2\x2\x5AB\x5B1\a\x96\x2\x2\x5AC\x5AF\a\xF4\x2\x2\x5AD"+ - "\x5B0\at\x2\x2\x5AE\x5B0\x5\x104\x83\x2\x5AF\x5AD\x3\x2\x2\x2\x5AF\x5AE"+ - "\x3\x2\x2\x2\x5B0\x5B2\x3\x2\x2\x2\x5B1\x5AC\x3\x2\x2\x2\x5B1\x5B2\x3"+ - "\x2\x2\x2\x5B2\x9F\x3\x2\x2\x2\x5B3\x5B4\a\x97\x2\x2\x5B4\xA1\x3\x2\x2"+ - "\x2\x5B5\x5B6\a\x98\x2\x2\x5B6\x5B7\a\xF4\x2\x2\x5B7\x5B8\x5\xCA\x66\x2"+ - "\x5B8\xA3\x3\x2\x2\x2\x5B9\x5BA\a\x99\x2\x2\x5BA\x5BB\a\xF4\x2\x2\x5BB"+ - "\x5BD\x5\xE8u\x2\x5BC\x5BE\a\xF4\x2\x2\x5BD\x5BC\x3\x2\x2\x2\x5BD\x5BE"+ - "\x3\x2\x2\x2\x5BE\x5BF\x3\x2\x2\x2\x5BF\x5C1\a\xC1\x2\x2\x5C0\x5C2\a\xF4"+ - "\x2\x2\x5C1\x5C0\x3\x2\x2\x2\x5C1\x5C2\x3\x2\x2\x2\x5C2\x5C3\x3\x2\x2"+ - "\x2\x5C3\x5C4\x5\xCA\x66\x2\x5C4\xA5\x3\x2\x2\x2\x5C5\x5C6\a\x9A\x2\x2"+ - "\x5C6\x5C7\a\xF4\x2\x2\x5C7\x5C9\x5\xCA\x66\x2\x5C8\x5CA\a\xF4\x2\x2\x5C9"+ - "\x5C8\x3\x2\x2\x2\x5C9\x5CA\x3\x2\x2\x2\x5CA\x5CB\x3\x2\x2\x2\x5CB\x5CD"+ - "\a\t\x2\x2\x5CC\x5CE\a\xF4\x2\x2\x5CD\x5CC\x3\x2\x2\x2\x5CD\x5CE\x3\x2"+ - "\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0\x5\xCA\x66\x2\x5D0\xA7\x3\x2\x2"+ - "\x2\x5D1\x5D2\a\x9B\x2\x2\x5D2\x5D3\a\xF4\x2\x2\x5D3\x5D5\x5\xCA\x66\x2"+ - "\x5D4\x5D6\a\xF4\x2\x2\x5D5\x5D4\x3\x2\x2\x2\x5D5\x5D6\x3\x2\x2\x2\x5D6"+ - "\x5D7\x3\x2\x2\x2\x5D7\x5D9\a\t\x2\x2\x5D8\x5DA\a\xF4\x2\x2\x5D9\x5D8"+ - "\x3\x2\x2\x2\x5D9\x5DA\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2\x5DB\x5DD\x5"+ - "\xCA\x66\x2\x5DC\x5DE\a\xF4\x2\x2\x5DD\x5DC\x3\x2\x2\x2\x5DD\x5DE\x3\x2"+ - "\x2\x2\x5DE\x5DF\x3\x2\x2\x2\x5DF\x5E1\a\t\x2\x2\x5E0\x5E2\a\xF4\x2\x2"+ - "\x5E1\x5E0\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2\x5E3\x3\x2\x2\x2\x5E3"+ - "\x5E5\x5\xCA\x66\x2\x5E4\x5E6\a\xF4\x2\x2\x5E5\x5E4\x3\x2\x2\x2\x5E5\x5E6"+ - "\x3\x2\x2\x2\x5E6\x5E7\x3\x2\x2\x2\x5E7\x5E9\a\t\x2\x2\x5E8\x5EA\a\xF4"+ - "\x2\x2\x5E9\x5E8\x3\x2\x2\x2\x5E9\x5EA\x3\x2\x2\x2\x5EA\x5EB\x3\x2\x2"+ - "\x2\x5EB\x5EC\x5\xCA\x66\x2\x5EC\xA9\x3\x2\x2\x2\x5ED\x5EE\a\x9C\x2\x2"+ - "\x5EE\x5EF\a\xF4\x2\x2\x5EF\x5F1\x5\xDAn\x2\x5F0\x5F2\a\xF4\x2\x2\x5F1"+ - "\x5F0\x3\x2\x2\x2\x5F1\x5F2\x3\x2\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F5"+ - "\a\t\x2\x2\x5F4\x5F6\a\xF4\x2\x2\x5F5\x5F4\x3\x2\x2\x2\x5F5\x5F6\x3\x2"+ - "\x2\x2\x5F6\x5F7\x3\x2\x2\x2\x5F7\x5F8\x5\xCA\x66\x2\x5F8\xAB\x3\x2\x2"+ - "\x2\x5F9\x5FA\a\x9D\x2\x2\x5FA\x5FB\a\xF4\x2\x2\x5FB\x5FC\a\x1B\x2\x2"+ - "\x5FC\x5FD\a\xF4\x2\x2\x5FD\x5FE\x5\xCA\x66\x2\x5FE\x602\x5\x126\x94\x2"+ - "\x5FF\x601\x5\xB0Y\x2\x600\x5FF\x3\x2\x2\x2\x601\x604\x3\x2\x2\x2\x602"+ - "\x600\x3\x2\x2\x2\x602\x603\x3\x2\x2\x2\x603\x605\x3\x2\x2\x2\x604\x602"+ - "\x3\x2\x2\x2\x605\x606\a=\x2\x2\x606\xAD\x3\x2\x2\x2\x607\x609\aZ\x2\x2"+ - "\x608\x60A\a\xF4\x2\x2\x609\x608\x3\x2\x2\x2\x609\x60A\x3\x2\x2\x2\x60A"+ - "\x60B\x3\x2\x2\x2\x60B\x60D\x5\x10C\x87\x2\x60C\x60E\a\xF4\x2\x2\x60D"+ - "\x60C\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610"+ - "\x5\xCA\x66\x2\x610\x619\x3\x2\x2\x2\x611\x612\x5\xCA\x66\x2\x612\x613"+ - "\a\xF4\x2\x2\x613\x614\a\xAD\x2\x2\x614\x615\a\xF4\x2\x2\x615\x616\x5"+ - "\xCA\x66\x2\x616\x619\x3\x2\x2\x2\x617\x619\x5\xCA\x66\x2\x618\x607\x3"+ - "\x2\x2\x2\x618\x611\x3\x2\x2\x2\x618\x617\x3\x2\x2\x2\x619\xAF\x3\x2\x2"+ - "\x2\x61A\x61B\a\x1B\x2\x2\x61B\x61C\a\xF4\x2\x2\x61C\x61D\x5\xB2Z\x2\x61D"+ - "\x61F\x5\x126\x94\x2\x61E\x620\x5\x1C\xF\x2\x61F\x61E\x3\x2\x2\x2\x61F"+ - "\x620\x3\x2\x2\x2\x620\xB1\x3\x2\x2\x2\x621\x631\a\x36\x2\x2\x622\x62D"+ - "\x5\xAEX\x2\x623\x625\a\xF4\x2\x2\x624\x623\x3\x2\x2\x2\x624\x625\x3\x2"+ - "\x2\x2\x625\x626\x3\x2\x2\x2\x626\x628\a\t\x2\x2\x627\x629\a\xF4\x2\x2"+ - "\x628\x627\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62A\x3\x2\x2\x2\x62A"+ - "\x62C\x5\xAEX\x2\x62B\x624\x3\x2\x2\x2\x62C\x62F\x3\x2\x2\x2\x62D\x62B"+ - "\x3\x2\x2\x2\x62D\x62E\x3\x2\x2\x2\x62E\x631\x3\x2\x2\x2\x62F\x62D\x3"+ - "\x2\x2\x2\x630\x621\x3\x2\x2\x2\x630\x622\x3\x2\x2\x2\x631\xB3\x3\x2\x2"+ - "\x2\x632\x633\a\x9E\x2\x2\x633\x634\a\xF4\x2\x2\x634\x63D\x5\xCA\x66\x2"+ - "\x635\x637\a\xF4\x2\x2\x636\x635\x3\x2\x2\x2\x636\x637\x3\x2\x2\x2\x637"+ - "\x638\x3\x2\x2\x2\x638\x63A\a\t\x2\x2\x639\x63B\a\xF4\x2\x2\x63A\x639"+ - "\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63C\x3\x2\x2\x2\x63C\x63E\x5"+ - "\xCA\x66\x2\x63D\x636\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2\x63E\xB5\x3\x2"+ - "\x2\x2\x63F\x640\a\xA0\x2\x2\x640\x641\a\xF4\x2\x2\x641\x643\x5\xCA\x66"+ - "\x2\x642\x644\a\xF4\x2\x2\x643\x642\x3\x2\x2\x2\x643\x644\x3\x2\x2\x2"+ - "\x644\x645\x3\x2\x2\x2\x645\x647\a\t\x2\x2\x646\x648\a\xF4\x2\x2\x647"+ - "\x646\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648\x649\x3\x2\x2\x2\x649\x64A"+ - "\x5\xCA\x66\x2\x64A\xB7\x3\x2\x2\x2\x64B\x64C\a\x9F\x2\x2\x64C\x64D\a"+ - "\xF4\x2\x2\x64D\x64F\x5\xE8u\x2\x64E\x650\a\xF4\x2\x2\x64F\x64E\x3\x2"+ - "\x2\x2\x64F\x650\x3\x2\x2\x2\x650\x651\x3\x2\x2\x2\x651\x653\a\xC1\x2"+ - "\x2\x652\x654\a\xF4\x2\x2\x653\x652\x3\x2\x2\x2\x653\x654\x3\x2\x2\x2"+ - "\x654\x655\x3\x2\x2\x2\x655\x656\x5\xCA\x66\x2\x656\xB9\x3\x2\x2\x2\x657"+ - "\x658\a\xA6\x2\x2\x658\xBB\x3\x2\x2\x2\x659\x65A\x5\x11C\x8F\x2\x65A\x65B"+ - "\a\xF4\x2\x2\x65B\x65D\x3\x2\x2\x2\x65C\x659\x3\x2\x2\x2\x65C\x65D\x3"+ - "\x2\x2\x2\x65D\x660\x3\x2\x2\x2\x65E\x65F\a\xA4\x2\x2\x65F\x661\a\xF4"+ - "\x2\x2\x660\x65E\x3\x2\x2\x2\x660\x661\x3\x2\x2\x2\x661\x662\x3\x2\x2"+ - "\x2\x662\x664\a\xA8\x2\x2\x663\x665\a\xF4\x2\x2\x664\x663\x3\x2\x2\x2"+ - "\x664\x665\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2\x666\x66B\x5\x104\x83\x2"+ - "\x667\x669\a\xF4\x2\x2\x668\x667\x3\x2\x2\x2\x668\x669\x3\x2\x2\x2\x669"+ - "\x66A\x3\x2\x2\x2\x66A\x66C\x5\xFA~\x2\x66B\x668\x3\x2\x2\x2\x66B\x66C"+ - "\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2\x66D\x66F\x5\x126\x94\x2\x66E\x670"+ - "\x5\x1C\xF\x2\x66F\x66E\x3\x2\x2\x2\x66F\x670\x3\x2\x2\x2\x670\x671\x3"+ - "\x2\x2\x2\x671\x672\a>\x2\x2\x672\xBD\x3\x2\x2\x2\x673\x675\a\xAC\x2\x2"+ - "\x674\x676\a\xF4\x2\x2\x675\x674\x3\x2\x2\x2\x675\x676\x3\x2\x2\x2\x676"+ - "\x677\x3\x2\x2\x2\x677\x679\a\xC1\x2\x2\x678\x67A\a\xF4\x2\x2\x679\x678"+ - "\x3\x2\x2\x2\x679\x67A\x3\x2\x2\x2\x67A\x67B\x3\x2\x2\x2\x67B\x67C\x5"+ - "\xCA\x66\x2\x67C\xBF\x3\x2\x2\x2\x67D\x67E\x5\x11C\x8F\x2\x67E\x67F\a"+ - "\xF4\x2\x2\x67F\x681\x3\x2\x2\x2\x680\x67D\x3\x2\x2\x2\x680\x681\x3\x2"+ - "\x2\x2\x681\x682\x3\x2\x2\x2\x682\x683\a\xAF\x2\x2\x683\x684\a\xF4\x2"+ - "\x2\x684\x685\x5\x104\x83\x2\x685\x689\x5\x126\x94\x2\x686\x688\x5\xC2"+ - "\x62\x2\x687\x686\x3\x2\x2\x2\x688\x68B\x3\x2\x2\x2\x689\x687\x3\x2\x2"+ - "\x2\x689\x68A\x3\x2\x2\x2\x68A\x68C\x3\x2\x2\x2\x68B\x689\x3\x2\x2\x2"+ - "\x68C\x68D\a?\x2\x2\x68D\xC1\x3\x2\x2\x2\x68E\x69D\x5\x104\x83\x2\x68F"+ - "\x691\a\xF4\x2\x2\x690\x68F\x3\x2\x2\x2\x690\x691\x3\x2\x2\x2\x691\x692"+ - "\x3\x2\x2\x2\x692\x697\a\xC5\x2\x2\x693\x695\a\xF4\x2\x2\x694\x693\x3"+ - "\x2\x2\x2\x694\x695\x3\x2\x2\x2\x695\x696\x3\x2\x2\x2\x696\x698\x5\x100"+ - "\x81\x2\x697\x694\x3\x2\x2\x2\x697\x698\x3\x2\x2\x2\x698\x69A\x3\x2\x2"+ - "\x2\x699\x69B\a\xF4\x2\x2\x69A\x699\x3\x2\x2\x2\x69A\x69B\x3\x2\x2\x2"+ - "\x69B\x69C\x3\x2\x2\x2\x69C\x69E\a\xCC\x2\x2\x69D\x690\x3\x2\x2\x2\x69D"+ - "\x69E\x3\x2\x2\x2\x69E\x6A1\x3\x2\x2\x2\x69F\x6A0\a\xF4\x2\x2\x6A0\x6A2"+ - "\x5\x106\x84\x2\x6A1\x69F\x3\x2\x2\x2\x6A1\x6A2\x3\x2\x2\x2\x6A2\x6A3"+ - "\x3\x2\x2\x2\x6A3\x6A4\x5\x126\x94\x2\x6A4\xC3\x3\x2\x2\x2\x6A5\x6A6\a"+ - "\xB0\x2\x2\x6A6\x6A7\a\xF4\x2\x2\x6A7\x6AC\x5\xCA\x66\x2\x6A8\x6A9\a\xF4"+ - "\x2\x2\x6A9\x6AA\aZ\x2\x2\x6AA\x6AB\a\xF4\x2\x2\x6AB\x6AD\x5\x118\x8D"+ - "\x2\x6AC\x6A8\x3\x2\x2\x2\x6AC\x6AD\x3\x2\x2\x2\x6AD\xC5\x3\x2\x2\x2\x6AE"+ - "\x6AF\a\xB1\x2\x2\x6AF\x6B0\a\xF4\x2\x2\x6B0\x6B1\x5\xCA\x66\x2\x6B1\xC7"+ - "\x3\x2\x2\x2\x6B2\x6B3\a\xB2\x2\x2\x6B3\x6B4\a\xF4\x2\x2\x6B4\x6C3\x5"+ - "\xDAn\x2\x6B5\x6B7\a\xF4\x2\x2\x6B6\x6B5\x3\x2\x2\x2\x6B6\x6B7\x3\x2\x2"+ - "\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6BA\a\t\x2\x2\x6B9\x6BB\a\xF4\x2\x2\x6BA"+ - "\x6B9\x3\x2\x2\x2\x6BA\x6BB\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6C1"+ - "\x5\xCA\x66\x2\x6BD\x6BE\a\xF4\x2\x2\x6BE\x6BF\a\xAD\x2\x2\x6BF\x6C0\a"+ - "\xF4\x2\x2\x6C0\x6C2\x5\xCA\x66\x2\x6C1\x6BD\x3\x2\x2\x2\x6C1\x6C2\x3"+ - "\x2\x2\x2\x6C2\x6C4\x3\x2\x2\x2\x6C3\x6B6\x3\x2\x2\x2\x6C3\x6C4\x3\x2"+ - "\x2\x2\x6C4\xC9\x3\x2\x2\x2\x6C5\x6C6\b\x66\x1\x2\x6C6\x6C8\au\x2\x2\x6C7"+ - "\x6C9\a\xF4\x2\x2\x6C8\x6C7\x3\x2\x2\x2\x6C8\x6C9\x3\x2\x2\x2\x6C9\x6CA"+ - "\x3\x2\x2\x2\x6CA\x6FD\x5\xCA\x66\x15\x6CB\x6CD\a\f\x2\x2\x6CC\x6CE\a"+ - "\xF4\x2\x2\x6CD\x6CC\x3\x2\x2\x2\x6CD\x6CE\x3\x2\x2\x2\x6CE\x6CF\x3\x2"+ - "\x2\x2\x6CF\x6FD\x5\xCA\x66\x12\x6D0\x6D2\x5\xE8u\x2\x6D1\x6D3\a\xF4\x2"+ - "\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2"+ - "\x6D4\x6D6\a\xBE\x2\x2\x6D5\x6D7\a\xF4\x2\x2\x6D6\x6D5\x3\x2\x2\x2\x6D6"+ - "\x6D7\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8\x6D9\x5\xCA\x66\x11\x6D9"+ - "\x6FD\x3\x2\x2\x2\x6DA\x6DC\a\xC7\x2\x2\x6DB\x6DD\a\xF4\x2\x2\x6DC\x6DB"+ - "\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x6DE\x3\x2\x2\x2\x6DE\x6FD\x5"+ - "\xCA\x66\xF\x6DF\x6E1\av\x2\x2\x6E0\x6E2\a\xF4\x2\x2\x6E1\x6E0\x3\x2\x2"+ - "\x2\x6E1\x6E2\x3\x2\x2\x2\x6E2\x6E3\x3\x2\x2\x2\x6E3\x6FD\x5\xCA\x66\b"+ - "\x6E4\x6FD\x5\x116\x8C\x2\x6E5\x6FD\x5\xE8u\x2\x6E6\x6E8\a\xC5\x2\x2\x6E7"+ - "\x6E9\a\xF4\x2\x2\x6E8\x6E7\x3\x2\x2\x2\x6E8\x6E9\x3\x2\x2\x2\x6E9\x6EA"+ - "\x3\x2\x2\x2\x6EA\x6F5\x5\xCA\x66\x2\x6EB\x6ED\a\xF4\x2\x2\x6EC\x6EB\x3"+ - "\x2\x2\x2\x6EC\x6ED\x3\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x6F0\a\t\x2"+ - "\x2\x6EF\x6F1\a\xF4\x2\x2\x6F0\x6EF\x3\x2\x2\x2\x6F0\x6F1\x3\x2\x2\x2"+ - "\x6F1\x6F2\x3\x2\x2\x2\x6F2\x6F4\x5\xCA\x66\x2\x6F3\x6EC\x3\x2\x2\x2\x6F4"+ - "\x6F7\x3\x2\x2\x2\x6F5\x6F3\x3\x2\x2\x2\x6F5\x6F6\x3\x2\x2\x2\x6F6\x6F8"+ - "\x3\x2\x2\x2\x6F7\x6F5\x3\x2\x2\x2\x6F8\x6F9\a\xCC\x2\x2\x6F9\x6FD\x3"+ - "\x2\x2\x2\x6FA\x6FD\x5\xC4\x63\x2\x6FB\x6FD\x5x=\x2\x6FC\x6C5\x3\x2\x2"+ - "\x2\x6FC\x6CB\x3\x2\x2\x2\x6FC\x6D0\x3\x2\x2\x2\x6FC\x6DA\x3\x2\x2\x2"+ - "\x6FC\x6DF\x3\x2\x2\x2\x6FC\x6E4\x3\x2\x2\x2\x6FC\x6E5\x3\x2\x2\x2\x6FC"+ - "\x6E6\x3\x2\x2\x2\x6FC\x6FA\x3\x2\x2\x2\x6FC\x6FB\x3\x2\x2\x2\x6FD\x76C"+ - "\x3\x2\x2\x2\x6FE\x700\f\x10\x2\x2\x6FF\x701\a\xF4\x2\x2\x700\x6FF\x3"+ - "\x2\x2\x2\x700\x701\x3\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x704\a\xCB"+ - "\x2\x2\x703\x705\a\xF4\x2\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2"+ - "\x2\x705\x706\x3\x2\x2\x2\x706\x76B\x5\xCA\x66\x11\x707\x709\f\xE\x2\x2"+ - "\x708\x70A\a\xF4\x2\x2\x709\x708\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A"+ - "\x70B\x3\x2\x2\x2\x70B\x70D\t\f\x2\x2\x70C\x70E\a\xF4\x2\x2\x70D\x70C"+ - "\x3\x2\x2\x2\x70D\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x76B\x5"+ - "\xCA\x66\xF\x710\x712\f\r\x2\x2\x711\x713\a\xF4\x2\x2\x712\x711\x3\x2"+ - "\x2\x2\x712\x713\x3\x2\x2\x2\x713\x714\x3\x2\x2\x2\x714\x716\a\xC0\x2"+ - "\x2\x715\x717\a\xF4\x2\x2\x716\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2"+ - "\x717\x718\x3\x2\x2\x2\x718\x76B\x5\xCA\x66\xE\x719\x71B\f\f\x2\x2\x71A"+ - "\x71C\a\xF4\x2\x2\x71B\x71A\x3\x2\x2\x2\x71B\x71C\x3\x2\x2\x2\x71C\x71D"+ - "\x3\x2\x2\x2\x71D\x71F\ar\x2\x2\x71E\x720\a\xF4\x2\x2\x71F\x71E\x3\x2"+ - "\x2\x2\x71F\x720\x3\x2\x2\x2\x720\x721\x3\x2\x2\x2\x721\x76B\x5\xCA\x66"+ - "\r\x722\x724\f\v\x2\x2\x723\x725\a\xF4\x2\x2\x724\x723\x3\x2\x2\x2\x724"+ - "\x725\x3\x2\x2\x2\x725\x726\x3\x2\x2\x2\x726\x728\t\r\x2\x2\x727\x729"+ - "\a\xF4\x2\x2\x728\x727\x3\x2\x2\x2\x728\x729\x3\x2\x2\x2\x729\x72A\x3"+ - "\x2\x2\x2\x72A\x76B\x5\xCA\x66\f\x72B\x72D\f\n\x2\x2\x72C\x72E\a\xF4\x2"+ - "\x2\x72D\x72C\x3\x2\x2\x2\x72D\x72E\x3\x2\x2\x2\x72E\x72F\x3\x2\x2\x2"+ - "\x72F\x731\a\xBD\x2\x2\x730\x732\a\xF4\x2\x2\x731\x730\x3\x2\x2\x2\x731"+ - "\x732\x3\x2\x2\x2\x732\x733\x3\x2\x2\x2\x733\x76B\x5\xCA\x66\v\x734\x736"+ - "\f\t\x2\x2\x735\x737\a\xF4\x2\x2\x736\x735\x3\x2\x2\x2\x736\x737\x3\x2"+ - "\x2\x2\x737\x738\x3\x2\x2\x2\x738\x73A\t\xE\x2\x2\x739\x73B\a\xF4\x2\x2"+ - "\x73A\x739\x3\x2\x2\x2\x73A\x73B\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C"+ - "\x76B\x5\xCA\x66\n\x73D\x73F\f\a\x2\x2\x73E\x740\a\xF4\x2\x2\x73F\x73E"+ - "\x3\x2\x2\x2\x73F\x740\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\a\xE"+ - "\x2\x2\x742\x744\a\xF4\x2\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2\x2"+ - "\x2\x744\x745\x3\x2\x2\x2\x745\x76B\x5\xCA\x66\b\x746\x748\f\x6\x2\x2"+ - "\x747\x749\a\xF4\x2\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2\x749"+ - "\x74A\x3\x2\x2\x2\x74A\x74C\a\x82\x2\x2\x74B\x74D\a\xF4\x2\x2\x74C\x74B"+ - "\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x76B\x5"+ - "\xCA\x66\a\x74F\x751\f\x5\x2\x2\x750\x752\a\xF4\x2\x2\x751\x750\x3\x2"+ - "\x2\x2\x751\x752\x3\x2\x2\x2\x752\x753\x3\x2\x2\x2\x753\x755\a\xBC\x2"+ - "\x2\x754\x756\a\xF4\x2\x2\x755\x754\x3\x2\x2\x2\x755\x756\x3\x2\x2\x2"+ - "\x756\x757\x3\x2\x2\x2\x757\x76B\x5\xCA\x66\x6\x758\x75A\f\x4\x2\x2\x759"+ - "\x75B\a\xF4\x2\x2\x75A\x759\x3\x2\x2\x2\x75A\x75B\x3\x2\x2\x2\x75B\x75C"+ - "\x3\x2\x2\x2\x75C\x75E\a\x43\x2\x2\x75D\x75F\a\xF4\x2\x2\x75E\x75D\x3"+ - "\x2\x2\x2\x75E\x75F\x3\x2\x2\x2\x75F\x760\x3\x2\x2\x2\x760\x76B\x5\xCA"+ - "\x66\x5\x761\x763\f\x3\x2\x2\x762\x764\a\xF4\x2\x2\x763\x762\x3\x2\x2"+ - "\x2\x763\x764\x3\x2\x2\x2\x764\x765\x3\x2\x2\x2\x765\x767\aV\x2\x2\x766"+ - "\x768\a\xF4\x2\x2\x767\x766\x3\x2\x2\x2\x767\x768\x3\x2\x2\x2\x768\x769"+ - "\x3\x2\x2\x2\x769\x76B\x5\xCA\x66\x4\x76A\x6FE\x3\x2\x2\x2\x76A\x707\x3"+ - "\x2\x2\x2\x76A\x710\x3\x2\x2\x2\x76A\x719\x3\x2\x2\x2\x76A\x722\x3\x2"+ - "\x2\x2\x76A\x72B\x3\x2\x2\x2\x76A\x734\x3\x2\x2\x2\x76A\x73D\x3\x2\x2"+ - "\x2\x76A\x746\x3\x2\x2\x2\x76A\x74F\x3\x2\x2\x2\x76A\x758\x3\x2\x2\x2"+ - "\x76A\x761\x3\x2\x2\x2\x76B\x76E\x3\x2\x2\x2\x76C\x76A\x3\x2\x2\x2\x76C"+ - "\x76D\x3\x2\x2\x2\x76D\xCB\x3\x2\x2\x2\x76E\x76C\x3\x2\x2\x2\x76F\x773"+ - "\a\x32\x2\x2\x770\x773\a\xA4\x2\x2\x771\x773\x5\x11C\x8F\x2\x772\x76F"+ - "\x3\x2\x2\x2\x772\x770\x3\x2\x2\x2\x772\x771\x3\x2\x2\x2\x773\x774\x3"+ - "\x2\x2\x2\x774\x777\a\xF4\x2\x2\x775\x776\a\xBA\x2\x2\x776\x778\a\xF4"+ - "\x2\x2\x777\x775\x3\x2\x2\x2\x777\x778\x3\x2\x2\x2\x778\x779\x3\x2\x2"+ - "\x2\x779\x77A\x5\xCEh\x2\x77A\xCD\x3\x2\x2\x2\x77B\x786\x5\xD0i\x2\x77C"+ - "\x77E\a\xF4\x2\x2\x77D\x77C\x3\x2\x2\x2\x77D\x77E\x3\x2\x2\x2\x77E\x77F"+ - "\x3\x2\x2\x2\x77F\x781\a\t\x2\x2\x780\x782\a\xF4\x2\x2\x781\x780\x3\x2"+ - "\x2\x2\x781\x782\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\x785\x5\xD0i\x2"+ - "\x784\x77D\x3\x2\x2\x2\x785\x788\x3\x2\x2\x2\x786\x784\x3\x2\x2\x2\x786"+ - "\x787\x3\x2\x2\x2\x787\xCF\x3\x2\x2\x2\x788\x786\x3\x2\x2\x2\x789\x79B"+ - "\x5\x104\x83\x2\x78A\x78C\a\xF4\x2\x2\x78B\x78A\x3\x2\x2\x2\x78B\x78C"+ - "\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\x78F\a\xC5\x2\x2\x78E\x790\a\xF4"+ - "\x2\x2\x78F\x78E\x3\x2\x2\x2\x78F\x790\x3\x2\x2\x2\x790\x795\x3\x2\x2"+ - "\x2\x791\x793\x5\x100\x81\x2\x792\x794\a\xF4\x2\x2\x793\x792\x3\x2\x2"+ - "\x2\x793\x794\x3\x2\x2\x2\x794\x796\x3\x2\x2\x2\x795\x791\x3\x2\x2\x2"+ - "\x795\x796\x3\x2\x2\x2\x796\x797\x3\x2\x2\x2\x797\x799\a\xCC\x2\x2\x798"+ - "\x79A\a\xF4\x2\x2\x799\x798\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2\x79A\x79C"+ - "\x3\x2\x2\x2\x79B\x78B\x3\x2\x2\x2\x79B\x79C\x3\x2\x2\x2\x79C\x79E\x3"+ - "\x2\x2\x2\x79D\x79F\x5\x11A\x8E\x2\x79E\x79D\x3\x2\x2\x2\x79E\x79F\x3"+ - "\x2\x2\x2\x79F\x7A2\x3\x2\x2\x2\x7A0\x7A1\a\xF4\x2\x2\x7A1\x7A3\x5\x106"+ - "\x84\x2\x7A2\x7A0\x3\x2\x2\x2\x7A2\x7A3\x3\x2\x2\x2\x7A3\xD1\x3\x2\x2"+ - "\x2\x7A4\x7A5\a\xB7\x2\x2\x7A5\x7A6\a\xF4\x2\x2\x7A6\x7A7\x5\xCA\x66\x2"+ - "\x7A7\x7A9\x5\x126\x94\x2\x7A8\x7AA\x5\x1C\xF\x2\x7A9\x7A8\x3\x2\x2\x2"+ - "\x7A9\x7AA\x3\x2\x2\x2\x7AA\x7AB\x3\x2\x2\x2\x7AB\x7AC\a\xB6\x2\x2\x7AC"+ - "\xD3\x3\x2\x2\x2\x7AD\x7AE\a\xB8\x2\x2\x7AE\x7AF\a\xF4\x2\x2\x7AF\x7B1"+ - "\x5\xDAn\x2\x7B0\x7B2\a\xF4\x2\x2\x7B1\x7B0\x3\x2\x2\x2\x7B1\x7B2\x3\x2"+ - "\x2\x2\x7B2\x7B3\x3\x2\x2\x2\x7B3\x7B5\a\t\x2\x2\x7B4\x7B6\a\xF4\x2\x2"+ - "\x7B5\x7B4\x3\x2\x2\x2\x7B5\x7B6\x3\x2\x2\x2\x7B6\x7B7\x3\x2\x2\x2\x7B7"+ - "\x7B8\x5\xCA\x66\x2\x7B8\xD5\x3\x2\x2\x2\x7B9\x7BA\a\xB9\x2\x2\x7BA\x7BF"+ - "\a\xF4\x2\x2\x7BB\x7C0\x5\xE8u\x2\x7BC\x7BD\au\x2\x2\x7BD\x7BE\a\xF4\x2"+ - "\x2\x7BE\x7C0\x5\x118\x8D\x2\x7BF\x7BB\x3\x2\x2\x2\x7BF\x7BC\x3\x2\x2"+ - "\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1\x7C3\x5\x126\x94\x2\x7C2\x7C4\x5\x1C\xF"+ - "\x2\x7C3\x7C2\x3\x2\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2\x2"+ - "\x7C5\x7C6\a@\x2\x2\x7C6\xD7\x3\x2\x2\x2\x7C7\x7C8\a\xBB\x2\x2\x7C8\x7C9"+ - "\a\xF4\x2\x2\x7C9\x7CB\x5\xDAn\x2\x7CA\x7CC\a\xF4\x2\x2\x7CB\x7CA\x3\x2"+ - "\x2\x2\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\x7D2\a\t\x2\x2"+ - "\x7CE\x7D0\a\xF4\x2\x2\x7CF\x7CE\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0"+ - "\x7D1\x3\x2\x2\x2\x7D1\x7D3\x5\x86\x44\x2\x7D2\x7CF\x3\x2\x2\x2\x7D2\x7D3"+ - "\x3\x2\x2\x2\x7D3\xD9\x3\x2\x2\x2\x7D4\x7D6\a\x5\x2\x2\x7D5\x7D4\x3\x2"+ - "\x2\x2\x7D5\x7D6\x3\x2\x2\x2\x7D6\x7D7\x3\x2\x2\x2\x7D7\x7D8\x5\xCA\x66"+ - "\x2\x7D8\xDB\x3\x2\x2\x2\x7D9\x7DC\x5\xDEp\x2\x7DA\x7DC\x5\xE0q\x2\x7DB"+ - "\x7D9\x3\x2\x2\x2\x7DB\x7DA\x3\x2\x2\x2\x7DC\xDD\x3\x2\x2\x2\x7DD\x7DE"+ - "\a\x1A\x2\x2\x7DE\x7DF\a\xF4\x2\x2\x7DF\x7E1\x5\x104\x83\x2\x7E0\x7E2"+ - "\x5\x11A\x8E\x2\x7E1\x7E0\x3\x2\x2\x2\x7E1\x7E2\x3\x2\x2\x2\x7E2\x7F0"+ - "\x3\x2\x2\x2\x7E3\x7E5\a\xF4\x2\x2\x7E4\x7E3\x3\x2\x2\x2\x7E4\x7E5\x3"+ - "\x2\x2\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7E8\a\xC5\x2\x2\x7E7\x7E9\a\xF4"+ - "\x2\x2\x7E8\x7E7\x3\x2\x2\x2\x7E8\x7E9\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2"+ - "\x2\x7EA\x7EC\x5\xF4{\x2\x7EB\x7ED\a\xF4\x2\x2\x7EC\x7EB\x3\x2\x2\x2\x7EC"+ - "\x7ED\x3\x2\x2\x2\x7ED\x7EE\x3\x2\x2\x2\x7EE\x7EF\a\xCC\x2\x2\x7EF\x7F1"+ - "\x3\x2\x2\x2\x7F0\x7E4\x3\x2\x2\x2\x7F0\x7F1\x3\x2\x2\x2\x7F1\x7FB\x3"+ - "\x2\x2\x2\x7F2\x7F4\a\xF4\x2\x2\x7F3\x7F2\x3\x2\x2\x2\x7F3\x7F4\x3\x2"+ - "\x2\x2\x7F4\x7F5\x3\x2\x2\x2\x7F5\x7F6\a\xC5\x2\x2\x7F6\x7F7\x5\x100\x81"+ - "\x2\x7F7\x7F8\a\xCC\x2\x2\x7F8\x7FA\x3\x2\x2\x2\x7F9\x7F3\x3\x2\x2\x2"+ - "\x7FA\x7FD\x3\x2\x2\x2\x7FB\x7F9\x3\x2\x2\x2\x7FB\x7FC\x3\x2\x2\x2\x7FC"+ - "\xDF\x3\x2\x2\x2\x7FD\x7FB\x3\x2\x2\x2\x7FE\x7FF\a\x1A\x2\x2\x7FF\x801"+ - "\a\xF4\x2\x2\x800\x802\x5\xE8u\x2\x801\x800\x3\x2\x2\x2\x801\x802\x3\x2"+ - "\x2\x2\x802\x803\x3\x2\x2\x2\x803\x804\a\n\x2\x2\x804\x806\x5\x104\x83"+ - "\x2\x805\x807\x5\x11A\x8E\x2\x806\x805\x3\x2\x2\x2\x806\x807\x3\x2\x2"+ - "\x2\x807\x815\x3\x2\x2\x2\x808\x80A\a\xF4\x2\x2\x809\x808\x3\x2\x2\x2"+ - "\x809\x80A\x3\x2\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80D\a\xC5\x2\x2\x80C"+ - "\x80E\a\xF4\x2\x2\x80D\x80C\x3\x2\x2\x2\x80D\x80E\x3\x2\x2\x2\x80E\x80F"+ - "\x3\x2\x2\x2\x80F\x811\x5\xF4{\x2\x810\x812\a\xF4\x2\x2\x811\x810\x3\x2"+ - "\x2\x2\x811\x812\x3\x2\x2\x2\x812\x813\x3\x2\x2\x2\x813\x814\a\xCC\x2"+ - "\x2\x814\x816\x3\x2\x2\x2\x815\x809\x3\x2\x2\x2\x815\x816\x3\x2\x2\x2"+ - "\x816\x820\x3\x2\x2\x2\x817\x819\a\xF4\x2\x2\x818\x817\x3\x2\x2\x2\x818"+ - "\x819\x3\x2\x2\x2\x819\x81A\x3\x2\x2\x2\x81A\x81B\a\xC5\x2\x2\x81B\x81C"+ - "\x5\x100\x81\x2\x81C\x81D\a\xCC\x2\x2\x81D\x81F\x3\x2\x2\x2\x81E\x818"+ - "\x3\x2\x2\x2\x81F\x822\x3\x2\x2\x2\x820\x81E\x3\x2\x2\x2\x820\x821\x3"+ - "\x2\x2\x2\x821\xE1\x3\x2\x2\x2\x822\x820\x3\x2\x2\x2\x823\x826\x5\xE4"+ - "s\x2\x824\x826\x5\xE6t\x2\x825\x823\x3\x2\x2\x2\x825\x824\x3\x2\x2\x2"+ - "\x826\xE3\x3\x2\x2\x2\x827\x829\x5\xE8u\x2\x828\x827\x3\x2\x2\x2\x828"+ - "\x829\x3\x2\x2\x2\x829\x82A\x3\x2\x2\x2\x82A\x82B\a\n\x2\x2\x82B\x82D"+ - "\x5\x104\x83\x2\x82C\x82E\x5\x11A\x8E\x2\x82D\x82C\x3\x2\x2\x2\x82D\x82E"+ - "\x3\x2\x2\x2\x82E\x831\x3\x2\x2\x2\x82F\x830\a\xF4\x2\x2\x830\x832\x5"+ - "\xF4{\x2\x831\x82F\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832\x837\x3\x2\x2"+ - "\x2\x833\x835\a\xF4\x2\x2\x834\x833\x3\x2\x2\x2\x834\x835\x3\x2\x2\x2"+ - "\x835\x836\x3\x2\x2\x2\x836\x838\x5\xF8}\x2\x837\x834\x3\x2\x2\x2\x837"+ - "\x838\x3\x2\x2\x2\x838\x842\x3\x2\x2\x2\x839\x83B\a\xF4\x2\x2\x83A\x839"+ - "\x3\x2\x2\x2\x83A\x83B\x3\x2\x2\x2\x83B\x83C\x3\x2\x2\x2\x83C\x83D\a\xC5"+ - "\x2\x2\x83D\x83E\x5\x100\x81\x2\x83E\x83F\a\xCC\x2\x2\x83F\x841\x3\x2"+ - "\x2\x2\x840\x83A\x3\x2\x2\x2\x841\x844\x3\x2\x2\x2\x842\x840\x3\x2\x2"+ - "\x2\x842\x843\x3\x2\x2\x2\x843\xE5\x3\x2\x2\x2\x844\x842\x3\x2\x2\x2\x845"+ - "\x848\x5\x10A\x86\x2\x846\x847\a\xF4\x2\x2\x847\x849\x5\xF4{\x2\x848\x846"+ - "\x3\x2\x2\x2\x848\x849\x3\x2\x2\x2\x849\x853\x3\x2\x2\x2\x84A\x84C\a\xF4"+ - "\x2\x2\x84B\x84A\x3\x2\x2\x2\x84B\x84C\x3\x2\x2\x2\x84C\x84D\x3\x2\x2"+ - "\x2\x84D\x84E\a\xC5\x2\x2\x84E\x84F\x5\x100\x81\x2\x84F\x850\a\xCC\x2"+ - "\x2\x850\x852\x3\x2\x2\x2\x851\x84B\x3\x2\x2\x2\x852\x855\x3\x2\x2\x2"+ - "\x853\x851\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\xE7\x3\x2\x2\x2\x855"+ - "\x853\x3\x2\x2\x2\x856\x85B\x5\xEEx\x2\x857\x85B\x5\xEAv\x2\x858\x85B"+ - "\x5\xECw\x2\x859\x85B\x5\xF2z\x2\x85A\x856\x3\x2\x2\x2\x85A\x857\x3\x2"+ - "\x2\x2\x85A\x858\x3\x2\x2\x2\x85A\x859\x3\x2\x2\x2\x85B\xE9\x3\x2\x2\x2"+ - "\x85C\x85E\x5\x104\x83\x2\x85D\x85F\x5\x11A\x8E\x2\x85E\x85D\x3\x2\x2"+ - "\x2\x85E\x85F\x3\x2\x2\x2\x85F\x864\x3\x2\x2\x2\x860\x862\a\xF4\x2\x2"+ - "\x861\x860\x3\x2\x2\x2\x861\x862\x3\x2\x2\x2\x862\x863\x3\x2\x2\x2\x863"+ - "\x865\x5\xF8}\x2\x864\x861\x3\x2\x2\x2\x864\x865\x3\x2\x2\x2\x865\x86F"+ - "\x3\x2\x2\x2\x866\x868\a\xF4\x2\x2\x867\x866\x3\x2\x2\x2\x867\x868\x3"+ - "\x2\x2\x2\x868\x869\x3\x2\x2\x2\x869\x86A\a\xC5\x2\x2\x86A\x86B\x5\x100"+ - "\x81\x2\x86B\x86C\a\xCC\x2\x2\x86C\x86E\x3\x2\x2\x2\x86D\x867\x3\x2\x2"+ - "\x2\x86E\x871\x3\x2\x2\x2\x86F\x86D\x3\x2\x2\x2\x86F\x870\x3\x2\x2\x2"+ - "\x870\xEB\x3\x2\x2\x2\x871\x86F\x3\x2\x2\x2\x872\x875\x5\x104\x83\x2\x873"+ - "\x875\x5\x108\x85\x2\x874\x872\x3\x2\x2\x2\x874\x873\x3\x2\x2\x2\x875"+ - "\x877\x3\x2\x2\x2\x876\x878\x5\x11A\x8E\x2\x877\x876\x3\x2\x2\x2\x877"+ - "\x878\x3\x2\x2\x2\x878\x87A\x3\x2\x2\x2\x879\x87B\a\xF4\x2\x2\x87A\x879"+ - "\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87E\a\xC5"+ - "\x2\x2\x87D\x87F\a\xF4\x2\x2\x87E\x87D\x3\x2\x2\x2\x87E\x87F\x3\x2\x2"+ - "\x2\x87F\x884\x3\x2\x2\x2\x880\x882\x5\xF4{\x2\x881\x883\a\xF4\x2\x2\x882"+ - "\x881\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x885\x3\x2\x2\x2\x884\x880"+ - "\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x886\x3\x2\x2\x2\x886\x88B\a\xCC"+ - "\x2\x2\x887\x889\a\xF4\x2\x2\x888\x887\x3\x2\x2\x2\x888\x889\x3\x2\x2"+ - "\x2\x889\x88A\x3\x2\x2\x2\x88A\x88C\x5\xF8}\x2\x88B\x888\x3\x2\x2\x2\x88B"+ - "\x88C\x3\x2\x2\x2\x88C\x896\x3\x2\x2\x2\x88D\x88F\a\xF4\x2\x2\x88E\x88D"+ - "\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x890\x3\x2\x2\x2\x890\x891\a\xC5"+ - "\x2\x2\x891\x892\x5\x100\x81\x2\x892\x893\a\xCC\x2\x2\x893\x895\x3\x2"+ - "\x2\x2\x894\x88E\x3\x2\x2\x2\x895\x898\x3\x2\x2\x2\x896\x894\x3\x2\x2"+ - "\x2\x896\x897\x3\x2\x2\x2\x897\xED\x3\x2\x2\x2\x898\x896\x3\x2\x2\x2\x899"+ - "\x89C\x5\xEAv\x2\x89A\x89C\x5\xECw\x2\x89B\x899\x3\x2\x2\x2\x89B\x89A"+ - "\x3\x2\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\x8A1\x3\x2\x2\x2\x89D\x89F\x5"+ - "\xF0y\x2\x89E\x8A0\a\xF4\x2\x2\x89F\x89E\x3\x2\x2\x2\x89F\x8A0\x3\x2\x2"+ - "\x2\x8A0\x8A2\x3\x2\x2\x2\x8A1\x89D\x3\x2\x2\x2\x8A2\x8A3\x3\x2\x2\x2"+ - "\x8A3\x8A1\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A9\x3\x2\x2\x2\x8A5"+ - "\x8A7\a\xF4\x2\x2\x8A6\x8A5\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2\x2\x8A7\x8A8"+ - "\x3\x2\x2\x2\x8A8\x8AA\x5\xF8}\x2\x8A9\x8A6\x3\x2\x2\x2\x8A9\x8AA\x3\x2"+ - "\x2\x2\x8AA\x8B4\x3\x2\x2\x2\x8AB\x8AD\a\xF4\x2\x2\x8AC\x8AB\x3\x2\x2"+ - "\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AE\x3\x2\x2\x2\x8AE\x8AF\a\xC5\x2\x2"+ - "\x8AF\x8B0\x5\x100\x81\x2\x8B0\x8B1\a\xCC\x2\x2\x8B1\x8B3\x3\x2\x2\x2"+ - "\x8B2\x8AC\x3\x2\x2\x2\x8B3\x8B6\x3\x2\x2\x2\x8B4\x8B2\x3\x2\x2\x2\x8B4"+ - "\x8B5\x3\x2\x2\x2\x8B5\xEF\x3\x2\x2\x2\x8B6\x8B4\x3\x2\x2\x2\x8B7\x8B9"+ - "\t\xF\x2\x2\x8B8\x8BA\a\xF4\x2\x2\x8B9\x8B8\x3\x2\x2\x2\x8B9\x8BA\x3\x2"+ - "\x2\x2\x8BA\x8BD\x3\x2\x2\x2\x8BB\x8BE\x5\xEAv\x2\x8BC\x8BE\x5\xECw\x2"+ - "\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2\x2\x2\x8BE\xF1\x3\x2\x2\x2\x8BF"+ - "\x8C1\a\xF4\x2\x2\x8C0\x8BF\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C2"+ - "\x3\x2\x2\x2\x8C2\x8C3\x5\xF8}\x2\x8C3\xF3\x3\x2\x2\x2\x8C4\x8C6\x5\xF6"+ - "|\x2\x8C5\x8C4\x3\x2\x2\x2\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C8\x3\x2\x2\x2"+ - "\x8C7\x8C9\a\xF4\x2\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9"+ - "\x8CA\x3\x2\x2\x2\x8CA\x8CC\t\n\x2\x2\x8CB\x8CD\a\xF4\x2\x2\x8CC\x8CB"+ - "\x3\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\x3\x2\x2\x2\x8CE\x8C5\x3"+ - "\x2\x2\x2\x8CF\x8D2\x3\x2\x2\x2\x8D0\x8CE\x3\x2\x2\x2\x8D0\x8D1\x3\x2"+ - "\x2\x2\x8D1\x8D3\x3\x2\x2\x2\x8D2\x8D0\x3\x2\x2\x2\x8D3\x8E0\x5\xF6|\x2"+ - "\x8D4\x8D6\a\xF4\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6"+ - "\x8D7\x3\x2\x2\x2\x8D7\x8D9\t\n\x2\x2\x8D8\x8DA\a\xF4\x2\x2\x8D9\x8D8"+ - "\x3\x2\x2\x2\x8D9\x8DA\x3\x2\x2\x2\x8DA\x8DC\x3\x2\x2\x2\x8DB\x8DD\x5"+ - "\xF6|\x2\x8DC\x8DB\x3\x2\x2\x2\x8DC\x8DD\x3\x2\x2\x2\x8DD\x8DF\x3\x2\x2"+ - "\x2\x8DE\x8D5\x3\x2\x2\x2\x8DF\x8E2\x3\x2\x2\x2\x8E0\x8DE\x3\x2\x2\x2"+ - "\x8E0\x8E1\x3\x2\x2\x2\x8E1\xF5\x3\x2\x2\x2\x8E2\x8E0\x3\x2\x2\x2\x8E3"+ - "\x8E5\a\xC5\x2\x2\x8E4\x8E3\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5\x8E8"+ - "\x3\x2\x2\x2\x8E6\x8E7\t\x10\x2\x2\x8E7\x8E9\a\xF4\x2\x2\x8E8\x8E6\x3"+ - "\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\x8EB\x3\x2\x2\x2\x8EA\x8EC\a\xCC"+ - "\x2\x2\x8EB\x8EA\x3\x2\x2\x2\x8EB\x8EC\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2"+ - "\x2\x8ED\x8EE\x5\xCA\x66\x2\x8EE\xF7\x3\x2\x2\x2\x8EF\x8F1\a\x4\x2\x2"+ - "\x8F0\x8F2\a\xF4\x2\x2\x8F1\x8F0\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2"+ - "\x8F3\x3\x2\x2\x2\x8F3\x8F5\x5\x104\x83\x2\x8F4\x8F6\x5\x11A\x8E\x2\x8F5"+ - "\x8F4\x3\x2\x2\x2\x8F5\x8F6\x3\x2\x2\x2\x8F6\xF9\x3\x2\x2\x2\x8F7\x909"+ - "\a\xC5\x2\x2\x8F8\x8FA\a\xF4\x2\x2\x8F9\x8F8\x3\x2\x2\x2\x8F9\x8FA\x3"+ - "\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2\x8FB\x906\x5\xFC\x7F\x2\x8FC\x8FE\a\xF4"+ - "\x2\x2\x8FD\x8FC\x3\x2\x2\x2\x8FD\x8FE\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2"+ - "\x2\x8FF\x901\a\t\x2\x2\x900\x902\a\xF4\x2\x2\x901\x900\x3\x2\x2\x2\x901"+ - "\x902\x3\x2\x2\x2\x902\x903\x3\x2\x2\x2\x903\x905\x5\xFC\x7F\x2\x904\x8FD"+ - "\x3\x2\x2\x2\x905\x908\x3\x2\x2\x2\x906\x904\x3\x2\x2\x2\x906\x907\x3"+ - "\x2\x2\x2\x907\x90A\x3\x2\x2\x2\x908\x906\x3\x2\x2\x2\x909\x8F9\x3\x2"+ - "\x2\x2\x909\x90A\x3\x2\x2\x2\x90A\x90C\x3\x2\x2\x2\x90B\x90D\a\xF4\x2"+ - "\x2\x90C\x90B\x3\x2\x2\x2\x90C\x90D\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2"+ - "\x90E\x90F\a\xCC\x2\x2\x90F\xFB\x3\x2\x2\x2\x910\x911\a}\x2\x2\x911\x913"+ - "\a\xF4\x2\x2\x912\x910\x3\x2\x2\x2\x912\x913\x3\x2\x2\x2\x913\x916\x3"+ - "\x2\x2\x2\x914\x915\t\x11\x2\x2\x915\x917\a\xF4\x2\x2\x916\x914\x3\x2"+ - "\x2\x2\x916\x917\x3\x2\x2\x2\x917\x91A\x3\x2\x2\x2\x918\x919\a\x84\x2"+ - "\x2\x919\x91B\a\xF4\x2\x2\x91A\x918\x3\x2\x2\x2\x91A\x91B\x3\x2\x2\x2"+ - "\x91B\x91C\x3\x2\x2\x2\x91C\x91E\x5\x104\x83\x2\x91D\x91F\x5\x11A\x8E"+ - "\x2\x91E\x91D\x3\x2\x2\x2\x91E\x91F\x3\x2\x2\x2\x91F\x928\x3\x2\x2\x2"+ - "\x920\x922\a\xF4\x2\x2\x921\x920\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922"+ - "\x923\x3\x2\x2\x2\x923\x925\a\xC5\x2\x2\x924\x926\a\xF4\x2\x2\x925\x924"+ - "\x3\x2\x2\x2\x925\x926\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x929\a\xCC"+ - "\x2\x2\x928\x921\x3\x2\x2\x2\x928\x929\x3\x2\x2\x2\x929\x92E\x3\x2\x2"+ - "\x2\x92A\x92C\a\xF4\x2\x2\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2"+ - "\x92C\x92D\x3\x2\x2\x2\x92D\x92F\x5\x106\x84\x2\x92E\x92B\x3\x2\x2\x2"+ - "\x92E\x92F\x3\x2\x2\x2\x92F\x934\x3\x2\x2\x2\x930\x932\a\xF4\x2\x2\x931"+ - "\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x935"+ - "\x5\xFE\x80\x2\x934\x931\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\xFD\x3"+ - "\x2\x2\x2\x936\x938\a\xC1\x2\x2\x937\x939\a\xF4\x2\x2\x938\x937\x3\x2"+ - "\x2\x2\x938\x939\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x5\xCA\x66"+ - "\x2\x93B\xFF\x3\x2\x2\x2\x93C\x947\x5\x102\x82\x2\x93D\x93F\a\xF4\x2\x2"+ - "\x93E\x93D\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x940\x3\x2\x2\x2\x940"+ - "\x942\a\t\x2\x2\x941\x943\a\xF4\x2\x2\x942\x941\x3\x2\x2\x2\x942\x943"+ - "\x3\x2\x2\x2\x943\x944\x3\x2\x2\x2\x944\x946\x5\x102\x82\x2\x945\x93E"+ - "\x3\x2\x2\x2\x946\x949\x3\x2\x2\x2\x947\x945\x3\x2\x2\x2\x947\x948\x3"+ - "\x2\x2\x2\x948\x101\x3\x2\x2\x2\x949\x947\x3\x2\x2\x2\x94A\x94B\x5\xCA"+ - "\x66\x2\x94B\x94C\a\xF4\x2\x2\x94C\x94D\a\xAD\x2\x2\x94D\x94E\a\xF4\x2"+ - "\x2\x94E\x950\x3\x2\x2\x2\x94F\x94A\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2"+ - "\x950\x951\x3\x2\x2\x2\x951\x952\x5\xCA\x66\x2\x952\x103\x3\x2\x2\x2\x953"+ - "\x956\a\xF5\x2\x2\x954\x956\x5\x11E\x90\x2\x955\x953\x3\x2\x2\x2\x955"+ - "\x954\x3\x2\x2\x2\x956\x957\x3\x2\x2\x2\x957\x955\x3\x2\x2\x2\x957\x958"+ - "\x3\x2\x2\x2\x958\x105\x3\x2\x2\x2\x959\x95B\a\x12\x2\x2\x95A\x95C\a\xF4"+ - "\x2\x2\x95B\x95A\x3\x2\x2\x2\x95B\x95C\x3\x2\x2\x2\x95C\x95F\x3\x2\x2"+ - "\x2\x95D\x95E\au\x2\x2\x95E\x960\a\xF4\x2\x2\x95F\x95D\x3\x2\x2\x2\x95F"+ - "\x960\x3\x2\x2\x2\x960\x961\x3\x2\x2\x2\x961\x966\x5\x118\x8D\x2\x962"+ - "\x964\a\xF4\x2\x2\x963\x962\x3\x2\x2\x2\x963\x964\x3\x2\x2\x2\x964\x965"+ - "\x3\x2\x2\x2\x965\x967\x5\x110\x89\x2\x966\x963\x3\x2\x2\x2\x966\x967"+ - "\x3\x2\x2\x2\x967\x107\x3\x2\x2\x2\x968\x969\t\x12\x2\x2\x969\x109\x3"+ - "\x2\x2\x2\x96A\x96F\a\xF5\x2\x2\x96B\x96E\x5\x11E\x90\x2\x96C\x96E\a\xF5"+ - "\x2\x2\x96D\x96B\x3\x2\x2\x2\x96D\x96C\x3\x2\x2\x2\x96E\x971\x3\x2\x2"+ - "\x2\x96F\x96D\x3\x2\x2\x2\x96F\x970\x3\x2\x2\x2\x970\x97A\x3\x2\x2\x2"+ - "\x971\x96F\x3\x2\x2\x2\x972\x975\x5\x11E\x90\x2\x973\x976\x5\x11E\x90"+ - "\x2\x974\x976\a\xF5\x2\x2\x975\x973\x3\x2\x2\x2\x975\x974\x3\x2\x2\x2"+ - "\x976\x977\x3\x2\x2\x2\x977\x975\x3\x2\x2\x2\x977\x978\x3\x2\x2\x2\x978"+ - "\x97A\x3\x2\x2\x2\x979\x96A\x3\x2\x2\x2\x979\x972\x3\x2\x2\x2\x97A\x10B"+ - "\x3\x2\x2\x2\x97B\x97C\t\xE\x2\x2\x97C\x10D\x3\x2\x2\x2\x97D\x982\x5\x104"+ - "\x83\x2\x97E\x97F\t\xF\x2\x2\x97F\x981\x5\x104\x83\x2\x980\x97E\x3\x2"+ - "\x2\x2\x981\x984\x3\x2\x2\x2\x982\x980\x3\x2\x2\x2\x982\x983\x3\x2\x2"+ - "\x2\x983\x10F\x3\x2\x2\x2\x984\x982\x3\x2\x2\x2\x985\x987\a\xC8\x2\x2"+ - "\x986\x988\a\xF4\x2\x2\x987\x986\x3\x2\x2\x2\x987\x988\x3\x2\x2\x2\x988"+ - "\x98B\x3\x2\x2\x2\x989\x98C\a\xD3\x2\x2\x98A\x98C\x5\x104\x83\x2\x98B"+ - "\x989\x3\x2\x2\x2\x98B\x98A\x3\x2\x2\x2\x98C\x111\x3\x2\x2\x2\x98D\x996"+ - "\x5\x10A\x86\x2\x98E\x990\a\xF4\x2\x2\x98F\x98E\x3\x2\x2\x2\x98F\x990"+ - "\x3\x2\x2\x2\x990\x991\x3\x2\x2\x2\x991\x993\a\xC7\x2\x2\x992\x994\a\xF4"+ - "\x2\x2\x993\x992\x3\x2\x2\x2\x993\x994\x3\x2\x2\x2\x994\x995\x3\x2\x2"+ - "\x2\x995\x997\x5\x10A\x86\x2\x996\x98F\x3\x2\x2\x2\x996\x997\x3\x2\x2"+ - "\x2\x997\x113\x3\x2\x2\x2\x998\x999\x5\x104\x83\x2\x999\x99A\a\xF2\x2"+ - "\x2\x99A\x115\x3\x2\x2\x2\x99B\x99C\t\x13\x2\x2\x99C\x117\x3\x2\x2\x2"+ - "\x99D\x9A0\x5\x108\x85\x2\x99E\x9A0\x5\x10E\x88\x2\x99F\x99D\x3\x2\x2"+ - "\x2\x99F\x99E\x3\x2\x2\x2\x9A0\x9A9\x3\x2\x2\x2\x9A1\x9A3\a\xF4\x2\x2"+ - "\x9A2\x9A1\x3\x2\x2\x2\x9A2\x9A3\x3\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4"+ - "\x9A6\a\xC5\x2\x2\x9A5\x9A7\a\xF4\x2\x2\x9A6\x9A5\x3\x2\x2\x2\x9A6\x9A7"+ - "\x3\x2\x2\x2\x9A7\x9A8\x3\x2\x2\x2\x9A8\x9AA\a\xCC\x2\x2\x9A9\x9A2\x3"+ - "\x2\x2\x2\x9A9\x9AA\x3\x2\x2\x2\x9AA\x119\x3\x2\x2\x2\x9AB\x9AC\t\x14"+ - "\x2\x2\x9AC\x11B\x3\x2\x2\x2\x9AD\x9AE\t\x15\x2\x2\x9AE\x11D\x3\x2\x2"+ - "\x2\x9AF\x9B0\t\x16\x2\x2\x9B0\x11F\x3\x2\x2\x2\x9B1\x9B2\a\xEF\x2\x2"+ - "\x9B2\x121\x3\x2\x2\x2\x9B3\x9B4\a\xF0\x2\x2\x9B4\x123\x3\x2\x2\x2\x9B5"+ - "\x9B7\a\xF4\x2\x2\x9B6\x9B5\x3\x2\x2\x2\x9B6\x9B7\x3\x2\x2\x2\x9B7\x9BB"+ - "\x3\x2\x2\x2\x9B8\x9BC\a\xEE\x2\x2\x9B9\x9BC\x5\x122\x92\x2\x9BA\x9BC"+ - "\x5\x120\x91\x2\x9BB\x9B8\x3\x2\x2\x2\x9BB\x9B9\x3\x2\x2\x2\x9BB\x9BA"+ - "\x3\x2\x2\x2\x9BC\x9BE\x3\x2\x2\x2\x9BD\x9BF\a\xF4\x2\x2\x9BE\x9BD\x3"+ - "\x2\x2\x2\x9BE\x9BF\x3\x2\x2\x2\x9BF\x125\x3\x2\x2\x2\x9C0\x9C9\x5\x124"+ - "\x93\x2\x9C1\x9C3\a\xF4\x2\x2\x9C2\x9C1\x3\x2\x2\x2\x9C2\x9C3\x3\x2\x2"+ - "\x2\x9C3\x9C4\x3\x2\x2\x2\x9C4\x9C6\a\xF2\x2\x2\x9C5\x9C7\a\xF4\x2\x2"+ - "\x9C6\x9C5\x3\x2\x2\x2\x9C6\x9C7\x3\x2\x2\x2\x9C7\x9C9\x3\x2\x2\x2\x9C8"+ - "\x9C0\x3\x2\x2\x2\x9C8\x9C2\x3\x2\x2\x2\x9C9\x9CC\x3\x2\x2\x2\x9CA\x9C8"+ - "\x3\x2\x2\x2\x9CA\x9CB\x3\x2\x2\x2\x9CB\x127\x3\x2\x2\x2\x9CC\x9CA\x3"+ - "\x2\x2\x2\x1A9\x12C\x132\x135\x139\x13D\x141\x145\x152\x158\x15C\x166"+ - "\x16E\x17B\x186\x18A\x192\x19D\x1A3\x1A7\x1AB\x1AF\x1B4\x1BD\x205\x20B"+ - "\x20F\x212\x222\x226\x22B\x22E\x233\x239\x23D\x242\x247\x24B\x24E\x252"+ - "\x258\x25C\x263\x269\x26D\x270\x275\x27F\x282\x285\x289\x28F\x293\x298"+ - "\x29F\x2A3\x2A7\x2AB\x2AE\x2B3\x2BE\x2CB\x2D2\x2DB\x2E2\x2E6\x2E9\x2F8"+ - "\x2FE\x308\x30C\x316\x31E\x323\x329\x32D\x330\x334\x33F\x343\x348\x34D"+ - "\x351\x355\x359\x35C\x35F\x362\x365\x369\x371\x375\x378\x37B\x37F\x396"+ - "\x39C\x3A0\x3A4\x3AD\x3B8\x3BD\x3C7\x3CB\x3D0\x3D8\x3DC\x3E0\x3E8\x3EC"+ - "\x3F8\x3FC\x403\x405\x40B\x40F\x415\x419\x41D\x425\x429\x42F\x438\x43A"+ - "\x43F\x448\x44A\x452\x454\x459\x45D\x461\x479\x483\x487\x48C\x497\x49B"+ - "\x4A0\x4AE\x4B2\x4BB\x4BF\x4C2\x4C6\x4CA\x4CD\x4D1\x4D5\x4D8\x4DC\x4DF"+ - "\x4E3\x4E5\x4EA\x4EE\x4F2\x4F6\x4F8\x4FE\x502\x505\x50A\x50E\x514\x517"+ - "\x51A\x51E\x522\x529\x52D\x533\x536\x53A\x541\x545\x54B\x54E\x552\x55A"+ - "\x55E\x561\x564\x568\x570\x574\x578\x57A\x57D\x582\x588\x58C\x590\x595"+ - "\x59A\x59E\x5A2\x5A7\x5AF\x5B1\x5BD\x5C1\x5C9\x5CD\x5D5\x5D9\x5DD\x5E1"+ - "\x5E5\x5E9\x5F1\x5F5\x602\x609\x60D\x618\x61F\x624\x628\x62D\x630\x636"+ - "\x63A\x63D\x643\x647\x64F\x653\x65C\x660\x664\x668\x66B\x66F\x675\x679"+ - "\x680\x689\x690\x694\x697\x69A\x69D\x6A1\x6AC\x6B6\x6BA\x6C1\x6C3\x6C8"+ - "\x6CD\x6D2\x6D6\x6DC\x6E1\x6E8\x6EC\x6F0\x6F5\x6FC\x700\x704\x709\x70D"+ - "\x712\x716\x71B\x71F\x724\x728\x72D\x731\x736\x73A\x73F\x743\x748\x74C"+ - "\x751\x755\x75A\x75E\x763\x767\x76A\x76C\x772\x777\x77D\x781\x786\x78B"+ - "\x78F\x793\x795\x799\x79B\x79E\x7A2\x7A9\x7B1\x7B5\x7BF\x7C3\x7CB\x7CF"+ - "\x7D2\x7D5\x7DB\x7E1\x7E4\x7E8\x7EC\x7F0\x7F3\x7FB\x801\x806\x809\x80D"+ - "\x811\x815\x818\x820\x825\x828\x82D\x831\x834\x837\x83A\x842\x848\x84B"+ - "\x853\x85A\x85E\x861\x864\x867\x86F\x874\x877\x87A\x87E\x882\x884\x888"+ - "\x88B\x88E\x896\x89B\x89F\x8A3\x8A6\x8A9\x8AC\x8B4\x8B9\x8BD\x8C0\x8C5"+ - "\x8C8\x8CC\x8D0\x8D5\x8D9\x8DC\x8E0\x8E4\x8E8\x8EB\x8F1\x8F5\x8F9\x8FD"+ - "\x901\x906\x909\x90C\x912\x916\x91A\x91E\x921\x925\x928\x92B\x92E\x931"+ - "\x934\x938\x93E\x942\x947\x94F\x955\x957\x95B\x95F\x963\x966\x96D\x96F"+ - "\x975\x977\x979\x982\x987\x98B\x98F\x993\x996\x99F\x9A2\x9A6\x9A9\x9B6"+ - "\x9BB\x9BE\x9C2\x9C6\x9C8\x9CA"; + "\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x403\n\x37\x3\x37\x3\x37\x5\x37\x407"+ + "\n\x37\x3\x37\x3\x37\x5\x37\x40B\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3"+ + "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ + ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x423\n:\x3;\x3;\x3;\x3;\x3;\x3;\x3;"+ + "\x3;\x5;\x42D\n;\x3;\x3;\x5;\x431\n;\x3;\a;\x434\n;\f;\xE;\x437\v;\x3"+ + "<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x441\n<\x3<\x3<\x5<\x445\n<\x3<\a<\x448"+ + "\n<\f<\xE<\x44B\v<\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x458"+ + "\n=\x3=\x3=\x5=\x45C\n=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x465\n=\x3=\x3"+ + "=\x5=\x469\n=\x3=\x5=\x46C\n=\x3>\x3>\x5>\x470\n>\x3>\x3>\x5>\x474\n>"+ + "\x3>\x5>\x477\n>\a>\x479\n>\f>\xE>\x47C\v>\x3>\x5>\x47F\n>\x3>\x5>\x482"+ + "\n>\x3>\x3>\x5>\x486\n>\x3>\x5>\x489\n>\x6>\x48B\n>\r>\xE>\x48C\x5>\x48F"+ + "\n>\x3?\x3?\x3?\x5?\x494\n?\x3?\x3?\x5?\x498\n?\x3?\x3?\x5?\x49C\n?\x3"+ + "?\x3?\x5?\x4A0\n?\x5?\x4A2\n?\x3@\x3@\x3@\x3@\x5@\x4A8\n@\x3@\x3@\x5@"+ + "\x4AC\n@\x3@\x5@\x4AF\n@\x3\x41\x3\x41\x3\x41\x5\x41\x4B4\n\x41\x3\x41"+ + "\x3\x41\x5\x41\x4B8\n\x41\x3\x41\x3\x41\x3\x41\x3\x41\x5\x41\x4BE\n\x41"+ + "\x3\x41\x5\x41\x4C1\n\x41\x3\x41\x5\x41\x4C4\n\x41\x3\x41\x3\x41\x5\x41"+ + "\x4C8\n\x41\x3\x41\x3\x41\x5\x41\x4CC\n\x41\x3\x41\x3\x41\x3\x42\x3\x42"+ + "\x3\x42\x5\x42\x4D3\n\x42\x3\x42\x3\x42\x5\x42\x4D7\n\x42\x3\x42\x3\x42"+ + "\x3\x42\x3\x42\x5\x42\x4DD\n\x42\x3\x42\x5\x42\x4E0\n\x42\x3\x42\x3\x42"+ + "\x5\x42\x4E4\n\x42\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x4EB\n\x43"+ + "\x3\x43\x3\x43\x5\x43\x4EF\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x4F5"+ + "\n\x43\x3\x43\x5\x43\x4F8\n\x43\x3\x43\x3\x43\x5\x43\x4FC\n\x43\x3\x43"+ + "\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44\x5\x44\x504\n\x44\x3\x44\x3\x44\x5"+ + "\x44\x508\n\x44\x3\x44\x5\x44\x50B\n\x44\x3\x44\x5\x44\x50E\n\x44\x3\x44"+ + "\x3\x44\x5\x44\x512\n\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5"+ + "\x45\x51A\n\x45\x3\x45\x3\x45\x5\x45\x51E\n\x45\x3\x45\x3\x45\x5\x45\x522"+ + "\n\x45\x5\x45\x524\n\x45\x3\x45\x5\x45\x527\n\x45\x3\x46\x3\x46\x3\x46"+ + "\x5\x46\x52C\n\x46\x3G\x3G\x3G\x3G\x5G\x532\nG\x3G\x3G\x5G\x536\nG\x3"+ + "G\x3G\x5G\x53A\nG\x3G\aG\x53D\nG\fG\xEG\x540\vG\x3H\x3H\x5H\x544\nH\x3"+ + "H\x3H\x5H\x548\nH\x3H\x3H\x5H\x54C\nH\x3H\x3H\x3H\x5H\x551\nH\x3I\x3I"+ + "\x3J\x3J\x3J\x3J\x5J\x559\nJ\x5J\x55B\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3"+ + "M\x3M\x3M\x5M\x567\nM\x3M\x3M\x5M\x56B\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N"+ + "\x573\nN\x3N\x3N\x5N\x577\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x57F\nO\x3O\x3"+ + "O\x5O\x583\nO\x3O\x3O\x5O\x587\nO\x3O\x3O\x5O\x58B\nO\x3O\x3O\x5O\x58F"+ + "\nO\x3O\x3O\x5O\x593\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x59B\nP\x3P\x3P\x5"+ + "P\x59F\nP\x3P\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x5AA\nQ\fQ\xEQ\x5AD\v"+ + "Q\x3Q\x3Q\x3R\x3R\x5R\x5B3\nR\x3R\x3R\x5R\x5B7\nR\x3R\x3R\x3R\x3R\x3R"+ + "\x3R\x3R\x3R\x3R\x5R\x5C2\nR\x3S\x3S\x3S\x3S\x3S\x5S\x5C9\nS\x3T\x3T\x3"+ + "T\x5T\x5CE\nT\x3T\x3T\x5T\x5D2\nT\x3T\aT\x5D5\nT\fT\xET\x5D8\vT\x5T\x5DA"+ + "\nT\x3U\x3U\x3U\x3U\x5U\x5E0\nU\x3U\x3U\x5U\x5E4\nU\x3U\x5U\x5E7\nU\x3"+ + "V\x3V\x3V\x3V\x5V\x5ED\nV\x3V\x3V\x5V\x5F1\nV\x3V\x3V\x3W\x3W\x3W\x3W"+ + "\x5W\x5F9\nW\x3W\x3W\x5W\x5FD\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x606"+ + "\nY\x3Y\x3Y\x5Y\x60A\nY\x3Y\x3Y\x5Y\x60E\nY\x3Y\x3Y\x5Y\x612\nY\x3Y\x5"+ + "Y\x615\nY\x3Y\x3Y\x5Y\x619\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x61F\nZ\x3Z\x3Z\x5Z"+ + "\x623\nZ\x3Z\x3Z\x3[\x3[\x3[\x5[\x62A\n[\x3[\x3[\x3[\x3[\x3[\a[\x631\n"+ + "[\f[\xE[\x634\v[\x3[\x3[\x3\\\x3\\\x5\\\x63A\n\\\x3\\\x3\\\x5\\\x63E\n"+ + "\\\x3\\\x5\\\x641\n\\\x3\\\x5\\\x644\n\\\x3\\\x5\\\x647\n\\\x3\\\x3\\"+ + "\x5\\\x64B\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3]\x3]\x5]\x656\n]\x3^\x3"+ + "^\x3^\x3^\x3_\x3_\x3_\x3_\x5_\x660\n_\x3_\x3_\x5_\x664\n_\x3_\x3_\x3_"+ + "\x3_\x3_\x5_\x66B\n_\x5_\x66D\n_\x3`\x3`\x3`\x5`\x672\n`\x3`\x3`\x3`\x5"+ + "`\x677\n`\x3`\x3`\x3`\x5`\x67C\n`\x3`\x3`\x5`\x680\n`\x3`\x3`\x3`\x3`"+ + "\x5`\x686\n`\x3`\x3`\x3`\x5`\x68B\n`\x3`\x3`\x3`\x3`\x3`\x5`\x692\n`\x3"+ + "`\x3`\x5`\x696\n`\x3`\x3`\x5`\x69A\n`\x3`\a`\x69D\n`\f`\xE`\x6A0\v`\x3"+ + "`\x3`\x3`\x3`\x5`\x6A6\n`\x3`\x3`\x5`\x6AA\n`\x3`\x3`\x5`\x6AE\n`\x3`"+ + "\x3`\x3`\x5`\x6B3\n`\x3`\x3`\x5`\x6B7\n`\x3`\x3`\x3`\x5`\x6BC\n`\x3`\x3"+ + "`\x5`\x6C0\n`\x3`\x3`\x3`\x5`\x6C5\n`\x3`\x3`\x5`\x6C9\n`\x3`\x3`\x3`"+ + "\x5`\x6CE\n`\x3`\x3`\x5`\x6D2\n`\x3`\x3`\x3`\x5`\x6D7\n`\x3`\x3`\x5`\x6DB"+ + "\n`\x3`\x3`\x3`\x5`\x6E0\n`\x3`\x3`\x5`\x6E4\n`\x3`\x3`\x3`\x5`\x6E9\n"+ + "`\x3`\x3`\x5`\x6ED\n`\x3`\x3`\x3`\x5`\x6F2\n`\x3`\x3`\x5`\x6F6\n`\x3`"+ + "\x3`\x3`\x5`\x6FB\n`\x3`\x3`\x5`\x6FF\n`\x3`\x3`\x3`\x5`\x704\n`\x3`\x3"+ + "`\x5`\x708\n`\x3`\x3`\x3`\x5`\x70D\n`\x3`\x3`\x5`\x711\n`\x3`\a`\x714"+ + "\n`\f`\xE`\x717\v`\x3\x61\x3\x61\x3\x61\x5\x61\x71C\n\x61\x3\x61\x3\x61"+ + "\x3\x61\x5\x61\x721\n\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62\x727\n\x62"+ + "\x3\x62\x3\x62\x5\x62\x72B\n\x62\x3\x62\a\x62\x72E\n\x62\f\x62\xE\x62"+ + "\x731\v\x62\x3\x63\x3\x63\x5\x63\x735\n\x63\x3\x63\x3\x63\x5\x63\x739"+ + "\n\x63\x3\x63\x3\x63\x5\x63\x73D\n\x63\x5\x63\x73F\n\x63\x3\x63\x3\x63"+ + "\x5\x63\x743\n\x63\x5\x63\x745\n\x63\x3\x63\x5\x63\x748\n\x63\x3\x63\x3"+ + "\x63\x5\x63\x74C\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x5\x64\x753"+ + "\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x75B\n\x65\x3"+ + "\x65\x3\x65\x5\x65\x75F\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3\x66"+ + "\x3\x66\x3\x66\x5\x66\x769\n\x66\x3\x66\x3\x66\x5\x66\x76D\n\x66\x3\x66"+ + "\x3\x66\x3g\x3g\x3g\x3g\x5g\x775\ng\x3g\x3g\x5g\x779\ng\x3g\x5g\x77C\n"+ + "g\x3h\x5h\x77F\nh\x3h\x3h\x3i\x3i\x5i\x785\ni\x3j\x3j\x3j\x3j\x5j\x78B"+ + "\nj\x3j\x5j\x78E\nj\x3j\x3j\x5j\x792\nj\x3j\x3j\x5j\x796\nj\x3j\x3j\x5"+ + "j\x79A\nj\x3j\x5j\x79D\nj\x3j\x3j\x3j\x3j\aj\x7A3\nj\fj\xEj\x7A6\vj\x3"+ + "k\x3k\x3k\x5k\x7AB\nk\x3k\x3k\x3k\x5k\x7B0\nk\x3k\x5k\x7B3\nk\x3k\x3k"+ + "\x5k\x7B7\nk\x3k\x3k\x5k\x7BB\nk\x3k\x3k\x5k\x7BF\nk\x3k\x5k\x7C2\nk\x3"+ + "k\x3k\x3k\x3k\ak\x7C8\nk\fk\xEk\x7CB\vk\x3l\x3l\x5l\x7CF\nl\x3m\x5m\x7D2"+ + "\nm\x3m\x3m\x3m\x5m\x7D7\nm\x3m\x3m\x5m\x7DB\nm\x3m\x5m\x7DE\nm\x3m\x5"+ + "m\x7E1\nm\x3m\x5m\x7E4\nm\x3m\x3m\x3m\x3m\am\x7EA\nm\fm\xEm\x7ED\vm\x3"+ + "n\x3n\x3n\x5n\x7F2\nn\x3n\x5n\x7F5\nn\x3n\x3n\x3n\x3n\an\x7FB\nn\fn\xE"+ + "n\x7FE\vn\x3o\x3o\x3o\x3o\x5o\x804\no\x3p\x3p\x5p\x808\np\x3p\x5p\x80B"+ + "\np\x3p\x5p\x80E\np\x3p\x5p\x811\np\x3p\x3p\x3p\x3p\ap\x817\np\fp\xEp"+ + "\x81A\vp\x3q\x3q\x5q\x81E\nq\x3q\x5q\x821\nq\x3q\x5q\x824\nq\x3q\x3q\x5"+ + "q\x828\nq\x3q\x3q\x5q\x82C\nq\x5q\x82E\nq\x3q\x3q\x5q\x832\nq\x3q\x5q"+ + "\x835\nq\x3q\x5q\x838\nq\x3q\x3q\x3q\x3q\aq\x83E\nq\fq\xEq\x841\vq\x3"+ + "r\x3r\x5r\x845\nr\x3r\x3r\x5r\x849\nr\x6r\x84B\nr\rr\xEr\x84C\x3r\x5r"+ + "\x850\nr\x3r\x5r\x853\nr\x3r\x5r\x856\nr\x3r\x3r\x3r\x3r\ar\x85C\nr\f"+ + "r\xEr\x85F\vr\x3s\x3s\x5s\x863\ns\x3s\x3s\x5s\x867\ns\x3t\x5t\x86A\nt"+ + "\x3t\x3t\x3u\x5u\x86F\nu\x3u\x5u\x872\nu\x3u\x3u\x5u\x876\nu\au\x878\n"+ + "u\fu\xEu\x87B\vu\x3u\x3u\x5u\x87F\nu\x3u\x3u\x5u\x883\nu\x3u\x5u\x886"+ + "\nu\au\x888\nu\fu\xEu\x88B\vu\x3v\x5v\x88E\nv\x3v\x3v\x5v\x892\nv\x3v"+ + "\x5v\x895\nv\x3v\x3v\x3w\x3w\x5w\x89B\nw\x3w\x3w\x5w\x89F\nw\x3x\x3x\x5"+ + "x\x8A3\nx\x3x\x3x\x5x\x8A7\nx\x3x\x3x\x5x\x8AB\nx\x3x\ax\x8AE\nx\fx\xE"+ + "x\x8B1\vx\x5x\x8B3\nx\x3x\x5x\x8B6\nx\x3x\x3x\x3y\x3y\x5y\x8BC\ny\x3y"+ + "\x3y\x5y\x8C0\ny\x3y\x3y\x5y\x8C4\ny\x3y\x3y\x5y\x8C8\ny\x3y\x5y\x8CB"+ + "\ny\x3y\x3y\x5y\x8CF\ny\x3y\x5y\x8D2\ny\x3y\x5y\x8D5\ny\x3y\x5y\x8D8\n"+ + "y\x3y\x5y\x8DB\ny\x3y\x5y\x8DE\ny\x3z\x3z\x5z\x8E2\nz\x3z\x3z\x3{\x3{"+ + "\x5{\x8E8\n{\x3{\x3{\x5{\x8EC\n{\x3{\a{\x8EF\n{\f{\xE{\x8F2\v{\x3|\x3"+ + "|\x3|\x3|\x3|\x5|\x8F9\n|\x3|\x3|\x3}\x3}\x6}\x8FF\n}\r}\xE}\x900\x3~"+ + "\x3~\x5~\x905\n~\x3~\x3~\x5~\x909\n~\x3~\x3~\x5~\x90D\n~\x3~\x5~\x910"+ + "\n~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\a\x80\x917\n\x80\f\x80\xE\x80\x91A"+ + "\v\x80\x3\x80\x3\x80\x3\x80\x6\x80\x91F\n\x80\r\x80\xE\x80\x920\x5\x80"+ + "\x923\n\x80\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\a\x82\x92A\n\x82\f\x82"+ + "\xE\x82\x92D\v\x82\x3\x83\x3\x83\x5\x83\x931\n\x83\x3\x83\x3\x83\x5\x83"+ + "\x935\n\x83\x3\x84\x3\x84\x5\x84\x939\n\x84\x3\x84\x3\x84\x5\x84\x93D"+ + "\n\x84\x3\x84\x5\x84\x940\n\x84\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3"+ + "\x87\x3\x87\x5\x87\x949\n\x87\x3\x87\x5\x87\x94C\n\x87\x3\x87\x3\x87\x5"+ + "\x87\x950\n\x87\x3\x87\x5\x87\x953\n\x87\x3\x88\x3\x88\x3\x89\x3\x89\x3"+ + "\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8D\x5\x8D\x960\n\x8D\x3\x8D"+ + "\x3\x8D\x3\x8D\x5\x8D\x965\n\x8D\x3\x8D\x5\x8D\x968\n\x8D\x3\x8E\x3\x8E"+ + "\x5\x8E\x96C\n\x8E\x3\x8E\x3\x8E\x5\x8E\x970\n\x8E\a\x8E\x972\n\x8E\f"+ + "\x8E\xE\x8E\x975\v\x8E\x3\x8E\x2\x2\x3\xBE\x8F\x2\x2\x4\x2\x6\x2\b\x2"+ + "\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E"+ + "\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2"+ + ":\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2"+ + "X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2"+ + "v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2"+ + "\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2"+ + "\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2"+ + "\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2"+ + "\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2"+ + "\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2"+ + "\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104"+ + "\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116"+ + "\x2\x118\x2\x11A\x2\x2\x17\x5\x2\x15\x15\"\"\xA5\xA5\x3\x2%\x30\x4\x2"+ + "\xAE\xAE\xB2\xB2\x3\x2GK\x3\x2uv\a\x2\x11\x11\x15\x15YY~~\x89\x89\x4\x2"+ + "\x8C\x8D\xB6\xB6\x4\x2\x66h\x9C\x9C\x3\x2\b\t\x4\x2\x9E\x9E\xA4\xA4\x4"+ + "\x2\xBA\xBA\xC3\xC3\x4\x2\xC2\xC2\xC5\xC5\a\x2ZZ\x64\x64\xBC\xBF\xC1\xC1"+ + "\xC4\xC4\x4\x2\x4\x4\n\n\x4\x2\x17\x18\x7F\x7F\x3\x2\x17\x18\f\x2\x16"+ + "\x16\x19\x19 ##\x34\x34[[__\x9D\x9D\xA2\xA2\xAF\xAF\a\x2\x38\x38LLrs"+ + "\xA9\xA9\xCA\xD0\x4\x2\x3\a\xB8\xB8\x6\x2NNRR\x82\x82\x87\x87\n\x2\v\x37"+ + "\x41\x46L\x64itwx}\x82\x87\x8C\x8E\xB7\xAE6\x2\x11C\x3\x2\x2\x2\x4\x120"+ + "\x3\x2\x2\x2\x6\x13B\x3\x2\x2\x2\b\x141\x3\x2\x2\x2\n\x14A\x3\x2\x2\x2"+ + "\f\x158\x3\x2\x2\x2\xE\x15C\x3\x2\x2\x2\x10\x16F\x3\x2\x2\x2\x12\x179"+ + "\x3\x2\x2\x2\x14\x17B\x3\x2\x2\x2\x16\x18B\x3\x2\x2\x2\x18\x18D\x3\x2"+ + "\x2\x2\x1A\x1A5\x3\x2\x2\x2\x1C\x1F2\x3\x2\x2\x2\x1E\x1F4\x3\x2\x2\x2"+ + " \x201\x3\x2\x2\x2\"\x203\x3\x2\x2\x2$\x207\x3\x2\x2\x2&\x20B\x3\x2\x2"+ + "\x2(\x220\x3\x2\x2\x2*\x232\x3\x2\x2\x2,\x243\x3\x2\x2\x2.\x250\x3\x2"+ + "\x2\x2\x30\x278\x3\x2\x2\x2\x32\x288\x3\x2\x2\x2\x34\x2B8\x3\x2\x2\x2"+ + "\x36\x2BA\x3\x2\x2\x2\x38\x2BF\x3\x2\x2\x2:\x2CD\x3\x2\x2\x2<\x2DA\x3"+ + "\x2\x2\x2>\x2DE\x3\x2\x2\x2@\x2E5\x3\x2\x2\x2\x42\x2EF\x3\x2\x2\x2\x44"+ + "\x2F1\x3\x2\x2\x2\x46\x2FD\x3\x2\x2\x2H\x312\x3\x2\x2\x2J\x33A\x3\x2\x2"+ + "\x2L\x35A\x3\x2\x2\x2N\x370\x3\x2\x2\x2P\x374\x3\x2\x2\x2R\x391\x3\x2"+ + "\x2\x2T\x393\x3\x2\x2\x2V\x39C\x3\x2\x2\x2X\x39E\x3\x2\x2\x2Z\x3A7\x3"+ + "\x2\x2\x2\\\x3AC\x3\x2\x2\x2^\x3B0\x3\x2\x2\x2`\x3BF\x3\x2\x2\x2\x62\x3C5"+ + "\x3\x2\x2\x2\x64\x3D1\x3\x2\x2\x2\x66\x3DD\x3\x2\x2\x2h\x3E1\x3\x2\x2"+ + "\x2j\x3F4\x3\x2\x2\x2l\x400\x3\x2\x2\x2n\x40E\x3\x2\x2\x2p\x412\x3\x2"+ + "\x2\x2r\x41A\x3\x2\x2\x2t\x424\x3\x2\x2\x2v\x438\x3\x2\x2\x2x\x44C\x3"+ + "\x2\x2\x2z\x48E\x3\x2\x2\x2|\x4A1\x3\x2\x2\x2~\x4A3\x3\x2\x2\x2\x80\x4B3"+ + "\x3\x2\x2\x2\x82\x4D2\x3\x2\x2\x2\x84\x4EA\x3\x2\x2\x2\x86\x4FF\x3\x2"+ + "\x2\x2\x88\x515\x3\x2\x2\x2\x8A\x528\x3\x2\x2\x2\x8C\x52D\x3\x2\x2\x2"+ + "\x8E\x541\x3\x2\x2\x2\x90\x552\x3\x2\x2\x2\x92\x554\x3\x2\x2\x2\x94\x55C"+ + "\x3\x2\x2\x2\x96\x55E\x3\x2\x2\x2\x98\x562\x3\x2\x2\x2\x9A\x56E\x3\x2"+ + "\x2\x2\x9C\x57A\x3\x2\x2\x2\x9E\x596\x3\x2\x2\x2\xA0\x5A2\x3\x2\x2\x2"+ + "\xA2\x5C1\x3\x2\x2\x2\xA4\x5C3\x3\x2\x2\x2\xA6\x5D9\x3\x2\x2\x2\xA8\x5DB"+ + "\x3\x2\x2\x2\xAA\x5E8\x3\x2\x2\x2\xAC\x5F4\x3\x2\x2\x2\xAE\x600\x3\x2"+ + "\x2\x2\xB0\x605\x3\x2\x2\x2\xB2\x61C\x3\x2\x2\x2\xB4\x629\x3\x2\x2\x2"+ + "\xB6\x637\x3\x2\x2\x2\xB8\x64E\x3\x2\x2\x2\xBA\x657\x3\x2\x2\x2\xBC\x65B"+ + "\x3\x2\x2\x2\xBE\x6A5\x3\x2\x2\x2\xC0\x71B\x3\x2\x2\x2\xC2\x724\x3\x2"+ + "\x2\x2\xC4\x732\x3\x2\x2\x2\xC6\x74D\x3\x2\x2\x2\xC8\x756\x3\x2\x2\x2"+ + "\xCA\x762\x3\x2\x2\x2\xCC\x770\x3\x2\x2\x2\xCE\x77E\x3\x2\x2\x2\xD0\x784"+ + "\x3\x2\x2\x2\xD2\x786\x3\x2\x2\x2\xD4\x7A7\x3\x2\x2\x2\xD6\x7CE\x3\x2"+ + "\x2\x2\xD8\x7D1\x3\x2\x2\x2\xDA\x7EE\x3\x2\x2\x2\xDC\x803\x3\x2\x2\x2"+ + "\xDE\x805\x3\x2\x2\x2\xE0\x81D\x3\x2\x2\x2\xE2\x844\x3\x2\x2\x2\xE4\x860"+ + "\x3\x2\x2\x2\xE6\x869\x3\x2\x2\x2\xE8\x879\x3\x2\x2\x2\xEA\x88D\x3\x2"+ + "\x2\x2\xEC\x898\x3\x2\x2\x2\xEE\x8A0\x3\x2\x2\x2\xF0\x8BB\x3\x2\x2\x2"+ + "\xF2\x8DF\x3\x2\x2\x2\xF4\x8E5\x3\x2\x2\x2\xF6\x8F8\x3\x2\x2\x2\xF8\x8FE"+ + "\x3\x2\x2\x2\xFA\x902\x3\x2\x2\x2\xFC\x911\x3\x2\x2\x2\xFE\x922\x3\x2"+ + "\x2\x2\x100\x924\x3\x2\x2\x2\x102\x926\x3\x2\x2\x2\x104\x92E\x3\x2\x2"+ + "\x2\x106\x936\x3\x2\x2\x2\x108\x941\x3\x2\x2\x2\x10A\x944\x3\x2\x2\x2"+ + "\x10C\x948\x3\x2\x2\x2\x10E\x954\x3\x2\x2\x2\x110\x956\x3\x2\x2\x2\x112"+ + "\x958\x3\x2\x2\x2\x114\x95A\x3\x2\x2\x2\x116\x95C\x3\x2\x2\x2\x118\x95F"+ + "\x3\x2\x2\x2\x11A\x973\x3\x2\x2\x2\x11C\x11D\x5\x4\x3\x2\x11D\x11E\a\x2"+ + "\x2\x3\x11E\x3\x3\x2\x2\x2\x11F\x121\a\xEF\x2\x2\x120\x11F\x3\x2\x2\x2"+ + "\x120\x121\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x126\x5\x11A\x8E\x2"+ + "\x123\x124\x5\x6\x4\x2\x124\x125\x5\x11A\x8E\x2\x125\x127\x3\x2\x2\x2"+ + "\x126\x123\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x129\x3\x2\x2\x2\x128"+ + "\x12A\x5\b\x5\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x12B"+ + "\x3\x2\x2\x2\x12B\x12D\x5\x11A\x8E\x2\x12C\x12E\x5\f\a\x2\x12D\x12C\x3"+ + "\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x131\x5\x11A"+ + "\x8E\x2\x130\x132\x5\xE\b\x2\x131\x130\x3\x2\x2\x2\x131\x132\x3\x2\x2"+ + "\x2\x132\x133\x3\x2\x2\x2\x133\x135\x5\x11A\x8E\x2\x134\x136\x5\x14\v"+ + "\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2"+ + "\x137\x139\x5\x11A\x8E\x2\x138\x13A\a\xEF\x2\x2\x139\x138\x3\x2\x2\x2"+ + "\x139\x13A\x3\x2\x2\x2\x13A\x5\x3\x2\x2\x2\x13B\x13C\a\xB0\x2\x2\x13C"+ + "\x13D\a\xEF\x2\x2\x13D\x13E\a\xCF\x2\x2\x13E\x13F\a\xEF\x2\x2\x13F\x140"+ + "\a\x1E\x2\x2\x140\a\x3\x2\x2\x2\x141\x142\a\x13\x2\x2\x142\x144\x5\x11A"+ + "\x8E\x2\x143\x145\x5\n\x6\x2\x144\x143\x3\x2\x2\x2\x145\x146\x3\x2\x2"+ + "\x2\x146\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2"+ + "\x148\x149\a\x41\x2\x2\x149\t\x3\x2\x2\x2\x14A\x14C\x5\xF8}\x2\x14B\x14D"+ + "\a\xEF\x2\x2\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3"+ + "\x2\x2\x2\x14E\x150\a\xBC\x2\x2\x14F\x151\a\xEF\x2\x2\x150\x14F\x3\x2"+ + "\x2\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\x5\x10A\x86"+ + "\x2\x153\x154\x5\x11A\x8E\x2\x154\v\x3\x2\x2\x2\x155\x156\x5\x18\r\x2"+ + "\x156\x157\x5\x11A\x8E\x2\x157\x159\x3\x2\x2\x2\x158\x155\x3\x2\x2\x2"+ + "\x159\x15A\x3\x2\x2\x2\x15A\x158\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B"+ + "\r\x3\x2\x2\x2\x15C\x162\x5\x12\n\x2\x15D\x15E\x5\x11A\x8E\x2\x15E\x15F"+ + "\x5\x12\n\x2\x15F\x161\x3\x2\x2\x2\x160\x15D\x3\x2\x2\x2\x161\x164\x3"+ + "\x2\x2\x2\x162\x160\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x165\x3\x2"+ + "\x2\x2\x164\x162\x3\x2\x2\x2\x165\x166\x5\x11A\x8E\x2\x166\xF\x3\x2\x2"+ + "\x2\x167\x168\ay\x2\x2\x168\x169\a\xEF\x2\x2\x169\x170\a\xCD\x2\x2\x16A"+ + "\x16B\a{\x2\x2\x16B\x16C\a\xEF\x2\x2\x16C\x170\t\x2\x2\x2\x16D\x170\a"+ + "z\x2\x2\x16E\x170\a|\x2\x2\x16F\x167\x3\x2\x2\x2\x16F\x16A\x3\x2\x2\x2"+ + "\x16F\x16D\x3\x2\x2\x2\x16F\x16E\x3\x2\x2\x2\x170\x11\x3\x2\x2\x2\x171"+ + "\x17A\x5.\x18\x2\x172\x17A\x5\x38\x1D\x2\x173\x17A\x5@!\x2\x174\x17A\x5"+ + "(\x15\x2\x175\x17A\x5\\/\x2\x176\x17A\x5\xC0\x61\x2\x177\x17A\x5\x10\t"+ + "\x2\x178\x17A\x5\xB4[\x2\x179\x171\x3\x2\x2\x2\x179\x172\x3\x2\x2\x2\x179"+ + "\x173\x3\x2\x2\x2\x179\x174\x3\x2\x2\x2\x179\x175\x3\x2\x2\x2\x179\x176"+ + "\x3\x2\x2\x2\x179\x177\x3\x2\x2\x2\x179\x178\x3\x2\x2\x2\x17A\x13\x3\x2"+ + "\x2\x2\x17B\x181\x5\x16\f\x2\x17C\x17D\x5\x11A\x8E\x2\x17D\x17E\x5\x16"+ + "\f\x2\x17E\x180\x3\x2\x2\x2\x17F\x17C\x3\x2\x2\x2\x180\x183\x3\x2\x2\x2"+ + "\x181\x17F\x3\x2\x2\x2\x181\x182\x3\x2\x2\x2\x182\x184\x3\x2\x2\x2\x183"+ + "\x181\x3\x2\x2\x2\x184\x185\x5\x11A\x8E\x2\x185\x15\x3\x2\x2\x2\x186\x18C"+ + "\x5J&\x2\x187\x18C\x5\x80\x41\x2\x188\x18C\x5\x82\x42\x2\x189\x18C\x5"+ + "\x84\x43\x2\x18A\x18C\x5\xB0Y\x2\x18B\x186\x3\x2\x2\x2\x18B\x187\x3\x2"+ + "\x2\x2\x18B\x188\x3\x2\x2\x2\x18B\x189\x3\x2\x2\x2\x18B\x18A\x3\x2\x2"+ + "\x2\x18C\x17\x3\x2\x2\x2\x18D\x18E\a\xF\x2\x2\x18E\x18F\a\xEF\x2\x2\x18F"+ + "\x191\x5\xDCo\x2\x190\x192\a\xEF\x2\x2\x191\x190\x3\x2\x2\x2\x191\x192"+ + "\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2\x193\x195\a\xBC\x2\x2\x194\x196\a\xEF"+ + "\x2\x2\x195\x194\x3\x2\x2\x2\x195\x196\x3\x2\x2\x2\x196\x197\x3\x2\x2"+ + "\x2\x197\x1A2\x5\x10A\x86\x2\x198\x19A\a\xEF\x2\x2\x199\x198\x3\x2\x2"+ + "\x2\x199\x19A\x3\x2\x2\x2\x19A\x19B\x3\x2\x2\x2\x19B\x19D\a\t\x2\x2\x19C"+ + "\x19E\a\xEF\x2\x2\x19D\x19C\x3\x2\x2\x2\x19D\x19E\x3\x2\x2\x2\x19E\x19F"+ + "\x3\x2\x2\x2\x19F\x1A1\x5\x10A\x86\x2\x1A0\x199\x3\x2\x2\x2\x1A1\x1A4"+ + "\x3\x2\x2\x2\x1A2\x1A0\x3\x2\x2\x2\x1A2\x1A3\x3\x2\x2\x2\x1A3\x19\x3\x2"+ + "\x2\x2\x1A4\x1A2\x3\x2\x2\x2\x1A5\x1AB\x5\x1C\xF\x2\x1A6\x1A7\x5\x11A"+ + "\x8E\x2\x1A7\x1A8\x5\x1C\xF\x2\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1A6\x3\x2\x2"+ + "\x2\x1AA\x1AD\x3\x2\x2\x2\x1AB\x1A9\x3\x2\x2\x2\x1AB\x1AC\x3\x2\x2\x2"+ + "\x1AC\x1AE\x3\x2\x2\x2\x1AD\x1AB\x3\x2\x2\x2\x1AE\x1AF\x5\x11A\x8E\x2"+ + "\x1AF\x1B\x3\x2\x2\x2\x1B0\x1F3\x5\x108\x85\x2\x1B1\x1F3\x5\x1E\x10\x2"+ + "\x1B2\x1F3\x5\x18\r\x2\x1B3\x1F3\x5 \x11\x2\x1B4\x1F3\x5\"\x12\x2\x1B5"+ + "\x1F3\x5$\x13\x2\x1B6\x1F3\x5&\x14\x2\x1B7\x1F3\x5(\x15\x2\x1B8\x1F3\x5"+ + ",\x17\x2\x1B9\x1F3\x5\x32\x1A\x2\x1BA\x1F3\x5\x30\x19\x2\x1BB\x1F3\x5"+ + "\x34\x1B\x2\x1BC\x1F3\x5\x36\x1C\x2\x1BD\x1F3\x5<\x1F\x2\x1BE\x1F3\x5"+ + "> \x2\x1BF\x1F3\x5\x42\"\x2\x1C0\x1F3\x5\xD0i\x2\x1C1\x1F3\x5\x44#\x2"+ + "\x1C2\x1F3\x5\x46$\x2\x1C3\x1F3\x5H%\x2\x1C4\x1F3\x5L\'\x2\x1C5\x1F3\x5"+ + "N(\x2\x1C6\x1F3\x5P)\x2\x1C7\x1F3\x5R*\x2\x1C8\x1F3\x5\\/\x2\x1C9\x1F3"+ + "\x5^\x30\x2\x1CA\x1F3\x5`\x31\x2\x1CB\x1F3\x5\x62\x32\x2\x1CC\x1F3\x5"+ + "\x64\x33\x2\x1CD\x1F3\x5\x66\x34\x2\x1CE\x1F3\x5h\x35\x2\x1CF\x1F3\x5"+ + "j\x36\x2\x1D0\x1F3\x5l\x37\x2\x1D1\x1F3\x5n\x38\x2\x1D2\x1F3\x5p\x39\x2"+ + "\x1D3\x1F3\x5r:\x2\x1D4\x1F3\x5t;\x2\x1D5\x1F3\x5v<\x2\x1D6\x1F3\x5x="+ + "\x2\x1D7\x1F3\x5~@\x2\x1D8\x1F3\x5\x86\x44\x2\x1D9\x1F3\x5\x88\x45\x2"+ + "\x1DA\x1F3\x5\x8A\x46\x2\x1DB\x1F3\x5\x8CG\x2\x1DC\x1F3\x5\x90I\x2\x1DD"+ + "\x1F3\x5\x92J\x2\x1DE\x1F3\x5\x94K\x2\x1DF\x1F3\x5\x96L\x2\x1E0\x1F3\x5"+ + "\x98M\x2\x1E1\x1F3\x5\x9AN\x2\x1E2\x1F3\x5\x9CO\x2\x1E3\x1F3\x5\x9EP\x2"+ + "\x1E4\x1F3\x5\xA0Q\x2\x1E5\x1F3\x5\xA8U\x2\x1E6\x1F3\x5\xAAV\x2\x1E7\x1F3"+ + "\x5\xACW\x2\x1E8\x1F3\x5\xAEX\x2\x1E9\x1F3\x5\xB2Z\x2\x1EA\x1F3\x5\xBA"+ + "^\x2\x1EB\x1F3\x5\xBC_\x2\x1EC\x1F3\x5\xC0\x61\x2\x1ED\x1F3\x5\xC6\x64"+ + "\x2\x1EE\x1F3\x5\xC8\x65\x2\x1EF\x1F3\x5\xCA\x66\x2\x1F0\x1F3\x5\xCCg"+ + "\x2\x1F1\x1F3\x5\xD6l\x2\x1F2\x1B0\x3\x2\x2\x2\x1F2\x1B1\x3\x2\x2\x2\x1F2"+ + "\x1B2\x3\x2\x2\x2\x1F2\x1B3\x3\x2\x2\x2\x1F2\x1B4\x3\x2\x2\x2\x1F2\x1B5"+ + "\x3\x2\x2\x2\x1F2\x1B6\x3\x2\x2\x2\x1F2\x1B7\x3\x2\x2\x2\x1F2\x1B8\x3"+ + "\x2\x2\x2\x1F2\x1B9\x3\x2\x2\x2\x1F2\x1BA\x3\x2\x2\x2\x1F2\x1BB\x3\x2"+ + "\x2\x2\x1F2\x1BC\x3\x2\x2\x2\x1F2\x1BD\x3\x2\x2\x2\x1F2\x1BE\x3\x2\x2"+ + "\x2\x1F2\x1BF\x3\x2\x2\x2\x1F2\x1C0\x3\x2\x2\x2\x1F2\x1C1\x3\x2\x2\x2"+ + "\x1F2\x1C2\x3\x2\x2\x2\x1F2\x1C3\x3\x2\x2\x2\x1F2\x1C4\x3\x2\x2\x2\x1F2"+ + "\x1C5\x3\x2\x2\x2\x1F2\x1C6\x3\x2\x2\x2\x1F2\x1C7\x3\x2\x2\x2\x1F2\x1C8"+ + "\x3\x2\x2\x2\x1F2\x1C9\x3\x2\x2\x2\x1F2\x1CA\x3\x2\x2\x2\x1F2\x1CB\x3"+ + "\x2\x2\x2\x1F2\x1CC\x3\x2\x2\x2\x1F2\x1CD\x3\x2\x2\x2\x1F2\x1CE\x3\x2"+ + "\x2\x2\x1F2\x1CF\x3\x2\x2\x2\x1F2\x1D0\x3\x2\x2\x2\x1F2\x1D1\x3\x2\x2"+ + "\x2\x1F2\x1D2\x3\x2\x2\x2\x1F2\x1D3\x3\x2\x2\x2\x1F2\x1D4\x3\x2\x2\x2"+ + "\x1F2\x1D5\x3\x2\x2\x2\x1F2\x1D6\x3\x2\x2\x2\x1F2\x1D7\x3\x2\x2\x2\x1F2"+ + "\x1D8\x3\x2\x2\x2\x1F2\x1D9\x3\x2\x2\x2\x1F2\x1DA\x3\x2\x2\x2\x1F2\x1DB"+ + "\x3\x2\x2\x2\x1F2\x1DC\x3\x2\x2\x2\x1F2\x1DD\x3\x2\x2\x2\x1F2\x1DE\x3"+ + "\x2\x2\x2\x1F2\x1DF\x3\x2\x2\x2\x1F2\x1E0\x3\x2\x2\x2\x1F2\x1E1\x3\x2"+ + "\x2\x2\x1F2\x1E2\x3\x2\x2\x2\x1F2\x1E3\x3\x2\x2\x2\x1F2\x1E4\x3\x2\x2"+ + "\x2\x1F2\x1E5\x3\x2\x2\x2\x1F2\x1E6\x3\x2\x2\x2\x1F2\x1E7\x3\x2\x2\x2"+ + "\x1F2\x1E8\x3\x2\x2\x2\x1F2\x1E9\x3\x2\x2\x2\x1F2\x1EA\x3\x2\x2\x2\x1F2"+ + "\x1EB\x3\x2\x2\x2\x1F2\x1EC\x3\x2\x2\x2\x1F2\x1ED\x3\x2\x2\x2\x1F2\x1EE"+ + "\x3\x2\x2\x2\x1F2\x1EF\x3\x2\x2\x2\x1F2\x1F0\x3\x2\x2\x2\x1F2\x1F1\x3"+ + "\x2\x2\x2\x1F3\x1D\x3\x2\x2\x2\x1F4\x1F5\a\x10\x2\x2\x1F5\x1F6\a\xEF\x2"+ + "\x2\x1F6\x1FF\x5\xBE`\x2\x1F7\x1F9\a\xEF\x2\x2\x1F8\x1F7\x3\x2\x2\x2\x1F8"+ + "\x1F9\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FC\a\t\x2\x2\x1FB\x1FD"+ + "\a\xEF\x2\x2\x1FC\x1FB\x3\x2\x2\x2\x1FC\x1FD\x3\x2\x2\x2\x1FD\x1FE\x3"+ + "\x2\x2\x2\x1FE\x200\x5\xBE`\x2\x1FF\x1F8\x3\x2\x2\x2\x1FF\x200\x3\x2\x2"+ + "\x2\x200\x1F\x3\x2\x2\x2\x201\x202\a\x14\x2\x2\x202!\x3\x2\x2\x2\x203"+ + "\x204\a\x1C\x2\x2\x204\x205\a\xEF\x2\x2\x205\x206\x5\xBE`\x2\x206#\x3"+ + "\x2\x2\x2\x207\x208\a\x1D\x2\x2\x208\x209\a\xEF\x2\x2\x209\x20A\x5\xBE"+ + "`\x2\x20A%\x3\x2\x2\x2\x20B\x21B\a\x1F\x2\x2\x20C\x20D\a\xEF\x2\x2\x20D"+ + "\x218\x5\xCEh\x2\x20E\x210\a\xEF\x2\x2\x20F\x20E\x3\x2\x2\x2\x20F\x210"+ + "\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x213\a\t\x2\x2\x212\x214\a\xEF"+ + "\x2\x2\x213\x212\x3\x2\x2\x2\x213\x214\x3\x2\x2\x2\x214\x215\x3\x2\x2"+ + "\x2\x215\x217\x5\xCEh\x2\x216\x20F\x3\x2\x2\x2\x217\x21A\x3\x2\x2\x2\x218"+ + "\x216\x3\x2\x2\x2\x218\x219\x3\x2\x2\x2\x219\x21C\x3\x2\x2\x2\x21A\x218"+ + "\x3\x2\x2\x2\x21B\x20C\x3\x2\x2\x2\x21B\x21C\x3\x2\x2\x2\x21C\'\x3\x2"+ + "\x2\x2\x21D\x21E\x5\x110\x89\x2\x21E\x21F\a\xEF\x2\x2\x21F\x221\x3\x2"+ + "\x2\x2\x220\x21D\x3\x2\x2\x2\x220\x221\x3\x2\x2\x2\x221\x222\x3\x2\x2"+ + "\x2\x222\x223\a!\x2\x2\x223\x224\a\xEF\x2\x2\x224\x22F\x5*\x16\x2\x225"+ + "\x227\a\xEF\x2\x2\x226\x225\x3\x2\x2\x2\x226\x227\x3\x2\x2\x2\x227\x228"+ + "\x3\x2\x2\x2\x228\x22A\a\t\x2\x2\x229\x22B\a\xEF\x2\x2\x22A\x229\x3\x2"+ + "\x2\x2\x22A\x22B\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C\x22E\x5*\x16\x2"+ + "\x22D\x226\x3\x2\x2\x2\x22E\x231\x3\x2\x2\x2\x22F\x22D\x3\x2\x2\x2\x22F"+ + "\x230\x3\x2\x2\x2\x230)\x3\x2\x2\x2\x231\x22F\x3\x2\x2\x2\x232\x234\x5"+ + "\xF8}\x2\x233\x235\x5\x10E\x88\x2\x234\x233\x3\x2\x2\x2\x234\x235\x3\x2"+ + "\x2\x2\x235\x238\x3\x2\x2\x2\x236\x237\a\xEF\x2\x2\x237\x239\x5\xFA~\x2"+ + "\x238\x236\x3\x2\x2\x2\x238\x239\x3\x2\x2\x2\x239\x23B\x3\x2\x2\x2\x23A"+ + "\x23C\a\xEF\x2\x2\x23B\x23A\x3\x2\x2\x2\x23B\x23C\x3\x2\x2\x2\x23C\x23D"+ + "\x3\x2\x2\x2\x23D\x23F\a\xBC\x2\x2\x23E\x240\a\xEF\x2\x2\x23F\x23E\x3"+ + "\x2\x2\x2\x23F\x240\x3\x2\x2\x2\x240\x241\x3\x2\x2\x2\x241\x242\x5\xBE"+ + "`\x2\x242+\x3\x2\x2\x2\x243\x245\a#\x2\x2\x244\x246\a\xEF\x2\x2\x245\x244"+ + "\x3\x2\x2\x2\x245\x246\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x249\a\xBC"+ + "\x2\x2\x248\x24A\a\xEF\x2\x2\x249\x248\x3\x2\x2\x2\x249\x24A\x3\x2\x2"+ + "\x2\x24A\x24B\x3\x2\x2\x2\x24B\x24C\x5\xBE`\x2\x24C-\x3\x2\x2\x2\x24D"+ + "\x24E\x5\x110\x89\x2\x24E\x24F\a\xEF\x2\x2\x24F\x251\x3\x2\x2\x2\x250"+ + "\x24D\x3\x2\x2\x2\x250\x251\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252\x253"+ + "\a$\x2\x2\x253\x256\a\xEF\x2\x2\x254\x255\a\x86\x2\x2\x255\x257\a\xEF"+ + "\x2\x2\x256\x254\x3\x2\x2\x2\x256\x257\x3\x2\x2\x2\x257\x25D\x3\x2\x2"+ + "\x2\x258\x25A\aP\x2\x2\x259\x25B\x5\x10E\x88\x2\x25A\x259\x3\x2\x2\x2"+ + "\x25A\x25B\x3\x2\x2\x2\x25B\x25E\x3\x2\x2\x2\x25C\x25E\a\xA3\x2\x2\x25D"+ + "\x258\x3\x2\x2\x2\x25D\x25C\x3\x2\x2\x2\x25E\x25F\x3\x2\x2\x2\x25F\x260"+ + "\a\xEF\x2\x2\x260\x262\x5\xF8}\x2\x261\x263\x5\x10E\x88\x2\x262\x261\x3"+ + "\x2\x2\x2\x262\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x265\a\xEF"+ + "\x2\x2\x265\x266\a\x63\x2\x2\x266\x267\a\xEF\x2\x2\x267\x26C\a\xCA\x2"+ + "\x2\x268\x269\a\xEF\x2\x2\x269\x26A\a\r\x2\x2\x26A\x26B\a\xEF\x2\x2\x26B"+ + "\x26D\a\xCA\x2\x2\x26C\x268\x3\x2\x2\x2\x26C\x26D\x3\x2\x2\x2\x26D\x272"+ + "\x3\x2\x2\x2\x26E\x270\a\xEF\x2\x2\x26F\x26E\x3\x2\x2\x2\x26F\x270\x3"+ + "\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x273\x5\xEEx\x2\x272\x26F\x3\x2\x2"+ + "\x2\x272\x273\x3\x2\x2\x2\x273\x276\x3\x2\x2\x2\x274\x275\a\xEF\x2\x2"+ + "\x275\x277\x5\xFA~\x2\x276\x274\x3\x2\x2\x2\x276\x277\x3\x2\x2\x2\x277"+ + "/\x3\x2\x2\x2\x278\x279\t\x3\x2\x2\x279\x27A\a\xEF\x2\x2\x27A\x285\x5"+ + "\x106\x84\x2\x27B\x27D\a\xEF\x2\x2\x27C\x27B\x3\x2\x2\x2\x27C\x27D\x3"+ + "\x2\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x280\a\t\x2\x2\x27F\x281\a\xEF\x2"+ + "\x2\x280\x27F\x3\x2\x2\x2\x280\x281\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2"+ + "\x282\x284\x5\x106\x84\x2\x283\x27C\x3\x2\x2\x2\x284\x287\x3\x2\x2\x2"+ + "\x285\x283\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2\x286\x31\x3\x2\x2\x2\x287"+ + "\x285\x3\x2\x2\x2\x288\x289\a\x31\x2\x2\x289\x28A\a\xEF\x2\x2\x28A\x28C"+ + "\x5\xBE`\x2\x28B\x28D\a\xEF\x2\x2\x28C\x28B\x3\x2\x2\x2\x28C\x28D\x3\x2"+ + "\x2\x2\x28D\x28E\x3\x2\x2\x2\x28E\x290\a\t\x2\x2\x28F\x291\a\xEF\x2\x2"+ + "\x290\x28F\x3\x2\x2\x2\x290\x291\x3\x2\x2\x2\x291\x292\x3\x2\x2\x2\x292"+ + "\x29B\x5\xBE`\x2\x293\x295\a\xEF\x2\x2\x294\x293\x3\x2\x2\x2\x294\x295"+ + "\x3\x2\x2\x2\x295\x296\x3\x2\x2\x2\x296\x298\a\t\x2\x2\x297\x299\a\xEF"+ + "\x2\x2\x298\x297\x3\x2\x2\x2\x298\x299\x3\x2\x2\x2\x299\x29A\x3\x2\x2"+ + "\x2\x29A\x29C\x5\xBE`\x2\x29B\x294\x3\x2\x2\x2\x29B\x29C\x3\x2\x2\x2\x29C"+ + "\x33\x3\x2\x2\x2\x29D\x29E\a\x33\x2\x2\x29E\x2A0\x5\x11A\x8E\x2\x29F\x2A1"+ + "\x5\x1A\xE\x2\x2A0\x29F\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1\x2A2\x3"+ + "\x2\x2\x2\x2A2\x2A3\a`\x2\x2\x2A3\x2B9\x3\x2\x2\x2\x2A4\x2A5\a\x33\x2"+ + "\x2\x2A5\x2A6\a\xEF\x2\x2\x2A6\x2A7\t\x4\x2\x2\x2A7\x2A8\a\xEF\x2\x2\x2A8"+ + "\x2A9\x5\xBE`\x2\x2A9\x2AB\x5\x11A\x8E\x2\x2AA\x2AC\x5\x1A\xE\x2\x2AB"+ + "\x2AA\x3\x2\x2\x2\x2AB\x2AC\x3\x2\x2\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE"+ + "\a`\x2\x2\x2AE\x2B9\x3\x2\x2\x2\x2AF\x2B0\a\x33\x2\x2\x2B0\x2B1\x5\x11A"+ + "\x8E\x2\x2B1\x2B2\x5\x1A\xE\x2\x2B2\x2B3\a`\x2\x2\x2B3\x2B4\a\xEF\x2\x2"+ + "\x2B4\x2B5\t\x4\x2\x2\x2B5\x2B6\a\xEF\x2\x2\x2B6\x2B7\x5\xBE`\x2\x2B7"+ + "\x2B9\x3\x2\x2\x2\x2B8\x29D\x3\x2\x2\x2\x2B8\x2A4\x3\x2\x2\x2\x2B8\x2AF"+ + "\x3\x2\x2\x2\x2B9\x35\x3\x2\x2\x2\x2BA\x2BB\a\x41\x2\x2\x2BB\x37\x3\x2"+ + "\x2\x2\x2BC\x2BD\x5\x110\x89\x2\x2BD\x2BE\a\xEF\x2\x2\x2BE\x2C0\x3\x2"+ + "\x2\x2\x2BF\x2BC\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2"+ + "\x2\x2C1\x2C2\a\x42\x2\x2\x2C2\x2C3\a\xEF\x2\x2\x2C3\x2C4\x5\xF8}\x2\x2C4"+ + "\x2C8\x5\x11A\x8E\x2\x2C5\x2C7\x5:\x1E\x2\x2C6\x2C5\x3\x2\x2\x2\x2C7\x2CA"+ + "\x3\x2\x2\x2\x2C8\x2C6\x3\x2\x2\x2\x2C8\x2C9\x3\x2\x2\x2\x2C9\x2CB\x3"+ + "\x2\x2\x2\x2CA\x2C8\x3\x2\x2\x2\x2CB\x2CC\a\x39\x2\x2\x2CC\x39\x3\x2\x2"+ + "\x2\x2CD\x2D6\x5\xF8}\x2\x2CE\x2D0\a\xEF\x2\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF"+ + "\x2D0\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2\x2D1\x2D3\a\xBC\x2\x2\x2D2\x2D4"+ + "\a\xEF\x2\x2\x2D3\x2D2\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3"+ + "\x2\x2\x2\x2D5\x2D7\x5\xBE`\x2\x2D6\x2CF\x3\x2\x2\x2\x2D6\x2D7\x3\x2\x2"+ + "\x2\x2D7\x2D8\x3\x2\x2\x2\x2D8\x2D9\x5\x11A\x8E\x2\x2D9;\x3\x2\x2\x2\x2DA"+ + "\x2DB\a\x44\x2\x2\x2DB\x2DC\a\xEF\x2\x2\x2DC\x2DD\x5\xBE`\x2\x2DD=\x3"+ + "\x2\x2\x2\x2DE\x2DF\a\x45\x2\x2\x2DF\x2E0\a\xEF\x2\x2\x2E0\x2E1\x5\xBE"+ + "`\x2\x2E1?\x3\x2\x2\x2\x2E2\x2E3\x5\x110\x89\x2\x2E3\x2E4\a\xEF\x2\x2"+ + "\x2E4\x2E6\x3\x2\x2\x2\x2E5\x2E2\x3\x2\x2\x2\x2E5\x2E6\x3\x2\x2\x2\x2E6"+ + "\x2E7\x3\x2\x2\x2\x2E7\x2E8\a\x46\x2\x2\x2E8\x2E9\a\xEF\x2\x2\x2E9\x2EB"+ + "\x5\xF8}\x2\x2EA\x2EC\a\xEF\x2\x2\x2EB\x2EA\x3\x2\x2\x2\x2EB\x2EC\x3\x2"+ + "\x2\x2\x2EC\x2ED\x3\x2\x2\x2\x2ED\x2EE\x5\xEEx\x2\x2EE\x41\x3\x2\x2\x2"+ + "\x2EF\x2F0\t\x5\x2\x2\x2F0\x43\x3\x2\x2\x2\x2F1\x2F2\aM\x2\x2\x2F2\x2F3"+ + "\a\xEF\x2\x2\x2F3\x2F5\x5\xBE`\x2\x2F4\x2F6\a\xEF\x2\x2\x2F5\x2F4\x3\x2"+ + "\x2\x2\x2F5\x2F6\x3\x2\x2\x2\x2F6\x2F7\x3\x2\x2\x2\x2F7\x2F9\a\t\x2\x2"+ + "\x2F8\x2FA\a\xEF\x2\x2\x2F9\x2F8\x3\x2\x2\x2\x2F9\x2FA\x3\x2\x2\x2\x2FA"+ + "\x2FB\x3\x2\x2\x2\x2FB\x2FC\x5\xBE`\x2\x2FC\x45\x3\x2\x2\x2\x2FD\x2FE"+ + "\aO\x2\x2\x2FE\x2FF\a\xEF\x2\x2\x2FF\x300\a\x35\x2\x2\x300\x301\a\xEF"+ + "\x2\x2\x301\x303\x5\xF8}\x2\x302\x304\x5\x10E\x88\x2\x303\x302\x3\x2\x2"+ + "\x2\x303\x304\x3\x2\x2\x2\x304\x305\x3\x2\x2\x2\x305\x306\a\xEF\x2\x2"+ + "\x306\x307\aX\x2\x2\x307\x308\a\xEF\x2\x2\x308\x309\x5\xBE`\x2\x309\x30B"+ + "\x5\x11A\x8E\x2\x30A\x30C\x5\x1A\xE\x2\x30B\x30A\x3\x2\x2\x2\x30B\x30C"+ + "\x3\x2\x2\x2\x30C\x30D\x3\x2\x2\x2\x30D\x310\ao\x2\x2\x30E\x30F\a\xEF"+ + "\x2\x2\x30F\x311\x5\xF8}\x2\x310\x30E\x3\x2\x2\x2\x310\x311\x3\x2\x2\x2"+ + "\x311G\x3\x2\x2\x2\x312\x313\aO\x2\x2\x313\x314\a\xEF\x2\x2\x314\x316"+ + "\x5\xF8}\x2\x315\x317\x5\x10E\x88\x2\x316\x315\x3\x2\x2\x2\x316\x317\x3"+ + "\x2\x2\x2\x317\x31A\x3\x2\x2\x2\x318\x319\a\xEF\x2\x2\x319\x31B\x5\xFA"+ + "~\x2\x31A\x318\x3\x2\x2\x2\x31A\x31B\x3\x2\x2\x2\x31B\x31D\x3\x2\x2\x2"+ + "\x31C\x31E\a\xEF\x2\x2\x31D\x31C\x3\x2\x2\x2\x31D\x31E\x3\x2\x2\x2\x31E"+ + "\x31F\x3\x2\x2\x2\x31F\x321\a\xBC\x2\x2\x320\x322\a\xEF\x2\x2\x321\x320"+ + "\x3\x2\x2\x2\x321\x322\x3\x2\x2\x2\x322\x323\x3\x2\x2\x2\x323\x324\x5"+ + "\xBE`\x2\x324\x325\a\xEF\x2\x2\x325\x326\a\xA8\x2\x2\x326\x327\a\xEF\x2"+ + "\x2\x327\x32C\x5\xBE`\x2\x328\x329\a\xEF\x2\x2\x329\x32A\a\xA0\x2\x2\x32A"+ + "\x32B\a\xEF\x2\x2\x32B\x32D\x5\xBE`\x2\x32C\x328\x3\x2\x2\x2\x32C\x32D"+ + "\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2\x32E\x330\x5\x11A\x8E\x2\x32F\x331"+ + "\x5\x1A\xE\x2\x330\x32F\x3\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332\x3"+ + "\x2\x2\x2\x332\x335\ao\x2\x2\x333\x334\a\xEF\x2\x2\x334\x336\x5\xF8}\x2"+ + "\x335\x333\x3\x2\x2\x2\x335\x336\x3\x2\x2\x2\x336I\x3\x2\x2\x2\x337\x338"+ + "\x5\x110\x89\x2\x338\x339\a\xEF\x2\x2\x339\x33B\x3\x2\x2\x2\x33A\x337"+ + "\x3\x2\x2\x2\x33A\x33B\x3\x2\x2\x2\x33B\x33E\x3\x2\x2\x2\x33C\x33D\a\x9F"+ + "\x2\x2\x33D\x33F\a\xEF\x2\x2\x33E\x33C\x3\x2\x2\x2\x33E\x33F\x3\x2\x2"+ + "\x2\x33F\x340\x3\x2\x2\x2\x340\x342\aP\x2\x2\x341\x343\a\xEF\x2\x2\x342"+ + "\x341\x3\x2\x2\x2\x342\x343\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x346"+ + "\x5\xF8}\x2\x345\x347\x5\x10E\x88\x2\x346\x345\x3\x2\x2\x2\x346\x347\x3"+ + "\x2\x2\x2\x347\x34C\x3\x2\x2\x2\x348\x34A\a\xEF\x2\x2\x349\x348\x3\x2"+ + "\x2\x2\x349\x34A\x3\x2\x2\x2\x34A\x34B\x3\x2\x2\x2\x34B\x34D\x5\xEEx\x2"+ + "\x34C\x349\x3\x2\x2\x2\x34C\x34D\x3\x2\x2\x2\x34D\x352\x3\x2\x2\x2\x34E"+ + "\x350\a\xEF\x2\x2\x34F\x34E\x3\x2\x2\x2\x34F\x350\x3\x2\x2\x2\x350\x351"+ + "\x3\x2\x2\x2\x351\x353\x5\xFA~\x2\x352\x34F\x3\x2\x2\x2\x352\x353\x3\x2"+ + "\x2\x2\x353\x354\x3\x2\x2\x2\x354\x356\x5\x11A\x8E\x2\x355\x357\x5\x1A"+ + "\xE\x2\x356\x355\x3\x2\x2\x2\x356\x357\x3\x2\x2\x2\x357\x358\x3\x2\x2"+ + "\x2\x358\x359\a:\x2\x2\x359K\x3\x2\x2\x2\x35A\x35B\aQ\x2\x2\x35B\x35C"+ + "\a\xEF\x2\x2\x35C\x35E\x5\xCEh\x2\x35D\x35F\a\xEF\x2\x2\x35E\x35D\x3\x2"+ + "\x2\x2\x35E\x35F\x3\x2\x2\x2\x35F\x360\x3\x2\x2\x2\x360\x362\a\t\x2\x2"+ + "\x361\x363\a\xEF\x2\x2\x362\x361\x3\x2\x2\x2\x362\x363\x3\x2\x2\x2\x363"+ + "\x365\x3\x2\x2\x2\x364\x366\x5\xBE`\x2\x365\x364\x3\x2\x2\x2\x365\x366"+ + "\x3\x2\x2\x2\x366\x368\x3\x2\x2\x2\x367\x369\a\xEF\x2\x2\x368\x367\x3"+ + "\x2\x2\x2\x368\x369\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36C\a\t\x2"+ + "\x2\x36B\x36D\a\xEF\x2\x2\x36C\x36B\x3\x2\x2\x2\x36C\x36D\x3\x2\x2\x2"+ + "\x36D\x36E\x3\x2\x2\x2\x36E\x36F\x5\xBE`\x2\x36FM\x3\x2\x2\x2\x370\x371"+ + "\aS\x2\x2\x371\x372\a\xEF\x2\x2\x372\x373\x5\xBE`\x2\x373O\x3\x2\x2\x2"+ + "\x374\x375\aT\x2\x2\x375\x376\a\xEF\x2\x2\x376\x377\x5\xBE`\x2\x377Q\x3"+ + "\x2\x2\x2\x378\x379\aU\x2\x2\x379\x37A\a\xEF\x2\x2\x37A\x37B\x5V,\x2\x37B"+ + "\x37C\a\xEF\x2\x2\x37C\x37D\a\xA6\x2\x2\x37D\x37E\a\xEF\x2\x2\x37E\x383"+ + "\x5\x1C\xF\x2\x37F\x380\a\xEF\x2\x2\x380\x381\a\x36\x2\x2\x381\x382\a"+ + "\xEF\x2\x2\x382\x384\x5\x1C\xF\x2\x383\x37F\x3\x2\x2\x2\x383\x384\x3\x2"+ + "\x2\x2\x384\x392\x3\x2\x2\x2\x385\x389\x5T+\x2\x386\x388\x5X-\x2\x387"+ + "\x386\x3\x2\x2\x2\x388\x38B\x3\x2\x2\x2\x389\x387\x3\x2\x2\x2\x389\x38A"+ + "\x3\x2\x2\x2\x38A\x38D\x3\x2\x2\x2\x38B\x389\x3\x2\x2\x2\x38C\x38E\x5"+ + "Z.\x2\x38D\x38C\x3\x2\x2\x2\x38D\x38E\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2"+ + "\x38F\x390\a;\x2\x2\x390\x392\x3\x2\x2\x2\x391\x378\x3\x2\x2\x2\x391\x385"+ + "\x3\x2\x2\x2\x392S\x3\x2\x2\x2\x393\x394\aU\x2\x2\x394\x395\a\xEF\x2\x2"+ + "\x395\x396\x5V,\x2\x396\x397\a\xEF\x2\x2\x397\x398\a\xA6\x2\x2\x398\x39A"+ + "\x5\x11A\x8E\x2\x399\x39B\x5\x1A\xE\x2\x39A\x399\x3\x2\x2\x2\x39A\x39B"+ + "\x3\x2\x2\x2\x39BU\x3\x2\x2\x2\x39C\x39D\x5\xBE`\x2\x39DW\x3\x2\x2\x2"+ + "\x39E\x39F\a\x37\x2\x2\x39F\x3A0\a\xEF\x2\x2\x3A0\x3A1\x5V,\x2\x3A1\x3A2"+ + "\a\xEF\x2\x2\x3A2\x3A3\a\xA6\x2\x2\x3A3\x3A5\x5\x11A\x8E\x2\x3A4\x3A6"+ + "\x5\x1A\xE\x2\x3A5\x3A4\x3\x2\x2\x2\x3A5\x3A6\x3\x2\x2\x2\x3A6Y\x3\x2"+ + "\x2\x2\x3A7\x3A8\a\x36\x2\x2\x3A8\x3AA\x5\x11A\x8E\x2\x3A9\x3AB\x5\x1A"+ + "\xE\x2\x3AA\x3A9\x3\x2\x2\x2\x3AA\x3AB\x3\x2\x2\x2\x3AB[\x3\x2\x2\x2\x3AC"+ + "\x3AD\aW\x2\x2\x3AD\x3AE\a\xEF\x2\x2\x3AE\x3AF\x5\xF8}\x2\x3AF]\x3\x2"+ + "\x2\x2\x3B0\x3B1\aY\x2\x2\x3B1\x3B2\a\xEF\x2\x2\x3B2\x3BB\x5\xCEh\x2\x3B3"+ + "\x3B5\a\xEF\x2\x2\x3B4\x3B3\x3\x2\x2\x2\x3B4\x3B5\x3\x2\x2\x2\x3B5\x3B6"+ + "\x3\x2\x2\x2\x3B6\x3B8\a\t\x2\x2\x3B7\x3B9\a\xEF\x2\x2\x3B8\x3B7\x3\x2"+ + "\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BC\x5\xBE`\x2"+ + "\x3BB\x3B4\x3\x2\x2\x2\x3BC\x3BD\x3\x2\x2\x2\x3BD\x3BB\x3\x2\x2\x2\x3BD"+ + "\x3BE\x3\x2\x2\x2\x3BE_\x3\x2\x2\x2\x3BF\x3C0\a\\\x2\x2\x3C0\x3C1\a\xEF"+ + "\x2\x2\x3C1\x3C2\x5\xBE`\x2\x3C2\x61\x3\x2\x2\x2\x3C3\x3C4\a\x62\x2\x2"+ + "\x3C4\x3C6\a\xEF\x2\x2\x3C5\x3C3\x3\x2\x2\x2\x3C5\x3C6\x3\x2\x2\x2\x3C6"+ + "\x3C7\x3\x2\x2\x2\x3C7\x3C9\x5\xDCo\x2\x3C8\x3CA\a\xEF\x2\x2\x3C9\x3C8"+ + "\x3\x2\x2\x2\x3C9\x3CA\x3\x2\x2\x2\x3CA\x3CB\x3\x2\x2\x2\x3CB\x3CD\a\xBC"+ + "\x2\x2\x3CC\x3CE\a\xEF\x2\x2\x3CD\x3CC\x3\x2\x2\x2\x3CD\x3CE\x3\x2\x2"+ + "\x2\x3CE\x3CF\x3\x2\x2\x2\x3CF\x3D0\x5\xBE`\x2\x3D0\x63\x3\x2\x2\x2\x3D1"+ + "\x3D2\a\x65\x2\x2\x3D2\x3D3\a\xEF\x2\x2\x3D3\x3D5\x5\xCEh\x2\x3D4\x3D6"+ + "\a\xEF\x2\x2\x3D5\x3D4\x3\x2\x2\x2\x3D5\x3D6\x3\x2\x2\x2\x3D6\x3D7\x3"+ + "\x2\x2\x2\x3D7\x3D9\a\t\x2\x2\x3D8\x3DA\a\xEF\x2\x2\x3D9\x3D8\x3\x2\x2"+ + "\x2\x3D9\x3DA\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DC\x5\xBE`\x2\x3DC"+ + "\x65\x3\x2\x2\x2\x3DD\x3DE\a]\x2\x2\x3DE\x3DF\a\xEF\x2\x2\x3DF\x3E0\x5"+ + "\xBE`\x2\x3E0g\x3\x2\x2\x2\x3E1\x3E2\a^\x2\x2\x3E2\x3E3\a\xEF\x2\x2\x3E3"+ + "\x3F2\x5\xBE`\x2\x3E4\x3E6\a\xEF\x2\x2\x3E5\x3E4\x3\x2\x2\x2\x3E5\x3E6"+ + "\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7\x3E9\a\t\x2\x2\x3E8\x3EA\a\xEF"+ + "\x2\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2"+ + "\x2\x3EB\x3F0\x5\xBE`\x2\x3EC\x3ED\a\xEF\x2\x2\x3ED\x3EE\a\xA8\x2\x2\x3EE"+ + "\x3EF\a\xEF\x2\x2\x3EF\x3F1\x5\xBE`\x2\x3F0\x3EC\x3\x2\x2\x2\x3F0\x3F1"+ + "\x3\x2\x2\x2\x3F1\x3F3\x3\x2\x2\x2\x3F2\x3E5\x3\x2\x2\x2\x3F2\x3F3\x3"+ + "\x2\x2\x2\x3F3i\x3\x2\x2\x2\x3F4\x3F5\ai\x2\x2\x3F5\x3F6\a\xEF\x2\x2\x3F6"+ + "\x3F8\x5\xDCo\x2\x3F7\x3F9\a\xEF\x2\x2\x3F8\x3F7\x3\x2\x2\x2\x3F8\x3F9"+ + "\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FC\a\xBC\x2\x2\x3FB\x3FD\a\xEF"+ + "\x2\x2\x3FC\x3FB\x3\x2\x2\x2\x3FC\x3FD\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2"+ + "\x2\x3FE\x3FF\x5\xBE`\x2\x3FFk\x3\x2\x2\x2\x400\x402\ak\x2\x2\x401\x403"+ + "\a\xEF\x2\x2\x402\x401\x3\x2\x2\x2\x402\x403\x3\x2\x2\x2\x403\x404\x3"+ + "\x2\x2\x2\x404\x406\a\xC0\x2\x2\x405\x407\a\xEF\x2\x2\x406\x405\x3\x2"+ + "\x2\x2\x406\x407\x3\x2\x2\x2\x407\x408\x3\x2\x2\x2\x408\x40A\x5\xE8u\x2"+ + "\x409\x40B\a\xEF\x2\x2\x40A\x409\x3\x2\x2\x2\x40A\x40B\x3\x2\x2\x2\x40B"+ + "\x40C\x3\x2\x2\x2\x40C\x40D\a\xC7\x2\x2\x40Dm\x3\x2\x2\x2\x40E\x40F\a"+ + "l\x2\x2\x40F\x410\a\xEF\x2\x2\x410\x411\x5\xBE`\x2\x411o\x3\x2\x2\x2\x412"+ + "\x413\an\x2\x2\x413\x414\a\xEF\x2\x2\x414\x415\x5\xBE`\x2\x415\x416\a"+ + "\xEF\x2\x2\x416\x417\a\x12\x2\x2\x417\x418\a\xEF\x2\x2\x418\x419\x5\xBE"+ + "`\x2\x419q\x3\x2\x2\x2\x41A\x41B\t\x6\x2\x2\x41B\x422\a\xEF\x2\x2\x41C"+ + "\x41D\aT\x2\x2\x41D\x41E\a\xEF\x2\x2\x41E\x423\x5\xBE`\x2\x41F\x420\a"+ + "\x91\x2\x2\x420\x421\a\xEF\x2\x2\x421\x423\ao\x2\x2\x422\x41C\x3\x2\x2"+ + "\x2\x422\x41F\x3\x2\x2\x2\x423s\x3\x2\x2\x2\x424\x425\at\x2\x2\x425\x426"+ + "\a\xEF\x2\x2\x426\x427\x5\xBE`\x2\x427\x428\a\xEF\x2\x2\x428\x429\aT\x2"+ + "\x2\x429\x42A\a\xEF\x2\x2\x42A\x435\x5\xBE`\x2\x42B\x42D\a\xEF\x2\x2\x42C"+ + "\x42B\x3\x2\x2\x2\x42C\x42D\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E\x430"+ + "\a\t\x2\x2\x42F\x431\a\xEF\x2\x2\x430\x42F\x3\x2\x2\x2\x430\x431\x3\x2"+ + "\x2\x2\x431\x432\x3\x2\x2\x2\x432\x434\x5\xBE`\x2\x433\x42C\x3\x2\x2\x2"+ + "\x434\x437\x3\x2\x2\x2\x435\x433\x3\x2\x2\x2\x435\x436\x3\x2\x2\x2\x436"+ + "u\x3\x2\x2\x2\x437\x435\x3\x2\x2\x2\x438\x439\at\x2\x2\x439\x43A\a\xEF"+ + "\x2\x2\x43A\x43B\x5\xBE`\x2\x43B\x43C\a\xEF\x2\x2\x43C\x43D\aS\x2\x2\x43D"+ + "\x43E\a\xEF\x2\x2\x43E\x449\x5\xBE`\x2\x43F\x441\a\xEF\x2\x2\x440\x43F"+ + "\x3\x2\x2\x2\x440\x441\x3\x2\x2\x2\x441\x442\x3\x2\x2\x2\x442\x444\a\t"+ + "\x2\x2\x443\x445\a\xEF\x2\x2\x444\x443\x3\x2\x2\x2\x444\x445\x3\x2\x2"+ + "\x2\x445\x446\x3\x2\x2\x2\x446\x448\x5\xBE`\x2\x447\x440\x3\x2\x2\x2\x448"+ + "\x44B\x3\x2\x2\x2\x449\x447\x3\x2\x2\x2\x449\x44A\x3\x2\x2\x2\x44Aw\x3"+ + "\x2\x2\x2\x44B\x449\x3\x2\x2\x2\x44C\x44D\aw\x2\x2\x44D\x44E\a\xEF\x2"+ + "\x2\x44E\x44F\x5\xBE`\x2\x44F\x450\a\xEF\x2\x2\x450\x451\aO\x2\x2\x451"+ + "\x452\a\xEF\x2\x2\x452\x457\t\a\x2\x2\x453\x454\a\xEF\x2\x2\x454\x455"+ + "\a\v\x2\x2\x455\x456\a\xEF\x2\x2\x456\x458\t\b\x2\x2\x457\x453\x3\x2\x2"+ + "\x2\x457\x458\x3\x2\x2\x2\x458\x45B\x3\x2\x2\x2\x459\x45A\a\xEF\x2\x2"+ + "\x45A\x45C\t\t\x2\x2\x45B\x459\x3\x2\x2\x2\x45B\x45C\x3\x2\x2\x2\x45C"+ + "\x45D\x3\x2\x2\x2\x45D\x45E\a\xEF\x2\x2\x45E\x45F\a\x12\x2\x2\x45F\x460"+ + "\a\xEF\x2\x2\x460\x46B\x5\xCEh\x2\x461\x462\a\xEF\x2\x2\x462\x464\a\x61"+ + "\x2\x2\x463\x465\a\xEF\x2\x2\x464\x463\x3\x2\x2\x2\x464\x465\x3\x2\x2"+ + "\x2\x465\x466\x3\x2\x2\x2\x466\x468\a\xBC\x2\x2\x467\x469\a\xEF\x2\x2"+ + "\x468\x467\x3\x2\x2\x2\x468\x469\x3\x2\x2\x2\x469\x46A\x3\x2\x2\x2\x46A"+ + "\x46C\x5\xBE`\x2\x46B\x461\x3\x2\x2\x2\x46B\x46C\x3\x2\x2\x2\x46Cy\x3"+ + "\x2\x2\x2\x46D\x47A\x5|?\x2\x46E\x470\a\xEF\x2\x2\x46F\x46E\x3\x2\x2\x2"+ + "\x46F\x470\x3\x2\x2\x2\x470\x471\x3\x2\x2\x2\x471\x473\t\n\x2\x2\x472"+ + "\x474\a\xEF\x2\x2\x473\x472\x3\x2\x2\x2\x473\x474\x3\x2\x2\x2\x474\x476"+ + "\x3\x2\x2\x2\x475\x477\x5|?\x2\x476\x475\x3\x2\x2\x2\x476\x477\x3\x2\x2"+ + "\x2\x477\x479\x3\x2\x2\x2\x478\x46F\x3\x2\x2\x2\x479\x47C\x3\x2\x2\x2"+ + "\x47A\x478\x3\x2\x2\x2\x47A\x47B\x3\x2\x2\x2\x47B\x48F\x3\x2\x2\x2\x47C"+ + "\x47A\x3\x2\x2\x2\x47D\x47F\x5|?\x2\x47E\x47D\x3\x2\x2\x2\x47E\x47F\x3"+ + "\x2\x2\x2\x47F\x48A\x3\x2\x2\x2\x480\x482\a\xEF\x2\x2\x481\x480\x3\x2"+ + "\x2\x2\x481\x482\x3\x2\x2\x2\x482\x483\x3\x2\x2\x2\x483\x485\t\n\x2\x2"+ + "\x484\x486\a\xEF\x2\x2\x485\x484\x3\x2\x2\x2\x485\x486\x3\x2\x2\x2\x486"+ + "\x488\x3\x2\x2\x2\x487\x489\x5|?\x2\x488\x487\x3\x2\x2\x2\x488\x489\x3"+ + "\x2\x2\x2\x489\x48B\x3\x2\x2\x2\x48A\x481\x3\x2\x2\x2\x48B\x48C\x3\x2"+ + "\x2\x2\x48C\x48A\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x48F\x3\x2\x2"+ + "\x2\x48E\x46D\x3\x2\x2\x2\x48E\x47E\x3\x2\x2\x2\x48F{\x3\x2\x2\x2\x490"+ + "\x4A2\x5\xBE`\x2\x491\x49F\t\v\x2\x2\x492\x494\a\xEF\x2\x2\x493\x492\x3"+ + "\x2\x2\x2\x493\x494\x3\x2\x2\x2\x494\x495\x3\x2\x2\x2\x495\x497\a\xC0"+ + "\x2\x2\x496\x498\a\xEF\x2\x2\x497\x496\x3\x2\x2\x2\x497\x498\x3\x2\x2"+ + "\x2\x498\x499\x3\x2\x2\x2\x499\x49B\x5\xE8u\x2\x49A\x49C\a\xEF\x2\x2\x49B"+ + "\x49A\x3\x2\x2\x2\x49B\x49C\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2\x49D\x49E"+ + "\a\xC7\x2\x2\x49E\x4A0\x3\x2\x2\x2\x49F\x493\x3\x2\x2\x2\x49F\x4A0\x3"+ + "\x2\x2\x2\x4A0\x4A2\x3\x2\x2\x2\x4A1\x490\x3\x2\x2\x2\x4A1\x491\x3\x2"+ + "\x2\x2\x4A2}\x3\x2\x2\x2\x4A3\x4A4\a\x81\x2\x2\x4A4\x4A5\a\xEF\x2\x2\x4A5"+ + "\x4A7\x5\xCEh\x2\x4A6\x4A8\a\xEF\x2\x2\x4A7\x4A6\x3\x2\x2\x2\x4A7\x4A8"+ + "\x3\x2\x2\x2\x4A8\x4A9\x3\x2\x2\x2\x4A9\x4AE\a\t\x2\x2\x4AA\x4AC\a\xEF"+ + "\x2\x2\x4AB\x4AA\x3\x2\x2\x2\x4AB\x4AC\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2"+ + "\x2\x4AD\x4AF\x5z>\x2\x4AE\x4AB\x3\x2\x2\x2\x4AE\x4AF\x3\x2\x2\x2\x4AF"+ + "\x7F\x3\x2\x2\x2\x4B0\x4B1\x5\x110\x89\x2\x4B1\x4B2\a\xEF\x2\x2\x4B2\x4B4"+ + "\x3\x2\x2\x2\x4B3\x4B0\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4\x4B7\x3"+ + "\x2\x2\x2\x4B5\x4B6\a\x9F\x2\x2\x4B6\x4B8\a\xEF\x2\x2\x4B7\x4B5\x3\x2"+ + "\x2\x2\x4B7\x4B8\x3\x2\x2\x2\x4B8\x4B9\x3\x2\x2\x2\x4B9\x4BA\a\x83\x2"+ + "\x2\x4BA\x4BB\a\xEF\x2\x2\x4BB\x4BD\x5\xF8}\x2\x4BC\x4BE\x5\x10E\x88\x2"+ + "\x4BD\x4BC\x3\x2\x2\x2\x4BD\x4BE\x3\x2\x2\x2\x4BE\x4C3\x3\x2\x2\x2\x4BF"+ + "\x4C1\a\xEF\x2\x2\x4C0\x4BF\x3\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C2"+ + "\x3\x2\x2\x2\x4C2\x4C4\x5\xEEx\x2\x4C3\x4C0\x3\x2\x2\x2\x4C3\x4C4\x3\x2"+ + "\x2\x2\x4C4\x4C7\x3\x2\x2\x2\x4C5\x4C6\a\xEF\x2\x2\x4C6\x4C8\x5\xFA~\x2"+ + "\x4C7\x4C5\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9"+ + "\x4CB\x5\x11A\x8E\x2\x4CA\x4CC\x5\x1A\xE\x2\x4CB\x4CA\x3\x2\x2\x2\x4CB"+ + "\x4CC\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CE\a<\x2\x2\x4CE\x81\x3"+ + "\x2\x2\x2\x4CF\x4D0\x5\x110\x89\x2\x4D0\x4D1\a\xEF\x2\x2\x4D1\x4D3\x3"+ + "\x2\x2\x2\x4D2\x4CF\x3\x2\x2\x2\x4D2\x4D3\x3\x2\x2\x2\x4D3\x4D6\x3\x2"+ + "\x2\x2\x4D4\x4D5\a\x9F\x2\x2\x4D5\x4D7\a\xEF\x2\x2\x4D6\x4D4\x3\x2\x2"+ + "\x2\x4D6\x4D7\x3\x2\x2\x2\x4D7\x4D8\x3\x2\x2\x2\x4D8\x4D9\a\x85\x2\x2"+ + "\x4D9\x4DA\a\xEF\x2\x2\x4DA\x4DF\x5\xF8}\x2\x4DB\x4DD\a\xEF\x2\x2\x4DC"+ + "\x4DB\x3\x2\x2\x2\x4DC\x4DD\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4E0"+ + "\x5\xEEx\x2\x4DF\x4DC\x3\x2\x2\x2\x4DF\x4E0\x3\x2\x2\x2\x4E0\x4E1\x3\x2"+ + "\x2\x2\x4E1\x4E3\x5\x11A\x8E\x2\x4E2\x4E4\x5\x1A\xE\x2\x4E3\x4E2\x3\x2"+ + "\x2\x2\x4E3\x4E4\x3\x2\x2\x2\x4E4\x4E5\x3\x2\x2\x2\x4E5\x4E6\a<\x2\x2"+ + "\x4E6\x83\x3\x2\x2\x2\x4E7\x4E8\x5\x110\x89\x2\x4E8\x4E9\a\xEF\x2\x2\x4E9"+ + "\x4EB\x3\x2\x2\x2\x4EA\x4E7\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB\x4EE"+ + "\x3\x2\x2\x2\x4EC\x4ED\a\x9F\x2\x2\x4ED\x4EF\a\xEF\x2\x2\x4EE\x4EC\x3"+ + "\x2\x2\x2\x4EE\x4EF\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F1\a\x84"+ + "\x2\x2\x4F1\x4F2\a\xEF\x2\x2\x4F2\x4F7\x5\xF8}\x2\x4F3\x4F5\a\xEF\x2\x2"+ + "\x4F4\x4F3\x3\x2\x2\x2\x4F4\x4F5\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6"+ + "\x4F8\x5\xEEx\x2\x4F7\x4F4\x3\x2\x2\x2\x4F7\x4F8\x3\x2\x2\x2\x4F8\x4F9"+ + "\x3\x2\x2\x2\x4F9\x4FB\x5\x11A\x8E\x2\x4FA\x4FC\x5\x1A\xE\x2\x4FB\x4FA"+ + "\x3\x2\x2\x2\x4FB\x4FC\x3\x2\x2\x2\x4FC\x4FD\x3\x2\x2\x2\x4FD\x4FE\a<"+ + "\x2\x2\x4FE\x85\x3\x2\x2\x2\x4FF\x500\a\x88\x2\x2\x500\x501\a\xEF\x2\x2"+ + "\x501\x503\x5\xCEh\x2\x502\x504\a\xEF\x2\x2\x503\x502\x3\x2\x2\x2\x503"+ + "\x504\x3\x2\x2\x2\x504\x505\x3\x2\x2\x2\x505\x507\a\t\x2\x2\x506\x508"+ + "\a\xEF\x2\x2\x507\x506\x3\x2\x2\x2\x507\x508\x3\x2\x2\x2\x508\x50A\x3"+ + "\x2\x2\x2\x509\x50B\x5\xBE`\x2\x50A\x509\x3\x2\x2\x2\x50A\x50B\x3\x2\x2"+ + "\x2\x50B\x50D\x3\x2\x2\x2\x50C\x50E\a\xEF\x2\x2\x50D\x50C\x3\x2\x2\x2"+ + "\x50D\x50E\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x511\a\t\x2\x2\x510"+ + "\x512\a\xEF\x2\x2\x511\x510\x3\x2\x2\x2\x511\x512\x3\x2\x2\x2\x512\x513"+ + "\x3\x2\x2\x2\x513\x514\x5\xBE`\x2\x514\x87\x3\x2\x2\x2\x515\x516\a\x8B"+ + "\x2\x2\x516\x517\a\xEF\x2\x2\x517\x526\x5\xF8}\x2\x518\x51A\a\xEF\x2\x2"+ + "\x519\x518\x3\x2\x2\x2\x519\x51A\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B"+ + "\x51D\a\xC0\x2\x2\x51C\x51E\a\xEF\x2\x2\x51D\x51C\x3\x2\x2\x2\x51D\x51E"+ + "\x3\x2\x2\x2\x51E\x523\x3\x2\x2\x2\x51F\x521\x5\xE8u\x2\x520\x522\a\xEF"+ + "\x2\x2\x521\x520\x3\x2\x2\x2\x521\x522\x3\x2\x2\x2\x522\x524\x3\x2\x2"+ + "\x2\x523\x51F\x3\x2\x2\x2\x523\x524\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2"+ + "\x525\x527\a\xC7\x2\x2\x526\x519\x3\x2\x2\x2\x526\x527\x3\x2\x2\x2\x527"+ + "\x89\x3\x2\x2\x2\x528\x52B\a\x8A\x2\x2\x529\x52A\a\xEF\x2\x2\x52A\x52C"+ + "\x5\xBE`\x2\x52B\x529\x3\x2\x2\x2\x52B\x52C\x3\x2\x2\x2\x52C\x8B\x3\x2"+ + "\x2\x2\x52D\x52E\a\x8E\x2\x2\x52E\x531\a\xEF\x2\x2\x52F\x530\a\x80\x2"+ + "\x2\x530\x532\a\xEF\x2\x2\x531\x52F\x3\x2\x2\x2\x531\x532\x3\x2\x2\x2"+ + "\x532\x533\x3\x2\x2\x2\x533\x53E\x5\x8EH\x2\x534\x536\a\xEF\x2\x2\x535"+ + "\x534\x3\x2\x2\x2\x535\x536\x3\x2\x2\x2\x536\x537\x3\x2\x2\x2\x537\x539"+ + "\a\t\x2\x2\x538\x53A\a\xEF\x2\x2\x539\x538\x3\x2\x2\x2\x539\x53A\x3\x2"+ + "\x2\x2\x53A\x53B\x3\x2\x2\x2\x53B\x53D\x5\x8EH\x2\x53C\x535\x3\x2\x2\x2"+ + "\x53D\x540\x3\x2\x2\x2\x53E\x53C\x3\x2\x2\x2\x53E\x53F\x3\x2\x2\x2\x53F"+ + "\x8D\x3\x2\x2\x2\x540\x53E\x3\x2\x2\x2\x541\x543\x5\xDCo\x2\x542\x544"+ + "\a\xEF\x2\x2\x543\x542\x3\x2\x2\x2\x543\x544\x3\x2\x2\x2\x544\x545\x3"+ + "\x2\x2\x2\x545\x547\a\xC0\x2\x2\x546\x548\a\xEF\x2\x2\x547\x546\x3\x2"+ + "\x2\x2\x547\x548\x3\x2\x2\x2\x548\x549\x3\x2\x2\x2\x549\x54B\x5\xF4{\x2"+ + "\x54A\x54C\a\xEF\x2\x2\x54B\x54A\x3\x2\x2\x2\x54B\x54C\x3\x2\x2\x2\x54C"+ + "\x54D\x3\x2\x2\x2\x54D\x550\a\xC7\x2\x2\x54E\x54F\a\xEF\x2\x2\x54F\x551"+ + "\x5\xFA~\x2\x550\x54E\x3\x2\x2\x2\x550\x551\x3\x2\x2\x2\x551\x8F\x3\x2"+ + "\x2\x2\x552\x553\a\x90\x2\x2\x553\x91\x3\x2\x2\x2\x554\x55A\a\x91\x2\x2"+ + "\x555\x558\a\xEF\x2\x2\x556\x559\ao\x2\x2\x557\x559\x5\xF8}\x2\x558\x556"+ + "\x3\x2\x2\x2\x558\x557\x3\x2\x2\x2\x559\x55B\x3\x2\x2\x2\x55A\x555\x3"+ + "\x2\x2\x2\x55A\x55B\x3\x2\x2\x2\x55B\x93\x3\x2\x2\x2\x55C\x55D\a\x92\x2"+ + "\x2\x55D\x95\x3\x2\x2\x2\x55E\x55F\a\x93\x2\x2\x55F\x560\a\xEF\x2\x2\x560"+ + "\x561\x5\xBE`\x2\x561\x97\x3\x2\x2\x2\x562\x563\a\x94\x2\x2\x563\x564"+ + "\a\xEF\x2\x2\x564\x566\x5\xDCo\x2\x565\x567\a\xEF\x2\x2\x566\x565\x3\x2"+ + "\x2\x2\x566\x567\x3\x2\x2\x2\x567\x568\x3\x2\x2\x2\x568\x56A\a\xBC\x2"+ + "\x2\x569\x56B\a\xEF\x2\x2\x56A\x569\x3\x2\x2\x2\x56A\x56B\x3\x2\x2\x2"+ + "\x56B\x56C\x3\x2\x2\x2\x56C\x56D\x5\xBE`\x2\x56D\x99\x3\x2\x2\x2\x56E"+ + "\x56F\a\x95\x2\x2\x56F\x570\a\xEF\x2\x2\x570\x572\x5\xBE`\x2\x571\x573"+ + "\a\xEF\x2\x2\x572\x571\x3\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x574\x3"+ + "\x2\x2\x2\x574\x576\a\t\x2\x2\x575\x577\a\xEF\x2\x2\x576\x575\x3\x2\x2"+ + "\x2\x576\x577\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\x5\xBE`\x2\x579"+ + "\x9B\x3\x2\x2\x2\x57A\x57B\a\x96\x2\x2\x57B\x57C\a\xEF\x2\x2\x57C\x57E"+ + "\x5\xBE`\x2\x57D\x57F\a\xEF\x2\x2\x57E\x57D\x3\x2\x2\x2\x57E\x57F\x3\x2"+ + "\x2\x2\x57F\x580\x3\x2\x2\x2\x580\x582\a\t\x2\x2\x581\x583\a\xEF\x2\x2"+ + "\x582\x581\x3\x2\x2\x2\x582\x583\x3\x2\x2\x2\x583\x584\x3\x2\x2\x2\x584"+ + "\x586\x5\xBE`\x2\x585\x587\a\xEF\x2\x2\x586\x585\x3\x2\x2\x2\x586\x587"+ + "\x3\x2\x2\x2\x587\x588\x3\x2\x2\x2\x588\x58A\a\t\x2\x2\x589\x58B\a\xEF"+ + "\x2\x2\x58A\x589\x3\x2\x2\x2\x58A\x58B\x3\x2\x2\x2\x58B\x58C\x3\x2\x2"+ + "\x2\x58C\x58E\x5\xBE`\x2\x58D\x58F\a\xEF\x2\x2\x58E\x58D\x3\x2\x2\x2\x58E"+ + "\x58F\x3\x2\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x592\a\t\x2\x2\x591\x593"+ + "\a\xEF\x2\x2\x592\x591\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x594\x3"+ + "\x2\x2\x2\x594\x595\x5\xBE`\x2\x595\x9D\x3\x2\x2\x2\x596\x597\a\x97\x2"+ + "\x2\x597\x598\a\xEF\x2\x2\x598\x59A\x5\xCEh\x2\x599\x59B\a\xEF\x2\x2\x59A"+ + "\x599\x3\x2\x2\x2\x59A\x59B\x3\x2\x2\x2\x59B\x59C\x3\x2\x2\x2\x59C\x59E"+ + "\a\t\x2\x2\x59D\x59F\a\xEF\x2\x2\x59E\x59D\x3\x2\x2\x2\x59E\x59F\x3\x2"+ + "\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x5\xBE`\x2\x5A1\x9F\x3\x2\x2\x2"+ + "\x5A2\x5A3\a\x98\x2\x2\x5A3\x5A4\a\xEF\x2\x2\x5A4\x5A5\a\x1B\x2\x2\x5A5"+ + "\x5A6\a\xEF\x2\x2\x5A6\x5A7\x5\xBE`\x2\x5A7\x5AB\x5\x11A\x8E\x2\x5A8\x5AA"+ + "\x5\xA4S\x2\x5A9\x5A8\x3\x2\x2\x2\x5AA\x5AD\x3\x2\x2\x2\x5AB\x5A9\x3\x2"+ + "\x2\x2\x5AB\x5AC\x3\x2\x2\x2\x5AC\x5AE\x3\x2\x2\x2\x5AD\x5AB\x3\x2\x2"+ + "\x2\x5AE\x5AF\a=\x2\x2\x5AF\xA1\x3\x2\x2\x2\x5B0\x5B2\aZ\x2\x2\x5B1\x5B3"+ + "\a\xEF\x2\x2\x5B2\x5B1\x3\x2\x2\x2\x5B2\x5B3\x3\x2\x2\x2\x5B3\x5B4\x3"+ + "\x2\x2\x2\x5B4\x5B6\x5\x100\x81\x2\x5B5\x5B7\a\xEF\x2\x2\x5B6\x5B5\x3"+ + "\x2\x2\x2\x5B6\x5B7\x3\x2\x2\x2\x5B7\x5B8\x3\x2\x2\x2\x5B8\x5B9\x5\xBE"+ + "`\x2\x5B9\x5C2\x3\x2\x2\x2\x5BA\x5BB\x5\xBE`\x2\x5BB\x5BC\a\xEF\x2\x2"+ + "\x5BC\x5BD\a\xA8\x2\x2\x5BD\x5BE\a\xEF\x2\x2\x5BE\x5BF\x5\xBE`\x2\x5BF"+ + "\x5C2\x3\x2\x2\x2\x5C0\x5C2\x5\xBE`\x2\x5C1\x5B0\x3\x2\x2\x2\x5C1\x5BA"+ + "\x3\x2\x2\x2\x5C1\x5C0\x3\x2\x2\x2\x5C2\xA3\x3\x2\x2\x2\x5C3\x5C4\a\x1B"+ + "\x2\x2\x5C4\x5C5\a\xEF\x2\x2\x5C5\x5C6\x5\xA6T\x2\x5C6\x5C8\x5\x11A\x8E"+ + "\x2\x5C7\x5C9\x5\x1A\xE\x2\x5C8\x5C7\x3\x2\x2\x2\x5C8\x5C9\x3\x2\x2\x2"+ + "\x5C9\xA5\x3\x2\x2\x2\x5CA\x5DA\a\x36\x2\x2\x5CB\x5D6\x5\xA2R\x2\x5CC"+ + "\x5CE\a\xEF\x2\x2\x5CD\x5CC\x3\x2\x2\x2\x5CD\x5CE\x3\x2\x2\x2\x5CE\x5CF"+ + "\x3\x2\x2\x2\x5CF\x5D1\a\t\x2\x2\x5D0\x5D2\a\xEF\x2\x2\x5D1\x5D0\x3\x2"+ + "\x2\x2\x5D1\x5D2\x3\x2\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5D5\x5\xA2R\x2"+ + "\x5D4\x5CD\x3\x2\x2\x2\x5D5\x5D8\x3\x2\x2\x2\x5D6\x5D4\x3\x2\x2\x2\x5D6"+ + "\x5D7\x3\x2\x2\x2\x5D7\x5DA\x3\x2\x2\x2\x5D8\x5D6\x3\x2\x2\x2\x5D9\x5CA"+ + "\x3\x2\x2\x2\x5D9\x5CB\x3\x2\x2\x2\x5DA\xA7\x3\x2\x2\x2\x5DB\x5DC\a\x99"+ + "\x2\x2\x5DC\x5DD\a\xEF\x2\x2\x5DD\x5E6\x5\xBE`\x2\x5DE\x5E0\a\xEF\x2\x2"+ + "\x5DF\x5DE\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1"+ + "\x5E3\a\t\x2\x2\x5E2\x5E4\a\xEF\x2\x2\x5E3\x5E2\x3\x2\x2\x2\x5E3\x5E4"+ + "\x3\x2\x2\x2\x5E4\x5E5\x3\x2\x2\x2\x5E5\x5E7\x5\xBE`\x2\x5E6\x5DF\x3\x2"+ + "\x2\x2\x5E6\x5E7\x3\x2\x2\x2\x5E7\xA9\x3\x2\x2\x2\x5E8\x5E9\a\x9B\x2\x2"+ + "\x5E9\x5EA\a\xEF\x2\x2\x5EA\x5EC\x5\xBE`\x2\x5EB\x5ED\a\xEF\x2\x2\x5EC"+ + "\x5EB\x3\x2\x2\x2\x5EC\x5ED\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5F0"+ + "\a\t\x2\x2\x5EF\x5F1\a\xEF\x2\x2\x5F0\x5EF\x3\x2\x2\x2\x5F0\x5F1\x3\x2"+ + "\x2\x2\x5F1\x5F2\x3\x2\x2\x2\x5F2\x5F3\x5\xBE`\x2\x5F3\xAB\x3\x2\x2\x2"+ + "\x5F4\x5F5\a\x9A\x2\x2\x5F5\x5F6\a\xEF\x2\x2\x5F6\x5F8\x5\xDCo\x2\x5F7"+ + "\x5F9\a\xEF\x2\x2\x5F8\x5F7\x3\x2\x2\x2\x5F8\x5F9\x3\x2\x2\x2\x5F9\x5FA"+ + "\x3\x2\x2\x2\x5FA\x5FC\a\xBC\x2\x2\x5FB\x5FD\a\xEF\x2\x2\x5FC\x5FB\x3"+ + "\x2\x2\x2\x5FC\x5FD\x3\x2\x2\x2\x5FD\x5FE\x3\x2\x2\x2\x5FE\x5FF\x5\xBE"+ + "`\x2\x5FF\xAD\x3\x2\x2\x2\x600\x601\a\xA1\x2\x2\x601\xAF\x3\x2\x2\x2\x602"+ + "\x603\x5\x110\x89\x2\x603\x604\a\xEF\x2\x2\x604\x606\x3\x2\x2\x2\x605"+ + "\x602\x3\x2\x2\x2\x605\x606\x3\x2\x2\x2\x606\x609\x3\x2\x2\x2\x607\x608"+ + "\a\x9F\x2\x2\x608\x60A\a\xEF\x2\x2\x609\x607\x3\x2\x2\x2\x609\x60A\x3"+ + "\x2\x2\x2\x60A\x60B\x3\x2\x2\x2\x60B\x60D\a\xA3\x2\x2\x60C\x60E\a\xEF"+ + "\x2\x2\x60D\x60C\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x60F\x3\x2\x2"+ + "\x2\x60F\x614\x5\xF8}\x2\x610\x612\a\xEF\x2\x2\x611\x610\x3\x2\x2\x2\x611"+ + "\x612\x3\x2\x2\x2\x612\x613\x3\x2\x2\x2\x613\x615\x5\xEEx\x2\x614\x611"+ + "\x3\x2\x2\x2\x614\x615\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\x618\x5"+ + "\x11A\x8E\x2\x617\x619\x5\x1A\xE\x2\x618\x617\x3\x2\x2\x2\x618\x619\x3"+ + "\x2\x2\x2\x619\x61A\x3\x2\x2\x2\x61A\x61B\a>\x2\x2\x61B\xB1\x3\x2\x2\x2"+ + "\x61C\x61E\a\xA7\x2\x2\x61D\x61F\a\xEF\x2\x2\x61E\x61D\x3\x2\x2\x2\x61E"+ + "\x61F\x3\x2\x2\x2\x61F\x620\x3\x2\x2\x2\x620\x622\a\xBC\x2\x2\x621\x623"+ + "\a\xEF\x2\x2\x622\x621\x3\x2\x2\x2\x622\x623\x3\x2\x2\x2\x623\x624\x3"+ + "\x2\x2\x2\x624\x625\x5\xBE`\x2\x625\xB3\x3\x2\x2\x2\x626\x627\x5\x110"+ + "\x89\x2\x627\x628\a\xEF\x2\x2\x628\x62A\x3\x2\x2\x2\x629\x626\x3\x2\x2"+ + "\x2\x629\x62A\x3\x2\x2\x2\x62A\x62B\x3\x2\x2\x2\x62B\x62C\a\xAA\x2\x2"+ + "\x62C\x62D\a\xEF\x2\x2\x62D\x62E\x5\xF8}\x2\x62E\x632\x5\x11A\x8E\x2\x62F"+ + "\x631\x5\xB6\\\x2\x630\x62F\x3\x2\x2\x2\x631\x634\x3\x2\x2\x2\x632\x630"+ + "\x3\x2\x2\x2\x632\x633\x3\x2\x2\x2\x633\x635\x3\x2\x2\x2\x634\x632\x3"+ + "\x2\x2\x2\x635\x636\a?\x2\x2\x636\xB5\x3\x2\x2\x2\x637\x646\x5\xF8}\x2"+ + "\x638\x63A\a\xEF\x2\x2\x639\x638\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A"+ + "\x63B\x3\x2\x2\x2\x63B\x640\a\xC0\x2\x2\x63C\x63E\a\xEF\x2\x2\x63D\x63C"+ + "\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x641\x5"+ + "\xF4{\x2\x640\x63D\x3\x2\x2\x2\x640\x641\x3\x2\x2\x2\x641\x643\x3\x2\x2"+ + "\x2\x642\x644\a\xEF\x2\x2\x643\x642\x3\x2\x2\x2\x643\x644\x3\x2\x2\x2"+ + "\x644\x645\x3\x2\x2\x2\x645\x647\a\xC7\x2\x2\x646\x639\x3\x2\x2\x2\x646"+ + "\x647\x3\x2\x2\x2\x647\x64A\x3\x2\x2\x2\x648\x649\a\xEF\x2\x2\x649\x64B"+ + "\x5\xFA~\x2\x64A\x648\x3\x2\x2\x2\x64A\x64B\x3\x2\x2\x2\x64B\x64C\x3\x2"+ + "\x2\x2\x64C\x64D\x5\x11A\x8E\x2\x64D\xB7\x3\x2\x2\x2\x64E\x64F\a\xAB\x2"+ + "\x2\x64F\x650\a\xEF\x2\x2\x650\x655\x5\xBE`\x2\x651\x652\a\xEF\x2\x2\x652"+ + "\x653\aZ\x2\x2\x653\x654\a\xEF\x2\x2\x654\x656\x5\x10C\x87\x2\x655\x651"+ + "\x3\x2\x2\x2\x655\x656\x3\x2\x2\x2\x656\xB9\x3\x2\x2\x2\x657\x658\a\xAC"+ + "\x2\x2\x658\x659\a\xEF\x2\x2\x659\x65A\x5\xBE`\x2\x65A\xBB\x3\x2\x2\x2"+ + "\x65B\x65C\a\xAD\x2\x2\x65C\x65D\a\xEF\x2\x2\x65D\x66C\x5\xCEh\x2\x65E"+ + "\x660\a\xEF\x2\x2\x65F\x65E\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x661"+ + "\x3\x2\x2\x2\x661\x663\a\t\x2\x2\x662\x664\a\xEF\x2\x2\x663\x662\x3\x2"+ + "\x2\x2\x663\x664\x3\x2\x2\x2\x664\x665\x3\x2\x2\x2\x665\x66A\x5\xBE`\x2"+ + "\x666\x667\a\xEF\x2\x2\x667\x668\a\xA8\x2\x2\x668\x669\a\xEF\x2\x2\x669"+ + "\x66B\x5\xBE`\x2\x66A\x666\x3\x2\x2\x2\x66A\x66B\x3\x2\x2\x2\x66B\x66D"+ + "\x3\x2\x2\x2\x66C\x65F\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2\x66D\xBD\x3\x2"+ + "\x2\x2\x66E\x66F\b`\x1\x2\x66F\x671\ap\x2\x2\x670\x672\a\xEF\x2\x2\x671"+ + "\x670\x3\x2\x2\x2\x671\x672\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x6A6"+ + "\x5\xBE`\x15\x674\x676\a\f\x2\x2\x675\x677\a\xEF\x2\x2\x676\x675\x3\x2"+ + "\x2\x2\x676\x677\x3\x2\x2\x2\x677\x678\x3\x2\x2\x2\x678\x6A6\x5\xBE`\x12"+ + "\x679\x67B\x5\xDCo\x2\x67A\x67C\a\xEF\x2\x2\x67B\x67A\x3\x2\x2\x2\x67B"+ + "\x67C\x3\x2\x2\x2\x67C\x67D\x3\x2\x2\x2\x67D\x67F\a\xB9\x2\x2\x67E\x680"+ + "\a\xEF\x2\x2\x67F\x67E\x3\x2\x2\x2\x67F\x680\x3\x2\x2\x2\x680\x681\x3"+ + "\x2\x2\x2\x681\x682\x5\xBE`\x11\x682\x6A6\x3\x2\x2\x2\x683\x685\a\xC2"+ + "\x2\x2\x684\x686\a\xEF\x2\x2\x685\x684\x3\x2\x2\x2\x685\x686\x3\x2\x2"+ + "\x2\x686\x687\x3\x2\x2\x2\x687\x6A6\x5\xBE`\xF\x688\x68A\aq\x2\x2\x689"+ + "\x68B\a\xEF\x2\x2\x68A\x689\x3\x2\x2\x2\x68A\x68B\x3\x2\x2\x2\x68B\x68C"+ + "\x3\x2\x2\x2\x68C\x6A6\x5\xBE`\b\x68D\x6A6\x5\x10A\x86\x2\x68E\x6A6\x5"+ + "\xDCo\x2\x68F\x691\a\xC0\x2\x2\x690\x692\a\xEF\x2\x2\x691\x690\x3\x2\x2"+ + "\x2\x691\x692\x3\x2\x2\x2\x692\x693\x3\x2\x2\x2\x693\x69E\x5\xBE`\x2\x694"+ + "\x696\a\xEF\x2\x2\x695\x694\x3\x2\x2\x2\x695\x696\x3\x2\x2\x2\x696\x697"+ + "\x3\x2\x2\x2\x697\x699\a\t\x2\x2\x698\x69A\a\xEF\x2\x2\x699\x698\x3\x2"+ + "\x2\x2\x699\x69A\x3\x2\x2\x2\x69A\x69B\x3\x2\x2\x2\x69B\x69D\x5\xBE`\x2"+ + "\x69C\x695\x3\x2\x2\x2\x69D\x6A0\x3\x2\x2\x2\x69E\x69C\x3\x2\x2\x2\x69E"+ + "\x69F\x3\x2\x2\x2\x69F\x6A1\x3\x2\x2\x2\x6A0\x69E\x3\x2\x2\x2\x6A1\x6A2"+ + "\a\xC7\x2\x2\x6A2\x6A6\x3\x2\x2\x2\x6A3\x6A6\x5\xB8]\x2\x6A4\x6A6\x5l"+ + "\x37\x2\x6A5\x66E\x3\x2\x2\x2\x6A5\x674\x3\x2\x2\x2\x6A5\x679\x3\x2\x2"+ + "\x2\x6A5\x683\x3\x2\x2\x2\x6A5\x688\x3\x2\x2\x2\x6A5\x68D\x3\x2\x2\x2"+ + "\x6A5\x68E\x3\x2\x2\x2\x6A5\x68F\x3\x2\x2\x2\x6A5\x6A3\x3\x2\x2\x2\x6A5"+ + "\x6A4\x3\x2\x2\x2\x6A6\x715\x3\x2\x2\x2\x6A7\x6A9\f\x10\x2\x2\x6A8\x6AA"+ + "\a\xEF\x2\x2\x6A9\x6A8\x3\x2\x2\x2\x6A9\x6AA\x3\x2\x2\x2\x6AA\x6AB\x3"+ + "\x2\x2\x2\x6AB\x6AD\a\xC6\x2\x2\x6AC\x6AE\a\xEF\x2\x2\x6AD\x6AC\x3\x2"+ + "\x2\x2\x6AD\x6AE\x3\x2\x2\x2\x6AE\x6AF\x3\x2\x2\x2\x6AF\x714\x5\xBE`\x11"+ + "\x6B0\x6B2\f\xE\x2\x2\x6B1\x6B3\a\xEF\x2\x2\x6B2\x6B1\x3\x2\x2\x2\x6B2"+ + "\x6B3\x3\x2\x2\x2\x6B3\x6B4\x3\x2\x2\x2\x6B4\x6B6\t\f\x2\x2\x6B5\x6B7"+ + "\a\xEF\x2\x2\x6B6\x6B5\x3\x2\x2\x2\x6B6\x6B7\x3\x2\x2\x2\x6B7\x6B8\x3"+ + "\x2\x2\x2\x6B8\x714\x5\xBE`\xF\x6B9\x6BB\f\r\x2\x2\x6BA\x6BC\a\xEF\x2"+ + "\x2\x6BB\x6BA\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2"+ + "\x6BD\x6BF\a\xBB\x2\x2\x6BE\x6C0\a\xEF\x2\x2\x6BF\x6BE\x3\x2\x2\x2\x6BF"+ + "\x6C0\x3\x2\x2\x2\x6C0\x6C1\x3\x2\x2\x2\x6C1\x714\x5\xBE`\xE\x6C2\x6C4"+ + "\f\f\x2\x2\x6C3\x6C5\a\xEF\x2\x2\x6C4\x6C3\x3\x2\x2\x2\x6C4\x6C5\x3\x2"+ + "\x2\x2\x6C5\x6C6\x3\x2\x2\x2\x6C6\x6C8\am\x2\x2\x6C7\x6C9\a\xEF\x2\x2"+ + "\x6C8\x6C7\x3\x2\x2\x2\x6C8\x6C9\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA"+ + "\x714\x5\xBE`\r\x6CB\x6CD\f\v\x2\x2\x6CC\x6CE\a\xEF\x2\x2\x6CD\x6CC\x3"+ + "\x2\x2\x2\x6CD\x6CE\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D1\t\r\x2"+ + "\x2\x6D0\x6D2\a\xEF\x2\x2\x6D1\x6D0\x3\x2\x2\x2\x6D1\x6D2\x3\x2\x2\x2"+ + "\x6D2\x6D3\x3\x2\x2\x2\x6D3\x714\x5\xBE`\f\x6D4\x6D6\f\n\x2\x2\x6D5\x6D7"+ + "\a\xEF\x2\x2\x6D6\x6D5\x3\x2\x2\x2\x6D6\x6D7\x3\x2\x2\x2\x6D7\x6D8\x3"+ + "\x2\x2\x2\x6D8\x6DA\a\xB8\x2\x2\x6D9\x6DB\a\xEF\x2\x2\x6DA\x6D9\x3\x2"+ + "\x2\x2\x6DA\x6DB\x3\x2\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x714\x5\xBE`\v"+ + "\x6DD\x6DF\f\t\x2\x2\x6DE\x6E0\a\xEF\x2\x2\x6DF\x6DE\x3\x2\x2\x2\x6DF"+ + "\x6E0\x3\x2\x2\x2\x6E0\x6E1\x3\x2\x2\x2\x6E1\x6E3\t\xE\x2\x2\x6E2\x6E4"+ + "\a\xEF\x2\x2\x6E3\x6E2\x3\x2\x2\x2\x6E3\x6E4\x3\x2\x2\x2\x6E4\x6E5\x3"+ + "\x2\x2\x2\x6E5\x714\x5\xBE`\n\x6E6\x6E8\f\a\x2\x2\x6E7\x6E9\a\xEF\x2\x2"+ + "\x6E8\x6E7\x3\x2\x2\x2\x6E8\x6E9\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA"+ + "\x6EC\a\xE\x2\x2\x6EB\x6ED\a\xEF\x2\x2\x6EC\x6EB\x3\x2\x2\x2\x6EC\x6ED"+ + "\x3\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x714\x5\xBE`\b\x6EF\x6F1\f\x6"+ + "\x2\x2\x6F0\x6F2\a\xEF\x2\x2\x6F1\x6F0\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2"+ + "\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F5\a}\x2\x2\x6F4\x6F6\a\xEF\x2\x2\x6F5"+ + "\x6F4\x3\x2\x2\x2\x6F5\x6F6\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x714"+ + "\x5\xBE`\a\x6F8\x6FA\f\x5\x2\x2\x6F9\x6FB\a\xEF\x2\x2\x6FA\x6F9\x3\x2"+ + "\x2\x2\x6FA\x6FB\x3\x2\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x6FE\a\xB7\x2"+ + "\x2\x6FD\x6FF\a\xEF\x2\x2\x6FE\x6FD\x3\x2\x2\x2\x6FE\x6FF\x3\x2\x2\x2"+ + "\x6FF\x700\x3\x2\x2\x2\x700\x714\x5\xBE`\x6\x701\x703\f\x4\x2\x2\x702"+ + "\x704\a\xEF\x2\x2\x703\x702\x3\x2\x2\x2\x703\x704\x3\x2\x2\x2\x704\x705"+ + "\x3\x2\x2\x2\x705\x707\a\x43\x2\x2\x706\x708\a\xEF\x2\x2\x707\x706\x3"+ + "\x2\x2\x2\x707\x708\x3\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x714\x5\xBE"+ + "`\x5\x70A\x70C\f\x3\x2\x2\x70B\x70D\a\xEF\x2\x2\x70C\x70B\x3\x2\x2\x2"+ + "\x70C\x70D\x3\x2\x2\x2\x70D\x70E\x3\x2\x2\x2\x70E\x710\aV\x2\x2\x70F\x711"+ + "\a\xEF\x2\x2\x710\x70F\x3\x2\x2\x2\x710\x711\x3\x2\x2\x2\x711\x712\x3"+ + "\x2\x2\x2\x712\x714\x5\xBE`\x4\x713\x6A7\x3\x2\x2\x2\x713\x6B0\x3\x2\x2"+ + "\x2\x713\x6B9\x3\x2\x2\x2\x713\x6C2\x3\x2\x2\x2\x713\x6CB\x3\x2\x2\x2"+ + "\x713\x6D4\x3\x2\x2\x2\x713\x6DD\x3\x2\x2\x2\x713\x6E6\x3\x2\x2\x2\x713"+ + "\x6EF\x3\x2\x2\x2\x713\x6F8\x3\x2\x2\x2\x713\x701\x3\x2\x2\x2\x713\x70A"+ + "\x3\x2\x2\x2\x714\x717\x3\x2\x2\x2\x715\x713\x3\x2\x2\x2\x715\x716\x3"+ + "\x2\x2\x2\x716\xBF\x3\x2\x2\x2\x717\x715\x3\x2\x2\x2\x718\x71C\a\x32\x2"+ + "\x2\x719\x71C\a\x9F\x2\x2\x71A\x71C\x5\x110\x89\x2\x71B\x718\x3\x2\x2"+ + "\x2\x71B\x719\x3\x2\x2\x2\x71B\x71A\x3\x2\x2\x2\x71C\x71D\x3\x2\x2\x2"+ + "\x71D\x720\a\xEF\x2\x2\x71E\x71F\a\xB5\x2\x2\x71F\x721\a\xEF\x2\x2\x720"+ + "\x71E\x3\x2\x2\x2\x720\x721\x3\x2\x2\x2\x721\x722\x3\x2\x2\x2\x722\x723"+ + "\x5\xC2\x62\x2\x723\xC1\x3\x2\x2\x2\x724\x72F\x5\xC4\x63\x2\x725\x727"+ + "\a\xEF\x2\x2\x726\x725\x3\x2\x2\x2\x726\x727\x3\x2\x2\x2\x727\x728\x3"+ + "\x2\x2\x2\x728\x72A\a\t\x2\x2\x729\x72B\a\xEF\x2\x2\x72A\x729\x3\x2\x2"+ + "\x2\x72A\x72B\x3\x2\x2\x2\x72B\x72C\x3\x2\x2\x2\x72C\x72E\x5\xC4\x63\x2"+ + "\x72D\x726\x3\x2\x2\x2\x72E\x731\x3\x2\x2\x2\x72F\x72D\x3\x2\x2\x2\x72F"+ + "\x730\x3\x2\x2\x2\x730\xC3\x3\x2\x2\x2\x731\x72F\x3\x2\x2\x2\x732\x744"+ + "\x5\xF8}\x2\x733\x735\a\xEF\x2\x2\x734\x733\x3\x2\x2\x2\x734\x735\x3\x2"+ + "\x2\x2\x735\x736\x3\x2\x2\x2\x736\x738\a\xC0\x2\x2\x737\x739\a\xEF\x2"+ + "\x2\x738\x737\x3\x2\x2\x2\x738\x739\x3\x2\x2\x2\x739\x73E\x3\x2\x2\x2"+ + "\x73A\x73C\x5\xF4{\x2\x73B\x73D\a\xEF\x2\x2\x73C\x73B\x3\x2\x2\x2\x73C"+ + "\x73D\x3\x2\x2\x2\x73D\x73F\x3\x2\x2\x2\x73E\x73A\x3\x2\x2\x2\x73E\x73F"+ + "\x3\x2\x2\x2\x73F\x740\x3\x2\x2\x2\x740\x742\a\xC7\x2\x2\x741\x743\a\xEF"+ + "\x2\x2\x742\x741\x3\x2\x2\x2\x742\x743\x3\x2\x2\x2\x743\x745\x3\x2\x2"+ + "\x2\x744\x734\x3\x2\x2\x2\x744\x745\x3\x2\x2\x2\x745\x747\x3\x2\x2\x2"+ + "\x746\x748\x5\x10E\x88\x2\x747\x746\x3\x2\x2\x2\x747\x748\x3\x2\x2\x2"+ + "\x748\x74B\x3\x2\x2\x2\x749\x74A\a\xEF\x2\x2\x74A\x74C\x5\xFA~\x2\x74B"+ + "\x749\x3\x2\x2\x2\x74B\x74C\x3\x2\x2\x2\x74C\xC5\x3\x2\x2\x2\x74D\x74E"+ + "\a\xB2\x2\x2\x74E\x74F\a\xEF\x2\x2\x74F\x750\x5\xBE`\x2\x750\x752\x5\x11A"+ + "\x8E\x2\x751\x753\x5\x1A\xE\x2\x752\x751\x3\x2\x2\x2\x752\x753\x3\x2\x2"+ + "\x2\x753\x754\x3\x2\x2\x2\x754\x755\a\xB1\x2\x2\x755\xC7\x3\x2\x2\x2\x756"+ + "\x757\a\xB3\x2\x2\x757\x758\a\xEF\x2\x2\x758\x75A\x5\xCEh\x2\x759\x75B"+ + "\a\xEF\x2\x2\x75A\x759\x3\x2\x2\x2\x75A\x75B\x3\x2\x2\x2\x75B\x75C\x3"+ + "\x2\x2\x2\x75C\x75E\a\t\x2\x2\x75D\x75F\a\xEF\x2\x2\x75E\x75D\x3\x2\x2"+ + "\x2\x75E\x75F\x3\x2\x2\x2\x75F\x760\x3\x2\x2\x2\x760\x761\x5\xBE`\x2\x761"+ + "\xC9\x3\x2\x2\x2\x762\x763\a\xB4\x2\x2\x763\x768\a\xEF\x2\x2\x764\x769"+ + "\x5\xDCo\x2\x765\x766\ap\x2\x2\x766\x767\a\xEF\x2\x2\x767\x769\x5\x10C"+ + "\x87\x2\x768\x764\x3\x2\x2\x2\x768\x765\x3\x2\x2\x2\x769\x76A\x3\x2\x2"+ + "\x2\x76A\x76C\x5\x11A\x8E\x2\x76B\x76D\x5\x1A\xE\x2\x76C\x76B\x3\x2\x2"+ + "\x2\x76C\x76D\x3\x2\x2\x2\x76D\x76E\x3\x2\x2\x2\x76E\x76F\a@\x2\x2\x76F"+ + "\xCB\x3\x2\x2\x2\x770\x771\a\xB6\x2\x2\x771\x772\a\xEF\x2\x2\x772\x774"+ + "\x5\xCEh\x2\x773\x775\a\xEF\x2\x2\x774\x773\x3\x2\x2\x2\x774\x775\x3\x2"+ + "\x2\x2\x775\x776\x3\x2\x2\x2\x776\x77B\a\t\x2\x2\x777\x779\a\xEF\x2\x2"+ + "\x778\x777\x3\x2\x2\x2\x778\x779\x3\x2\x2\x2\x779\x77A\x3\x2\x2\x2\x77A"+ + "\x77C\x5z>\x2\x77B\x778\x3\x2\x2\x2\x77B\x77C\x3\x2\x2\x2\x77C\xCD\x3"+ + "\x2\x2\x2\x77D\x77F\a\x5\x2\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F\x3\x2\x2"+ + "\x2\x77F\x780\x3\x2\x2\x2\x780\x781\x5\xBE`\x2\x781\xCF\x3\x2\x2\x2\x782"+ + "\x785\x5\xD2j\x2\x783\x785\x5\xD4k\x2\x784\x782\x3\x2\x2\x2\x784\x783"+ + "\x3\x2\x2\x2\x785\xD1\x3\x2\x2\x2\x786\x787\a\x1A\x2\x2\x787\x788\a\xEF"+ + "\x2\x2\x788\x78A\x5\xF8}\x2\x789\x78B\x5\x10E\x88\x2\x78A\x789\x3\x2\x2"+ + "\x2\x78A\x78B\x3\x2\x2\x2\x78B\x799\x3\x2\x2\x2\x78C\x78E\a\xEF\x2\x2"+ + "\x78D\x78C\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x78F\x3\x2\x2\x2\x78F"+ + "\x791\a\xC0\x2\x2\x790\x792\a\xEF\x2\x2\x791\x790\x3\x2\x2\x2\x791\x792"+ + "\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\x795\x5\xE8u\x2\x794\x796\a\xEF"+ + "\x2\x2\x795\x794\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796\x797\x3\x2\x2"+ + "\x2\x797\x798\a\xC7\x2\x2\x798\x79A\x3\x2\x2\x2\x799\x78D\x3\x2\x2\x2"+ + "\x799\x79A\x3\x2\x2\x2\x79A\x7A4\x3\x2\x2\x2\x79B\x79D\a\xEF\x2\x2\x79C"+ + "\x79B\x3\x2\x2\x2\x79C\x79D\x3\x2\x2\x2\x79D\x79E\x3\x2\x2\x2\x79E\x79F"+ + "\a\xC0\x2\x2\x79F\x7A0\x5\xF4{\x2\x7A0\x7A1\a\xC7\x2\x2\x7A1\x7A3\x3\x2"+ + "\x2\x2\x7A2\x79C\x3\x2\x2\x2\x7A3\x7A6\x3\x2\x2\x2\x7A4\x7A2\x3\x2\x2"+ + "\x2\x7A4\x7A5\x3\x2\x2\x2\x7A5\xD3\x3\x2\x2\x2\x7A6\x7A4\x3\x2\x2\x2\x7A7"+ + "\x7A8\a\x1A\x2\x2\x7A8\x7AA\a\xEF\x2\x2\x7A9\x7AB\x5\xDCo\x2\x7AA\x7A9"+ + "\x3\x2\x2\x2\x7AA\x7AB\x3\x2\x2\x2\x7AB\x7AC\x3\x2\x2\x2\x7AC\x7AD\a\n"+ + "\x2\x2\x7AD\x7AF\x5\xF8}\x2\x7AE\x7B0\x5\x10E\x88\x2\x7AF\x7AE\x3\x2\x2"+ + "\x2\x7AF\x7B0\x3\x2\x2\x2\x7B0\x7BE\x3\x2\x2\x2\x7B1\x7B3\a\xEF\x2\x2"+ + "\x7B2\x7B1\x3\x2\x2\x2\x7B2\x7B3\x3\x2\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4"+ + "\x7B6\a\xC0\x2\x2\x7B5\x7B7\a\xEF\x2\x2\x7B6\x7B5\x3\x2\x2\x2\x7B6\x7B7"+ + "\x3\x2\x2\x2\x7B7\x7B8\x3\x2\x2\x2\x7B8\x7BA\x5\xE8u\x2\x7B9\x7BB\a\xEF"+ + "\x2\x2\x7BA\x7B9\x3\x2\x2\x2\x7BA\x7BB\x3\x2\x2\x2\x7BB\x7BC\x3\x2\x2"+ + "\x2\x7BC\x7BD\a\xC7\x2\x2\x7BD\x7BF\x3\x2\x2\x2\x7BE\x7B2\x3\x2\x2\x2"+ + "\x7BE\x7BF\x3\x2\x2\x2\x7BF\x7C9\x3\x2\x2\x2\x7C0\x7C2\a\xEF\x2\x2\x7C1"+ + "\x7C0\x3\x2\x2\x2\x7C1\x7C2\x3\x2\x2\x2\x7C2\x7C3\x3\x2\x2\x2\x7C3\x7C4"+ + "\a\xC0\x2\x2\x7C4\x7C5\x5\xF4{\x2\x7C5\x7C6\a\xC7\x2\x2\x7C6\x7C8\x3\x2"+ + "\x2\x2\x7C7\x7C1\x3\x2\x2\x2\x7C8\x7CB\x3\x2\x2\x2\x7C9\x7C7\x3\x2\x2"+ + "\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\xD5\x3\x2\x2\x2\x7CB\x7C9\x3\x2\x2\x2\x7CC"+ + "\x7CF\x5\xD8m\x2\x7CD\x7CF\x5\xDAn\x2\x7CE\x7CC\x3\x2\x2\x2\x7CE\x7CD"+ + "\x3\x2\x2\x2\x7CF\xD7\x3\x2\x2\x2\x7D0\x7D2\x5\xDCo\x2\x7D1\x7D0\x3\x2"+ + "\x2\x2\x7D1\x7D2\x3\x2\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D4\a\n\x2\x2"+ + "\x7D4\x7D6\x5\xF8}\x2\x7D5\x7D7\x5\x10E\x88\x2\x7D6\x7D5\x3\x2\x2\x2\x7D6"+ + "\x7D7\x3\x2\x2\x2\x7D7\x7DA\x3\x2\x2\x2\x7D8\x7D9\a\xEF\x2\x2\x7D9\x7DB"+ + "\x5\xE8u\x2\x7DA\x7D8\x3\x2\x2\x2\x7DA\x7DB\x3\x2\x2\x2\x7DB\x7E0\x3\x2"+ + "\x2\x2\x7DC\x7DE\a\xEF\x2\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2"+ + "\x2\x7DE\x7DF\x3\x2\x2\x2\x7DF\x7E1\x5\xECw\x2\x7E0\x7DD\x3\x2\x2\x2\x7E0"+ + "\x7E1\x3\x2\x2\x2\x7E1\x7EB\x3\x2\x2\x2\x7E2\x7E4\a\xEF\x2\x2\x7E3\x7E2"+ + "\x3\x2\x2\x2\x7E3\x7E4\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6\a\xC0"+ + "\x2\x2\x7E6\x7E7\x5\xF4{\x2\x7E7\x7E8\a\xC7\x2\x2\x7E8\x7EA\x3\x2\x2\x2"+ + "\x7E9\x7E3\x3\x2\x2\x2\x7EA\x7ED\x3\x2\x2\x2\x7EB\x7E9\x3\x2\x2\x2\x7EB"+ + "\x7EC\x3\x2\x2\x2\x7EC\xD9\x3\x2\x2\x2\x7ED\x7EB\x3\x2\x2\x2\x7EE\x7F1"+ + "\x5\xFE\x80\x2\x7EF\x7F0\a\xEF\x2\x2\x7F0\x7F2\x5\xE8u\x2\x7F1\x7EF\x3"+ + "\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7FC\x3\x2\x2\x2\x7F3\x7F5\a\xEF"+ + "\x2\x2\x7F4\x7F3\x3\x2\x2\x2\x7F4\x7F5\x3\x2\x2\x2\x7F5\x7F6\x3\x2\x2"+ + "\x2\x7F6\x7F7\a\xC0\x2\x2\x7F7\x7F8\x5\xF4{\x2\x7F8\x7F9\a\xC7\x2\x2\x7F9"+ + "\x7FB\x3\x2\x2\x2\x7FA\x7F4\x3\x2\x2\x2\x7FB\x7FE\x3\x2\x2\x2\x7FC\x7FA"+ + "\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD\xDB\x3\x2\x2\x2\x7FE\x7FC\x3\x2"+ + "\x2\x2\x7FF\x804\x5\xE2r\x2\x800\x804\x5\xDEp\x2\x801\x804\x5\xE0q\x2"+ + "\x802\x804\x5\xE6t\x2\x803\x7FF\x3\x2\x2\x2\x803\x800\x3\x2\x2\x2\x803"+ + "\x801\x3\x2\x2\x2\x803\x802\x3\x2\x2\x2\x804\xDD\x3\x2\x2\x2\x805\x807"+ + "\x5\xF8}\x2\x806\x808\x5\x10E\x88\x2\x807\x806\x3\x2\x2\x2\x807\x808\x3"+ + "\x2\x2\x2\x808\x80D\x3\x2\x2\x2\x809\x80B\a\xEF\x2\x2\x80A\x809\x3\x2"+ + "\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80E\x5\xECw\x2"+ + "\x80D\x80A\x3\x2\x2\x2\x80D\x80E\x3\x2\x2\x2\x80E\x818\x3\x2\x2\x2\x80F"+ + "\x811\a\xEF\x2\x2\x810\x80F\x3\x2\x2\x2\x810\x811\x3\x2\x2\x2\x811\x812"+ + "\x3\x2\x2\x2\x812\x813\a\xC0\x2\x2\x813\x814\x5\xF4{\x2\x814\x815\a\xC7"+ + "\x2\x2\x815\x817\x3\x2\x2\x2\x816\x810\x3\x2\x2\x2\x817\x81A\x3\x2\x2"+ + "\x2\x818\x816\x3\x2\x2\x2\x818\x819\x3\x2\x2\x2\x819\xDF\x3\x2\x2\x2\x81A"+ + "\x818\x3\x2\x2\x2\x81B\x81E\x5\xF8}\x2\x81C\x81E\x5\xFC\x7F\x2\x81D\x81B"+ + "\x3\x2\x2\x2\x81D\x81C\x3\x2\x2\x2\x81E\x820\x3\x2\x2\x2\x81F\x821\x5"+ + "\x10E\x88\x2\x820\x81F\x3\x2\x2\x2\x820\x821\x3\x2\x2\x2\x821\x823\x3"+ + "\x2\x2\x2\x822\x824\a\xEF\x2\x2\x823\x822\x3\x2\x2\x2\x823\x824\x3\x2"+ + "\x2\x2\x824\x825\x3\x2\x2\x2\x825\x827\a\xC0\x2\x2\x826\x828\a\xEF\x2"+ + "\x2\x827\x826\x3\x2\x2\x2\x827\x828\x3\x2\x2\x2\x828\x82D\x3\x2\x2\x2"+ + "\x829\x82B\x5\xE8u\x2\x82A\x82C\a\xEF\x2\x2\x82B\x82A\x3\x2\x2\x2\x82B"+ + "\x82C\x3\x2\x2\x2\x82C\x82E\x3\x2\x2\x2\x82D\x829\x3\x2\x2\x2\x82D\x82E"+ + "\x3\x2\x2\x2\x82E\x82F\x3\x2\x2\x2\x82F\x834\a\xC7\x2\x2\x830\x832\a\xEF"+ + "\x2\x2\x831\x830\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832\x833\x3\x2\x2"+ + "\x2\x833\x835\x5\xECw\x2\x834\x831\x3\x2\x2\x2\x834\x835\x3\x2\x2\x2\x835"+ + "\x83F\x3\x2\x2\x2\x836\x838\a\xEF\x2\x2\x837\x836\x3\x2\x2\x2\x837\x838"+ + "\x3\x2\x2\x2\x838\x839\x3\x2\x2\x2\x839\x83A\a\xC0\x2\x2\x83A\x83B\x5"+ + "\xF4{\x2\x83B\x83C\a\xC7\x2\x2\x83C\x83E\x3\x2\x2\x2\x83D\x837\x3\x2\x2"+ + "\x2\x83E\x841\x3\x2\x2\x2\x83F\x83D\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2"+ + "\x840\xE1\x3\x2\x2\x2\x841\x83F\x3\x2\x2\x2\x842\x845\x5\xDEp\x2\x843"+ + "\x845\x5\xE0q\x2\x844\x842\x3\x2\x2\x2\x844\x843\x3\x2\x2\x2\x844\x845"+ + "\x3\x2\x2\x2\x845\x84A\x3\x2\x2\x2\x846\x848\x5\xE4s\x2\x847\x849\a\xEF"+ + "\x2\x2\x848\x847\x3\x2\x2\x2\x848\x849\x3\x2\x2\x2\x849\x84B\x3\x2\x2"+ + "\x2\x84A\x846\x3\x2\x2\x2\x84B\x84C\x3\x2\x2\x2\x84C\x84A\x3\x2\x2\x2"+ + "\x84C\x84D\x3\x2\x2\x2\x84D\x852\x3\x2\x2\x2\x84E\x850\a\xEF\x2\x2\x84F"+ + "\x84E\x3\x2\x2\x2\x84F\x850\x3\x2\x2\x2\x850\x851\x3\x2\x2\x2\x851\x853"+ + "\x5\xECw\x2\x852\x84F\x3\x2\x2\x2\x852\x853\x3\x2\x2\x2\x853\x85D\x3\x2"+ + "\x2\x2\x854\x856\a\xEF\x2\x2\x855\x854\x3\x2\x2\x2\x855\x856\x3\x2\x2"+ + "\x2\x856\x857\x3\x2\x2\x2\x857\x858\a\xC0\x2\x2\x858\x859\x5\xF4{\x2\x859"+ + "\x85A\a\xC7\x2\x2\x85A\x85C\x3\x2\x2\x2\x85B\x855\x3\x2\x2\x2\x85C\x85F"+ + "\x3\x2\x2\x2\x85D\x85B\x3\x2\x2\x2\x85D\x85E\x3\x2\x2\x2\x85E\xE3\x3\x2"+ + "\x2\x2\x85F\x85D\x3\x2\x2\x2\x860\x862\t\xF\x2\x2\x861\x863\a\xEF\x2\x2"+ + "\x862\x861\x3\x2\x2\x2\x862\x863\x3\x2\x2\x2\x863\x866\x3\x2\x2\x2\x864"+ + "\x867\x5\xDEp\x2\x865\x867\x5\xE0q\x2\x866\x864\x3\x2\x2\x2\x866\x865"+ + "\x3\x2\x2\x2\x867\xE5\x3\x2\x2\x2\x868\x86A\a\xEF\x2\x2\x869\x868\x3\x2"+ + "\x2\x2\x869\x86A\x3\x2\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86C\x5\xECw\x2"+ + "\x86C\xE7\x3\x2\x2\x2\x86D\x86F\x5\xEAv\x2\x86E\x86D\x3\x2\x2\x2\x86E"+ + "\x86F\x3\x2\x2\x2\x86F\x871\x3\x2\x2\x2\x870\x872\a\xEF\x2\x2\x871\x870"+ + "\x3\x2\x2\x2\x871\x872\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2\x873\x875\t\n"+ + "\x2\x2\x874\x876\a\xEF\x2\x2\x875\x874\x3\x2\x2\x2\x875\x876\x3\x2\x2"+ + "\x2\x876\x878\x3\x2\x2\x2\x877\x86E\x3\x2\x2\x2\x878\x87B\x3\x2\x2\x2"+ + "\x879\x877\x3\x2\x2\x2\x879\x87A\x3\x2\x2\x2\x87A\x87C\x3\x2\x2\x2\x87B"+ + "\x879\x3\x2\x2\x2\x87C\x889\x5\xEAv\x2\x87D\x87F\a\xEF\x2\x2\x87E\x87D"+ + "\x3\x2\x2\x2\x87E\x87F\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x882\t\n"+ + "\x2\x2\x881\x883\a\xEF\x2\x2\x882\x881\x3\x2\x2\x2\x882\x883\x3\x2\x2"+ + "\x2\x883\x885\x3\x2\x2\x2\x884\x886\x5\xEAv\x2\x885\x884\x3\x2\x2\x2\x885"+ + "\x886\x3\x2\x2\x2\x886\x888\x3\x2\x2\x2\x887\x87E\x3\x2\x2\x2\x888\x88B"+ + "\x3\x2\x2\x2\x889\x887\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2\x88A\xE9\x3\x2"+ + "\x2\x2\x88B\x889\x3\x2\x2\x2\x88C\x88E\a\xC0\x2\x2\x88D\x88C\x3\x2\x2"+ + "\x2\x88D\x88E\x3\x2\x2\x2\x88E\x891\x3\x2\x2\x2\x88F\x890\t\x10\x2\x2"+ + "\x890\x892\a\xEF\x2\x2\x891\x88F\x3\x2\x2\x2\x891\x892\x3\x2\x2\x2\x892"+ + "\x894\x3\x2\x2\x2\x893\x895\a\xC7\x2\x2\x894\x893\x3\x2\x2\x2\x894\x895"+ + "\x3\x2\x2\x2\x895\x896\x3\x2\x2\x2\x896\x897\x5\xBE`\x2\x897\xEB\x3\x2"+ + "\x2\x2\x898\x89A\a\x4\x2\x2\x899\x89B\a\xEF\x2\x2\x89A\x899\x3\x2\x2\x2"+ + "\x89A\x89B\x3\x2\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\x89E\x5\xF8}\x2\x89D"+ + "\x89F\x5\x10E\x88\x2\x89E\x89D\x3\x2\x2\x2\x89E\x89F\x3\x2\x2\x2\x89F"+ + "\xED\x3\x2\x2\x2\x8A0\x8B2\a\xC0\x2\x2\x8A1\x8A3\a\xEF\x2\x2\x8A2\x8A1"+ + "\x3\x2\x2\x2\x8A2\x8A3\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8AF\x5"+ + "\xF0y\x2\x8A5\x8A7\a\xEF\x2\x2\x8A6\x8A5\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2"+ + "\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8AA\a\t\x2\x2\x8A9\x8AB\a\xEF\x2\x2\x8AA"+ + "\x8A9\x3\x2\x2\x2\x8AA\x8AB\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AE"+ + "\x5\xF0y\x2\x8AD\x8A6\x3\x2\x2\x2\x8AE\x8B1\x3\x2\x2\x2\x8AF\x8AD\x3\x2"+ + "\x2\x2\x8AF\x8B0\x3\x2\x2\x2\x8B0\x8B3\x3\x2\x2\x2\x8B1\x8AF\x3\x2\x2"+ + "\x2\x8B2\x8A2\x3\x2\x2\x2\x8B2\x8B3\x3\x2\x2\x2\x8B3\x8B5\x3\x2\x2\x2"+ + "\x8B4\x8B6\a\xEF\x2\x2\x8B5\x8B4\x3\x2\x2\x2\x8B5\x8B6\x3\x2\x2\x2\x8B6"+ + "\x8B7\x3\x2\x2\x2\x8B7\x8B8\a\xC7\x2\x2\x8B8\xEF\x3\x2\x2\x2\x8B9\x8BA"+ + "\ax\x2\x2\x8BA\x8BC\a\xEF\x2\x2\x8BB\x8B9\x3\x2\x2\x2\x8BB\x8BC\x3\x2"+ + "\x2\x2\x8BC\x8BF\x3\x2\x2\x2\x8BD\x8BE\t\x11\x2\x2\x8BE\x8C0\a\xEF\x2"+ + "\x2\x8BF\x8BD\x3\x2\x2\x2\x8BF\x8C0\x3\x2\x2\x2\x8C0\x8C3\x3\x2\x2\x2"+ + "\x8C1\x8C2\a\x7F\x2\x2\x8C2\x8C4\a\xEF\x2\x2\x8C3\x8C1\x3\x2\x2\x2\x8C3"+ + "\x8C4\x3\x2\x2\x2\x8C4\x8C5\x3\x2\x2\x2\x8C5\x8C7\x5\xF8}\x2\x8C6\x8C8"+ + "\x5\x10E\x88\x2\x8C7\x8C6\x3\x2\x2\x2\x8C7\x8C8\x3\x2\x2\x2\x8C8\x8D1"+ + "\x3\x2\x2\x2\x8C9\x8CB\a\xEF\x2\x2\x8CA\x8C9\x3\x2\x2\x2\x8CA\x8CB\x3"+ + "\x2\x2\x2\x8CB\x8CC\x3\x2\x2\x2\x8CC\x8CE\a\xC0\x2\x2\x8CD\x8CF\a\xEF"+ + "\x2\x2\x8CE\x8CD\x3\x2\x2\x2\x8CE\x8CF\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2"+ + "\x2\x8D0\x8D2\a\xC7\x2\x2\x8D1\x8CA\x3\x2\x2\x2\x8D1\x8D2\x3\x2\x2\x2"+ + "\x8D2\x8D7\x3\x2\x2\x2\x8D3\x8D5\a\xEF\x2\x2\x8D4\x8D3\x3\x2\x2\x2\x8D4"+ + "\x8D5\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6\x8D8\x5\xFA~\x2\x8D7\x8D4"+ + "\x3\x2\x2\x2\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8DD\x3\x2\x2\x2\x8D9\x8DB\a\xEF"+ + "\x2\x2\x8DA\x8D9\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2"+ + "\x2\x8DC\x8DE\x5\xF2z\x2\x8DD\x8DA\x3\x2\x2\x2\x8DD\x8DE\x3\x2\x2\x2\x8DE"+ + "\xF1\x3\x2\x2\x2\x8DF\x8E1\a\xBC\x2\x2\x8E0\x8E2\a\xEF\x2\x2\x8E1\x8E0"+ + "\x3\x2\x2\x2\x8E1\x8E2\x3\x2\x2\x2\x8E2\x8E3\x3\x2\x2\x2\x8E3\x8E4\x5"+ + "\xBE`\x2\x8E4\xF3\x3\x2\x2\x2\x8E5\x8F0\x5\xF6|\x2\x8E6\x8E8\a\xEF\x2"+ + "\x2\x8E7\x8E6\x3\x2\x2\x2\x8E7\x8E8\x3\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2"+ + "\x8E9\x8EB\a\t\x2\x2\x8EA\x8EC\a\xEF\x2\x2\x8EB\x8EA\x3\x2\x2\x2\x8EB"+ + "\x8EC\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\x8EF\x5\xF6|\x2\x8EE\x8E7"+ + "\x3\x2\x2\x2\x8EF\x8F2\x3\x2\x2\x2\x8F0\x8EE\x3\x2\x2\x2\x8F0\x8F1\x3"+ + "\x2\x2\x2\x8F1\xF5\x3\x2\x2\x2\x8F2\x8F0\x3\x2\x2\x2\x8F3\x8F4\x5\xBE"+ + "`\x2\x8F4\x8F5\a\xEF\x2\x2\x8F5\x8F6\a\xA8\x2\x2\x8F6\x8F7\a\xEF\x2\x2"+ + "\x8F7\x8F9\x3\x2\x2\x2\x8F8\x8F3\x3\x2\x2\x2\x8F8\x8F9\x3\x2\x2\x2\x8F9"+ + "\x8FA\x3\x2\x2\x2\x8FA\x8FB\x5\xBE`\x2\x8FB\xF7\x3\x2\x2\x2\x8FC\x8FF"+ + "\a\xF0\x2\x2\x8FD\x8FF\x5\x112\x8A\x2\x8FE\x8FC\x3\x2\x2\x2\x8FE\x8FD"+ + "\x3\x2\x2\x2\x8FF\x900\x3\x2\x2\x2\x900\x8FE\x3\x2\x2\x2\x900\x901\x3"+ + "\x2\x2\x2\x901\xF9\x3\x2\x2\x2\x902\x904\a\x12\x2\x2\x903\x905\a\xEF\x2"+ + "\x2\x904\x903\x3\x2\x2\x2\x904\x905\x3\x2\x2\x2\x905\x908\x3\x2\x2\x2"+ + "\x906\x907\ap\x2\x2\x907\x909\a\xEF\x2\x2\x908\x906\x3\x2\x2\x2\x908\x909"+ + "\x3\x2\x2\x2\x909\x90A\x3\x2\x2\x2\x90A\x90F\x5\x10C\x87\x2\x90B\x90D"+ + "\a\xEF\x2\x2\x90C\x90B\x3\x2\x2\x2\x90C\x90D\x3\x2\x2\x2\x90D\x90E\x3"+ + "\x2\x2\x2\x90E\x910\x5\x104\x83\x2\x90F\x90C\x3\x2\x2\x2\x90F\x910\x3"+ + "\x2\x2\x2\x910\xFB\x3\x2\x2\x2\x911\x912\t\x12\x2\x2\x912\xFD\x3\x2\x2"+ + "\x2\x913\x918\a\xF0\x2\x2\x914\x917\x5\x112\x8A\x2\x915\x917\a\xF0\x2"+ + "\x2\x916\x914\x3\x2\x2\x2\x916\x915\x3\x2\x2\x2\x917\x91A\x3\x2\x2\x2"+ + "\x918\x916\x3\x2\x2\x2\x918\x919\x3\x2\x2\x2\x919\x923\x3\x2\x2\x2\x91A"+ + "\x918\x3\x2\x2\x2\x91B\x91E\x5\x112\x8A\x2\x91C\x91F\x5\x112\x8A\x2\x91D"+ + "\x91F\a\xF0\x2\x2\x91E\x91C\x3\x2\x2\x2\x91E\x91D\x3\x2\x2\x2\x91F\x920"+ + "\x3\x2\x2\x2\x920\x91E\x3\x2\x2\x2\x920\x921\x3\x2\x2\x2\x921\x923\x3"+ + "\x2\x2\x2\x922\x913\x3\x2\x2\x2\x922\x91B\x3\x2\x2\x2\x923\xFF\x3\x2\x2"+ + "\x2\x924\x925\t\xE\x2\x2\x925\x101\x3\x2\x2\x2\x926\x92B\x5\xF8}\x2\x927"+ + "\x928\t\xF\x2\x2\x928\x92A\x5\xF8}\x2\x929\x927\x3\x2\x2\x2\x92A\x92D"+ + "\x3\x2\x2\x2\x92B\x929\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x103\x3"+ + "\x2\x2\x2\x92D\x92B\x3\x2\x2\x2\x92E\x930\a\xC3\x2\x2\x92F\x931\a\xEF"+ + "\x2\x2\x930\x92F\x3\x2\x2\x2\x930\x931\x3\x2\x2\x2\x931\x934\x3\x2\x2"+ + "\x2\x932\x935\a\xCE\x2\x2\x933\x935\x5\xF8}\x2\x934\x932\x3\x2\x2\x2\x934"+ + "\x933\x3\x2\x2\x2\x935\x105\x3\x2\x2\x2\x936\x93F\x5\xFE\x80\x2\x937\x939"+ + "\a\xEF\x2\x2\x938\x937\x3\x2\x2\x2\x938\x939\x3\x2\x2\x2\x939\x93A\x3"+ + "\x2\x2\x2\x93A\x93C\a\xC2\x2\x2\x93B\x93D\a\xEF\x2\x2\x93C\x93B\x3\x2"+ + "\x2\x2\x93C\x93D\x3\x2\x2\x2\x93D\x93E\x3\x2\x2\x2\x93E\x940\x5\xFE\x80"+ + "\x2\x93F\x938\x3\x2\x2\x2\x93F\x940\x3\x2\x2\x2\x940\x107\x3\x2\x2\x2"+ + "\x941\x942\x5\xF8}\x2\x942\x943\a\xED\x2\x2\x943\x109\x3\x2\x2\x2\x944"+ + "\x945\t\x13\x2\x2\x945\x10B\x3\x2\x2\x2\x946\x949\x5\xFC\x7F\x2\x947\x949"+ + "\x5\x102\x82\x2\x948\x946\x3\x2\x2\x2\x948\x947\x3\x2\x2\x2\x949\x952"+ + "\x3\x2\x2\x2\x94A\x94C\a\xEF\x2\x2\x94B\x94A\x3\x2\x2\x2\x94B\x94C\x3"+ + "\x2\x2\x2\x94C\x94D\x3\x2\x2\x2\x94D\x94F\a\xC0\x2\x2\x94E\x950\a\xEF"+ + "\x2\x2\x94F\x94E\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2\x950\x951\x3\x2\x2"+ + "\x2\x951\x953\a\xC7\x2\x2\x952\x94B\x3\x2\x2\x2\x952\x953\x3\x2\x2\x2"+ + "\x953\x10D\x3\x2\x2\x2\x954\x955\t\x14\x2\x2\x955\x10F\x3\x2\x2\x2\x956"+ + "\x957\t\x15\x2\x2\x957\x111\x3\x2\x2\x2\x958\x959\t\x16\x2\x2\x959\x113"+ + "\x3\x2\x2\x2\x95A\x95B\a\xEA\x2\x2\x95B\x115\x3\x2\x2\x2\x95C\x95D\a\xEB"+ + "\x2\x2\x95D\x117\x3\x2\x2\x2\x95E\x960\a\xEF\x2\x2\x95F\x95E\x3\x2\x2"+ + "\x2\x95F\x960\x3\x2\x2\x2\x960\x964\x3\x2\x2\x2\x961\x965\a\xE9\x2\x2"+ + "\x962\x965\x5\x116\x8C\x2\x963\x965\x5\x114\x8B\x2\x964\x961\x3\x2\x2"+ + "\x2\x964\x962\x3\x2\x2\x2\x964\x963\x3\x2\x2\x2\x965\x967\x3\x2\x2\x2"+ + "\x966\x968\a\xEF\x2\x2\x967\x966\x3\x2\x2\x2\x967\x968\x3\x2\x2\x2\x968"+ + "\x119\x3\x2\x2\x2\x969\x972\x5\x118\x8D\x2\x96A\x96C\a\xEF\x2\x2\x96B"+ + "\x96A\x3\x2\x2\x2\x96B\x96C\x3\x2\x2\x2\x96C\x96D\x3\x2\x2\x2\x96D\x96F"+ + "\a\xED\x2\x2\x96E\x970\a\xEF\x2\x2\x96F\x96E\x3\x2\x2\x2\x96F\x970\x3"+ + "\x2\x2\x2\x970\x972\x3\x2\x2\x2\x971\x969\x3\x2\x2\x2\x971\x96B\x3\x2"+ + "\x2\x2\x972\x975\x3\x2\x2\x2\x973\x971\x3\x2\x2\x2\x973\x974\x3\x2\x2"+ + "\x2\x974\x11B\x3\x2\x2\x2\x975\x973\x3\x2\x2\x2\x19B\x120\x126\x129\x12D"+ + "\x131\x135\x139\x146\x14C\x150\x15A\x162\x16F\x179\x181\x18B\x191\x195"+ + "\x199\x19D\x1A2\x1AB\x1F2\x1F8\x1FC\x1FF\x20F\x213\x218\x21B\x220\x226"+ + "\x22A\x22F\x234\x238\x23B\x23F\x245\x249\x250\x256\x25A\x25D\x262\x26C"+ + "\x26F\x272\x276\x27C\x280\x285\x28C\x290\x294\x298\x29B\x2A0\x2AB\x2B8"+ + "\x2BF\x2C8\x2CF\x2D3\x2D6\x2E5\x2EB\x2F5\x2F9\x303\x30B\x310\x316\x31A"+ + "\x31D\x321\x32C\x330\x335\x33A\x33E\x342\x346\x349\x34C\x34F\x352\x356"+ + "\x35E\x362\x365\x368\x36C\x383\x389\x38D\x391\x39A\x3A5\x3AA\x3B4\x3B8"+ + "\x3BD\x3C5\x3C9\x3CD\x3D5\x3D9\x3E5\x3E9\x3F0\x3F2\x3F8\x3FC\x402\x406"+ + "\x40A\x422\x42C\x430\x435\x440\x444\x449\x457\x45B\x464\x468\x46B\x46F"+ + "\x473\x476\x47A\x47E\x481\x485\x488\x48C\x48E\x493\x497\x49B\x49F\x4A1"+ + "\x4A7\x4AB\x4AE\x4B3\x4B7\x4BD\x4C0\x4C3\x4C7\x4CB\x4D2\x4D6\x4DC\x4DF"+ + "\x4E3\x4EA\x4EE\x4F4\x4F7\x4FB\x503\x507\x50A\x50D\x511\x519\x51D\x521"+ + "\x523\x526\x52B\x531\x535\x539\x53E\x543\x547\x54B\x550\x558\x55A\x566"+ + "\x56A\x572\x576\x57E\x582\x586\x58A\x58E\x592\x59A\x59E\x5AB\x5B2\x5B6"+ + "\x5C1\x5C8\x5CD\x5D1\x5D6\x5D9\x5DF\x5E3\x5E6\x5EC\x5F0\x5F8\x5FC\x605"+ + "\x609\x60D\x611\x614\x618\x61E\x622\x629\x632\x639\x63D\x640\x643\x646"+ + "\x64A\x655\x65F\x663\x66A\x66C\x671\x676\x67B\x67F\x685\x68A\x691\x695"+ + "\x699\x69E\x6A5\x6A9\x6AD\x6B2\x6B6\x6BB\x6BF\x6C4\x6C8\x6CD\x6D1\x6D6"+ + "\x6DA\x6DF\x6E3\x6E8\x6EC\x6F1\x6F5\x6FA\x6FE\x703\x707\x70C\x710\x713"+ + "\x715\x71B\x720\x726\x72A\x72F\x734\x738\x73C\x73E\x742\x744\x747\x74B"+ + "\x752\x75A\x75E\x768\x76C\x774\x778\x77B\x77E\x784\x78A\x78D\x791\x795"+ + "\x799\x79C\x7A4\x7AA\x7AF\x7B2\x7B6\x7BA\x7BE\x7C1\x7C9\x7CE\x7D1\x7D6"+ + "\x7DA\x7DD\x7E0\x7E3\x7EB\x7F1\x7F4\x7FC\x803\x807\x80A\x80D\x810\x818"+ + "\x81D\x820\x823\x827\x82B\x82D\x831\x834\x837\x83F\x844\x848\x84C\x84F"+ + "\x852\x855\x85D\x862\x866\x869\x86E\x871\x875\x879\x87E\x882\x885\x889"+ + "\x88D\x891\x894\x89A\x89E\x8A2\x8A6\x8AA\x8AF\x8B2\x8B5\x8BB\x8BF\x8C3"+ + "\x8C7\x8CA\x8CE\x8D1\x8D4\x8D7\x8DA\x8DD\x8E1\x8E7\x8EB\x8F0\x8F8\x8FE"+ + "\x900\x904\x908\x90C\x90F\x916\x918\x91E\x920\x922\x92B\x930\x934\x938"+ + "\x93C\x93F\x948\x94B\x94F\x952\x95F\x964\x967\x96B\x96F\x971\x973"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAVisitor.cs b/Rubberduck.Parsing/Grammar/VBAVisitor.cs index d806150ed3..6a04a1d75b 100644 --- a/Rubberduck.Parsing/Grammar/VBAVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAVisitor.cs @@ -676,13 +676,6 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitForEachStmt([NotNull] VBAParser.ForEachStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroElseBlockStmt([NotNull] VBAParser.MacroElseBlockStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -857,13 +850,6 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVariableStmt([NotNull] VBAParser.VariableStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroIfBlockStmt([NotNull] VBAParser.MacroIfBlockStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -922,13 +908,6 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitFunctionStmt([NotNull] VBAParser.FunctionStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroElseIfBlockStmt([NotNull] VBAParser.MacroElseIfBlockStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -1129,13 +1108,6 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroConstStmt([NotNull] VBAParser.MacroConstStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -1172,13 +1144,6 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitMidStmt([NotNull] VBAParser.MidStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroIfThenElseStmt([NotNull] VBAParser.MacroIfThenElseStmtContext context); - /// /// Visit a parse tree produced by the vsPow /// labeled alternative in . @@ -1273,13 +1238,6 @@ public interface IVBAVisitor : IParseTreeVisitor { /// The visitor result. Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMacroStmt([NotNull] VBAParser.MacroStmtContext context); - /// /// Visit a parse tree produced by the vsMid /// labeled alternative in . diff --git a/Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs index 927339022f..a6745cd684 100644 --- a/Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/ConditionalCompilationIfExpression.cs @@ -58,7 +58,7 @@ public override IValue Evaluate() new ConstantExpression(new BoolValue(false)), elseIf.Item1) .Evaluate().AsString); - var elseIfIsAlive = elseIf.Item2.EvaluateCondition(); + var elseIfIsAlive = !ifIsAlive && elseIf.Item2.EvaluateCondition(); conditions.Add(elseIfIsAlive); builder.Append( new LivelinessExpression( diff --git a/Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs b/Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs new file mode 100644 index 0000000000..dbb3e087f8 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs @@ -0,0 +1,29 @@ +using Microsoft.Vbe.Interop; +using System; +using System.Linq; + +namespace Rubberduck.Parsing.Preprocessing +{ + public static class OptionCompareParser + { + public static VBAOptionCompare Parse(CodeModule codeModule) + { + int declarationLines = codeModule.CountOfDeclarationLines; + if (declarationLines == 0) + { + return VBAOptionCompare.Binary; + } + var lines = codeModule.Lines[1, declarationLines].Split(new string[] { Environment.NewLine }, StringSplitOptions.None); + if (lines.Any(line => + line.Trim().ToLower().StartsWith("option compare text") + || line.Trim().ToLower().StartsWith("option compare database"))) + { + return VBAOptionCompare.Text; + } + else + { + return VBAOptionCompare.Binary; + } + } + } +} diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs index e100f2a6f3..fbd3d924f4 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs @@ -1,5 +1,4 @@ using Antlr4.Runtime; -using Rubberduck.Parsing.Grammar; using Rubberduck.Parsing.Symbols; using System; @@ -8,18 +7,19 @@ namespace Rubberduck.Parsing.Preprocessing public sealed class VBAPreprocessor { private readonly double _vbaVersion; + private readonly VBAOptionCompare _optionCompare; - public VBAPreprocessor(double vbaVersion) + public VBAPreprocessor(double vbaVersion, VBAOptionCompare optionCompare) { _vbaVersion = vbaVersion; + _optionCompare = optionCompare; } public string Execute(string unprocessedCode) { try { - var optionCompare = ExtractOptionCompare(unprocessedCode); - return Preprocess(unprocessedCode, optionCompare); + return Preprocess(unprocessedCode); } catch (Exception ex) { @@ -27,20 +27,7 @@ public string Execute(string unprocessedCode) } } - private VBAOptionCompare ExtractOptionCompare(string unprocessedCode) - { - var stream = new AntlrInputStream(unprocessedCode); - var lexer = new VBALexer(stream); - var tokens = new CommonTokenStream(lexer); - var parser = new VBAParser(tokens); - parser.AddErrorListener(new ExceptionErrorListener()); - var optionCompareListener = new OptionCompareListener(); - parser.AddParseListener(optionCompareListener); - var tree = parser.startRule(); - return optionCompareListener.OptionCompare; - } - - private string Preprocess(string unprocessedCode, VBAOptionCompare optionCompare) + private string Preprocess(string unprocessedCode) { SymbolTable symbolTable = new SymbolTable(); var stream = new AntlrInputStream(unprocessedCode); @@ -48,7 +35,7 @@ private string Preprocess(string unprocessedCode, VBAOptionCompare optionCompare var tokens = new CommonTokenStream(lexer); var parser = new VBAConditionalCompilationParser(tokens); parser.AddErrorListener(new ExceptionErrorListener()); - var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion), optionCompare); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion), _optionCompare); var tree = parser.compilationUnit(); var expr = evaluator.Visit(tree); return expr.Evaluate().AsString; diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 9715faea33..8d9eeab40e 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -93,6 +93,7 @@ + diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index c489b3916f..d2e615c8b2 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -226,14 +226,14 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok }; token.ThrowIfCancellationRequested(); - - var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version)); + + var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version), OptionCompareParser.Parse(vbComponent.CodeModule)); string preprocessedModuleBody; try { preprocessedModuleBody = preprocessor.Execute(code); } - catch (VBAPreprocessorException ex) + catch (VBAPreprocessorException) { // Fall back to not doing any preprocessing at all. preprocessedModuleBody = code; diff --git a/Rubberduck.Parsing/VBA/RubberduckParserState.cs b/Rubberduck.Parsing/VBA/RubberduckParserState.cs index 4c42f672c9..25ddb8e03b 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParserState.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParserState.cs @@ -281,6 +281,11 @@ public void AddParseTree(VBComponent component, IParseTree parseTree) _parseTrees[component] = parseTree; } + public IParseTree GetParseTree(VBComponent component) + { + return _parseTrees[component]; + } + public IEnumerable> ParseTrees { get { return _parseTrees; } } public TokenStreamRewriter GetRewriter(VBComponent component) diff --git a/RubberduckTests/Grammar/VBAParserValidityTests.cs b/RubberduckTests/Grammar/VBAParserValidityTests.cs index 4de6c12b93..67059a682e 100644 --- a/RubberduckTests/Grammar/VBAParserValidityTests.cs +++ b/RubberduckTests/Grammar/VBAParserValidityTests.cs @@ -1,7 +1,10 @@ -using Antlr4.Runtime; +using Microsoft.Vbe.Interop; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Rubberduck.Parsing.Grammar; -using Rubberduck.Parsing.Symbols; +using Moq; +using Rubberduck.Parsing.VBA; +using Rubberduck.VBEditor.VBEHost; +using RubberduckTests.Mocks; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -13,32 +16,41 @@ public class VBAParserValidityTests { [TestMethod] [DeploymentItem(@"Testfiles\")] - public void TestTest() + public void TestParser() { foreach (var testfile in GetTestFiles()) { - AssertParseResult(testfile, Parse(testfile).module().GetText()); + var filename = testfile.Item1; + var code = testfile.Item2; + AssertParseResult(filename, code, Parse(code)); } } - private void AssertParseResult(string originalCode, string materializedParseTree) + private void AssertParseResult(string filename, string originalCode, string materializedParseTree) { - Assert.AreEqual(originalCode, materializedParseTree); + Assert.AreEqual(originalCode, materializedParseTree, string.Format("{0} mismatch detected.", filename)); } - private IEnumerable GetTestFiles() + private IEnumerable> GetTestFiles() { - return Directory.EnumerateFiles("Grammar").Select(file => File.ReadAllText(file)).ToList(); + return Directory.EnumerateFiles("Grammar").Select(file => Tuple.Create(file, File.ReadAllText(file))).ToList(); } - private VBAParser.StartRuleContext Parse(string code) + private string Parse(string code) { - var stream = new AntlrInputStream(code); - var lexer = new VBALexer(stream); - var tokens = new CommonTokenStream(lexer); - var parser = new VBAParser(tokens); - parser.AddErrorListener(new ExceptionErrorListener()); - return parser.startRule(); + var builder = new MockVbeBuilder(); + VBComponent component; + var vbe = builder.BuildFromSingleStandardModule(code, out component); + var mockHost = new Mock(); + mockHost.SetupAllProperties(); + var state = new RubberduckParserState(); + var parser = new RubberduckParser(vbe.Object, state); + parser.Parse(); + if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } + var tree = state.GetParseTree(component); + var parsed = tree.GetText(); + var withoutEOF = parsed.Substring(0, parsed.Length - 5); + return withoutEOF; } } } diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorTests.cs new file mode 100644 index 0000000000..d6ed69b86c --- /dev/null +++ b/RubberduckTests/Preprocessing/VBAPreprocessorTests.cs @@ -0,0 +1,66 @@ +using Microsoft.Vbe.Interop; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Moq; +using Rubberduck.Parsing.VBA; +using Rubberduck.VBEditor.VBEHost; +using RubberduckTests.Mocks; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace RubberduckTests.Preprocessing +{ + [TestClass] + public class VBAPreprocessorTests + { + [TestMethod] + [DeploymentItem(@"Testfiles\")] + public void TestPreprocessor() + { + foreach (var testfile in GetTestFiles()) + { + var filename = testfile.Item1; + var code = testfile.Item2; + var expectedProcessed = testfile.Item3; + var actualProcessed = Parse(code); + AssertParseResult(filename, expectedProcessed, actualProcessed); + } + } + + private void AssertParseResult(string filename, string originalCode, string materializedParseTree) + { + Assert.AreEqual(originalCode, materializedParseTree, string.Format("{0} mismatch detected.", filename)); + } + + private IEnumerable> GetTestFiles() + { + // Reference_Module_1 = raw, unprocessed code. + // Reference_Module_1_Processed = result of preprocessor. + var all = Directory.EnumerateFiles("Preprocessor").ToList(); + var rawAndProcessed = all + .Where(file => !file.Contains("_Processed")) + .Select(file => Tuple.Create(file, all.First(f => f.Contains(Path.GetFileNameWithoutExtension(file)) && f.Contains("_Processed")))).ToList(); + return rawAndProcessed + .Select(file => + Tuple.Create(file.Item1, File.ReadAllText(file.Item1), File.ReadAllText(file.Item2))).ToList(); + } + + private string Parse(string code) + { + var builder = new MockVbeBuilder(); + VBComponent component; + var vbe = builder.BuildFromSingleStandardModule(code, out component); + var mockHost = new Mock(); + mockHost.SetupAllProperties(); + var state = new RubberduckParserState(); + var parser = new RubberduckParser(vbe.Object, state); + parser.Parse(); + if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } + var tree = state.GetParseTree(component); + var parsed = tree.GetText(); + var withoutEOF = parsed.Substring(0, parsed.Length - 5); + return withoutEOF; + } + } +} diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index 3a3d918b3e..95f0756781 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -115,6 +115,7 @@ + @@ -178,40 +179,49 @@ Always - + Always - + Always - + Always - + Always - + Always - + Always - + Always - + + Always + + Always - + + Always + + + Always + + Always Always - + Always - + Always @@ -235,6 +245,12 @@ Always + + Always + + + Always + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt index 3dd84df5e3..9427d5dbde 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_11.txt @@ -1,767 +1,154 @@ -Attribute VB_Name = "vbFnPivotFieldPri" +Attribute VB_Name = "vbFnPivotTablePri" Option Explicit Option Private Module -Private Const ThisModule As String = ThisProject & "|vbFnPivotFieldPri" +Private Const ThisModule As String = ThisProject & "|vbFnPivotTablePri" -Public Sub ClearPivotFieldsVector(PivotFieldsVector As tyPivotFieldsVector) - Const ThisProcedure As String = ThisModule & "|ClearPivotFieldsVector|Sub" +Public Function GetPivotTable(PivotTables As Excel.PivotTables _ + , NameValue As tyNameValue _ + ) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTable|Function" Dim lvIndex As Long - With PivotFieldsVector - For lvIndex = Lo1 To .Count - Set .Items(lvIndex) = Nothing - Next - End With -End Sub - -#If VBA7 Then -Private Sub GetPivotFieldSlicerOrNothingTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothingTest|Sub" -Debug.Print GetPivotFieldSlicerOrNothing(ActiveSheet.PivotTables(1).PivotFields("Server")).Name -End Sub -Public Function GetPivotFieldSlicerOrNothing(PivotField As Excel.PivotField) As Excel.Slicer - Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothing|Function" - Dim lcPivotTable As Excel.PivotTable - Dim lcSlicer As Excel.Slicer + NameValue.Value = GetLongOrStringValue(NameValue:=NameValue) - Set lcPivotTable = PivotField.Parent - For Each lcSlicer In lcPivotTable.Slicers - If lcSlicer.SlicerCache.SourceName = PivotField.Name Then - Set GetPivotFieldSlicerOrNothing = lcSlicer - Exit For + If VBA.VarType(VarName:=NameValue.Value) = VBA.VbVarType.vbString Then + Set GetPivotTable = GetPivotTableOrNothing(PivotTables:=PivotTables, Index:=NameValue.Value) + If GetPivotTable Is Nothing Then + RaiseCollectionItemItemIsNothing NameValue:=NameValue _ + , Collection:=PivotTables End If - Next - - Set lcSlicer = Nothing - Set lcPivotTable = Nothing -End Function -#End If -Public Function GetPivotFieldsVisibleVector(PivotFields As Excel.PivotFields _ - , PivotFieldOrientation As XlPivotFieldOrientation _ - ) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldsVisibleVector|Function" - If GetPivotFieldsCount(PivotFields:=PivotFields, PivotFieldOrientation:=PivotFieldOrientation) = Lo0 Then - Exit Function - End If - - Select Case PivotFieldOrientation - Case XlPivotFieldOrientation.xlColumnField - GetPivotFieldsVisibleVector = GetPivotFieldColumnVisibleVector(PivotFields:=PivotFields) - - Case XlPivotFieldOrientation.xlDataField - GetPivotFieldsVisibleVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) - - Case XlPivotFieldOrientation.xlRowField - GetPivotFieldsVisibleVector = GetPivotFieldRowVisibleVector(PivotFields:=PivotFields) - - Case XlPivotFieldOrientation.xlPageField - GetPivotFieldsVisibleVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) - - Case Else - RaiseLogicError Source:="GetPivotFieldsVector" - - End Select -End Function - -Private Sub GetPivotFieldTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldTest|Sub" - Dim lcPivotTable As Excel.PivotTable - Dim lcPivotField As Excel.PivotField - Dim lcPivotFields As Excel.PivotFields - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotItems As Excel.PivotItems - Dim lvFieldNV As tyNameValue - Dim lvIndex As Long - Dim lvPivotFieldOrientation As XlPivotFieldOrientation - - Set lcPivotTable = ActiveSheet.PivotTables(1) - 'Debug.Print lcPivotTable.Parent.Name - lvPivotFieldOrientation = XlPivotFieldOrientation.xlPageField - Set lcPivotFields = GetPivotTablePivotFields(PivotTable:=lcPivotTable, PivotFieldOrientation:=lvPivotFieldOrientation) - For lvIndex = (lcPivotFields.Count + Lo1) * LoM1 To lcPivotFields.Count + Lo1 - On Error Resume Next - With lvFieldNV - .Name = "Fieldx" - .Value = lvIndex - End With - Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) - If VBA.Err.Number = 0 Then -Debug.Print lvIndex, lcPivotField.Name - Else -Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description - End If - Next - lvFieldNV.Value = "bla" - Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) - If VBA.Err.Number = 0 Then -Debug.Print lvIndex, lcPivotField.Name - Else -Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description - End If - lvFieldNV.Value = "Server" - Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) - If VBA.Err.Number = 0 Then -Debug.Print lvIndex, lcPivotField.Name - Else -Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description - End If -End Sub - -Public Function GetPivotField(PivotFields As Excel.PivotFields _ - , PivotFieldOrientation As XlPivotFieldOrientation _ - , FieldNV As tyNameValue _ - ) As Variant - Const ThisProcedure As String = ThisModule & "|GetPivotField|Function" - Dim ltPivotFieldsVector As tyPivotFieldsVector - Dim lvPosition As Long - - If PivotFields.Count = Lo0 Then - RaisePivotFieldsCountEq0 FieldNV:=FieldNV _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=PivotFields.Count - End If - - With FieldNV - .Value = GetLongOrStringValue(NameValue:=FieldNV) - - If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then - Set GetPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields _ - , Index:=.Value _ - ) - If GetPivotField Is Nothing Then - RaisePivotFieldsFieldValueStringIsNothing FieldIndex:=.Value _ - , PivotFieldOrientation:=PivotFieldOrientation - End If - Else - Select Case PivotFieldOrientation - Case XlPivotFieldOrientation.xlColumnField - ltPivotFieldsVector = GetPivotFieldColumnVisibleVector2(PivotFields:=PivotFields) - - Case XlPivotFieldOrientation.xlDataField - ltPivotFieldsVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) - - Case XlPivotFieldOrientation.xlPageField - ltPivotFieldsVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) - - Case XlPivotFieldOrientation.xlRowField - ltPivotFieldsVector = GetPivotFieldRowVisibleVector2(PivotFields:=PivotFields) - - Case Else - RaiseLogicError Source:="GetPivotField" - - End Select - - Select Case VBA.Sgn(.Value) - Case In1 - If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then - RaisePivotFieldsFieldValueLongPosGtCount FieldNV:=FieldNV _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=ltPivotFieldsVector.Count - End If - Set GetPivotField = ltPivotFieldsVector.Items(.Value) - - Case InM1 - If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then - RaisePivotFieldsFieldValueLongNegGtCount FieldNV:=FieldNV _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=ltPivotFieldsVector.Count - End If - Set GetPivotField = ltPivotFieldsVector.Items(ltPivotFieldsVector.Count + Lo1 + .Value) - - Case In0 - RaisePivotFieldsFieldValueLongEq0 FieldNV:=FieldNV _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=ltPivotFieldsVector.Count - End Select - - End If - End With -End Function - -Public Function GetPivotCRField(PivotFields As Excel.PivotFields, FieldNV As tyNameValue) As Excel.PivotField - Const ThisProcedure As String = ThisModule & "|GetPivotCRField|Function" - Dim lcPivotField As Excel.PivotField - Dim lvVarType As VBA.VbVarType - - Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=FieldNV.Value) - If lcPivotField Is Nothing Then - RaisePivotFieldDoesNotExist NameValue:=FieldNV Else - With lcPivotField - If .Orientation = XlPivotFieldOrientation.xlColumnField _ - Or .Orientation = XlPivotFieldOrientation.xlRowField Then - Set GetPivotCRField = lcPivotField - Else - RaisePivotFieldNoColumnNoRow NameValue:=FieldNV - End If - End With + lvIndex = GetCollectionItemIndex(NameValue:=NameValue _ + , Collection:=PivotTables _ + , Count:=PivotTables.Count _ + ) + Set GetPivotTable = GetPivotTableOrNothing(PivotTables:=PivotTables _ + , Index:=PivotTables.Count + Lo1 - lvIndex _ + ) End If - - Set lcPivotField = Nothing End Function -Public Function GetPivotFieldOrNothingByValue(PivotFields As Excel.PivotFields, Value As Variant) As Excel.PivotField - Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothingByValue|Function" - Dim lcPivotField As Excel.PivotField - Dim lvVarType As VBA.VbVarType - - On Error GoTo CatchError +Public Function GetPivotTableByRange(PivotTableRange As Excel.Range) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableByRange|Function" + Dim lcCell As Excel.Range - If VBA.VarType(VarName:=Value) = VBA.VbVarType.vbString Then - Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=Value) - With lcPivotField - If .Orientation = XlPivotFieldOrientation.xlColumnField _ - Or .Orientation = XlPivotFieldOrientation.xlRowField Then - Set GetPivotFieldOrNothingByValue = lcPivotField - End If - End With - Else - lvVarType = VBA.VarType(VarName:=Value) - If lvVarType = VBA.VbVarType.vbLong _ - Or lvVarType = VBA.VbVarType.vbInteger Then - lvVarType = VBA.VbVarType.vbDouble + For Each lcCell In PivotTableRange + 'Debug.Print lcCell.Address + Set GetPivotTableByRange = GetRangePivotTableOrNothing(Range:=lcCell) + If Not GetPivotTableByRange Is Nothing Then + Exit For End If - For Each lcPivotField In PivotFields - With lcPivotField - If .Orientation = XlPivotFieldOrientation.xlColumnField _ - Or .Orientation = XlPivotFieldOrientation.xlRowField Then - With .LabelRange.Resize(RowSize:=Lo1, ColumnSize:=Lo1) - 'Debug.Print VBA.VarType(VarName:=.Value), .Value - If VBA.VarType(VarName:=.Value) = lvVarType Then - If .Value = Value Then - Set GetPivotFieldOrNothingByValue = lcPivotField - Exit For - End If - ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then - If .Value2 = Value Then - Set GetPivotFieldOrNothingByValue = lcPivotField - Exit For - End If - End If - End With - End If - End With - Next + Next + If GetPivotTableByRange Is Nothing Then + RaiseRangeContainsNoPivotTable PivotTableRange:=PivotTableRange End If - Set lcPivotField = Nothing - Exit Function - -CatchError: - GetPivotFieldOrNothingByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ - , Description:=VBA.Err.Description _ - ) -End Function - -Public Function GetPivotFieldOrientationString(PivotFieldOrientation As Excel.XlPivotFieldOrientation) As String - Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientationString|Function" - Select Case PivotFieldOrientation - Case XlPivotFieldOrientation.xlColumnField - GetPivotFieldOrientationString = "Column" - Case XlPivotFieldOrientation.xlDataField - GetPivotFieldOrientationString = "Data" - Case XlPivotFieldOrientation.xlHidden - GetPivotFieldOrientationString = "Hidden" - Case XlPivotFieldOrientation.xlPageField - GetPivotFieldOrientationString = "Page" - Case XlPivotFieldOrientation.xlRowField - GetPivotFieldOrientationString = "Row" - Case Else - GetPivotFieldOrientationString = "Pivot" - End Select + Set lcCell = Nothing End Function -Public Function GetPivotFieldDataRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range - Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" - ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft - On Error Resume Next - Set GetPivotFieldDataRangeOrNothing = PivotField.DataRange -End Function - -Public Function GetPivotFieldLabelRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range - Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" - ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft - On Error Resume Next - Set GetPivotFieldLabelRangeOrNothing = PivotField.LabelRange -End Function - -Private Sub GetPivotFieldColumnVisibleVectorTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVectorTest|Sub" - Dim pfv As tyPivotFieldsVector - Dim i As Long - Dim pf As PivotField - Dim pfs As PivotFields - Set pfs = ActiveSheet.PivotTables(1).ColumnFields - pfv = GetPivotFieldColumnVisibleVector(pfs) - For i = Lo1 To pfv.Count - Set pf = pfv.Items(i) -Debug.Print i, pf.Name - Next +Private Sub GetPivotTableColumnLabelRangeTest() + GetPivotTableColumnLabelRange(ActiveCell.PivotTable).Select End Sub -Public Function GetPivotFieldColumnVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector|Function" - Dim lcPivotField As Excel.PivotField - Dim lcPivotTable As Excel.PivotTable - Dim laMatrix() As Excel.PivotField - Dim laResult() As Excel.PivotField - Dim lvColumn As Long - Dim lvCount As Long - Dim lvDataFieldPosition As Long - Dim lvIndex As Long - Dim lvPosition As Long - - Set lcPivotTable = PivotFields.Parent - - lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) - - With lcPivotTable.TableRange1 - ReDim laMatrix(.Column To .Column + .Columns.Count - Lo1, Lo1 To PivotFields.Count) +Public Function GetPivotTableColumnLabelRange(PivotTable As Excel.PivotTable) As Excel.Range + With PivotTable + With GetIntersectOrNothing(.ColumnRange.EntireRow, .DataBodyRange.EntireColumn) + Set GetPivotTableColumnLabelRange = .Resize(RowSize:=.Rows.Count - Lo1).Offset(RowOffset:=Lo1) + End With End With - - For Each lcPivotField In PivotFields - If HasPivotFieldDataRange(PivotField:=lcPivotField) Then - If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then - If lcPivotField.Position <> lvDataFieldPosition Then - With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) - Set laMatrix(.Column, lcPivotField.Position) = lcPivotField - lvCount = lvCount + Lo1 - End With - End If - End If - End If - Next - - ReDim laResult(1 To lvCount) - - For lvColumn = LBound(laMatrix, Lo1) To UBound(laMatrix, Lo1) - For lvPosition = LBound(laMatrix, Lo2) To UBound(laMatrix, Lo2) - If Not laMatrix(lvColumn, lvPosition) Is Nothing Then - lvIndex = lvIndex + Lo1 - Set laResult(lvIndex) = laMatrix(lvColumn, lvPosition) - End If - Next - Next - - GetPivotFieldColumnVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ - , Count:=lvCount _ - ) - - Set lcPivotTable = Nothing - Set lcPivotField = Nothing -End Function - -Private Sub GetPivotFieldColumnVisibleVector2Test() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2Test|Sub" - Dim pfv As tyPivotFieldsVector - Dim i As Long - Dim pf As PivotField - Dim pfs As PivotFields - Set pfs = ActiveSheet.PivotTables(1).ColumnFields - pfv = GetPivotFieldColumnVisibleVector2(pfs) - For i = Lo1 To pfv.Count - Set pf = pfv.Items(i) -Debug.Print i, pf.Name - Next -End Sub -Public Function GetPivotFieldColumnVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2|Function" - Dim lcPivotField As Excel.PivotField - Dim lcPivotTable As Excel.PivotTable - Dim ltVector As tyPivotFieldsVector - Dim laVector() As Excel.PivotField - Dim lvDataFieldPosition As Long - Dim lvIndex As Long - - Set lcPivotTable = PivotFields.Parent - - lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) - - If lvDataFieldPosition = Lo0 Then - - If PivotFields.Count > Lo0 Then - ReDim ltVector.Items(Lo1 To PivotFields.Count) - - For Each lcPivotField In PivotFields - If HasPivotFieldDataRange(PivotField:=lcPivotField) Then - If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then - With ltVector - .Count = .Count + Lo1 - Set .Items(lcPivotField.Position) = lcPivotField - End With - End If - End If - Next - End If - - Else - - If PivotFields.Count > Lo1 Then - ReDim laVector(Lo1 To PivotFields.Count) - - For Each lcPivotField In PivotFields - If HasPivotFieldDataRange(PivotField:=lcPivotField) Then - If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then - If lcPivotField.Position <> lvDataFieldPosition Then - Set laVector(lcPivotField.Position) = lcPivotField - End If - End If - End If - Next - - With ltVector - ReDim ltVector.Items(Lo1 To PivotFields.Count - Lo1) - For lvIndex = LBound(laVector) To UBound(laVector) - If Not laVector(lvIndex) Is Nothing Then - .Count = .Count + Lo1 - Set .Items(.Count) = laVector(lvIndex) - End If - Next - End With - - End If - End If - - GetPivotFieldColumnVisibleVector2 = ltVector - - Set lcPivotTable = Nothing - Set lcPivotField = Nothing End Function -Private Sub GetPivotFieldDataVisibleVectorTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVectorTest|Sub" - Dim pfv As tyPivotFieldsVector - Dim i As Variant - Dim pf As PivotField - Dim pfs As PivotFields - Dim pt As PivotTable - Set pt = ActiveSheet.PivotTables(1) - Set pfs = pt.DataFields - pfv = GetPivotFieldDataVisibleVector(pfs) - For i = Lo1 To pfv.Count - Set pf = pfv.Items(i) -Debug.Print i, pf.Name - Next +Private Sub GetPivotTableRowLabelRangeTest() + GetPivotTableRowLabelRange(ActiveCell.PivotTable).Select End Sub -Public Function GetPivotFieldDataVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVector|Function" - Dim lcPivotField As Excel.PivotField - Dim laVector() As Excel.PivotField - Dim lvCount As Long - - ReDim laVector(Lo1 To PivotFields.Count) - - For Each lcPivotField In PivotFields - lvCount = lvCount + Lo1 - Set laVector(lcPivotField.Position) = lcPivotField - Next - - GetPivotFieldDataVisibleVector = GetVectorFromVector(Vector:=laVector _ - , Count:=lvCount _ - ) - - Set lcPivotField = Nothing +Public Function GetPivotTableRowLabelRange(PivotTable As Excel.PivotTable) As Excel.Range + With PivotTable + Set GetPivotTableRowLabelRange = GetIntersectOrNothing(.RowRange.EntireColumn, .DataBodyRange.EntireRow) + End With End Function -Private Sub GetPivotFieldPageVisibleVectorTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVectorTest|Sub" - Dim pfv As tyPivotFieldsVector - Dim pf As PivotField - Dim pfs As PivotFields - Dim pt As PivotTable - Dim i As Long - Set pt = ActiveSheet.PivotTables(1) - Set pfs = pt.PageFields - pfv = GetPivotFieldPageVisibleVector(pfs) - For i = Lo1 To pfv.Count - Set pf = pfv.Items(i) -Debug.Print i, pf.Name - Next -End Sub -Public Function GetPivotFieldPageVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVector|Function" - Dim lcPivotField As Excel.PivotField - Dim laVector() As Excel.PivotField - Dim lvIndex As Long +Public Function GetPivotTablePivotFields(PivotTable As Excel.PivotTable _ + , PivotFieldOrientation As Excel.XlPivotFieldOrientation _ + ) As Excel.PivotFields + Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotFields|Function" - If PivotFields.Count = Lo0 Then - Exit Function - End If + With PivotTable + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + Set GetPivotTablePivotFields = .ColumnFields - ReDim laVector(Lo1 To PivotFields.Count) + Case XlPivotFieldOrientation.xlDataField + Set GetPivotTablePivotFields = .DataFields - For Each lcPivotField In PivotFields - Set laVector(PivotFields.Count + Lo1 - lcPivotField.Position) = lcPivotField - Next + Case XlPivotFieldOrientation.xlHidden + Set GetPivotTablePivotFields = .HiddenFields - GetPivotFieldPageVisibleVector = GetVectorFromVector(Vector:=laVector _ - , Count:=PivotFields.Count _ - ) + Case XlPivotFieldOrientation.xlPageField + Set GetPivotTablePivotFields = .PageFields - Set lcPivotField = Nothing -End Function + Case XlPivotFieldOrientation.xlRowField + Set GetPivotTablePivotFields = .RowFields -Private Sub GetPivotFieldRowVisibleVectorTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVectorTest|Sub" - Dim pfv As tyPivotFieldsVector - Dim i As Variant - Dim pf As PivotField - Dim pfs As PivotFields - Set pfs = ActiveSheet.PivotTables(1).RowFields - pfv = GetPivotFieldRowVisibleVector(pfs) - For i = Lo1 To pfv.Count - Set pf = pfv.Items(i) -Debug.Print i, pf.Name - Next -End Sub -Public Function GetPivotFieldRowVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector|Function" - Dim lcPivotField As Excel.PivotField - Dim lcPivotTable As Excel.PivotTable - Dim laMatrix() As Excel.PivotField - Dim lvCount As Long - Dim lvIndex As Long - - Set lcPivotTable = PivotFields.Parent + Case Else + Set GetPivotTablePivotFields = .PivotFields - With lcPivotTable.TableRange1 - ReDim laMatrix(.Row To .Row + .Rows.Count - Lo1, Lo1 To PivotFields.Count) + End Select End With - - For Each lcPivotField In PivotFields - If HasPivotFieldDataRange(PivotField:=lcPivotField) Then - If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then - With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) - Set laMatrix(.Row, lcPivotField.Position) = lcPivotField - lvCount = lvCount + Lo1 - End With - End If - End If - Next - - GetPivotFieldRowVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ - , Count:=lvCount _ - ) - - Set lcPivotTable = Nothing - Set lcPivotField = Nothing End Function -Private Sub GetPivotFieldRowVisibleVector2Test() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2Test|Sub" - Dim pfv As tyPivotFieldsVector - Dim i As Variant - Dim pf As PivotField - Dim pfs As PivotFields - Set pfs = ActiveSheet.PivotTables(1).RowFields - pfv = GetPivotFieldRowVisibleVector2(pfs) - For i = Lo1 To pfv.Count - Set pf = pfv.Items(i) -Debug.Print i, pf.Name - Next -End Sub -Public Function GetPivotFieldRowVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2|Function" - Dim lcPivotField As Excel.PivotField - Dim lcPivotTable As Excel.PivotTable - Dim ltVector As tyPivotFieldsVector +Public Function GetPivotTables(Worksheet As Excel.Worksheet) As Excel.PivotTables + Const ThisProcedure As String = ThisModule & "|GetPivotTables|Function" - Set lcPivotTable = PivotFields.Parent - - With ltVector - ReDim .Items(Lo1 To PivotFields.Count) - - For Each lcPivotField In PivotFields - If HasPivotFieldDataRange(PivotField:=lcPivotField) Then - If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then - .Count = .Count + Lo1 - Set .Items(lcPivotField.Position) = lcPivotField - End If - End If - Next - End With - - GetPivotFieldRowVisibleVector2 = ltVector - - Set lcPivotTable = Nothing - Set lcPivotField = Nothing + Set GetPivotTables = GetPivotTablesOrNothing(Worksheet:=Worksheet) + If GetPivotTables Is Nothing Then + RaiseWorksheetPivotTablesIsNothing Worksheet:=Worksheet + End If End Function -Public Function HasPivotFieldDataRange(PivotField As Excel.PivotField) As Boolean - Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" - ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft - On Error Resume Next - HasPivotFieldDataRange = VBA.CBool(Not PivotField.DataRange Is Nothing) +Public Function PFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PFPTR|Function" + Set PFPTR = ActiveWorkbook.Worksheets("PF").PivotTables(1).TableRange1 End Function - -Public Function IsPivotFieldPositionReadable(PivotField As Excel.PivotField) As Boolean - Const ThisProcedure As String = ThisModule & "|IsPivotFieldPositionReadable|Function" - Dim lvPosition As Long - - On Error GoTo CatchError - - lvPosition = PivotField.Position - IsPivotFieldPositionReadable = True - - Exit Function - -CatchError: - IsPivotFieldPositionReadable = False +Public Function PCFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PCFPTR|Function" + Set PCFPTR = ActiveWorkbook.Worksheets("PCF").PivotTables(1).TableRange1 End Function - -Private Function GetVectorFromMatrix(ByRef Matrix() As Excel.PivotField, Count As Long) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetVectorFromMatrix|Function" - Dim lvIndex1 As Long - Dim lvIndex2 As Long - - With GetVectorFromMatrix - - ReDim .Items(Lo1 To Count) - - For lvIndex1 = LBound(Matrix, Lo1) To UBound(Matrix, Lo1) - For lvIndex2 = LBound(Matrix, Lo2) To UBound(Matrix, Lo2) - If Not Matrix(lvIndex1, lvIndex2) Is Nothing Then - .Count = .Count + Lo1 - Set .Items(.Count) = Matrix(lvIndex1, lvIndex2) - Set Matrix(lvIndex1, lvIndex2) = Nothing - End If - Next - Next - - If .Count <> Count Then - RaiseLogicError Source:="GetVectorFromVector" - End If - - End With +Public Function PDFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PDFPTR|Function" + Set PDFPTR = ActiveWorkbook.Worksheets("PDF").PivotTables(1).TableRange1 End Function - -Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotField, Count As Long) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" - Dim lvIndex As Long - - With GetVectorFromVector - - ReDim .Items(Lo1 To Count) - - For lvIndex = LBound(Vector) To UBound(Vector) - If Not Vector(lvIndex) Is Nothing Then - .Count = .Count + Lo1 - Set .Items(.Count) = Vector(lvIndex) - Set Vector(lvIndex) = Nothing - End If - Next - - If .Count <> Count Then - RaiseLogicError Source:="GetVectorFromVector" - End If - - End With +Public Function PPFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PPFPTR|Function" + Set PPFPTR = ActiveWorkbook.Worksheets("PPF").PivotTables(1).TableRange1 End Function - -Public Function PivotCellValuesColumnFieldRange(PivotField As Excel.PivotField) As Excel.Range - Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnFieldRange|Function" - Dim lcRange As Excel.Range - - If PivotField.Orientation = XlPivotFieldOrientation.xlColumnField Then - Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) - Set PivotCellValuesColumnFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ - , Arg2:=PivotField.ColumnRange.EntireColumn _ - ) - Set lcRange = Nothing - Else - RaiseLogicError Source:="PivotCellValuesColumnFieldRange" - End If +Public Function PRFPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PRFPTR|Function" + Set PRFPTR = ActiveWorkbook.Worksheets("PRF").PivotTables(1).TableRange1 End Function -Public Function PivotCellValuesDataFieldRange(PivotField As Excel.PivotField) As Excel.Range - Const ThisProcedure As String = ThisModule & "|PivotCellValuesDataFieldRange|Function" - Dim lcRange As Excel.Range - - If PivotField.Orientation = XlPivotFieldOrientation.xlDataField Then - Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) - Set PivotCellValuesDataFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ - , Arg2:=PivotField.DataRange.EntireColumn _ - ) - Set lcRange = Nothing - Else - RaiseLogicError Source:="PivotCellValuesDataFieldRange" - End If +Public Function PSPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PSPTR|Function" + Set PSPTR = ActiveWorkbook.Worksheets("PS").PivotTables(1).TableRange1 End Function -Public Function PivotCellValuesRowFieldRange(PivotField As Excel.PivotField) As Excel.Range - Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowFieldRange|Function" - Dim lcRange As Excel.Range - - If PivotField.Orientation = XlPivotFieldOrientation.xlRowField Then - Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) - Set PivotCellValuesRowFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ - , Arg2:=PivotField.RowRange.EntireColumn _ - ) - Set lcRange = Nothing - Else - RaiseLogicError Source:="PivotCellValuesRowFieldRange" - End If +Public Function PTPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PTPTR|Function" + Set PTPTR = ActiveWorkbook.Worksheets("PT").PivotTables(1).TableRange1 End Function - -Public Function GetPivotFieldByPosition(PivotFields As Excel.PivotFields, Position As Long) As Excel.PivotField - Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" - Dim lcPivotField As Excel.PivotField - - For Each lcPivotField In PivotFields - If lcPivotField.Position = Position Then - Set GetPivotFieldByPosition = lcPivotField - Exit For - End If - Next - Set lcPivotField = Nothing +Public Function PYPTR() As Excel.Range + Const ThisProcedure As String = ThisModule & "|PYPTR|Function" + Set PYPTR = ActiveWorkbook.Worksheets("PY").PivotTables(1).TableRange1 End Function -Private Sub GetPivotFieldsVectorSortedByPositionTest() - Dim ltVector As tyPivotFieldsVector - ltVector = GetPivotFieldsVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields) - -End Sub -Public Function GetPivotFieldsVectorSortedByPosition(PivotFields As Excel.PivotFields) As tyPivotFieldsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" - Dim lcPivotField As Excel.PivotField - Dim ltVector As tyPivotFieldsVector - Dim lvPosition As Long - - ' die PivotFields sortiert nach ihrer Position zurück +Private Function WorksheetPTR(WorksheetName As String) As Excel.Worksheet + Const ThisProcedure As String = ThisModule & "|WorksheetPTR|Function" + Dim lcWorksheet As Excel.Worksheet + Dim lcPivotTable As Excel.PivotTable - With ltVector - Set .PivotFields = PivotFields - For Each lcPivotField In PivotFields - lvPosition = GetPivotFieldPosition(PivotField:=lcPivotField) - If lvPosition > Lo0 Then - If .Count < lvPosition Then - ReDim Preserve .Items(Lo1 To lvPosition) - .Count = lvPosition - End If - Set .Items(lvPosition) = lcPivotField - End If - Next + Set lcWorksheet = ActiveWorkbook.Worksheets(Index:=WorksheetName) + With lcWorksheet + .Activate + Set lcPivotTable = .PivotTables(1) End With - - GetPivotFieldsVectorSortedByPosition = ltVector - + Set WorksheetPTR = lcPivotTable.TableRange1 + Set lcPivotTable = Nothing + Set lcWorksheet = Nothing End Function - -Private Sub asfdGetPivotFieldItemsVisibleTest() - Const ThisProcedure As String = ThisModule & "|asfdGetPivotFieldItemsVisibleTest|Sub" - Dim lcPivotTable As Excel.PivotTable - Dim lcPivotField As Excel.PivotField - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotItems As Excel.PivotItems - Dim lvKey As String - - Set lcPivotTable = ActiveCell.PivotTable - Set lcPivotField = lcPivotTable.RowFields(1) - Set lcPivotItems = lcPivotField.PivotItems - Set lcPivotItem = lcPivotField.PivotItems(1) - lvKey = VBA.Format$(lcPivotItem.Name, lcPivotItem.LabelRange.NumberFormat) - Set lcPivotItem = lcPivotItems(lvKey) - Set lcPivotItem = lcPivotItems("01.01.2013") - Set lcPivotItem = lcPivotItems("1/1/2013") - Set lcPivotItem = lcPivotItems("Tue") -Debug.Print lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.NumberFormatLocal - 'VBA.Format -End Sub diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt index 80d1dfdd30..941c1f994a 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt @@ -1,979 +1,61 @@ -Attribute VB_Name = "vbFnPivotItemPri" +Attribute VB_Name = "vbVarTypeNamePri" Option Explicit Option Private Module -Private Const ThisModule As String = ThisProject & "|vbFnPivotItemPri" - -Public Sub ClearPivotItemsVector(PivotItemsVector As tyPivotItemsVector) - Const ThisProcedure As String = ThisModule & "|ClearPivotItemsVector|Sub" - Dim lvIndex As Long - - With PivotItemsVector - For lvIndex = Lo1 To .Count - Set .Items(lvIndex) = Nothing - Next - End With -End Sub - -Public Function GetPivotItemLabelRangeOrNothing(PivotItem As Excel.PivotItem) As Excel.Range - Const ThisProcedure As String = ThisModule & "|HasPivotItemDataRange|Function" - ' eingeführt, weil PivotItem.Visible bei RowItems den Fehler "Typen unverträglich" wirft - On Error Resume Next - Set GetPivotItemLabelRangeOrNothing = PivotItem.LabelRange -End Function - -Public Function GetPivotItemsVisibleVector(PivotItems As Excel.PivotItems _ - , PivotFieldOrientation As XlPivotFieldOrientation _ - , SelectedOnly As Boolean _ - ) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleVector|Function" - Dim lcPivotItem As Excel.PivotItem - - Select Case PivotFieldOrientation - Case XlPivotFieldOrientation.xlColumnField - GetPivotItemsVisibleVector = GetPivotItemColumnVisibleVector(PivotItems:=PivotItems) - - Case XlPivotFieldOrientation.xlRowField - GetPivotItemsVisibleVector = GetPivotItemRowVisibleVector(PivotItems:=PivotItems) - - Case XlPivotFieldOrientation.xlPageField - GetPivotItemsVisibleVector = GetPivotItemPageVisibleVector(PivotItems:=PivotItems, SelectedOnly:=SelectedOnly) - - Case Else - RaiseLogicError Source:="GetPivotItemsVector" - - End Select -End Function - -Private Sub GetPivotItemTest() - Const ThisProcedure As String = ThisModule & "|GetPivotItemTest|Sub" - Dim lcPivotTable As Excel.PivotTable - Dim lcPivotField As Excel.PivotField - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotItems As Excel.PivotItems - Dim v - - Set lcPivotTable = ActiveSheet.PivotTables(1) - 'Debug.Print lcPivotTable.Parent.Name -' Set lcPivotField = lcPivotTable.PageFields("b") - Set lcPivotField = lcPivotTable.RowFields("b") -Debug.Print lcPivotField.Name - For Each lcPivotItem In lcPivotField.PivotItems - On Error Resume Next - v = lcPivotItem.Visible -Debug.Print Err.Number, Err.Description - On Error Resume Next -Debug.Print lcPivotItem.DataRange.Address -Debug.Print Err.Number, Err.Description - Next - Exit Sub - - Set lcPivotItem = GetPivotItem(PivotItems:=lcPivotField.PivotItems _ - , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ - , FieldItem:=GetPINV("F", 1, "n", 2) _ - ) -End Sub -Public Function GetPivotItem(PivotItems As Excel.PivotItems _ - , PivotFieldOrientation As XlPivotFieldOrientation _ - , FieldItem As tyParentItem _ - ) As Excel.PivotItem - Const ThisProcedure As String = ThisModule & "|GetPivotItem|Function" - Dim lcPivotItem As Excel.PivotItem - - ' dieser Text ist einfach Quatsch; deshalb habe ich die alte Routime (GetPivotItemOld) ausgemustert - ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert - ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String - - With FieldItem - Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) - If lcPivotItem Is Nothing Then - RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ - , PivotFieldOrientation:=PivotFieldOrientation - End If - End With - - Set GetPivotItem = lcPivotItem - - Set lcPivotItem = Nothing -End Function - -Private Sub GetPivotItemOldTest() - Const ThisProcedure As String = ThisModule & "|GetPivotItemOldTest|Sub" - Dim lcPivotTable As Excel.PivotTable - Dim lcPivotField As Excel.PivotField - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotItems As Excel.PivotItems - Dim v - - Set lcPivotTable = ActiveSheet.PivotTables(1) - 'Debug.Print lcPivotTable.Parent.Name -' Set lcPivotField = lcPivotTable.PageFields("b") - Set lcPivotField = lcPivotTable.RowFields("b") -Debug.Print lcPivotField.Name - For Each lcPivotItem In lcPivotField.PivotItems - On Error Resume Next - v = lcPivotItem.Visible -Debug.Print Err.Number, Err.Description - On Error Resume Next -Debug.Print lcPivotItem.DataRange.Address -Debug.Print Err.Number, Err.Description - Next - Exit Sub - - Set lcPivotItem = GetPivotItemOld(PivotItems:=lcPivotField.PivotItems _ - , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ - , FieldItem:=GetPINV("F", 1, "n", 2) _ - ) -End Sub -Public Function GetPivotItemOld(PivotItems As Excel.PivotItems _ - , PivotFieldOrientation As XlPivotFieldOrientation _ - , FieldItem As tyParentItem _ - ) As Excel.PivotItem - Const ThisProcedure As String = ThisModule & "|GetPivotItemOld|Function" - Dim lcPivotField As Excel.PivotField - Dim lcPivotItem As Excel.PivotItem - Dim ltPivotItemsVector As tyPivotItemsVector - Dim lvCount As Long - Dim lvIndex As Long - - Set lcPivotField = PivotItems.Parent - If PivotItems.Count = Lo0 Then - RaisePivotItemsCountEq0 FieldItem:=FieldItem _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=PivotItems.Count - End If - - ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert - ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String - - With FieldItem - .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) - End With - - With FieldItem - If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then - Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) - If lcPivotItem Is Nothing Then - RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ - , PivotFieldOrientation:=PivotFieldOrientation - End If - Else - ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , SelectedOnly:=False _ - ) - - Select Case VBA.Sgn(.ItemNV.Value) - Case In1 - If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then - RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=ltPivotItemsVector.Count - End If - Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) - - Case InM1 - If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then - RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=ltPivotItemsVector.Count - End If - Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) - - Case In0 - RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=ltPivotItemsVector.Count - End Select - End If - End With - - Set GetPivotItemOld = lcPivotItem - - Set lcPivotItem = Nothing -End Function - -Private Sub x() +Private Const ThisModule As String = ThisProject & "|vbVarTypeNamePri" +Private Sub VarTypeNameTest() + Const ThisProcedure As String = ThisModule & "|VarTypeNameTest|Sub" + Dim v As Boolean +Debug.Print VarTypeName(v) End Sub -'Private Sub GetPivotItem2Test() -' Const ThisProcedure As String = ThisModule & "|GetPivotItem2Test|Sub" -' Dim lcPivotTable As Excel.PivotTable -' Dim lcPivotField As Excel.PivotField -' Dim lcPivotItem As Excel.PivotItem -' Dim lcPivotItems As Excel.PivotItems -' Dim v -' -' Set lcPivotTable = ActiveSheet.PivotTables(1) -' 'Debug.Print lcPivotTable.Parent.Name -'' Set lcPivotField = lcPivotTable.PageFields("b") -' Set lcPivotField = lcPivotTable.RowFields("b") -'Debug.Print lcPivotField.Name -' For Each lcPivotItem In lcPivotField.PivotItems -' On Error Resume Next -' v = lcPivotItem.Visible -'Debug.Print Err.Number, Err.Description -' On Error Resume Next -'Debug.Print lcPivotItem.DataRange.Address -'Debug.Print Err.Number, Err.Description -' Next -' Exit Sub -' -' Set lcPivotItem = GetPivotItem2(PivotItems:=lcPivotField.PivotItems _ -' , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ -' , FieldItem:=GetPINV("F", 1, "n", 2) _ -' ) -'End Sub -'Public Function GetPivotItem2(PivotItems As Excel.PivotItems _ -' , PivotFieldOrientation As XlPivotFieldOrientation _ -' , FieldItem As tyParentItem _ -' ) As Excel.PivotItem -' Const ThisProcedure As String = ThisModule & "|GetPivotItem2|Function" -' Dim lcPivotField As Excel.PivotField -' Dim lcPivotItem As Excel.PivotItem -' Dim ltPivotItemsVector As tyPivotItemsVector -' Dim lvCount As Long -' Dim lvIndex As Long -' -' Set lcPivotField = PivotItems.Parent -' If PivotItems.Count = Lo0 Then -' RaisePivotItemsCountEq0 FieldItem:=FieldItem _ -' , PivotFieldOrientation:=PivotFieldOrientation _ -' , Count:=PivotItems.Count -' End If -' -' ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert -' ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String -' -' With FieldItem -' .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) -' End With -' -' With FieldItem -' If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then -' Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) -' If lcPivotItem Is Nothing Then -' RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ -' , PivotFieldOrientation:=PivotFieldOrientation -' End If -' Else -' ltPivotItemsVector = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) -' -' Select Case VBA.Sgn(.ItemNV.Value) -' Case In1 -' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then -' RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ -' , PivotFieldOrientation:=PivotFieldOrientation _ -' , Count:=ltPivotItemsVector.Count -' End If -' Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) -' -' Case InM1 -' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then -' RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ -' , PivotFieldOrientation:=PivotFieldOrientation _ -' , Count:=ltPivotItemsVector.Count -' End If -' Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) -' -' Case In0 -' RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ -' , PivotFieldOrientation:=PivotFieldOrientation _ -' , Count:=ltPivotItemsVector.Count -' End Select -' End If -' End With -' -' Set GetPivotItem2 = lcPivotItem -' -' Set lcPivotItem = Nothing -'End Function -' -Public Function GetPivotItemsVisibleDataRange(PivotItems As Excel.PivotItems _ - , PivotFieldOrientation As XlPivotFieldOrientation _ - , FieldItem As tyParentItem _ - ) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleDataRange|Function" - Dim lcDataRange As Excel.Range - Dim lcPivotField As Excel.PivotField - Dim ltPivotItemsVector As tyPivotItemsVector - Dim lvCount As Long - Dim lvIndex As Long - Set lcPivotField = PivotItems.Parent - If PivotItems.Count = Lo0 Then - RaisePivotItemsCountEq0 FieldItem:=FieldItem _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , Count:=PivotItems.Count - End If - - ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ - , PivotFieldOrientation:=PivotFieldOrientation _ - , SelectedOnly:=False _ - ) - With ltPivotItemsVector - For lvIndex = LBound(.Items) To UBound(.Items) - If lcDataRange Is Nothing Then - Set lcDataRange = .Items(lvIndex).DataRange - Else - Set lcDataRange = Application.Union(Arg1:=lcDataRange _ - , Arg2:=.Items(lvIndex).DataRange _ - ) - End If - Next - End With - - Set GetPivotItemsVisibleDataRange = lcDataRange - - Set lcPivotField = Nothing - Set lcDataRange = Nothing -End Function - -Private Sub GetPivotItemByValueTest() - Const ThisProcedure As String = ThisModule & "|GetPivotItemByValueTest|Sub" - Dim lcPivotTable As Excel.PivotTable - Dim lcPivotField As Excel.PivotField - Set lcPivotTable = ActiveSheet.PivotTables(1) - Set lcPivotField = lcPivotTable.PivotFields("Time") - 'Debug.Print GetPivotItemByValue(lcPivotField.PivotItems, VBA.TimeSerial(1, 0, 0), "bla").Name -End Sub -Public Function GetPivotItemByValue(PivotItems As Excel.PivotItems, ItemNV As tyNameValue) As Excel.PivotItem - Const ThisProcedure As String = ThisModule & "|GetPivotItemByValue|Function" - Dim lcPivotItem As Excel.PivotItem +Public Function VarTypeName(Var As Variant) As String + Const ThisProcedure As String = ThisModule & "|VarTypeName|Function" + Dim lvArrayType As VBA.VbVarType Dim lvVarType As VBA.VbVarType - On Error GoTo CatchError - - With ItemNV - If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then - On Error Resume Next - Set GetPivotItemByValue = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.Value) - Else - lvVarType = VBA.VarType(VarName:=.Value) - If lvVarType = VBA.VbVarType.vbLong _ - Or lvVarType = VBA.VbVarType.vbInteger Then - lvVarType = VBA.VbVarType.vbDouble - End If - For Each lcPivotItem In PivotItems - If IsPivotItemVisible(lcPivotItem) Then - With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) - 'Debug.Print VBA.VarType(VarName:=.Value), .Value - If VBA.VarType(VarName:=.Value) = lvVarType Then - If .Value = ItemNV.Value Then - Set GetPivotItemByValue = lcPivotItem - Exit For - End If - ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then - If .Value2 = ItemNV.Value Then - Set GetPivotItemByValue = lcPivotItem - Exit For - End If - End If - End With - End If - Next - End If - End With - If GetPivotItemByValue Is Nothing Then - RaisePivotItemByValueNotFound NameValue:=ItemNV - End If - - Exit Function - -CatchError: - GetPivotItemByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ - , Description:=VBA.Err.Description _ - ) -End Function - -Private Sub GetPivotFieldItemsVisibleVectorTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVectorTest|Sub" - Dim ltVector As tyPivotItemsVector - ltVector = GetPivotFieldItemsVisibleVector(ActiveCell.PivotTable.ColumnFields("host2")) - Stop -End Sub -Private Function GetPivotFieldItemsVisibleVector(PivotField As Excel.PivotField) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVector|Function" - Dim lcPivotAxis As Excel.PivotAxis - Dim lcPivotLine As Excel.PivotLine - Dim lcPivotLineCell As Excel.PivotCell - Dim lcPivotItem As Excel.PivotItem - Dim ltVector As tyPivotItemsVector - - Set lcPivotAxis = GetPivotFieldPivotAxis(PivotField:=PivotField) - For Each lcPivotLine In lcPivotAxis.PivotLines - If lcPivotLine.LineType = XlPivotLineType.xlPivotLineRegular Then - For Each lcPivotLineCell In lcPivotLine.PivotLineCells - With lcPivotLineCell - If .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then - If .PivotField.Name = PivotField.Name Then - Set lcPivotItem = .PivotItem - 'Debug.Print "PivotField", PivotField.Name, PivotField.NumberFormat, PivotFieldDataTypeName(PivotField.DataType) - Debug.Print "PivotItem ", lcPivotItem.Name, VarTypeName(lcPivotItem.Value) - 'Debug.Print "LabelRange", lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.Value, VarTypeName(lcPivotItem.LabelRange.Value) - - With ltVector - .Count = .Count + Lo1 - If .Count = Lo1 Then - ReDim .Items(Lo1 To .Count) - Else - ReDim Preserve .Items(Lo1 To .Count) - End If - Set .Items(.Count) = lcPivotItem - End With -' Select Case PivotField.DataType -' Case XlPivotFieldDataType.xlDate -' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem -' -' Case XlPivotFieldDataType.xlNumber -' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem -' -' Case XlPivotFieldDataType.xlText -' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem -' -' Case Else -' Stop -' End Select - Exit For - End If - End If - End With - Next - End If - Next - - GetPivotFieldItemsVisibleVector = ltVector - -End Function - -Public Function GetPivotItemColumnVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" - - ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemColumnVisibleVectorOldTest) macht - ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten - ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt - ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 - ' aber vorher war's so, also lass ich es - - GetPivotItemColumnVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlColumnField) - -End Function - -Private Sub GetPivotItemColumnVisibleVectorOldTest() - Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOldTest|Sub" - Dim piv As tyPivotItemsVector - Dim i As Variant - Dim pf As PivotField - Dim pi As PivotItem - Set pf = ActiveSheet.PivotTables(1).ColumnFields("host2") - piv = GetPivotItemColumnVisibleVectorOld(pf.PivotItems) - For i = 1 To piv.Count - Set pi = piv.Items(i) -Debug.Print i, pf.Name, pi.Name, pf.Position - Next -End Sub -Public Function GetPivotItemColumnVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOld|Function" - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotField As Excel.PivotField - Dim lcPivotTable As Excel.PivotTable - Dim laVector() As Excel.PivotItem - Dim lvCount As Long - Dim lvIndex As Long - - Set lcPivotField = PivotItems.Parent - Set lcPivotTable = lcPivotField.Parent - 'Debug.Print lcPivotField.Name - - With lcPivotTable.TableRange1 - ReDim laVector(.Column To .Column + .Columns.Count - Lo1) - End With - - For Each lcPivotItem In PivotItems - If IsPivotItemVisible(PivotItem:=lcPivotItem) Then - With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) - Set laVector(.Column) = lcPivotItem - lvCount = lvCount + Lo1 - End With - End If - Next - - GetPivotItemColumnVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ - , Count:=lvCount _ - ) - - GetPivotItemColumnVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType - - Set lcPivotItem = Nothing - Set lcPivotTable = Nothing - Set lcPivotField = Nothing -End Function - -Private Sub GetPivotItemColumnVisibleVector2Test() - Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2Test|Sub" - Dim piv As tyPivotItemsVector - Dim i As Variant - Dim pf As PivotField - Dim pi As PivotItem - Set pf = ActiveSheet.PivotTables(1).ColumnFields("Server") - piv = GetPivotItemColumnVisibleVector2(pf.PivotItems) - For i = 1 To piv.Count - Set pi = piv.Items(i) -Debug.Print i, pf.Name, pi.Name, pf.Position - Next -End Sub -Public Function GetPivotItemColumnVisibleVector2(PivotItems As Excel.PivotItems) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2|Function" - Dim lcPivotField As Excel.PivotField - - Set lcPivotField = PivotItems.Parent - - GetPivotItemColumnVisibleVector2 = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) - - Set lcPivotField = Nothing -End Function - -Private Sub GetPivotItemPageVisibleVectorTest() - Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVectorTest|Sub" - Dim piv As tyPivotItemsVector - Dim i As Variant - Dim pf As PivotField - Dim pi As PivotItem - Set pf = ActiveSheet.PivotTables(1).PageFields("DateHHMMSS") - piv = GetPivotItemPageVisibleVector(pf.PivotItems, False) - For i = 1 To piv.Count - Set pi = piv.Items(i) -Debug.Print i, pf.Name, pi.Name, pf.Position - Next -End Sub -Public Function GetPivotItemPageVisibleVector(PivotItems As Excel.PivotItems, SelectedOnly As Boolean) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVector|Function" - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotField As Excel.PivotField - Dim laVector() As Excel.PivotItem - Dim lvCount As Long - Dim lvIndex As Long - Dim lvFieldDate As Date - Dim lvItemDate As Date - Dim v As Variant - - Set lcPivotField = PivotItems.Parent - 'Debug.Print lcPivotField.Name - - If lcPivotField.AllItemsVisible Then - - If Not SelectedOnly Then - ReDim laVector(Lo1 To PivotItems.Count) - - For Each lcPivotItem In PivotItems - lvCount = lvCount + Lo1 - Set laVector(lvCount) = lcPivotItem - Next - End If - - ElseIf lcPivotField.EnableMultiplePageItems Then - ' mehrere PageFields ausgewählt - - ReDim laVector(Lo1 To PivotItems.Count) - - For Each lcPivotItem In PivotItems - lvIndex = lvIndex + Lo1 - With lcPivotItem - If IsPivotItemVisibleOnError(PivotItem:=lcPivotItem) Then - RaisePivotItemVisibleError ParName:=lcPivotField.Name - End If - If SelectedOnly Then - If .Visible Then - Set laVector(lvIndex) = lcPivotItem - lvCount = lvCount + Lo1 - End If - Else - Set laVector(lvIndex) = lcPivotItem - lvCount = lvCount + Lo1 - End If - End With - Next - - Else - 'nur ein einzelnes PageField ausgewählt - ReDim laVector(Lo1 To Lo1) - If lcPivotField.DataType = XlPivotFieldDataType.xlDate Then - lvFieldDate = lcPivotField.DataRange.Value - For Each lcPivotItem In PivotItems - lvItemDate = GetDateFromPivotItemValue(PivotItemValue:=lcPivotItem.Value) - If lvItemDate = lvFieldDate Then - lvCount = lvCount + Lo1 - Set laVector(lvCount) = lcPivotItem - End If - Next - Else - For Each lcPivotItem In PivotItems - If lcPivotItem.Visible Then - lvCount = lvCount + Lo1 - Set laVector(lvCount) = lcPivotItem - Exit For - End If - Next - End If - - End If - - If lvCount > Lo0 Then - - GetPivotItemPageVisibleVector = GetVectorFromVector(Vector:=laVector _ - , Count:=lvCount _ - ) - End If - GetPivotItemPageVisibleVector.PivotFieldDataType = lcPivotField.DataType - - Set lcPivotItem = Nothing - Set lcPivotField = Nothing -End Function - -Public Function GetPivotItemRowVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" - - ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemRowVisibleVectorOld) macht - ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten - ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt - ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 - ' aber vorher war's so, also lass ich es - - GetPivotItemRowVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlRowField) - -End Function - -Private Sub GetPivotItemRowVisibleVectorOldTest() - Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOldTest|Sub" - Dim piv As tyPivotItemsVector - Dim i As Variant - Dim pf As PivotField - Dim pi As PivotItem - Set pf = ActiveSheet.PivotTables(1).RowFields("Date") - piv = GetPivotItemRowVisibleVectorOld(pf.PivotItems) - For i = 1 To piv.Count - Set pi = piv.Items(i) -Debug.Print i, pf.Name, pi.Name, pf.Position - Next -End Sub -Public Function GetPivotItemRowVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOld|Function" - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotField As Excel.PivotField - Dim lcPivotTable As Excel.PivotTable - Dim laVector() As Excel.PivotItem - Dim lvCount As Long - Dim lvIndex As Long - - Set lcPivotField = PivotItems.Parent - Set lcPivotTable = lcPivotField.Parent - 'Debug.Print lcPivotField.Name - - With lcPivotTable.TableRange1 - ReDim laVector(.Row To .Row + .Rows.Count - Lo1) - End With - - For Each lcPivotItem In PivotItems - If IsPivotItemVisible(PivotItem:=lcPivotItem) Then - With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) - Set laVector(.Row) = lcPivotItem - lvCount = lvCount + Lo1 - End With - End If - Next - - GetPivotItemRowVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ - , Count:=lvCount _ - ) - - GetPivotItemRowVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType - - Set lcPivotItem = Nothing - Set lcPivotTable = Nothing - Set lcPivotField = Nothing -End Function - -Private Sub GetPivotItemRowColumnVisibleVectorTest() - Dim ltPivotItemsVector As tyPivotItemsVector - Dim lcPivotTable As Excel.PivotTable - Dim lcPivotField As Excel.PivotField - Dim lvOrientation As XlPivotFieldOrientation - - Set lcPivotTable = ActiveSheet.PivotTables(1) - Set lcPivotField = lcPivotTable.PivotFields("Host") - lvOrientation = lcPivotField.Orientation - - - ltPivotItemsVector = GetPivotItemRowColumnVisibleVector(lcPivotField.PivotItems, lvOrientation) -End Sub - -Public Function GetPivotItemRowColumnVisibleVector(PivotItems As Excel.PivotItems, PivotFieldOrientation As XlPivotFieldOrientation) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector|Function" - Dim lcArea As Excel.Range - Dim lcRange As Excel.Range - Dim lcPivotAxis As Excel.PivotAxis - Dim lcPivotCell As Excel.PivotCell - Dim lcPivotField As Excel.PivotField - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotLine As Excel.PivotLine - Dim lcPivotTable As Excel.PivotTable - Dim ltPivotItemsVector As tyPivotItemsVector - Dim lvAreaOK As Boolean - Dim lvAreaSize As Long - Dim lvCellsCount As Long - Dim lvIndex As Long - Dim lvPivotItemsCount As Long - Dim lvPosition As Long - - ' es werden die ItemNamen des PivotField ermittelt - ' die mit den Kriterien, die in den PivotFieldPivotItemAxes übereinstimmten - ' die ItemName werden von links nacch rechts bei Column und - ' und von oben nach unten bei Row ausgegeben - ' also so, wie sie eben in der PivotTable angezeigt werden - - Set lcPivotField = PivotItems.Parent - With lcPivotField - Set lcPivotTable = .Parent - lvPosition = .Position - End With - - If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then - Set lcPivotAxis = lcPivotTable.PivotRowAxis - - ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then - Set lcPivotAxis = lcPivotTable.PivotColumnAxis - Else - RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" - End If - - Set lcPivotLine = lcPivotAxis.PivotLines(Index:=Lo1) - Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) - Set lcPivotItem = lcPivotCell.PivotItem - - ' die Schrittweite und länge bestimmen, in denen jeweils über die Achse gehoppelt wird - - If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then - lvCellsCount = lcPivotField.DataRange.Rows.Count - lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Rows.Count - - ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then - lvCellsCount = lcPivotField.DataRange.Columns.Count - lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Columns.Count - - Else - RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" - End If - - For lvIndex = Lo1 To lvCellsCount Step lvAreaSize - Set lcPivotLine = lcPivotAxis.PivotLines(Index:=lvIndex) - ' das ist die Cell von PivotField - Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) - Set lcPivotItem = lcPivotCell.PivotItem - #If ccDebug Then - Debug.Print lcPivotItem.DataRange.Address - lcPivotItem.DataRange.Select - #End If - For Each lcArea In lcPivotItem.DataRange.Areas - #If ccDebug Then - lcArea.Select - #End If - lvAreaOK = False - If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then - If lcArea.Row = lcPivotCell.Range.Row Then - lvAreaOK = True - #If ccDebug Then - lcArea.Select - #End If - End If - ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then - If lcArea.Column = lcPivotCell.Range.Column Then - lvAreaOK = True - #If ccDebug Then - lcArea.Select - #End If - End If - Else - RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" - End If - If lvAreaOK Then - With ltPivotItemsVector - lvPivotItemsCount = lvPivotItemsCount + Lo1 - .Count = lvPivotItemsCount - ReDim Preserve .Items(Lo1 To .Count) - Set .Items(.Count) = lcPivotItem - End With - Exit For - End If - Next - Next - - ltPivotItemsVector.PivotFieldDataType = lcPivotField.DataType - - GetPivotItemRowColumnVisibleVector = ltPivotItemsVector - - Set lcPivotItem = Nothing - Set lcPivotTable = Nothing - Set lcPivotField = Nothing -End Function - -Public Function IsPivotItemVisible(PivotItem As Excel.PivotItem) As Boolean - Const ThisProcedure As String = ThisModule & "|IsPivotItemVisible|Function" - ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft - On Error Resume Next - IsPivotItemVisible = VBA.CBool(Not PivotItem.DataRange Is Nothing) -End Function - -Public Function IsPivotItemVisibleOnError(PivotItem As Excel.PivotItem) As Boolean - Const ThisProcedure As String = ThisModule & "|IsPivotItemVisibleOnError|Function" - Dim lvVisible As Boolean - On Error GoTo CatchError - lvVisible = PivotItem.Visible - IsPivotItemVisibleOnError = False - Exit Function -CatchError: - IsPivotItemVisibleOnError = True -End Function - -Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotItem, Count As Long) As tyPivotItemsVector - Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" - Dim lvIndex As Long - - If Count > Lo0 Then - With GetVectorFromVector - ReDim .Items(Lo1 To Count) - - For lvIndex = LBound(Vector) To UBound(Vector) - If Not Vector(lvIndex) Is Nothing Then - .Count = .Count + Lo1 - Set .Items(.Count) = Vector(lvIndex) - Set Vector(lvIndex) = Nothing - End If - Next - - If .Count <> Count Then - RaiseLogicError Source:="GetVectorFromVector" - End If - End With - End If -End Function - -Public Function GetPivotItemLabelRangeValue(PivotItem As Excel.PivotItem) As Variant - Const ThisProcedure As String = ThisModule & "|GetPivotItemLabelRangeValue|Function" - Dim lcPivotField As Excel.PivotField - Dim lvNumberFormat As String - - Set lcPivotField = PivotItem.Parent - With PivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) - If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDouble Then - On Error Resume Next - ' NumberFormat wirft bei ColumnFields einen Fehler - lvNumberFormat = lcPivotField.NumberFormat - On Error GoTo 0 - If VBA.InStr(lvNumberFormat, ConChrColon) > Lo0 Then - GetPivotItemLabelRangeValue = VBA.CDate(.Value) - Else - GetPivotItemLabelRangeValue = .Value - End If - Else - GetPivotItemLabelRangeValue = .Value - End If - - End With - - Set lcPivotField = Nothing -End Function - -Private Sub GetPivotItemAreasVisibleVectorSortedByPositionTest() - Dim ltVector As tyPivotItemAreasVector - ltVector = GetPivotItemAreasVisibleVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields("CPU").PivotItems) - -End Sub -Public Function GetPivotItemAreasVisibleVectorSortedByPosition(PivotItems As Excel.PivotItems) As tyPivotItemAreasVector - Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" - Dim lcArea As Excel.Range - Dim lcCell As Excel.Range - Dim lcPivotField As Excel.PivotField - Dim lcPivotItem As Excel.PivotItem - Dim lcPivotTable As Excel.PivotTable - Dim ltVector As tyPivotItemAreasVector - Dim lvAreaSize As Long - Dim lvCellsCount As Long - Dim lvCount As Long - Dim lvIndex As Long - Dim lvOrientation As XlPivotFieldOrientation - Dim lvPosition As Long - - ' die PivotFields sortiert nach ihrer Position zurück - - Set lcPivotField = PivotItems.Parent - lvOrientation = lcPivotField.Orientation - lvPosition = lcPivotField.Position - - Set lcPivotTable = lcPivotField.Parent - - If lvOrientation = XlPivotFieldOrientation.xlRowField Then - ' rows - lvAreaSize = Lo1 - lvCellsCount = GetPivotTableRowLabelRange(PivotTable:=lcPivotTable).Rows.Count - - With ltVector - For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize - Set lcCell = lcPivotField.DataRange.Offset(RowOffset:=lvIndex).Resize(RowSize:=Lo1) - #If ccDebug Then - lcCell.Select - #End If - Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem - lvCount = lvCount + Lo1 - ReDim Preserve .Items(Lo1 To lvCount) - With .Items(lvCount) - Set .PivotItem = lcPivotItem - End With - .Count = lvCount - Next - - End With - - ElseIf lvOrientation = XlPivotFieldOrientation.xlColumnField Then - ' Columns - lvAreaSize = lcPivotTable.DataFields.Count - lvCellsCount = GetPivotTableColumnLabelRange(PivotTable:=lcPivotTable).Columns.Count - - With ltVector - For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize - Set lcCell = lcPivotField.DataRange.Offset(ColumnOffset:=lvIndex).Resize(ColumnSize:=Lo1) - #If ccDebug Then - lcCell.Select - #End If - Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem - lvCount = lvCount + Lo1 - ReDim Preserve .Items(Lo1 To lvCount) - With .Items(lvCount) - Set .PivotItem = lcPivotItem - End With - .Count = lvCount - Next - - End With - - + lvArrayType = VBA.VarType(Var) And VBA.VbVarType.vbArray + lvVarType = VBA.VarType(Var) And Not VBA.VbVarType.vbArray + + Select Case lvVarType + Case VBA.VbVarType.vbEmpty ' 0 Empty (nicht initialisiert) + VarTypeName = "Empty" + Case VBA.VbVarType.vbNull ' 1 Null (keine gültigen Daten) + VarTypeName = "Null" + Case VBA.VbVarType.vbInteger ' 2 Ganzzahl (Integer) + VarTypeName = "Integer" + Case VBA.VbVarType.vbLong ' 3 Ganzzahl (Long) + VarTypeName = "Long" + Case VBA.VbVarType.vbSingle ' 4 Fließkommazahl einfacher Genauigkeit + VarTypeName = "Single" + Case VBA.VbVarType.vbDouble ' 5 Fließkommazahl doppelter Genauigkeit + VarTypeName = "Double" + Case VBA.VbVarType.vbCurrency ' 6 Währungsbetrag (Currency) + VarTypeName = "Currency" + Case VBA.VbVarType.vbDate ' 7 Datumswert (Date) + VarTypeName = "Date" + Case VBA.VbVarType.vbString ' 8 Zeichenfolge (String) + VarTypeName = "String" + Case VBA.VbVarType.vbObject ' 9 Objekt + VarTypeName = "Object" + Case VBA.VbVarType.vbError ' 10 Fehlerwert + VarTypeName = "Error" + Case VBA.VbVarType.vbBoolean ' 11 Boolescher Wert (Boolean) + VarTypeName = "Boolean" + Case VBA.VbVarType.vbVariant ' 12 Variant (nur bei Datenfeldern mit Variant-Werten) + VarTypeName = "Variant" + Case VBA.VbVarType.vbDataObject ' 13 Ein Datenzugriffsobjekt + VarTypeName = "DataObject" + Case VBA.VbVarType.vbDecimal ' 14 Dezimalwert + VarTypeName = "Decimal" + Case VBA.VbVarType.vbByte ' 17 Byte-Wert + VarTypeName = "Byte" + Case Else + On Error GoTo 0 + RaiseLogicError Source:="VarTypeName" + End Select + If lvArrayType = VBA.VbVarType.vbArray Then ' 8192 Datenfeld (Array) + VarTypeName = VarTypeName & "()" End If - - - GetPivotItemAreasVisibleVectorSortedByPosition = ltVector - End Function - -Private Sub SwapPivotItemArea(LO As tyPivotItemArea, HI As tyPivotItemArea) - Dim ltPivotItemArea As tyPivotItemArea - - ltPivotItemArea = HI - HI = LO - LO = ltPivotItemArea - #If ccDebug Then - LO.Area.Select ' muss jetzt LO sein - HI.Area.Select ' muss jetzt HI sein - #End If - -End Sub - - diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt index 9427d5dbde..6a2b80dd81 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt @@ -1,154 +1,29 @@ -Attribute VB_Name = "vbFnPivotTablePri" +Attribute VB_Name = "vbXlPivotAxisPri" Option Explicit Option Private Module -Private Const ThisModule As String = ThisProject & "|vbFnPivotTablePri" +Private Const ThisModule As String = ThisProject & "|vbXlPivotAxisPri" -Public Function GetPivotTable(PivotTables As Excel.PivotTables _ - , NameValue As tyNameValue _ - ) As Excel.PivotTable - Const ThisProcedure As String = ThisModule & "|GetPivotTable|Function" - Dim lvIndex As Long - - NameValue.Value = GetLongOrStringValue(NameValue:=NameValue) - - If VBA.VarType(VarName:=NameValue.Value) = VBA.VbVarType.vbString Then - Set GetPivotTable = GetPivotTableOrNothing(PivotTables:=PivotTables, Index:=NameValue.Value) - If GetPivotTable Is Nothing Then - RaiseCollectionItemItemIsNothing NameValue:=NameValue _ - , Collection:=PivotTables - End If - Else - lvIndex = GetCollectionItemIndex(NameValue:=NameValue _ - , Collection:=PivotTables _ - , Count:=PivotTables.Count _ - ) - Set GetPivotTable = GetPivotTableOrNothing(PivotTables:=PivotTables _ - , Index:=PivotTables.Count + Lo1 - lvIndex _ - ) - End If -End Function - -Public Function GetPivotTableByRange(PivotTableRange As Excel.Range) As Excel.PivotTable - Const ThisProcedure As String = ThisModule & "|GetPivotTableByRange|Function" - Dim lcCell As Excel.Range - - For Each lcCell In PivotTableRange - 'Debug.Print lcCell.Address - Set GetPivotTableByRange = GetRangePivotTableOrNothing(Range:=lcCell) - If Not GetPivotTableByRange Is Nothing Then - Exit For - End If - Next - If GetPivotTableByRange Is Nothing Then - RaiseRangeContainsNoPivotTable PivotTableRange:=PivotTableRange - End If - - Set lcCell = Nothing -End Function - -Private Sub GetPivotTableColumnLabelRangeTest() - GetPivotTableColumnLabelRange(ActiveCell.PivotTable).Select +Private Sub GetPivotAxisColumnDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotAxisColumnDataRangeTest|Sub" +Debug.Print GetPivotAxisColumnDataRange(ActiveCell.PivotTable).Address End Sub -Public Function GetPivotTableColumnLabelRange(PivotTable As Excel.PivotTable) As Excel.Range - With PivotTable - With GetIntersectOrNothing(.ColumnRange.EntireRow, .DataBodyRange.EntireColumn) - Set GetPivotTableColumnLabelRange = .Resize(RowSize:=.Rows.Count - Lo1).Offset(RowOffset:=Lo1) - End With - End With +Public Function GetPivotAxisColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotAxisColumnDataRange|Function" + Set GetPivotAxisColumnDataRange = GetPivotLinesRegularRange(PivotLines:=PivotTable.PivotColumnAxis.PivotLines) End Function -Private Sub GetPivotTableRowLabelRangeTest() - GetPivotTableRowLabelRange(ActiveCell.PivotTable).Select +Private Sub GetPivotAxisRowDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotAxisRowDataRangeTest|Sub" +Debug.Print GetPivotAxisRowDataRange(ActiveCell.PivotTable).Address End Sub -Public Function GetPivotTableRowLabelRange(PivotTable As Excel.PivotTable) As Excel.Range - With PivotTable - Set GetPivotTableRowLabelRange = GetIntersectOrNothing(.RowRange.EntireColumn, .DataBodyRange.EntireRow) - End With -End Function - -Public Function GetPivotTablePivotFields(PivotTable As Excel.PivotTable _ - , PivotFieldOrientation As Excel.XlPivotFieldOrientation _ - ) As Excel.PivotFields - Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotFields|Function" - - With PivotTable - Select Case PivotFieldOrientation - Case XlPivotFieldOrientation.xlColumnField - Set GetPivotTablePivotFields = .ColumnFields - - Case XlPivotFieldOrientation.xlDataField - Set GetPivotTablePivotFields = .DataFields - - Case XlPivotFieldOrientation.xlHidden - Set GetPivotTablePivotFields = .HiddenFields - - Case XlPivotFieldOrientation.xlPageField - Set GetPivotTablePivotFields = .PageFields - - Case XlPivotFieldOrientation.xlRowField - Set GetPivotTablePivotFields = .RowFields - - Case Else - Set GetPivotTablePivotFields = .PivotFields - - End Select - End With -End Function - -Public Function GetPivotTables(Worksheet As Excel.Worksheet) As Excel.PivotTables - Const ThisProcedure As String = ThisModule & "|GetPivotTables|Function" - - Set GetPivotTables = GetPivotTablesOrNothing(Worksheet:=Worksheet) - If GetPivotTables Is Nothing Then - RaiseWorksheetPivotTablesIsNothing Worksheet:=Worksheet - End If -End Function - -Public Function PFPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PFPTR|Function" - Set PFPTR = ActiveWorkbook.Worksheets("PF").PivotTables(1).TableRange1 -End Function -Public Function PCFPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PCFPTR|Function" - Set PCFPTR = ActiveWorkbook.Worksheets("PCF").PivotTables(1).TableRange1 -End Function -Public Function PDFPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PDFPTR|Function" - Set PDFPTR = ActiveWorkbook.Worksheets("PDF").PivotTables(1).TableRange1 -End Function -Public Function PPFPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PPFPTR|Function" - Set PPFPTR = ActiveWorkbook.Worksheets("PPF").PivotTables(1).TableRange1 -End Function -Public Function PRFPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PRFPTR|Function" - Set PRFPTR = ActiveWorkbook.Worksheets("PRF").PivotTables(1).TableRange1 -End Function -Public Function PSPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PSPTR|Function" - Set PSPTR = ActiveWorkbook.Worksheets("PS").PivotTables(1).TableRange1 -End Function -Public Function PTPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PTPTR|Function" - Set PTPTR = ActiveWorkbook.Worksheets("PT").PivotTables(1).TableRange1 -End Function -Public Function PYPTR() As Excel.Range - Const ThisProcedure As String = ThisModule & "|PYPTR|Function" - Set PYPTR = ActiveWorkbook.Worksheets("PY").PivotTables(1).TableRange1 -End Function - -Private Function WorksheetPTR(WorksheetName As String) As Excel.Worksheet - Const ThisProcedure As String = ThisModule & "|WorksheetPTR|Function" - Dim lcWorksheet As Excel.Worksheet - Dim lcPivotTable As Excel.PivotTable - - Set lcWorksheet = ActiveWorkbook.Worksheets(Index:=WorksheetName) - With lcWorksheet - .Activate - Set lcPivotTable = .PivotTables(1) - End With - Set WorksheetPTR = lcPivotTable.TableRange1 - Set lcPivotTable = Nothing - Set lcWorksheet = Nothing +Public Function GetPivotAxisRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotAxisRowDataRange|Function" + Dim lcPivotField As Excel.PivotField + For Each lcPivotField In PivotTable.RowFields + If lcPivotField.LayoutForm <> XlLayoutFormType.xlTabular Then + RaisePivotTableNotClassicLayout + End If + Next + Set GetPivotAxisRowDataRange = GetPivotLinesRegularRange(PivotLines:=PivotTable.PivotRowAxis.PivotLines) End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt index 941c1f994a..eb33acfc0a 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt @@ -1,61 +1,196 @@ -Attribute VB_Name = "vbVarTypeNamePri" +Attribute VB_Name = "vbXlPivotFieldPri" Option Explicit Option Private Module -Private Const ThisModule As String = ThisProject & "|vbVarTypeNamePri" +Private Const ThisModule As String = ThisProject & "|vbXlPivotFieldPri" -Private Sub VarTypeNameTest() - Const ThisProcedure As String = ThisModule & "|VarTypeNameTest|Sub" - Dim v As Boolean -Debug.Print VarTypeName(v) +Public Function GetPivotFieldDataRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeOrNothing|Function" + On Error Resume Next + Set GetPivotFieldDataRangeOrNothing = PivotField.DataRange +End Function + +Public Function GetPivotFieldOrNothing(PivotFields As Excel.PivotFields, Index As Variant) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothing|Function" + On Error Resume Next + Set GetPivotFieldOrNothing = PivotFields.Item(Index:=Index) +End Function + +Public Function GetPivotFieldPosition(PivotField As Excel.PivotField) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothing|Function" + On Error Resume Next + GetPivotFieldPosition = PivotField.Position +End Function + +Private Sub GetPivotFieldsCountTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldsCountTest|Sub" + Dim pt As Excel.PivotTable + Set pt = ActiveSheet.PivotTables(1) +Debug.Print GetPivotFieldsCount(pt.ColumnFields, xlColumnField) +End Sub +Public Function GetPivotFieldsCount(PivotFields As Excel.PivotFields, PivotFieldOrientation As XlPivotFieldOrientation) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotFieldsCount|Function" + + If PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + GetPivotFieldsCount = PivotFields.Count + (GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=PivotFields.Parent) > Lo0) + Else + GetPivotFieldsCount = PivotFields.Count + End If +End Function + +Private Sub GetPivotFieldPivotAxisTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPivotAxisTest|Sub" + Dim lcPivotAxis As Excel.PivotAxis + Set lcPivotAxis = GetPivotFieldPivotAxis(PivotField:=ActiveCell.PivotField) +End Sub +Public Function GetPivotFieldPivotAxis(PivotField As Excel.PivotField) As Excel.PivotAxis + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPivotAxis|Function" + Dim lcPivotTable As Excel.PivotTable + + With PivotField + Set lcPivotTable = PivotField.Parent + Select Case .Orientation + Case XlPivotFieldOrientation.xlColumnField + Set GetPivotFieldPivotAxis = lcPivotTable.PivotColumnAxis + + Case XlPivotFieldOrientation.xlRowField + Set GetPivotFieldPivotAxis = lcPivotTable.PivotRowAxis + + Case Else + ' eigentlich müpßte hier ein Fehler kommen + + End Select + End With +End Function + +Private Sub GetPivotFieldDataRangeDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeDataRangeTest|Sub" +Debug.Print GetPivotFieldDataRangeDataRange(ActiveCell.PivotField).Address +End Sub +Public Function GetPivotFieldDataRangeDataRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeDataRange|Function" + Dim lcCell As Excel.Range + Dim lcDataRange As Excel.Range + + For Each lcCell In PivotField.DataRange + lcCell.Select + With lcCell.PivotCell + If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ + Or .PivotCellType = xlPivotCellPivotItem Then + ' xlPivotCellDataField kommt nur bei der PivotColumnAxis vor + ' xlPivotCellPivotItem bei beiden PivotAxes + If lcDataRange Is Nothing Then + Set lcDataRange = .Range + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) + End If + End If + End With + Next + Set GetPivotFieldDataRangeDataRange = lcDataRange +End Function + +Private Function IsPivotFieldPositionReadable(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotFieldPositionReadable|Function" + Dim lvPosition As Long + On Error GoTo CatchError + lvPosition = PivotField.Position + IsPivotFieldPositionReadable = True +CatchError: + IsPivotFieldPositionReadable = False +End Function +Private Sub GetPivotColumnFieldWithHighestPositionTest() + Const ThisProcedure As String = ThisModule & "|GetPivotColumnFieldWithHighestPositionTest|Sub" +Debug.Print GetPivotFieldOrNothingWithHighestPosition(ActiveCell.PivotTable.PageFields, XlPivotFieldOrientation.xlPageField).Name End Sub +Public Function GetPivotFieldOrNothingWithHighestPosition(PivotFields As Excel.PivotFields, PivotFieldOrientation As XlPivotFieldOrientation) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothingWithHighestPosition|Function" + Dim lcPivotField As Excel.PivotField + Dim lvPosition As Long + Dim lvColumnDataFieldPosition As Long -Public Function VarTypeName(Var As Variant) As String - Const ThisProcedure As String = ThisModule & "|VarTypeName|Function" - Dim lvArrayType As VBA.VbVarType - Dim lvVarType As VBA.VbVarType - - lvArrayType = VBA.VarType(Var) And VBA.VbVarType.vbArray - lvVarType = VBA.VarType(Var) And Not VBA.VbVarType.vbArray - - Select Case lvVarType - Case VBA.VbVarType.vbEmpty ' 0 Empty (nicht initialisiert) - VarTypeName = "Empty" - Case VBA.VbVarType.vbNull ' 1 Null (keine gültigen Daten) - VarTypeName = "Null" - Case VBA.VbVarType.vbInteger ' 2 Ganzzahl (Integer) - VarTypeName = "Integer" - Case VBA.VbVarType.vbLong ' 3 Ganzzahl (Long) - VarTypeName = "Long" - Case VBA.VbVarType.vbSingle ' 4 Fließkommazahl einfacher Genauigkeit - VarTypeName = "Single" - Case VBA.VbVarType.vbDouble ' 5 Fließkommazahl doppelter Genauigkeit - VarTypeName = "Double" - Case VBA.VbVarType.vbCurrency ' 6 Währungsbetrag (Currency) - VarTypeName = "Currency" - Case VBA.VbVarType.vbDate ' 7 Datumswert (Date) - VarTypeName = "Date" - Case VBA.VbVarType.vbString ' 8 Zeichenfolge (String) - VarTypeName = "String" - Case VBA.VbVarType.vbObject ' 9 Objekt - VarTypeName = "Object" - Case VBA.VbVarType.vbError ' 10 Fehlerwert - VarTypeName = "Error" - Case VBA.VbVarType.vbBoolean ' 11 Boolescher Wert (Boolean) - VarTypeName = "Boolean" - Case VBA.VbVarType.vbVariant ' 12 Variant (nur bei Datenfeldern mit Variant-Werten) - VarTypeName = "Variant" - Case VBA.VbVarType.vbDataObject ' 13 Ein Datenzugriffsobjekt - VarTypeName = "DataObject" - Case VBA.VbVarType.vbDecimal ' 14 Dezimalwert - VarTypeName = "Decimal" - Case VBA.VbVarType.vbByte ' 17 Byte-Wert - VarTypeName = "Byte" - Case Else - On Error GoTo 0 - RaiseLogicError Source:="VarTypeName" - End Select - If lvArrayType = VBA.VbVarType.vbArray Then ' 8192 Datenfeld (Array) - VarTypeName = VarTypeName & "()" + If PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + lvColumnDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=PivotFields.Parent) End If + + For Each lcPivotField In PivotFields + With lcPivotField + If .Position <> lvColumnDataFieldPosition Then + If lvPosition < .Position Then + lvPosition = .Position + Set GetPivotFieldOrNothingWithHighestPosition = lcPivotField + End If + End If + End With + Next +End Function + +Private Sub GetPivotFieldByPositionTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPositionTest|Sub" +Debug.Print GetPivotFieldByPosition(ActiveCell.PivotTable.RowFields, 1).Name +End Sub +Public Function GetPivotFieldByPosition(PivotFields As Excel.PivotFields _ + , Optional Position As Double = 1 _ + ) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + + On Error GoTo CatchError + + For Each lcPivotField In PivotFields + If lcPivotField.Position = Position Then + Set GetPivotFieldByPosition = lcPivotField + Exit For + End If + Next + + GoSub CleanUp + Exit Function + +CleanUp: + Set lcPivotField = Nothing + Return + +CatchError: + GoSub CleanUp +End Function + +Private Sub GetPivotFieldOrientationTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientationTest|Sub" +Debug.Print GetPivotFieldOrientation(ActiveCell.PivotTable.DataFields(1)) +End Sub +Public Function GetPivotFieldOrientation(PivotField As Excel.PivotField) As XlPivotFieldOrientation + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientation|Function" + Dim lcPivotTable As Excel.PivotTable + + With PivotField + Select Case .Orientation + Case XlPivotFieldOrientation.xlColumnField _ + , XlPivotFieldOrientation.xlDataField _ + , XlPivotFieldOrientation.xlPageField _ + , XlPivotFieldOrientation.xlRowField + GetPivotFieldOrientation = .Orientation + + Case Else + + ' die Orientation ist beim Ausführen von WorksheetFunktionen immer lxHidden + ' deshalb muss es dann so festgestellt werden + + Set lcPivotTable = PivotField.Parent + If Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.ColumnFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlColumnField + ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.DataFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlDataField + ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.PageFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlPageField + ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.RowFields, Index:=.Name) Is Nothing Then + GetPivotFieldOrientation = XlPivotFieldOrientation.xlRowField + Else + GetPivotFieldOrientation = XlPivotFieldOrientation.xlHidden + End If + End Select + End With + + Set lcPivotTable = Nothing End Function + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt index 383e0c2c6b..5ac2be1baa 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt @@ -1,26 +1,158 @@ -Attribute VB_Name = "vbVBAAllPri" +Attribute VB_Name = "vbXlPivotItemPri" Option Explicit Option Private Module -Public Const ThisProject As String = "ATGfn" -Private Const ThisModule As String = ThisProject & "|ideVBAAllPri" +Private Const ThisModule As String = ThisProject & "|vbXlPivotItemPri" -'Public Const EmptyDate As Date = #12:00:00 AM#: ' entspricht #00:00:00# -'Public Const EmptyTime As Date = #12:00:00 AM# -'Public Const EmptyString As String = "" +Public Function GetPivotItemOrNothing(PivotItems As Excel.PivotItems, Index As Variant) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemOrNothing|Function" + On Error Resume Next + Set GetPivotItemOrNothing = PivotItems.Item(Index:=Index) +End Function -Public Function GetccDebug() As Boolean - Const ThisProcedure As String = ThisModule & "|GetccDebug|Function" +Public Function GetPivotItemDataRangeOrNothing(PivotItem As Excel.PivotItem) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemDataRangeOrNothing|Function" + On Error Resume Next + Set GetPivotItemDataRangeOrNothing = PivotItem.DataRange +End Function - On Error GoTo CatchError +Public Function GetPivotItemPosition(PivotItem As Excel.PivotItem) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotItemOrNothing|Function" + On Error Resume Next + GetPivotItemPosition = PivotItem.Position +End Function - #If ccDebug Then - GetccDebug = True - #Else - GetccDebug = False - #End If - Exit Function +Public Function GetPivotItemsDataRange(PivotItems As Excel.PivotItems) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemsDataRange|Function" + Dim lcDataRange As Excel.Range + Dim lcPivotItem As Excel.PivotItem -CatchError: -' vbErr.LogReraise Source:=ThisProcedure + For Each lcPivotItem In PivotItems + 'Debug.Print lcPivotField.Name, lcPivotItem.Name + If Not GetPivotItemDataRangeOrNothing(PivotItem:=lcPivotItem) Is Nothing Then + If lcDataRange Is Nothing Then + Set lcDataRange = lcPivotItem.DataRange + Else + Set lcDataRange = Application.Union(lcDataRange _ + , lcPivotItem.DataRange _ + ) + End If + 'Debug.Print lcDataRange.Address + End If + Next + Set GetPivotItemsDataRange = lcDataRange End Function + +Private Sub GetDateFromPivotItemValueTest() + Const ThisProcedure As String = ThisModule & "|GetDateFromPivotItemValueTest|Sub" +Debug.Print GetDateFromPivotItemValue("2/3/2011") +Debug.Print GetDateFromPivotItemValue("2/3/2011 12:34:56") +End Sub +Public Function GetDateFromPivotItemValue(PivotItemValue As String) As Date + Const ThisProcedure As String = ThisModule & "|GetDateFromPivotItemValue|Function" + Dim laDateTime As Variant + Dim laDate As Variant + Dim lvDate As Date + + laDateTime = VBA.Split(PivotItemValue, ConChrSpace) + laDate = VBA.Split(laDateTime(Lo0), ConChrSlash) + lvDate = VBA.DateSerial(Year:=VBA.CInt(laDate(Lo2)), Month:=VBA.CInt(laDate(Lo1)), Day:=VBA.CInt(laDate(Lo0))) + If UBound(laDateTime) > LBound(laDateTime) Then + lvDate = lvDate + VBA.TimeValue(laDateTime(Lo1)) + End If + GetDateFromPivotItemValue = lvDate +End Function + +Private Sub PivotCellValuesColumnRangeTest() + Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnRangeTest|Sub" +Debug.Print PivotCellValuesColumnRange(ActiveCell.PivotTable).Address +End Sub +Public Function PivotCellValuesColumnRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnRange|Function" + Dim lcCell As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotFields As Excel.PivotFields + Dim lcRange As Excel.Range + + Set lcPivotFields = PivotTable.ColumnFields + With lcPivotFields + Set lcPivotField = .Item(Index:=.Count) + End With + + For Each lcCell In lcPivotField.DataRange + With lcCell + If .PivotCell.PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + If lcRange Is Nothing Then + Set lcRange = lcCell + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcCell) + End If + End If + End With + Next + + Set PivotCellValuesColumnRange = lcRange +End Function + +Private Sub PivotCellValuesRowRangeTest() + Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowRangeTest|Sub" +Debug.Print PivotCellValuesRowRange(ActiveCell.PivotTable).Address +End Sub +Public Function PivotCellValuesRowRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowRange|Function" + Dim lcCell As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotFields As Excel.PivotFields + Dim lcRange As Excel.Range + + Set lcPivotFields = PivotTable.RowFields + With lcPivotFields + Set lcPivotField = .Item(Index:=.Count) + End With + + For Each lcCell In lcPivotField.DataRange + With lcCell + If .PivotCell.PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + If lcRange Is Nothing Then + Set lcRange = lcCell + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcCell) + End If + End If + End With + Next + + Set PivotCellValuesRowRange = lcRange +End Function + +Private Sub GetPivotItemPivotCellValueRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemPivotCellValueRangeTest|Sub" +Debug.Print GetPivotItemPivotCellValueRange(ActiveCell.PivotTable.RowFields(1).PivotItems(1)).Address +End Sub +Public Function GetPivotItemPivotCellValueRange(PivotItem As Excel.PivotItem) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemPivotCellValueRange|Function" + Dim lcCell As Excel.Range + Dim lcRange As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotLine As Excel.PivotLine + + Set lcPivotField = PivotItem.Parent + With lcPivotField + Select Case .Orientation + Case XlPivotFieldOrientation.xlColumnField + Set lcRange = GetPivotAxisRowDataRange(PivotTable:=lcPivotField.Parent) + + Case XlPivotFieldOrientation.xlRowField + Set lcRange = GetPivotAxisColumnDataRange(PivotTable:=lcPivotField.Parent) + + Case Else + + End Select + + End With + + Set GetPivotItemPivotCellValueRange = Application.Intersect(Arg1:=PivotItem.DataRange _ + , Arg2:=lcRange.EntireColumn _ + ) +End Function + diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt index 6a2b80dd81..fd082e3bb6 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt @@ -1,29 +1,178 @@ -Attribute VB_Name = "vbXlPivotAxisPri" +Attribute VB_Name = "vbXlPivotLinePri" Option Explicit Option Private Module -Private Const ThisModule As String = ThisProject & "|vbXlPivotAxisPri" +Private Const ThisModule As String = ThisProject & "|vbXlPivotLinePri" + +Private Sub GetPivotLinesRegularPivotFieldsDictionaryTest() + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularPivotFieldsDictionaryTest|Sub" + Dim lcDict As Scripting.Dictionary + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotTable As Excel.PivotTable + Dim lcRange As Excel.Range + + Set lcPivotTable = ActiveCell.PivotTable +' Set lcPivotAxis = lcPivotTable.PivotColumnAxis + Set lcPivotAxis = lcPivotTable.PivotRowAxis + Set lcRange = GetPivotLinesRegularPivotFieldsDictionary(PivotLines:=lcPivotAxis.PivotLines) +Debug.Print lcRange.Address + lcRange.Select -Private Sub GetPivotAxisColumnDataRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotAxisColumnDataRangeTest|Sub" -Debug.Print GetPivotAxisColumnDataRange(ActiveCell.PivotTable).Address End Sub -Public Function GetPivotAxisColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotAxisColumnDataRange|Function" - Set GetPivotAxisColumnDataRange = GetPivotLinesRegularRange(PivotLines:=PivotTable.PivotColumnAxis.PivotLines) + +Public Function GetPivotLinesRegularPivotFieldsDictionary(PivotLines As Excel.PivotLines) As Scripting.Dictionary + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularPivotFieldsDictionary|Function" + Dim lcDataRange As Excel.Range + Dim lcDictionary As Scripting.Dictionary + Dim lcPivotCell As Excel.PivotCell + Dim lcPivotLine As Excel.PivotLine + + Set lcDictionary = New Scripting.Dictionary + + For Each lcPivotLine In PivotLines + With lcPivotLine + If .LineType = XlPivotLineType.xlPivotLineRegular Then + ' fälschlicherweise sind auch Zeilen vom Typ Regular, + ' wenn beim letzten RowField noch eine benutzerdefinierte + ' Funktion ausgewählt ist. + ' Deshalb müssen noch die PivotLineCells abgegrast werden + ' Die enthalten nämlich bei benutzerdefinierten Funktionen + ' + For Each lcPivotCell In .PivotLineCells + With lcPivotCell + ' es ist egal, welche Zelle genommen wird, da beim Typ Regular + ' alle Zellen vom Typ Regular sind + If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ + Or .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + ' xlPivotCellDataField kommt nur bei PivotLines der PivotColumnAxis vor + ' xlPivotCellPivotItem bei beiden PivotAxes + If lcDataRange Is Nothing Then + Set lcDataRange = .Range + Exit For + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) + Exit For + End If + End If + End With + Next + End If + End With + Next + + Set GetPivotLinesRegularPivotFieldsDictionary = lcDataRange End Function -Private Sub GetPivotAxisRowDataRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotAxisRowDataRangeTest|Sub" -Debug.Print GetPivotAxisRowDataRange(ActiveCell.PivotTable).Address +Private Sub GetPivotLinesRegularRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularRangeTest|Sub" + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotTable As Excel.PivotTable + Dim lcRange As Excel.Range + + Set lcPivotTable = ActiveCell.PivotTable +' Set lcPivotAxis = lcPivotTable.PivotColumnAxis + Set lcPivotAxis = lcPivotTable.PivotRowAxis + Set lcRange = GetPivotLinesRegularRange(PivotLines:=lcPivotAxis.PivotLines) +Debug.Print lcRange.Address + lcRange.Select + End Sub -Public Function GetPivotAxisRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotAxisRowDataRange|Function" - Dim lcPivotField As Excel.PivotField - For Each lcPivotField In PivotTable.RowFields - If lcPivotField.LayoutForm <> XlLayoutFormType.xlTabular Then - RaisePivotTableNotClassicLayout - End If + +Public Function GetPivotLinesRegularRange(PivotLines As Excel.PivotLines) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularRange|Function" + Dim lcDataRange As Excel.Range + Dim lcPivotCell As Excel.PivotCell + Dim lcPivotLine As Excel.PivotLine + + For Each lcPivotLine In PivotLines + With lcPivotLine + If .LineType = XlPivotLineType.xlPivotLineRegular Then + ' fälschlicherweise sind auch Zeilen vom Typ Regular, + ' wenn beim letzten RowField noch eine benutzerdefinierte + ' Funktion ausgewählt ist. + ' Deshalb müssen noch die PivotLineCells abgegrast werden + ' Die enthalten nämlich bei benutzerdefinierten Funktionen + ' + For Each lcPivotCell In .PivotLineCells + With lcPivotCell + ' es ist egal, welche Zelle genommen wird, da beim Typ Regular + ' alle Zellen vom Typ Regular sind + If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ + Or .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + ' xlPivotCellDataField kommt nur bei PivotLines der PivotColumnAxis vor + ' xlPivotCellPivotItem bei beiden PivotAxes + If lcDataRange Is Nothing Then + Set lcDataRange = .Range + Exit For + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) + Exit For + End If + End If + End With + Next + End If + End With + Next + + Set GetPivotLinesRegularRange = lcDataRange +End Function + +Private Sub GetPivotColumnLineNameTest() + Const ThisProcedure As String = ThisModule & "|GetPivotColumnLineNameTest|Sub" +Debug.Print GetPivotColumnLineName(ActiveCell.PivotCell.PivotColumnLine) +End Sub +Public Function GetPivotColumnLineName(PivotLine As Excel.PivotLine) As String + Const ThisProcedure As String = ThisModule & "|GetPivotColumnLineName|Function" + Dim lcPivotCell As Excel.PivotCell + Dim lvName As String + + With PivotLine + For Each lcPivotCell In .PivotLineCells + With lcPivotCell + If .PivotCellType = xlPivotCellDataField Then + lvName = lcPivotCell.DataField.Name + + ElseIf .PivotCellType = xlPivotCellPivotField Then + lvName = lcPivotCell.PivotItem.Name + + ElseIf .PivotCellType = xlPivotCellPivotItem Then + lvName = lcPivotCell.PivotItem.Name + End If + End With + If VBA.Len(GetPivotColumnLineName) = Lo0 Then + GetPivotColumnLineName = lvName + Else + GetPivotColumnLineName = GetPivotColumnLineName & " - " & lvName + End If + Next + End With +End Function + +Private Sub GetPivotLineRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotLineRangeTest|Sub" + Dim lcPivotLine As Excel.PivotLine + Dim lvIndex As Long + + For Each lcPivotLine In ActiveCell.PivotTable.PivotRowAxis.PivotLines + lvIndex = lvIndex + Lo1 +Debug.Print lvIndex, GetPivotLineRange(lcPivotLine).Address + Next +End Sub +Private Function GetPivotLineRange(PivotLine As Excel.PivotLine) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotLineRange|Function" + Dim lcPivotLineCell As Excel.PivotCell + Dim lcRange As Excel.Range + + For Each lcPivotLineCell In PivotLine.PivotLineCells + With lcPivotLineCell + 'Debug.Print .Range.Address, PivotCellTypeName(.PivotCellType) + If lcRange Is Nothing Then + Set lcRange = .Range + Else + Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=.Range) + End If + End With Next - Set GetPivotAxisRowDataRange = GetPivotLinesRegularRange(PivotLines:=PivotTable.PivotRowAxis.PivotLines) + Set GetPivotLineRange = lcRange End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt index eb33acfc0a..0ed3824088 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt @@ -1,196 +1,272 @@ -Attribute VB_Name = "vbXlPivotFieldPri" +Attribute VB_Name = "vbXlPivotTablePri" Option Explicit Option Private Module -Private Const ThisModule As String = ThisProject & "|vbXlPivotFieldPri" +Private Const ThisModule As String = ThisProject & "|vbXlPivotTablePri" -Public Function GetPivotFieldDataRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeOrNothing|Function" +Public Function GetPivotTableOrNothing(PivotTables As Excel.PivotTables, Index As Variant) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothing|Function" On Error Resume Next - Set GetPivotFieldDataRangeOrNothing = PivotField.DataRange + Set GetPivotTableOrNothing = PivotTables.Item(Index:=Index) End Function -Public Function GetPivotFieldOrNothing(PivotFields As Excel.PivotFields, Index As Variant) As Excel.PivotField - Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothing|Function" +Public Function GetPivotTablesOrNothing(Worksheet As Excel.Worksheet) As Excel.PivotTables + Const ThisProcedure As String = ThisModule & "|GetPivotTablesOrNothing|Function" On Error Resume Next - Set GetPivotFieldOrNothing = PivotFields.Item(Index:=Index) + Set GetPivotTablesOrNothing = Worksheet.PivotTables End Function -Public Function GetPivotFieldPosition(PivotField As Excel.PivotField) As Long - Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothing|Function" +Public Function GetPivotTableOrNothingFromChart(Chart As Excel.Chart) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothingFromChart|Function" + + With Chart + If Not .PivotLayout Is Nothing Then + Set GetPivotTableOrNothingFromChart = .PivotLayout.PivotTable + End If + End With +End Function + +Public Function GetPivotTableOrNothingFromRange(Range As Excel.Range) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothingFromRange|Function" On Error Resume Next - GetPivotFieldPosition = PivotField.Position + Set GetPivotTableOrNothingFromRange = Range.PivotTable End Function -Private Sub GetPivotFieldsCountTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldsCountTest|Sub" - Dim pt As Excel.PivotTable - Set pt = ActiveSheet.PivotTables(1) -Debug.Print GetPivotFieldsCount(pt.ColumnFields, xlColumnField) -End Sub -Public Function GetPivotFieldsCount(PivotFields As Excel.PivotFields, PivotFieldOrientation As XlPivotFieldOrientation) As Long - Const ThisProcedure As String = ThisModule & "|GetPivotFieldsCount|Function" +Public Function IsPivotTablePivotTable(PivotTable1 As Excel.PivotTable, PivotTable2 As Excel.PivotTable) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotTablePivotTable|Function" + Dim lcWorksheet1 As Excel.Worksheet + Dim lcWorksheet2 As Excel.Worksheet - If PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then - GetPivotFieldsCount = PivotFields.Count + (GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=PivotFields.Parent) > Lo0) - Else - GetPivotFieldsCount = PivotFields.Count + If Not PivotTable1 Is Nothing And Not PivotTable2 Is Nothing Then + Set lcWorksheet1 = PivotTable1.Parent + Set lcWorksheet2 = PivotTable2.Parent + 'Debug.Print lcWorksheet1.Name, lcWorksheet2.Name + IsPivotTablePivotTable = VBA.CBool(lcWorksheet1 Is lcWorksheet2 And PivotTable1.Name = PivotTable2.Name) End If End Function -Private Sub GetPivotFieldPivotAxisTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldPivotAxisTest|Sub" - Dim lcPivotAxis As Excel.PivotAxis - Set lcPivotAxis = GetPivotFieldPivotAxis(PivotField:=ActiveCell.PivotField) +'Private Sub GetPivotTableDataRangeTest() +' 'Debug.Print GetPivotTableDataRange(Range("A24").PivotTable).Address +'End Sub +'Public Function GetPivotTableDataRange(PivotTable As Excel.PivotTable) As Excel.Range +' Dim lcColumnDataRange As Excel.Range +' Dim lcRowDataRange As Excel.Range +' +' On Error GoTo CatchError +' +' Set lcRowDataRange = GetPivotTableRowDataRange(PivotTable:=PivotTable) +' Set lcColumnDataRange = GetPivotTableColumnDataRange(PivotTable:=PivotTable) +' +' If lcColumnDataRange Is Nothing Then +' Set GetPivotTableDataRange = lcRowDataRange +' +' ElseIf lcRowDataRange Is Nothing Then +' Set GetPivotTableDataRange = lcColumnDataRange +' +' Else +' Set GetPivotTableDataRange = GetIntersectOrNothing(Range1:=lcColumnDataRange _ +' , Range2:=lcRowDataRange _ +' ) +' End If +' +' Set lcColumnDataRange = Nothing +' Set lcRowDataRange = Nothing +' +' Exit Function +' +'CatchError: +' ReraiseError +'End Function + +Private Sub GetPivotTableDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTableDataRangeTest|Sub" +Debug.Print GetPivotTableDataRange(ActiveCell.PivotTable).Address End Sub -Public Function GetPivotFieldPivotAxis(PivotField As Excel.PivotField) As Excel.PivotAxis - Const ThisProcedure As String = ThisModule & "|GetPivotFieldPivotAxis|Function" - Dim lcPivotTable As Excel.PivotTable +Public Function GetPivotTableDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotTableDataRange|Function" + Dim lcColumnDataRange As Excel.Range + Dim lcRowDataRange As Excel.Range - With PivotField - Set lcPivotTable = PivotField.Parent - Select Case .Orientation - Case XlPivotFieldOrientation.xlColumnField - Set GetPivotFieldPivotAxis = lcPivotTable.PivotColumnAxis + Set lcRowDataRange = GetPivotTableRowDataRange(PivotTable:=PivotTable) + Set lcColumnDataRange = GetPivotTableColumnDataRange(PivotTable:=PivotTable) - Case XlPivotFieldOrientation.xlRowField - Set GetPivotFieldPivotAxis = lcPivotTable.PivotRowAxis + If lcColumnDataRange Is Nothing Then + Set GetPivotTableDataRange = lcRowDataRange - Case Else - ' eigentlich müpßte hier ein Fehler kommen + ElseIf lcRowDataRange Is Nothing Then + Set GetPivotTableDataRange = lcColumnDataRange - End Select - End With -End Function + Else + Set GetPivotTableDataRange = GetIntersectOrNothing(Range1:=lcColumnDataRange _ + , Range2:=lcRowDataRange _ + ) + End If -Private Sub GetPivotFieldDataRangeDataRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeDataRangeTest|Sub" -Debug.Print GetPivotFieldDataRangeDataRange(ActiveCell.PivotField).Address -End Sub -Public Function GetPivotFieldDataRangeDataRange(PivotField As Excel.PivotField) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataRangeDataRange|Function" - Dim lcCell As Excel.Range - Dim lcDataRange As Excel.Range - - For Each lcCell In PivotField.DataRange - lcCell.Select - With lcCell.PivotCell - If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ - Or .PivotCellType = xlPivotCellPivotItem Then - ' xlPivotCellDataField kommt nur bei der PivotColumnAxis vor - ' xlPivotCellPivotItem bei beiden PivotAxes - If lcDataRange Is Nothing Then - Set lcDataRange = .Range - Else - Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) - End If - End If - End With - Next - Set GetPivotFieldDataRangeDataRange = lcDataRange + Set lcColumnDataRange = Nothing + Set lcRowDataRange = Nothing End Function -Private Function IsPivotFieldPositionReadable(PivotField As Excel.PivotField) As Boolean - Const ThisProcedure As String = ThisModule & "|IsPivotFieldPositionReadable|Function" - Dim lvPosition As Long - On Error GoTo CatchError - lvPosition = PivotField.Position - IsPivotFieldPositionReadable = True -CatchError: - IsPivotFieldPositionReadable = False -End Function -Private Sub GetPivotColumnFieldWithHighestPositionTest() - Const ThisProcedure As String = ThisModule & "|GetPivotColumnFieldWithHighestPositionTest|Sub" -Debug.Print GetPivotFieldOrNothingWithHighestPosition(ActiveCell.PivotTable.PageFields, XlPivotFieldOrientation.xlPageField).Name +'Private Sub GetPivotTableColumnDataRangeTest() +' 'Debug.Print GetPivotTableColumnDataRange(Range("A30").PivotTable).Address +'End Sub +'Public Function GetPivotTableColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotFields As Excel.PivotFields +' Dim lcPivotItems As Excel.PivotItems +' +' On Error GoTo CatchError +' +' Set lcPivotFields = PivotTable.DataFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotFields = PivotTable.ColumnFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotField = GetPivotFieldOrNothingWithHighestPosition(PivotFields:=lcPivotFields _ +' , PivotFieldOrientation:=XlPivotFieldOrientation.xlColumnField _ +' ) +' +' If Not lcPivotField Is Nothing Then +' Set lcPivotItems = lcPivotField.PivotItems +' If Not lcPivotItems Is Nothing Then +' Set GetPivotTableColumnDataRange = GetPivotItemsDataRange(PivotItems:=lcPivotField.PivotItems).EntireColumn +' End If +' End If +' +' Exit Function +' +'CatchError: +' ReraiseError +'End Function + +Private Sub GetPivotTableColumnDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTableColumnDataRangeTest|Sub" +Debug.Print GetPivotTableColumnDataRange(Range("g2").PivotTable).Address End Sub -Public Function GetPivotFieldOrNothingWithHighestPosition(PivotFields As Excel.PivotFields, PivotFieldOrientation As XlPivotFieldOrientation) As Excel.PivotField - Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothingWithHighestPosition|Function" - Dim lcPivotField As Excel.PivotField - Dim lvPosition As Long - Dim lvColumnDataFieldPosition As Long - - If PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then - lvColumnDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=PivotFields.Parent) +Public Function GetPivotTableColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotTableColumnDataRange|Function" + Dim lcPivotFields As Excel.PivotFields + + Set lcPivotFields = PivotTable.DataFields + If lcPivotFields.Count = Lo0 Then + Exit Function End If - For Each lcPivotField In PivotFields - With lcPivotField - If .Position <> lvColumnDataFieldPosition Then - If lvPosition < .Position Then - lvPosition = .Position - Set GetPivotFieldOrNothingWithHighestPosition = lcPivotField - End If - End If - End With - Next + Set lcPivotFields = PivotTable.ColumnFields + If lcPivotFields.Count = Lo0 Then + Exit Function + End If + + Set GetPivotTableColumnDataRange = GetPivotAxisColumnDataRange(PivotTable:=PivotTable).EntireColumn End Function -Private Sub GetPivotFieldByPositionTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPositionTest|Sub" -Debug.Print GetPivotFieldByPosition(ActiveCell.PivotTable.RowFields, 1).Name +'Private Sub GetPivotTableRowDataRangeTest() +' 'Debug.Print GetPivotTableRowDataRange(Range("A30").PivotTable).Address +'End Sub +'Public Function GetPivotTableRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range +' Dim lcDataRange As Excel.Range +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotFields As Excel.PivotFields +' Dim lcPivotItem As Excel.PivotItem +' Dim lcPivotItems As Excel.PivotItems +' +' On Error GoTo CatchError +' +' Set lcPivotFields = PivotTable.DataFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotFields = PivotTable.RowFields +' If lcPivotFields.Count = Lo0 Then +' Exit Function +' End If +' +' Set lcPivotField = GetPivotFieldOrNothingWithHighestPosition(PivotFields:=lcPivotFields _ +' , PivotFieldOrientation:=XlPivotFieldOrientation.xlRowField _ +' ) +' Set GetPivotTableRowDataRange = GetPivotItemsDataRange(PivotItems:=lcPivotField.PivotItems).EntireRow +' +' Exit Function +' +'CatchError: +' ReraiseError +'End Function + +Private Sub GetPivotTableRowDataRangeTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTableRowDataRangeTest|Sub" +Debug.Print GetPivotTableRowDataRange(Range("g2").PivotTable).Address End Sub -Public Function GetPivotFieldByPosition(PivotFields As Excel.PivotFields _ - , Optional Position As Double = 1 _ - ) As Excel.PivotField - Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" - Dim lcPivotField As Excel.PivotField - - On Error GoTo CatchError - - For Each lcPivotField In PivotFields - If lcPivotField.Position = Position Then - Set GetPivotFieldByPosition = lcPivotField - Exit For - End If - Next +Public Function GetPivotTableRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotTableRowDataRange|Function" + Dim lcPivotFields As Excel.PivotFields - GoSub CleanUp - Exit Function + Set lcPivotFields = PivotTable.DataFields + If lcPivotFields.Count = Lo0 Then + Exit Function + End If -CleanUp: - Set lcPivotField = Nothing - Return + Set lcPivotFields = PivotTable.RowFields + If lcPivotFields.Count = Lo0 Then + Exit Function + End If -CatchError: - GoSub CleanUp + Set GetPivotTableRowDataRange = GetPivotAxisRowDataRange(PivotTable:=PivotTable).EntireRow End Function -Private Sub GetPivotFieldOrientationTest() - Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientationTest|Sub" -Debug.Print GetPivotFieldOrientation(ActiveCell.PivotTable.DataFields(1)) +Public Function GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable As Excel.PivotTable) As Long + Const ThisProcedure As String = ThisModule & "|GetPivotTableDataFieldPositionInPivotColumnFields|Function" + Dim lcDataPivotItems As Excel.PivotItems + + With PivotTable.DataPivotField + Set lcDataPivotItems = .PivotItems + If lcDataPivotItems.Count > Lo1 Then + ' nur dann gibt's ein Werte-Feld in den ColumnFields + GetPivotTableDataFieldPositionInPivotColumnFields = .Position + End If + Set lcDataPivotItems = Nothing + End With +End Function + +Private Sub GetPivotTablePivotChartsDictionaryTest() + Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotChartsDictionaryTest|Sub" +Debug.Print GetPivotTablePivotChartsDictionary(ActiveCell.PivotTable).Count End Sub -Public Function GetPivotFieldOrientation(PivotField As Excel.PivotField) As XlPivotFieldOrientation - Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientation|Function" - Dim lcPivotTable As Excel.PivotTable - - With PivotField - Select Case .Orientation - Case XlPivotFieldOrientation.xlColumnField _ - , XlPivotFieldOrientation.xlDataField _ - , XlPivotFieldOrientation.xlPageField _ - , XlPivotFieldOrientation.xlRowField - GetPivotFieldOrientation = .Orientation - - Case Else - - ' die Orientation ist beim Ausführen von WorksheetFunktionen immer lxHidden - ' deshalb muss es dann so festgestellt werden - - Set lcPivotTable = PivotField.Parent - If Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.ColumnFields, Index:=.Name) Is Nothing Then - GetPivotFieldOrientation = XlPivotFieldOrientation.xlColumnField - ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.DataFields, Index:=.Name) Is Nothing Then - GetPivotFieldOrientation = XlPivotFieldOrientation.xlDataField - ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.PageFields, Index:=.Name) Is Nothing Then - GetPivotFieldOrientation = XlPivotFieldOrientation.xlPageField - ElseIf Not GetPivotFieldOrNothing(PivotFields:=lcPivotTable.RowFields, Index:=.Name) Is Nothing Then - GetPivotFieldOrientation = XlPivotFieldOrientation.xlRowField - Else - GetPivotFieldOrientation = XlPivotFieldOrientation.xlHidden +Public Function GetPivotTablePivotChartsDictionary(PivotTable As Excel.PivotTable) As Scripting.Dictionary + Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotChartsDictionary|Function" + Dim lcChart As Excel.Chart + Dim lcChartObject As Excel.ChartObject + Dim lcDictionary As Scripting.Dictionary + Dim lcWorkbook As Excel.Workbook + Dim lcWorksheet As Excel.Worksheet + + Set lcDictionary = New Scripting.Dictionary + + Set lcWorksheet = PivotTable.Parent + Set lcWorkbook = lcWorksheet.Parent + + For Each lcChart In lcWorkbook.Charts + If Not lcChart.PivotLayout Is Nothing Then + If IsPivotTablePivotTable(PivotTable1:=lcChart.PivotLayout.PivotTable, PivotTable2:=PivotTable) Then + lcDictionary.Add Key:=VBA.ObjPtr(lcChart), Item:=lcChart + End If + End If + Next + For Each lcWorksheet In lcWorkbook.Worksheets + For Each lcChartObject In lcWorksheet.ChartObjects + With lcChartObject.Chart + If Not .PivotLayout Is Nothing Then + If IsPivotTablePivotTable(PivotTable1:=.PivotLayout.PivotTable, PivotTable2:=PivotTable) Then + lcDictionary.Add Key:=VBA.ObjPtr(lcChartObject.Chart), Item:=lcChartObject.Chart + End If End If - End Select - End With + End With + Next + Next - Set lcPivotTable = Nothing + Set GetPivotTablePivotChartsDictionary = lcDictionary End Function - diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt index 5ac2be1baa..a3526a1ff7 100644 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt @@ -1,158 +1,67 @@ -Attribute VB_Name = "vbXlPivotItemPri" +Attribute VB_Name = "vbXlRangePri" Option Explicit Option Private Module -Private Const ThisModule As String = ThisProject & "|vbXlPivotItemPri" +Private Const ThisModule As String = ThisProject & "|vbXlRangePri" -Public Function GetPivotItemOrNothing(PivotItems As Excel.PivotItems, Index As Variant) As Excel.PivotItem - Const ThisProcedure As String = ThisModule & "|GetPivotItemOrNothing|Function" +Public Function GetIntersectOrNothing(Range1 As Excel.Range, Range2 As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetIntersectOrNothing|Function" On Error Resume Next - Set GetPivotItemOrNothing = PivotItems.Item(Index:=Index) + Set GetIntersectOrNothing = Application.Intersect(Arg1:=Range1 _ + , Arg2:=Range2 _ + ) End Function -Public Function GetPivotItemDataRangeOrNothing(PivotItem As Excel.PivotItem) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotItemDataRangeOrNothing|Function" - On Error Resume Next - Set GetPivotItemDataRangeOrNothing = PivotItem.DataRange -End Function +Private Sub GetRangePivotTableOrNothingTest() + Const ThisProcedure As String = ThisModule & "|GetRangePivotTableOrNothingTest|Sub" +Debug.Print GetRangePivotTableOrNothing(Selection, True).TableRange1.Address +End Sub +Public Function GetRangePivotTableOrNothing(Range As Excel.Range, Optional CheckAllCells As Boolean = False) As Excel.PivotTable + Const ThisProcedure As String = ThisModule & "|GetRangePivotTableOrNothing|Function" + Dim lcColumnCell As Excel.Range + Dim lcRowCell As Excel.Range + Dim lcPivotTable As Excel.PivotTable -Public Function GetPivotItemPosition(PivotItem As Excel.PivotItem) As Long - Const ThisProcedure As String = ThisModule & "|GetPivotItemOrNothing|Function" On Error Resume Next - GetPivotItemPosition = PivotItem.Position -End Function -Public Function GetPivotItemsDataRange(PivotItems As Excel.PivotItems) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotItemsDataRange|Function" - Dim lcDataRange As Excel.Range - Dim lcPivotItem As Excel.PivotItem - - For Each lcPivotItem In PivotItems - 'Debug.Print lcPivotField.Name, lcPivotItem.Name - If Not GetPivotItemDataRangeOrNothing(PivotItem:=lcPivotItem) Is Nothing Then - If lcDataRange Is Nothing Then - Set lcDataRange = lcPivotItem.DataRange - Else - Set lcDataRange = Application.Union(lcDataRange _ - , lcPivotItem.DataRange _ - ) - End If - 'Debug.Print lcDataRange.Address - End If - Next - Set GetPivotItemsDataRange = lcDataRange -End Function - -Private Sub GetDateFromPivotItemValueTest() - Const ThisProcedure As String = ThisModule & "|GetDateFromPivotItemValueTest|Sub" -Debug.Print GetDateFromPivotItemValue("2/3/2011") -Debug.Print GetDateFromPivotItemValue("2/3/2011 12:34:56") -End Sub -Public Function GetDateFromPivotItemValue(PivotItemValue As String) As Date - Const ThisProcedure As String = ThisModule & "|GetDateFromPivotItemValue|Function" - Dim laDateTime As Variant - Dim laDate As Variant - Dim lvDate As Date - - laDateTime = VBA.Split(PivotItemValue, ConChrSpace) - laDate = VBA.Split(laDateTime(Lo0), ConChrSlash) - lvDate = VBA.DateSerial(Year:=VBA.CInt(laDate(Lo2)), Month:=VBA.CInt(laDate(Lo1)), Day:=VBA.CInt(laDate(Lo0))) - If UBound(laDateTime) > LBound(laDateTime) Then - lvDate = lvDate + VBA.TimeValue(laDateTime(Lo1)) + If CheckAllCells Then + For Each lcColumnCell In Range.Resize(RowSize:=Lo1) + For Each lcRowCell In Application.Intersect(lcColumnCell.EntireColumn, Range) + 'Debug.Print lcRowCell.Address, lcRowCell.Worksheet.Name + ' komischerweise ist manchmal PivotCell korrekt gesetzt, aber PivotTable nicht + ' deshalb wird hier die PivotTable über die PivotCell.PivotTable besorgt + Set GetRangePivotTableOrNothing = lcRowCell.PivotCell.PivotTable + If Not GetRangePivotTableOrNothing Is Nothing Then + Exit Function + End If + Next + Next + Else + Set GetRangePivotTableOrNothing = Range.PivotTable End If - GetDateFromPivotItemValue = lvDate End Function -Private Sub PivotCellValuesColumnRangeTest() - Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnRangeTest|Sub" -Debug.Print PivotCellValuesColumnRange(ActiveCell.PivotTable).Address -End Sub -Public Function PivotCellValuesColumnRange(PivotTable As Excel.PivotTable) As Excel.Range - Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnRange|Function" - Dim lcCell As Excel.Range - Dim lcPivotField As Excel.PivotField - Dim lcPivotFields As Excel.PivotFields - Dim lcRange As Excel.Range - - Set lcPivotFields = PivotTable.ColumnFields - With lcPivotFields - Set lcPivotField = .Item(Index:=.Count) - End With - - For Each lcCell In lcPivotField.DataRange - With lcCell - If .PivotCell.PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then - If lcRange Is Nothing Then - Set lcRange = lcCell - Else - Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcCell) - End If - End If - End With - Next - - Set PivotCellValuesColumnRange = lcRange +Public Function GetThisCellOrNothing() As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetThisCellOrNothing|Function" + On Error Resume Next + Set GetThisCellOrNothing = Application.ThisCell End Function -Private Sub PivotCellValuesRowRangeTest() - Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowRangeTest|Sub" -Debug.Print PivotCellValuesRowRange(ActiveCell.PivotTable).Address -End Sub -Public Function PivotCellValuesRowRange(PivotTable As Excel.PivotTable) As Excel.Range - Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowRange|Function" - Dim lcCell As Excel.Range - Dim lcPivotField As Excel.PivotField - Dim lcPivotFields As Excel.PivotFields - Dim lcRange As Excel.Range - - Set lcPivotFields = PivotTable.RowFields - With lcPivotFields - Set lcPivotField = .Item(Index:=.Count) - End With - - For Each lcCell In lcPivotField.DataRange - With lcCell - If .PivotCell.PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then - If lcRange Is Nothing Then - Set lcRange = lcCell - Else - Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=lcCell) - End If - End If - End With - Next +Public Function GetRangeAddress(Range As Excel.Range, WithWorksheetName As Boolean) As String + Const ThisProcedure As String = ThisModule & "|GetRangeAddress|Function" + If WithWorksheetName Then + GetRangeAddress = ConChrApos _ + & VBA.Replace(Range.Worksheet.Name, ConChrApos, ConChrApos & ConChrApos) _ + & ConChrApos & ConChrExclPoint _ + & Range.Address(RowAbsolute:=True, ColumnAbsolute:=True) - Set PivotCellValuesRowRange = lcRange + Else + GetRangeAddress = Range.Address(RowAbsolute:=True, ColumnAbsolute:=True) + End If End Function -Private Sub GetPivotItemPivotCellValueRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotItemPivotCellValueRangeTest|Sub" -Debug.Print GetPivotItemPivotCellValueRange(ActiveCell.PivotTable.RowFields(1).PivotItems(1)).Address -End Sub -Public Function GetPivotItemPivotCellValueRange(PivotItem As Excel.PivotItem) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotItemPivotCellValueRange|Function" - Dim lcCell As Excel.Range - Dim lcRange As Excel.Range - Dim lcPivotField As Excel.PivotField - Dim lcPivotLine As Excel.PivotLine - - Set lcPivotField = PivotItem.Parent - With lcPivotField - Select Case .Orientation - Case XlPivotFieldOrientation.xlColumnField - Set lcRange = GetPivotAxisRowDataRange(PivotTable:=lcPivotField.Parent) - - Case XlPivotFieldOrientation.xlRowField - Set lcRange = GetPivotAxisColumnDataRange(PivotTable:=lcPivotField.Parent) - - Case Else - - End Select - - End With - - Set GetPivotItemPivotCellValueRange = Application.Intersect(Arg1:=PivotItem.DataRange _ - , Arg2:=lcRange.EntireColumn _ - ) +Public Function GetVisibleCellsOrNothing(Range As Excel.Range) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetVisibleCellsOrNothing|Function" + On Error Resume Next + Set GetVisibleCellsOrNothing = Range.SpecialCells(Type:=XlCellType.xlCellTypeVisible) End Function - diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt deleted file mode 100644 index fd082e3bb6..0000000000 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_19.txt +++ /dev/null @@ -1,178 +0,0 @@ -Attribute VB_Name = "vbXlPivotLinePri" -Option Explicit -Option Private Module - -Private Const ThisModule As String = ThisProject & "|vbXlPivotLinePri" - -Private Sub GetPivotLinesRegularPivotFieldsDictionaryTest() - Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularPivotFieldsDictionaryTest|Sub" - Dim lcDict As Scripting.Dictionary - Dim lcPivotAxis As Excel.PivotAxis - Dim lcPivotTable As Excel.PivotTable - Dim lcRange As Excel.Range - - Set lcPivotTable = ActiveCell.PivotTable -' Set lcPivotAxis = lcPivotTable.PivotColumnAxis - Set lcPivotAxis = lcPivotTable.PivotRowAxis - Set lcRange = GetPivotLinesRegularPivotFieldsDictionary(PivotLines:=lcPivotAxis.PivotLines) -Debug.Print lcRange.Address - lcRange.Select - -End Sub - -Public Function GetPivotLinesRegularPivotFieldsDictionary(PivotLines As Excel.PivotLines) As Scripting.Dictionary - Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularPivotFieldsDictionary|Function" - Dim lcDataRange As Excel.Range - Dim lcDictionary As Scripting.Dictionary - Dim lcPivotCell As Excel.PivotCell - Dim lcPivotLine As Excel.PivotLine - - Set lcDictionary = New Scripting.Dictionary - - For Each lcPivotLine In PivotLines - With lcPivotLine - If .LineType = XlPivotLineType.xlPivotLineRegular Then - ' fälschlicherweise sind auch Zeilen vom Typ Regular, - ' wenn beim letzten RowField noch eine benutzerdefinierte - ' Funktion ausgewählt ist. - ' Deshalb müssen noch die PivotLineCells abgegrast werden - ' Die enthalten nämlich bei benutzerdefinierten Funktionen - ' - For Each lcPivotCell In .PivotLineCells - With lcPivotCell - ' es ist egal, welche Zelle genommen wird, da beim Typ Regular - ' alle Zellen vom Typ Regular sind - If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ - Or .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then - ' xlPivotCellDataField kommt nur bei PivotLines der PivotColumnAxis vor - ' xlPivotCellPivotItem bei beiden PivotAxes - If lcDataRange Is Nothing Then - Set lcDataRange = .Range - Exit For - Else - Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) - Exit For - End If - End If - End With - Next - End If - End With - Next - - Set GetPivotLinesRegularPivotFieldsDictionary = lcDataRange -End Function - -Private Sub GetPivotLinesRegularRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularRangeTest|Sub" - Dim lcPivotAxis As Excel.PivotAxis - Dim lcPivotTable As Excel.PivotTable - Dim lcRange As Excel.Range - - Set lcPivotTable = ActiveCell.PivotTable -' Set lcPivotAxis = lcPivotTable.PivotColumnAxis - Set lcPivotAxis = lcPivotTable.PivotRowAxis - Set lcRange = GetPivotLinesRegularRange(PivotLines:=lcPivotAxis.PivotLines) -Debug.Print lcRange.Address - lcRange.Select - -End Sub - -Public Function GetPivotLinesRegularRange(PivotLines As Excel.PivotLines) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotLinesRegularRange|Function" - Dim lcDataRange As Excel.Range - Dim lcPivotCell As Excel.PivotCell - Dim lcPivotLine As Excel.PivotLine - - For Each lcPivotLine In PivotLines - With lcPivotLine - If .LineType = XlPivotLineType.xlPivotLineRegular Then - ' fälschlicherweise sind auch Zeilen vom Typ Regular, - ' wenn beim letzten RowField noch eine benutzerdefinierte - ' Funktion ausgewählt ist. - ' Deshalb müssen noch die PivotLineCells abgegrast werden - ' Die enthalten nämlich bei benutzerdefinierten Funktionen - ' - For Each lcPivotCell In .PivotLineCells - With lcPivotCell - ' es ist egal, welche Zelle genommen wird, da beim Typ Regular - ' alle Zellen vom Typ Regular sind - If .PivotCellType = XlPivotCellType.xlPivotCellDataField _ - Or .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then - ' xlPivotCellDataField kommt nur bei PivotLines der PivotColumnAxis vor - ' xlPivotCellPivotItem bei beiden PivotAxes - If lcDataRange Is Nothing Then - Set lcDataRange = .Range - Exit For - Else - Set lcDataRange = Application.Union(Arg1:=lcDataRange, Arg2:=.Range) - Exit For - End If - End If - End With - Next - End If - End With - Next - - Set GetPivotLinesRegularRange = lcDataRange -End Function - -Private Sub GetPivotColumnLineNameTest() - Const ThisProcedure As String = ThisModule & "|GetPivotColumnLineNameTest|Sub" -Debug.Print GetPivotColumnLineName(ActiveCell.PivotCell.PivotColumnLine) -End Sub -Public Function GetPivotColumnLineName(PivotLine As Excel.PivotLine) As String - Const ThisProcedure As String = ThisModule & "|GetPivotColumnLineName|Function" - Dim lcPivotCell As Excel.PivotCell - Dim lvName As String - - With PivotLine - For Each lcPivotCell In .PivotLineCells - With lcPivotCell - If .PivotCellType = xlPivotCellDataField Then - lvName = lcPivotCell.DataField.Name - - ElseIf .PivotCellType = xlPivotCellPivotField Then - lvName = lcPivotCell.PivotItem.Name - - ElseIf .PivotCellType = xlPivotCellPivotItem Then - lvName = lcPivotCell.PivotItem.Name - End If - End With - If VBA.Len(GetPivotColumnLineName) = Lo0 Then - GetPivotColumnLineName = lvName - Else - GetPivotColumnLineName = GetPivotColumnLineName & " - " & lvName - End If - Next - End With -End Function - -Private Sub GetPivotLineRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotLineRangeTest|Sub" - Dim lcPivotLine As Excel.PivotLine - Dim lvIndex As Long - - For Each lcPivotLine In ActiveCell.PivotTable.PivotRowAxis.PivotLines - lvIndex = lvIndex + Lo1 -Debug.Print lvIndex, GetPivotLineRange(lcPivotLine).Address - Next -End Sub -Private Function GetPivotLineRange(PivotLine As Excel.PivotLine) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotLineRange|Function" - Dim lcPivotLineCell As Excel.PivotCell - Dim lcRange As Excel.Range - - For Each lcPivotLineCell In PivotLine.PivotLineCells - With lcPivotLineCell - 'Debug.Print .Range.Address, PivotCellTypeName(.PivotCellType) - If lcRange Is Nothing Then - Set lcRange = .Range - Else - Set lcRange = Application.Union(Arg1:=lcRange, Arg2:=.Range) - End If - End With - Next - Set GetPivotLineRange = lcRange -End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt deleted file mode 100644 index 0ed3824088..0000000000 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_20.txt +++ /dev/null @@ -1,272 +0,0 @@ -Attribute VB_Name = "vbXlPivotTablePri" -Option Explicit -Option Private Module - -Private Const ThisModule As String = ThisProject & "|vbXlPivotTablePri" - -Public Function GetPivotTableOrNothing(PivotTables As Excel.PivotTables, Index As Variant) As Excel.PivotTable - Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothing|Function" - On Error Resume Next - Set GetPivotTableOrNothing = PivotTables.Item(Index:=Index) -End Function - -Public Function GetPivotTablesOrNothing(Worksheet As Excel.Worksheet) As Excel.PivotTables - Const ThisProcedure As String = ThisModule & "|GetPivotTablesOrNothing|Function" - On Error Resume Next - Set GetPivotTablesOrNothing = Worksheet.PivotTables -End Function - -Public Function GetPivotTableOrNothingFromChart(Chart As Excel.Chart) As Excel.PivotTable - Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothingFromChart|Function" - - With Chart - If Not .PivotLayout Is Nothing Then - Set GetPivotTableOrNothingFromChart = .PivotLayout.PivotTable - End If - End With -End Function - -Public Function GetPivotTableOrNothingFromRange(Range As Excel.Range) As Excel.PivotTable - Const ThisProcedure As String = ThisModule & "|GetPivotTableOrNothingFromRange|Function" - On Error Resume Next - Set GetPivotTableOrNothingFromRange = Range.PivotTable -End Function - -Public Function IsPivotTablePivotTable(PivotTable1 As Excel.PivotTable, PivotTable2 As Excel.PivotTable) As Boolean - Const ThisProcedure As String = ThisModule & "|IsPivotTablePivotTable|Function" - Dim lcWorksheet1 As Excel.Worksheet - Dim lcWorksheet2 As Excel.Worksheet - - If Not PivotTable1 Is Nothing And Not PivotTable2 Is Nothing Then - Set lcWorksheet1 = PivotTable1.Parent - Set lcWorksheet2 = PivotTable2.Parent - 'Debug.Print lcWorksheet1.Name, lcWorksheet2.Name - IsPivotTablePivotTable = VBA.CBool(lcWorksheet1 Is lcWorksheet2 And PivotTable1.Name = PivotTable2.Name) - End If -End Function - -'Private Sub GetPivotTableDataRangeTest() -' 'Debug.Print GetPivotTableDataRange(Range("A24").PivotTable).Address -'End Sub -'Public Function GetPivotTableDataRange(PivotTable As Excel.PivotTable) As Excel.Range -' Dim lcColumnDataRange As Excel.Range -' Dim lcRowDataRange As Excel.Range -' -' On Error GoTo CatchError -' -' Set lcRowDataRange = GetPivotTableRowDataRange(PivotTable:=PivotTable) -' Set lcColumnDataRange = GetPivotTableColumnDataRange(PivotTable:=PivotTable) -' -' If lcColumnDataRange Is Nothing Then -' Set GetPivotTableDataRange = lcRowDataRange -' -' ElseIf lcRowDataRange Is Nothing Then -' Set GetPivotTableDataRange = lcColumnDataRange -' -' Else -' Set GetPivotTableDataRange = GetIntersectOrNothing(Range1:=lcColumnDataRange _ -' , Range2:=lcRowDataRange _ -' ) -' End If -' -' Set lcColumnDataRange = Nothing -' Set lcRowDataRange = Nothing -' -' Exit Function -' -'CatchError: -' ReraiseError -'End Function - -Private Sub GetPivotTableDataRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotTableDataRangeTest|Sub" -Debug.Print GetPivotTableDataRange(ActiveCell.PivotTable).Address -End Sub -Public Function GetPivotTableDataRange(PivotTable As Excel.PivotTable) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotTableDataRange|Function" - Dim lcColumnDataRange As Excel.Range - Dim lcRowDataRange As Excel.Range - - Set lcRowDataRange = GetPivotTableRowDataRange(PivotTable:=PivotTable) - Set lcColumnDataRange = GetPivotTableColumnDataRange(PivotTable:=PivotTable) - - If lcColumnDataRange Is Nothing Then - Set GetPivotTableDataRange = lcRowDataRange - - ElseIf lcRowDataRange Is Nothing Then - Set GetPivotTableDataRange = lcColumnDataRange - - Else - Set GetPivotTableDataRange = GetIntersectOrNothing(Range1:=lcColumnDataRange _ - , Range2:=lcRowDataRange _ - ) - End If - - Set lcColumnDataRange = Nothing - Set lcRowDataRange = Nothing -End Function - -'Private Sub GetPivotTableColumnDataRangeTest() -' 'Debug.Print GetPivotTableColumnDataRange(Range("A30").PivotTable).Address -'End Sub -'Public Function GetPivotTableColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range -' Dim lcPivotField As Excel.PivotField -' Dim lcPivotFields As Excel.PivotFields -' Dim lcPivotItems As Excel.PivotItems -' -' On Error GoTo CatchError -' -' Set lcPivotFields = PivotTable.DataFields -' If lcPivotFields.Count = Lo0 Then -' Exit Function -' End If -' -' Set lcPivotFields = PivotTable.ColumnFields -' If lcPivotFields.Count = Lo0 Then -' Exit Function -' End If -' -' Set lcPivotField = GetPivotFieldOrNothingWithHighestPosition(PivotFields:=lcPivotFields _ -' , PivotFieldOrientation:=XlPivotFieldOrientation.xlColumnField _ -' ) -' -' If Not lcPivotField Is Nothing Then -' Set lcPivotItems = lcPivotField.PivotItems -' If Not lcPivotItems Is Nothing Then -' Set GetPivotTableColumnDataRange = GetPivotItemsDataRange(PivotItems:=lcPivotField.PivotItems).EntireColumn -' End If -' End If -' -' Exit Function -' -'CatchError: -' ReraiseError -'End Function - -Private Sub GetPivotTableColumnDataRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotTableColumnDataRangeTest|Sub" -Debug.Print GetPivotTableColumnDataRange(Range("g2").PivotTable).Address -End Sub -Public Function GetPivotTableColumnDataRange(PivotTable As Excel.PivotTable) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotTableColumnDataRange|Function" - Dim lcPivotFields As Excel.PivotFields - - Set lcPivotFields = PivotTable.DataFields - If lcPivotFields.Count = Lo0 Then - Exit Function - End If - - Set lcPivotFields = PivotTable.ColumnFields - If lcPivotFields.Count = Lo0 Then - Exit Function - End If - - Set GetPivotTableColumnDataRange = GetPivotAxisColumnDataRange(PivotTable:=PivotTable).EntireColumn -End Function - -'Private Sub GetPivotTableRowDataRangeTest() -' 'Debug.Print GetPivotTableRowDataRange(Range("A30").PivotTable).Address -'End Sub -'Public Function GetPivotTableRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range -' Dim lcDataRange As Excel.Range -' Dim lcPivotField As Excel.PivotField -' Dim lcPivotFields As Excel.PivotFields -' Dim lcPivotItem As Excel.PivotItem -' Dim lcPivotItems As Excel.PivotItems -' -' On Error GoTo CatchError -' -' Set lcPivotFields = PivotTable.DataFields -' If lcPivotFields.Count = Lo0 Then -' Exit Function -' End If -' -' Set lcPivotFields = PivotTable.RowFields -' If lcPivotFields.Count = Lo0 Then -' Exit Function -' End If -' -' Set lcPivotField = GetPivotFieldOrNothingWithHighestPosition(PivotFields:=lcPivotFields _ -' , PivotFieldOrientation:=XlPivotFieldOrientation.xlRowField _ -' ) -' Set GetPivotTableRowDataRange = GetPivotItemsDataRange(PivotItems:=lcPivotField.PivotItems).EntireRow -' -' Exit Function -' -'CatchError: -' ReraiseError -'End Function - -Private Sub GetPivotTableRowDataRangeTest() - Const ThisProcedure As String = ThisModule & "|GetPivotTableRowDataRangeTest|Sub" -Debug.Print GetPivotTableRowDataRange(Range("g2").PivotTable).Address -End Sub -Public Function GetPivotTableRowDataRange(PivotTable As Excel.PivotTable) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetPivotTableRowDataRange|Function" - Dim lcPivotFields As Excel.PivotFields - - Set lcPivotFields = PivotTable.DataFields - If lcPivotFields.Count = Lo0 Then - Exit Function - End If - - Set lcPivotFields = PivotTable.RowFields - If lcPivotFields.Count = Lo0 Then - Exit Function - End If - - Set GetPivotTableRowDataRange = GetPivotAxisRowDataRange(PivotTable:=PivotTable).EntireRow -End Function - -Public Function GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable As Excel.PivotTable) As Long - Const ThisProcedure As String = ThisModule & "|GetPivotTableDataFieldPositionInPivotColumnFields|Function" - Dim lcDataPivotItems As Excel.PivotItems - - With PivotTable.DataPivotField - Set lcDataPivotItems = .PivotItems - If lcDataPivotItems.Count > Lo1 Then - ' nur dann gibt's ein Werte-Feld in den ColumnFields - GetPivotTableDataFieldPositionInPivotColumnFields = .Position - End If - Set lcDataPivotItems = Nothing - End With -End Function - -Private Sub GetPivotTablePivotChartsDictionaryTest() - Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotChartsDictionaryTest|Sub" -Debug.Print GetPivotTablePivotChartsDictionary(ActiveCell.PivotTable).Count -End Sub -Public Function GetPivotTablePivotChartsDictionary(PivotTable As Excel.PivotTable) As Scripting.Dictionary - Const ThisProcedure As String = ThisModule & "|GetPivotTablePivotChartsDictionary|Function" - Dim lcChart As Excel.Chart - Dim lcChartObject As Excel.ChartObject - Dim lcDictionary As Scripting.Dictionary - Dim lcWorkbook As Excel.Workbook - Dim lcWorksheet As Excel.Worksheet - - Set lcDictionary = New Scripting.Dictionary - - Set lcWorksheet = PivotTable.Parent - Set lcWorkbook = lcWorksheet.Parent - - For Each lcChart In lcWorkbook.Charts - If Not lcChart.PivotLayout Is Nothing Then - If IsPivotTablePivotTable(PivotTable1:=lcChart.PivotLayout.PivotTable, PivotTable2:=PivotTable) Then - lcDictionary.Add Key:=VBA.ObjPtr(lcChart), Item:=lcChart - End If - End If - Next - For Each lcWorksheet In lcWorkbook.Worksheets - For Each lcChartObject In lcWorksheet.ChartObjects - With lcChartObject.Chart - If Not .PivotLayout Is Nothing Then - If IsPivotTablePivotTable(PivotTable1:=.PivotLayout.PivotTable, PivotTable2:=PivotTable) Then - lcDictionary.Add Key:=VBA.ObjPtr(lcChartObject.Chart), Item:=lcChartObject.Chart - End If - End If - End With - Next - Next - - Set GetPivotTablePivotChartsDictionary = lcDictionary -End Function diff --git a/RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt deleted file mode 100644 index a3526a1ff7..0000000000 --- a/RubberduckTests/Testfiles/Grammar/Reference_Module_21.txt +++ /dev/null @@ -1,67 +0,0 @@ -Attribute VB_Name = "vbXlRangePri" -Option Explicit -Option Private Module - -Private Const ThisModule As String = ThisProject & "|vbXlRangePri" - -Public Function GetIntersectOrNothing(Range1 As Excel.Range, Range2 As Excel.Range) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetIntersectOrNothing|Function" - On Error Resume Next - Set GetIntersectOrNothing = Application.Intersect(Arg1:=Range1 _ - , Arg2:=Range2 _ - ) -End Function - -Private Sub GetRangePivotTableOrNothingTest() - Const ThisProcedure As String = ThisModule & "|GetRangePivotTableOrNothingTest|Sub" -Debug.Print GetRangePivotTableOrNothing(Selection, True).TableRange1.Address -End Sub -Public Function GetRangePivotTableOrNothing(Range As Excel.Range, Optional CheckAllCells As Boolean = False) As Excel.PivotTable - Const ThisProcedure As String = ThisModule & "|GetRangePivotTableOrNothing|Function" - Dim lcColumnCell As Excel.Range - Dim lcRowCell As Excel.Range - Dim lcPivotTable As Excel.PivotTable - - On Error Resume Next - - If CheckAllCells Then - For Each lcColumnCell In Range.Resize(RowSize:=Lo1) - For Each lcRowCell In Application.Intersect(lcColumnCell.EntireColumn, Range) - 'Debug.Print lcRowCell.Address, lcRowCell.Worksheet.Name - ' komischerweise ist manchmal PivotCell korrekt gesetzt, aber PivotTable nicht - ' deshalb wird hier die PivotTable über die PivotCell.PivotTable besorgt - Set GetRangePivotTableOrNothing = lcRowCell.PivotCell.PivotTable - If Not GetRangePivotTableOrNothing Is Nothing Then - Exit Function - End If - Next - Next - Else - Set GetRangePivotTableOrNothing = Range.PivotTable - End If -End Function - -Public Function GetThisCellOrNothing() As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetThisCellOrNothing|Function" - On Error Resume Next - Set GetThisCellOrNothing = Application.ThisCell -End Function - -Public Function GetRangeAddress(Range As Excel.Range, WithWorksheetName As Boolean) As String - Const ThisProcedure As String = ThisModule & "|GetRangeAddress|Function" - If WithWorksheetName Then - GetRangeAddress = ConChrApos _ - & VBA.Replace(Range.Worksheet.Name, ConChrApos, ConChrApos & ConChrApos) _ - & ConChrApos & ConChrExclPoint _ - & Range.Address(RowAbsolute:=True, ColumnAbsolute:=True) - - Else - GetRangeAddress = Range.Address(RowAbsolute:=True, ColumnAbsolute:=True) - End If -End Function - -Public Function GetVisibleCellsOrNothing(Range As Excel.Range) As Excel.Range - Const ThisProcedure As String = ThisModule & "|GetVisibleCellsOrNothing|Function" - On Error Resume Next - Set GetVisibleCellsOrNothing = Range.SpecialCells(Type:=XlCellType.xlCellTypeVisible) -End Function diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt new file mode 100644 index 0000000000..2fc8a51c57 --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt @@ -0,0 +1,61 @@ +Attribute VB_Name = "fnCheckPri" +Option Explicit +Option Private Module +Option Compare Text + +Private Const ThisModule As String = ThisProject & "|fnCheckPri" + +#Const aB = "ß" = "ss" + +#If aB Then +Public Function GetLongOrStringValue1(NameValue As tyNameValue) As Variant + Const ThisProcedure As String = ThisModule & "|GetLongOrStringValue|Function1" +#Else +Public Function GetLongOrStringValue2(NameValue As tyNameValue) As Variant + Const ThisProcedure As String = ThisModule & "|GetLongOrStringValue|Function2" +#End If + + With NameValue + .Value = GetVariantValue(Value:=.Value) + Select Case VBA.VarType(VarName:=.Value) + Case VBA.VbVarType.vbString + GetLongOrStringValue = .Value + #If Not VBA7 Then + Case VBA.VbVarType.vbDouble + #Else + Case VBA.VbVarType.vbInteger + #End If + If VBA.Int(.Value) <> .Value Then + RaiseParamIsNotInteger NameValue:=NameValue + End If + GetLongOrStringValue = VBA.CLng(.Value) + + Case VBA.VbVarType.vbLong, VBA.VbVarType.vbInteger + GetLongOrStringValue = VBA.CLng(.Value) + + Case Else + RaiseParamTypeInvalid NameValue:=NameValue + + End Select + End With +End Function + +#If 2 ^ 5 = 32 Then +'Public Sub CheckPivotFieldItemIndexPos(ByVal Name As String _ +' , ByVal Value As Long _ +' , ByVal PivotFields As Excel.PivotFields _ +' , PivotFieldOrientation As XlPivotFieldOrientation _ +#ElseIf 2 ^ 6 = 64 Then +' ) +' If Value < Lo1 Then +' RaiseParamValueLt1 Name:=Name, Value:=Value +' End If +' If Value > PivotFields.Count Then +' RaisePivotFieldsItemIndexGtCount Name:=Name _ +' , Value:=Value _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=PivotFields.Count +' End If +#Else +'End Sub +#End If diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt new file mode 100644 index 0000000000..1d6b12ac5f --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt @@ -0,0 +1,61 @@ +Attribute VB_Name = "fnCheckPri" +Option Explicit +Option Private Module +Option Compare Text + +Private Const ThisModule As String = ThisProject & "|fnCheckPri" + + + + +Public Function GetLongOrStringValue1(NameValue As tyNameValue) As Variant + Const ThisProcedure As String = ThisModule & "|GetLongOrStringValue|Function1" + + + + + + With NameValue + .Value = GetVariantValue(Value:=.Value) + Select Case VBA.VarType(VarName:=.Value) + Case VBA.VbVarType.vbString + GetLongOrStringValue = .Value + + + + Case VBA.VbVarType.vbInteger + + If VBA.Int(.Value) <> .Value Then + RaiseParamIsNotInteger NameValue:=NameValue + End If + GetLongOrStringValue = VBA.CLng(.Value) + + Case VBA.VbVarType.vbLong, VBA.VbVarType.vbInteger + GetLongOrStringValue = VBA.CLng(.Value) + + Case Else + RaiseParamTypeInvalid NameValue:=NameValue + + End Select + End With +End Function + + +'Public Sub CheckPivotFieldItemIndexPos(ByVal Name As String _ +' , ByVal Value As Long _ +' , ByVal PivotFields As Excel.PivotFields _ +' , PivotFieldOrientation As XlPivotFieldOrientation _ + + + + + + + + + + + + + + diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_2.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_2.txt new file mode 100644 index 0000000000..3158c92d30 --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_2.txt @@ -0,0 +1,767 @@ +Attribute VB_Name = "vbFnPivotFieldPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbFnPivotFieldPri" + +Public Sub ClearPivotFieldsVector(PivotFieldsVector As tyPivotFieldsVector) + Const ThisProcedure As String = ThisModule & "|ClearPivotFieldsVector|Sub" + Dim lvIndex As Long + + With PivotFieldsVector + For lvIndex = Lo1 To .Count + Set .Items(lvIndex) = Nothing + Next + End With +End Sub + + +Private Sub GetPivotFieldSlicerOrNothingTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothingTest|Sub" +Debug.Print GetPivotFieldSlicerOrNothing(ActiveSheet.PivotTables(1).PivotFields("Server")).Name +End Sub +Public Function GetPivotFieldSlicerOrNothing(PivotField As Excel.PivotField) As Excel.Slicer + Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothing|Function" + Dim lcPivotTable As Excel.PivotTable + Dim lcSlicer As Excel.Slicer + + Set lcPivotTable = PivotField.Parent + For Each lcSlicer In lcPivotTable.Slicers + If lcSlicer.SlicerCache.SourceName = PivotField.Name Then + Set GetPivotFieldSlicerOrNothing = lcSlicer + Exit For + End If + Next + + Set lcSlicer = Nothing + Set lcPivotTable = Nothing +End Function + +Public Function GetPivotFieldsVisibleVector(PivotFields As Excel.PivotFields _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + ) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldsVisibleVector|Function" + If GetPivotFieldsCount(PivotFields:=PivotFields, PivotFieldOrientation:=PivotFieldOrientation) = Lo0 Then + Exit Function + End If + + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotFieldsVisibleVector = GetPivotFieldColumnVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlDataField + GetPivotFieldsVisibleVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlRowField + GetPivotFieldsVisibleVector = GetPivotFieldRowVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlPageField + GetPivotFieldsVisibleVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) + + Case Else + RaiseLogicError Source:="GetPivotFieldsVector" + + End Select +End Function + +Private Sub GetPivotFieldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotFields As Excel.PivotFields + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim lvFieldNV As tyNameValue + Dim lvIndex As Long + Dim lvPivotFieldOrientation As XlPivotFieldOrientation + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name + lvPivotFieldOrientation = XlPivotFieldOrientation.xlPageField + Set lcPivotFields = GetPivotTablePivotFields(PivotTable:=lcPivotTable, PivotFieldOrientation:=lvPivotFieldOrientation) + For lvIndex = (lcPivotFields.Count + Lo1) * LoM1 To lcPivotFields.Count + Lo1 + On Error Resume Next + With lvFieldNV + .Name = "Fieldx" + .Value = lvIndex + End With + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If + Next + lvFieldNV.Value = "bla" + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If + lvFieldNV.Value = "Server" + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If +End Sub + +Public Function GetPivotField(PivotFields As Excel.PivotFields _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldNV As tyNameValue _ + ) As Variant + Const ThisProcedure As String = ThisModule & "|GetPivotField|Function" + Dim ltPivotFieldsVector As tyPivotFieldsVector + Dim lvPosition As Long + + If PivotFields.Count = Lo0 Then + RaisePivotFieldsCountEq0 FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotFields.Count + End If + + With FieldNV + .Value = GetLongOrStringValue(NameValue:=FieldNV) + + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then + Set GetPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields _ + , Index:=.Value _ + ) + If GetPivotField Is Nothing Then + RaisePivotFieldsFieldValueStringIsNothing FieldIndex:=.Value _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + Else + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + ltPivotFieldsVector = GetPivotFieldColumnVisibleVector2(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlDataField + ltPivotFieldsVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlPageField + ltPivotFieldsVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlRowField + ltPivotFieldsVector = GetPivotFieldRowVisibleVector2(PivotFields:=PivotFields) + + Case Else + RaiseLogicError Source:="GetPivotField" + + End Select + + Select Case VBA.Sgn(.Value) + Case In1 + If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then + RaisePivotFieldsFieldValueLongPosGtCount FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End If + Set GetPivotField = ltPivotFieldsVector.Items(.Value) + + Case InM1 + If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then + RaisePivotFieldsFieldValueLongNegGtCount FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End If + Set GetPivotField = ltPivotFieldsVector.Items(ltPivotFieldsVector.Count + Lo1 + .Value) + + Case In0 + RaisePivotFieldsFieldValueLongEq0 FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End Select + + End If + End With +End Function + +Public Function GetPivotCRField(PivotFields As Excel.PivotFields, FieldNV As tyNameValue) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotCRField|Function" + Dim lcPivotField As Excel.PivotField + Dim lvVarType As VBA.VbVarType + + Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=FieldNV.Value) + If lcPivotField Is Nothing Then + RaisePivotFieldDoesNotExist NameValue:=FieldNV + Else + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + Set GetPivotCRField = lcPivotField + Else + RaisePivotFieldNoColumnNoRow NameValue:=FieldNV + End If + End With + End If + + Set lcPivotField = Nothing +End Function + +Public Function GetPivotFieldOrNothingByValue(PivotFields As Excel.PivotFields, Value As Variant) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothingByValue|Function" + Dim lcPivotField As Excel.PivotField + Dim lvVarType As VBA.VbVarType + + On Error GoTo CatchError + + If VBA.VarType(VarName:=Value) = VBA.VbVarType.vbString Then + Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=Value) + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + Set GetPivotFieldOrNothingByValue = lcPivotField + End If + End With + Else + lvVarType = VBA.VarType(VarName:=Value) + If lvVarType = VBA.VbVarType.vbLong _ + Or lvVarType = VBA.VbVarType.vbInteger Then + lvVarType = VBA.VbVarType.vbDouble + End If + For Each lcPivotField In PivotFields + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + With .LabelRange.Resize(RowSize:=Lo1, ColumnSize:=Lo1) + 'Debug.Print VBA.VarType(VarName:=.Value), .Value + If VBA.VarType(VarName:=.Value) = lvVarType Then + If .Value = Value Then + Set GetPivotFieldOrNothingByValue = lcPivotField + Exit For + End If + ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then + If .Value2 = Value Then + Set GetPivotFieldOrNothingByValue = lcPivotField + Exit For + End If + End If + End With + End If + End With + Next + End If + + Set lcPivotField = Nothing + Exit Function + +CatchError: + GetPivotFieldOrNothingByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=VBA.Err.Description _ + ) +End Function + +Public Function GetPivotFieldOrientationString(PivotFieldOrientation As Excel.XlPivotFieldOrientation) As String + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientationString|Function" + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotFieldOrientationString = "Column" + Case XlPivotFieldOrientation.xlDataField + GetPivotFieldOrientationString = "Data" + Case XlPivotFieldOrientation.xlHidden + GetPivotFieldOrientationString = "Hidden" + Case XlPivotFieldOrientation.xlPageField + GetPivotFieldOrientationString = "Page" + Case XlPivotFieldOrientation.xlRowField + GetPivotFieldOrientationString = "Row" + Case Else + GetPivotFieldOrientationString = "Pivot" + End Select +End Function + +Public Function GetPivotFieldDataRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotFieldDataRangeOrNothing = PivotField.DataRange +End Function + +Public Function GetPivotFieldLabelRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotFieldLabelRangeOrNothing = PivotField.LabelRange +End Function + +Private Sub GetPivotFieldColumnVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Long + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).ColumnFields + pfv = GetPivotFieldColumnVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldColumnVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laMatrix() As Excel.PivotField + Dim laResult() As Excel.PivotField + Dim lvColumn As Long + Dim lvCount As Long + Dim lvDataFieldPosition As Long + Dim lvIndex As Long + Dim lvPosition As Long + + Set lcPivotTable = PivotFields.Parent + + lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) + + With lcPivotTable.TableRange1 + ReDim laMatrix(.Column To .Column + .Columns.Count - Lo1, Lo1 To PivotFields.Count) + End With + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + If lcPivotField.Position <> lvDataFieldPosition Then + With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laMatrix(.Column, lcPivotField.Position) = lcPivotField + lvCount = lvCount + Lo1 + End With + End If + End If + End If + Next + + ReDim laResult(1 To lvCount) + + For lvColumn = LBound(laMatrix, Lo1) To UBound(laMatrix, Lo1) + For lvPosition = LBound(laMatrix, Lo2) To UBound(laMatrix, Lo2) + If Not laMatrix(lvColumn, lvPosition) Is Nothing Then + lvIndex = lvIndex + Lo1 + Set laResult(lvIndex) = laMatrix(lvColumn, lvPosition) + End If + Next + Next + + GetPivotFieldColumnVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ + , Count:=lvCount _ + ) + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldColumnVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2Test|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Long + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).ColumnFields + pfv = GetPivotFieldColumnVisibleVector2(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldColumnVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotFieldsVector + Dim laVector() As Excel.PivotField + Dim lvDataFieldPosition As Long + Dim lvIndex As Long + + Set lcPivotTable = PivotFields.Parent + + lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) + + If lvDataFieldPosition = Lo0 Then + + If PivotFields.Count > Lo0 Then + ReDim ltVector.Items(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + With ltVector + .Count = .Count + Lo1 + Set .Items(lcPivotField.Position) = lcPivotField + End With + End If + End If + Next + End If + + Else + + If PivotFields.Count > Lo1 Then + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + If lcPivotField.Position <> lvDataFieldPosition Then + Set laVector(lcPivotField.Position) = lcPivotField + End If + End If + End If + Next + + With ltVector + ReDim ltVector.Items(Lo1 To PivotFields.Count - Lo1) + For lvIndex = LBound(laVector) To UBound(laVector) + If Not laVector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = laVector(lvIndex) + End If + Next + End With + + End If + End If + + GetPivotFieldColumnVisibleVector2 = ltVector + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldDataVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Dim pt As PivotTable + Set pt = ActiveSheet.PivotTables(1) + Set pfs = pt.DataFields + pfv = GetPivotFieldDataVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldDataVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotField + Dim lvCount As Long + + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + lvCount = lvCount + Lo1 + Set laVector(lcPivotField.Position) = lcPivotField + Next + + GetPivotFieldDataVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldPageVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim pf As PivotField + Dim pfs As PivotFields + Dim pt As PivotTable + Dim i As Long + Set pt = ActiveSheet.PivotTables(1) + Set pfs = pt.PageFields + pfv = GetPivotFieldPageVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldPageVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotField + Dim lvIndex As Long + + If PivotFields.Count = Lo0 Then + Exit Function + End If + + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + Set laVector(PivotFields.Count + Lo1 - lcPivotField.Position) = lcPivotField + Next + + GetPivotFieldPageVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=PivotFields.Count _ + ) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldRowVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).RowFields + pfv = GetPivotFieldRowVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldRowVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laMatrix() As Excel.PivotField + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotTable = PivotFields.Parent + + With lcPivotTable.TableRange1 + ReDim laMatrix(.Row To .Row + .Rows.Count - Lo1, Lo1 To PivotFields.Count) + End With + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laMatrix(.Row, lcPivotField.Position) = lcPivotField + lvCount = lvCount + Lo1 + End With + End If + End If + Next + + GetPivotFieldRowVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ + , Count:=lvCount _ + ) + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldRowVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2Test|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).RowFields + pfv = GetPivotFieldRowVisibleVector2(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldRowVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotFieldsVector + + Set lcPivotTable = PivotFields.Parent + + With ltVector + ReDim .Items(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + .Count = .Count + Lo1 + Set .Items(lcPivotField.Position) = lcPivotField + End If + End If + Next + End With + + GetPivotFieldRowVisibleVector2 = ltVector + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Public Function HasPivotFieldDataRange(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + HasPivotFieldDataRange = VBA.CBool(Not PivotField.DataRange Is Nothing) +End Function + +Public Function IsPivotFieldPositionReadable(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotFieldPositionReadable|Function" + Dim lvPosition As Long + + On Error GoTo CatchError + + lvPosition = PivotField.Position + IsPivotFieldPositionReadable = True + + Exit Function + +CatchError: + IsPivotFieldPositionReadable = False +End Function + +Private Function GetVectorFromMatrix(ByRef Matrix() As Excel.PivotField, Count As Long) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromMatrix|Function" + Dim lvIndex1 As Long + Dim lvIndex2 As Long + + With GetVectorFromMatrix + + ReDim .Items(Lo1 To Count) + + For lvIndex1 = LBound(Matrix, Lo1) To UBound(Matrix, Lo1) + For lvIndex2 = LBound(Matrix, Lo2) To UBound(Matrix, Lo2) + If Not Matrix(lvIndex1, lvIndex2) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Matrix(lvIndex1, lvIndex2) + Set Matrix(lvIndex1, lvIndex2) = Nothing + End If + Next + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + + End With +End Function + +Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotField, Count As Long) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" + Dim lvIndex As Long + + With GetVectorFromVector + + ReDim .Items(Lo1 To Count) + + For lvIndex = LBound(Vector) To UBound(Vector) + If Not Vector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Vector(lvIndex) + Set Vector(lvIndex) = Nothing + End If + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + + End With +End Function + +Public Function PivotCellValuesColumnFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlColumnField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesColumnFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.ColumnRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesColumnFieldRange" + End If +End Function +Public Function PivotCellValuesDataFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesDataFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlDataField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesDataFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.DataRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesDataFieldRange" + End If +End Function +Public Function PivotCellValuesRowFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlRowField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesRowFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.RowRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesRowFieldRange" + End If +End Function + +Public Function GetPivotFieldByPosition(PivotFields As Excel.PivotFields, Position As Long) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + + For Each lcPivotField In PivotFields + If lcPivotField.Position = Position Then + Set GetPivotFieldByPosition = lcPivotField + Exit For + End If + Next + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldsVectorSortedByPositionTest() + Dim ltVector As tyPivotFieldsVector + ltVector = GetPivotFieldsVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields) + +End Sub +Public Function GetPivotFieldsVectorSortedByPosition(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + Dim ltVector As tyPivotFieldsVector + Dim lvPosition As Long + + ' die PivotFields sortiert nach ihrer Position zurück + + With ltVector + Set .PivotFields = PivotFields + For Each lcPivotField In PivotFields + lvPosition = GetPivotFieldPosition(PivotField:=lcPivotField) + If lvPosition > Lo0 Then + If .Count < lvPosition Then + ReDim Preserve .Items(Lo1 To lvPosition) + .Count = lvPosition + End If + Set .Items(lvPosition) = lcPivotField + End If + Next + End With + + GetPivotFieldsVectorSortedByPosition = ltVector + +End Function + +Private Sub asfdGetPivotFieldItemsVisibleTest() + Const ThisProcedure As String = ThisModule & "|asfdGetPivotFieldItemsVisibleTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim lvKey As String + + Set lcPivotTable = ActiveCell.PivotTable + Set lcPivotField = lcPivotTable.RowFields(1) + Set lcPivotItems = lcPivotField.PivotItems + Set lcPivotItem = lcPivotField.PivotItems(1) + lvKey = VBA.Format$(lcPivotItem.Name, lcPivotItem.LabelRange.NumberFormat) + Set lcPivotItem = lcPivotItems(lvKey) + Set lcPivotItem = lcPivotItems("01.01.2013") + Set lcPivotItem = lcPivotItems("1/1/2013") + Set lcPivotItem = lcPivotItems("Tue") +Debug.Print lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.NumberFormatLocal + 'VBA.Format +End Sub diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_2_Processed.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_2_Processed.txt new file mode 100644 index 0000000000..3158c92d30 --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_2_Processed.txt @@ -0,0 +1,767 @@ +Attribute VB_Name = "vbFnPivotFieldPri" +Option Explicit +Option Private Module + +Private Const ThisModule As String = ThisProject & "|vbFnPivotFieldPri" + +Public Sub ClearPivotFieldsVector(PivotFieldsVector As tyPivotFieldsVector) + Const ThisProcedure As String = ThisModule & "|ClearPivotFieldsVector|Sub" + Dim lvIndex As Long + + With PivotFieldsVector + For lvIndex = Lo1 To .Count + Set .Items(lvIndex) = Nothing + Next + End With +End Sub + + +Private Sub GetPivotFieldSlicerOrNothingTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothingTest|Sub" +Debug.Print GetPivotFieldSlicerOrNothing(ActiveSheet.PivotTables(1).PivotFields("Server")).Name +End Sub +Public Function GetPivotFieldSlicerOrNothing(PivotField As Excel.PivotField) As Excel.Slicer + Const ThisProcedure As String = ThisModule & "|GetPivotFieldSlicerOrNothing|Function" + Dim lcPivotTable As Excel.PivotTable + Dim lcSlicer As Excel.Slicer + + Set lcPivotTable = PivotField.Parent + For Each lcSlicer In lcPivotTable.Slicers + If lcSlicer.SlicerCache.SourceName = PivotField.Name Then + Set GetPivotFieldSlicerOrNothing = lcSlicer + Exit For + End If + Next + + Set lcSlicer = Nothing + Set lcPivotTable = Nothing +End Function + +Public Function GetPivotFieldsVisibleVector(PivotFields As Excel.PivotFields _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + ) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldsVisibleVector|Function" + If GetPivotFieldsCount(PivotFields:=PivotFields, PivotFieldOrientation:=PivotFieldOrientation) = Lo0 Then + Exit Function + End If + + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotFieldsVisibleVector = GetPivotFieldColumnVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlDataField + GetPivotFieldsVisibleVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlRowField + GetPivotFieldsVisibleVector = GetPivotFieldRowVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlPageField + GetPivotFieldsVisibleVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) + + Case Else + RaiseLogicError Source:="GetPivotFieldsVector" + + End Select +End Function + +Private Sub GetPivotFieldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotFields As Excel.PivotFields + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim lvFieldNV As tyNameValue + Dim lvIndex As Long + Dim lvPivotFieldOrientation As XlPivotFieldOrientation + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name + lvPivotFieldOrientation = XlPivotFieldOrientation.xlPageField + Set lcPivotFields = GetPivotTablePivotFields(PivotTable:=lcPivotTable, PivotFieldOrientation:=lvPivotFieldOrientation) + For lvIndex = (lcPivotFields.Count + Lo1) * LoM1 To lcPivotFields.Count + Lo1 + On Error Resume Next + With lvFieldNV + .Name = "Fieldx" + .Value = lvIndex + End With + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If + Next + lvFieldNV.Value = "bla" + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If + lvFieldNV.Value = "Server" + Set lcPivotField = GetPivotField(PivotFields:=lcPivotFields, PivotFieldOrientation:=lvPivotFieldOrientation, FieldNV:=lvFieldNV) + If VBA.Err.Number = 0 Then +Debug.Print lvIndex, lcPivotField.Name + Else +Debug.Print lvIndex, mvDescription, fnInfoErrMsgPri.Description + End If +End Sub + +Public Function GetPivotField(PivotFields As Excel.PivotFields _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldNV As tyNameValue _ + ) As Variant + Const ThisProcedure As String = ThisModule & "|GetPivotField|Function" + Dim ltPivotFieldsVector As tyPivotFieldsVector + Dim lvPosition As Long + + If PivotFields.Count = Lo0 Then + RaisePivotFieldsCountEq0 FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotFields.Count + End If + + With FieldNV + .Value = GetLongOrStringValue(NameValue:=FieldNV) + + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then + Set GetPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields _ + , Index:=.Value _ + ) + If GetPivotField Is Nothing Then + RaisePivotFieldsFieldValueStringIsNothing FieldIndex:=.Value _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + Else + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + ltPivotFieldsVector = GetPivotFieldColumnVisibleVector2(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlDataField + ltPivotFieldsVector = GetPivotFieldDataVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlPageField + ltPivotFieldsVector = GetPivotFieldPageVisibleVector(PivotFields:=PivotFields) + + Case XlPivotFieldOrientation.xlRowField + ltPivotFieldsVector = GetPivotFieldRowVisibleVector2(PivotFields:=PivotFields) + + Case Else + RaiseLogicError Source:="GetPivotField" + + End Select + + Select Case VBA.Sgn(.Value) + Case In1 + If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then + RaisePivotFieldsFieldValueLongPosGtCount FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End If + Set GetPivotField = ltPivotFieldsVector.Items(.Value) + + Case InM1 + If VBA.Abs(.Value) > ltPivotFieldsVector.Count Then + RaisePivotFieldsFieldValueLongNegGtCount FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End If + Set GetPivotField = ltPivotFieldsVector.Items(ltPivotFieldsVector.Count + Lo1 + .Value) + + Case In0 + RaisePivotFieldsFieldValueLongEq0 FieldNV:=FieldNV _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotFieldsVector.Count + End Select + + End If + End With +End Function + +Public Function GetPivotCRField(PivotFields As Excel.PivotFields, FieldNV As tyNameValue) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotCRField|Function" + Dim lcPivotField As Excel.PivotField + Dim lvVarType As VBA.VbVarType + + Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=FieldNV.Value) + If lcPivotField Is Nothing Then + RaisePivotFieldDoesNotExist NameValue:=FieldNV + Else + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + Set GetPivotCRField = lcPivotField + Else + RaisePivotFieldNoColumnNoRow NameValue:=FieldNV + End If + End With + End If + + Set lcPivotField = Nothing +End Function + +Public Function GetPivotFieldOrNothingByValue(PivotFields As Excel.PivotFields, Value As Variant) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrNothingByValue|Function" + Dim lcPivotField As Excel.PivotField + Dim lvVarType As VBA.VbVarType + + On Error GoTo CatchError + + If VBA.VarType(VarName:=Value) = VBA.VbVarType.vbString Then + Set lcPivotField = GetPivotFieldOrNothing(PivotFields:=PivotFields, Index:=Value) + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + Set GetPivotFieldOrNothingByValue = lcPivotField + End If + End With + Else + lvVarType = VBA.VarType(VarName:=Value) + If lvVarType = VBA.VbVarType.vbLong _ + Or lvVarType = VBA.VbVarType.vbInteger Then + lvVarType = VBA.VbVarType.vbDouble + End If + For Each lcPivotField In PivotFields + With lcPivotField + If .Orientation = XlPivotFieldOrientation.xlColumnField _ + Or .Orientation = XlPivotFieldOrientation.xlRowField Then + With .LabelRange.Resize(RowSize:=Lo1, ColumnSize:=Lo1) + 'Debug.Print VBA.VarType(VarName:=.Value), .Value + If VBA.VarType(VarName:=.Value) = lvVarType Then + If .Value = Value Then + Set GetPivotFieldOrNothingByValue = lcPivotField + Exit For + End If + ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then + If .Value2 = Value Then + Set GetPivotFieldOrNothingByValue = lcPivotField + Exit For + End If + End If + End With + End If + End With + Next + End If + + Set lcPivotField = Nothing + Exit Function + +CatchError: + GetPivotFieldOrNothingByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=VBA.Err.Description _ + ) +End Function + +Public Function GetPivotFieldOrientationString(PivotFieldOrientation As Excel.XlPivotFieldOrientation) As String + Const ThisProcedure As String = ThisModule & "|GetPivotFieldOrientationString|Function" + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotFieldOrientationString = "Column" + Case XlPivotFieldOrientation.xlDataField + GetPivotFieldOrientationString = "Data" + Case XlPivotFieldOrientation.xlHidden + GetPivotFieldOrientationString = "Hidden" + Case XlPivotFieldOrientation.xlPageField + GetPivotFieldOrientationString = "Page" + Case XlPivotFieldOrientation.xlRowField + GetPivotFieldOrientationString = "Row" + Case Else + GetPivotFieldOrientationString = "Pivot" + End Select +End Function + +Public Function GetPivotFieldDataRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotFieldDataRangeOrNothing = PivotField.DataRange +End Function + +Public Function GetPivotFieldLabelRangeOrNothing(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotFieldLabelRangeOrNothing = PivotField.LabelRange +End Function + +Private Sub GetPivotFieldColumnVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Long + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).ColumnFields + pfv = GetPivotFieldColumnVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldColumnVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laMatrix() As Excel.PivotField + Dim laResult() As Excel.PivotField + Dim lvColumn As Long + Dim lvCount As Long + Dim lvDataFieldPosition As Long + Dim lvIndex As Long + Dim lvPosition As Long + + Set lcPivotTable = PivotFields.Parent + + lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) + + With lcPivotTable.TableRange1 + ReDim laMatrix(.Column To .Column + .Columns.Count - Lo1, Lo1 To PivotFields.Count) + End With + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + If lcPivotField.Position <> lvDataFieldPosition Then + With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laMatrix(.Column, lcPivotField.Position) = lcPivotField + lvCount = lvCount + Lo1 + End With + End If + End If + End If + Next + + ReDim laResult(1 To lvCount) + + For lvColumn = LBound(laMatrix, Lo1) To UBound(laMatrix, Lo1) + For lvPosition = LBound(laMatrix, Lo2) To UBound(laMatrix, Lo2) + If Not laMatrix(lvColumn, lvPosition) Is Nothing Then + lvIndex = lvIndex + Lo1 + Set laResult(lvIndex) = laMatrix(lvColumn, lvPosition) + End If + Next + Next + + GetPivotFieldColumnVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ + , Count:=lvCount _ + ) + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldColumnVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2Test|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Long + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).ColumnFields + pfv = GetPivotFieldColumnVisibleVector2(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldColumnVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldColumnVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotFieldsVector + Dim laVector() As Excel.PivotField + Dim lvDataFieldPosition As Long + Dim lvIndex As Long + + Set lcPivotTable = PivotFields.Parent + + lvDataFieldPosition = GetPivotTableDataFieldPositionInPivotColumnFields(PivotTable:=lcPivotTable) + + If lvDataFieldPosition = Lo0 Then + + If PivotFields.Count > Lo0 Then + ReDim ltVector.Items(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + With ltVector + .Count = .Count + Lo1 + Set .Items(lcPivotField.Position) = lcPivotField + End With + End If + End If + Next + End If + + Else + + If PivotFields.Count > Lo1 Then + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + If lcPivotField.Position <> lvDataFieldPosition Then + Set laVector(lcPivotField.Position) = lcPivotField + End If + End If + End If + Next + + With ltVector + ReDim ltVector.Items(Lo1 To PivotFields.Count - Lo1) + For lvIndex = LBound(laVector) To UBound(laVector) + If Not laVector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = laVector(lvIndex) + End If + Next + End With + + End If + End If + + GetPivotFieldColumnVisibleVector2 = ltVector + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldDataVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Dim pt As PivotTable + Set pt = ActiveSheet.PivotTables(1) + Set pfs = pt.DataFields + pfv = GetPivotFieldDataVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldDataVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldDataVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotField + Dim lvCount As Long + + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + lvCount = lvCount + Lo1 + Set laVector(lcPivotField.Position) = lcPivotField + Next + + GetPivotFieldDataVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldPageVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim pf As PivotField + Dim pfs As PivotFields + Dim pt As PivotTable + Dim i As Long + Set pt = ActiveSheet.PivotTables(1) + Set pfs = pt.PageFields + pfv = GetPivotFieldPageVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldPageVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldPageVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotField + Dim lvIndex As Long + + If PivotFields.Count = Lo0 Then + Exit Function + End If + + ReDim laVector(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + Set laVector(PivotFields.Count + Lo1 - lcPivotField.Position) = lcPivotField + Next + + GetPivotFieldPageVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=PivotFields.Count _ + ) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldRowVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVectorTest|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).RowFields + pfv = GetPivotFieldRowVisibleVector(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldRowVisibleVector(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laMatrix() As Excel.PivotField + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotTable = PivotFields.Parent + + With lcPivotTable.TableRange1 + ReDim laMatrix(.Row To .Row + .Rows.Count - Lo1, Lo1 To PivotFields.Count) + End With + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + With lcPivotField.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laMatrix(.Row, lcPivotField.Position) = lcPivotField + lvCount = lvCount + Lo1 + End With + End If + End If + Next + + GetPivotFieldRowVisibleVector = GetVectorFromMatrix(Matrix:=laMatrix _ + , Count:=lvCount _ + ) + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldRowVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2Test|Sub" + Dim pfv As tyPivotFieldsVector + Dim i As Variant + Dim pf As PivotField + Dim pfs As PivotFields + Set pfs = ActiveSheet.PivotTables(1).RowFields + pfv = GetPivotFieldRowVisibleVector2(pfs) + For i = Lo1 To pfv.Count + Set pf = pfv.Items(i) +Debug.Print i, pf.Name + Next +End Sub +Public Function GetPivotFieldRowVisibleVector2(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldRowVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotFieldsVector + + Set lcPivotTable = PivotFields.Parent + + With ltVector + ReDim .Items(Lo1 To PivotFields.Count) + + For Each lcPivotField In PivotFields + If HasPivotFieldDataRange(PivotField:=lcPivotField) Then + If IsPivotFieldPositionReadable(PivotField:=lcPivotField) Then + .Count = .Count + Lo1 + Set .Items(lcPivotField.Position) = lcPivotField + End If + End If + Next + End With + + GetPivotFieldRowVisibleVector2 = ltVector + + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Public Function HasPivotFieldDataRange(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|HasPivotFieldDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + HasPivotFieldDataRange = VBA.CBool(Not PivotField.DataRange Is Nothing) +End Function + +Public Function IsPivotFieldPositionReadable(PivotField As Excel.PivotField) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotFieldPositionReadable|Function" + Dim lvPosition As Long + + On Error GoTo CatchError + + lvPosition = PivotField.Position + IsPivotFieldPositionReadable = True + + Exit Function + +CatchError: + IsPivotFieldPositionReadable = False +End Function + +Private Function GetVectorFromMatrix(ByRef Matrix() As Excel.PivotField, Count As Long) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromMatrix|Function" + Dim lvIndex1 As Long + Dim lvIndex2 As Long + + With GetVectorFromMatrix + + ReDim .Items(Lo1 To Count) + + For lvIndex1 = LBound(Matrix, Lo1) To UBound(Matrix, Lo1) + For lvIndex2 = LBound(Matrix, Lo2) To UBound(Matrix, Lo2) + If Not Matrix(lvIndex1, lvIndex2) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Matrix(lvIndex1, lvIndex2) + Set Matrix(lvIndex1, lvIndex2) = Nothing + End If + Next + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + + End With +End Function + +Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotField, Count As Long) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" + Dim lvIndex As Long + + With GetVectorFromVector + + ReDim .Items(Lo1 To Count) + + For lvIndex = LBound(Vector) To UBound(Vector) + If Not Vector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Vector(lvIndex) + Set Vector(lvIndex) = Nothing + End If + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + + End With +End Function + +Public Function PivotCellValuesColumnFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesColumnFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlColumnField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesColumnFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.ColumnRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesColumnFieldRange" + End If +End Function +Public Function PivotCellValuesDataFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesDataFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlDataField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesDataFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.DataRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesDataFieldRange" + End If +End Function +Public Function PivotCellValuesRowFieldRange(PivotField As Excel.PivotField) As Excel.Range + Const ThisProcedure As String = ThisModule & "|PivotCellValuesRowFieldRange|Function" + Dim lcRange As Excel.Range + + If PivotField.Orientation = XlPivotFieldOrientation.xlRowField Then + Set lcRange = PivotCellValuesRowRange(PivotTable:=PivotField.Parent) + Set PivotCellValuesRowFieldRange = Application.Intersect(Arg1:=lcRange.EntireRow _ + , Arg2:=PivotField.RowRange.EntireColumn _ + ) + Set lcRange = Nothing + Else + RaiseLogicError Source:="PivotCellValuesRowFieldRange" + End If +End Function + +Public Function GetPivotFieldByPosition(PivotFields As Excel.PivotFields, Position As Long) As Excel.PivotField + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + + For Each lcPivotField In PivotFields + If lcPivotField.Position = Position Then + Set GetPivotFieldByPosition = lcPivotField + Exit For + End If + Next + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotFieldsVectorSortedByPositionTest() + Dim ltVector As tyPivotFieldsVector + ltVector = GetPivotFieldsVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields) + +End Sub +Public Function GetPivotFieldsVectorSortedByPosition(PivotFields As Excel.PivotFields) As tyPivotFieldsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcPivotField As Excel.PivotField + Dim ltVector As tyPivotFieldsVector + Dim lvPosition As Long + + ' die PivotFields sortiert nach ihrer Position zurück + + With ltVector + Set .PivotFields = PivotFields + For Each lcPivotField In PivotFields + lvPosition = GetPivotFieldPosition(PivotField:=lcPivotField) + If lvPosition > Lo0 Then + If .Count < lvPosition Then + ReDim Preserve .Items(Lo1 To lvPosition) + .Count = lvPosition + End If + Set .Items(lvPosition) = lcPivotField + End If + Next + End With + + GetPivotFieldsVectorSortedByPosition = ltVector + +End Function + +Private Sub asfdGetPivotFieldItemsVisibleTest() + Const ThisProcedure As String = ThisModule & "|asfdGetPivotFieldItemsVisibleTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim lvKey As String + + Set lcPivotTable = ActiveCell.PivotTable + Set lcPivotField = lcPivotTable.RowFields(1) + Set lcPivotItems = lcPivotField.PivotItems + Set lcPivotItem = lcPivotField.PivotItems(1) + lvKey = VBA.Format$(lcPivotItem.Name, lcPivotItem.LabelRange.NumberFormat) + Set lcPivotItem = lcPivotItems(lvKey) + Set lcPivotItem = lcPivotItems("01.01.2013") + Set lcPivotItem = lcPivotItems("1/1/2013") + Set lcPivotItem = lcPivotItems("Tue") +Debug.Print lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.NumberFormatLocal + 'VBA.Format +End Sub diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_3.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_3.txt new file mode 100644 index 0000000000..9a3bee3258 --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_3.txt @@ -0,0 +1,981 @@ +Attribute VB_Name = "vbFnPivotItemPri" +Option Explicit +Option Private Module + +#Const ccDebug = True + +Private Const ThisModule As String = ThisProject & "|vbFnPivotItemPri" + +Public Sub ClearPivotItemsVector(PivotItemsVector As tyPivotItemsVector) + Const ThisProcedure As String = ThisModule & "|ClearPivotItemsVector|Sub" + Dim lvIndex As Long + + With PivotItemsVector + For lvIndex = Lo1 To .Count + Set .Items(lvIndex) = Nothing + Next + End With +End Sub + +Public Function GetPivotItemLabelRangeOrNothing(PivotItem As Excel.PivotItem) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotItemDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowItems den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotItemLabelRangeOrNothing = PivotItem.LabelRange +End Function + +Public Function GetPivotItemsVisibleVector(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , SelectedOnly As Boolean _ + ) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleVector|Function" + Dim lcPivotItem As Excel.PivotItem + + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotItemsVisibleVector = GetPivotItemColumnVisibleVector(PivotItems:=PivotItems) + + Case XlPivotFieldOrientation.xlRowField + GetPivotItemsVisibleVector = GetPivotItemRowVisibleVector(PivotItems:=PivotItems) + + Case XlPivotFieldOrientation.xlPageField + GetPivotItemsVisibleVector = GetPivotItemPageVisibleVector(PivotItems:=PivotItems, SelectedOnly:=SelectedOnly) + + Case Else + RaiseLogicError Source:="GetPivotItemsVector" + + End Select +End Function + +Private Sub GetPivotItemTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim v + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name +' Set lcPivotField = lcPivotTable.PageFields("b") + Set lcPivotField = lcPivotTable.RowFields("b") +Debug.Print lcPivotField.Name + For Each lcPivotItem In lcPivotField.PivotItems + On Error Resume Next + v = lcPivotItem.Visible +Debug.Print Err.Number, Err.Description + On Error Resume Next +Debug.Print lcPivotItem.DataRange.Address +Debug.Print Err.Number, Err.Description + Next + Exit Sub + + Set lcPivotItem = GetPivotItem(PivotItems:=lcPivotField.PivotItems _ + , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ + , FieldItem:=GetPINV("F", 1, "n", 2) _ + ) +End Sub +Public Function GetPivotItem(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItem|Function" + Dim lcPivotItem As Excel.PivotItem + + ' dieser Text ist einfach Quatsch; deshalb habe ich die alte Routime (GetPivotItemOld) ausgemustert + ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert + ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String + + With FieldItem + Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) + If lcPivotItem Is Nothing Then + RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + End With + + Set GetPivotItem = lcPivotItem + + Set lcPivotItem = Nothing +End Function + +Private Sub GetPivotItemOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemOldTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim v + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name +' Set lcPivotField = lcPivotTable.PageFields("b") + Set lcPivotField = lcPivotTable.RowFields("b") +Debug.Print lcPivotField.Name + For Each lcPivotItem In lcPivotField.PivotItems + On Error Resume Next + v = lcPivotItem.Visible +Debug.Print Err.Number, Err.Description + On Error Resume Next +Debug.Print lcPivotItem.DataRange.Address +Debug.Print Err.Number, Err.Description + Next + Exit Sub + + Set lcPivotItem = GetPivotItemOld(PivotItems:=lcPivotField.PivotItems _ + , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ + , FieldItem:=GetPINV("F", 1, "n", 2) _ + ) +End Sub +Public Function GetPivotItemOld(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemOld|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + If PivotItems.Count = Lo0 Then + RaisePivotItemsCountEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotItems.Count + End If + + ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert + ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String + + With FieldItem + .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) + End With + + With FieldItem + If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then + Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) + If lcPivotItem Is Nothing Then + RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + Else + ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , SelectedOnly:=False _ + ) + + Select Case VBA.Sgn(.ItemNV.Value) + Case In1 + If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then + RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End If + Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) + + Case InM1 + If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then + RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End If + Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) + + Case In0 + RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End Select + End If + End With + + Set GetPivotItemOld = lcPivotItem + + Set lcPivotItem = Nothing +End Function + +Private Sub x() + +End Sub +'Private Sub GetPivotItem2Test() +' Const ThisProcedure As String = ThisModule & "|GetPivotItem2Test|Sub" +' Dim lcPivotTable As Excel.PivotTable +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotItem As Excel.PivotItem +' Dim lcPivotItems As Excel.PivotItems +' Dim v +' +' Set lcPivotTable = ActiveSheet.PivotTables(1) +' 'Debug.Print lcPivotTable.Parent.Name +'' Set lcPivotField = lcPivotTable.PageFields("b") +' Set lcPivotField = lcPivotTable.RowFields("b") +'Debug.Print lcPivotField.Name +' For Each lcPivotItem In lcPivotField.PivotItems +' On Error Resume Next +' v = lcPivotItem.Visible +'Debug.Print Err.Number, Err.Description +' On Error Resume Next +'Debug.Print lcPivotItem.DataRange.Address +'Debug.Print Err.Number, Err.Description +' Next +' Exit Sub +' +' Set lcPivotItem = GetPivotItem2(PivotItems:=lcPivotField.PivotItems _ +' , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ +' , FieldItem:=GetPINV("F", 1, "n", 2) _ +' ) +'End Sub +'Public Function GetPivotItem2(PivotItems As Excel.PivotItems _ +' , PivotFieldOrientation As XlPivotFieldOrientation _ +' , FieldItem As tyParentItem _ +' ) As Excel.PivotItem +' Const ThisProcedure As String = ThisModule & "|GetPivotItem2|Function" +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotItem As Excel.PivotItem +' Dim ltPivotItemsVector As tyPivotItemsVector +' Dim lvCount As Long +' Dim lvIndex As Long +' +' Set lcPivotField = PivotItems.Parent +' If PivotItems.Count = Lo0 Then +' RaisePivotItemsCountEq0 FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=PivotItems.Count +' End If +' +' ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert +' ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String +' +' With FieldItem +' .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) +' End With +' +' With FieldItem +' If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then +' Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) +' If lcPivotItem Is Nothing Then +' RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation +' End If +' Else +' ltPivotItemsVector = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) +' +' Select Case VBA.Sgn(.ItemNV.Value) +' Case In1 +' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then +' RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End If +' Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) +' +' Case InM1 +' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then +' RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End If +' Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) +' +' Case In0 +' RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End Select +' End If +' End With +' +' Set GetPivotItem2 = lcPivotItem +' +' Set lcPivotItem = Nothing +'End Function +' +Public Function GetPivotItemsVisibleDataRange(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleDataRange|Function" + Dim lcDataRange As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + If PivotItems.Count = Lo0 Then + RaisePivotItemsCountEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotItems.Count + End If + + ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , SelectedOnly:=False _ + ) + With ltPivotItemsVector + For lvIndex = LBound(.Items) To UBound(.Items) + If lcDataRange Is Nothing Then + Set lcDataRange = .Items(lvIndex).DataRange + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange _ + , Arg2:=.Items(lvIndex).DataRange _ + ) + End If + Next + End With + + Set GetPivotItemsVisibleDataRange = lcDataRange + + Set lcPivotField = Nothing + Set lcDataRange = Nothing +End Function + +Private Sub GetPivotItemByValueTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemByValueTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Set lcPivotTable = ActiveSheet.PivotTables(1) + Set lcPivotField = lcPivotTable.PivotFields("Time") + 'Debug.Print GetPivotItemByValue(lcPivotField.PivotItems, VBA.TimeSerial(1, 0, 0), "bla").Name +End Sub +Public Function GetPivotItemByValue(PivotItems As Excel.PivotItems, ItemNV As tyNameValue) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemByValue|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lvVarType As VBA.VbVarType + + On Error GoTo CatchError + + With ItemNV + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then + On Error Resume Next + Set GetPivotItemByValue = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.Value) + Else + lvVarType = VBA.VarType(VarName:=.Value) + If lvVarType = VBA.VbVarType.vbLong _ + Or lvVarType = VBA.VbVarType.vbInteger Then + lvVarType = VBA.VbVarType.vbDouble + End If + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + 'Debug.Print VBA.VarType(VarName:=.Value), .Value + If VBA.VarType(VarName:=.Value) = lvVarType Then + If .Value = ItemNV.Value Then + Set GetPivotItemByValue = lcPivotItem + Exit For + End If + ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then + If .Value2 = ItemNV.Value Then + Set GetPivotItemByValue = lcPivotItem + Exit For + End If + End If + End With + End If + Next + End If + End With + If GetPivotItemByValue Is Nothing Then + RaisePivotItemByValueNotFound NameValue:=ItemNV + End If + + Exit Function + +CatchError: + GetPivotItemByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=VBA.Err.Description _ + ) +End Function + +Private Sub GetPivotFieldItemsVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVectorTest|Sub" + Dim ltVector As tyPivotItemsVector + ltVector = GetPivotFieldItemsVisibleVector(ActiveCell.PivotTable.ColumnFields("host2")) + Stop +End Sub +Private Function GetPivotFieldItemsVisibleVector(PivotField As Excel.PivotField) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVector|Function" + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotLine As Excel.PivotLine + Dim lcPivotLineCell As Excel.PivotCell + Dim lcPivotItem As Excel.PivotItem + Dim ltVector As tyPivotItemsVector + + Set lcPivotAxis = GetPivotFieldPivotAxis(PivotField:=PivotField) + For Each lcPivotLine In lcPivotAxis.PivotLines + If lcPivotLine.LineType = XlPivotLineType.xlPivotLineRegular Then + For Each lcPivotLineCell In lcPivotLine.PivotLineCells + With lcPivotLineCell + If .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + If .PivotField.Name = PivotField.Name Then + Set lcPivotItem = .PivotItem + 'Debug.Print "PivotField", PivotField.Name, PivotField.NumberFormat, PivotFieldDataTypeName(PivotField.DataType) + Debug.Print "PivotItem ", lcPivotItem.Name, VarTypeName(lcPivotItem.Value) + 'Debug.Print "LabelRange", lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.Value, VarTypeName(lcPivotItem.LabelRange.Value) + + With ltVector + .Count = .Count + Lo1 + If .Count = Lo1 Then + ReDim .Items(Lo1 To .Count) + Else + ReDim Preserve .Items(Lo1 To .Count) + End If + Set .Items(.Count) = lcPivotItem + End With +' Select Case PivotField.DataType +' Case XlPivotFieldDataType.xlDate +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case XlPivotFieldDataType.xlNumber +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case XlPivotFieldDataType.xlText +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case Else +' Stop +' End Select + Exit For + End If + End If + End With + Next + End If + Next + + GetPivotFieldItemsVisibleVector = ltVector + +End Function + +Public Function GetPivotItemColumnVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" + + ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemColumnVisibleVectorOldTest) macht + ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten + ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt + ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 + ' aber vorher war's so, also lass ich es + + GetPivotItemColumnVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlColumnField) + +End Function + +Private Sub GetPivotItemColumnVisibleVectorOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOldTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).ColumnFields("host2") + piv = GetPivotItemColumnVisibleVectorOld(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemColumnVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOld|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + Set lcPivotTable = lcPivotField.Parent + 'Debug.Print lcPivotField.Name + + With lcPivotTable.TableRange1 + ReDim laVector(.Column To .Column + .Columns.Count - Lo1) + End With + + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(PivotItem:=lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laVector(.Column) = lcPivotItem + lvCount = lvCount + Lo1 + End With + End If + Next + + GetPivotItemColumnVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + GetPivotItemColumnVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemColumnVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2Test|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).ColumnFields("Server") + piv = GetPivotItemColumnVisibleVector2(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemColumnVisibleVector2(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + + Set lcPivotField = PivotItems.Parent + + GetPivotItemColumnVisibleVector2 = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemPageVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVectorTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).PageFields("DateHHMMSS") + piv = GetPivotItemPageVisibleVector(pf.PivotItems, False) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemPageVisibleVector(PivotItems As Excel.PivotItems, SelectedOnly As Boolean) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVector|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + Dim lvFieldDate As Date + Dim lvItemDate As Date + Dim v As Variant + + Set lcPivotField = PivotItems.Parent + 'Debug.Print lcPivotField.Name + + If lcPivotField.AllItemsVisible Then + + If Not SelectedOnly Then + ReDim laVector(Lo1 To PivotItems.Count) + + For Each lcPivotItem In PivotItems + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + Next + End If + + ElseIf lcPivotField.EnableMultiplePageItems Then + ' mehrere PageFields ausgewählt + + ReDim laVector(Lo1 To PivotItems.Count) + + For Each lcPivotItem In PivotItems + lvIndex = lvIndex + Lo1 + With lcPivotItem + If IsPivotItemVisibleOnError(PivotItem:=lcPivotItem) Then + RaisePivotItemVisibleError ParName:=lcPivotField.Name + End If + If SelectedOnly Then + If .Visible Then + Set laVector(lvIndex) = lcPivotItem + lvCount = lvCount + Lo1 + End If + Else + Set laVector(lvIndex) = lcPivotItem + lvCount = lvCount + Lo1 + End If + End With + Next + + Else + 'nur ein einzelnes PageField ausgewählt + ReDim laVector(Lo1 To Lo1) + If lcPivotField.DataType = XlPivotFieldDataType.xlDate Then + lvFieldDate = lcPivotField.DataRange.Value + For Each lcPivotItem In PivotItems + lvItemDate = GetDateFromPivotItemValue(PivotItemValue:=lcPivotItem.Value) + If lvItemDate = lvFieldDate Then + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + End If + Next + Else + For Each lcPivotItem In PivotItems + If lcPivotItem.Visible Then + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + Exit For + End If + Next + End If + + End If + + If lvCount > Lo0 Then + + GetPivotItemPageVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + End If + GetPivotItemPageVisibleVector.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotField = Nothing +End Function + +Public Function GetPivotItemRowVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" + + ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemRowVisibleVectorOld) macht + ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten + ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt + ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 + ' aber vorher war's so, also lass ich es + + GetPivotItemRowVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlRowField) + +End Function + +Private Sub GetPivotItemRowVisibleVectorOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOldTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).RowFields("Date") + piv = GetPivotItemRowVisibleVectorOld(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemRowVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOld|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + Set lcPivotTable = lcPivotField.Parent + 'Debug.Print lcPivotField.Name + + With lcPivotTable.TableRange1 + ReDim laVector(.Row To .Row + .Rows.Count - Lo1) + End With + + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(PivotItem:=lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laVector(.Row) = lcPivotItem + lvCount = lvCount + Lo1 + End With + End If + Next + + GetPivotItemRowVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + GetPivotItemRowVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemRowColumnVisibleVectorTest() + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lvOrientation As XlPivotFieldOrientation + + Set lcPivotTable = ActiveSheet.PivotTables(1) + Set lcPivotField = lcPivotTable.PivotFields("Host") + lvOrientation = lcPivotField.Orientation + + + ltPivotItemsVector = GetPivotItemRowColumnVisibleVector(lcPivotField.PivotItems, lvOrientation) +End Sub + +Public Function GetPivotItemRowColumnVisibleVector(PivotItems As Excel.PivotItems, PivotFieldOrientation As XlPivotFieldOrientation) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector|Function" + Dim lcArea As Excel.Range + Dim lcRange As Excel.Range + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotCell As Excel.PivotCell + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotLine As Excel.PivotLine + Dim lcPivotTable As Excel.PivotTable + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvAreaOK As Boolean + Dim lvAreaSize As Long + Dim lvCellsCount As Long + Dim lvIndex As Long + Dim lvPivotItemsCount As Long + Dim lvPosition As Long + + ' es werden die ItemNamen des PivotField ermittelt + ' die mit den Kriterien, die in den PivotFieldPivotItemAxes übereinstimmten + ' die ItemName werden von links nacch rechts bei Column und + ' und von oben nach unten bei Row ausgegeben + ' also so, wie sie eben in der PivotTable angezeigt werden + + Set lcPivotField = PivotItems.Parent + With lcPivotField + Set lcPivotTable = .Parent + lvPosition = .Position + End With + + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + Set lcPivotAxis = lcPivotTable.PivotRowAxis + + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + Set lcPivotAxis = lcPivotTable.PivotColumnAxis + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + + Set lcPivotLine = lcPivotAxis.PivotLines(Index:=Lo1) + Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) + Set lcPivotItem = lcPivotCell.PivotItem + + ' die Schrittweite und länge bestimmen, in denen jeweils über die Achse gehoppelt wird + + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + lvCellsCount = lcPivotField.DataRange.Rows.Count + lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Rows.Count + + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + lvCellsCount = lcPivotField.DataRange.Columns.Count + lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Columns.Count + + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + + For lvIndex = Lo1 To lvCellsCount Step lvAreaSize + Set lcPivotLine = lcPivotAxis.PivotLines(Index:=lvIndex) + ' das ist die Cell von PivotField + Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) + Set lcPivotItem = lcPivotCell.PivotItem + #If ccDebug Then + Debug.Print lcPivotItem.DataRange.Address + lcPivotItem.DataRange.Select + #End If + For Each lcArea In lcPivotItem.DataRange.Areas + #If ccDebug Then + lcArea.Select + #End If + lvAreaOK = False + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + If lcArea.Row = lcPivotCell.Range.Row Then + lvAreaOK = True + #If ccDebug Then + lcArea.Select + #End If + End If + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + If lcArea.Column = lcPivotCell.Range.Column Then + lvAreaOK = True + #If ccDebug Then + lcArea.Select + #End If + End If + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + If lvAreaOK Then + With ltPivotItemsVector + lvPivotItemsCount = lvPivotItemsCount + Lo1 + .Count = lvPivotItemsCount + ReDim Preserve .Items(Lo1 To .Count) + Set .Items(.Count) = lcPivotItem + End With + Exit For + End If + Next + Next + + ltPivotItemsVector.PivotFieldDataType = lcPivotField.DataType + + GetPivotItemRowColumnVisibleVector = ltPivotItemsVector + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Public Function IsPivotItemVisible(PivotItem As Excel.PivotItem) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotItemVisible|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + IsPivotItemVisible = VBA.CBool(Not PivotItem.DataRange Is Nothing) +End Function + +Public Function IsPivotItemVisibleOnError(PivotItem As Excel.PivotItem) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotItemVisibleOnError|Function" + Dim lvVisible As Boolean + On Error GoTo CatchError + lvVisible = PivotItem.Visible + IsPivotItemVisibleOnError = False + Exit Function +CatchError: + IsPivotItemVisibleOnError = True +End Function + +Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotItem, Count As Long) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" + Dim lvIndex As Long + + If Count > Lo0 Then + With GetVectorFromVector + ReDim .Items(Lo1 To Count) + + For lvIndex = LBound(Vector) To UBound(Vector) + If Not Vector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Vector(lvIndex) + Set Vector(lvIndex) = Nothing + End If + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + End With + End If +End Function + +Public Function GetPivotItemLabelRangeValue(PivotItem As Excel.PivotItem) As Variant + Const ThisProcedure As String = ThisModule & "|GetPivotItemLabelRangeValue|Function" + Dim lcPivotField As Excel.PivotField + Dim lvNumberFormat As String + + Set lcPivotField = PivotItem.Parent + With PivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDouble Then + On Error Resume Next + ' NumberFormat wirft bei ColumnFields einen Fehler + lvNumberFormat = lcPivotField.NumberFormat + On Error GoTo 0 + If VBA.InStr(lvNumberFormat, ConChrColon) > Lo0 Then + GetPivotItemLabelRangeValue = VBA.CDate(.Value) + Else + GetPivotItemLabelRangeValue = .Value + End If + Else + GetPivotItemLabelRangeValue = .Value + End If + + End With + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemAreasVisibleVectorSortedByPositionTest() + Dim ltVector As tyPivotItemAreasVector + ltVector = GetPivotItemAreasVisibleVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields("CPU").PivotItems) + +End Sub +Public Function GetPivotItemAreasVisibleVectorSortedByPosition(PivotItems As Excel.PivotItems) As tyPivotItemAreasVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcArea As Excel.Range + Dim lcCell As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotItemAreasVector + Dim lvAreaSize As Long + Dim lvCellsCount As Long + Dim lvCount As Long + Dim lvIndex As Long + Dim lvOrientation As XlPivotFieldOrientation + Dim lvPosition As Long + + ' die PivotFields sortiert nach ihrer Position zurück + + Set lcPivotField = PivotItems.Parent + lvOrientation = lcPivotField.Orientation + lvPosition = lcPivotField.Position + + Set lcPivotTable = lcPivotField.Parent + + If lvOrientation = XlPivotFieldOrientation.xlRowField Then + ' rows + lvAreaSize = Lo1 + lvCellsCount = GetPivotTableRowLabelRange(PivotTable:=lcPivotTable).Rows.Count + + With ltVector + For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize + Set lcCell = lcPivotField.DataRange.Offset(RowOffset:=lvIndex).Resize(RowSize:=Lo1) + #If ccDebug Then + lcCell.Select + #End If + Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem + lvCount = lvCount + Lo1 + ReDim Preserve .Items(Lo1 To lvCount) + With .Items(lvCount) + Set .PivotItem = lcPivotItem + End With + .Count = lvCount + Next + + End With + + ElseIf lvOrientation = XlPivotFieldOrientation.xlColumnField Then + ' Columns + lvAreaSize = lcPivotTable.DataFields.Count + lvCellsCount = GetPivotTableColumnLabelRange(PivotTable:=lcPivotTable).Columns.Count + + With ltVector + For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize + Set lcCell = lcPivotField.DataRange.Offset(ColumnOffset:=lvIndex).Resize(ColumnSize:=Lo1) + #If ccDebug Then + lcCell.Select + #End If + Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem + lvCount = lvCount + Lo1 + ReDim Preserve .Items(Lo1 To lvCount) + With .Items(lvCount) + Set .PivotItem = lcPivotItem + End With + .Count = lvCount + Next + + End With + + + End If + + + GetPivotItemAreasVisibleVectorSortedByPosition = ltVector + +End Function + +Private Sub SwapPivotItemArea(LO As tyPivotItemArea, HI As tyPivotItemArea) + Dim ltPivotItemArea As tyPivotItemArea + + ltPivotItemArea = HI + HI = LO + LO = ltPivotItemArea + #If ccDebug Then + LO.Area.Select ' muss jetzt LO sein + HI.Area.Select ' muss jetzt HI sein + #End If + +End Sub + + diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_3_Processed.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_3_Processed.txt new file mode 100644 index 0000000000..54d617e77d --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_3_Processed.txt @@ -0,0 +1,981 @@ +Attribute VB_Name = "vbFnPivotItemPri" +Option Explicit +Option Private Module + + + +Private Const ThisModule As String = ThisProject & "|vbFnPivotItemPri" + +Public Sub ClearPivotItemsVector(PivotItemsVector As tyPivotItemsVector) + Const ThisProcedure As String = ThisModule & "|ClearPivotItemsVector|Sub" + Dim lvIndex As Long + + With PivotItemsVector + For lvIndex = Lo1 To .Count + Set .Items(lvIndex) = Nothing + Next + End With +End Sub + +Public Function GetPivotItemLabelRangeOrNothing(PivotItem As Excel.PivotItem) As Excel.Range + Const ThisProcedure As String = ThisModule & "|HasPivotItemDataRange|Function" + ' eingeführt, weil PivotItem.Visible bei RowItems den Fehler "Typen unverträglich" wirft + On Error Resume Next + Set GetPivotItemLabelRangeOrNothing = PivotItem.LabelRange +End Function + +Public Function GetPivotItemsVisibleVector(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , SelectedOnly As Boolean _ + ) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleVector|Function" + Dim lcPivotItem As Excel.PivotItem + + Select Case PivotFieldOrientation + Case XlPivotFieldOrientation.xlColumnField + GetPivotItemsVisibleVector = GetPivotItemColumnVisibleVector(PivotItems:=PivotItems) + + Case XlPivotFieldOrientation.xlRowField + GetPivotItemsVisibleVector = GetPivotItemRowVisibleVector(PivotItems:=PivotItems) + + Case XlPivotFieldOrientation.xlPageField + GetPivotItemsVisibleVector = GetPivotItemPageVisibleVector(PivotItems:=PivotItems, SelectedOnly:=SelectedOnly) + + Case Else + RaiseLogicError Source:="GetPivotItemsVector" + + End Select +End Function + +Private Sub GetPivotItemTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim v + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name +' Set lcPivotField = lcPivotTable.PageFields("b") + Set lcPivotField = lcPivotTable.RowFields("b") +Debug.Print lcPivotField.Name + For Each lcPivotItem In lcPivotField.PivotItems + On Error Resume Next + v = lcPivotItem.Visible +Debug.Print Err.Number, Err.Description + On Error Resume Next +Debug.Print lcPivotItem.DataRange.Address +Debug.Print Err.Number, Err.Description + Next + Exit Sub + + Set lcPivotItem = GetPivotItem(PivotItems:=lcPivotField.PivotItems _ + , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ + , FieldItem:=GetPINV("F", 1, "n", 2) _ + ) +End Sub +Public Function GetPivotItem(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItem|Function" + Dim lcPivotItem As Excel.PivotItem + + ' dieser Text ist einfach Quatsch; deshalb habe ich die alte Routime (GetPivotItemOld) ausgemustert + ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert + ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String + + With FieldItem + Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) + If lcPivotItem Is Nothing Then + RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + End With + + Set GetPivotItem = lcPivotItem + + Set lcPivotItem = Nothing +End Function + +Private Sub GetPivotItemOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemOldTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotItems As Excel.PivotItems + Dim v + + Set lcPivotTable = ActiveSheet.PivotTables(1) + 'Debug.Print lcPivotTable.Parent.Name +' Set lcPivotField = lcPivotTable.PageFields("b") + Set lcPivotField = lcPivotTable.RowFields("b") +Debug.Print lcPivotField.Name + For Each lcPivotItem In lcPivotField.PivotItems + On Error Resume Next + v = lcPivotItem.Visible +Debug.Print Err.Number, Err.Description + On Error Resume Next +Debug.Print lcPivotItem.DataRange.Address +Debug.Print Err.Number, Err.Description + Next + Exit Sub + + Set lcPivotItem = GetPivotItemOld(PivotItems:=lcPivotField.PivotItems _ + , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ + , FieldItem:=GetPINV("F", 1, "n", 2) _ + ) +End Sub +Public Function GetPivotItemOld(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemOld|Function" + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + If PivotItems.Count = Lo0 Then + RaisePivotItemsCountEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotItems.Count + End If + + ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert + ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String + + With FieldItem + .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) + End With + + With FieldItem + If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then + Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) + If lcPivotItem Is Nothing Then + RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation + End If + Else + ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , SelectedOnly:=False _ + ) + + Select Case VBA.Sgn(.ItemNV.Value) + Case In1 + If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then + RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End If + Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) + + Case InM1 + If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then + RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End If + Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) + + Case In0 + RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=ltPivotItemsVector.Count + End Select + End If + End With + + Set GetPivotItemOld = lcPivotItem + + Set lcPivotItem = Nothing +End Function + +Private Sub x() + +End Sub +'Private Sub GetPivotItem2Test() +' Const ThisProcedure As String = ThisModule & "|GetPivotItem2Test|Sub" +' Dim lcPivotTable As Excel.PivotTable +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotItem As Excel.PivotItem +' Dim lcPivotItems As Excel.PivotItems +' Dim v +' +' Set lcPivotTable = ActiveSheet.PivotTables(1) +' 'Debug.Print lcPivotTable.Parent.Name +'' Set lcPivotField = lcPivotTable.PageFields("b") +' Set lcPivotField = lcPivotTable.RowFields("b") +'Debug.Print lcPivotField.Name +' For Each lcPivotItem In lcPivotField.PivotItems +' On Error Resume Next +' v = lcPivotItem.Visible +'Debug.Print Err.Number, Err.Description +' On Error Resume Next +'Debug.Print lcPivotItem.DataRange.Address +'Debug.Print Err.Number, Err.Description +' Next +' Exit Sub +' +' Set lcPivotItem = GetPivotItem2(PivotItems:=lcPivotField.PivotItems _ +' , PivotFieldOrientation:=XlPivotFieldOrientation.xlPageField _ +' , FieldItem:=GetPINV("F", 1, "n", 2) _ +' ) +'End Sub +'Public Function GetPivotItem2(PivotItems As Excel.PivotItems _ +' , PivotFieldOrientation As XlPivotFieldOrientation _ +' , FieldItem As tyParentItem _ +' ) As Excel.PivotItem +' Const ThisProcedure As String = ThisModule & "|GetPivotItem2|Function" +' Dim lcPivotField As Excel.PivotField +' Dim lcPivotItem As Excel.PivotItem +' Dim ltPivotItemsVector As tyPivotItemsVector +' Dim lvCount As Long +' Dim lvIndex As Long +' +' Set lcPivotField = PivotItems.Parent +' If PivotItems.Count = Lo0 Then +' RaisePivotItemsCountEq0 FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=PivotItems.Count +' End If +' +' ' bei PivotItems wird der ItemIndex nicht als Index verstanden, sondern als Wert +' ' deshalb muss bei PivotItems abgeloopt werden; außer bei einem String +' +' With FieldItem +' .ItemNV.Value = GetLongOrStringValue(NameValue:=.ItemNV) +' End With +' +' With FieldItem +' If VBA.VarType(VarName:=.ItemNV.Value) = VBA.VbVarType.vbString Then +' Set lcPivotItem = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.ItemNV.Value) +' If lcPivotItem Is Nothing Then +' RaisePivotItemsItemValueStringIsNothing FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation +' End If +' Else +' ltPivotItemsVector = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) +' +' Select Case VBA.Sgn(.ItemNV.Value) +' Case In1 +' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then +' RaisePivotItemsItemValueLongPosGtCount FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End If +' Set lcPivotItem = ltPivotItemsVector.Items(.ItemNV.Value) +' +' Case InM1 +' If VBA.Abs(.ItemNV.Value) > ltPivotItemsVector.Count Then +' RaisePivotItemsItemValueLongNegGtCount FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End If +' Set lcPivotItem = ltPivotItemsVector.Items(ltPivotItemsVector.Count + Lo1 + .ItemNV.Value) +' +' Case In0 +' RaisePivotItemsItemValueLongEq0 FieldItem:=FieldItem _ +' , PivotFieldOrientation:=PivotFieldOrientation _ +' , Count:=ltPivotItemsVector.Count +' End Select +' End If +' End With +' +' Set GetPivotItem2 = lcPivotItem +' +' Set lcPivotItem = Nothing +'End Function +' +Public Function GetPivotItemsVisibleDataRange(PivotItems As Excel.PivotItems _ + , PivotFieldOrientation As XlPivotFieldOrientation _ + , FieldItem As tyParentItem _ + ) As Excel.Range + Const ThisProcedure As String = ThisModule & "|GetPivotItemsVisibleDataRange|Function" + Dim lcDataRange As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + If PivotItems.Count = Lo0 Then + RaisePivotItemsCountEq0 FieldItem:=FieldItem _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , Count:=PivotItems.Count + End If + + ltPivotItemsVector = GetPivotItemsVisibleVector(PivotItems:=PivotItems _ + , PivotFieldOrientation:=PivotFieldOrientation _ + , SelectedOnly:=False _ + ) + With ltPivotItemsVector + For lvIndex = LBound(.Items) To UBound(.Items) + If lcDataRange Is Nothing Then + Set lcDataRange = .Items(lvIndex).DataRange + Else + Set lcDataRange = Application.Union(Arg1:=lcDataRange _ + , Arg2:=.Items(lvIndex).DataRange _ + ) + End If + Next + End With + + Set GetPivotItemsVisibleDataRange = lcDataRange + + Set lcPivotField = Nothing + Set lcDataRange = Nothing +End Function + +Private Sub GetPivotItemByValueTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemByValueTest|Sub" + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Set lcPivotTable = ActiveSheet.PivotTables(1) + Set lcPivotField = lcPivotTable.PivotFields("Time") + 'Debug.Print GetPivotItemByValue(lcPivotField.PivotItems, VBA.TimeSerial(1, 0, 0), "bla").Name +End Sub +Public Function GetPivotItemByValue(PivotItems As Excel.PivotItems, ItemNV As tyNameValue) As Excel.PivotItem + Const ThisProcedure As String = ThisModule & "|GetPivotItemByValue|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lvVarType As VBA.VbVarType + + On Error GoTo CatchError + + With ItemNV + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbString Then + On Error Resume Next + Set GetPivotItemByValue = GetPivotItemOrNothing(PivotItems:=PivotItems, Index:=.Value) + Else + lvVarType = VBA.VarType(VarName:=.Value) + If lvVarType = VBA.VbVarType.vbLong _ + Or lvVarType = VBA.VbVarType.vbInteger Then + lvVarType = VBA.VbVarType.vbDouble + End If + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + 'Debug.Print VBA.VarType(VarName:=.Value), .Value + If VBA.VarType(VarName:=.Value) = lvVarType Then + If .Value = ItemNV.Value Then + Set GetPivotItemByValue = lcPivotItem + Exit For + End If + ElseIf (VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDate And lvVarType = VBA.VbVarType.vbDouble) Then + If .Value2 = ItemNV.Value Then + Set GetPivotItemByValue = lcPivotItem + Exit For + End If + End If + End With + End If + Next + End If + End With + If GetPivotItemByValue Is Nothing Then + RaisePivotItemByValueNotFound NameValue:=ItemNV + End If + + Exit Function + +CatchError: + GetPivotItemByValue = SetErrMsg(XlCVError:=Excel.XlCVError.xlErrRef _ + , Description:=VBA.Err.Description _ + ) +End Function + +Private Sub GetPivotFieldItemsVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVectorTest|Sub" + Dim ltVector As tyPivotItemsVector + ltVector = GetPivotFieldItemsVisibleVector(ActiveCell.PivotTable.ColumnFields("host2")) + Stop +End Sub +Private Function GetPivotFieldItemsVisibleVector(PivotField As Excel.PivotField) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldItemsVisibleVector|Function" + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotLine As Excel.PivotLine + Dim lcPivotLineCell As Excel.PivotCell + Dim lcPivotItem As Excel.PivotItem + Dim ltVector As tyPivotItemsVector + + Set lcPivotAxis = GetPivotFieldPivotAxis(PivotField:=PivotField) + For Each lcPivotLine In lcPivotAxis.PivotLines + If lcPivotLine.LineType = XlPivotLineType.xlPivotLineRegular Then + For Each lcPivotLineCell In lcPivotLine.PivotLineCells + With lcPivotLineCell + If .PivotCellType = XlPivotCellType.xlPivotCellPivotItem Then + If .PivotField.Name = PivotField.Name Then + Set lcPivotItem = .PivotItem + 'Debug.Print "PivotField", PivotField.Name, PivotField.NumberFormat, PivotFieldDataTypeName(PivotField.DataType) + Debug.Print "PivotItem ", lcPivotItem.Name, VarTypeName(lcPivotItem.Value) + 'Debug.Print "LabelRange", lcPivotItem.LabelRange.NumberFormat, lcPivotItem.LabelRange.Value, VarTypeName(lcPivotItem.LabelRange.Value) + + With ltVector + .Count = .Count + Lo1 + If .Count = Lo1 Then + ReDim .Items(Lo1 To .Count) + Else + ReDim Preserve .Items(Lo1 To .Count) + End If + Set .Items(.Count) = lcPivotItem + End With +' Select Case PivotField.DataType +' Case XlPivotFieldDataType.xlDate +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case XlPivotFieldDataType.xlNumber +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case XlPivotFieldDataType.xlText +' lcDict.Add Key:=lcPivotItem.Name, Item:=lcPivotItem +' +' Case Else +' Stop +' End Select + Exit For + End If + End If + End With + Next + End If + Next + + GetPivotFieldItemsVisibleVector = ltVector + +End Function + +Public Function GetPivotItemColumnVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" + + ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemColumnVisibleVectorOldTest) macht + ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten + ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt + ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 + ' aber vorher war's so, also lass ich es + + GetPivotItemColumnVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlColumnField) + +End Function + +Private Sub GetPivotItemColumnVisibleVectorOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOldTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).ColumnFields("host2") + piv = GetPivotItemColumnVisibleVectorOld(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemColumnVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVectorOld|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + Set lcPivotTable = lcPivotField.Parent + 'Debug.Print lcPivotField.Name + + With lcPivotTable.TableRange1 + ReDim laVector(.Column To .Column + .Columns.Count - Lo1) + End With + + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(PivotItem:=lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laVector(.Column) = lcPivotItem + lvCount = lvCount + Lo1 + End With + End If + Next + + GetPivotItemColumnVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + GetPivotItemColumnVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemColumnVisibleVector2Test() + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2Test|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).ColumnFields("Server") + piv = GetPivotItemColumnVisibleVector2(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemColumnVisibleVector2(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector2|Function" + Dim lcPivotField As Excel.PivotField + + Set lcPivotField = PivotItems.Parent + + GetPivotItemColumnVisibleVector2 = GetPivotFieldItemsVisibleVector(PivotField:=lcPivotField) + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemPageVisibleVectorTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVectorTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).PageFields("DateHHMMSS") + piv = GetPivotItemPageVisibleVector(pf.PivotItems, False) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemPageVisibleVector(PivotItems As Excel.PivotItems, SelectedOnly As Boolean) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemPageVisibleVector|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + Dim lvFieldDate As Date + Dim lvItemDate As Date + Dim v As Variant + + Set lcPivotField = PivotItems.Parent + 'Debug.Print lcPivotField.Name + + If lcPivotField.AllItemsVisible Then + + If Not SelectedOnly Then + ReDim laVector(Lo1 To PivotItems.Count) + + For Each lcPivotItem In PivotItems + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + Next + End If + + ElseIf lcPivotField.EnableMultiplePageItems Then + ' mehrere PageFields ausgewählt + + ReDim laVector(Lo1 To PivotItems.Count) + + For Each lcPivotItem In PivotItems + lvIndex = lvIndex + Lo1 + With lcPivotItem + If IsPivotItemVisibleOnError(PivotItem:=lcPivotItem) Then + RaisePivotItemVisibleError ParName:=lcPivotField.Name + End If + If SelectedOnly Then + If .Visible Then + Set laVector(lvIndex) = lcPivotItem + lvCount = lvCount + Lo1 + End If + Else + Set laVector(lvIndex) = lcPivotItem + lvCount = lvCount + Lo1 + End If + End With + Next + + Else + 'nur ein einzelnes PageField ausgewählt + ReDim laVector(Lo1 To Lo1) + If lcPivotField.DataType = XlPivotFieldDataType.xlDate Then + lvFieldDate = lcPivotField.DataRange.Value + For Each lcPivotItem In PivotItems + lvItemDate = GetDateFromPivotItemValue(PivotItemValue:=lcPivotItem.Value) + If lvItemDate = lvFieldDate Then + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + End If + Next + Else + For Each lcPivotItem In PivotItems + If lcPivotItem.Visible Then + lvCount = lvCount + Lo1 + Set laVector(lvCount) = lcPivotItem + Exit For + End If + Next + End If + + End If + + If lvCount > Lo0 Then + + GetPivotItemPageVisibleVector = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + End If + GetPivotItemPageVisibleVector.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotField = Nothing +End Function + +Public Function GetPivotItemRowVisibleVector(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVector|Function" + + ' Achtung: diese neue Version macht genau das, was die alte Version (GetPivotItemRowVisibleVectorOld) macht + ' dabei kann es bei PivotFields ab den 2. Level vorkommen, dass PivotItems mehrfach auftreten + ' wenn es beim PivotField auf dem 1. Level mehrere PivotItems gibt + ' z. B: 2 Hosts auf Level 1 und die CPU 0 auf Level 2 + ' aber vorher war's so, also lass ich es + + GetPivotItemRowVisibleVector = GetPivotItemRowColumnVisibleVector(PivotItems:=PivotItems, PivotFieldOrientation:=XlPivotFieldOrientation.xlRowField) + +End Function + +Private Sub GetPivotItemRowVisibleVectorOldTest() + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOldTest|Sub" + Dim piv As tyPivotItemsVector + Dim i As Variant + Dim pf As PivotField + Dim pi As PivotItem + Set pf = ActiveSheet.PivotTables(1).RowFields("Date") + piv = GetPivotItemRowVisibleVectorOld(pf.PivotItems) + For i = 1 To piv.Count + Set pi = piv.Items(i) +Debug.Print i, pf.Name, pi.Name, pf.Position + Next +End Sub +Public Function GetPivotItemRowVisibleVectorOld(PivotItems As Excel.PivotItems) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemRowVisibleVectorOld|Function" + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotField As Excel.PivotField + Dim lcPivotTable As Excel.PivotTable + Dim laVector() As Excel.PivotItem + Dim lvCount As Long + Dim lvIndex As Long + + Set lcPivotField = PivotItems.Parent + Set lcPivotTable = lcPivotField.Parent + 'Debug.Print lcPivotField.Name + + With lcPivotTable.TableRange1 + ReDim laVector(.Row To .Row + .Rows.Count - Lo1) + End With + + For Each lcPivotItem In PivotItems + If IsPivotItemVisible(PivotItem:=lcPivotItem) Then + With lcPivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + Set laVector(.Row) = lcPivotItem + lvCount = lvCount + Lo1 + End With + End If + Next + + GetPivotItemRowVisibleVectorOld = GetVectorFromVector(Vector:=laVector _ + , Count:=lvCount _ + ) + + GetPivotItemRowVisibleVectorOld.PivotFieldDataType = lcPivotField.DataType + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemRowColumnVisibleVectorTest() + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lcPivotTable As Excel.PivotTable + Dim lcPivotField As Excel.PivotField + Dim lvOrientation As XlPivotFieldOrientation + + Set lcPivotTable = ActiveSheet.PivotTables(1) + Set lcPivotField = lcPivotTable.PivotFields("Host") + lvOrientation = lcPivotField.Orientation + + + ltPivotItemsVector = GetPivotItemRowColumnVisibleVector(lcPivotField.PivotItems, lvOrientation) +End Sub + +Public Function GetPivotItemRowColumnVisibleVector(PivotItems As Excel.PivotItems, PivotFieldOrientation As XlPivotFieldOrientation) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetPivotItemColumnVisibleVector|Function" + Dim lcArea As Excel.Range + Dim lcRange As Excel.Range + Dim lcPivotAxis As Excel.PivotAxis + Dim lcPivotCell As Excel.PivotCell + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotLine As Excel.PivotLine + Dim lcPivotTable As Excel.PivotTable + Dim ltPivotItemsVector As tyPivotItemsVector + Dim lvAreaOK As Boolean + Dim lvAreaSize As Long + Dim lvCellsCount As Long + Dim lvIndex As Long + Dim lvPivotItemsCount As Long + Dim lvPosition As Long + + ' es werden die ItemNamen des PivotField ermittelt + ' die mit den Kriterien, die in den PivotFieldPivotItemAxes übereinstimmten + ' die ItemName werden von links nacch rechts bei Column und + ' und von oben nach unten bei Row ausgegeben + ' also so, wie sie eben in der PivotTable angezeigt werden + + Set lcPivotField = PivotItems.Parent + With lcPivotField + Set lcPivotTable = .Parent + lvPosition = .Position + End With + + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + Set lcPivotAxis = lcPivotTable.PivotRowAxis + + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + Set lcPivotAxis = lcPivotTable.PivotColumnAxis + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + + Set lcPivotLine = lcPivotAxis.PivotLines(Index:=Lo1) + Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) + Set lcPivotItem = lcPivotCell.PivotItem + + ' die Schrittweite und länge bestimmen, in denen jeweils über die Achse gehoppelt wird + + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + lvCellsCount = lcPivotField.DataRange.Rows.Count + lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Rows.Count + + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + lvCellsCount = lcPivotField.DataRange.Columns.Count + lvAreaSize = lcPivotItem.DataRange.Areas(Index:=Lo1).Columns.Count + + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + + For lvIndex = Lo1 To lvCellsCount Step lvAreaSize + Set lcPivotLine = lcPivotAxis.PivotLines(Index:=lvIndex) + ' das ist die Cell von PivotField + Set lcPivotCell = lcPivotLine.PivotLineCells.Item(Index:=lvPosition) + Set lcPivotItem = lcPivotCell.PivotItem + + Debug.Print lcPivotItem.DataRange.Address + lcPivotItem.DataRange.Select + + For Each lcArea In lcPivotItem.DataRange.Areas + + lcArea.Select + + lvAreaOK = False + If PivotFieldOrientation = XlPivotFieldOrientation.xlRowField Then + If lcArea.Row = lcPivotCell.Range.Row Then + lvAreaOK = True + + lcArea.Select + + End If + ElseIf PivotFieldOrientation = XlPivotFieldOrientation.xlColumnField Then + If lcArea.Column = lcPivotCell.Range.Column Then + lvAreaOK = True + + lcArea.Select + + End If + Else + RaiseLogicError Source:="GetPivotItemRowColumnVisibleVector" + End If + If lvAreaOK Then + With ltPivotItemsVector + lvPivotItemsCount = lvPivotItemsCount + Lo1 + .Count = lvPivotItemsCount + ReDim Preserve .Items(Lo1 To .Count) + Set .Items(.Count) = lcPivotItem + End With + Exit For + End If + Next + Next + + ltPivotItemsVector.PivotFieldDataType = lcPivotField.DataType + + GetPivotItemRowColumnVisibleVector = ltPivotItemsVector + + Set lcPivotItem = Nothing + Set lcPivotTable = Nothing + Set lcPivotField = Nothing +End Function + +Public Function IsPivotItemVisible(PivotItem As Excel.PivotItem) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotItemVisible|Function" + ' eingeführt, weil PivotItem.Visible bei RowFields den Fehler "Typen unverträglich" wirft + On Error Resume Next + IsPivotItemVisible = VBA.CBool(Not PivotItem.DataRange Is Nothing) +End Function + +Public Function IsPivotItemVisibleOnError(PivotItem As Excel.PivotItem) As Boolean + Const ThisProcedure As String = ThisModule & "|IsPivotItemVisibleOnError|Function" + Dim lvVisible As Boolean + On Error GoTo CatchError + lvVisible = PivotItem.Visible + IsPivotItemVisibleOnError = False + Exit Function +CatchError: + IsPivotItemVisibleOnError = True +End Function + +Private Function GetVectorFromVector(ByRef Vector() As Excel.PivotItem, Count As Long) As tyPivotItemsVector + Const ThisProcedure As String = ThisModule & "|GetVectorFromVector|Function" + Dim lvIndex As Long + + If Count > Lo0 Then + With GetVectorFromVector + ReDim .Items(Lo1 To Count) + + For lvIndex = LBound(Vector) To UBound(Vector) + If Not Vector(lvIndex) Is Nothing Then + .Count = .Count + Lo1 + Set .Items(.Count) = Vector(lvIndex) + Set Vector(lvIndex) = Nothing + End If + Next + + If .Count <> Count Then + RaiseLogicError Source:="GetVectorFromVector" + End If + End With + End If +End Function + +Public Function GetPivotItemLabelRangeValue(PivotItem As Excel.PivotItem) As Variant + Const ThisProcedure As String = ThisModule & "|GetPivotItemLabelRangeValue|Function" + Dim lcPivotField As Excel.PivotField + Dim lvNumberFormat As String + + Set lcPivotField = PivotItem.Parent + With PivotItem.LabelRange.Areas(Index:=Lo1).Resize(RowSize:=Lo1, ColumnSize:=Lo1) + If VBA.VarType(VarName:=.Value) = VBA.VbVarType.vbDouble Then + On Error Resume Next + ' NumberFormat wirft bei ColumnFields einen Fehler + lvNumberFormat = lcPivotField.NumberFormat + On Error GoTo 0 + If VBA.InStr(lvNumberFormat, ConChrColon) > Lo0 Then + GetPivotItemLabelRangeValue = VBA.CDate(.Value) + Else + GetPivotItemLabelRangeValue = .Value + End If + Else + GetPivotItemLabelRangeValue = .Value + End If + + End With + + Set lcPivotField = Nothing +End Function + +Private Sub GetPivotItemAreasVisibleVectorSortedByPositionTest() + Dim ltVector As tyPivotItemAreasVector + ltVector = GetPivotItemAreasVisibleVectorSortedByPosition(ActiveCell.PivotTable.ColumnFields("CPU").PivotItems) + +End Sub +Public Function GetPivotItemAreasVisibleVectorSortedByPosition(PivotItems As Excel.PivotItems) As tyPivotItemAreasVector + Const ThisProcedure As String = ThisModule & "|GetPivotFieldByPosition|Function" + Dim lcArea As Excel.Range + Dim lcCell As Excel.Range + Dim lcPivotField As Excel.PivotField + Dim lcPivotItem As Excel.PivotItem + Dim lcPivotTable As Excel.PivotTable + Dim ltVector As tyPivotItemAreasVector + Dim lvAreaSize As Long + Dim lvCellsCount As Long + Dim lvCount As Long + Dim lvIndex As Long + Dim lvOrientation As XlPivotFieldOrientation + Dim lvPosition As Long + + ' die PivotFields sortiert nach ihrer Position zurück + + Set lcPivotField = PivotItems.Parent + lvOrientation = lcPivotField.Orientation + lvPosition = lcPivotField.Position + + Set lcPivotTable = lcPivotField.Parent + + If lvOrientation = XlPivotFieldOrientation.xlRowField Then + ' rows + lvAreaSize = Lo1 + lvCellsCount = GetPivotTableRowLabelRange(PivotTable:=lcPivotTable).Rows.Count + + With ltVector + For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize + Set lcCell = lcPivotField.DataRange.Offset(RowOffset:=lvIndex).Resize(RowSize:=Lo1) + + lcCell.Select + + Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem + lvCount = lvCount + Lo1 + ReDim Preserve .Items(Lo1 To lvCount) + With .Items(lvCount) + Set .PivotItem = lcPivotItem + End With + .Count = lvCount + Next + + End With + + ElseIf lvOrientation = XlPivotFieldOrientation.xlColumnField Then + ' Columns + lvAreaSize = lcPivotTable.DataFields.Count + lvCellsCount = GetPivotTableColumnLabelRange(PivotTable:=lcPivotTable).Columns.Count + + With ltVector + For lvIndex = Lo0 To lvCellsCount - Lo1 Step lvAreaSize + Set lcCell = lcPivotField.DataRange.Offset(ColumnOffset:=lvIndex).Resize(ColumnSize:=Lo1) + + lcCell.Select + + Set lcPivotItem = lcCell.PivotCell.PivotColumnLine.PivotLineCells(Index:=lvPosition).PivotItem + lvCount = lvCount + Lo1 + ReDim Preserve .Items(Lo1 To lvCount) + With .Items(lvCount) + Set .PivotItem = lcPivotItem + End With + .Count = lvCount + Next + + End With + + + End If + + + GetPivotItemAreasVisibleVectorSortedByPosition = ltVector + +End Function + +Private Sub SwapPivotItemArea(LO As tyPivotItemArea, HI As tyPivotItemArea) + Dim ltPivotItemArea As tyPivotItemArea + + ltPivotItemArea = HI + HI = LO + LO = ltPivotItemArea + + LO.Area.Select ' muss jetzt LO sein + HI.Area.Select ' muss jetzt HI sein + + +End Sub + + diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_4.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_4.txt new file mode 100644 index 0000000000..4947b13b34 --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_4.txt @@ -0,0 +1,28 @@ +Attribute VB_Name = "vbVBAAllPri" +Option Explicit +Option Private Module + +#Const ccDebug = True + +Public Const ThisProject As String = "ATGfn" +Private Const ThisModule As String = ThisProject & "|ideVBAAllPri" + +'Public Const EmptyDate As Date = #12:00:00 AM#: ' entspricht #00:00:00# +'Public Const EmptyTime As Date = #12:00:00 AM# +'Public Const EmptyString As String = "" + +Public Function GetccDebug() As Boolean + Const ThisProcedure As String = ThisModule & "|GetccDebug|Function" + + On Error GoTo CatchError + + #If ccDebug Then + GetccDebug = True + #Else + GetccDebug = False + #End If + Exit Function + +CatchError: +' vbErr.LogReraise Source:=ThisProcedure +End Function diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_4_Processed.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_4_Processed.txt new file mode 100644 index 0000000000..4d828a2eb1 --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_4_Processed.txt @@ -0,0 +1,28 @@ +Attribute VB_Name = "vbVBAAllPri" +Option Explicit +Option Private Module + + + +Public Const ThisProject As String = "ATGfn" +Private Const ThisModule As String = ThisProject & "|ideVBAAllPri" + +'Public Const EmptyDate As Date = #12:00:00 AM#: ' entspricht #00:00:00# +'Public Const EmptyTime As Date = #12:00:00 AM# +'Public Const EmptyString As String = "" + +Public Function GetccDebug() As Boolean + Const ThisProcedure As String = ThisModule & "|GetccDebug|Function" + + On Error GoTo CatchError + + + GetccDebug = True + + + + Exit Function + +CatchError: +' vbErr.LogReraise Source:=ThisProcedure +End Function From 8437dfcacdef8e848d82fd61823407f99e5dfdee Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Fri, 4 Mar 2016 21:47:59 +0100 Subject: [PATCH 14/17] make preprocessor always use "option compare text" mode --- .../Preprocessing/LogicalEqualsExpression.cs | 13 +------ .../LogicalGreaterOrEqualsExpression.cs | 6 +-- .../LogicalGreaterThanExpression.cs | 8 ++-- .../LogicalLessOrEqualsExpression.cs | 8 ++-- .../LogicalLessThanExpression.cs | 13 +------ .../LogicalNotEqualsExpression.cs | 6 +-- .../Preprocessing/OptionCompareListener.cs | 24 ------------ .../Preprocessing/OptionCompareParser.cs | 29 -------------- .../{VBAEnvironment.cs => VBALibrary.cs} | 2 +- .../Preprocessing/VBAOptionCompare.cs | 8 ---- .../Preprocessing/VBAPreprocessor.cs | 6 +-- .../Preprocessing/VBAPreprocessorVisitor.cs | 19 ++++------ Rubberduck.Parsing/Rubberduck.Parsing.csproj | 5 +-- Rubberduck.Parsing/VBA/RubberduckParser.cs | 2 +- .../VBAPreprocessorVisitorTests.cs | 38 +------------------ .../Preprocessor/Reference_Module_1.txt | 1 - .../Reference_Module_1_Processed.txt | 1 - 17 files changed, 28 insertions(+), 161 deletions(-) delete mode 100644 Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs delete mode 100644 Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs rename Rubberduck.Parsing/Preprocessing/{VBAEnvironment.cs => VBALibrary.cs} (98%) delete mode 100644 Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs diff --git a/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs index c0d628e43e..0a2449d8fa 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs @@ -4,13 +4,11 @@ public sealed class LogicalEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; - private readonly VBAOptionCompare _optionCompare; - public LogicalEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) + public LogicalEqualsExpression(IExpression left, IExpression right) { _left = left; _right = right; - _optionCompare = optionCompare; } public override IValue Evaluate() @@ -27,14 +25,7 @@ public override IValue Evaluate() { var leftValue = left.AsString; var rightValue = right.AsString; - if (_optionCompare == VBAOptionCompare.Binary) - { - return new BoolValue(string.CompareOrdinal(leftValue, rightValue) == 0); - } - else - { - return new BoolValue(leftValue.CompareTo(rightValue) == 0); - } + return new BoolValue(leftValue.CompareTo(rightValue) == 0); } else { diff --git a/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs index 1dfbb575c3..764d1555bd 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalGreaterOrEqualsExpression.cs @@ -4,18 +4,16 @@ public sealed class LogicalGreaterOrEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; - private readonly VBAOptionCompare _optionCompare; - public LogicalGreaterOrEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) + public LogicalGreaterOrEqualsExpression(IExpression left, IExpression right) { _left = left; _right = right; - _optionCompare = optionCompare; } public override IValue Evaluate() { - var result = new LogicalLessThanExpression(_left, _right, _optionCompare).Evaluate(); + var result = new LogicalLessThanExpression(_left, _right).Evaluate(); if (result == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs index ea06a06a71..d10b4adde8 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalGreaterThanExpression.cs @@ -4,19 +4,17 @@ public sealed class LogicalGreaterThanExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; - private readonly VBAOptionCompare _optionCompare; - public LogicalGreaterThanExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) + public LogicalGreaterThanExpression(IExpression left, IExpression right) { _left = left; _right = right; - _optionCompare = optionCompare; } public override IValue Evaluate() { - var lt = new LogicalLessThanExpression(_left, _right, _optionCompare).Evaluate(); - var eq = new LogicalEqualsExpression(_left, _right, _optionCompare).Evaluate(); + var lt = new LogicalLessThanExpression(_left, _right).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); if (lt == null || eq == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs index c8ad3c3a17..8917977121 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalLessOrEqualsExpression.cs @@ -4,19 +4,17 @@ public sealed class LogicalLessOrEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; - private readonly VBAOptionCompare _optionCompare; - public LogicalLessOrEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) + public LogicalLessOrEqualsExpression(IExpression left, IExpression right) { _left = left; _right = right; - _optionCompare = optionCompare; } public override IValue Evaluate() { - var lt = new LogicalLessThanExpression(_left, _right, _optionCompare).Evaluate(); - var eq = new LogicalEqualsExpression(_left, _right, _optionCompare).Evaluate(); + var lt = new LogicalLessThanExpression(_left, _right).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); if (lt == null || eq == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs index 2eeaa809b4..055bb052f8 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs @@ -4,13 +4,11 @@ public sealed class LogicalLessThanExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; - private readonly VBAOptionCompare _optionCompare; - public LogicalLessThanExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) + public LogicalLessThanExpression(IExpression left, IExpression right) { _left = left; _right = right; - _optionCompare = optionCompare; } public override IValue Evaluate() @@ -26,14 +24,7 @@ public override IValue Evaluate() { var leftValue = left.AsString; var rightValue = right.AsString; - if (_optionCompare == VBAOptionCompare.Binary) - { - return new BoolValue(string.CompareOrdinal(leftValue, rightValue) < 0); - } - else - { - return new BoolValue(leftValue.CompareTo(rightValue) < 0); - } + return new BoolValue(leftValue.CompareTo(rightValue) < 0); } else { diff --git a/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs b/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs index 240522a3f0..7b252c3628 100644 --- a/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/LogicalNotEqualsExpression.cs @@ -4,18 +4,16 @@ public sealed class LogicalNotEqualsExpression : Expression { private readonly IExpression _left; private readonly IExpression _right; - private readonly VBAOptionCompare _optionCompare; - public LogicalNotEqualsExpression(IExpression left, IExpression right, VBAOptionCompare optionCompare) + public LogicalNotEqualsExpression(IExpression left, IExpression right) { _left = left; _right = right; - _optionCompare = optionCompare; } public override IValue Evaluate() { - var eq = new LogicalEqualsExpression(_left, _right, _optionCompare).Evaluate(); + var eq = new LogicalEqualsExpression(_left, _right).Evaluate(); if (eq == null) { return null; diff --git a/Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs b/Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs deleted file mode 100644 index 5fdf9179f2..0000000000 --- a/Rubberduck.Parsing/Preprocessing/OptionCompareListener.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Antlr4.Runtime.Misc; -using Rubberduck.Parsing.Grammar; - -namespace Rubberduck.Parsing.Preprocessing -{ - public sealed class OptionCompareListener : VBABaseListener - { - public VBAOptionCompare OptionCompare { get; set; } - - public OptionCompareListener() - { - // Default is binary according to VBA specification. - OptionCompare = VBAOptionCompare.Binary; - } - - public override void ExitOptionCompareStmt([NotNull] VBAParser.OptionCompareStmtContext context) - { - if (context.TEXT() != null || context.DATABASE() != null) - { - OptionCompare = VBAOptionCompare.Text; - } - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs b/Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs deleted file mode 100644 index dbb3e087f8..0000000000 --- a/Rubberduck.Parsing/Preprocessing/OptionCompareParser.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.Vbe.Interop; -using System; -using System.Linq; - -namespace Rubberduck.Parsing.Preprocessing -{ - public static class OptionCompareParser - { - public static VBAOptionCompare Parse(CodeModule codeModule) - { - int declarationLines = codeModule.CountOfDeclarationLines; - if (declarationLines == 0) - { - return VBAOptionCompare.Binary; - } - var lines = codeModule.Lines[1, declarationLines].Split(new string[] { Environment.NewLine }, StringSplitOptions.None); - if (lines.Any(line => - line.Trim().ToLower().StartsWith("option compare text") - || line.Trim().ToLower().StartsWith("option compare database"))) - { - return VBAOptionCompare.Text; - } - else - { - return VBAOptionCompare.Binary; - } - } - } -} diff --git a/Rubberduck.Parsing/Preprocessing/VBAEnvironment.cs b/Rubberduck.Parsing/Preprocessing/VBALibrary.cs similarity index 98% rename from Rubberduck.Parsing/Preprocessing/VBAEnvironment.cs rename to Rubberduck.Parsing/Preprocessing/VBALibrary.cs index f3b43cbed0..a96d490447 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAEnvironment.cs +++ b/Rubberduck.Parsing/Preprocessing/VBALibrary.cs @@ -3,7 +3,7 @@ namespace Rubberduck.Parsing.Preprocessing { - public static class VBAEnvironment + public static class VBALibrary { private static readonly Dictionary> _libraryFunctions = new Dictionary>() { diff --git a/Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs b/Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs deleted file mode 100644 index ac94c192d5..0000000000 --- a/Rubberduck.Parsing/Preprocessing/VBAOptionCompare.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Rubberduck.Parsing.Preprocessing -{ - public enum VBAOptionCompare - { - Text, - Binary - } -} diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs index fbd3d924f4..311a00a1a8 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs @@ -7,12 +7,10 @@ namespace Rubberduck.Parsing.Preprocessing public sealed class VBAPreprocessor { private readonly double _vbaVersion; - private readonly VBAOptionCompare _optionCompare; - public VBAPreprocessor(double vbaVersion, VBAOptionCompare optionCompare) + public VBAPreprocessor(double vbaVersion) { _vbaVersion = vbaVersion; - _optionCompare = optionCompare; } public string Execute(string unprocessedCode) @@ -35,7 +33,7 @@ private string Preprocess(string unprocessedCode) var tokens = new CommonTokenStream(lexer); var parser = new VBAConditionalCompilationParser(tokens); parser.AddErrorListener(new ExceptionErrorListener()); - var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion), _optionCompare); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion)); var tree = parser.compilationUnit(); var expr = evaluator.Visit(tree); return expr.Evaluate().AsString; diff --git a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs index a3c8730fa9..9c9ae29544 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs @@ -8,12 +8,10 @@ namespace Rubberduck.Parsing.Preprocessing public sealed class VBAPreprocessorVisitor : VBAConditionalCompilationBaseVisitor { private readonly SymbolTable _symbolTable; - private readonly VBAOptionCompare _optionCompare; public VBAPreprocessorVisitor( SymbolTable symbolTable, - VBAPredefinedCompilationConstants predefinedConstants, - VBAOptionCompare optionCompare) + VBAPredefinedCompilationConstants predefinedConstants) { _symbolTable = symbolTable; _symbolTable.Add(VBAPredefinedCompilationConstants.VBA6_NAME, new BoolValue(predefinedConstants.VBA6)); @@ -22,7 +20,6 @@ public VBAPreprocessorVisitor( _symbolTable.Add(VBAPredefinedCompilationConstants.WIN32_NAME, new BoolValue(predefinedConstants.Win32)); _symbolTable.Add(VBAPredefinedCompilationConstants.WIN16_NAME, new BoolValue(predefinedConstants.Win16)); _symbolTable.Add(VBAPredefinedCompilationConstants.MAC_NAME, new BoolValue(predefinedConstants.Mac)); - _optionCompare = optionCompare; } public override IExpression VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) @@ -228,7 +225,7 @@ private IExpression VisitLibraryFunction(VBAConditionalCompilationParser.CcExpre var intrinsicFunction = context.intrinsicFunction(); var functionName = intrinsicFunction.intrinsicFunctionName().GetText(); var argument = Visit(intrinsicFunction.ccExpression()); - return VBAEnvironment.CreateLibraryFunction(functionName, argument); + return VBALibrary.CreateLibraryFunction(functionName, argument); } private IExpression VisitLike(VBAConditionalCompilationParser.CcExpressionContext context) @@ -284,42 +281,42 @@ private IExpression VisitGeq(VBAConditionalCompilationParser.CcExpressionContext { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalGreaterOrEqualsExpression(left, right, _optionCompare); + return new LogicalGreaterOrEqualsExpression(left, right); } private IExpression VisitLeq(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalLessOrEqualsExpression(left, right, _optionCompare); + return new LogicalLessOrEqualsExpression(left, right); } private IExpression VisitGt(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalGreaterThanExpression(left, right, _optionCompare); + return new LogicalGreaterThanExpression(left, right); } private IExpression VisitLt(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalLessThanExpression(left, right, _optionCompare); + return new LogicalLessThanExpression(left, right); } private IExpression VisitNeq(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalNotEqualsExpression(left, right, _optionCompare); + return new LogicalNotEqualsExpression(left, right); } private IExpression VisitEq(VBAConditionalCompilationParser.CcExpressionContext context) { var left = Visit(context.ccExpression()[0]); var right = Visit(context.ccExpression()[1]); - return new LogicalEqualsExpression(left, right, _optionCompare); + return new LogicalEqualsExpression(left, right); } private IExpression VisitConcat(VBAConditionalCompilationParser.CcExpressionContext context) diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 8d9eeab40e..e81e2ca92e 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -92,8 +92,6 @@ - - @@ -139,14 +137,13 @@ - + - diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index ff08518f4c..2c2b9cf526 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -225,7 +225,7 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok token.ThrowIfCancellationRequested(); - var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version), OptionCompareParser.Parse(vbComponent.CodeModule)); + var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version)); string preprocessedModuleBody; try { diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index 4e0105b90a..703aaef3d0 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -1096,36 +1096,6 @@ public void TestLocale() Assert.AreEqual(true, result.Item1.Get("c").AsBool); } - [TestMethod] - public void TestOptionCompareText() - { - string code = @" -#Const a = ""ß"" = ""ss"" -#Const b = ""ß"" < ""ss"" -#Const c = ""ß"" > ""ss"" -"; - System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-de"); - var result = Preprocess(code, VBAOptionCompare.Text); - Assert.AreEqual(true, result.Item1.Get("a").AsBool); - Assert.AreEqual(false, result.Item1.Get("b").AsBool); - Assert.AreEqual(false, result.Item1.Get("c").AsBool); - } - - [TestMethod] - public void TestOptionCompareBinary() - { - string code = @" -#Const a = ""ß"" = ""ss"" -#Const b = ""ß"" < ""ss"" -#Const c = ""ß"" > ""ss"" -"; - System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-de"); - var result = Preprocess(code, VBAOptionCompare.Binary); - Assert.AreEqual(false, result.Item1.Get("a").AsBool); - Assert.AreEqual(false, result.Item1.Get("b").AsBool); - Assert.AreEqual(true, result.Item1.Get("c").AsBool); - } - [TestMethod] public void TestPreprocessingLiveDeadCode() { @@ -1189,13 +1159,7 @@ End Sub var result = Preprocess(code); Assert.AreEqual(evaluated, result.Item2.AsString); } - private Tuple, IValue> Preprocess(string code) - { - return Preprocess(code, VBAOptionCompare.Binary); - } - - private Tuple, IValue> Preprocess(string code, VBAOptionCompare optionCompare) { SymbolTable symbolTable = new SymbolTable(); var stream = new AntlrInputStream(code); @@ -1203,7 +1167,7 @@ private Tuple, IValue> Preprocess(string code, VBAOp var tokens = new CommonTokenStream(lexer); var parser = new VBAConditionalCompilationParser(tokens); parser.AddErrorListener(new ExceptionErrorListener()); - var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(7.01), optionCompare); + var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(7.01)); var tree = parser.compilationUnit(); var expr = evaluator.Visit(tree); return Tuple.Create(symbolTable, expr.Evaluate()); diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt index 2fc8a51c57..c3ecb15145 100644 --- a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt @@ -1,7 +1,6 @@ Attribute VB_Name = "fnCheckPri" Option Explicit Option Private Module -Option Compare Text Private Const ThisModule As String = ThisProject & "|fnCheckPri" diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt index 1d6b12ac5f..82e31acbbb 100644 --- a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt @@ -1,7 +1,6 @@ Attribute VB_Name = "fnCheckPri" Option Explicit Option Private Module -Option Compare Text Private Const ThisModule As String = ThisProject & "|fnCheckPri" From 942b5f770ba04dea33c2f183d7619189a67dd365 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sat, 5 Mar 2016 11:45:51 +0100 Subject: [PATCH 15/17] fix binary plus operator handling of Empty and String --- Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs | 2 +- Rubberduck.Parsing/Preprocessing/NameExpression.cs | 2 +- .../Preprocessing/VBAPreprocessorVisitorTests.cs | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs b/Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs index f9b9a8ef23..3b518d657c 100644 --- a/Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/BinaryPlusExpression.cs @@ -19,7 +19,7 @@ public override IValue Evaluate() { return null; } - if (left.ValueType == ValueType.String) + if (left.ValueType == ValueType.String || right.ValueType == ValueType.String) { return new StringValue(left.AsString+ right.AsString); } diff --git a/Rubberduck.Parsing/Preprocessing/NameExpression.cs b/Rubberduck.Parsing/Preprocessing/NameExpression.cs index 3d927f6379..9430502489 100644 --- a/Rubberduck.Parsing/Preprocessing/NameExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/NameExpression.cs @@ -16,7 +16,7 @@ public NameExpression( public override IValue Evaluate() { var identifier = _identifier.Evaluate().AsString; - // Special case, identifier that does not exist is VBAEmpty. + // Special case, identifier that does not exist is Empty. // Could add them to the symbol table, but since they are all constants // they never change anyway. if (!_symbolTable.HasSymbol(identifier)) diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index 703aaef3d0..c1eab9c1ac 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -94,6 +94,9 @@ public void TestPlusOperator() #Const c = True + False + True #Const d = Nothing #Const e = ""5"" + ""4"" +#Const f = Empty + Empty +#Const g = Empty + ""a"" +#Const h = ""a"" + Empty "; var result = Preprocess(code); Assert.AreEqual(1544.242m, result.Item1.Get("a").AsDecimal); @@ -101,6 +104,9 @@ public void TestPlusOperator() Assert.AreEqual(-2m, result.Item1.Get("c").AsDecimal); Assert.AreEqual(null, result.Item1.Get("d")); Assert.AreEqual("54", result.Item1.Get("e").AsString); + Assert.AreEqual(0m, result.Item1.Get("f").AsDecimal); + Assert.AreEqual("a", result.Item1.Get("g").AsString); + Assert.AreEqual("a", result.Item1.Get("h").AsString); } [TestMethod] From 77f429e39f9b8252a5d0aa72de0f544209a7e31d Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sat, 5 Mar 2016 11:50:42 +0100 Subject: [PATCH 16/17] add test to make sure we're always operating in "option compare text" mode --- RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index c1eab9c1ac..8c4347abfd 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -1094,12 +1094,14 @@ public void TestLocale() #Const a = CDate(""2016/03/02"") #Const b = CBool(""tRuE"") #Const c = CBool(""#TRUE#"") +#Const d = ""ß"" = ""ss"" "; System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("ja-jp"); var result = Preprocess(code); Assert.AreEqual(new DateTime(2016, 3, 2), result.Item1.Get("a").AsDate); Assert.AreEqual(true, result.Item1.Get("b").AsBool); Assert.AreEqual(true, result.Item1.Get("c").AsBool); + Assert.AreEqual(true, result.Item1.Get("d").AsBool); } [TestMethod] From bfcaad00c68549349b91482ed533ef3b68d16d2e Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Wed, 9 Mar 2016 20:11:14 +0100 Subject: [PATCH 17/17] fix .Parse culture dependency (fixes #1178) --- .../Preprocessing/DateLiteralExpression.cs | 32 +++++++++---------- .../Preprocessing/NumberLiteralExpression.cs | 2 +- Rubberduck.Parsing/VBA/RubberduckParser.cs | 5 +-- .../VBAPreprocessorVisitorTests.cs | 13 +++++++- 4 files changed, 32 insertions(+), 20 deletions(-) diff --git a/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs index 50a0ff4278..f3ad46d0fb 100644 --- a/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs @@ -82,8 +82,8 @@ public override IValue Evaluate() // "If L and M are numbers and R is not present:" if (L.dateValueNumber() != null && M.dateValueNumber() != null && R == null) { - var LNumber = int.Parse(L.GetText()); - var MNumber = int.Parse(M.GetText()); + var LNumber = int.Parse(L.GetText(), CultureInfo.InvariantCulture); + var MNumber = int.Parse(M.GetText(), CultureInfo.InvariantCulture); if (legalMonth(LNumber) && legalDay(LNumber, MNumber, CY)) { month = LNumber; @@ -116,9 +116,9 @@ public override IValue Evaluate() // "If L, M, and R are numbers:" else if (L.dateValueNumber() != null && M.dateValueNumber() != null && R != null && R.dateValueNumber() != null) { - var LNumber = int.Parse(L.GetText()); - var MNumber = int.Parse(M.GetText()); - var RNumber = int.Parse(R.GetText()); + var LNumber = int.Parse(L.GetText(), CultureInfo.InvariantCulture); + var MNumber = int.Parse(M.GetText(), CultureInfo.InvariantCulture); + var RNumber = int.Parse(R.GetText(), CultureInfo.InvariantCulture); if (legalMonth(LNumber) && legalDay(LNumber, MNumber, yearFunc(RNumber))) { month = LNumber; @@ -149,12 +149,12 @@ public override IValue Evaluate() string monthName; if (L.dateValueNumber() != null) { - N = int.Parse(L.GetText()); + N = int.Parse(L.GetText(), CultureInfo.InvariantCulture); monthName = M.GetText(); } else { - N = int.Parse(M.GetText()); + N = int.Parse(M.GetText(), CultureInfo.InvariantCulture); monthName = L.GetText(); } int monthNameNumber; @@ -188,20 +188,20 @@ public override IValue Evaluate() if (L.dateValueNumber() == null) { monthName = L.GetText(); - N1 = int.Parse(M.GetText()); - N2 = int.Parse(R.GetText()); + N1 = int.Parse(M.GetText(), CultureInfo.InvariantCulture); + N2 = int.Parse(R.GetText(), CultureInfo.InvariantCulture); } else if (M.dateValueNumber() == null) { monthName = M.GetText(); - N1 = int.Parse(L.GetText()); - N2 = int.Parse(R.GetText()); + N1 = int.Parse(L.GetText(), CultureInfo.InvariantCulture); + N2 = int.Parse(R.GetText(), CultureInfo.InvariantCulture); } else { monthName = R.GetText(); - N1 = int.Parse(L.GetText()); - N2 = int.Parse(M.GetText()); + N1 = int.Parse(L.GetText(), CultureInfo.InvariantCulture); + N2 = int.Parse(M.GetText(), CultureInfo.InvariantCulture); } int monthNameNumber; if (monthName.Length == 3) @@ -240,14 +240,14 @@ public override IValue Evaluate() else { var timeValue = dateOrTime.timeValue(); - hours = int.Parse(timeValue.timeValuePart()[0].GetText()); + hours = int.Parse(timeValue.timeValuePart()[0].GetText(), CultureInfo.InvariantCulture); if (timeValue.timeValuePart().Count == 1) { mins = 0; } else { - mins = int.Parse(timeValue.timeValuePart()[1].GetText()); + mins = int.Parse(timeValue.timeValuePart()[1].GetText(), CultureInfo.InvariantCulture); } if (timeValue.timeValuePart().Count < 3) { @@ -255,7 +255,7 @@ public override IValue Evaluate() } else { - seconds = int.Parse(timeValue.timeValuePart()[2].GetText()); + seconds = int.Parse(timeValue.timeValuePart()[2].GetText(), CultureInfo.InvariantCulture); } var amPm = timeValue.AMPM(); if (amPm != null && (amPm.GetText().ToUpper() == "P" || amPm.GetText().ToUpper() == "PM") && hours >= 0 && hours <= 11) diff --git a/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs index fc3fb766e7..b235ecf7a6 100644 --- a/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs @@ -14,7 +14,7 @@ public NumberLiteralExpression(IExpression tokenText) public override IValue Evaluate() { string literal = _tokenText.Evaluate().AsString; - var number = decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float); + var number = decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float, CultureInfo.InvariantCulture); return new DecimalValue(number); } } diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index 2c2b9cf526..f018ccffed 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -17,6 +17,7 @@ using Rubberduck.VBEditor; using Rubberduck.VBEditor.Extensions; using Rubberduck.Parsing.Preprocessing; +using System.Globalization; namespace Rubberduck.Parsing.VBA { @@ -224,8 +225,8 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok }; token.ThrowIfCancellationRequested(); - - var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version)); + + var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version, CultureInfo.InvariantCulture)); string preprocessedModuleBody; try { diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index 8c4347abfd..180dc1db42 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -1088,7 +1088,7 @@ public void TestOperatorPrecedence() } [TestMethod] - public void TestLocale() + public void TestLocaleJapanese() { string code = @" #Const a = CDate(""2016/03/02"") @@ -1104,6 +1104,17 @@ public void TestLocale() Assert.AreEqual(true, result.Item1.Get("d").AsBool); } + [TestMethod] + public void TestLocaleGerman() + { + string code = @" +#Const a = 82.5235 +"; + System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-de"); + var result = Preprocess(code); + Assert.AreEqual(82.5235m, result.Item1.Get("a").AsDecimal); + } + [TestMethod] public void TestPreprocessingLiveDeadCode() {