diff --git a/Rubberduck.Parsing/Grammar/VBA.g4 b/Rubberduck.Parsing/Grammar/VBA.g4 index b89679e676..1dfb68aad4 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,13 +66,8 @@ moduleDeclarationsElement : | variableStmt | moduleOption | typeStmt - | macroStmt ; -macroStmt : - macroConstStmt - | macroIfThenElseStmt; - moduleBody : moduleBodyElement (endOfStatement moduleBodyElement)* endOfStatement; @@ -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; @@ -585,7 +558,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)?; @@ -676,6 +649,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; @@ -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; @@ -845,12 +814,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/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 be77698f90..e732cb6807 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -17,1139 +17,1177 @@ // 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, LINE_CONTINUATION = 211, NEWLINE = 212, - REMCOMMENT = 213, COMMENT = 214, SINGLEQUOTE = 215, COLON = 216, UNDERSCORE = 217, - WS = 218, IDENTIFIER = 219; - 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, 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" + }; - 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'" - }; - 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", "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'", "'\\u00EE'" + }; + 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", "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", + "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\xDD\x8CD\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\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" + - "\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\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\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" + - "\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\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"; - 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\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"+ + "\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\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\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()); +} } // 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 0508a06385..b98ce94e20 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -17,18964 +17,15923 @@ // 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, LINE_CONTINUATION = 211, NEWLINE = 212, - REMCOMMENT = 213, COMMENT = 214, SINGLEQUOTE = 215, COLON = 216, UNDERSCORE = 217, - WS = 218, IDENTIFIER = 219; - 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", - "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 - 214)) & ~0x3f) == 0 && ((1L << (_la - 214)) & ((1L << (COMMENT - 214)) | (1L << (WS - 214)) | (1L << (IDENTIFIER - 214)))) != 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 - 214)) & ~0x3f) == 0 && ((1L << (_la - 214)) & ((1L << (COMMENT - 214)) | (1L << (WS - 214)) | (1L << (IDENTIFIER - 214)))) != 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 - 214)) & ~0x3f) == 0 && ((1L << (_la - 214)) & ((1L << (COMMENT - 214)) | (1L << (WS - 214)) | (1L << (IDENTIFIER - 214)))) != 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\xDD\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\xDC\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\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" + - "\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" + - "\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" + - "\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\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" + - "\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\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\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" + - "\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\xDC\x2\x2\x20A\x213\x5\xCA\x66\x2\x20B\x20D\a\xDC\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\xDC\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\xDC\x2\x2\x776\x777\a\xB9\x2\x2\x777\x779\a\xDC" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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\xDC\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" + - "\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" + - "\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" + - "\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\xDC\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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\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" + - "\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" + - "\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" + - "\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" + - "\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" + - "\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, 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", + "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", "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", + "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 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 = 375; + switch ( Interpreter.AdaptivePredict(_input,13,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 367; declareStmt(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 368; enumerationStmt(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 369; eventStmt(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 370; constStmt(); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 371; implementsStmt(); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 372; variableStmt(); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 373; moduleOption(); + } + break; + + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 374; 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 = 377; moduleBodyElement(); + State = 383; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,14,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 378; endOfStatement(); + State = 379; moduleBodyElement(); + } + } + } + State = 385; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,14,_ctx); + } + State = 386; 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 = 393; + switch ( Interpreter.AdaptivePredict(_input,15,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 388; functionStmt(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 389; propertyGetStmt(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 390; propertySetStmt(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 391; propertyLetStmt(); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 392; 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 = 395; Match(ATTRIBUTE); + State = 396; Match(WS); + State = 397; implicitCallStmt_InStmt(); + State = 399; + _la = _input.La(1); + if (_la==WS) { + { + State = 398; Match(WS); + } + } + + State = 401; Match(EQ); + State = 403; + _la = _input.La(1); + if (_la==WS) { + { + State = 402; Match(WS); + } + } + + State = 405; literal(); + State = 416; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,20,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 407; + _la = _input.La(1); + if (_la==WS) { + { + State = 406; Match(WS); + } + } + + State = 409; Match(T__1); + State = 411; + _la = _input.La(1); + if (_la==WS) { + { + State = 410; Match(WS); + } + } + + State = 413; literal(); + } + } + } + State = 418; + _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 = 419; blockStmt(); + State = 425; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 420; endOfStatement(); + State = 421; blockStmt(); + } + } + } + State = 427; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,21,_ctx); + } + State = 428; 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 = 496; + switch ( Interpreter.AdaptivePredict(_input,22,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 430; lineLabel(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 431; appactivateStmt(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 432; attributeStmt(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 433; beepStmt(); + } + break; + + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 434; chdirStmt(); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 435; chdriveStmt(); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 436; closeStmt(); + } + break; + + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 437; constStmt(); + } + break; + + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 438; dateStmt(); + } + break; + + case 10: + EnterOuterAlt(_localctx, 10); + { + State = 439; deleteSettingStmt(); + } + break; + + case 11: + EnterOuterAlt(_localctx, 11); + { + State = 440; deftypeStmt(); + } + break; + + case 12: + EnterOuterAlt(_localctx, 12); + { + State = 441; doLoopStmt(); + } + break; + + case 13: + EnterOuterAlt(_localctx, 13); + { + State = 442; endStmt(); + } + break; + + case 14: + EnterOuterAlt(_localctx, 14); + { + State = 443; eraseStmt(); + } + break; + + case 15: + EnterOuterAlt(_localctx, 15); + { + State = 444; errorStmt(); + } + break; + + case 16: + EnterOuterAlt(_localctx, 16); + { + State = 445; exitStmt(); + } + break; + + case 17: + EnterOuterAlt(_localctx, 17); + { + State = 446; explicitCallStmt(); + } + break; + + case 18: + EnterOuterAlt(_localctx, 18); + { + State = 447; filecopyStmt(); + } + break; + + case 19: + EnterOuterAlt(_localctx, 19); + { + State = 448; forEachStmt(); + } + break; + + case 20: + EnterOuterAlt(_localctx, 20); + { + State = 449; forNextStmt(); + } + break; + + case 21: + EnterOuterAlt(_localctx, 21); + { + State = 450; getStmt(); + } + break; + + case 22: + EnterOuterAlt(_localctx, 22); + { + State = 451; goSubStmt(); + } + break; + + case 23: + EnterOuterAlt(_localctx, 23); + { + State = 452; goToStmt(); + } + break; + + case 24: + EnterOuterAlt(_localctx, 24); + { + State = 453; ifThenElseStmt(); + } + break; + + case 25: + EnterOuterAlt(_localctx, 25); + { + State = 454; implementsStmt(); + } + break; + + case 26: + EnterOuterAlt(_localctx, 26); + { + State = 455; inputStmt(); + } + break; + + case 27: + EnterOuterAlt(_localctx, 27); + { + State = 456; killStmt(); + } + break; + + case 28: + EnterOuterAlt(_localctx, 28); + { + State = 457; letStmt(); + } + break; + + case 29: + EnterOuterAlt(_localctx, 29); + { + State = 458; lineInputStmt(); + } + break; + + case 30: + EnterOuterAlt(_localctx, 30); + { + State = 459; loadStmt(); + } + break; + + case 31: + EnterOuterAlt(_localctx, 31); + { + State = 460; lockStmt(); + } + break; + + case 32: + EnterOuterAlt(_localctx, 32); + { + State = 461; lsetStmt(); + } + break; + + case 33: + EnterOuterAlt(_localctx, 33); + { + State = 462; midStmt(); + } + break; + + case 34: + EnterOuterAlt(_localctx, 34); + { + State = 463; mkdirStmt(); + } + break; + + case 35: + EnterOuterAlt(_localctx, 35); + { + State = 464; nameStmt(); + } + break; + + case 36: + EnterOuterAlt(_localctx, 36); + { + State = 465; onErrorStmt(); + } + break; + + case 37: + EnterOuterAlt(_localctx, 37); + { + State = 466; onGoToStmt(); + } + break; + + case 38: + EnterOuterAlt(_localctx, 38); + { + State = 467; onGoSubStmt(); + } + break; + + case 39: + EnterOuterAlt(_localctx, 39); + { + State = 468; openStmt(); + } + break; + + case 40: + EnterOuterAlt(_localctx, 40); + { + State = 469; printStmt(); + } + break; + + case 41: + EnterOuterAlt(_localctx, 41); + { + State = 470; putStmt(); + } + break; + + case 42: + EnterOuterAlt(_localctx, 42); + { + State = 471; raiseEventStmt(); + } + break; + + case 43: + EnterOuterAlt(_localctx, 43); + { + State = 472; randomizeStmt(); + } + break; + + case 44: + EnterOuterAlt(_localctx, 44); + { + State = 473; redimStmt(); + } + break; + + case 45: + EnterOuterAlt(_localctx, 45); + { + State = 474; resetStmt(); + } + break; + + case 46: + EnterOuterAlt(_localctx, 46); + { + State = 475; resumeStmt(); + } + break; + + case 47: + EnterOuterAlt(_localctx, 47); + { + State = 476; returnStmt(); + } + break; + + case 48: + EnterOuterAlt(_localctx, 48); + { + State = 477; rmdirStmt(); + } + break; + + case 49: + EnterOuterAlt(_localctx, 49); + { + State = 478; rsetStmt(); + } + break; + + case 50: + EnterOuterAlt(_localctx, 50); + { + State = 479; savepictureStmt(); + } + break; + + case 51: + EnterOuterAlt(_localctx, 51); + { + State = 480; saveSettingStmt(); + } + break; + + case 52: + EnterOuterAlt(_localctx, 52); + { + State = 481; seekStmt(); + } + break; + + case 53: + EnterOuterAlt(_localctx, 53); + { + State = 482; selectCaseStmt(); + } + break; + + case 54: + EnterOuterAlt(_localctx, 54); + { + State = 483; sendkeysStmt(); + } + break; + + case 55: + EnterOuterAlt(_localctx, 55); + { + State = 484; setattrStmt(); + } + break; + + case 56: + EnterOuterAlt(_localctx, 56); + { + State = 485; setStmt(); + } + break; + + case 57: + EnterOuterAlt(_localctx, 57); + { + State = 486; stopStmt(); + } + break; + + case 58: + EnterOuterAlt(_localctx, 58); + { + State = 487; timeStmt(); + } + break; + + case 59: + EnterOuterAlt(_localctx, 59); + { + State = 488; unloadStmt(); + } + break; + + case 60: + EnterOuterAlt(_localctx, 60); + { + State = 489; unlockStmt(); + } + break; + + case 61: + EnterOuterAlt(_localctx, 61); + { + State = 490; variableStmt(); + } + break; + + case 62: + EnterOuterAlt(_localctx, 62); + { + State = 491; whileWendStmt(); + } + break; + + case 63: + EnterOuterAlt(_localctx, 63); + { + State = 492; widthStmt(); + } + break; + + case 64: + EnterOuterAlt(_localctx, 64); + { + State = 493; withStmt(); + } + break; + + case 65: + EnterOuterAlt(_localctx, 65); + { + State = 494; writeStmt(); + } + break; + + case 66: + EnterOuterAlt(_localctx, 66); + { + State = 495; 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 = 498; Match(APPACTIVATE); + State = 499; Match(WS); + State = 500; valueStmt(0); + State = 509; + switch ( Interpreter.AdaptivePredict(_input,25,_ctx) ) { + case 1: + { + State = 502; + _la = _input.La(1); + if (_la==WS) { + { + State = 501; Match(WS); + } + } + + State = 504; Match(T__1); + State = 506; + switch ( Interpreter.AdaptivePredict(_input,24,_ctx) ) { + case 1: + { + State = 505; Match(WS); + } + break; + } + State = 508; 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 = 511; 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 = 513; Match(CHDIR); + State = 514; Match(WS); + State = 515; 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 = 517; Match(CHDRIVE); + State = 518; Match(WS); + State = 519; 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 = 521; Match(CLOSE); + State = 537; + switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { + case 1: + { + State = 522; Match(WS); + State = 523; fileNumber(); + State = 534; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,28,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 525; + _la = _input.La(1); + if (_la==WS) { + { + State = 524; Match(WS); + } + } + + State = 527; Match(T__1); + State = 529; + switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { + case 1: + { + State = 528; Match(WS); + } + break; + } + State = 531; fileNumber(); + } + } + } + State = 536; + _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 = 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 = 539; visibility(); + State = 540; Match(WS); + } + } + + State = 544; Match(CONST); + State = 545; Match(WS); + State = 546; constSubStmt(); + State = 557; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,33,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 548; + _la = _input.La(1); + if (_la==WS) { + { + State = 547; Match(WS); + } + } + + State = 550; Match(T__1); + State = 552; + _la = _input.La(1); + if (_la==WS) { + { + State = 551; Match(WS); + } + } + + State = 554; constSubStmt(); + } + } + } + State = 559; + _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 = 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 = 561; typeHint(); + } + } + + State = 566; + switch ( Interpreter.AdaptivePredict(_input,35,_ctx) ) { + case 1: + { + State = 564; Match(WS); + State = 565; asTypeClause(); + } + break; + } + State = 569; + _la = _input.La(1); + if (_la==WS) { + { + State = 568; Match(WS); + } + } + + State = 571; Match(EQ); + State = 573; + switch ( Interpreter.AdaptivePredict(_input,37,_ctx) ) { + case 1: + { + State = 572; Match(WS); + } + break; + } + State = 575; 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 = 577; Match(DATE); + State = 579; + _la = _input.La(1); + if (_la==WS) { + { + State = 578; Match(WS); + } + } + + State = 581; Match(EQ); + State = 583; + switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { + case 1: + { + State = 582; Match(WS); + } + break; + } + State = 585; 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 = 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 = 587; visibility(); + State = 588; Match(WS); + } + } + + State = 592; Match(DECLARE); + State = 593; Match(WS); + State = 596; + _la = _input.La(1); + if (_la==PTRSAFE) { + { + State = 594; Match(PTRSAFE); + State = 595; Match(WS); + } + } + + State = 603; + switch (_input.La(1)) { + case FUNCTION: + { + { + 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 = 599; typeHint(); + } + } + + } + } + break; + case SUB: + { + State = 602; Match(SUB); + } + break; + default: + throw new NoViableAltException(this); + } + 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 = 607; typeHint(); + } + } + + 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 = 614; Match(WS); + State = 615; Match(ALIAS); + State = 616; Match(WS); + State = 617; Match(STRINGLITERAL); + } + break; + } + State = 624; + switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { + case 1: + { + State = 621; + _la = _input.La(1); + if (_la==WS) { + { + State = 620; Match(WS); + } + } + + State = 623; argList(); + } + break; + } + State = 628; + switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { + case 1: + { + State = 626; Match(WS); + State = 627; 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 = 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 = 631; Match(WS); + State = 632; letterrange(); + State = 643; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,51,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 634; + _la = _input.La(1); + if (_la==WS) { + { + State = 633; Match(WS); + } + } + + State = 636; Match(T__1); + State = 638; + _la = _input.La(1); + if (_la==WS) { + { + State = 637; Match(WS); + } + } + + State = 640; letterrange(); + } + } + } + State = 645; + _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 = 646; Match(DELETESETTING); + State = 647; Match(WS); + State = 648; valueStmt(0); + State = 650; + _la = _input.La(1); + if (_la==WS) { + { + State = 649; Match(WS); + } + } + + State = 652; Match(T__1); + State = 654; + switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { + case 1: + { + State = 653; Match(WS); + } + break; + } + State = 656; valueStmt(0); + State = 665; + switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { + case 1: + { + State = 658; + _la = _input.La(1); + if (_la==WS) { + { + State = 657; Match(WS); + } + } + + State = 660; Match(T__1); + State = 662; + switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { + case 1: + { + State = 661; Match(WS); + } + break; + } + State = 664; 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 = 694; + switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 667; Match(DO); + State = 668; endOfStatement(); + State = 670; + switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { + case 1: + { + State = 669; block(); + } + break; + } + State = 672; Match(LOOP); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 674; Match(DO); + State = 675; Match(WS); + State = 676; + _la = _input.La(1); + if ( !(_la==UNTIL || _la==WHILE) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 677; Match(WS); + State = 678; valueStmt(0); + State = 679; endOfStatement(); + State = 681; + switch ( Interpreter.AdaptivePredict(_input,58,_ctx) ) { + case 1: + { + State = 680; block(); + } + break; + } + State = 683; Match(LOOP); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + 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 = 691; Match(WS); + State = 692; 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 = 696; 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 = 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 = 698; visibility(); + State = 699; Match(WS); + } + } + + 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)) | (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 = 707; enumerationStmt_Constant(); + } + } + State = 712; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 713; 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 = 715; ambiguousIdentifier(); + State = 724; + switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { + case 1: + { + State = 717; + _la = _input.La(1); + if (_la==WS) { + { + State = 716; Match(WS); + } + } + + State = 719; Match(EQ); + State = 721; + switch ( Interpreter.AdaptivePredict(_input,63,_ctx) ) { + case 1: + { + State = 720; Match(WS); + } + break; + } + State = 723; valueStmt(0); + } + break; + } + State = 726; 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 = 728; Match(ERASE); + State = 729; Match(WS); + State = 730; 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 = 732; Match(ERROR); + State = 733; Match(WS); + State = 734; 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 = 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 = 736; visibility(); + State = 737; Match(WS); + } + } + + State = 741; Match(EVENT); + State = 742; Match(WS); + State = 743; ambiguousIdentifier(); + State = 745; + _la = _input.La(1); + if (_la==WS) { + { + State = 744; Match(WS); + } + } + + State = 747; 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 = 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); + } + 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 = 751; Match(FILECOPY); + State = 752; Match(WS); + State = 753; valueStmt(0); + State = 755; + _la = _input.La(1); + if (_la==WS) { + { + State = 754; Match(WS); + } + } + + State = 757; Match(T__1); + State = 759; + switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { + case 1: + { + State = 758; Match(WS); + } + break; + } + State = 761; 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 = 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 = 768; typeHint(); + } + } + + 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 = 776; block(); + } + break; + } + State = 779; Match(NEXT); + State = 782; + switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { + case 1: + { + State = 780; Match(WS); + State = 781; 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 = 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 = 787; typeHint(); + } + } + + State = 792; + switch ( Interpreter.AdaptivePredict(_input,73,_ctx) ) { + case 1: + { + State = 790; Match(WS); + State = 791; asTypeClause(); + } + break; + } + State = 795; + _la = _input.La(1); + if (_la==WS) { + { + State = 794; Match(WS); + } + } + + State = 797; Match(EQ); + State = 799; + switch ( Interpreter.AdaptivePredict(_input,75,_ctx) ) { + case 1: + { + State = 798; Match(WS); + } + break; + } + 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 = 806; Match(WS); + State = 807; Match(STEP); + State = 808; Match(WS); + State = 809; valueStmt(0); + } + break; + } + State = 812; endOfStatement(); + State = 814; + switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { + case 1: + { + State = 813; block(); + } + break; + } + State = 816; Match(NEXT); + State = 819; + switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { + case 1: + { + State = 817; Match(WS); + State = 818; 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 = 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 = 821; visibility(); + State = 822; Match(WS); + } + } + + State = 828; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 826; Match(STATIC); + State = 827; Match(WS); + } + } + + State = 830; Match(FUNCTION); + State = 832; + _la = _input.La(1); + if (_la==WS) { + { + State = 831; Match(WS); + } + } + + State = 834; ambiguousIdentifier(); + State = 836; + switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { + case 1: + { + State = 835; typeHint(); + } + break; + } + State = 842; + switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { + case 1: + { + State = 839; + _la = _input.La(1); + if (_la==WS) { + { + State = 838; Match(WS); + } + } + + State = 841; argList(); + } + break; + } + State = 848; + switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { + case 1: + { + State = 845; + _la = _input.La(1); + if (_la==WS) { + { + State = 844; Match(WS); + } + } + + State = 847; asTypeClause(); + } + break; + } + 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 << (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 = 851; block(); + } + } + + State = 854; 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 = 856; Match(GET); + State = 857; Match(WS); + State = 858; fileNumber(); + State = 860; + _la = _input.La(1); + if (_la==WS) { + { + State = 859; Match(WS); + } + } + + State = 862; Match(T__1); + State = 864; + switch ( Interpreter.AdaptivePredict(_input,89,_ctx) ) { + case 1: + { + State = 863; Match(WS); + } + break; + } + State = 867; + switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { + case 1: + { + State = 866; valueStmt(0); + } + break; + } + State = 870; + _la = _input.La(1); + if (_la==WS) { + { + State = 869; Match(WS); + } + } + + State = 872; Match(T__1); + State = 874; + switch ( Interpreter.AdaptivePredict(_input,92,_ctx) ) { + case 1: + { + State = 873; Match(WS); + } + break; + } + State = 876; 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 = 878; Match(GOSUB); + State = 879; Match(WS); + State = 880; 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 = 882; Match(GOTO); + State = 883; Match(WS); + State = 884; 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 = 911; + switch ( Interpreter.AdaptivePredict(_input,96,_ctx) ) { + case 1: + _localctx = new InlineIfThenElseContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + 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 = 893; Match(WS); + State = 894; Match(ELSE); + State = 895; Match(WS); + State = 896; blockStmt(); + } + break; + } + } + break; + + case 2: + _localctx = new BlockIfThenElseContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 899; ifBlockStmt(); + State = 903; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==ELSEIF) { + { + { + State = 900; ifElseIfBlockStmt(); + } + } + State = 905; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 907; + _la = _input.La(1); + if (_la==ELSE) { + { + State = 906; ifElseBlockStmt(); + } + } + + State = 909; 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 = 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 = 919; 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 = 922; 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 = 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 = 930; 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 = 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 << (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 = 935; 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 = 938; Match(IMPLEMENTS); + State = 939; Match(WS); + State = 940; 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 = 942; Match(INPUT); + State = 943; Match(WS); + State = 944; fileNumber(); + State = 953; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 946; + _la = _input.La(1); + if (_la==WS) { + { + State = 945; Match(WS); + } + } + + State = 948; Match(T__1); + State = 950; + switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { + case 1: + { + State = 949; Match(WS); + } + break; + } + State = 952; valueStmt(0); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 955; + _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 = 957; Match(KILL); + State = 958; Match(WS); + State = 959; 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 = 963; + switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { + case 1: + { + State = 961; Match(LET); + State = 962; Match(WS); + } + break; + } + State = 965; implicitCallStmt_InStmt(); + State = 967; + _la = _input.La(1); + if (_la==WS) { + { + State = 966; Match(WS); + } + } + + State = 969; Match(EQ); + State = 971; + switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { + case 1: + { + State = 970; Match(WS); + } + break; + } + State = 973; 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 = 975; Match(LINE_INPUT); + State = 976; Match(WS); + State = 977; fileNumber(); + State = 979; + _la = _input.La(1); + if (_la==WS) { + { + State = 978; Match(WS); + } + } + + State = 981; Match(T__1); + State = 983; + switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { + case 1: + { + State = 982; Match(WS); + } + break; + } + State = 985; 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 = 987; Match(LOAD); + State = 988; Match(WS); + State = 989; 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 = 991; Match(LOCK); + State = 992; Match(WS); + State = 993; valueStmt(0); + State = 1008; + switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { + case 1: + { + State = 995; + _la = _input.La(1); + if (_la==WS) { + { + State = 994; Match(WS); + } + } + + State = 997; Match(T__1); + State = 999; + switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { + case 1: + { + State = 998; Match(WS); + } + break; + } + State = 1001; valueStmt(0); + State = 1006; + switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { + case 1: + { + State = 1002; Match(WS); + State = 1003; Match(TO); + State = 1004; Match(WS); + State = 1005; 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 = 1010; Match(LSET); + State = 1011; Match(WS); + State = 1012; implicitCallStmt_InStmt(); + State = 1014; + _la = _input.La(1); + if (_la==WS) { + { + State = 1013; Match(WS); + } + } + + State = 1016; Match(EQ); + State = 1018; + switch ( Interpreter.AdaptivePredict(_input,113,_ctx) ) { + case 1: + { + State = 1017; Match(WS); + } + break; + } + State = 1020; 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 = 1022; Match(MID); + State = 1024; + _la = _input.La(1); + if (_la==WS) { + { + State = 1023; Match(WS); + } + } + + State = 1026; Match(LPAREN); + State = 1028; + switch ( Interpreter.AdaptivePredict(_input,115,_ctx) ) { + case 1: + { + State = 1027; Match(WS); + } + break; + } + State = 1030; argsCall(); + State = 1032; + _la = _input.La(1); + if (_la==WS) { + { + State = 1031; Match(WS); + } + } + + State = 1034; 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 = 1036; Match(MKDIR); + State = 1037; Match(WS); + State = 1038; 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 = 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) { + _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 = 1048; + _la = _input.La(1); + if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1049; Match(WS); + State = 1056; + switch (_input.La(1)) { + case GOTO: + { + State = 1050; Match(GOTO); + State = 1051; Match(WS); + State = 1052; valueStmt(0); + } + break; + case RESUME: + { + State = 1053; Match(RESUME); + State = 1054; Match(WS); + State = 1055; 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 = 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,120,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1066; + _la = _input.La(1); + if (_la==WS) { + { + State = 1065; Match(WS); + } + } + + State = 1068; Match(T__1); + State = 1070; + switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { + case 1: + { + State = 1069; Match(WS); + } + break; + } + State = 1072; valueStmt(0); + } + } + } + State = 1077; + _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 = 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,123,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1086; + _la = _input.La(1); + if (_la==WS) { + { + State = 1085; Match(WS); + } + } + + State = 1088; Match(T__1); + State = 1090; + switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { + case 1: + { + State = 1089; Match(WS); + } + break; + } + State = 1092; valueStmt(0); + } + } + } + State = 1097; + _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 = 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 = 1109; + switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { + case 1: + { + State = 1105; Match(WS); + State = 1106; Match(ACCESS); + State = 1107; Match(WS); + State = 1108; + _la = _input.La(1); + 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 = 1113; + switch ( Interpreter.AdaptivePredict(_input,125,_ctx) ) { + case 1: + { + 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); + } + Consume(); + } + break; + } + 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 = 1119; Match(WS); + State = 1120; Match(LEN); + State = 1122; + _la = _input.La(1); + if (_la==WS) { + { + State = 1121; Match(WS); + } + } + + State = 1124; Match(EQ); + State = 1126; + switch ( Interpreter.AdaptivePredict(_input,127,_ctx) ) { + case 1: + { + State = 1125; Match(WS); + } + break; + } + State = 1128; 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 = 1164; + switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1131; outputList_Expression(); + State = 1144; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1133; + _la = _input.La(1); + if (_la==WS) { + { + State = 1132; Match(WS); + } + } + + State = 1135; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1137; + switch ( Interpreter.AdaptivePredict(_input,130,_ctx) ) { + case 1: + { + State = 1136; Match(WS); + } + break; + } + State = 1140; + switch ( Interpreter.AdaptivePredict(_input,131,_ctx) ) { + case 1: + { + State = 1139; outputList_Expression(); + } + break; + } + } + } + } + State = 1146; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + } + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1148; + switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { + case 1: + { + State = 1147; outputList_Expression(); + } + break; + } + State = 1160; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1151; + _la = _input.La(1); + if (_la==WS) { + { + State = 1150; Match(WS); + } + } + + State = 1153; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1155; + switch ( Interpreter.AdaptivePredict(_input,135,_ctx) ) { + case 1: + { + State = 1154; Match(WS); + } + break; + } + State = 1158; + switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { + case 1: + { + State = 1157; outputList_Expression(); + } + break; + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1162; + _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 = 1183; + switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1166; valueStmt(0); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1167; + _la = _input.La(1); + if ( !(_la==SPC || _la==TAB) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1181; + switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { + case 1: + { + State = 1169; + _la = _input.La(1); + if (_la==WS) { + { + State = 1168; Match(WS); + } + } + + State = 1171; Match(LPAREN); + State = 1173; + switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { + case 1: + { + State = 1172; Match(WS); + } + break; + } + State = 1175; argsCall(); + State = 1177; + _la = _input.La(1); + if (_la==WS) { + { + State = 1176; Match(WS); + } + } + + State = 1179; 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 = 1185; Match(PRINT); + State = 1186; Match(WS); + State = 1187; fileNumber(); + State = 1189; + _la = _input.La(1); + if (_la==WS) { + { + State = 1188; Match(WS); + } + } + + State = 1191; Match(T__1); + State = 1196; + switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { + case 1: + { + State = 1193; + switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { + case 1: + { + State = 1192; Match(WS); + } + break; + } + State = 1195; 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 = 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 = 1198; visibility(); + State = 1199; Match(WS); + } + } + + State = 1205; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1203; Match(STATIC); + State = 1204; Match(WS); + } + } + + State = 1207; Match(PROPERTY_GET); + State = 1208; Match(WS); + State = 1209; ambiguousIdentifier(); + State = 1211; + switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { + case 1: + { + State = 1210; typeHint(); + } + break; + } + State = 1217; + switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { + case 1: + { + State = 1214; + _la = _input.La(1); + if (_la==WS) { + { + State = 1213; Match(WS); + } + } + + State = 1216; argList(); + } + break; + } + State = 1221; + switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { + case 1: + { + State = 1219; Match(WS); + State = 1220; asTypeClause(); + } + break; + } + 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 << (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 = 1224; block(); + } + } + + State = 1227; 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 = 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 = 1229; visibility(); + State = 1230; Match(WS); + } + } + + State = 1236; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1234; Match(STATIC); + State = 1235; Match(WS); + } + } + + State = 1238; Match(PROPERTY_SET); + State = 1239; Match(WS); + State = 1240; ambiguousIdentifier(); + State = 1245; + switch ( Interpreter.AdaptivePredict(_input,157,_ctx) ) { + case 1: + { + State = 1242; + _la = _input.La(1); + if (_la==WS) { + { + State = 1241; Match(WS); + } + } + + State = 1244; argList(); + } + break; + } + 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 << (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 = 1248; block(); + } + } + + State = 1251; 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 = 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 = 1253; visibility(); + State = 1254; Match(WS); + } + } + + State = 1260; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1258; Match(STATIC); + State = 1259; Match(WS); + } + } + + State = 1262; Match(PROPERTY_LET); + State = 1263; Match(WS); + State = 1264; ambiguousIdentifier(); + State = 1269; + switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { + case 1: + { + State = 1266; + _la = _input.La(1); + if (_la==WS) { + { + State = 1265; Match(WS); + } + } + + State = 1268; argList(); + } + break; + } + 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 << (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 = 1272; block(); + } + } + + State = 1275; 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 = 1277; Match(PUT); + State = 1278; Match(WS); + State = 1279; fileNumber(); + State = 1281; + _la = _input.La(1); + if (_la==WS) { + { + State = 1280; Match(WS); + } + } + + State = 1283; Match(T__1); + State = 1285; + switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { + case 1: + { + State = 1284; Match(WS); + } + break; + } + State = 1288; + switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { + case 1: + { + State = 1287; valueStmt(0); + } + break; + } + State = 1291; + _la = _input.La(1); + if (_la==WS) { + { + State = 1290; Match(WS); + } + } + + State = 1293; Match(T__1); + State = 1295; + switch ( Interpreter.AdaptivePredict(_input,168,_ctx) ) { + case 1: + { + State = 1294; Match(WS); + } + break; + } + State = 1297; 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 = 1299; Match(RAISEEVENT); + State = 1300; Match(WS); + State = 1301; ambiguousIdentifier(); + State = 1316; + switch ( Interpreter.AdaptivePredict(_input,173,_ctx) ) { + case 1: + { + State = 1303; + _la = _input.La(1); + if (_la==WS) { + { + State = 1302; Match(WS); + } + } + + State = 1305; Match(LPAREN); + State = 1307; + switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { + case 1: + { + State = 1306; Match(WS); + } + break; + } + State = 1313; + switch ( Interpreter.AdaptivePredict(_input,172,_ctx) ) { + case 1: + { + State = 1309; argsCall(); + State = 1311; + _la = _input.La(1); + if (_la==WS) { + { + State = 1310; Match(WS); + } + } + + } + break; + } + State = 1315; 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 = 1318; Match(RANDOMIZE); + State = 1321; + switch ( Interpreter.AdaptivePredict(_input,174,_ctx) ) { + case 1: + { + State = 1319; Match(WS); + State = 1320; 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 = 1323; Match(REDIM); + State = 1324; Match(WS); + State = 1327; + switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { + case 1: + { + State = 1325; Match(PRESERVE); + State = 1326; Match(WS); + } + break; + } + State = 1329; redimSubStmt(); + State = 1340; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,178,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1331; + _la = _input.La(1); + if (_la==WS) { + { + State = 1330; Match(WS); + } + } + + State = 1333; Match(T__1); + State = 1335; + switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { + case 1: + { + State = 1334; Match(WS); + } + break; + } + State = 1337; redimSubStmt(); + } + } + } + State = 1342; + _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 = 1343; implicitCallStmt_InStmt(); + State = 1345; + _la = _input.La(1); + if (_la==WS) { + { + State = 1344; Match(WS); + } + } + + State = 1347; Match(LPAREN); + State = 1349; + switch ( Interpreter.AdaptivePredict(_input,180,_ctx) ) { + case 1: + { + State = 1348; Match(WS); + } + break; + } + State = 1351; subscripts(); + State = 1353; + _la = _input.La(1); + if (_la==WS) { + { + State = 1352; Match(WS); + } + } + + State = 1355; Match(RPAREN); + State = 1358; + switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { + case 1: + { + State = 1356; Match(WS); + State = 1357; 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 = 1360; 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 = 1362; Match(RESUME); + State = 1368; + switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { + case 1: + { + State = 1363; Match(WS); + State = 1366; + switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { + case 1: + { + State = 1364; Match(NEXT); + } + break; + + case 2: + { + State = 1365; 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 = 1370; 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 = 1372; Match(RMDIR); + State = 1373; Match(WS); + State = 1374; 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 = 1376; Match(RSET); + State = 1377; Match(WS); + State = 1378; implicitCallStmt_InStmt(); + State = 1380; + _la = _input.La(1); + if (_la==WS) { + { + State = 1379; Match(WS); + } + } + + State = 1382; Match(EQ); + State = 1384; + switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { + case 1: + { + State = 1383; Match(WS); + } + break; + } + State = 1386; 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 = 1388; Match(SAVEPICTURE); + State = 1389; Match(WS); + State = 1390; valueStmt(0); + State = 1392; + _la = _input.La(1); + if (_la==WS) { + { + State = 1391; Match(WS); + } + } + + State = 1394; Match(T__1); + State = 1396; + switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { + case 1: + { + State = 1395; Match(WS); + } + break; + } + State = 1398; 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 = 1400; Match(SAVESETTING); + State = 1401; Match(WS); + State = 1402; valueStmt(0); + State = 1404; + _la = _input.La(1); + if (_la==WS) { + { + State = 1403; Match(WS); + } + } + + State = 1406; Match(T__1); + State = 1408; + switch ( Interpreter.AdaptivePredict(_input,190,_ctx) ) { + case 1: + { + State = 1407; Match(WS); + } + break; + } + State = 1410; valueStmt(0); + State = 1412; + _la = _input.La(1); + if (_la==WS) { + { + State = 1411; Match(WS); + } + } + + State = 1414; Match(T__1); + State = 1416; + switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { + case 1: + { + State = 1415; Match(WS); + } + break; + } + State = 1418; valueStmt(0); + State = 1420; + _la = _input.La(1); + if (_la==WS) { + { + State = 1419; Match(WS); + } + } + + State = 1422; Match(T__1); + State = 1424; + switch ( Interpreter.AdaptivePredict(_input,194,_ctx) ) { + case 1: + { + State = 1423; Match(WS); + } + break; + } + State = 1426; 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 = 1428; Match(SEEK); + State = 1429; Match(WS); + State = 1430; fileNumber(); + State = 1432; + _la = _input.La(1); + if (_la==WS) { + { + State = 1431; Match(WS); + } + } + + State = 1434; Match(T__1); + State = 1436; + switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { + case 1: + { + State = 1435; Match(WS); + } + break; + } + State = 1438; 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 = 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 = 1446; sC_Case(); + } + } + State = 1451; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 1452; 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 = 1471; + switch ( Interpreter.AdaptivePredict(_input,200,_ctx) ) { + case 1: + _localctx = new CaseCondIsContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 1454; Match(IS); + State = 1456; + _la = _input.La(1); + if (_la==WS) { + { + State = 1455; Match(WS); + } + } + + State = 1458; comparisonOperator(); + State = 1460; + switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { + case 1: + { + State = 1459; Match(WS); + } + break; + } + State = 1462; valueStmt(0); + } + break; + + case 2: + _localctx = new CaseCondToContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 1464; valueStmt(0); + State = 1465; Match(WS); + State = 1466; Match(TO); + State = 1467; Match(WS); + State = 1468; valueStmt(0); + } + break; + + case 3: + _localctx = new CaseCondValueContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 1470; 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 = 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 = 1477; 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 = 1495; + switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { + case 1: + _localctx = new CaseCondElseContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 1480; Match(ELSE); + } + break; + + case 2: + _localctx = new CaseCondSelectionContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 1481; sC_Selection(); + State = 1492; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,204,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1483; + _la = _input.La(1); + if (_la==WS) { + { + State = 1482; Match(WS); + } + } + + State = 1485; Match(T__1); + State = 1487; + switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { + case 1: + { + State = 1486; Match(WS); + } + break; + } + State = 1489; sC_Selection(); + } + } + } + State = 1494; + _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 = 1497; Match(SENDKEYS); + State = 1498; Match(WS); + State = 1499; valueStmt(0); + State = 1508; + switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { + case 1: + { + State = 1501; + _la = _input.La(1); + if (_la==WS) { + { + State = 1500; Match(WS); + } + } + + State = 1503; Match(T__1); + State = 1505; + switch ( Interpreter.AdaptivePredict(_input,207,_ctx) ) { + case 1: + { + State = 1504; Match(WS); + } + break; + } + State = 1507; 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 = 1510; Match(SETATTR); + State = 1511; Match(WS); + State = 1512; valueStmt(0); + State = 1514; + _la = _input.La(1); + if (_la==WS) { + { + State = 1513; Match(WS); + } + } + + State = 1516; Match(T__1); + State = 1518; + switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { + case 1: + { + State = 1517; Match(WS); + } + break; + } + State = 1520; 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 = 1522; Match(SET); + State = 1523; Match(WS); + State = 1524; implicitCallStmt_InStmt(); + State = 1526; + _la = _input.La(1); + if (_la==WS) { + { + State = 1525; Match(WS); + } + } + + State = 1528; Match(EQ); + State = 1530; + switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { + case 1: + { + State = 1529; Match(WS); + } + break; + } + State = 1532; 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 = 1534; 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 = 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 = 1536; visibility(); + State = 1537; Match(WS); + } + } + + State = 1543; + _la = _input.La(1); + if (_la==STATIC) { + { + State = 1541; Match(STATIC); + State = 1542; Match(WS); + } + } + + State = 1545; Match(SUB); + State = 1547; + _la = _input.La(1); + if (_la==WS) { + { + State = 1546; Match(WS); + } + } + + State = 1549; ambiguousIdentifier(); + State = 1554; + switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { + case 1: + { + State = 1551; + _la = _input.La(1); + if (_la==WS) { + { + State = 1550; Match(WS); + } + } + + State = 1553; argList(); + } + break; + } + 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 << (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 = 1557; block(); + } + } + + State = 1560; 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 = 1562; Match(TIME); + State = 1564; + _la = _input.La(1); + if (_la==WS) { + { + State = 1563; Match(WS); + } + } + + State = 1566; Match(EQ); + State = 1568; + switch ( Interpreter.AdaptivePredict(_input,220,_ctx) ) { + case 1: + { + State = 1567; Match(WS); + } + break; + } + State = 1570; 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 = 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 = 1572; visibility(); + State = 1573; Match(WS); + } + } + + 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)) | (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 = 1581; typeStmt_Element(); + } + } + State = 1586; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 1587; 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 = 1589; ambiguousIdentifier(); + State = 1604; + switch ( Interpreter.AdaptivePredict(_input,227,_ctx) ) { + case 1: + { + State = 1591; + _la = _input.La(1); + if (_la==WS) { + { + State = 1590; Match(WS); + } + } + + State = 1593; Match(LPAREN); + State = 1598; + switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { + case 1: + { + State = 1595; + switch ( Interpreter.AdaptivePredict(_input,224,_ctx) ) { + case 1: + { + State = 1594; Match(WS); + } + break; + } + State = 1597; subscripts(); + } + break; + } + State = 1601; + _la = _input.La(1); + if (_la==WS) { + { + State = 1600; Match(WS); + } + } + + State = 1603; Match(RPAREN); + } + break; + } + State = 1608; + switch ( Interpreter.AdaptivePredict(_input,228,_ctx) ) { + case 1: + { + State = 1606; Match(WS); + State = 1607; asTypeClause(); + } + break; + } + State = 1610; 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 = 1612; Match(TYPEOF); + State = 1613; Match(WS); + State = 1614; valueStmt(0); + State = 1619; + switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { + case 1: + { + State = 1615; Match(WS); + State = 1616; Match(IS); + State = 1617; Match(WS); + State = 1618; 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 = 1621; Match(UNLOAD); + State = 1622; Match(WS); + State = 1623; 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 = 1625; Match(UNLOCK); + State = 1626; Match(WS); + State = 1627; fileNumber(); + State = 1642; + switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { + case 1: + { + State = 1629; + _la = _input.La(1); + if (_la==WS) { + { + State = 1628; Match(WS); + } + } + + State = 1631; Match(T__1); + State = 1633; + switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { + case 1: + { + State = 1632; Match(WS); + } + break; + } + State = 1635; valueStmt(0); + State = 1640; + switch ( Interpreter.AdaptivePredict(_input,232,_ctx) ) { + case 1: + { + State = 1636; Match(WS); + State = 1637; Match(TO); + State = 1638; Match(WS); + State = 1639; 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 = 1699; + switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { + case 1: + { + _localctx = new VsNewContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + State = 1645; Match(NEW); + State = 1647; + switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { + case 1: + { + State = 1646; Match(WS); + } + break; + } + State = 1649; valueStmt(19); + } + break; + + case 2: + { + _localctx = new VsAddressOfContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1650; Match(ADDRESSOF); + State = 1652; + switch ( Interpreter.AdaptivePredict(_input,235,_ctx) ) { + case 1: + { + State = 1651; Match(WS); + } + break; + } + State = 1654; valueStmt(16); + } + break; + + case 3: + { + _localctx = new VsAssignContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1655; implicitCallStmt_InStmt(); + State = 1657; + _la = _input.La(1); + if (_la==WS) { + { + State = 1656; Match(WS); + } + } + + State = 1659; Match(ASSIGN); + State = 1661; + switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { + case 1: + { + State = 1660; Match(WS); + } + break; + } + State = 1663; valueStmt(15); + } + break; + + case 4: + { + _localctx = new VsNegationContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1665; Match(MINUS); + State = 1667; + switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { + case 1: + { + State = 1666; Match(WS); + } + break; + } + State = 1669; valueStmt(13); + } + break; + + case 5: + { + _localctx = new VsNotContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1670; Match(NOT); + State = 1672; + switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { + case 1: + { + State = 1671; Match(WS); + } + break; + } + State = 1674; valueStmt(6); + } + break; + + case 6: + { + _localctx = new VsLiteralContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1675; literal(); + } + break; + + case 7: + { + _localctx = new VsICSContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1676; implicitCallStmt_InStmt(); + } + break; + + case 8: + { + _localctx = new VsStructContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1677; Match(LPAREN); + State = 1679; + switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { + case 1: + { + State = 1678; Match(WS); + } + break; + } + State = 1681; valueStmt(0); + State = 1692; + _errHandler.Sync(this); + _la = _input.La(1); + while (_la==T__1 || _la==WS) { + { + { + State = 1683; + _la = _input.La(1); + if (_la==WS) { + { + State = 1682; Match(WS); + } + } + + State = 1685; Match(T__1); + State = 1687; + switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { + case 1: + { + State = 1686; Match(WS); + } + break; + } + State = 1689; valueStmt(0); + } + } + State = 1694; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 1695; Match(RPAREN); + } + break; + + case 9: + { + _localctx = new VsTypeOfContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1697; typeOfStmt(); + } + break; + + case 10: + { + _localctx = new VsMidContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + State = 1698; midStmt(); + } + break; + } + _ctx.stop = _input.Lt(-1); + State = 1811; + _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 = 1809; + switch ( Interpreter.AdaptivePredict(_input,269,_ctx) ) { + case 1: + { + _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1701; + if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); + State = 1703; + _la = _input.La(1); + if (_la==WS) { + { + State = 1702; Match(WS); + } + } + + State = 1705; Match(POW); + State = 1707; + switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { + case 1: + { + State = 1706; Match(WS); + } + break; + } + State = 1709; valueStmt(15); + } + break; + + case 2: + { + _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1710; + if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); + State = 1712; + _la = _input.La(1); + if (_la==WS) { + { + State = 1711; Match(WS); + } + } + + State = 1714; + _la = _input.La(1); + if ( !(_la==DIV || _la==MULT) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1716; + switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { + case 1: + { + State = 1715; Match(WS); + } + break; + } + State = 1718; valueStmt(13); + } + break; + + case 3: + { + _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1719; + if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); + State = 1721; + _la = _input.La(1); + if (_la==WS) { + { + State = 1720; Match(WS); + } + } + + State = 1723; Match(INTDIV); + State = 1725; + switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { + case 1: + { + State = 1724; Match(WS); + } + break; + } + State = 1727; valueStmt(12); + } + break; + + case 4: + { + _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1728; + if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); + State = 1730; + _la = _input.La(1); + if (_la==WS) { + { + State = 1729; Match(WS); + } + } + + State = 1732; Match(MOD); + State = 1734; + switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { + case 1: + { + State = 1733; Match(WS); + } + break; + } + State = 1736; valueStmt(11); + } + break; + + case 5: + { + _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1737; + if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); + State = 1739; + _la = _input.La(1); + if (_la==WS) { + { + State = 1738; Match(WS); + } + } + + State = 1741; + _la = _input.La(1); + if ( !(_la==MINUS || _la==PLUS) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1743; + switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { + case 1: + { + State = 1742; Match(WS); + } + break; + } + State = 1745; valueStmt(10); + } + break; + + case 6: + { + _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1746; + if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); + State = 1748; + _la = _input.La(1); + if (_la==WS) { + { + State = 1747; Match(WS); + } + } + + State = 1750; Match(AMPERSAND); + State = 1752; + switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { + case 1: + { + State = 1751; Match(WS); + } + break; + } + State = 1754; valueStmt(9); + } + break; + + case 7: + { + _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1755; + if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); + State = 1757; + _la = _input.La(1); + if (_la==WS) { + { + State = 1756; Match(WS); + } + } + + State = 1759; + _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)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 1761; + switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { + case 1: + { + State = 1760; Match(WS); + } + break; + } + State = 1763; valueStmt(8); + } + break; + + case 8: + { + _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1764; + if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); + State = 1766; + _la = _input.La(1); + if (_la==WS) { + { + State = 1765; Match(WS); + } + } + + State = 1768; Match(AND); + State = 1770; + switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { + case 1: + { + State = 1769; Match(WS); + } + break; + } + State = 1772; valueStmt(6); + } + break; + + case 9: + { + _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1773; + if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); + State = 1775; + _la = _input.La(1); + if (_la==WS) { + { + State = 1774; Match(WS); + } + } + + State = 1777; Match(OR); + State = 1779; + switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { + case 1: + { + State = 1778; Match(WS); + } + break; + } + State = 1781; valueStmt(5); + } + break; + + case 10: + { + _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1782; + if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); + State = 1784; + _la = _input.La(1); + if (_la==WS) { + { + State = 1783; Match(WS); + } + } + + State = 1786; Match(XOR); + State = 1788; + switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { + case 1: + { + State = 1787; Match(WS); + } + break; + } + State = 1790; valueStmt(4); + } + break; + + case 11: + { + _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1791; + if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); + State = 1793; + _la = _input.La(1); + if (_la==WS) { + { + State = 1792; Match(WS); + } + } + + State = 1795; Match(EQV); + State = 1797; + switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { + case 1: + { + State = 1796; Match(WS); + } + break; + } + State = 1799; valueStmt(3); + } + break; + + case 12: + { + _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 1800; + if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); + State = 1802; + _la = _input.La(1); + if (_la==WS) { + { + State = 1801; Match(WS); + } + } + + State = 1804; Match(IMP); + State = 1806; + switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { + case 1: + { + State = 1805; Match(WS); + } + break; + } + State = 1808; valueStmt(2); + } + break; + } + } + } + State = 1813; + _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 = 1817; + switch (_input.La(1)) { + case DIM: + { + State = 1814; Match(DIM); + } + break; + case STATIC: + { + State = 1815; Match(STATIC); + } + break; + case FRIEND: + case GLOBAL: + case PRIVATE: + case PUBLIC: + { + State = 1816; visibility(); + } + break; + default: + throw new NoViableAltException(this); + } + State = 1819; Match(WS); + State = 1822; + switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { + case 1: + { + State = 1820; Match(WITHEVENTS); + State = 1821; Match(WS); + } + break; + } + State = 1824; 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 = 1826; variableSubStmt(); + State = 1837; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,275,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1828; + _la = _input.La(1); + if (_la==WS) { + { + State = 1827; Match(WS); + } + } + + State = 1830; Match(T__1); + State = 1832; + _la = _input.La(1); + if (_la==WS) { + { + State = 1831; Match(WS); + } + } + + State = 1834; variableSubStmt(); + } + } + } + State = 1839; + _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 = 1840; ambiguousIdentifier(); + State = 1858; + switch ( Interpreter.AdaptivePredict(_input,281,_ctx) ) { + case 1: + { + State = 1842; + _la = _input.La(1); + if (_la==WS) { + { + State = 1841; Match(WS); + } + } + + State = 1844; Match(LPAREN); + State = 1846; + switch ( Interpreter.AdaptivePredict(_input,277,_ctx) ) { + case 1: + { + State = 1845; Match(WS); + } + break; + } + 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)) | (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 = 1848; subscripts(); + State = 1850; + _la = _input.La(1); + if (_la==WS) { + { + State = 1849; Match(WS); + } + } + + } + } + + State = 1854; Match(RPAREN); + State = 1856; + switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { + case 1: + { + State = 1855; Match(WS); + } + break; + } + } + break; + } + State = 1861; + switch ( Interpreter.AdaptivePredict(_input,282,_ctx) ) { + case 1: + { + State = 1860; typeHint(); + } + break; + } + State = 1865; + switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { + case 1: + { + State = 1863; Match(WS); + State = 1864; 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 = 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 = 1871; block(); + } + break; + } + State = 1874; 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 = 1876; Match(WIDTH); + State = 1877; Match(WS); + State = 1878; fileNumber(); + State = 1880; + _la = _input.La(1); + if (_la==WS) { + { + State = 1879; Match(WS); + } + } + + State = 1882; Match(T__1); + State = 1884; + switch ( Interpreter.AdaptivePredict(_input,286,_ctx) ) { + case 1: + { + State = 1883; Match(WS); + } + break; + } + State = 1886; 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 = 1888; Match(WITH); + State = 1889; Match(WS); + State = 1894; + switch ( Interpreter.AdaptivePredict(_input,287,_ctx) ) { + case 1: + { + State = 1890; implicitCallStmt_InStmt(); + } + break; + + case 2: + { + { + State = 1891; Match(NEW); + State = 1892; Match(WS); + State = 1893; type(); + } + } + break; + } + 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 << (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 = 1897; block(); + } + } + + State = 1900; 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 = 1902; Match(WRITE); + State = 1903; Match(WS); + State = 1904; fileNumber(); + State = 1906; + _la = _input.La(1); + if (_la==WS) { + { + State = 1905; Match(WS); + } + } + + State = 1908; Match(T__1); + State = 1913; + switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { + case 1: + { + State = 1910; + switch ( Interpreter.AdaptivePredict(_input,290,_ctx) ) { + case 1: + { + State = 1909; Match(WS); + } + break; + } + State = 1912; 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 = 1916; + _la = _input.La(1); + if (_la==T__5) { + { + State = 1915; Match(T__5); + } + } + + State = 1918; 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 = 1922; + switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1920; eCS_ProcedureCall(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1921; 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 = 1924; Match(CALL); + State = 1925; Match(WS); + State = 1926; ambiguousIdentifier(); + State = 1928; + switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { + case 1: + { + State = 1927; typeHint(); + } + break; + } + State = 1943; + switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { + case 1: + { + State = 1931; + _la = _input.La(1); + if (_la==WS) { + { + State = 1930; Match(WS); + } + } + + State = 1933; Match(LPAREN); + State = 1935; + switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { + case 1: + { + State = 1934; Match(WS); + } + break; + } + State = 1937; argsCall(); + State = 1939; + _la = _input.La(1); + if (_la==WS) { + { + State = 1938; Match(WS); + } + } + + State = 1941; Match(RPAREN); + } + break; + } + State = 1954; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,300,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1946; + _la = _input.La(1); + if (_la==WS) { + { + State = 1945; Match(WS); + } + } + + State = 1948; Match(LPAREN); + State = 1949; subscripts(); + State = 1950; Match(RPAREN); + } + } + } + State = 1956; + _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 = 1957; Match(CALL); + State = 1958; Match(WS); + State = 1960; + switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { + case 1: + { + State = 1959; implicitCallStmt_InStmt(); + } + break; + } + State = 1962; Match(T__0); + State = 1963; ambiguousIdentifier(); + State = 1965; + switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { + case 1: + { + State = 1964; typeHint(); + } + break; + } + State = 1980; + switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { + case 1: + { + State = 1968; + _la = _input.La(1); + if (_la==WS) { + { + State = 1967; Match(WS); + } + } + + State = 1970; Match(LPAREN); + State = 1972; + switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + case 1: + { + State = 1971; Match(WS); + } + break; + } + State = 1974; argsCall(); + State = 1976; + _la = _input.La(1); + if (_la==WS) { + { + State = 1975; Match(WS); + } + } + + State = 1978; Match(RPAREN); + } + break; + } + State = 1991; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,308,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1983; + _la = _input.La(1); + if (_la==WS) { + { + State = 1982; Match(WS); + } + } + + State = 1985; Match(LPAREN); + State = 1986; subscripts(); + State = 1987; Match(RPAREN); + } + } + } + State = 1993; + _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 = 1996; + switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1994; iCS_B_MemberProcedureCall(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1995; 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 = 1999; + switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { + case 1: + { + State = 1998; implicitCallStmt_InStmt(); + } + break; + } + State = 2001; Match(T__0); + State = 2002; ambiguousIdentifier(); + State = 2004; + switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { + case 1: + { + State = 2003; typeHint(); + } + break; + } + State = 2008; + switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { + case 1: + { + State = 2006; Match(WS); + State = 2007; argsCall(); + } + break; + } + State = 2014; + switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { + case 1: + { + State = 2011; + _la = _input.La(1); + if (_la==WS) { + { + State = 2010; Match(WS); + } + } + + State = 2013; dictionaryCallStmt(); + } + break; + } + State = 2025; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,316,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2017; + _la = _input.La(1); + if (_la==WS) { + { + State = 2016; Match(WS); + } + } + + State = 2019; Match(LPAREN); + State = 2020; subscripts(); + State = 2021; Match(RPAREN); + } + } + } + State = 2027; + _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 = 2028; certainIdentifier(); + State = 2031; + switch ( Interpreter.AdaptivePredict(_input,317,_ctx) ) { + case 1: + { + State = 2029; Match(WS); + State = 2030; argsCall(); + } + break; + } + State = 2042; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,319,_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,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 = 2049; + switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 2045; iCS_S_MembersCall(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 2046; iCS_S_VariableOrProcedureCall(); + } + break; + + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 2047; iCS_S_ProcedureOrArrayCall(); + } + break; + + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 2048; 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 = 2051; ambiguousIdentifier(); + State = 2053; + switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { + case 1: + { + State = 2052; typeHint(); + } + break; + } + State = 2059; + switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { + case 1: + { + State = 2056; + _la = _input.La(1); + if (_la==WS) { + { + State = 2055; Match(WS); + } + } + + State = 2058; dictionaryCallStmt(); + } + break; + } + State = 2070; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,325,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2062; + _la = _input.La(1); + if (_la==WS) { + { + State = 2061; Match(WS); + } + } + + State = 2064; Match(LPAREN); + State = 2065; subscripts(); + State = 2066; Match(RPAREN); + } + } + } + State = 2072; + _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 = 2075; + switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { + case 1: + { + State = 2073; ambiguousIdentifier(); + } + break; + + case 2: + { + State = 2074; baseType(); + } + break; + } + 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 = 2077; typeHint(); + } + } + + State = 2081; + _la = _input.La(1); + if (_la==WS) { + { + State = 2080; Match(WS); + } + } + + State = 2083; Match(LPAREN); + State = 2085; + switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { + case 1: + { + State = 2084; Match(WS); + } + break; + } + State = 2091; + switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { + case 1: + { + State = 2087; argsCall(); + State = 2089; + _la = _input.La(1); + if (_la==WS) { + { + State = 2088; Match(WS); + } + } + + } + break; + } + State = 2093; Match(RPAREN); + State = 2098; + switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { + case 1: + { + State = 2095; + _la = _input.La(1); + if (_la==WS) { + { + State = 2094; Match(WS); + } + } + + State = 2097; dictionaryCallStmt(); + } + break; + } + State = 2109; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,335,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2101; + _la = _input.La(1); + if (_la==WS) { + { + State = 2100; Match(WS); + } + } + + State = 2103; Match(LPAREN); + State = 2104; subscripts(); + State = 2105; Match(RPAREN); + } + } + } + State = 2111; + _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 = 2114; + switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { + case 1: + { + State = 2112; iCS_S_VariableOrProcedureCall(); + } + break; + + case 2: + { + State = 2113; iCS_S_ProcedureOrArrayCall(); + } + break; + } + State = 2120; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 2116; iCS_S_MemberCall(); + State = 2118; + switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { + case 1: + { + State = 2117; Match(WS); + } + break; + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2122; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,338,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); + State = 2128; + switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { + case 1: + { + State = 2125; + _la = _input.La(1); + if (_la==WS) { + { + State = 2124; Match(WS); + } + } + + State = 2127; dictionaryCallStmt(); + } + break; + } + State = 2139; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,342,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2131; + _la = _input.La(1); + if (_la==WS) { + { + State = 2130; Match(WS); + } + } + + State = 2133; Match(LPAREN); + State = 2134; subscripts(); + State = 2135; Match(RPAREN); + } + } + } + State = 2141; + _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 = 2142; + _la = _input.La(1); + if ( !(_la==T__6 || _la==T__0) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2144; + _la = _input.La(1); + if (_la==WS) { + { + State = 2143; Match(WS); + } + } + + State = 2148; + switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { + case 1: + { + State = 2146; iCS_S_VariableOrProcedureCall(); + } + break; + + case 2: + { + State = 2147; 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 = 2151; + _la = _input.La(1); + if (_la==WS) { + { + State = 2150; Match(WS); + } + } + + State = 2153; 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 = 2167; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2156; + switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { + case 1: + { + State = 2155; argCall(); + } + break; + } + State = 2159; + _la = _input.La(1); + if (_la==WS) { + { + State = 2158; Match(WS); + } + } + + State = 2161; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2163; + switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { + case 1: + { + State = 2162; Match(WS); + } + break; + } + } + } + } + State = 2169; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,349,_ctx); + } + State = 2170; argCall(); + State = 2183; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,353,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2172; + _la = _input.La(1); + if (_la==WS) { + { + State = 2171; Match(WS); + } + } + + State = 2174; + _la = _input.La(1); + if ( !(_la==T__2 || _la==T__1) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2176; + switch ( Interpreter.AdaptivePredict(_input,351,_ctx) ) { + case 1: + { + State = 2175; Match(WS); + } + break; + } + State = 2179; + switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { + case 1: + { + State = 2178; argCall(); + } + break; + } + } + } + } + State = 2185; + _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 = 2187; + switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { + case 1: + { + State = 2186; Match(LPAREN); + } + break; + } + State = 2191; + switch ( Interpreter.AdaptivePredict(_input,355,_ctx) ) { + case 1: + { + State = 2189; + _la = _input.La(1); + if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2190; Match(WS); + } + break; + } + State = 2194; + _la = _input.La(1); + if (_la==RPAREN) { + { + State = 2193; Match(RPAREN); + } + } + + State = 2196; 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 = 2198; Match(T__6); + State = 2200; + _la = _input.La(1); + if (_la==WS) { + { + State = 2199; Match(WS); + } + } + + State = 2202; ambiguousIdentifier(); + State = 2204; + switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { + case 1: + { + State = 2203; 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 = 2206; Match(LPAREN); + State = 2224; + switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { + case 1: + { + State = 2208; + _la = _input.La(1); + if (_la==WS) { + { + State = 2207; Match(WS); + } + } + + State = 2210; arg(); + State = 2221; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2212; + _la = _input.La(1); + if (_la==WS) { + { + State = 2211; Match(WS); + } + } + + State = 2214; Match(T__1); + State = 2216; + _la = _input.La(1); + if (_la==WS) { + { + State = 2215; Match(WS); + } + } + + State = 2218; arg(); + } + } + } + State = 2223; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + } + } + break; + } + State = 2227; + _la = _input.La(1); + if (_la==WS) { + { + State = 2226; Match(WS); + } + } + + State = 2229; 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 = 2233; + switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { + case 1: + { + State = 2231; Match(OPTIONAL); + State = 2232; Match(WS); + } + break; + } + State = 2237; + switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { + case 1: + { + State = 2235; + _la = _input.La(1); + if ( !(_la==BYVAL || _la==BYREF) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2236; Match(WS); + } + break; + } + State = 2241; + switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { + case 1: + { + State = 2239; Match(PARAMARRAY); + State = 2240; Match(WS); + } + break; + } + 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 = 2244; typeHint(); + } + } + + State = 2255; + switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { + case 1: + { + State = 2248; + _la = _input.La(1); + if (_la==WS) { + { + State = 2247; Match(WS); + } + } + + State = 2250; Match(LPAREN); + State = 2252; + _la = _input.La(1); + if (_la==WS) { + { + State = 2251; Match(WS); + } + } + + State = 2254; Match(RPAREN); + } + break; + } + State = 2261; + switch ( Interpreter.AdaptivePredict(_input,373,_ctx) ) { + case 1: + { + State = 2258; + _la = _input.La(1); + if (_la==WS) { + { + State = 2257; Match(WS); + } + } + + State = 2260; asTypeClause(); + } + break; + } + State = 2267; + switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { + case 1: + { + State = 2264; + _la = _input.La(1); + if (_la==WS) { + { + State = 2263; Match(WS); + } + } + + State = 2266; 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 = 2269; Match(EQ); + State = 2271; + switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { + case 1: + { + State = 2270; Match(WS); + } + break; + } + State = 2273; 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 = 2275; subscript(); + State = 2286; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,379,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2277; + _la = _input.La(1); + if (_la==WS) { + { + State = 2276; Match(WS); + } + } + + State = 2279; Match(T__1); + State = 2281; + switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { + case 1: + { + State = 2280; Match(WS); + } + break; + } + State = 2283; subscript(); + } + } + } + State = 2288; + _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 = 2294; + switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { + case 1: + { + State = 2289; valueStmt(0); + State = 2290; Match(WS); + State = 2291; Match(TO); + State = 2292; Match(WS); + } + break; + } + State = 2296; 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 = 2300; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 2300; + switch (_input.La(1)) { + case IDENTIFIER: + { + State = 2298; 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 = 2299; ambiguousKeyword(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2302; + _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 = 2304; Match(AS); + State = 2306; + _la = _input.La(1); + if (_la==WS) { + { + State = 2305; Match(WS); + } + } + + State = 2310; + switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { + case 1: + { + State = 2308; Match(NEW); + State = 2309; Match(WS); + } + break; + } + State = 2312; type(); + State = 2317; + switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { + case 1: + { + State = 2314; + _la = _input.La(1); + if (_la==WS) { + { + State = 2313; Match(WS); + } + } + + State = 2316; 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 = 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 - 155)) & ~0x3f) == 0 && ((1L << (_la - 155)) & ((1L << (SINGLE - 155)) | (1L << (STRING - 155)) | (1L << (VARIANT - 155)))) != 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 = 2336; + switch (_input.La(1)) { + case IDENTIFIER: + EnterOuterAlt(_localctx, 1); + { + State = 2321; Match(IDENTIFIER); + State = 2326; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,388,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + State = 2324; + 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 = 2322; ambiguousKeyword(); + } + break; + case IDENTIFIER: + { + State = 2323; Match(IDENTIFIER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + State = 2328; + _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 = 2329; ambiguousKeyword(); + State = 2332; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 2332; + 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 = 2330; ambiguousKeyword(); + } + break; + case IDENTIFIER: + { + State = 2331; Match(IDENTIFIER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2334; + _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 = 2338; + _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)) ) { + _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 = 2340; ambiguousIdentifier(); + State = 2345; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,392,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2341; + _la = _input.La(1); + if ( !(_la==T__6 || _la==T__0) ) { + _errHandler.RecoverInline(this); + } + Consume(); + State = 2342; ambiguousIdentifier(); + } + } + } + State = 2347; + _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 = 2348; Match(MULT); + State = 2350; + _la = _input.La(1); + if (_la==WS) { + { + State = 2349; Match(WS); + } + } + + State = 2354; + switch (_input.La(1)) { + case INTEGERLITERAL: + { + State = 2352; 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 = 2353; 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 = 2356; certainIdentifier(); + State = 2365; + switch ( Interpreter.AdaptivePredict(_input,397,_ctx) ) { + case 1: + { + State = 2358; + _la = _input.La(1); + if (_la==WS) { + { + State = 2357; Match(WS); + } + } + + State = 2360; Match(MINUS); + State = 2362; + _la = _input.La(1); + if (_la==WS) { + { + State = 2361; Match(WS); + } + } + + State = 2364; 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 = 2367; ambiguousIdentifier(); + State = 2368; 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 EMPTY() { return GetToken(VBAParser.EMPTY, 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 = 2370; + _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)) ) { + _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 = 2374; + switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { + case 1: + { + State = 2372; baseType(); + } + break; + + case 2: + { + State = 2373; complexType(); + } + break; + } + State = 2384; + switch ( Interpreter.AdaptivePredict(_input,401,_ctx) ) { + case 1: + { + State = 2377; + _la = _input.La(1); + if (_la==WS) { + { + State = 2376; Match(WS); + } + } + + State = 2379; Match(LPAREN); + State = 2381; + _la = _input.La(1); + if (_la==WS) { + { + State = 2380; Match(WS); + } + } + + State = 2383; 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 = 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); + } + 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 = 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); + } + 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 = 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)) | (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(); + } + } + 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 = 2392; 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 = 2394; 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 = 2397; + _la = _input.La(1); + if (_la==WS) { + { + State = 2396; Match(WS); + } + } + + State = 2402; + switch (_input.La(1)) { + case NEWLINE: + { + State = 2399; Match(NEWLINE); + } + break; + case COMMENT: + { + State = 2400; comment(); + } + break; + case REMCOMMENT: + { + State = 2401; remComment(); + } + break; + default: + throw new NoViableAltException(this); + } + State = 2405; + switch ( Interpreter.AdaptivePredict(_input,404,_ctx) ) { + case 1: + { + State = 2404; 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 = 2417; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,408,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + State = 2415; + switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { + case 1: + { + State = 2407; endOfLine(); + } + break; + + case 2: + { + State = 2409; + _la = _input.La(1); + if (_la==WS) { + { + State = 2408; Match(WS); + } + } + + State = 2411; Match(COLON); + State = 2413; + switch ( Interpreter.AdaptivePredict(_input,406,_ctx) ) { + case 1: + { + State = 2412; Match(WS); + } + break; + } + } + break; + } + } + } + State = 2419; + _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\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"+ + "\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\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\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()); +} } // 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 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..3b518d657c --- /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 || right.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/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/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..a6745cd684 --- /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 = !ifIsAlive && 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/DateLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/DateLiteralExpression.cs new file mode 100644 index 0000000000..f3ad46d0fb --- /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(), CultureInfo.InvariantCulture); + var MNumber = int.Parse(M.GetText(), CultureInfo.InvariantCulture); + 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(), 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; + 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(), CultureInfo.InvariantCulture); + monthName = M.GetText(); + } + else + { + N = int.Parse(M.GetText(), CultureInfo.InvariantCulture); + 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(), CultureInfo.InvariantCulture); + N2 = int.Parse(R.GetText(), CultureInfo.InvariantCulture); + } + else if (M.dateValueNumber() == null) + { + monthName = M.GetText(); + N1 = int.Parse(L.GetText(), CultureInfo.InvariantCulture); + N2 = int.Parse(R.GetText(), CultureInfo.InvariantCulture); + } + else + { + monthName = R.GetText(); + N1 = int.Parse(L.GetText(), CultureInfo.InvariantCulture); + N2 = int.Parse(M.GetText(), CultureInfo.InvariantCulture); + } + 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(), CultureInfo.InvariantCulture); + if (timeValue.timeValuePart().Count == 1) + { + mins = 0; + } + else + { + mins = int.Parse(timeValue.timeValuePart()[1].GetText(), CultureInfo.InvariantCulture); + } + if (timeValue.timeValuePart().Count < 3) + { + seconds = 0; + } + else + { + 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) + { + 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/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/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/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..0a2449d8fa --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalEqualsExpression.cs @@ -0,0 +1,38 @@ +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 || left.ValueType == ValueType.Empty) + && (right.ValueType == ValueType.String || right.ValueType == ValueType.Empty)) + { + var leftValue = left.AsString; + var rightValue = right.AsString; + return new BoolValue(leftValue.CompareTo(rightValue) == 0); + } + 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..055bb052f8 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/LogicalLessThanExpression.cs @@ -0,0 +1,37 @@ +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 || left.ValueType == ValueType.Empty) + && (right.ValueType == ValueType.String || right.ValueType == ValueType.Empty)) + { + var leftValue = left.AsString; + var rightValue = right.AsString; + return new BoolValue(leftValue.CompareTo(rightValue) < 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..9430502489 --- /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 Empty. + // 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..b235ecf7a6 --- /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, CultureInfo.InvariantCulture); + 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/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..251affef82 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/StringValue.cs @@ -0,0 +1,93 @@ +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 (string.CompareOrdinal(str.ToLower(), "true") == 0 + || string.CompareOrdinal(str, "#TRUE#") == 0) + { + return true; + } + else if (string.CompareOrdinal(str.ToLower(), "false") == 0 + || string.CompareOrdinal(str, "#FALSE#") == 0) + { + 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 new file mode 100644 index 0000000000..27a82a1439 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/SymbolTable.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class SymbolTable + { + private readonly Dictionary _table; + + public SymbolTable() + { + _table = new Dictionary(); + } + + public void Add(TKey name, TValue value) + { + _table[name] = value; + } + + public bool HasSymbol(TKey name) + { + return _table.ContainsKey(name); + } + + public TValue Get(TKey name) + { + if (_table.ContainsKey(name)) + { + return _table[name]; + } + 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/VBAConditionalCompilation.g4 b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 new file mode 100644 index 0000000000..8749cfcbd5 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilation.g4 @@ -0,0 +1,204 @@ +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 : 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; +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..7a61822195 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseListener.cs @@ -0,0 +1,324 @@ +//------------------------------------------------------------------------------ +// +// 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..410f93e39b --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationBaseVisitor.cs @@ -0,0 +1,268 @@ +//------------------------------------------------------------------------------ +// +// 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..9d385c6539 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationLexer.cs @@ -0,0 +1,509 @@ +//------------------------------------------------------------------------------ +// +// 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, 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'", "'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 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\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 new file mode 100644 index 0000000000..24b2fa5aeb --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationListener.cs @@ -0,0 +1,265 @@ +//------------------------------------------------------------------------------ +// +// 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..62bc15e55d --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs @@ -0,0 +1,2769 @@ +//------------------------------------------------------------------------------ +// +// 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, 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 new file mode 100644 index 0000000000..4b4275f4cf --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationVisitor.cs @@ -0,0 +1,182 @@ +//------------------------------------------------------------------------------ +// +// 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..a721a24423 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADate.g4 @@ -0,0 +1,81 @@ +grammar VBADate; + +compilationUnit : dateLiteral EOF; + +dateLiteral : HASH dateOrTime HASH; +dateOrTime : + dateValue + | timeValue + | dateValue WS+ timeValue; +dateValue : dateValuePart dateSeparator dateValuePart (dateSeparator dateValuePart)?; +dateValuePart : dateValueNumber | monthName; +dateValueNumber : DIGIT+; +dateSeparator : WS+ | (WS* (SLASH | COMMA | DASH) WS*); +monthName : englishMonthName | englishMonthAbbreviation; +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 : '#'; +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..d8ee018fe9 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateBaseListener.cs @@ -0,0 +1,220 @@ +//------------------------------------------------------------------------------ +// +// 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 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 new file mode 100644 index 0000000000..bd8dd8e385 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateBaseVisitor.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\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 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/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..e61fd222dd --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateLexer.cs @@ -0,0 +1,200 @@ +//------------------------------------------------------------------------------ +// +// 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, 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'", "'\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 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$\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 new file mode 100644 index 0000000000..30a875d549 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateListener.cs @@ -0,0 +1,177 @@ +//------------------------------------------------------------------------------ +// +// 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 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 new file mode 100644 index 0000000000..4b401f6c1e --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateParser.cs @@ -0,0 +1,1229 @@ +//------------------------------------------------------------------------------ +// +// 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, 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[] 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 = 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); + } + } + + [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); + } + } + + [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 = 34; timeValue(); + } + break; + + 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); + } + } + + [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 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); + 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 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 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; + } + + 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, 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; + + 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; + } + + 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, 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; + } + + 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); + } + } + + [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; + } + + 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); + } + } + + [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; + } + + 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, 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 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); + } + } + + } + } + 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, 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; + } + + 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, 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; + } + + 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 new file mode 100644 index 0000000000..65fb1c6cc2 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBADateVisitor.cs @@ -0,0 +1,126 @@ +//------------------------------------------------------------------------------ +// +// 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 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/VBALibrary.cs b/Rubberduck.Parsing/Preprocessing/VBALibrary.cs new file mode 100644 index 0000000000..a96d490447 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALibrary.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; + +namespace Rubberduck.Parsing.Preprocessing +{ + public static class VBALibrary + { + 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/VBALike.g4 b/Rubberduck.Parsing/Preprocessing/VBALike.g4 new file mode 100644 index 0000000000..fe3cab5cfb --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALike.g4 @@ -0,0 +1,20 @@ +grammar VBALike; + +compilationUnit : likePatternString EOF; + +likePatternString : likePatternElement*; +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 : likePatternCharlistChar | likePatternCharlistRange; +likePatternCharlistRange : likePatternCharlistChar DASH likePatternCharlistChar; +likePatternCharlistChar : ~(DASH | R_SQUARE_BRACKET); + +QUESTIONMARK : '?'; +HASH : '#'; +STAR : '*'; +L_SQUARE_BRACKET : '['; +R_SQUARE_BRACKET : ']'; +DASH : '-'; +EXCLAMATION : '!'; +ANYCHAR : .; \ 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..c57544be26 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeBaseListener.cs @@ -0,0 +1,153 @@ +//------------------------------------------------------------------------------ +// +// 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 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. + /// + /// 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 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. + /// + /// 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..d85ae53cfb --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeBaseVisitor.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\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 VisitLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext context) { return VisitChildren(context); } + + /// + /// 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 VisitLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext context) { return VisitChildren(context); } + + /// + /// 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..af97b434df --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeLexer.cs @@ -0,0 +1,79 @@ +//------------------------------------------------------------------------------ +// +// 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, ANYCHAR=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", "ANYCHAR" + }; + + + 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\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()); +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs b/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs new file mode 100644 index 0000000000..4093525946 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeListener.cs @@ -0,0 +1,120 @@ +//------------------------------------------------------------------------------ +// +// 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 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 . + /// + /// 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 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 . + /// + /// 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..d4797695da --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeParser.cs @@ -0,0 +1,587 @@ +//------------------------------------------------------------------------------ +// +// 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, ANYCHAR=8; + public static readonly string[] tokenNames = { + "", "'?'", "'#'", "'*'", "'['", "']'", "'-'", "'!'", "ANYCHAR" + }; + public const int + RULE_compilationUnit = 0, RULE_likePatternString = 1, RULE_likePatternElement = 2, + RULE_likePatternChar = 3, RULE_likePatternCharlist = 4, RULE_likePatternCharlistElement = 5, + RULE_likePatternCharlistRange = 6, RULE_likePatternCharlistChar = 7; + public static readonly string[] ruleNames = { + "compilationUnit", "likePatternString", "likePatternElement", "likePatternChar", + "likePatternCharlist", "likePatternCharlistElement", "likePatternCharlistRange", + "likePatternCharlistChar" + }; + + 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 = 16; likePatternString(); + State = 17; 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 = 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 << R_SQUARE_BRACKET) | (1L << DASH) | (1L << EXCLAMATION) | (1L << ANYCHAR))) != 0)) { + { + { + State = 19; likePatternElement(); + } + } + State = 24; + _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 LikePatternCharContext likePatternChar() { + return GetRuleContext(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 = 30; + switch (_input.La(1)) { + case R_SQUARE_BRACKET: + case DASH: + case EXCLAMATION: + case ANYCHAR: + EnterOuterAlt(_localctx, 1); + { + State = 25; likePatternChar(); + } + break; + case QUESTIONMARK: + EnterOuterAlt(_localctx, 2); + { + State = 26; Match(QUESTIONMARK); + } + break; + case HASH: + EnterOuterAlt(_localctx, 3); + { + State = 27; Match(HASH); + } + break; + case STAR: + EnterOuterAlt(_localctx, 4); + { + State = 28; Match(STAR); + } + break; + case L_SQUARE_BRACKET: + EnterOuterAlt(_localctx, 5); + { + State = 29; 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 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); + } + 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, 8, RULE_likePatternCharlist); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 34; Match(L_SQUARE_BRACKET); + State = 36; + switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { + case 1: + { + State = 35; Match(EXCLAMATION); + } + break; + } + State = 39; + switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { + case 1: + { + State = 38; Match(DASH); + } + break; + } + State = 44; + _errHandler.Sync(this); + _la = _input.La(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << QUESTIONMARK) | (1L << HASH) | (1L << STAR) | (1L << L_SQUARE_BRACKET) | (1L << EXCLAMATION) | (1L << ANYCHAR))) != 0)) { + { + { + State = 41; likePatternCharlistElement(); + } + } + State = 46; + _errHandler.Sync(this); + _la = _input.La(1); + } + State = 48; + _la = _input.La(1); + if (_la==DASH) { + { + State = 47; Match(DASH); + } + } + + State = 50; 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 LikePatternCharlistCharContext likePatternCharlistChar() { + return GetRuleContext(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, 10, RULE_likePatternCharlistElement); + try { + State = 54; + switch ( Interpreter.AdaptivePredict(_input,6,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 52; likePatternCharlistChar(); + } + break; + + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 53; 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 LikePatternCharlistCharContext likePatternCharlistChar(int i) { + return GetRuleContext(i); + } + public IReadOnlyList likePatternCharlistChar() { + return GetRuleContexts(); + } + 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, 12, RULE_likePatternCharlistRange); + try { + EnterOuterAlt(_localctx, 1); + { + 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) { + _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\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()); +} +} // namespace Rubberduck.Parsing.Like diff --git a/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs new file mode 100644 index 0000000000..349e4c813f --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBALikeVisitor.cs @@ -0,0 +1,89 @@ +//------------------------------------------------------------------------------ +// +// 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 VisitLikePatternCharlistChar([NotNull] VBALikeParser.LikePatternCharlistCharContext 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 VisitLikePatternChar([NotNull] VBALikeParser.LikePatternCharContext 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..ad19998953 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAPredefinedCompilationConstants.cs @@ -0,0 +1,69 @@ +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAPredefinedCompilationConstants + { + private readonly double _vbVersion; + + public VBAPredefinedCompilationConstants(double 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 VBA7 + { + get + { + return _vbVersion < 8; + } + } + + public bool VBA6 + { + get + { + return _vbVersion < 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..311a00a1a8 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessor.cs @@ -0,0 +1,42 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; +using System; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAPreprocessor + { + private readonly double _vbaVersion; + + public VBAPreprocessor(double vbaVersion) + { + _vbaVersion = vbaVersion; + } + + public string Execute(string unprocessedCode) + { + try + { + return Preprocess(unprocessedCode); + } + catch (Exception ex) + { + throw new VBAPreprocessorException("Exception encountered during preprocessing.", ex); + } + } + + private string Preprocess(string unprocessedCode) + { + 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; + } + } +} 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..9c9ae29544 --- /dev/null +++ b/Rubberduck.Parsing/Preprocessing/VBAPreprocessorVisitor.cs @@ -0,0 +1,448 @@ +using Antlr4.Runtime.Misc; +using System; +using System.Globalization; +using System.Linq; + +namespace Rubberduck.Parsing.Preprocessing +{ + public sealed class VBAPreprocessorVisitor : VBAConditionalCompilationBaseVisitor + { + private readonly SymbolTable _symbolTable; + + public VBAPreprocessorVisitor( + SymbolTable symbolTable, + VBAPredefinedCompilationConstants predefinedConstants) + { + _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 IExpression VisitCompilationUnit([NotNull] VBAConditionalCompilationParser.CompilationUnitContext context) + { + return Visit(context.ccBlock()); + } + + public override IExpression VisitLogicalLine([NotNull] VBAConditionalCompilationParser.LogicalLineContext context) + { + return new ConstantExpression(new StringValue(context.GetText())); + } + + public override IExpression VisitCcBlock([NotNull] VBAConditionalCompilationParser.CcBlockContext context) + { + if (context.children == null) + { + return new ConstantExpression(EmptyValue.Value); + } + return new ConditionalCompilationBlockExpression(context.children.Select(child => Visit(child)).ToList()); + } + + public override IExpression VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) + { + return new ConditionalCompilationConstantExpression( + new ConstantExpression(new StringValue(context.GetText())), + new ConstantExpression(new StringValue(context.ccVarLhs().name().IDENTIFIER().GetText())), + Visit(context.ccExpression()), + _symbolTable); + } + + public override IExpression VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) + { + 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) + { + elseCondCode = new ConstantExpression(new StringValue(context.ccElseBlock().ccElse().GetText())); + elseBlock = Visit(context.ccElseBlock().ccBlock()); + } + 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 IExpression VisitUnaryNot(VBAConditionalCompilationParser.CcExpressionContext context) + { + 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 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 VisitLibraryFunction(context); + } + } + + private IExpression VisitLibraryFunction(VBAConditionalCompilationParser.CcExpressionContext context) + { + var intrinsicFunction = context.intrinsicFunction(); + var functionName = intrinsicFunction.intrinsicFunctionName().GetText(); + var argument = Visit(intrinsicFunction.ccExpression()); + return VBALibrary.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) + { + 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) + { + return new ConstantExpression(null); + } + else if (context.EMPTY() != null) + { + return new ConstantExpression(EmptyValue.Value); + } + throw new Exception(string.Format("Unexpected literal encountered: {0}", context.GetText())); + } + + private IExpression VisitStringLiteral(VBAConditionalCompilationParser.LiteralContext context) + { + 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 3c877d29e2..e81e2ca92e 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -69,6 +69,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -110,6 +197,9 @@ Rubberduck.Parsing.Grammar Always + + + diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index ae77c869fc..f018ccffed 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -16,6 +16,8 @@ using Rubberduck.Parsing.Symbols; using Rubberduck.VBEditor; using Rubberduck.VBEditor.Extensions; +using Rubberduck.Parsing.Preprocessing; +using System.Globalization; namespace Rubberduck.Parsing.VBA { @@ -155,7 +157,6 @@ private void Parse(VBComponent vbComponent, CancellationToken token, TokenStream ? string.Join(Environment.NewLine, vbComponent.CodeModule.GetSanitizedCode()) : rewriter.GetText(); // note: removes everything ignored by the parser, e.g. line numbers - ParseInternal(component, code, token); } catch (COMException exception) @@ -225,8 +226,19 @@ private void ParseInternal(VBComponent vbComponent, string code, CancellationTok token.ThrowIfCancellationRequested(); + var preprocessor = new VBAPreprocessor(double.Parse(_vbe.Version, CultureInfo.InvariantCulture)); + string preprocessedModuleBody; + try + { + preprocessedModuleBody = preprocessor.Execute(code); + } + catch (VBAPreprocessorException) + { + // Fall back to not doing any preprocessing at all. + preprocessedModuleBody = code; + } ITokenStream stream; - var tree = ParseInternal(code, listeners, out stream); + var tree = ParseInternal(preprocessedModuleBody, listeners, out stream); _state.AddTokenStream(vbComponent, stream); _state.AddParseTree(vbComponent, tree); @@ -282,7 +294,7 @@ private IParseTree ParseInternal(ICharStream stream, IEnumerable> ParseTrees { get { return _parseTrees; } } public TokenStreamRewriter GetRewriter(VBComponent component) diff --git a/RubberduckTests/Grammar/VBAParserValidityTests.cs b/RubberduckTests/Grammar/VBAParserValidityTests.cs new file mode 100644 index 0000000000..67059a682e --- /dev/null +++ b/RubberduckTests/Grammar/VBAParserValidityTests.cs @@ -0,0 +1,56 @@ +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.Grammar +{ + [TestClass] + public class VBAParserValidityTests + { + [TestMethod] + [DeploymentItem(@"Testfiles\")] + public void TestParser() + { + foreach (var testfile in GetTestFiles()) + { + var filename = testfile.Item1; + var code = testfile.Item2; + AssertParseResult(filename, code, Parse(code)); + } + } + + private void AssertParseResult(string filename, string originalCode, string materializedParseTree) + { + Assert.AreEqual(originalCode, materializedParseTree, string.Format("{0} mismatch detected.", filename)); + } + + private IEnumerable> GetTestFiles() + { + return Directory.EnumerateFiles("Grammar").Select(file => Tuple.Create(file, File.ReadAllText(file))).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/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); 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/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs new file mode 100644 index 0000000000..180dc1db42 --- /dev/null +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -0,0 +1,1195 @@ +using Antlr4.Runtime; +using Microsoft.VisualStudio.TestTools.UnitTesting; +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() + { + 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(EmptyValue.Value, result.Item1.Get("c")); + Assert.AreEqual(1m, result.Item1.Get("d").AsDecimal); + Assert.AreEqual(1m, result.Item1.Get("e").AsDecimal); + } + + [TestMethod] + public void TestMinusUnaryOperator() + { + string code = @" +#Const a = -5 +#Const b = -#1/1/4000# +#Const c = -#1/1/2016# +#Const d = -True +#Const e = -False +#Const f = Nothing +#Const g = -""-5"" +#Const h = -Empty +"; + var result = Preprocess(code); + 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").AsDecimal); + Assert.AreEqual(0m, result.Item1.Get("h").AsDecimal); + } + + [TestMethod] + public void TestNotUnaryOperator() + { + string code = @" +#Const a = Not 23.5 +#Const b = Not #1/1/1900# +#Const c = Not False +#Const d = Nothing +#Const e = Not ""1"" +#Const f = Not Empty +"; + var result = Preprocess(code); + 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").AsDecimal); + Assert.AreEqual(-1m, result.Item1.Get("f").AsDecimal); + } + + [TestMethod] + public void TestPlusOperator() + { + string code = @" +#Const a = 1542.242 + 2 +#Const b = #1/1/2351# + #3/6/1847# +#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); + 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").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] + public void TestMinusOperator() + { + string code = @" +#Const a = 10 - 8 +#Const b = #1/1/2351# - #3/6/1847# +#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").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").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] + public void TestIntFunction() + { + string code = @" +#Const a = Int(Nothing) +#Const b = Int(Empty) +#Const c = Int(5.4) +#Const d = Int(True) +#Const e = Int(#01-30-2016#) +#Const f = Int(""10.43"") +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestFixFunction() + { + string code = @" +#Const a = Fix(Nothing) +#Const b = Fix(Empty) +#Const c = Fix(5.4) +#Const d = Fix(True) +#Const e = Fix(#01-30-2016#) +#Const f = Fix(""10.43"") +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestAbsFunction() + { + string code = @" +#Const a = Abs(Nothing) +#Const b = Abs(Empty) +#Const c = Abs(-30) +#Const d = Abs(True) +#Const e = Abs(#1/20/1005#) +#Const f = Abs(""-50"") +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestSgnFunction() + { + string code = @" +#Const a = Sgn(-5) +#Const b = Sgn(""5"") +#Const c = Sgn(False) +#Const d = Sgn(#1/1/1855#) +#Const e = Sgn(Empty) +#Const f = Sgn(Nothing) +"; + var result = Preprocess(code); + 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")); + } + + [TestMethod] + public void TestLenFunction() + { + string code = @" +#Const a = Len(Null) +#Const b = Len(Nothing) +#Const c = Len(Empty) +#Const d = Len(""abc"") +"; + 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").AsDecimal); + Assert.AreEqual(3m, result.Item1.Get("d").AsDecimal); + } + + [TestMethod] + public void TestLenBFunction() + { + string code = @" +#Const a = LenB(Null) +#Const b = LenB(Nothing) +#Const c = LenB(Empty) +#Const d = LenB(""abc"") +"; + 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").AsDecimal); + Assert.AreEqual(6m, result.Item1.Get("d").AsDecimal); + } + + [TestMethod] + public void TestCBoolFunction() + { + string code = @" +#Const a = CBool(Null) +#Const b = CBool(Empty) +#Const c = CBool(True) +#Const d = CBool(CByte(1)) +#Const e = CBool(CByte(0)) +#Const f = CBool(""tRuE"") +#Const g = CBool(""fAlSe"") +#Const h = CBool(""#TRUE#"") +#Const i = CBool(""#FALSE#"") +#Const j = CBool(""1"") +#Const k = CBool(""0"") +#Const l = CBool(#30-12-1899#) +#Const m = CBool(#31-12-1899#) +#Const n = CBool(0) +#Const o = CBool(1) +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestCByteFunction() + { + string code = @" +#Const a = CByte(Null) +#Const b = CByte(Empty) +#Const c = CByte(True) +#Const d = CByte(False) +#Const e = CByte(""1"") +#Const f = CByte(""0"") +#Const g = CByte(#30-12-1899#) +#Const h = CByte(#31-12-1899#) +#Const i = CByte(0) +#Const j = CByte(1) +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestCAnyNumberFunction() + { + // Same implementation for all. + // Simple test if any implementation of them is lacking. + string[] functionNames = new string[] + { + "CCUR", + "CDBL", + "CINT", + "CLNG", + "CLNGLNG", + "CLNGPTR", + "CSNG" + }; + foreach (var functionName in functionNames) + { + AssertIntrinsicNumberFunction(functionName); + } + } + + [TestMethod] + public void TestCDateFunction() + { + string code = @" +#Const a = CDate(Null) +#Const b = CDate(Empty) +#Const c = CDate(True) +#Const d = CDate(False) +#Const e = CDate(""1"") +#Const f = CDate(""0"") +#Const g = CDate(1) +#Const h = CDate(0) +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestCStrFunction() + { + string code = @" +#Const a = CStr(Null) +#Const b = CStr(Empty) +#Const c = CStr(True) +#Const d = CStr(False) +#Const e = CStr(345.23) +#Const f = CStr(#30-12-1899 02:01#) #30-12-1899 02:01# +#Const g = CStr(#1/31/2016#) 31.01.2016 +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestCVariantFunction() + { + string code = @" +#Const a = CVAR(Null) +#Const b = CVAR(Empty) +#Const c = CVAR(True) +"; + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + Assert.AreEqual(EmptyValue.Value, result.Item1.Get("b")); + Assert.AreEqual(true, result.Item1.Get("c").AsBool); + } + + private void AssertIntrinsicNumberFunction(string functionName) + { + string code = @" +#Const a = {0}(Null) +#Const b = {0}(Empty) +#Const c = {0}(True) +#Const d = {0}(False) +#Const e = {0}(""1"") +#Const f = {0}(""0"") +#Const g = {0}(#30-12-1899#) +#Const h = {0}(#31-12-1899#) +"; + code = string.Format(code, functionName); + var result = Preprocess(code); + Assert.AreEqual(null, result.Item1.Get("a")); + 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] + public void TestLikeOperator() + { + string code = @" +#Const a = ""bcabdcab"" Like ""*ab*ab"" +#Const b = ""bcabdcab"" Like ""*ff*"" +#Const c = ""abc"" Like ""a?c"" +#Const d = ""abcd"" Like ""a?c"" +#Const e = ""a1c"" Like ""a#c"" +#Const f = ""abc"" Like ""a#c"" +#Const g = ""a"" Like ""[!b]"" +#Const h = ""a"" Like ""[!a]"" +#Const i = ""1"" Like ""[0-9]"" +#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").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").AsBool); + } + + [TestMethod] + public void TestIsOperator() + { + string code = @" +#Const a = Nothing Is Nothing +#Const b = 1 Is 2 +"; + var result = Preprocess(code); + Assert.AreEqual(true, result.Item1.Get("a").AsBool); + Assert.AreEqual(false, result.Item1.Get("b").AsBool); + } + + [TestMethod] + public void TestImpOperator() + { + string code = @" +#Const a = False Imp False +#Const b = False Imp True +#Const c = True Imp False +#Const d = True Imp True +#Const e = #12/31/1899# Imp True +#Const f = -1 Imp Null +#Const g = -2 Imp True +#Const h = Null Imp 5 +#Const i = Null Imp 0 +#Const j = Null Imp Null +"; + var result = Preprocess(code); + 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").AsDecimal); + Assert.AreEqual(5m, result.Item1.Get("h").AsDecimal); + Assert.AreEqual(null, result.Item1.Get("i")); + Assert.AreEqual(null, result.Item1.Get("j")); + } + + [TestMethod] + public void TestEqvOperator() + { + string code = @" +#Const a = False Eqv False +#Const b = False Eqv True +#Const c = True Eqv False +#Const d = True Eqv True +#Const e = True Eqv 0 +#Const f = True Eqv Null +#Const g = Null Eqv True +#Const h = Null Eqv Null +"; + var result = Preprocess(code); + 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")); + } + + [TestMethod] + public void TestXorOperator() + { + string code = @" +#Const a = False Xor False +#Const b = False Xor True +#Const c = True Xor False +#Const d = True Xor True +#Const e = True Xor 0 +#Const f = True Xor Null +#Const g = Null Xor True +#Const h = Null Xor Null +"; + var result = Preprocess(code); + 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")); + } + + [TestMethod] + public void TestOrOperator() + { + string code = @" +#Const a = False Or False +#Const b = False Or True +#Const c = True Or False +#Const d = True Or True +#Const e = True Or 0 +#Const f = True Or Null +#Const g = Null Or True +#Const h = Null Or Null +"; + var result = Preprocess(code); + 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")); + } + + [TestMethod] + public void TestAndOperator() + { + string code = @" +#Const a = False And False +#Const b = False And True +#Const c = True And False +#Const d = True And True +#Const e = True And 5 +#Const f = 1 And Null +#Const g = Null And 1 +#Const h = Null And Null +#Const i = 0 And Null +#Const j = Null And 0 +"; + var result = Preprocess(code); + 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").AsDecimal); + Assert.AreEqual(0, result.Item1.Get("j").AsDecimal); + } + + [TestMethod] + public void TestGeqOperator() + { + 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").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").AsBool); + Assert.AreEqual(true, result.Item1.Get("t").AsBool); + } + + [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").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").AsBool); + Assert.AreEqual(false, result.Item1.Get("t").AsBool); + } + + [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").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").AsBool); + Assert.AreEqual(true, result.Item1.Get("t").AsBool); + } + + [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").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").AsBool); + Assert.AreEqual(false, result.Item1.Get("t").AsBool); + } + + [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").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").AsBool); + Assert.AreEqual(true, result.Item1.Get("o").AsBool); + } + + [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").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").AsBool); + Assert.AreEqual(false, result.Item1.Get("o").AsBool); + } + + [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").AsString); + Assert.AreEqual(null, result.Item1.Get("b")); + 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] + 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").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")); + } + + [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").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")); + } + + [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").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")); + } + + [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").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")); + } + + [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").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")); + } + + [TestMethod] + public void TestStringLiteral() + { + string code = @" +#Const a = ""abc"" +#Const b = ""a""""b"" +"; + var result = Preprocess(code); + Assert.AreEqual("abc", result.Item1.Get("a").AsString); + Assert.AreEqual("a\"\"b", result.Item1.Get("b").AsString); + } + + [TestMethod] + public void TestNumberLiteral() + { + string code = @" +#Const a = &HAF$ +#Const b = &O423# +#Const c = -50.323e5 +"; + var result = Preprocess(code); + 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] + public void TestDateLiteral() + { + string code = @" +#Const a = #30-12-1900# +#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").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").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] + 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").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(EmptyValue.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").AsDecimal); + Assert.AreEqual(new DateTime(1799, 12, 31), result.Item1.Get("d").AsDate); + } + + [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").AsDecimal); + } + + [TestMethod] + public void TestLocaleJapanese() + { + string code = @" +#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] + 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() + { + 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.AsString); + } + + [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.AsString); + } + private Tuple, IValue> 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(); + var expr = evaluator.Visit(tree); + return Tuple.Create(symbolTable, expr.Evaluate()); + } + } +} diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index c00f8aad32..95f0756781 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -80,6 +80,7 @@ + @@ -114,6 +115,8 @@ + + @@ -168,6 +171,87 @@ Rubberduck.VBEditor + + + + Always + + + Always + + + Always + + + Always + + + Always + + + 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..9427d5dbde --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_11.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_12.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_12.txt new file mode 100644 index 0000000000..941c1f994a --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_12.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_13.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_13.txt new file mode 100644 index 0000000000..6a2b80dd81 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_13.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_14.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_14.txt new file mode 100644 index 0000000000..eb33acfc0a --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_14.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_15.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_15.txt new file mode 100644 index 0000000000..5ac2be1baa --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_15.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_16.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_16.txt new file mode 100644 index 0000000000..fd082e3bb6 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_16.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_17.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_17.txt new file mode 100644 index 0000000000..0ed3824088 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_17.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_18.txt b/RubberduckTests/Testfiles/Grammar/Reference_Module_18.txt new file mode 100644 index 0000000000..a3526a1ff7 --- /dev/null +++ b/RubberduckTests/Testfiles/Grammar/Reference_Module_18.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_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_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 + diff --git a/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt new file mode 100644 index 0000000000..c3ecb15145 --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1.txt @@ -0,0 +1,60 @@ +Attribute VB_Name = "fnCheckPri" +Option Explicit +Option Private Module + +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..82e31acbbb --- /dev/null +++ b/RubberduckTests/Testfiles/Preprocessor/Reference_Module_1_Processed.txt @@ -0,0 +1,60 @@ +Attribute VB_Name = "fnCheckPri" +Option Explicit +Option Private Module + +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