diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..6809b2a --- /dev/null +++ b/.classpath @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa7027d --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..d4876d3 --- /dev/null +++ b/.project @@ -0,0 +1,30 @@ + + + ArchTool + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.springsource.ide.eclipse.gradle.core.nature + org.eclipse.jdt.core.javanature + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/.settings/com.github.jknack.antlr4ide.Antlr4.prefs b/.settings/com.github.jknack.antlr4ide.Antlr4.prefs new file mode 100644 index 0000000..a29a49d --- /dev/null +++ b/.settings/com.github.jknack.antlr4ide.Antlr4.prefs @@ -0,0 +1,14 @@ +antlr4.antlrRegisteredTools=4.4@C\:\\Users\\Zumbi\\AppData\\Local\\Temp\\antlr-4.4-complete.jar\:4.6@C\:\\Users\\Zumbi\\AppData\\Local\\Temp\\antlr-4.6-complete.jar +antlr4.antlrToolPath=C\:\\Users\\Zumbi\\AppData\\Local\\Temp\\antlr-4.6-complete.jar +antlr4.encoding=UTF-8 +antlr4.listener=true +antlr4.visitor=true +antlr4.vmArgs= +antlr4ide.is_project_specific=true +autobuilding=true +com.github.jknack.antlr4ide.Antlr4.useProjectSettings=true +eclipse.preferences.version=1 +is_project_specific= +outlet.DEFAULT_OUTPUT.cleanupDerived=true +outlet.DEFAULT_OUTPUT.derived=true +outlet.DEFAULT_OUTPUT.directory=./src/ diff --git a/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs b/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs new file mode 100644 index 0000000..d25fbce --- /dev/null +++ b/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs @@ -0,0 +1,5 @@ +#org.springsource.ide.eclipse.gradle.core.preferences.GradleProjectPreferences +#Mon Feb 06 20:53:56 BRST 2017 +build.family.org.gradle.tooling.model.eclipse.HierarchicalEclipseProject=; +org.springsource.ide.eclipse.gradle.linkedresources= +org.springsource.ide.eclipse.gradle.rootprojectloc= diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..bb35fa0 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..017b6f4 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,4 @@ + + + + diff --git a/archtool_icon.pdn b/archtool_icon.pdn new file mode 100644 index 0000000..795adfe Binary files /dev/null and b/archtool_icon.pdn differ diff --git a/bin/assets/fonts/Roboto-Black.ttf b/bin/assets/fonts/Roboto-Black.ttf new file mode 100644 index 0000000..86ec2b2 Binary files /dev/null and b/bin/assets/fonts/Roboto-Black.ttf differ diff --git a/bin/assets/fonts/Roboto-Bold.ttf b/bin/assets/fonts/Roboto-Bold.ttf new file mode 100644 index 0000000..91ec212 Binary files /dev/null and b/bin/assets/fonts/Roboto-Bold.ttf differ diff --git a/bin/assets/fonts/Roboto-BoldCondensed.ttf b/bin/assets/fonts/Roboto-BoldCondensed.ttf new file mode 100644 index 0000000..d7ea883 Binary files /dev/null and b/bin/assets/fonts/Roboto-BoldCondensed.ttf differ diff --git a/bin/assets/fonts/Roboto-Condensed.ttf b/bin/assets/fonts/Roboto-Condensed.ttf new file mode 100644 index 0000000..6e7575a Binary files /dev/null and b/bin/assets/fonts/Roboto-Condensed.ttf differ diff --git a/bin/assets/fonts/Roboto-Italic.ttf b/bin/assets/fonts/Roboto-Italic.ttf new file mode 100644 index 0000000..9f49ffd Binary files /dev/null and b/bin/assets/fonts/Roboto-Italic.ttf differ diff --git a/bin/assets/fonts/Roboto-Light.ttf b/bin/assets/fonts/Roboto-Light.ttf new file mode 100644 index 0000000..d43e943 Binary files /dev/null and b/bin/assets/fonts/Roboto-Light.ttf differ diff --git a/bin/assets/fonts/Roboto-Medium.ttf b/bin/assets/fonts/Roboto-Medium.ttf new file mode 100644 index 0000000..8798341 Binary files /dev/null and b/bin/assets/fonts/Roboto-Medium.ttf differ diff --git a/bin/assets/fonts/Roboto-Regular.ttf b/bin/assets/fonts/Roboto-Regular.ttf new file mode 100644 index 0000000..7d9a6c4 Binary files /dev/null and b/bin/assets/fonts/Roboto-Regular.ttf differ diff --git a/bin/assets/fonts/Roboto-Thin.ttf b/bin/assets/fonts/Roboto-Thin.ttf new file mode 100644 index 0000000..861d63a Binary files /dev/null and b/bin/assets/fonts/Roboto-Thin.ttf differ diff --git a/bin/assets/images/archtool_icon.png b/bin/assets/images/archtool_icon.png new file mode 100644 index 0000000..90f8dd1 Binary files /dev/null and b/bin/assets/images/archtool_icon.png differ diff --git a/bin/com/carvalab/archtool/Frame$GraphLoaderDropTarget.class b/bin/com/carvalab/archtool/Frame$GraphLoaderDropTarget.class new file mode 100644 index 0000000..9cf39ac Binary files /dev/null and b/bin/com/carvalab/archtool/Frame$GraphLoaderDropTarget.class differ diff --git a/bin/com/carvalab/archtool/Frame.class b/bin/com/carvalab/archtool/Frame.class new file mode 100644 index 0000000..b7c7977 Binary files /dev/null and b/bin/com/carvalab/archtool/Frame.class differ diff --git a/bin/com/carvalab/archtool/Main$1.class b/bin/com/carvalab/archtool/Main$1.class new file mode 100644 index 0000000..7157dfe Binary files /dev/null and b/bin/com/carvalab/archtool/Main$1.class differ diff --git a/bin/com/carvalab/archtool/Main.class b/bin/com/carvalab/archtool/Main.class new file mode 100644 index 0000000..c9f7e8b Binary files /dev/null and b/bin/com/carvalab/archtool/Main.class differ diff --git a/bin/com/carvalab/archtool/csharp/AntlrUtil.class b/bin/com/carvalab/archtool/csharp/AntlrUtil.class new file mode 100644 index 0000000..e3f1bc5 Binary files /dev/null and b/bin/com/carvalab/archtool/csharp/AntlrUtil.class differ diff --git a/bin/com/carvalab/archtool/csharp/CSharpGraph.class b/bin/com/carvalab/archtool/csharp/CSharpGraph.class new file mode 100644 index 0000000..8cfd4c7 Binary files /dev/null and b/bin/com/carvalab/archtool/csharp/CSharpGraph.class differ diff --git a/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$CSClassRelationships.class b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$CSClassRelationships.class new file mode 100644 index 0000000..5fca83b Binary files /dev/null and b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$CSClassRelationships.class differ diff --git a/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$ClassBaseTypesVisitor.class b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$ClassBaseTypesVisitor.class new file mode 100644 index 0000000..552797c Binary files /dev/null and b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$ClassBaseTypesVisitor.class differ diff --git a/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$ClassDeclarationVisitor.class b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$ClassDeclarationVisitor.class new file mode 100644 index 0000000..a3131a0 Binary files /dev/null and b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser$ClassDeclarationVisitor.class differ diff --git a/bin/com/carvalab/archtool/csharp/CSharpVisitorParser.class b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser.class new file mode 100644 index 0000000..c9e4019 Binary files /dev/null and b/bin/com/carvalab/archtool/csharp/CSharpVisitorParser.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpLexer.class b/bin/com/carvalab/archtool/parsers/CSharpLexer.class new file mode 100644 index 0000000..1123cdb Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpLexer.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpLexer.tokens b/bin/com/carvalab/archtool/parsers/CSharpLexer.tokens new file mode 100644 index 0000000..f2bac1a --- /dev/null +++ b/bin/com/carvalab/archtool/parsers/CSharpLexer.tokens @@ -0,0 +1,351 @@ +BYTE_ORDER_MARK=1 +SINGLE_LINE_DOC_COMMENT=2 +DELIMITED_DOC_COMMENT=3 +SINGLE_LINE_COMMENT=4 +DELIMITED_COMMENT=5 +WHITESPACES=6 +SHARP=7 +ABSTRACT=8 +ADD=9 +ALIAS=10 +ARGLIST=11 +AS=12 +ASCENDING=13 +ASYNC=14 +AWAIT=15 +BASE=16 +BOOL=17 +BREAK=18 +BY=19 +BYTE=20 +CASE=21 +CATCH=22 +CHAR=23 +CHECKED=24 +CLASS=25 +CONST=26 +CONTINUE=27 +DECIMAL=28 +DEFAULT=29 +DELEGATE=30 +DESCENDING=31 +DO=32 +DOUBLE=33 +DYNAMIC=34 +ELSE=35 +ENUM=36 +EQUALS=37 +EVENT=38 +EXPLICIT=39 +EXTERN=40 +FALSE=41 +FINALLY=42 +FIXED=43 +FLOAT=44 +FOR=45 +FOREACH=46 +FROM=47 +GET=48 +GOTO=49 +GROUP=50 +IF=51 +IMPLICIT=52 +IN=53 +INT=54 +INTERFACE=55 +INTERNAL=56 +INTO=57 +IS=58 +JOIN=59 +LET=60 +LOCK=61 +LONG=62 +NAMEOF=63 +NAMESPACE=64 +NEW=65 +NULL=66 +OBJECT=67 +ON=68 +OPERATOR=69 +ORDERBY=70 +OUT=71 +OVERRIDE=72 +PARAMS=73 +PARTIAL=74 +PRIVATE=75 +PROTECTED=76 +PUBLIC=77 +READONLY=78 +REF=79 +REMOVE=80 +RETURN=81 +SBYTE=82 +SEALED=83 +SELECT=84 +SET=85 +SHORT=86 +SIZEOF=87 +STACKALLOC=88 +STATIC=89 +STRING=90 +STRUCT=91 +SWITCH=92 +THIS=93 +THROW=94 +TRUE=95 +TRY=96 +TYPEOF=97 +UINT=98 +ULONG=99 +UNCHECKED=100 +UNSAFE=101 +USHORT=102 +USING=103 +VIRTUAL=104 +VOID=105 +VOLATILE=106 +WHEN=107 +WHERE=108 +WHILE=109 +YIELD=110 +IDENTIFIER=111 +LITERAL_ACCESS=112 +INTEGER_LITERAL=113 +HEX_INTEGER_LITERAL=114 +REAL_LITERAL=115 +CHARACTER_LITERAL=116 +REGULAR_STRING=117 +VERBATIUM_STRING=118 +INTERPOLATED_REGULAR_STRING_START=119 +INTERPOLATED_VERBATIUM_STRING_START=120 +OPEN_BRACE=121 +CLOSE_BRACE=122 +OPEN_BRACKET=123 +CLOSE_BRACKET=124 +OPEN_PARENS=125 +CLOSE_PARENS=126 +DOT=127 +COMMA=128 +COLON=129 +SEMICOLON=130 +PLUS=131 +MINUS=132 +STAR=133 +DIV=134 +PERCENT=135 +AMP=136 +BITWISE_OR=137 +CARET=138 +BANG=139 +TILDE=140 +ASSIGNMENT=141 +LT=142 +GT=143 +INTERR=144 +DOUBLE_COLON=145 +OP_COALESCING=146 +OP_INC=147 +OP_DEC=148 +OP_AND=149 +OP_OR=150 +OP_PTR=151 +OP_EQ=152 +OP_NE=153 +OP_LE=154 +OP_GE=155 +OP_ADD_ASSIGNMENT=156 +OP_SUB_ASSIGNMENT=157 +OP_MULT_ASSIGNMENT=158 +OP_DIV_ASSIGNMENT=159 +OP_MOD_ASSIGNMENT=160 +OP_AND_ASSIGNMENT=161 +OP_OR_ASSIGNMENT=162 +OP_XOR_ASSIGNMENT=163 +OP_LEFT_SHIFT=164 +OP_LEFT_SHIFT_ASSIGNMENT=165 +DOUBLE_CURLY_INSIDE=166 +OPEN_BRACE_INSIDE=167 +REGULAR_CHAR_INSIDE=168 +VERBATIUM_DOUBLE_QUOTE_INSIDE=169 +DOUBLE_QUOTE_INSIDE=170 +REGULAR_STRING_INSIDE=171 +VERBATIUM_INSIDE_STRING=172 +CLOSE_BRACE_INSIDE=173 +FORMAT_STRING=174 +HIDDEN_WHITESPACES=175 +DIGITS=176 +DEFINE=177 +UNDEF=178 +ELIF=179 +ENDIF=180 +LINE=181 +ERROR=182 +WARNING=183 +REGION=184 +ENDREGION=185 +PRAGMA=186 +HIDDEN_HIDDEN=187 +CONDITIONAL_SYMBOL=188 +HIDDEN_NEW_LINE=189 +TEXT=190 +DOUBLE_CURLY_CLOSE_INSIDE=191 +'\u00EF\u00BB\u00BF'=1 +'#'=7 +'abstract'=8 +'add'=9 +'alias'=10 +'__arglist'=11 +'as'=12 +'ascending'=13 +'async'=14 +'await'=15 +'base'=16 +'bool'=17 +'break'=18 +'by'=19 +'byte'=20 +'case'=21 +'catch'=22 +'char'=23 +'checked'=24 +'class'=25 +'const'=26 +'continue'=27 +'decimal'=28 +'default'=29 +'delegate'=30 +'descending'=31 +'do'=32 +'double'=33 +'dynamic'=34 +'else'=35 +'enum'=36 +'equals'=37 +'event'=38 +'explicit'=39 +'extern'=40 +'false'=41 +'finally'=42 +'fixed'=43 +'float'=44 +'for'=45 +'foreach'=46 +'from'=47 +'get'=48 +'goto'=49 +'group'=50 +'if'=51 +'implicit'=52 +'in'=53 +'int'=54 +'interface'=55 +'internal'=56 +'into'=57 +'is'=58 +'join'=59 +'let'=60 +'lock'=61 +'long'=62 +'nameof'=63 +'namespace'=64 +'new'=65 +'null'=66 +'object'=67 +'on'=68 +'operator'=69 +'orderby'=70 +'out'=71 +'override'=72 +'params'=73 +'partial'=74 +'private'=75 +'protected'=76 +'public'=77 +'readonly'=78 +'ref'=79 +'remove'=80 +'return'=81 +'sbyte'=82 +'sealed'=83 +'select'=84 +'set'=85 +'short'=86 +'sizeof'=87 +'stackalloc'=88 +'static'=89 +'string'=90 +'struct'=91 +'switch'=92 +'this'=93 +'throw'=94 +'true'=95 +'try'=96 +'typeof'=97 +'uint'=98 +'ulong'=99 +'unchecked'=100 +'unsafe'=101 +'ushort'=102 +'using'=103 +'virtual'=104 +'void'=105 +'volatile'=106 +'when'=107 +'where'=108 +'while'=109 +'yield'=110 +'$"'=119 +'$@"'=120 +'['=123 +']'=124 +'('=125 +')'=126 +'.'=127 +','=128 +':'=129 +';'=130 +'+'=131 +'-'=132 +'*'=133 +'/'=134 +'%'=135 +'&'=136 +'|'=137 +'^'=138 +'!'=139 +'~'=140 +'='=141 +'<'=142 +'>'=143 +'?'=144 +'::'=145 +'??'=146 +'++'=147 +'--'=148 +'&&'=149 +'||'=150 +'->'=151 +'=='=152 +'!='=153 +'<='=154 +'>='=155 +'+='=156 +'-='=157 +'*='=158 +'/='=159 +'%='=160 +'&='=161 +'|='=162 +'^='=163 +'<<'=164 +'<<='=165 +'{{'=166 +'""'=169 +'"'=170 +'}}'=191 +'define'=177 +'undef'=178 +'elif'=179 +'endif'=180 +'line'=181 +'hidden'=187 diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_bodyContext.class new file mode 100644 index 0000000..1d3ece7 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_declarationsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_declarationsContext.class new file mode 100644 index 0000000..5570acc Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_declarationsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_modifierContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_modifierContext.class new file mode 100644 index 0000000..8586e3c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Accessor_modifierContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Add_accessor_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Add_accessor_declarationContext.class new file mode 100644 index 0000000..3a97ac1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Add_accessor_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Additive_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Additive_expressionContext.class new file mode 100644 index 0000000..61de883 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Additive_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$All_member_modifierContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$All_member_modifierContext.class new file mode 100644 index 0000000..8bf6580 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$All_member_modifierContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$All_member_modifiersContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$All_member_modifiersContext.class new file mode 100644 index 0000000..c4eb90b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$All_member_modifiersContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$And_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$And_expressionContext.class new file mode 100644 index 0000000..a0e87d0 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$And_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$AnonymousMethodExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$AnonymousMethodExpressionContext.class new file mode 100644 index 0000000..3ef721f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$AnonymousMethodExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_function_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_function_bodyContext.class new file mode 100644 index 0000000..cea64cd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_function_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_function_signatureContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_function_signatureContext.class new file mode 100644 index 0000000..ec2ce93 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_function_signatureContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_object_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_object_initializerContext.class new file mode 100644 index 0000000..cb1d871 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Anonymous_object_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Arg_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Arg_declarationContext.class new file mode 100644 index 0000000..f522373 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Arg_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ArgumentContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ArgumentContext.class new file mode 100644 index 0000000..164b7d6 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ArgumentContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Argument_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Argument_listContext.class new file mode 100644 index 0000000..88f4e6d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Argument_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Array_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Array_initializerContext.class new file mode 100644 index 0000000..9c3e161 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Array_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Array_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Array_typeContext.class new file mode 100644 index 0000000..434d25f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Array_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$AssignmentContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$AssignmentContext.class new file mode 100644 index 0000000..c83797c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$AssignmentContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Assignment_operatorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Assignment_operatorContext.class new file mode 100644 index 0000000..ca5ce8d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Assignment_operatorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$AttributeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$AttributeContext.class new file mode 100644 index 0000000..45e1eac Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$AttributeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_argumentContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_argumentContext.class new file mode 100644 index 0000000..97781bf Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_argumentContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_listContext.class new file mode 100644 index 0000000..2c4c2d6 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_sectionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_sectionContext.class new file mode 100644 index 0000000..133390c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_sectionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_targetContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_targetContext.class new file mode 100644 index 0000000..a078c76 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Attribute_targetContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$AttributesContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$AttributesContext.class new file mode 100644 index 0000000..d69e900 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$AttributesContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$BaseAccessExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$BaseAccessExpressionContext.class new file mode 100644 index 0000000..c4d0b10 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$BaseAccessExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Base_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Base_typeContext.class new file mode 100644 index 0000000..d3b1219 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Base_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$BlockContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$BlockContext.class new file mode 100644 index 0000000..ef72765 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$BlockContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$BodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$BodyContext.class new file mode 100644 index 0000000..f9ca654 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$BodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Boolean_literalContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Boolean_literalContext.class new file mode 100644 index 0000000..49ac6af Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Boolean_literalContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Bracket_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Bracket_expressionContext.class new file mode 100644 index 0000000..dd949d9 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Bracket_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$BreakStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$BreakStatementContext.class new file mode 100644 index 0000000..a0147be Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$BreakStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Catch_clausesContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Catch_clausesContext.class new file mode 100644 index 0000000..720ca0d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Catch_clausesContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$CheckedExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$CheckedExpressionContext.class new file mode 100644 index 0000000..2e98680 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$CheckedExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$CheckedStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$CheckedStatementContext.class new file mode 100644 index 0000000..6079f79 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$CheckedStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Class_baseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_baseContext.class new file mode 100644 index 0000000..94f6def Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_baseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Class_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_bodyContext.class new file mode 100644 index 0000000..f3a4bb1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Class_definitionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_definitionContext.class new file mode 100644 index 0000000..dbbbb73 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_definitionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Class_member_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_member_declarationContext.class new file mode 100644 index 0000000..4a353cc Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_member_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Class_member_declarationsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_member_declarationsContext.class new file mode 100644 index 0000000..fc6acf0 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_member_declarationsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Class_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_typeContext.class new file mode 100644 index 0000000..28e0fe2 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Class_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Collection_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Collection_initializerContext.class new file mode 100644 index 0000000..75ca240 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Collection_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Combined_join_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Combined_join_clauseContext.class new file mode 100644 index 0000000..1cd5dbf Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Combined_join_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Common_member_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Common_member_declarationContext.class new file mode 100644 index 0000000..10ddc6f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Common_member_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Compilation_unitContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Compilation_unitContext.class new file mode 100644 index 0000000..a43954d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Compilation_unitContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_and_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_and_expressionContext.class new file mode 100644 index 0000000..61d24fd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_and_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_expressionContext.class new file mode 100644 index 0000000..ef643dd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_or_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_or_expressionContext.class new file mode 100644 index 0000000..e0b2c09 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Conditional_or_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declarationContext.class new file mode 100644 index 0000000..ce46922 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declaratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declaratorContext.class new file mode 100644 index 0000000..bc60db2 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declaratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declaratorsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declaratorsContext.class new file mode 100644 index 0000000..528d3d4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Constant_declaratorsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_constraintContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_constraintContext.class new file mode 100644 index 0000000..0c34297 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_constraintContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_declarationContext.class new file mode 100644 index 0000000..0a742c1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_initializerContext.class new file mode 100644 index 0000000..673bab7 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Constructor_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ContinueStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ContinueStatementContext.class new file mode 100644 index 0000000..8289479 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ContinueStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Conversion_operator_declaratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Conversion_operator_declaratorContext.class new file mode 100644 index 0000000..f1d9786 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Conversion_operator_declaratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$DeclarationStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$DeclarationStatementContext.class new file mode 100644 index 0000000..356a8fd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$DeclarationStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$DefaultValueExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$DefaultValueExpressionContext.class new file mode 100644 index 0000000..4588870 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$DefaultValueExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Delegate_definitionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Delegate_definitionContext.class new file mode 100644 index 0000000..ae5dfc0 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Delegate_definitionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Destructor_definitionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Destructor_definitionContext.class new file mode 100644 index 0000000..43e71c7 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Destructor_definitionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$DoStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$DoStatementContext.class new file mode 100644 index 0000000..149e611 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$DoStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Element_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Element_initializerContext.class new file mode 100644 index 0000000..2d2822b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Element_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$EmbeddedStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$EmbeddedStatementContext.class new file mode 100644 index 0000000..af5ae89 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$EmbeddedStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Embedded_statementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Embedded_statementContext.class new file mode 100644 index 0000000..04c72da Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Embedded_statementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$EmptyStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$EmptyStatementContext.class new file mode 100644 index 0000000..f4d3a77 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$EmptyStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_baseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_baseContext.class new file mode 100644 index 0000000..4812206 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_baseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_bodyContext.class new file mode 100644 index 0000000..8224663 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_definitionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_definitionContext.class new file mode 100644 index 0000000..a30d1b1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_definitionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_member_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_member_declarationContext.class new file mode 100644 index 0000000..0c7d2d0 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Enum_member_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Equality_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Equality_expressionContext.class new file mode 100644 index 0000000..57b22c4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Equality_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Event_accessor_declarationsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Event_accessor_declarationsContext.class new file mode 100644 index 0000000..57ce5e4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Event_accessor_declarationsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Event_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Event_declarationContext.class new file mode 100644 index 0000000..6b13ca9 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Event_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Exception_filterContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Exception_filterContext.class new file mode 100644 index 0000000..0328a59 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Exception_filterContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Exclusive_or_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Exclusive_or_expressionContext.class new file mode 100644 index 0000000..4100171 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Exclusive_or_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Explicit_anonymous_function_parameterContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Explicit_anonymous_function_parameterContext.class new file mode 100644 index 0000000..4e10106 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Explicit_anonymous_function_parameterContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Explicit_anonymous_function_parameter_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Explicit_anonymous_function_parameter_listContext.class new file mode 100644 index 0000000..a6e0af1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Explicit_anonymous_function_parameter_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ExpressionContext.class new file mode 100644 index 0000000..c9f1dab Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ExpressionStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ExpressionStatementContext.class new file mode 100644 index 0000000..73965fd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ExpressionStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Expression_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Expression_listContext.class new file mode 100644 index 0000000..03cebf4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Expression_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Extern_alias_directiveContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Extern_alias_directiveContext.class new file mode 100644 index 0000000..5cad20f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Extern_alias_directiveContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Extern_alias_directivesContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Extern_alias_directivesContext.class new file mode 100644 index 0000000..b3f825c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Extern_alias_directivesContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Field_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Field_declarationContext.class new file mode 100644 index 0000000..8ad2cda Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Field_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Finally_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Finally_clauseContext.class new file mode 100644 index 0000000..4b9007a Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Finally_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$FixedStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$FixedStatementContext.class new file mode 100644 index 0000000..59619c8 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$FixedStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_parameterContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_parameterContext.class new file mode 100644 index 0000000..34ea1a1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_parameterContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_parametersContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_parametersContext.class new file mode 100644 index 0000000..21abea2 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_parametersContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_declaratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_declaratorContext.class new file mode 100644 index 0000000..6962f35 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_declaratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_declaratorsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_declaratorsContext.class new file mode 100644 index 0000000..dbf6b0e Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_declaratorsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_initializerContext.class new file mode 100644 index 0000000..ededa30 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_pointer_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_size_buffer_declaratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_size_buffer_declaratorContext.class new file mode 100644 index 0000000..6cdc610 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Fixed_size_buffer_declaratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Floating_point_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Floating_point_typeContext.class new file mode 100644 index 0000000..abbf790 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Floating_point_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ForStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ForStatementContext.class new file mode 100644 index 0000000..75e76cf Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ForStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$For_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$For_initializerContext.class new file mode 100644 index 0000000..7e949ef Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$For_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$For_iteratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$For_iteratorContext.class new file mode 100644 index 0000000..e524e9c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$For_iteratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ForeschStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ForeschStatementContext.class new file mode 100644 index 0000000..4d640c0 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ForeschStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Formal_parameter_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Formal_parameter_listContext.class new file mode 100644 index 0000000..fbb10cf Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Formal_parameter_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$From_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$From_clauseContext.class new file mode 100644 index 0000000..1b3508e Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$From_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$General_catch_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$General_catch_clauseContext.class new file mode 100644 index 0000000..d22ad9a Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$General_catch_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Generic_dimension_specifierContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Generic_dimension_specifierContext.class new file mode 100644 index 0000000..a2504ca Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Generic_dimension_specifierContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Get_accessor_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Get_accessor_declarationContext.class new file mode 100644 index 0000000..9478e67 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Get_accessor_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Global_attribute_sectionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Global_attribute_sectionContext.class new file mode 100644 index 0000000..76940fa Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Global_attribute_sectionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Global_attribute_targetContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Global_attribute_targetContext.class new file mode 100644 index 0000000..70f1026 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Global_attribute_targetContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$GotoStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$GotoStatementContext.class new file mode 100644 index 0000000..6b97e2e Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$GotoStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$IdentifierContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$IdentifierContext.class new file mode 100644 index 0000000..1a9815c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$IdentifierContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$IfStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$IfStatementContext.class new file mode 100644 index 0000000..b151d7f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$IfStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$If_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$If_bodyContext.class new file mode 100644 index 0000000..dbeea56 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$If_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Implicit_anonymous_function_parameter_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Implicit_anonymous_function_parameter_listContext.class new file mode 100644 index 0000000..22e655f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Implicit_anonymous_function_parameter_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Inclusive_or_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Inclusive_or_expressionContext.class new file mode 100644 index 0000000..8eabd45 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Inclusive_or_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Indexer_argumentContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Indexer_argumentContext.class new file mode 100644 index 0000000..c1acf10 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Indexer_argumentContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Indexer_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Indexer_declarationContext.class new file mode 100644 index 0000000..58441ef Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Indexer_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Initializer_valueContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Initializer_valueContext.class new file mode 100644 index 0000000..f59bb0c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Initializer_valueContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Integral_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Integral_typeContext.class new file mode 100644 index 0000000..85b9c0c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Integral_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_accessorsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_accessorsContext.class new file mode 100644 index 0000000..8e71e28 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_accessorsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_baseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_baseContext.class new file mode 100644 index 0000000..f8eb1f4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_baseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_bodyContext.class new file mode 100644 index 0000000..f562b44 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_definitionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_definitionContext.class new file mode 100644 index 0000000..38555cf Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_definitionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_member_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_member_declarationContext.class new file mode 100644 index 0000000..a2a5d35 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_member_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_type_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_type_listContext.class new file mode 100644 index 0000000..c0ddff9 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interface_type_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_regular_stringContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_regular_stringContext.class new file mode 100644 index 0000000..5073f95 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_regular_stringContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_regular_string_partContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_regular_string_partContext.class new file mode 100644 index 0000000..e65f8cf Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_regular_string_partContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_string_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_string_expressionContext.class new file mode 100644 index 0000000..8f1cedd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_string_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_verbatium_stringContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_verbatium_stringContext.class new file mode 100644 index 0000000..c6ae46c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_verbatium_stringContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_verbatium_string_partContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_verbatium_string_partContext.class new file mode 100644 index 0000000..da817e0 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Interpolated_verbatium_string_partContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$IsTypeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$IsTypeContext.class new file mode 100644 index 0000000..88bd120 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$IsTypeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$KeywordContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$KeywordContext.class new file mode 100644 index 0000000..22d0164 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$KeywordContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$LabeledStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$LabeledStatementContext.class new file mode 100644 index 0000000..bdd5860 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$LabeledStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Lambda_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Lambda_expressionContext.class new file mode 100644 index 0000000..537367c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Lambda_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Let_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Let_clauseContext.class new file mode 100644 index 0000000..29fd8d1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Let_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralAccessExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralAccessExpressionContext.class new file mode 100644 index 0000000..8d0fbe6 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralAccessExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralContext.class new file mode 100644 index 0000000..6f55253 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralExpressionContext.class new file mode 100644 index 0000000..d598bd8 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$LiteralExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Local_constant_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_constant_declarationContext.class new file mode 100644 index 0000000..f9911ac Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_constant_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_declarationContext.class new file mode 100644 index 0000000..5842100 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_declaratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_declaratorContext.class new file mode 100644 index 0000000..f3fed00 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_declaratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_initializerContext.class new file mode 100644 index 0000000..97870ef Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_initializer_unsafeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_initializer_unsafeContext.class new file mode 100644 index 0000000..090ae11 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Local_variable_initializer_unsafeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$LockStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$LockStatementContext.class new file mode 100644 index 0000000..8d67976 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$LockStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$MemberAccessExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$MemberAccessExpressionContext.class new file mode 100644 index 0000000..f5bd45a Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$MemberAccessExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Member_accessContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_accessContext.class new file mode 100644 index 0000000..8750e8f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_accessContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Member_declaratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_declaratorContext.class new file mode 100644 index 0000000..259de25 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_declaratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Member_declarator_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_declarator_listContext.class new file mode 100644 index 0000000..38dc284 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_declarator_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Member_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_initializerContext.class new file mode 100644 index 0000000..0ecd1ae Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Member_initializer_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_initializer_listContext.class new file mode 100644 index 0000000..5587b0c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_initializer_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Member_nameContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_nameContext.class new file mode 100644 index 0000000..709c7cd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Member_nameContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Method_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_bodyContext.class new file mode 100644 index 0000000..e1fa304 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Method_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_declarationContext.class new file mode 100644 index 0000000..fc3e3d4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Method_invocationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_invocationContext.class new file mode 100644 index 0000000..7ba7a61 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_invocationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Method_member_nameContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_member_nameContext.class new file mode 100644 index 0000000..6aa952d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Method_member_nameContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Multiplicative_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Multiplicative_expressionContext.class new file mode 100644 index 0000000..7a86134 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Multiplicative_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$NameofExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$NameofExpressionContext.class new file mode 100644 index 0000000..5f79ce4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$NameofExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_bodyContext.class new file mode 100644 index 0000000..963a9d1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_declarationContext.class new file mode 100644 index 0000000..6226742 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_member_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_member_declarationContext.class new file mode 100644 index 0000000..47b568c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_member_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_member_declarationsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_member_declarationsContext.class new file mode 100644 index 0000000..b32004c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_member_declarationsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_or_type_nameContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_or_type_nameContext.class new file mode 100644 index 0000000..fddcdd3 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Namespace_or_type_nameContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Non_assignment_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Non_assignment_expressionContext.class new file mode 100644 index 0000000..1a99ced Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Non_assignment_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Null_coalescing_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Null_coalescing_expressionContext.class new file mode 100644 index 0000000..f62df86 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Null_coalescing_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Numeric_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Numeric_typeContext.class new file mode 100644 index 0000000..6eeb489 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Numeric_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ObjectCreationExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ObjectCreationExpressionContext.class new file mode 100644 index 0000000..bc2195f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ObjectCreationExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Object_creation_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Object_creation_expressionContext.class new file mode 100644 index 0000000..19e9ef0 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Object_creation_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Object_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Object_initializerContext.class new file mode 100644 index 0000000..c1b214c Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Object_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Object_or_collection_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Object_or_collection_initializerContext.class new file mode 100644 index 0000000..18e01eb Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Object_or_collection_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Operator_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Operator_declarationContext.class new file mode 100644 index 0000000..8140bb7 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Operator_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Orderby_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Orderby_clauseContext.class new file mode 100644 index 0000000..a9e6809 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Orderby_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$OrderingContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$OrderingContext.class new file mode 100644 index 0000000..767cfc3 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$OrderingContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Overloadable_operatorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Overloadable_operatorContext.class new file mode 100644 index 0000000..63e80b5 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Overloadable_operatorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Parameter_arrayContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Parameter_arrayContext.class new file mode 100644 index 0000000..229c4fa Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Parameter_arrayContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Parameter_modifierContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Parameter_modifierContext.class new file mode 100644 index 0000000..af9c2c4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Parameter_modifierContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ParenthesisExpressionsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ParenthesisExpressionsContext.class new file mode 100644 index 0000000..b333086 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ParenthesisExpressionsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Pointer_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Pointer_typeContext.class new file mode 100644 index 0000000..e0e2071 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Pointer_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Predefined_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Predefined_typeContext.class new file mode 100644 index 0000000..8a79b58 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Predefined_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_constraintContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_constraintContext.class new file mode 100644 index 0000000..ed47e63 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_constraintContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_expressionContext.class new file mode 100644 index 0000000..412ba22 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_expression_startContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_expression_startContext.class new file mode 100644 index 0000000..ead9b2a Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Primary_expression_startContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Property_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Property_declarationContext.class new file mode 100644 index 0000000..0bf503d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Property_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Qualified_alias_memberContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Qualified_alias_memberContext.class new file mode 100644 index 0000000..86c2c8a Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Qualified_alias_memberContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Qualified_identifierContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Qualified_identifierContext.class new file mode 100644 index 0000000..acdf1cd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Qualified_identifierContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Query_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_bodyContext.class new file mode 100644 index 0000000..0e2a5ab Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Query_body_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_body_clauseContext.class new file mode 100644 index 0000000..fb30e86 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_body_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Query_continuationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_continuationContext.class new file mode 100644 index 0000000..920592b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_continuationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Query_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_expressionContext.class new file mode 100644 index 0000000..4653abd Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Query_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Rank_specifierContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Rank_specifierContext.class new file mode 100644 index 0000000..45c6473 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Rank_specifierContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Relational_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Relational_expressionContext.class new file mode 100644 index 0000000..a97bfba Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Relational_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Remove_accessor_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Remove_accessor_declarationContext.class new file mode 100644 index 0000000..451abaa Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Remove_accessor_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Resource_acquisitionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Resource_acquisitionContext.class new file mode 100644 index 0000000..f5beabc Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Resource_acquisitionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ReturnStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ReturnStatementContext.class new file mode 100644 index 0000000..8e1e227 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ReturnStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Return_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Return_typeContext.class new file mode 100644 index 0000000..5e3da30 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Return_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Right_arrowContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Right_arrowContext.class new file mode 100644 index 0000000..066fc01 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Right_arrowContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Right_shiftContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Right_shiftContext.class new file mode 100644 index 0000000..5189438 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Right_shiftContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Right_shift_assignmentContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Right_shift_assignmentContext.class new file mode 100644 index 0000000..ee56749 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Right_shift_assignmentContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Secondary_constraintsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Secondary_constraintsContext.class new file mode 100644 index 0000000..1c491f5 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Secondary_constraintsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Select_or_group_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Select_or_group_clauseContext.class new file mode 100644 index 0000000..41db195 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Select_or_group_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Set_accessor_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Set_accessor_declarationContext.class new file mode 100644 index 0000000..156fc32 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Set_accessor_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Shift_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Shift_expressionContext.class new file mode 100644 index 0000000..b73d486 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Shift_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$SimpleNameExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$SimpleNameExpressionContext.class new file mode 100644 index 0000000..dab98fa Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$SimpleNameExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Simple_embedded_statementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Simple_embedded_statementContext.class new file mode 100644 index 0000000..7ef6b4d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Simple_embedded_statementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Simple_typeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Simple_typeContext.class new file mode 100644 index 0000000..70c6e0b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Simple_typeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$SizeofExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$SizeofExpressionContext.class new file mode 100644 index 0000000..25167c8 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$SizeofExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Specific_catch_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Specific_catch_clauseContext.class new file mode 100644 index 0000000..73da0f3 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Specific_catch_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$StatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$StatementContext.class new file mode 100644 index 0000000..f1724c9 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$StatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Statement_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Statement_listContext.class new file mode 100644 index 0000000..49b6ec1 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Statement_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$String_literalContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$String_literalContext.class new file mode 100644 index 0000000..30848e4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$String_literalContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_bodyContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_bodyContext.class new file mode 100644 index 0000000..8efded5 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_bodyContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_definitionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_definitionContext.class new file mode 100644 index 0000000..2436dd2 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_definitionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_interfacesContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_interfacesContext.class new file mode 100644 index 0000000..4bf5a00 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_interfacesContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_member_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_member_declarationContext.class new file mode 100644 index 0000000..e28bf59 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Struct_member_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$SwitchStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$SwitchStatementContext.class new file mode 100644 index 0000000..c694d70 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$SwitchStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Switch_labelContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Switch_labelContext.class new file mode 100644 index 0000000..894d45f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Switch_labelContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Switch_sectionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Switch_sectionContext.class new file mode 100644 index 0000000..8a96a28 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Switch_sectionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ThisReferenceExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ThisReferenceExpressionContext.class new file mode 100644 index 0000000..0244915 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ThisReferenceExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$ThrowStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$ThrowStatementContext.class new file mode 100644 index 0000000..d9ce04b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$ThrowStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$TryStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$TryStatementContext.class new file mode 100644 index 0000000..003f89b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$TryStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$TypeContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$TypeContext.class new file mode 100644 index 0000000..0c37746 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$TypeContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Type_argument_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_argument_listContext.class new file mode 100644 index 0000000..7d7c862 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_argument_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Type_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_declarationContext.class new file mode 100644 index 0000000..227396d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameterContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameterContext.class new file mode 100644 index 0000000..9cb7a31 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameterContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraintsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraintsContext.class new file mode 100644 index 0000000..80a591b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraintsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraints_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraints_clauseContext.class new file mode 100644 index 0000000..306e388 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraints_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraints_clausesContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraints_clausesContext.class new file mode 100644 index 0000000..2402200 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_constraints_clausesContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_listContext.class new file mode 100644 index 0000000..60fb830 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Type_parameter_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Typed_member_declarationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Typed_member_declarationContext.class new file mode 100644 index 0000000..e3e6b45 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Typed_member_declarationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$TypeofExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$TypeofExpressionContext.class new file mode 100644 index 0000000..91a8fba Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$TypeofExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Unary_expressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Unary_expressionContext.class new file mode 100644 index 0000000..854a8d3 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Unary_expressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Unbound_type_nameContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Unbound_type_nameContext.class new file mode 100644 index 0000000..fbb042b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Unbound_type_nameContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$UncheckedExpressionContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$UncheckedExpressionContext.class new file mode 100644 index 0000000..77f1901 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$UncheckedExpressionContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$UncheckedStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$UncheckedStatementContext.class new file mode 100644 index 0000000..4adbaef Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$UncheckedStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$UnsafeStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$UnsafeStatementContext.class new file mode 100644 index 0000000..03b5ef9 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$UnsafeStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$UsingAliasDirectiveContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingAliasDirectiveContext.class new file mode 100644 index 0000000..4f2bffb Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingAliasDirectiveContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$UsingNamespaceDirectiveContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingNamespaceDirectiveContext.class new file mode 100644 index 0000000..8fa2507 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingNamespaceDirectiveContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$UsingStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingStatementContext.class new file mode 100644 index 0000000..8ea8c2f Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$UsingStaticDirectiveContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingStaticDirectiveContext.class new file mode 100644 index 0000000..a099b9b Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$UsingStaticDirectiveContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Using_directiveContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Using_directiveContext.class new file mode 100644 index 0000000..0366864 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Using_directiveContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Using_directivesContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Using_directivesContext.class new file mode 100644 index 0000000..5a6063d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Using_directivesContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_declaratorContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_declaratorContext.class new file mode 100644 index 0000000..3524929 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_declaratorContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_declaratorsContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_declaratorsContext.class new file mode 100644 index 0000000..3885639 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_declaratorsContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_initializerContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_initializerContext.class new file mode 100644 index 0000000..36c3213 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Variable_initializerContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Variance_annotationContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Variance_annotationContext.class new file mode 100644 index 0000000..3c7c1ab Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Variance_annotationContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Variant_type_parameterContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Variant_type_parameterContext.class new file mode 100644 index 0000000..e147a3e Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Variant_type_parameterContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Variant_type_parameter_listContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Variant_type_parameter_listContext.class new file mode 100644 index 0000000..302e256 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Variant_type_parameter_listContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$Where_clauseContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$Where_clauseContext.class new file mode 100644 index 0000000..f636b9d Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$Where_clauseContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$WhileStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$WhileStatementContext.class new file mode 100644 index 0000000..a6a32b4 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$WhileStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser$YieldStatementContext.class b/bin/com/carvalab/archtool/parsers/CSharpParser$YieldStatementContext.class new file mode 100644 index 0000000..d1725c3 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser$YieldStatementContext.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser.class b/bin/com/carvalab/archtool/parsers/CSharpParser.class new file mode 100644 index 0000000..a015e8a Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParser.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParser.tokens b/bin/com/carvalab/archtool/parsers/CSharpParser.tokens new file mode 100644 index 0000000..f2bac1a --- /dev/null +++ b/bin/com/carvalab/archtool/parsers/CSharpParser.tokens @@ -0,0 +1,351 @@ +BYTE_ORDER_MARK=1 +SINGLE_LINE_DOC_COMMENT=2 +DELIMITED_DOC_COMMENT=3 +SINGLE_LINE_COMMENT=4 +DELIMITED_COMMENT=5 +WHITESPACES=6 +SHARP=7 +ABSTRACT=8 +ADD=9 +ALIAS=10 +ARGLIST=11 +AS=12 +ASCENDING=13 +ASYNC=14 +AWAIT=15 +BASE=16 +BOOL=17 +BREAK=18 +BY=19 +BYTE=20 +CASE=21 +CATCH=22 +CHAR=23 +CHECKED=24 +CLASS=25 +CONST=26 +CONTINUE=27 +DECIMAL=28 +DEFAULT=29 +DELEGATE=30 +DESCENDING=31 +DO=32 +DOUBLE=33 +DYNAMIC=34 +ELSE=35 +ENUM=36 +EQUALS=37 +EVENT=38 +EXPLICIT=39 +EXTERN=40 +FALSE=41 +FINALLY=42 +FIXED=43 +FLOAT=44 +FOR=45 +FOREACH=46 +FROM=47 +GET=48 +GOTO=49 +GROUP=50 +IF=51 +IMPLICIT=52 +IN=53 +INT=54 +INTERFACE=55 +INTERNAL=56 +INTO=57 +IS=58 +JOIN=59 +LET=60 +LOCK=61 +LONG=62 +NAMEOF=63 +NAMESPACE=64 +NEW=65 +NULL=66 +OBJECT=67 +ON=68 +OPERATOR=69 +ORDERBY=70 +OUT=71 +OVERRIDE=72 +PARAMS=73 +PARTIAL=74 +PRIVATE=75 +PROTECTED=76 +PUBLIC=77 +READONLY=78 +REF=79 +REMOVE=80 +RETURN=81 +SBYTE=82 +SEALED=83 +SELECT=84 +SET=85 +SHORT=86 +SIZEOF=87 +STACKALLOC=88 +STATIC=89 +STRING=90 +STRUCT=91 +SWITCH=92 +THIS=93 +THROW=94 +TRUE=95 +TRY=96 +TYPEOF=97 +UINT=98 +ULONG=99 +UNCHECKED=100 +UNSAFE=101 +USHORT=102 +USING=103 +VIRTUAL=104 +VOID=105 +VOLATILE=106 +WHEN=107 +WHERE=108 +WHILE=109 +YIELD=110 +IDENTIFIER=111 +LITERAL_ACCESS=112 +INTEGER_LITERAL=113 +HEX_INTEGER_LITERAL=114 +REAL_LITERAL=115 +CHARACTER_LITERAL=116 +REGULAR_STRING=117 +VERBATIUM_STRING=118 +INTERPOLATED_REGULAR_STRING_START=119 +INTERPOLATED_VERBATIUM_STRING_START=120 +OPEN_BRACE=121 +CLOSE_BRACE=122 +OPEN_BRACKET=123 +CLOSE_BRACKET=124 +OPEN_PARENS=125 +CLOSE_PARENS=126 +DOT=127 +COMMA=128 +COLON=129 +SEMICOLON=130 +PLUS=131 +MINUS=132 +STAR=133 +DIV=134 +PERCENT=135 +AMP=136 +BITWISE_OR=137 +CARET=138 +BANG=139 +TILDE=140 +ASSIGNMENT=141 +LT=142 +GT=143 +INTERR=144 +DOUBLE_COLON=145 +OP_COALESCING=146 +OP_INC=147 +OP_DEC=148 +OP_AND=149 +OP_OR=150 +OP_PTR=151 +OP_EQ=152 +OP_NE=153 +OP_LE=154 +OP_GE=155 +OP_ADD_ASSIGNMENT=156 +OP_SUB_ASSIGNMENT=157 +OP_MULT_ASSIGNMENT=158 +OP_DIV_ASSIGNMENT=159 +OP_MOD_ASSIGNMENT=160 +OP_AND_ASSIGNMENT=161 +OP_OR_ASSIGNMENT=162 +OP_XOR_ASSIGNMENT=163 +OP_LEFT_SHIFT=164 +OP_LEFT_SHIFT_ASSIGNMENT=165 +DOUBLE_CURLY_INSIDE=166 +OPEN_BRACE_INSIDE=167 +REGULAR_CHAR_INSIDE=168 +VERBATIUM_DOUBLE_QUOTE_INSIDE=169 +DOUBLE_QUOTE_INSIDE=170 +REGULAR_STRING_INSIDE=171 +VERBATIUM_INSIDE_STRING=172 +CLOSE_BRACE_INSIDE=173 +FORMAT_STRING=174 +HIDDEN_WHITESPACES=175 +DIGITS=176 +DEFINE=177 +UNDEF=178 +ELIF=179 +ENDIF=180 +LINE=181 +ERROR=182 +WARNING=183 +REGION=184 +ENDREGION=185 +PRAGMA=186 +HIDDEN_HIDDEN=187 +CONDITIONAL_SYMBOL=188 +HIDDEN_NEW_LINE=189 +TEXT=190 +DOUBLE_CURLY_CLOSE_INSIDE=191 +'\u00EF\u00BB\u00BF'=1 +'#'=7 +'abstract'=8 +'add'=9 +'alias'=10 +'__arglist'=11 +'as'=12 +'ascending'=13 +'async'=14 +'await'=15 +'base'=16 +'bool'=17 +'break'=18 +'by'=19 +'byte'=20 +'case'=21 +'catch'=22 +'char'=23 +'checked'=24 +'class'=25 +'const'=26 +'continue'=27 +'decimal'=28 +'default'=29 +'delegate'=30 +'descending'=31 +'do'=32 +'double'=33 +'dynamic'=34 +'else'=35 +'enum'=36 +'equals'=37 +'event'=38 +'explicit'=39 +'extern'=40 +'false'=41 +'finally'=42 +'fixed'=43 +'float'=44 +'for'=45 +'foreach'=46 +'from'=47 +'get'=48 +'goto'=49 +'group'=50 +'if'=51 +'implicit'=52 +'in'=53 +'int'=54 +'interface'=55 +'internal'=56 +'into'=57 +'is'=58 +'join'=59 +'let'=60 +'lock'=61 +'long'=62 +'nameof'=63 +'namespace'=64 +'new'=65 +'null'=66 +'object'=67 +'on'=68 +'operator'=69 +'orderby'=70 +'out'=71 +'override'=72 +'params'=73 +'partial'=74 +'private'=75 +'protected'=76 +'public'=77 +'readonly'=78 +'ref'=79 +'remove'=80 +'return'=81 +'sbyte'=82 +'sealed'=83 +'select'=84 +'set'=85 +'short'=86 +'sizeof'=87 +'stackalloc'=88 +'static'=89 +'string'=90 +'struct'=91 +'switch'=92 +'this'=93 +'throw'=94 +'true'=95 +'try'=96 +'typeof'=97 +'uint'=98 +'ulong'=99 +'unchecked'=100 +'unsafe'=101 +'ushort'=102 +'using'=103 +'virtual'=104 +'void'=105 +'volatile'=106 +'when'=107 +'where'=108 +'while'=109 +'yield'=110 +'$"'=119 +'$@"'=120 +'['=123 +']'=124 +'('=125 +')'=126 +'.'=127 +','=128 +':'=129 +';'=130 +'+'=131 +'-'=132 +'*'=133 +'/'=134 +'%'=135 +'&'=136 +'|'=137 +'^'=138 +'!'=139 +'~'=140 +'='=141 +'<'=142 +'>'=143 +'?'=144 +'::'=145 +'??'=146 +'++'=147 +'--'=148 +'&&'=149 +'||'=150 +'->'=151 +'=='=152 +'!='=153 +'<='=154 +'>='=155 +'+='=156 +'-='=157 +'*='=158 +'/='=159 +'%='=160 +'&='=161 +'|='=162 +'^='=163 +'<<'=164 +'<<='=165 +'{{'=166 +'""'=169 +'"'=170 +'}}'=191 +'define'=177 +'undef'=178 +'elif'=179 +'endif'=180 +'line'=181 +'hidden'=187 diff --git a/bin/com/carvalab/archtool/parsers/CSharpParserBaseListener.class b/bin/com/carvalab/archtool/parsers/CSharpParserBaseListener.class new file mode 100644 index 0000000..5609bfb Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParserBaseListener.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParserBaseVisitor.class b/bin/com/carvalab/archtool/parsers/CSharpParserBaseVisitor.class new file mode 100644 index 0000000..765eeae Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParserBaseVisitor.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParserListener.class b/bin/com/carvalab/archtool/parsers/CSharpParserListener.class new file mode 100644 index 0000000..15dc2c9 Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParserListener.class differ diff --git a/bin/com/carvalab/archtool/parsers/CSharpParserVisitor.class b/bin/com/carvalab/archtool/parsers/CSharpParserVisitor.class new file mode 100644 index 0000000..21f83da Binary files /dev/null and b/bin/com/carvalab/archtool/parsers/CSharpParserVisitor.class differ diff --git a/bin/com/carvalab/archtool/util/FormatFilterFileVisitor.class b/bin/com/carvalab/archtool/util/FormatFilterFileVisitor.class new file mode 100644 index 0000000..62ea69c Binary files /dev/null and b/bin/com/carvalab/archtool/util/FormatFilterFileVisitor.class differ diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..7815e71 --- /dev/null +++ b/build.gradle @@ -0,0 +1,18 @@ +apply plugin: "java" + +repositories{ + flatDir { dirs "lib" } + mavenCentral() + jcenter() +} + +dependencies{ +} + +sourceSets{ + main { + java { + srcDir "src" + } + } +} diff --git a/grammars/CSharpLexer.g4 b/grammars/CSharpLexer.g4 new file mode 100644 index 0000000..d84f8bf --- /dev/null +++ b/grammars/CSharpLexer.g4 @@ -0,0 +1,1060 @@ +// Eclipse Public License - v 1.0, http://www.eclipse.org/legal/epl-v10.html +// Copyright (c) 2013, Christian Wulf (chwchw@gmx.de) +// Copyright (c) 2016, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. + +lexer grammar CSharpLexer; + +@lexer::header { package com.carvalab.archtool.parsers; } + +//channels { HIDDEN, HIDDEN } + +/*@lexer::members +{ + public static final int HIDDEN = 1; + public static final int HIDDEN = 2; +}*/ + +BYTE_ORDER_MARK: '\u00EF\u00BB\u00BF'; + +SINGLE_LINE_DOC_COMMENT: '///' InputCharacter* -> channel(HIDDEN); +DELIMITED_DOC_COMMENT: '/**' .*? '*/' -> channel(HIDDEN); +SINGLE_LINE_COMMENT: '//' InputCharacter* -> channel(HIDDEN); +DELIMITED_COMMENT: '/*' .*? '*/' -> channel(HIDDEN); + +WHITESPACES: (Whitespace | NewLine)+ -> channel(HIDDEN); +SHARP: '#' -> mode(HIDDEN_MODE); + +ABSTRACT: 'abstract'; +ADD: 'add'; +ALIAS: 'alias'; +ARGLIST: '__arglist'; +AS: 'as'; +ASCENDING: 'ascending'; +ASYNC: 'async'; +AWAIT: 'await'; +BASE: 'base'; +BOOL: 'bool'; +BREAK: 'break'; +BY: 'by'; +BYTE: 'byte'; +CASE: 'case'; +CATCH: 'catch'; +CHAR: 'char'; +CHECKED: 'checked'; +CLASS: 'class'; +CONST: 'const'; +CONTINUE: 'continue'; +DECIMAL: 'decimal'; +DEFAULT: 'default'; +DELEGATE: 'delegate'; +DESCENDING: 'descending'; +DO: 'do'; +DOUBLE: 'double'; +DYNAMIC: 'dynamic'; +ELSE: 'else'; +ENUM: 'enum'; +EQUALS: 'equals'; +EVENT: 'event'; +EXPLICIT: 'explicit'; +EXTERN: 'extern'; +FALSE: 'false'; +FINALLY: 'finally'; +FIXED: 'fixed'; +FLOAT: 'float'; +FOR: 'for'; +FOREACH: 'foreach'; +FROM: 'from'; +GET: 'get'; +GOTO: 'goto'; +GROUP: 'group'; +IF: 'if'; +IMPLICIT: 'implicit'; +IN: 'in'; +INT: 'int'; +INTERFACE: 'interface'; +INTERNAL: 'internal'; +INTO: 'into'; +IS: 'is'; +JOIN: 'join'; +LET: 'let'; +LOCK: 'lock'; +LONG: 'long'; +NAMEOF: 'nameof'; +NAMESPACE: 'namespace'; +NEW: 'new'; +NULL: 'null'; +OBJECT: 'object'; +ON: 'on'; +OPERATOR: 'operator'; +ORDERBY: 'orderby'; +OUT: 'out'; +OVERRIDE: 'override'; +PARAMS: 'params'; +PARTIAL: 'partial'; +PRIVATE: 'private'; +PROTECTED: 'protected'; +PUBLIC: 'public'; +READONLY: 'readonly'; +REF: 'ref'; +REMOVE: 'remove'; +RETURN: 'return'; +SBYTE: 'sbyte'; +SEALED: 'sealed'; +SELECT: 'select'; +SET: 'set'; +SHORT: 'short'; +SIZEOF: 'sizeof'; +STACKALLOC: 'stackalloc'; +STATIC: 'static'; +STRING: 'string'; +STRUCT: 'struct'; +SWITCH: 'switch'; +THIS: 'this'; +THROW: 'throw'; +TRUE: 'true'; +TRY: 'try'; +TYPEOF: 'typeof'; +UINT: 'uint'; +ULONG: 'ulong'; +UNCHECKED: 'unchecked'; +UNSAFE: 'unsafe'; +USHORT: 'ushort'; +USING: 'using'; +VIRTUAL: 'virtual'; +VOID: 'void'; +VOLATILE: 'volatile'; +WHEN: 'when'; +WHERE: 'where'; +WHILE: 'while'; +YIELD: 'yield'; + +//B.1.6 Identifiers +// must be defined after all keywords so the first branch (Available_identifier) does not match keywords +// https://msdn.microsoft.com/en-us/library/aa664670(v=vs.71).aspx +IDENTIFIER: '@'? IdentifierOrKeyword; + +//B.1.8 Literals +// 0.Equals() would be parsed as an invalid real (1. branch) causing a lexer error +LITERAL_ACCESS: [0-9]+ IntegerTypeSuffix? '.' '@'? IdentifierOrKeyword; +INTEGER_LITERAL: [0-9]+ IntegerTypeSuffix?; +HEX_INTEGER_LITERAL: '0' [xX] HexDigit+ IntegerTypeSuffix?; +REAL_LITERAL: [0-9]* '.' [0-9]+ ExponentPart? [FfDdMm]? | [0-9]+ ([FfDdMm] | ExponentPart [FfDdMm]?); + +CHARACTER_LITERAL: '\'' (~['\\\r\n\u0085\u2028\u2029] | CommonCharacter) '\''; +REGULAR_STRING: '"' (~["\\\r\n\u0085\u2028\u2029] | CommonCharacter)* '"'; +VERBATIUM_STRING: '@"' (~'"' | '""')* '"'; +INTERPOLATED_REGULAR_STRING_START: '$"' + ; +INTERPOLATED_VERBATIUM_STRING_START: '$@"' + ; + +//B.1.9 Operators And Punctuators +OPEN_BRACE: '{'; +CLOSE_BRACE: '}'; +OPEN_BRACKET: '['; +CLOSE_BRACKET: ']'; +OPEN_PARENS: '('; +CLOSE_PARENS: ')'; +DOT: '.'; +COMMA: ','; +COLON: ':'; +SEMICOLON: ';'; +PLUS: '+'; +MINUS: '-'; +STAR: '*'; +DIV: '/'; +PERCENT: '%'; +AMP: '&'; +BITWISE_OR: '|'; +CARET: '^'; +BANG: '!'; +TILDE: '~'; +ASSIGNMENT: '='; +LT: '<'; +GT: '>'; +INTERR: '?'; +DOUBLE_COLON: '::'; +OP_COALESCING: '??'; +OP_INC: '++'; +OP_DEC: '--'; +OP_AND: '&&'; +OP_OR: '||'; +OP_PTR: '->'; +OP_EQ: '=='; +OP_NE: '!='; +OP_LE: '<='; +OP_GE: '>='; +OP_ADD_ASSIGNMENT: '+='; +OP_SUB_ASSIGNMENT: '-='; +OP_MULT_ASSIGNMENT: '*='; +OP_DIV_ASSIGNMENT: '/='; +OP_MOD_ASSIGNMENT: '%='; +OP_AND_ASSIGNMENT: '&='; +OP_OR_ASSIGNMENT: '|='; +OP_XOR_ASSIGNMENT: '^='; +OP_LEFT_SHIFT: '<<'; +OP_LEFT_SHIFT_ASSIGNMENT: '<<='; + +// https://msdn.microsoft.com/en-us/library/dn961160.aspx +mode INTERPOLATION_STRING; + +DOUBLE_CURLY_INSIDE: '{{'; +OPEN_BRACE_INSIDE: '{' ; +REGULAR_CHAR_INSIDE: SimpleEscapeSequence; +VERBATIUM_DOUBLE_QUOTE_INSIDE: '""'; +DOUBLE_QUOTE_INSIDE: '"' ; +REGULAR_STRING_INSIDE: ~('{' | '\\' | '"')+; +VERBATIUM_INSIDE_STRING: ~('{' | '"')+; + +mode INTERPOLATION_FORMAT; + +DOUBLE_CURLY_CLOSE_INSIDE: '}}' -> type(FORMAT_STRING); +CLOSE_BRACE_INSIDE: '}'; +FORMAT_STRING: ~'}'+; + +mode HIDDEN_MODE; + +HIDDEN_WHITESPACES: Whitespace+ -> channel(HIDDEN); +DIGITS: [0-9]+ -> channel(HIDDEN); +HIDDEN_TRUE: 'true' -> channel(HIDDEN), type(TRUE); +HIDDEN_FALSE: 'false' -> channel(HIDDEN), type(FALSE); +DEFINE: 'define' -> channel(HIDDEN); +UNDEF: 'undef' -> channel(HIDDEN); +HIDDEN_IF: 'if' -> channel(HIDDEN), type(IF); +ELIF: 'elif' -> channel(HIDDEN); +HIDDEN_ELSE: 'else' -> channel(HIDDEN), type(ELSE); +ENDIF: 'endif' -> channel(HIDDEN); +LINE: 'line' -> channel(HIDDEN); +ERROR: 'error' Whitespace+ -> channel(HIDDEN), mode(HIDDEN_TEXT); +WARNING: 'warning' Whitespace+ -> channel(HIDDEN), mode(HIDDEN_TEXT); +REGION: 'region' Whitespace* -> channel(HIDDEN), mode(HIDDEN_TEXT); +ENDREGION: 'endregion' Whitespace* -> channel(HIDDEN), mode(HIDDEN_TEXT); +PRAGMA: 'pragma' Whitespace+ -> channel(HIDDEN), mode(HIDDEN_TEXT); +HIDDEN_DEFAULT: 'default' -> channel(HIDDEN), type(DEFAULT); +HIDDEN_HIDDEN: 'hidden' -> channel(HIDDEN); +HIDDEN_OPEN_PARENS: '(' -> channel(HIDDEN), type(OPEN_PARENS); +HIDDEN_CLOSE_PARENS: ')' -> channel(HIDDEN), type(CLOSE_PARENS); +HIDDEN_BANG: '!' -> channel(HIDDEN), type(BANG); +HIDDEN_OP_EQ: '==' -> channel(HIDDEN), type(OP_EQ); +HIDDEN_OP_NE: '!=' -> channel(HIDDEN), type(OP_NE); +HIDDEN_OP_AND: '&&' -> channel(HIDDEN), type(OP_AND); +HIDDEN_OP_OR: '||' -> channel(HIDDEN), type(OP_OR); +HIDDEN_STRING: '"' ~('"' | [\r\n\u0085\u2028\u2029])* '"' -> channel(HIDDEN), type(STRING); +CONDITIONAL_SYMBOL: IdentifierOrKeyword -> channel(HIDDEN); +HIDDEN_SINGLE_LINE_COMMENT: '//' ~[\r\n\u0085\u2028\u2029]* -> channel(HIDDEN), type(SINGLE_LINE_COMMENT); +HIDDEN_NEW_LINE: NewLine -> channel(HIDDEN), mode(DEFAULT_MODE); + +mode HIDDEN_TEXT; + +TEXT: ~[\r\n\u0085\u2028\u2029]+ -> channel(HIDDEN); +TEXT_NEW_LINE: NewLine -> channel(HIDDEN), type(HIDDEN_NEW_LINE), mode(DEFAULT_MODE); + +// Fragments + +fragment InputCharacter: ~[\r\n\u0085\u2028\u2029]; + +fragment NewLineCharacter + : '\u000D' //'' + | '\u000A' //'' + | '\u0085' //'' + | '\u2028' //'' + | '\u2029' //'' + ; + +fragment IntegerTypeSuffix: [lL]? [uU] | [uU]? [lL]; +fragment ExponentPart: [eE] ('+' | '-')? [0-9]+; + +fragment CommonCharacter + : SimpleEscapeSequence + | HexEscapeSequence + | UnicodeEscapeSequence + ; + +fragment SimpleEscapeSequence + : '\\\'' + | '\\"' + | '\\\\' + | '\\0' + | '\\a' + | '\\b' + | '\\f' + | '\\n' + | '\\r' + | '\\t' + | '\\v' + ; + +fragment HexEscapeSequence + : '\\x' HexDigit + | '\\x' HexDigit HexDigit + | '\\x' HexDigit HexDigit HexDigit + | '\\x' HexDigit HexDigit HexDigit HexDigit + ; + +fragment NewLine + : '\r\n' | '\r' | '\n' + | '\u0085' // ' + | '\u2028' //'' + | '\u2029' //'' + ; + +fragment Whitespace + : UnicodeClassZS //'' + | '\u0009' //'' + | '\u000B' //'' + | '\u000C' //'
' + ; + +fragment UnicodeClassZS + : '\u0020' // SPACE + | '\u00A0' // NO_BREAK SPACE + | '\u1680' // OGHAM SPACE MARK + | '\u180E' // MONGOLIAN VOWEL SEPARATOR + | '\u2000' // EN QUAD + | '\u2001' // EM QUAD + | '\u2002' // EN SPACE + | '\u2003' // EM SPACE + | '\u2004' // THREE_PER_EM SPACE + | '\u2005' // FOUR_PER_EM SPACE + | '\u2006' // SIX_PER_EM SPACE + | '\u2008' // PUNCTUATION SPACE + | '\u2009' // THIN SPACE + | '\u200A' // HAIR SPACE + | '\u202F' // NARROW NO_BREAK SPACE + | '\u3000' // IDEOGRAPHIC SPACE + | '\u205F' // MEDIUM MATHEMATICAL SPACE + ; + +fragment IdentifierOrKeyword + : IdentifierStartCharacter IdentifierPartCharacter* + ; + +fragment IdentifierStartCharacter + : LetterCharacter + | '_' + ; + +fragment IdentifierPartCharacter + : LetterCharacter + | DecimalDigitCharacter + | ConnectingCharacter + | CombiningCharacter + | FormattingCharacter + ; + +//'' +// WARNING: ignores UnicodeEscapeSequence +fragment LetterCharacter + : UnicodeClassLU + | UnicodeClassLL + | UnicodeClassLT + | UnicodeClassLM + | UnicodeClassLO + | UnicodeClassNL + | UnicodeEscapeSequence + ; + +//'' +// WARNING: ignores UnicodeEscapeSequence +fragment DecimalDigitCharacter + : UnicodeClassND + | UnicodeEscapeSequence + ; + +//'' +// WARNING: ignores UnicodeEscapeSequence +fragment ConnectingCharacter + : UnicodeClassPC + | UnicodeEscapeSequence + ; + +//'' +// WARNING: ignores UnicodeEscapeSequence +fragment CombiningCharacter + : UnicodeClassMN + | UnicodeClassMC + | UnicodeEscapeSequence + ; + +//'' +// WARNING: ignores UnicodeEscapeSequence +fragment FormattingCharacter + : UnicodeClassCF + | UnicodeEscapeSequence + ; + +//B.1.5 Unicode Character Escape Sequences +fragment UnicodeEscapeSequence + : '\\u' HexDigit HexDigit HexDigit HexDigit + | '\\U' HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit HexDigit + ; + +fragment HexDigit : [0-9] | [A-F] | [a-f]; + +// Unicode character classes +fragment UnicodeClassLU + : '\u0041'..'\u005a' + | '\u00c0'..'\u00de' + | '\u00d8'..'\u00de' + | '\u0100'..'\u0136' + | '\u0139'..'\u0147' + | '\u014a'..'\u0178' + | '\u0179'..'\u017d' + | '\u0181'..'\u0182' + | '\u0184'..'\u0186' + | '\u0187'..'\u0189' + | '\u018a'..'\u018b' + | '\u018e'..'\u0191' + | '\u0193'..'\u0194' + | '\u0196'..'\u0198' + | '\u019c'..'\u019d' + | '\u019f'..'\u01a0' + | '\u01a2'..'\u01a6' + | '\u01a7'..'\u01a9' + | '\u01ac'..'\u01ae' + | '\u01af'..'\u01b1' + | '\u01b2'..'\u01b3' + | '\u01b5'..'\u01b7' + | '\u01b8'..'\u01bc' + | '\u01c4'..'\u01cd' + | '\u01cf'..'\u01db' + | '\u01de'..'\u01ee' + | '\u01f1'..'\u01f4' + | '\u01f6'..'\u01f8' + | '\u01fa'..'\u0232' + | '\u023a'..'\u023b' + | '\u023d'..'\u023e' + | '\u0241'..'\u0243' + | '\u0244'..'\u0246' + | '\u0248'..'\u024e' + | '\u0370'..'\u0372' + | '\u0376'..'\u037f' + | '\u0386'..'\u0388' + | '\u0389'..'\u038a' + | '\u038c'..'\u038e' + | '\u038f'..'\u0391' + | '\u0392'..'\u03a1' + | '\u03a3'..'\u03ab' + | '\u03cf'..'\u03d2' + | '\u03d3'..'\u03d4' + | '\u03d8'..'\u03ee' + | '\u03f4'..'\u03f7' + | '\u03f9'..'\u03fa' + | '\u03fd'..'\u042f' + | '\u0460'..'\u0480' + | '\u048a'..'\u04c0' + | '\u04c1'..'\u04cd' + | '\u04d0'..'\u052e' + | '\u0531'..'\u0556' + | '\u10a0'..'\u10c5' + | '\u10c7'..'\u10cd' + | '\u1e00'..'\u1e94' + | '\u1e9e'..'\u1efe' + | '\u1f08'..'\u1f0f' + | '\u1f18'..'\u1f1d' + | '\u1f28'..'\u1f2f' + | '\u1f38'..'\u1f3f' + | '\u1f48'..'\u1f4d' + | '\u1f59'..'\u1f5f' + | '\u1f68'..'\u1f6f' + | '\u1fb8'..'\u1fbb' + | '\u1fc8'..'\u1fcb' + | '\u1fd8'..'\u1fdb' + | '\u1fe8'..'\u1fec' + | '\u1ff8'..'\u1ffb' + | '\u2102'..'\u2107' + | '\u210b'..'\u210d' + | '\u2110'..'\u2112' + | '\u2115'..'\u2119' + | '\u211a'..'\u211d' + | '\u2124'..'\u212a' + | '\u212b'..'\u212d' + | '\u2130'..'\u2133' + | '\u213e'..'\u213f' + | '\u2145'..'\u2183' + | '\u2c00'..'\u2c2e' + | '\u2c60'..'\u2c62' + | '\u2c63'..'\u2c64' + | '\u2c67'..'\u2c6d' + | '\u2c6e'..'\u2c70' + | '\u2c72'..'\u2c75' + | '\u2c7e'..'\u2c80' + | '\u2c82'..'\u2ce2' + | '\u2ceb'..'\u2ced' + | '\u2cf2'..'\ua640' + | '\ua642'..'\ua66c' + | '\ua680'..'\ua69a' + | '\ua722'..'\ua72e' + | '\ua732'..'\ua76e' + | '\ua779'..'\ua77d' + | '\ua77e'..'\ua786' + | '\ua78b'..'\ua78d' + | '\ua790'..'\ua792' + | '\ua796'..'\ua7aa' + | '\ua7ab'..'\ua7ad' + | '\ua7b0'..'\ua7b1' + | '\uff21'..'\uff3a' + ; + +fragment UnicodeClassLL + : '\u0061'..'\u007A' + | '\u00b5'..'\u00df' + | '\u00e0'..'\u00f6' + | '\u00f8'..'\u00ff' + | '\u0101'..'\u0137' + | '\u0138'..'\u0148' + | '\u0149'..'\u0177' + | '\u017a'..'\u017e' + | '\u017f'..'\u0180' + | '\u0183'..'\u0185' + | '\u0188'..'\u018c' + | '\u018d'..'\u0192' + | '\u0195'..'\u0199' + | '\u019a'..'\u019b' + | '\u019e'..'\u01a1' + | '\u01a3'..'\u01a5' + | '\u01a8'..'\u01aa' + | '\u01ab'..'\u01ad' + | '\u01b0'..'\u01b4' + | '\u01b6'..'\u01b9' + | '\u01ba'..'\u01bd' + | '\u01be'..'\u01bf' + | '\u01c6'..'\u01cc' + | '\u01ce'..'\u01dc' + | '\u01dd'..'\u01ef' + | '\u01f0'..'\u01f3' + | '\u01f5'..'\u01f9' + | '\u01fb'..'\u0233' + | '\u0234'..'\u0239' + | '\u023c'..'\u023f' + | '\u0240'..'\u0242' + | '\u0247'..'\u024f' + | '\u0250'..'\u0293' + | '\u0295'..'\u02af' + | '\u0371'..'\u0373' + | '\u0377'..'\u037b' + | '\u037c'..'\u037d' + | '\u0390'..'\u03ac' + | '\u03ad'..'\u03ce' + | '\u03d0'..'\u03d1' + | '\u03d5'..'\u03d7' + | '\u03d9'..'\u03ef' + | '\u03f0'..'\u03f3' + | '\u03f5'..'\u03fb' + | '\u03fc'..'\u0430' + | '\u0431'..'\u045f' + | '\u0461'..'\u0481' + | '\u048b'..'\u04bf' + | '\u04c2'..'\u04ce' + | '\u04cf'..'\u052f' + | '\u0561'..'\u0587' + | '\u1d00'..'\u1d2b' + | '\u1d6b'..'\u1d77' + | '\u1d79'..'\u1d9a' + | '\u1e01'..'\u1e95' + | '\u1e96'..'\u1e9d' + | '\u1e9f'..'\u1eff' + | '\u1f00'..'\u1f07' + | '\u1f10'..'\u1f15' + | '\u1f20'..'\u1f27' + | '\u1f30'..'\u1f37' + | '\u1f40'..'\u1f45' + | '\u1f50'..'\u1f57' + | '\u1f60'..'\u1f67' + | '\u1f70'..'\u1f7d' + | '\u1f80'..'\u1f87' + | '\u1f90'..'\u1f97' + | '\u1fa0'..'\u1fa7' + | '\u1fb0'..'\u1fb4' + | '\u1fb6'..'\u1fb7' + | '\u1fbe'..'\u1fc2' + | '\u1fc3'..'\u1fc4' + | '\u1fc6'..'\u1fc7' + | '\u1fd0'..'\u1fd3' + | '\u1fd6'..'\u1fd7' + | '\u1fe0'..'\u1fe7' + | '\u1ff2'..'\u1ff4' + | '\u1ff6'..'\u1ff7' + | '\u210a'..'\u210e' + | '\u210f'..'\u2113' + | '\u212f'..'\u2139' + | '\u213c'..'\u213d' + | '\u2146'..'\u2149' + | '\u214e'..'\u2184' + | '\u2c30'..'\u2c5e' + | '\u2c61'..'\u2c65' + | '\u2c66'..'\u2c6c' + | '\u2c71'..'\u2c73' + | '\u2c74'..'\u2c76' + | '\u2c77'..'\u2c7b' + | '\u2c81'..'\u2ce3' + | '\u2ce4'..'\u2cec' + | '\u2cee'..'\u2cf3' + | '\u2d00'..'\u2d25' + | '\u2d27'..'\u2d2d' + | '\ua641'..'\ua66d' + | '\ua681'..'\ua69b' + | '\ua723'..'\ua72f' + | '\ua730'..'\ua731' + | '\ua733'..'\ua771' + | '\ua772'..'\ua778' + | '\ua77a'..'\ua77c' + | '\ua77f'..'\ua787' + | '\ua78c'..'\ua78e' + | '\ua791'..'\ua793' + | '\ua794'..'\ua795' + | '\ua797'..'\ua7a9' + | '\ua7fa'..'\uab30' + | '\uab31'..'\uab5a' + | '\uab64'..'\uab65' + | '\ufb00'..'\ufb06' + | '\ufb13'..'\ufb17' + | '\uff41'..'\uff5a' + ; + +fragment UnicodeClassLT + : '\u01c5'..'\u01cb' + | '\u01f2'..'\u1f88' + | '\u1f89'..'\u1f8f' + | '\u1f98'..'\u1f9f' + | '\u1fa8'..'\u1faf' + | '\u1fbc'..'\u1fcc' + | '\u1ffc'..'\u1ffc' + ; + +fragment UnicodeClassLM + : '\u02b0'..'\u02c1' + | '\u02c6'..'\u02d1' + | '\u02e0'..'\u02e4' + | '\u02ec'..'\u02ee' + | '\u0374'..'\u037a' + | '\u0559'..'\u0640' + | '\u06e5'..'\u06e6' + | '\u07f4'..'\u07f5' + | '\u07fa'..'\u081a' + | '\u0824'..'\u0828' + | '\u0971'..'\u0e46' + | '\u0ec6'..'\u10fc' + | '\u17d7'..'\u1843' + | '\u1aa7'..'\u1c78' + | '\u1c79'..'\u1c7d' + | '\u1d2c'..'\u1d6a' + | '\u1d78'..'\u1d9b' + | '\u1d9c'..'\u1dbf' + | '\u2071'..'\u207f' + | '\u2090'..'\u209c' + | '\u2c7c'..'\u2c7d' + | '\u2d6f'..'\u2e2f' + | '\u3005'..'\u3031' + | '\u3032'..'\u3035' + | '\u303b'..'\u309d' + | '\u309e'..'\u30fc' + | '\u30fd'..'\u30fe' + | '\ua015'..'\ua4f8' + | '\ua4f9'..'\ua4fd' + | '\ua60c'..'\ua67f' + | '\ua69c'..'\ua69d' + | '\ua717'..'\ua71f' + | '\ua770'..'\ua788' + | '\ua7f8'..'\ua7f9' + | '\ua9cf'..'\ua9e6' + | '\uaa70'..'\uaadd' + | '\uaaf3'..'\uaaf4' + | '\uab5c'..'\uab5f' + | '\uff70'..'\uff9e' + | '\uff9f'..'\uff9f' + ; + +fragment UnicodeClassLO + : '\u00aa'..'\u00ba' + | '\u01bb'..'\u01c0' + | '\u01c1'..'\u01c3' + | '\u0294'..'\u05d0' + | '\u05d1'..'\u05ea' + | '\u05f0'..'\u05f2' + | '\u0620'..'\u063f' + | '\u0641'..'\u064a' + | '\u066e'..'\u066f' + | '\u0671'..'\u06d3' + | '\u06d5'..'\u06ee' + | '\u06ef'..'\u06fa' + | '\u06fb'..'\u06fc' + | '\u06ff'..'\u0710' + | '\u0712'..'\u072f' + | '\u074d'..'\u07a5' + | '\u07b1'..'\u07ca' + | '\u07cb'..'\u07ea' + | '\u0800'..'\u0815' + | '\u0840'..'\u0858' + | '\u08a0'..'\u08b2' + | '\u0904'..'\u0939' + | '\u093d'..'\u0950' + | '\u0958'..'\u0961' + | '\u0972'..'\u0980' + | '\u0985'..'\u098c' + | '\u098f'..'\u0990' + | '\u0993'..'\u09a8' + | '\u09aa'..'\u09b0' + | '\u09b2'..'\u09b6' + | '\u09b7'..'\u09b9' + | '\u09bd'..'\u09ce' + | '\u09dc'..'\u09dd' + | '\u09df'..'\u09e1' + | '\u09f0'..'\u09f1' + | '\u0a05'..'\u0a0a' + | '\u0a0f'..'\u0a10' + | '\u0a13'..'\u0a28' + | '\u0a2a'..'\u0a30' + | '\u0a32'..'\u0a33' + | '\u0a35'..'\u0a36' + | '\u0a38'..'\u0a39' + | '\u0a59'..'\u0a5c' + | '\u0a5e'..'\u0a72' + | '\u0a73'..'\u0a74' + | '\u0a85'..'\u0a8d' + | '\u0a8f'..'\u0a91' + | '\u0a93'..'\u0aa8' + | '\u0aaa'..'\u0ab0' + | '\u0ab2'..'\u0ab3' + | '\u0ab5'..'\u0ab9' + | '\u0abd'..'\u0ad0' + | '\u0ae0'..'\u0ae1' + | '\u0b05'..'\u0b0c' + | '\u0b0f'..'\u0b10' + | '\u0b13'..'\u0b28' + | '\u0b2a'..'\u0b30' + | '\u0b32'..'\u0b33' + | '\u0b35'..'\u0b39' + | '\u0b3d'..'\u0b5c' + | '\u0b5d'..'\u0b5f' + | '\u0b60'..'\u0b61' + | '\u0b71'..'\u0b83' + | '\u0b85'..'\u0b8a' + | '\u0b8e'..'\u0b90' + | '\u0b92'..'\u0b95' + | '\u0b99'..'\u0b9a' + | '\u0b9c'..'\u0b9e' + | '\u0b9f'..'\u0ba3' + | '\u0ba4'..'\u0ba8' + | '\u0ba9'..'\u0baa' + | '\u0bae'..'\u0bb9' + | '\u0bd0'..'\u0c05' + | '\u0c06'..'\u0c0c' + | '\u0c0e'..'\u0c10' + | '\u0c12'..'\u0c28' + | '\u0c2a'..'\u0c39' + | '\u0c3d'..'\u0c58' + | '\u0c59'..'\u0c60' + | '\u0c61'..'\u0c85' + | '\u0c86'..'\u0c8c' + | '\u0c8e'..'\u0c90' + | '\u0c92'..'\u0ca8' + | '\u0caa'..'\u0cb3' + | '\u0cb5'..'\u0cb9' + | '\u0cbd'..'\u0cde' + | '\u0ce0'..'\u0ce1' + | '\u0cf1'..'\u0cf2' + | '\u0d05'..'\u0d0c' + | '\u0d0e'..'\u0d10' + | '\u0d12'..'\u0d3a' + | '\u0d3d'..'\u0d4e' + | '\u0d60'..'\u0d61' + | '\u0d7a'..'\u0d7f' + | '\u0d85'..'\u0d96' + | '\u0d9a'..'\u0db1' + | '\u0db3'..'\u0dbb' + | '\u0dbd'..'\u0dc0' + | '\u0dc1'..'\u0dc6' + | '\u0e01'..'\u0e30' + | '\u0e32'..'\u0e33' + | '\u0e40'..'\u0e45' + | '\u0e81'..'\u0e82' + | '\u0e84'..'\u0e87' + | '\u0e88'..'\u0e8a' + | '\u0e8d'..'\u0e94' + | '\u0e95'..'\u0e97' + | '\u0e99'..'\u0e9f' + | '\u0ea1'..'\u0ea3' + | '\u0ea5'..'\u0ea7' + | '\u0eaa'..'\u0eab' + | '\u0ead'..'\u0eb0' + | '\u0eb2'..'\u0eb3' + | '\u0ebd'..'\u0ec0' + | '\u0ec1'..'\u0ec4' + | '\u0edc'..'\u0edf' + | '\u0f00'..'\u0f40' + | '\u0f41'..'\u0f47' + | '\u0f49'..'\u0f6c' + | '\u0f88'..'\u0f8c' + | '\u1000'..'\u102a' + | '\u103f'..'\u1050' + | '\u1051'..'\u1055' + | '\u105a'..'\u105d' + | '\u1061'..'\u1065' + | '\u1066'..'\u106e' + | '\u106f'..'\u1070' + | '\u1075'..'\u1081' + | '\u108e'..'\u10d0' + | '\u10d1'..'\u10fa' + | '\u10fd'..'\u1248' + | '\u124a'..'\u124d' + | '\u1250'..'\u1256' + | '\u1258'..'\u125a' + | '\u125b'..'\u125d' + | '\u1260'..'\u1288' + | '\u128a'..'\u128d' + | '\u1290'..'\u12b0' + | '\u12b2'..'\u12b5' + | '\u12b8'..'\u12be' + | '\u12c0'..'\u12c2' + | '\u12c3'..'\u12c5' + | '\u12c8'..'\u12d6' + | '\u12d8'..'\u1310' + | '\u1312'..'\u1315' + | '\u1318'..'\u135a' + | '\u1380'..'\u138f' + | '\u13a0'..'\u13f4' + | '\u1401'..'\u166c' + | '\u166f'..'\u167f' + | '\u1681'..'\u169a' + | '\u16a0'..'\u16ea' + | '\u16f1'..'\u16f8' + | '\u1700'..'\u170c' + | '\u170e'..'\u1711' + | '\u1720'..'\u1731' + | '\u1740'..'\u1751' + | '\u1760'..'\u176c' + | '\u176e'..'\u1770' + | '\u1780'..'\u17b3' + | '\u17dc'..'\u1820' + | '\u1821'..'\u1842' + | '\u1844'..'\u1877' + | '\u1880'..'\u18a8' + | '\u18aa'..'\u18b0' + | '\u18b1'..'\u18f5' + | '\u1900'..'\u191e' + | '\u1950'..'\u196d' + | '\u1970'..'\u1974' + | '\u1980'..'\u19ab' + | '\u19c1'..'\u19c7' + | '\u1a00'..'\u1a16' + | '\u1a20'..'\u1a54' + | '\u1b05'..'\u1b33' + | '\u1b45'..'\u1b4b' + | '\u1b83'..'\u1ba0' + | '\u1bae'..'\u1baf' + | '\u1bba'..'\u1be5' + | '\u1c00'..'\u1c23' + | '\u1c4d'..'\u1c4f' + | '\u1c5a'..'\u1c77' + | '\u1ce9'..'\u1cec' + | '\u1cee'..'\u1cf1' + | '\u1cf5'..'\u1cf6' + | '\u2135'..'\u2138' + | '\u2d30'..'\u2d67' + | '\u2d80'..'\u2d96' + | '\u2da0'..'\u2da6' + | '\u2da8'..'\u2dae' + | '\u2db0'..'\u2db6' + | '\u2db8'..'\u2dbe' + | '\u2dc0'..'\u2dc6' + | '\u2dc8'..'\u2dce' + | '\u2dd0'..'\u2dd6' + | '\u2dd8'..'\u2dde' + | '\u3006'..'\u303c' + | '\u3041'..'\u3096' + | '\u309f'..'\u30a1' + | '\u30a2'..'\u30fa' + | '\u30ff'..'\u3105' + | '\u3106'..'\u312d' + | '\u3131'..'\u318e' + | '\u31a0'..'\u31ba' + | '\u31f0'..'\u31ff' + | '\u3400'..'\u4db5' + | '\u4e00'..'\u9fcc' + | '\ua000'..'\ua014' + | '\ua016'..'\ua48c' + | '\ua4d0'..'\ua4f7' + | '\ua500'..'\ua60b' + | '\ua610'..'\ua61f' + | '\ua62a'..'\ua62b' + | '\ua66e'..'\ua6a0' + | '\ua6a1'..'\ua6e5' + | '\ua7f7'..'\ua7fb' + | '\ua7fc'..'\ua801' + | '\ua803'..'\ua805' + | '\ua807'..'\ua80a' + | '\ua80c'..'\ua822' + | '\ua840'..'\ua873' + | '\ua882'..'\ua8b3' + | '\ua8f2'..'\ua8f7' + | '\ua8fb'..'\ua90a' + | '\ua90b'..'\ua925' + | '\ua930'..'\ua946' + | '\ua960'..'\ua97c' + | '\ua984'..'\ua9b2' + | '\ua9e0'..'\ua9e4' + | '\ua9e7'..'\ua9ef' + | '\ua9fa'..'\ua9fe' + | '\uaa00'..'\uaa28' + | '\uaa40'..'\uaa42' + | '\uaa44'..'\uaa4b' + | '\uaa60'..'\uaa6f' + | '\uaa71'..'\uaa76' + | '\uaa7a'..'\uaa7e' + | '\uaa7f'..'\uaaaf' + | '\uaab1'..'\uaab5' + | '\uaab6'..'\uaab9' + | '\uaaba'..'\uaabd' + | '\uaac0'..'\uaac2' + | '\uaadb'..'\uaadc' + | '\uaae0'..'\uaaea' + | '\uaaf2'..'\uab01' + | '\uab02'..'\uab06' + | '\uab09'..'\uab0e' + | '\uab11'..'\uab16' + | '\uab20'..'\uab26' + | '\uab28'..'\uab2e' + | '\uabc0'..'\uabe2' + | '\uac00'..'\ud7a3' + | '\ud7b0'..'\ud7c6' + | '\ud7cb'..'\ud7fb' + | '\uf900'..'\ufa6d' + | '\ufa70'..'\ufad9' + | '\ufb1d'..'\ufb1f' + | '\ufb20'..'\ufb28' + | '\ufb2a'..'\ufb36' + | '\ufb38'..'\ufb3c' + | '\ufb3e'..'\ufb40' + | '\ufb41'..'\ufb43' + | '\ufb44'..'\ufb46' + | '\ufb47'..'\ufbb1' + | '\ufbd3'..'\ufd3d' + | '\ufd50'..'\ufd8f' + | '\ufd92'..'\ufdc7' + | '\ufdf0'..'\ufdfb' + | '\ufe70'..'\ufe74' + | '\ufe76'..'\ufefc' + | '\uff66'..'\uff6f' + | '\uff71'..'\uff9d' + | '\uffa0'..'\uffbe' + | '\uffc2'..'\uffc7' + | '\uffca'..'\uffcf' + | '\uffd2'..'\uffd7' + | '\uffda'..'\uffdc' + ; + +fragment UnicodeClassNL + : '\u16EE' // RUNIC ARLAUG SYMBOL + | '\u16EF' // RUNIC TVIMADUR SYMBOL + | '\u16F0' // RUNIC BELGTHOR SYMBOL + | '\u2160' // ROMAN NUMERAL ONE + | '\u2161' // ROMAN NUMERAL TWO + | '\u2162' // ROMAN NUMERAL THREE + | '\u2163' // ROMAN NUMERAL FOUR + | '\u2164' // ROMAN NUMERAL FIVE + | '\u2165' // ROMAN NUMERAL SIX + | '\u2166' // ROMAN NUMERAL SEVEN + | '\u2167' // ROMAN NUMERAL EIGHT + | '\u2168' // ROMAN NUMERAL NINE + | '\u2169' // ROMAN NUMERAL TEN + | '\u216A' // ROMAN NUMERAL ELEVEN + | '\u216B' // ROMAN NUMERAL TWELVE + | '\u216C' // ROMAN NUMERAL FIFTY + | '\u216D' // ROMAN NUMERAL ONE HUNDRED + | '\u216E' // ROMAN NUMERAL FIVE HUNDRED + | '\u216F' // ROMAN NUMERAL ONE THOUSAND + ; + +fragment UnicodeClassMN + : '\u0300' // COMBINING GRAVE ACCENT + | '\u0301' // COMBINING ACUTE ACCENT + | '\u0302' // COMBINING CIRCUMFLEX ACCENT + | '\u0303' // COMBINING TILDE + | '\u0304' // COMBINING MACRON + | '\u0305' // COMBINING OVERLINE + | '\u0306' // COMBINING BREVE + | '\u0307' // COMBINING DOT ABOVE + | '\u0308' // COMBINING DIAERESIS + | '\u0309' // COMBINING HOOK ABOVE + | '\u030A' // COMBINING RING ABOVE + | '\u030B' // COMBINING DOUBLE ACUTE ACCENT + | '\u030C' // COMBINING CARON + | '\u030D' // COMBINING VERTICAL LINE ABOVE + | '\u030E' // COMBINING DOUBLE VERTICAL LINE ABOVE + | '\u030F' // COMBINING DOUBLE GRAVE ACCENT + | '\u0310' // COMBINING CANDRABINDU + ; + +fragment UnicodeClassMC + : '\u0903' // DEVANAGARI SIGN VISARGA + | '\u093E' // DEVANAGARI VOWEL SIGN AA + | '\u093F' // DEVANAGARI VOWEL SIGN I + | '\u0940' // DEVANAGARI VOWEL SIGN II + | '\u0949' // DEVANAGARI VOWEL SIGN CANDRA O + | '\u094A' // DEVANAGARI VOWEL SIGN SHORT O + | '\u094B' // DEVANAGARI VOWEL SIGN O + | '\u094C' // DEVANAGARI VOWEL SIGN AU + ; + +fragment UnicodeClassCF + : '\u00AD' // SOFT HYPHEN + | '\u0600' // ARABIC NUMBER SIGN + | '\u0601' // ARABIC SIGN SANAH + | '\u0602' // ARABIC FOOTNOTE MARKER + | '\u0603' // ARABIC SIGN SAFHA + | '\u06DD' // ARABIC END OF AYAH + ; + +fragment UnicodeClassPC + : '\u005F' // LOW LINE + | '\u203F' // UNDERTIE + | '\u2040' // CHARACTER TIE + | '\u2054' // INVERTED UNDERTIE + | '\uFE33' // PRESENTATION FORM FOR VERTICAL LOW LINE + | '\uFE34' // PRESENTATION FORM FOR VERTICAL WAVY LOW LINE + | '\uFE4D' // DASHED LOW LINE + | '\uFE4E' // CENTRELINE LOW LINE + | '\uFE4F' // WAVY LOW LINE + | '\uFF3F' // FULLWIDTH LOW LINE + ; + +fragment UnicodeClassND + : '\u0030'..'\u0039' + | '\u0660'..'\u0669' + | '\u06f0'..'\u06f9' + | '\u07c0'..'\u07c9' + | '\u0966'..'\u096f' + | '\u09e6'..'\u09ef' + | '\u0a66'..'\u0a6f' + | '\u0ae6'..'\u0aef' + | '\u0b66'..'\u0b6f' + | '\u0be6'..'\u0bef' + | '\u0c66'..'\u0c6f' + | '\u0ce6'..'\u0cef' + | '\u0d66'..'\u0d6f' + | '\u0de6'..'\u0def' + | '\u0e50'..'\u0e59' + | '\u0ed0'..'\u0ed9' + | '\u0f20'..'\u0f29' + | '\u1040'..'\u1049' + | '\u1090'..'\u1099' + | '\u17e0'..'\u17e9' + | '\u1810'..'\u1819' + | '\u1946'..'\u194f' + | '\u19d0'..'\u19d9' + | '\u1a80'..'\u1a89' + | '\u1a90'..'\u1a99' + | '\u1b50'..'\u1b59' + | '\u1bb0'..'\u1bb9' + | '\u1c40'..'\u1c49' + | '\u1c50'..'\u1c59' + | '\ua620'..'\ua629' + | '\ua8d0'..'\ua8d9' + | '\ua900'..'\ua909' + | '\ua9d0'..'\ua9d9' + | '\ua9f0'..'\ua9f9' + | '\uaa50'..'\uaa59' + | '\uabf0'..'\uabf9' + | '\uff10'..'\uff19' + ; \ No newline at end of file diff --git a/grammars/CSharpParser.g4 b/grammars/CSharpParser.g4 new file mode 100644 index 0000000..81ae3bd --- /dev/null +++ b/grammars/CSharpParser.g4 @@ -0,0 +1,1155 @@ +// Eclipse Public License - v 1.0, http://www.eclipse.org/legal/epl-v10.html +// Copyright (c) 2013, Christian Wulf (chwchw@gmx.de) +// Copyright (c) 2016, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. + +parser grammar CSharpParser; + +@header { package com.carvalab.archtool.parsers; } + +options { + language = Java; + tokenVocab = CSharpLexer; +} + +// entry point +compilation_unit + : BYTE_ORDER_MARK? extern_alias_directives? using_directives? + global_attribute_section* namespace_member_declarations? EOF + ; + +//B.2 Syntactic grammar + +//B.2.1 Basic concepts + +namespace_or_type_name + : (identifier type_argument_list? | qualified_alias_member) (DOT identifier type_argument_list?)* + ; + +//B.2.2 Types +type + : base_type (INTERR | rank_specifier | STAR)* + ; + +base_type + : simple_type + | class_type // represents types: enum, class, interface, delegate, type_parameter + | VOID STAR + ; + +simple_type + : numeric_type + | BOOL + ; + +numeric_type + : integral_type + | floating_point_type + | DECIMAL + ; + +integral_type + : SBYTE + | BYTE + | SHORT + | USHORT + | INT + | UINT + | LONG + | ULONG + | CHAR + ; + +floating_point_type + : FLOAT + | DOUBLE + ; + +/** namespace_or_type_name, OBJECT, STRING */ +class_type + : namespace_or_type_name + | OBJECT + | DYNAMIC + | STRING + ; + +type_argument_list + : LT type ( COMMA type)* GT + ; + +//B.2.4 Expressions +argument_list + : argument ( COMMA argument)* + ; + +argument + : (identifier COLON)? refout=(REF | OUT)? expression + ; + +expression + : assignment + | non_assignment_expression + ; + +non_assignment_expression + : lambda_expression + | query_expression + | conditional_expression + ; + +assignment + : unary_expression assignment_operator expression + ; + +assignment_operator + : ASSIGNMENT | OP_ADD_ASSIGNMENT | OP_SUB_ASSIGNMENT | OP_MULT_ASSIGNMENT | OP_DIV_ASSIGNMENT | '%=' | '&=' | '|=' | '^=' | '<<=' | right_shift_assignment + ; + +conditional_expression + : null_coalescing_expression (INTERR expression COLON expression)? + ; + +null_coalescing_expression + : conditional_or_expression ('??' null_coalescing_expression)? + ; + +conditional_or_expression + : conditional_and_expression (OP_OR conditional_and_expression)* + ; + +conditional_and_expression + : inclusive_or_expression (OP_AND inclusive_or_expression)* + ; + +inclusive_or_expression + : exclusive_or_expression ('|' exclusive_or_expression)* + ; + +exclusive_or_expression + : and_expression ('^' and_expression)* + ; + +and_expression + : equality_expression ('&' equality_expression)* + ; + +equality_expression + : relational_expression ((OP_EQ | OP_NE) relational_expression)* + ; + +relational_expression + : shift_expression ((LT | GT | '<=' | '>=') shift_expression | IS isType | AS type)* + ; + +shift_expression + : additive_expression (('<<' | right_shift) additive_expression)* + ; + +additive_expression + : multiplicative_expression (('+' | '-') multiplicative_expression)* + ; + +multiplicative_expression + : unary_expression ((STAR | '/' | '%') unary_expression)* + ; + +// https://msdn.microsoft.com/library/6a71f45d(v=vs.110).aspx +unary_expression + : primary_expression + | '+' unary_expression + | '-' unary_expression + | BANG unary_expression + | '~' unary_expression + | '++' unary_expression + | '--' unary_expression + | OPEN_PARENS type CLOSE_PARENS unary_expression + | AWAIT unary_expression // C# 5 + | '&' unary_expression + | STAR unary_expression + ; + +primary_expression // Null-conditional operators C# 6: https://msdn.microsoft.com/en-us/library/dn986595.aspx + : pe=primary_expression_start bracket_expression* + ((member_access | method_invocation | '++' | '--' | '->' identifier) bracket_expression*)* + ; + +primary_expression_start + : literal #literalExpression + | identifier type_argument_list? #simpleNameExpression + | OPEN_PARENS expression CLOSE_PARENS #parenthesisExpressions + | predefined_type #memberAccessExpression + | qualified_alias_member #memberAccessExpression + | LITERAL_ACCESS #literalAccessExpression + | THIS #thisReferenceExpression + | BASE (DOT identifier type_argument_list? | '[' expression_list ']') #baseAccessExpression + | NEW (type (object_creation_expression + | object_or_collection_initializer + | '[' expression_list ']' rank_specifier* array_initializer? + | rank_specifier+ array_initializer) + | anonymous_object_initializer + | rank_specifier array_initializer) #objectCreationExpression + | TYPEOF OPEN_PARENS (unbound_type_name | type | VOID) CLOSE_PARENS #typeofExpression + | CHECKED OPEN_PARENS expression CLOSE_PARENS #checkedExpression + | UNCHECKED OPEN_PARENS expression CLOSE_PARENS #uncheckedExpression + | DEFAULT OPEN_PARENS type CLOSE_PARENS #defaultValueExpression + | ASYNC? DELEGATE (OPEN_PARENS explicit_anonymous_function_parameter_list? CLOSE_PARENS)? block #anonymousMethodExpression + | SIZEOF OPEN_PARENS type CLOSE_PARENS #sizeofExpression + // C# 6: https://msdn.microsoft.com/en-us/library/dn986596.aspx + | NAMEOF OPEN_PARENS (identifier DOT)* identifier CLOSE_PARENS #nameofExpression + ; + +member_access + : INTERR? DOT identifier type_argument_list? + ; + +bracket_expression + : INTERR? '[' indexer_argument ( COMMA indexer_argument)* ']' + ; + +indexer_argument + : (identifier COLON)? expression + ; + +predefined_type + : BOOL | BYTE | CHAR | DECIMAL | DOUBLE | FLOAT | INT | LONG + | OBJECT | SBYTE | SHORT | STRING | UINT | ULONG | USHORT + ; + +expression_list + : expression (COMMA expression)* + ; + +object_or_collection_initializer + : object_initializer + | collection_initializer + ; + +object_initializer + : OPEN_BRACE (member_initializer_list COMMA?)? CLOSE_BRACE + ; + +member_initializer_list + : member_initializer (COMMA member_initializer)* + ; + +member_initializer + : (identifier | '[' expression ']') ASSIGNMENT initializer_value // C# 6 + ; + +initializer_value + : expression + | object_or_collection_initializer + ; + +collection_initializer + : OPEN_BRACE element_initializer (COMMA element_initializer)* COMMA? CLOSE_BRACE + ; + +element_initializer + : non_assignment_expression + | OPEN_BRACE expression_list CLOSE_BRACE + ; + +anonymous_object_initializer + : OPEN_BRACE (member_declarator_list COMMA?)? CLOSE_BRACE + ; + +member_declarator_list + : member_declarator ( COMMA member_declarator)* + ; + +member_declarator + : primary_expression + | identifier ASSIGNMENT expression + ; + +unbound_type_name + : identifier ( generic_dimension_specifier? | '::' identifier generic_dimension_specifier?) + (DOT identifier generic_dimension_specifier?)* + ; + +generic_dimension_specifier + : LT COMMA* GT + ; + +isType + : base_type (rank_specifier | STAR)* INTERR? + ; + +lambda_expression + : ASYNC? anonymous_function_signature right_arrow anonymous_function_body + ; + +anonymous_function_signature + : OPEN_PARENS CLOSE_PARENS + | OPEN_PARENS explicit_anonymous_function_parameter_list CLOSE_PARENS + | OPEN_PARENS implicit_anonymous_function_parameter_list CLOSE_PARENS + | identifier + ; + +explicit_anonymous_function_parameter_list + : explicit_anonymous_function_parameter ( COMMA explicit_anonymous_function_parameter)* + ; + +explicit_anonymous_function_parameter + : refout=(REF | OUT)? type identifier + ; + +implicit_anonymous_function_parameter_list + : identifier (COMMA identifier)* + ; + +anonymous_function_body + : expression + | block + ; + +query_expression + : from_clause query_body + ; + +from_clause + : FROM type? identifier IN expression + ; + +query_body + : query_body_clause* select_or_group_clause query_continuation? + ; + +query_body_clause + : from_clause + | let_clause + | where_clause + | combined_join_clause + | orderby_clause + ; + +let_clause + : LET identifier ASSIGNMENT expression + ; + +where_clause + : WHERE expression + ; + +combined_join_clause + : JOIN type? identifier IN expression ON expression EQUALS expression (INTO identifier)? + ; + +orderby_clause + : ORDERBY ordering (COMMA ordering)* + ; + +ordering + : expression dir=(ASCENDING | DESCENDING)? + ; + +select_or_group_clause + : SELECT expression + | GROUP expression BY expression + ; + +query_continuation + : INTO identifier query_body + ; + +//B.2.5 Statements +statement + : identifier COLON statement #labeledStatement + | (local_variable_declaration | local_constant_declaration) ';' #declarationStatement + | embedded_statement #embeddedStatement + ; + +embedded_statement + : block + | simple_embedded_statement + ; + +simple_embedded_statement + : ';' #emptyStatement + | expression ';' #expressionStatement + + // selection statements + | IF OPEN_PARENS expression CLOSE_PARENS if_body (ELSE if_body)? #ifStatement + | SWITCH OPEN_PARENS expression CLOSE_PARENS OPEN_BRACE switch_section* CLOSE_BRACE #switchStatement + + // iteration statements + | WHILE OPEN_PARENS expression CLOSE_PARENS embedded_statement #whileStatement + | DO embedded_statement WHILE OPEN_PARENS expression CLOSE_PARENS ';' #doStatement + | FOR OPEN_PARENS for_initializer? ';' expression? ';' for_iterator? CLOSE_PARENS embedded_statement #forStatement + | FOREACH OPEN_PARENS type identifier IN expression CLOSE_PARENS embedded_statement #foreschStatement + + // jump statements + | BREAK ';' #breakStatement + | CONTINUE ';' #continueStatement + | GOTO (identifier | CASE expression | DEFAULT) ';' #gotoStatement + | RETURN expression? ';' #returnStatement + | THROW expression? ';' #throwStatement + + | TRY block (catch_clauses finally_clause? | finally_clause) #tryStatement + | CHECKED block #checkedStatement + | UNCHECKED block #uncheckedStatement + | LOCK OPEN_PARENS expression CLOSE_PARENS embedded_statement #lockStatement + | USING OPEN_PARENS resource_acquisition CLOSE_PARENS embedded_statement #usingStatement + | YIELD (RETURN expression | BREAK) ';' #yieldStatement + + // unsafe statements + | UNSAFE block #unsafeStatement + | FIXED OPEN_PARENS pointer_type fixed_pointer_declarators CLOSE_PARENS embedded_statement #fixedStatement + ; + +block + : OPEN_BRACE statement_list? CLOSE_BRACE + ; + +local_variable_declaration + : type local_variable_declarator ( COMMA local_variable_declarator)* + ; + +local_variable_declarator + : identifier (ASSIGNMENT local_variable_initializer)? + ; + +local_variable_initializer + : expression + | array_initializer + | local_variable_initializer_unsafe + ; + +local_constant_declaration + : CONST type constant_declarators + ; + +if_body + : block + | simple_embedded_statement + ; + +switch_section + : switch_label+ statement_list + ; + +switch_label + : CASE expression COLON + | DEFAULT COLON + ; + +statement_list + : statement+ + ; + +for_initializer + : local_variable_declaration + | expression (COMMA expression)* + ; + +for_iterator + : expression (COMMA expression)* + ; + +catch_clauses + : specific_catch_clause (specific_catch_clause)* general_catch_clause? + | general_catch_clause + ; + +specific_catch_clause + : CATCH OPEN_PARENS class_type identifier? CLOSE_PARENS exception_filter? block + ; + +general_catch_clause + : CATCH exception_filter? block + ; + +exception_filter // C# 6 + : WHEN OPEN_PARENS expression CLOSE_PARENS + ; + +finally_clause + : FINALLY block + ; + +resource_acquisition + : local_variable_declaration + | expression + ; + +//B.2.6 Namespaces; +namespace_declaration + : NAMESPACE qi=qualified_identifier namespace_body ';'? + ; + +qualified_identifier + : identifier ( DOT identifier )* + ; + +namespace_body + : OPEN_BRACE extern_alias_directives? using_directives? namespace_member_declarations? CLOSE_BRACE + ; + +extern_alias_directives + : extern_alias_directive+ + ; + +extern_alias_directive + : EXTERN ALIAS identifier ';' + ; + +using_directives + : using_directive+ + ; + +using_directive + : USING identifier ASSIGNMENT namespace_or_type_name ';' #usingAliasDirective + | USING namespace_or_type_name ';' #usingNamespaceDirective + // C# 6: https://msdn.microsoft.com/en-us/library/ms228593.aspx + | USING STATIC namespace_or_type_name ';' #usingStaticDirective + ; + +namespace_member_declarations + : namespace_member_declaration+ + ; + +namespace_member_declaration + : namespace_declaration + | type_declaration + ; + +type_declaration + : attributes? all_member_modifiers? + (class_definition | struct_definition | interface_definition | enum_definition | delegate_definition) + ; + +qualified_alias_member + : identifier '::' identifier type_argument_list? + ; + +//B.2.7 Classes; +type_parameter_list + : LT type_parameter (COMMA type_parameter)* GT + ; + +type_parameter + : attributes? identifier + ; + +class_base + : COLON class_type (COMMA namespace_or_type_name)* + ; + +interface_type_list + : namespace_or_type_name (COMMA namespace_or_type_name)* + ; + +type_parameter_constraints_clauses + : type_parameter_constraints_clause+ + ; + +type_parameter_constraints_clause + : WHERE identifier COLON type_parameter_constraints + ; + +type_parameter_constraints + : constructor_constraint + | primary_constraint (COMMA secondary_constraints)? (COMMA constructor_constraint)? + ; + +primary_constraint + : class_type + | CLASS + | STRUCT + ; + +// namespace_or_type_name includes identifier +secondary_constraints + : namespace_or_type_name (COMMA namespace_or_type_name)* + ; + +constructor_constraint + : NEW OPEN_PARENS CLOSE_PARENS + ; + +class_body + : OPEN_BRACE class_member_declarations? CLOSE_BRACE + ; + +class_member_declarations + : class_member_declaration+ + ; + +class_member_declaration + : attributes? all_member_modifiers? (common_member_declaration | destructor_definition) + ; + +all_member_modifiers + : all_member_modifier+ + ; + +all_member_modifier + : NEW + | PUBLIC + | PROTECTED + | INTERNAL + | PRIVATE + | READONLY + | VOLATILE + | VIRTUAL + | SEALED + | OVERRIDE + | ABSTRACT + | STATIC + | UNSAFE + | EXTERN + | PARTIAL + | ASYNC // C# 5 + ; + +// represents the intersection of struct_member_declaration and class_member_declaration +common_member_declaration + : constant_declaration + | typed_member_declaration + | event_declaration + | conversion_operator_declarator (body | right_arrow expression ';') // C# 6 + | constructor_declaration + | VOID method_declaration + | class_definition + | struct_definition + | interface_definition + | enum_definition + | delegate_definition + ; + +typed_member_declaration + : type + ( namespace_or_type_name DOT indexer_declaration + | method_declaration + | property_declaration + | indexer_declaration + | operator_declaration + | field_declaration + ) + ; + +constant_declarators + : constant_declarator (COMMA constant_declarator)* + ; + +constant_declarator + : identifier ASSIGNMENT expression + ; + +variable_declarators + : variable_declarator (COMMA variable_declarator)* + ; + +variable_declarator + : identifier (ASSIGNMENT variable_initializer)? + ; + +variable_initializer + : expression + | array_initializer + ; + +return_type + : type + | VOID + ; + +member_name + : namespace_or_type_name + ; + +method_body + : block + | ';' + ; + +formal_parameter_list + : parameter_array + | fixed_parameters (COMMA parameter_array)? + ; + +fixed_parameters + : fixed_parameter ( COMMA fixed_parameter )* + ; + +fixed_parameter + : attributes? parameter_modifier? arg_declaration + | ARGLIST + ; + +parameter_modifier + : REF + | OUT + | THIS + ; + +parameter_array + : attributes? PARAMS array_type identifier + ; + +accessor_declarations + : attrs=attributes? mods=accessor_modifier? + (GET accessor_body set_accessor_declaration? | SET accessor_body get_accessor_declaration?) + ; + +get_accessor_declaration + : attributes? accessor_modifier? GET accessor_body + ; + +set_accessor_declaration + : attributes? accessor_modifier? SET accessor_body + ; + +accessor_modifier + : PROTECTED + | INTERNAL + | PRIVATE + | PROTECTED INTERNAL + | INTERNAL PROTECTED + ; + +accessor_body + : block + | ';' + ; + +event_accessor_declarations + : attributes? (ADD block remove_accessor_declaration | REMOVE block add_accessor_declaration) + ; + +add_accessor_declaration + : attributes? ADD block + ; + +remove_accessor_declaration + : attributes? REMOVE block + ; + +overloadable_operator + : '+' + | '-' + | BANG + | '~' + | '++' + | '--' + | TRUE + | FALSE + | STAR + | '/' + | '%' + | '&' + | '|' + | '^' + | '<<' + | right_shift + | OP_EQ + | OP_NE + | GT + | LT + | '>=' + | '<=' + ; + +conversion_operator_declarator + : (IMPLICIT | EXPLICIT) OPERATOR type OPEN_PARENS arg_declaration CLOSE_PARENS + ; + +constructor_initializer + : COLON (BASE | THIS) OPEN_PARENS argument_list? CLOSE_PARENS + ; + +body + : block + | ';' + ; + +//B.2.8 Structs +struct_interfaces + : COLON interface_type_list + ; + +struct_body + : OPEN_BRACE struct_member_declaration* CLOSE_BRACE + ; + +struct_member_declaration + : attributes? all_member_modifiers? + (common_member_declaration | FIXED type fixed_size_buffer_declarator+ ';') + ; + +//B.2.9 Arrays +array_type + : base_type ((STAR | INTERR)* rank_specifier)+ + ; + +rank_specifier + : '[' COMMA* ']' + ; + +array_initializer + : OPEN_BRACE (variable_initializer (COMMA variable_initializer)* COMMA?)? CLOSE_BRACE + ; + +//B.2.10 Interfaces +variant_type_parameter_list + : LT variant_type_parameter (COMMA variant_type_parameter)* GT + ; + +variant_type_parameter + : attributes? variance_annotation? identifier + ; + +variance_annotation + : IN | OUT + ; + +interface_base + : COLON interface_type_list + ; + +interface_body + : OPEN_BRACE interface_member_declaration* CLOSE_BRACE + ; + +interface_member_declaration + : attributes? NEW? + (UNSAFE? type + ( identifier type_parameter_list? OPEN_PARENS formal_parameter_list? CLOSE_PARENS type_parameter_constraints_clauses? ';' + | identifier OPEN_BRACE interface_accessors CLOSE_BRACE + | THIS '[' formal_parameter_list ']' OPEN_BRACE interface_accessors CLOSE_BRACE) + | UNSAFE? VOID identifier type_parameter_list? OPEN_PARENS formal_parameter_list? CLOSE_PARENS type_parameter_constraints_clauses? ';' + | EVENT type identifier ';') + ; + +interface_accessors + : attributes? (GET ';' (attributes? SET ';')? | SET ';' (attributes? GET ';')?) + ; + +//B.2.11 Enums +enum_base + : COLON type + ; + +enum_body + : OPEN_BRACE (enum_member_declaration (COMMA enum_member_declaration)* COMMA?)? CLOSE_BRACE + ; + +enum_member_declaration + : attributes? identifier (ASSIGNMENT expression)? + ; + +//B.2.12 Delegates + +//B.2.13 Attributes +global_attribute_section + : '[' global_attribute_target COLON attribute_list COMMA? ']' + ; + +global_attribute_target + : keyword + | identifier + ; + +attributes + : attribute_section+ + ; + +attribute_section + : '[' (attribute_target COLON)? attribute_list COMMA? ']' + ; + +attribute_target + : keyword + | identifier + ; + +attribute_list + : attribute (COMMA attribute)* + ; + +attribute + : namespace_or_type_name (OPEN_PARENS (attribute_argument (COMMA attribute_argument)*)? CLOSE_PARENS)? + ; + +attribute_argument + : (identifier COLON)? expression + ; + +//B.3 Grammar extensions for unsafe code +pointer_type + : (simple_type | class_type) (rank_specifier | INTERR)* STAR + | VOID STAR + ; + +fixed_pointer_declarators + : fixed_pointer_declarator (COMMA fixed_pointer_declarator)* + ; + +fixed_pointer_declarator + : identifier ASSIGNMENT fixed_pointer_initializer + ; + +fixed_pointer_initializer + : '&'? expression + | local_variable_initializer_unsafe + ; + +fixed_size_buffer_declarator + : identifier '[' expression ']' + ; + +local_variable_initializer_unsafe + : STACKALLOC type '[' expression ']' + ; + +right_arrow + : first=ASSIGNMENT second=GT {$first.index + 1 == $second.index}? // Nothing between the tokens? + ; + +right_shift + : first=GT second=GT {$first.index + 1 == $second.index}? // Nothing between the tokens? + ; + +right_shift_assignment + : first=GT second='>=' {$first.index + 1 == $second.index}? // Nothing between the tokens? + ; + +literal + : boolean_literal + | string_literal + | INTEGER_LITERAL + | HEX_INTEGER_LITERAL + | REAL_LITERAL + | CHARACTER_LITERAL + | NULL + ; + +boolean_literal + : TRUE + | FALSE + ; + +string_literal + : interpolated_regular_string + | interpolated_verbatium_string + | REGULAR_STRING + | VERBATIUM_STRING + ; + +interpolated_regular_string + : INTERPOLATED_REGULAR_STRING_START interpolated_regular_string_part* DOUBLE_QUOTE_INSIDE + ; + + +interpolated_verbatium_string + : INTERPOLATED_VERBATIUM_STRING_START interpolated_verbatium_string_part* DOUBLE_QUOTE_INSIDE + ; + +interpolated_regular_string_part + : interpolated_string_expression + | DOUBLE_CURLY_INSIDE + | REGULAR_CHAR_INSIDE + | REGULAR_STRING_INSIDE + ; + +interpolated_verbatium_string_part + : interpolated_string_expression + | DOUBLE_CURLY_INSIDE + | VERBATIUM_DOUBLE_QUOTE_INSIDE + | VERBATIUM_INSIDE_STRING + ; + +interpolated_string_expression + : expression (COMMA expression)* (COLON FORMAT_STRING+)? + ; + +//B.1.7 Keywords +keyword + : ABSTRACT + | AS + | BASE + | BOOL + | BREAK + | BYTE + | CASE + | CATCH + | CHAR + | CHECKED + | CLASS + | CONST + | CONTINUE + | DECIMAL + | DEFAULT + | DELEGATE + | DO + | DOUBLE + | ELSE + | ENUM + | EVENT + | EXPLICIT + | EXTERN + | FALSE + | FINALLY + | FIXED + | FLOAT + | FOR + | FOREACH + | GOTO + | IF + | IMPLICIT + | IN + | INT + | INTERFACE + | INTERNAL + | IS + | LOCK + | LONG + | NAMESPACE + | NEW + | NULL + | OBJECT + | OPERATOR + | OUT + | OVERRIDE + | PARAMS + | PRIVATE + | PROTECTED + | PUBLIC + | READONLY + | REF + | RETURN + | SBYTE + | SEALED + | SHORT + | SIZEOF + | STACKALLOC + | STATIC + | STRING + | STRUCT + | SWITCH + | THIS + | THROW + | TRUE + | TRY + | TYPEOF + | UINT + | ULONG + | UNCHECKED + | UNSAFE + | USHORT + | USING + | VIRTUAL + | VOID + | VOLATILE + | WHILE + ; + +// -------------------- extra rules for modularization -------------------------------- + +class_definition + : CLASS identifier type_parameter_list? class_base? type_parameter_constraints_clauses? + class_body ';'? + ; + +struct_definition + : STRUCT identifier type_parameter_list? struct_interfaces? type_parameter_constraints_clauses? + struct_body ';'? + ; + +interface_definition + : INTERFACE identifier variant_type_parameter_list? interface_base? + type_parameter_constraints_clauses? interface_body ';'? + ; + +enum_definition + : ENUM identifier enum_base? enum_body ';'? + ; + +delegate_definition + : DELEGATE return_type identifier variant_type_parameter_list? + OPEN_PARENS formal_parameter_list? CLOSE_PARENS type_parameter_constraints_clauses? ';' + ; + +event_declaration + : EVENT type (variable_declarators ';' | member_name OPEN_BRACE event_accessor_declarations CLOSE_BRACE) + ; + +field_declaration + : variable_declarators ';' + ; + +property_declaration // Property initializer & lambda in properties C# 6 + : member_name (OPEN_BRACE accessor_declarations CLOSE_BRACE (ASSIGNMENT variable_initializer ';')? | right_arrow expression ';') + ; + +constant_declaration + : CONST type constant_declarators ';' + ; + +indexer_declaration // lamdas from C# 6 + : THIS '[' formal_parameter_list ']' (OPEN_BRACE accessor_declarations CLOSE_BRACE | right_arrow expression ';') + ; + +destructor_definition + : '~' identifier OPEN_PARENS CLOSE_PARENS body + ; + +constructor_declaration + : identifier OPEN_PARENS formal_parameter_list? CLOSE_PARENS constructor_initializer? body + ; + +method_declaration // lamdas from C# 6 + : method_member_name type_parameter_list? OPEN_PARENS formal_parameter_list? CLOSE_PARENS + type_parameter_constraints_clauses? (method_body | right_arrow expression ';') + ; + +method_member_name + : (identifier | identifier '::' identifier) (type_argument_list? DOT identifier)* + ; + +operator_declaration // lamdas form C# 6 + : OPERATOR overloadable_operator OPEN_PARENS arg_declaration + (COMMA arg_declaration)? CLOSE_PARENS (body | right_arrow expression ';') + ; + +arg_declaration + : type identifier (ASSIGNMENT expression)? + ; + +method_invocation + : OPEN_PARENS argument_list? CLOSE_PARENS + ; + +object_creation_expression + : OPEN_PARENS argument_list? CLOSE_PARENS object_or_collection_initializer? + ; + +identifier + : IDENTIFIER + | ADD + | ALIAS + | ARGLIST + | ASCENDING + | ASYNC + | AWAIT + | BY + | DESCENDING + | DYNAMIC + | EQUALS + | FROM + | GET + | GROUP + | INTO + | JOIN + | LET + | NAMEOF + | ON + | ORDERBY + | PARTIAL + | REMOVE + | SELECT + | SET + | WHEN + | WHERE + | YIELD + ; \ No newline at end of file diff --git a/grammars/CSharpPreprocessorParser.g4 b/grammars/CSharpPreprocessorParser.g4 new file mode 100644 index 0000000..4e4f41a --- /dev/null +++ b/grammars/CSharpPreprocessorParser.g4 @@ -0,0 +1,66 @@ +// Eclipse Public License - v 1.0, http://www.eclipse.org/legal/epl-v10.html +// Copyright (c) 2013, Christian Wulf (chwchw@gmx.de) +// Copyright (c) 2016, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. + +parser grammar CSharpPreprocessorParser; + +options { tokenVocab=CSharpLexer; } + + + +preprocessor_directive returns [bool value] + : DEFINE CONDITIONAL_SYMBOL directive_new_line_or_sharp{ ConditionalSymbols.Add($CONDITIONAL_SYMBOL.text); + $value = conditions.All(c => c); } #preprocessorDeclaration + + | UNDEF CONDITIONAL_SYMBOL directive_new_line_or_sharp{ ConditionalSymbols.Remove($CONDITIONAL_SYMBOL.text); + $value = conditions.All(c => c); } #preprocessorDeclaration + + | IF expr=preprocessor_expression directive_new_line_or_sharp + { $value = $expr.value == "true" && conditions.All(c => c); conditions.Push($expr.value == "true"); } + #preprocessorConditional + + | ELIF expr=preprocessor_expression directive_new_line_or_sharp + { if (!conditions.Peek()) { conditions.Pop(); $value = $expr.value == "true" && conditions.All(c => c); + conditions.Push($expr.value == "true"); } else $value = false; } + #preprocessorConditional + + | ELSE directive_new_line_or_sharp + { if (!conditions.Peek()) { conditions.Pop(); $value = true && conditions.All(c => c); conditions.Push(true); } + else $value = false; } #preprocessorConditional + + | ENDIF directive_new_line_or_sharp { conditions.Pop(); $value = conditions.Peek(); } + #preprocessorConditional + | LINE (DIGITS STRING? | DEFAULT | DIRECTIVE_HIDDEN) directive_new_line_or_sharp { $value = conditions.All(c => c); } + #preprocessorLine + + | ERROR TEXT directive_new_line_or_sharp { $value = conditions.All(c => c); } #preprocessorDiagnostic + + | WARNING TEXT directive_new_line_or_sharp { $value = conditions.All(c => c); } #preprocessorDiagnostic + + | REGION TEXT? directive_new_line_or_sharp { $value = conditions.All(c => c); } #preprocessorRegion + + | ENDREGION TEXT? directive_new_line_or_sharp { $value = conditions.All(c => c); } #preprocessorRegion + + | PRAGMA TEXT directive_new_line_or_sharp { $value = conditions.All(c => c); } #preprocessorPragma + ; + +directive_new_line_or_sharp + : DIRECTIVE_NEW_LINE + | EOF + ; + +preprocessor_expression returns [string value] + : TRUE { $value = "true"; } + | FALSE { $value = "false"; } + | CONDITIONAL_SYMBOL { $value = ConditionalSymbols.Contains($CONDITIONAL_SYMBOL.text) ? "true" : "false"; } + | OPEN_PARENS expr=preprocessor_expression CLOSE_PARENS { $value = $expr.value; } + | BANG expr=preprocessor_expression { $value = $expr.value == "true" ? "false" : "true"; } + | expr1=preprocessor_expression OP_EQ expr2=preprocessor_expression + { $value = ($expr1.value == $expr2.value ? "true" : "false"); } + | expr1=preprocessor_expression OP_NE expr2=preprocessor_expression + { $value = ($expr1.value != $expr2.value ? "true" : "false"); } + | expr1=preprocessor_expression OP_AND expr2=preprocessor_expression + { $value = ($expr1.value == "true" && $expr2.value == "true" ? "true" : "false"); } + | expr1=preprocessor_expression OP_OR expr2=preprocessor_expression + { $value = ($expr1.value == "true" || $expr2.value == "true" ? "true" : "false"); } + ; \ No newline at end of file diff --git a/l4j/archtool_icon.ico b/l4j/archtool_icon.ico new file mode 100644 index 0000000..14cb6d8 Binary files /dev/null and b/l4j/archtool_icon.ico differ diff --git a/l4j/build.xml b/l4j/build.xml new file mode 100644 index 0000000..ca32acb --- /dev/null +++ b/l4j/build.xml @@ -0,0 +1,40 @@ + + + false + gui + C:\Users\Zumbi\Desktop\ArchTool.jar + C:\Users\Zumbi\Desktop\ArchTool.exe + ArchTool + + . + normal + http://java.com/download + + false + false + + C:\Users\Zumbi\Desktop\archtool_icon.ico + + + false + false + 1.7.0 + + preferJre + 64/32 + + + 1.0.0.0 + 1.0 + C# relationship visualization tool + Copyright (C) 2017, Lucas Montenegro Carvalhaes + 1.0.1.0 + 1.0 + ArchTool + Carvalab + Archetectural Visualization Tool + LOLCATS.exe + + ENGLISH_US + + \ No newline at end of file diff --git a/l4j/launch4j.log b/l4j/launch4j.log new file mode 100644 index 0000000..52c0ebf --- /dev/null +++ b/l4j/launch4j.log @@ -0,0 +1,27 @@ + + +Version: 3.9 +CmdLine: C:\Users\Zumbi\Desktop\ArchTool.exe --l4j-debug +WOW64: yes +Working dir: C:\Users\Zumbi\Desktop\. +64-bit search: SOFTWARE\JavaSoft\Java Runtime Environment... +Check: SOFTWARE\JavaSoft\Java Runtime Environment\1.8 +Check launcher: C:\Program Files\Java\jre1.8.0_111\bin\javaw.exe (OK) +Match: 1.8 +Check: SOFTWARE\JavaSoft\Java Runtime Environment\1.8.0_111 +Check launcher: C:\Program Files\Java\jre1.8.0_111\bin\javaw.exe (OK) +Match: 1.8.0_111 +Check: SOFTWARE\JavaSoft\Java Runtime Environment\1.8.0_65 +Ignore: 1.8.0_065 +64-bit search: SOFTWARE\JavaSoft\Java Development Kit... +Check: SOFTWARE\JavaSoft\Java Development Kit\1.8 +Ignore: 1.8 +Check: SOFTWARE\JavaSoft\Java Development Kit\1.8.0_51 +Ignore: 1.8.0_051 +Check: SOFTWARE\JavaSoft\Java Development Kit\1.8.0_65 +Ignore: 1.8.0_065 +Runtime used: 1.8.0_111 (64-bit) +Launcher: C:\Program Files\Java\jre1.8.0_111\bin\javaw.exe +Launcher args: -jar "C:\Users\Zumbi\Desktop\ArchTool.exe" +Args length: 42/32768 chars +Exit code: 0 diff --git a/lib/antlr-4.6-complete.jar b/lib/antlr-4.6-complete.jar new file mode 100644 index 0000000..b488881 Binary files /dev/null and b/lib/antlr-4.6-complete.jar differ diff --git a/lib/graphstream/gs-algo-1.3-javadoc.jar b/lib/graphstream/gs-algo-1.3-javadoc.jar new file mode 100644 index 0000000..db661bb Binary files /dev/null and b/lib/graphstream/gs-algo-1.3-javadoc.jar differ diff --git a/lib/graphstream/gs-algo-1.3-sources.jar b/lib/graphstream/gs-algo-1.3-sources.jar new file mode 100644 index 0000000..c8910bd Binary files /dev/null and b/lib/graphstream/gs-algo-1.3-sources.jar differ diff --git a/lib/graphstream/gs-algo-1.3.jar b/lib/graphstream/gs-algo-1.3.jar new file mode 100644 index 0000000..1e720ee Binary files /dev/null and b/lib/graphstream/gs-algo-1.3.jar differ diff --git a/lib/graphstream/gs-core-1.3-javadoc.jar b/lib/graphstream/gs-core-1.3-javadoc.jar new file mode 100644 index 0000000..131f1e8 Binary files /dev/null and b/lib/graphstream/gs-core-1.3-javadoc.jar differ diff --git a/lib/graphstream/gs-core-1.3-sources.jar b/lib/graphstream/gs-core-1.3-sources.jar new file mode 100644 index 0000000..fe3d447 Binary files /dev/null and b/lib/graphstream/gs-core-1.3-sources.jar differ diff --git a/lib/graphstream/gs-core-1.3.jar b/lib/graphstream/gs-core-1.3.jar new file mode 100644 index 0000000..c8f50fd Binary files /dev/null and b/lib/graphstream/gs-core-1.3.jar differ diff --git a/lib/graphstream/gs-ui-1.3-javadoc.jar b/lib/graphstream/gs-ui-1.3-javadoc.jar new file mode 100644 index 0000000..f1d03f0 Binary files /dev/null and b/lib/graphstream/gs-ui-1.3-javadoc.jar differ diff --git a/lib/graphstream/gs-ui-1.3-sources.jar b/lib/graphstream/gs-ui-1.3-sources.jar new file mode 100644 index 0000000..3ea95c3 Binary files /dev/null and b/lib/graphstream/gs-ui-1.3-sources.jar differ diff --git a/lib/graphstream/gs-ui-1.3.jar b/lib/graphstream/gs-ui-1.3.jar new file mode 100644 index 0000000..4661b87 Binary files /dev/null and b/lib/graphstream/gs-ui-1.3.jar differ diff --git a/src/assets/fonts/Roboto-Black.ttf b/src/assets/fonts/Roboto-Black.ttf new file mode 100644 index 0000000..86ec2b2 Binary files /dev/null and b/src/assets/fonts/Roboto-Black.ttf differ diff --git a/src/assets/fonts/Roboto-Bold.ttf b/src/assets/fonts/Roboto-Bold.ttf new file mode 100644 index 0000000..91ec212 Binary files /dev/null and b/src/assets/fonts/Roboto-Bold.ttf differ diff --git a/src/assets/fonts/Roboto-BoldCondensed.ttf b/src/assets/fonts/Roboto-BoldCondensed.ttf new file mode 100644 index 0000000..d7ea883 Binary files /dev/null and b/src/assets/fonts/Roboto-BoldCondensed.ttf differ diff --git a/src/assets/fonts/Roboto-Condensed.ttf b/src/assets/fonts/Roboto-Condensed.ttf new file mode 100644 index 0000000..6e7575a Binary files /dev/null and b/src/assets/fonts/Roboto-Condensed.ttf differ diff --git a/src/assets/fonts/Roboto-Italic.ttf b/src/assets/fonts/Roboto-Italic.ttf new file mode 100644 index 0000000..9f49ffd Binary files /dev/null and b/src/assets/fonts/Roboto-Italic.ttf differ diff --git a/src/assets/fonts/Roboto-Light.ttf b/src/assets/fonts/Roboto-Light.ttf new file mode 100644 index 0000000..d43e943 Binary files /dev/null and b/src/assets/fonts/Roboto-Light.ttf differ diff --git a/src/assets/fonts/Roboto-Medium.ttf b/src/assets/fonts/Roboto-Medium.ttf new file mode 100644 index 0000000..8798341 Binary files /dev/null and b/src/assets/fonts/Roboto-Medium.ttf differ diff --git a/src/assets/fonts/Roboto-Regular.ttf b/src/assets/fonts/Roboto-Regular.ttf new file mode 100644 index 0000000..7d9a6c4 Binary files /dev/null and b/src/assets/fonts/Roboto-Regular.ttf differ diff --git a/src/assets/fonts/Roboto-Thin.ttf b/src/assets/fonts/Roboto-Thin.ttf new file mode 100644 index 0000000..861d63a Binary files /dev/null and b/src/assets/fonts/Roboto-Thin.ttf differ diff --git a/src/assets/images/archtool_icon.png b/src/assets/images/archtool_icon.png new file mode 100644 index 0000000..90f8dd1 Binary files /dev/null and b/src/assets/images/archtool_icon.png differ diff --git a/src/com/carvalab/archtool/Frame.java b/src/com/carvalab/archtool/Frame.java new file mode 100644 index 0000000..b56d5cc --- /dev/null +++ b/src/com/carvalab/archtool/Frame.java @@ -0,0 +1,193 @@ +package com.carvalab.archtool; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Font; +import java.awt.FontFormatException; +import java.awt.datatransfer.DataFlavor; +import java.awt.dnd.DnDConstants; +import java.awt.dnd.DropTarget; +import java.awt.dnd.DropTargetDropEvent; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; +import java.util.List; + +import javax.imageio.ImageIO; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.EmptyBorder; + +import org.graphstream.graph.Graph; +import org.graphstream.graph.Node; +import org.graphstream.graph.implementations.MultiGraph; +import org.graphstream.ui.view.View; +import org.graphstream.ui.view.Viewer; + +import com.carvalab.archtool.csharp.CSharpGraph; + +public class Frame extends JFrame { + private static final long serialVersionUID = -5113165141038015617L; + + private JLabel lblProject; + private Font fntRoboto = font("Roboto-BoldCondensed", 18); + + private Graph mainGraph; + private Viewer graphViewer; + + private String[] primitiveTypes = + { "float", "int", "string", "byte", "float[]", "byte[]", "char", "uint", "uint[]", "string[]", "short", + "long", "double", "single", "bool", "decimal", "object", "var" }; + + //@formatter:off + protected static String styleSheet = + "node {" + + " size: 16px;"+ + " fill-mode: gradient-diagonal2;"+ + " fill-color: #6489c4, #304463;" + + " stroke-mode: none;"+ + " stroke-width: 2px;"+ + " stroke-color: #121c2d;"+ + " text-background-mode: rounded-box;"+ + " text-padding: 3px, 2px;"+ + " text-alignment: under;"+ + " text-background-color: #a6ddd0;"+ + " text-font: arial;"+ + "}" + + "node.primitive {" + + " size: 7px;"+ + " stroke-mode: none;"+ + " fill-color: #6999e5;" + + "}"+ + "edge {" + + " shape: blob;"+ + " fill-color: #121c2d;" + + "}"+ + "graph { fill-color: #71767f; }" + ; + //@formatter:on + + public Frame() { + System.setProperty("org.graphstream.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer"); + // Create main graph + mainGraph = new MultiGraph("Main graph"); + mainGraph.addAttribute("ui.stylesheet", styleSheet); + + setSize(800, 600); + setTitle("ArchTool"); + setLocationRelativeTo(null); + setDefaultCloseOperation(EXIT_ON_CLOSE); + ImageIcon icon = null; + try { + icon = new ImageIcon(ImageIO.read(imageStream("archtool_icon.png"))); + } catch (IOException e) { + e.printStackTrace(); + } + if (icon != null) { + setIconImage(icon.getImage()); + } + + setLayout(new BorderLayout()); + buildFrame(); + } + + private void buildFrame() { + getContentPane().setBackground(new Color(56, 56, 56)); + + // Create top label + lblProject = new JLabel("Project: none"); + lblProject.setToolTipText("Drag some C# files or a C# project folder to the panel bellow."); + lblProject.setFont(fntRoboto); + lblProject.setBorder(new EmptyBorder(10, 10, 10, 10)); + lblProject.setForeground(new Color(198, 203, 211)); + add(lblProject, BorderLayout.NORTH); + + // Viewer + graphViewer = new Viewer(mainGraph, Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD); + View view = graphViewer.addDefaultView(false); // false indicates "no JFrame". + add((JPanel) view, BorderLayout.CENTER); + graphViewer.enableXYZfeedback(true); + + // Add the graph builder to the viewer + ((JPanel) view).setDropTarget(new GraphLoaderDropTarget()); + } + + private class GraphLoaderDropTarget extends DropTarget { + private static final long serialVersionUID = -7268334714021568236L; + + @Override + public synchronized void drop(DropTargetDropEvent evt) { + try { + evt.acceptDrop(DnDConstants.ACTION_COPY); + @SuppressWarnings("unchecked") + List droppedFiles = (List) evt.getTransferable() + .getTransferData(DataFlavor.javaFileListFlavor); + + graphViewer.disableAutoLayout(); + buildGraph(droppedFiles); + graphViewer.enableAutoLayout(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + + private void buildGraph(List files) { + lblProject.setText("Building graph..."); + new Thread(() -> { + mainGraph.clear(); + mainGraph.addAttribute("ui.stylesheet", styleSheet); + mainGraph.addAttribute("ui.quality"); + mainGraph.addAttribute("ui.antialias"); + + if (files.size() >= 1) { + String projName = ""; + for (File f : files) { + projName += f.getName().replaceAll(".cs", "") + " "; + } + lblProject.setText("Project: " + projName); + } + + if (files.size() == 1) { + CSharpGraph.parseFileTree(files.get(0).getAbsolutePath(), mainGraph); + } else if (files.size() > 1) { + CSharpGraph.parseFiles((File[]) files.toArray(), mainGraph); + } + // System.out.println("Done"); + updateGraph(); + }).start(); + } + + private void updateGraph() { + for (Node node : mainGraph) { + if (Arrays.asList(primitiveTypes).contains(node.getId())) { + // System.out.println(node.getId()); + node.setAttribute("ui.class", "primitive"); + } + } + } + + public static InputStream imageStream(String imageFile) { + return System.class.getResourceAsStream("/assets/images/" + imageFile); + } + + public static InputStream fontStream(String fontFile) { + return System.class.getResourceAsStream("/assets/fonts/" + fontFile); + } + + public static Font font(String name, float size) { + Font font; + try { + font = Font.createFont(Font.TRUETYPE_FONT, fontStream(name + ".ttf")); + + return font.deriveFont(size); + } catch (FontFormatException | IOException e) { + e.printStackTrace(); + } + + return null; + } +} diff --git a/src/com/carvalab/archtool/Main.java b/src/com/carvalab/archtool/Main.java new file mode 100644 index 0000000..a65220b --- /dev/null +++ b/src/com/carvalab/archtool/Main.java @@ -0,0 +1,78 @@ +package com.carvalab.archtool; + +import java.awt.EventQueue; +import java.util.Iterator; + +import org.graphstream.graph.Node; + +public class Main { + + //@formatter:off + protected static String styleSheet = + "node {" + + " fill-color: black;" + + "}" + + "node.marked {" + + " fill-color: blue;" + + "}"; + //@formatter:on + + /* + * + * Graph graph = new MultiGraph("Bazinga!"); + * // Populate the graph. + * Viewer viewer = graph.display(); + * // Let the layout work ... + * viewer.disableAutoLayout(); + * // Do some work ... + * viewer.enableAutoLayout(); + * + * node.setAttribute("x", 1); + * node.setAttribute("y", 3); + * + */ + + public static void main(String args[]) { + EventQueue.invokeLater(new Runnable() { + @Override + public void run() { + try { + Frame frame = new Frame(); + frame.setVisible(true); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + + /* + * Graph graph = CSharpGraph + * .parseFileTree("G:\\UnityProjects\\Sawce\\TrashMan\\Assets\\Scripts\\Player"); + * + * if (graph != null) { + * graph.addAttribute("ui.quality"); + * graph.addAttribute("ui.antialias"); + * graph.display(); + * } else { + * System.err.println("Failed to generate graph!"); + * } + */ + } + + public static void explore(Node source) { + Iterator k = source.getBreadthFirstIterator(); + + while (k.hasNext()) { + Node next = k.next(); + next.setAttribute("ui.class", "marked"); + sleep(); + } + } + + protected static void sleep() { + try { + Thread.sleep(1000); + } catch (Exception e) {} + } + +} diff --git a/src/com/carvalab/archtool/csharp/AntlrUtil.java b/src/com/carvalab/archtool/csharp/AntlrUtil.java new file mode 100644 index 0000000..d4c4ec5 --- /dev/null +++ b/src/com/carvalab/archtool/csharp/AntlrUtil.java @@ -0,0 +1,37 @@ +package com.carvalab.archtool.csharp; + +import java.lang.reflect.InvocationTargetException; + +import org.antlr.v4.runtime.ANTLRInputStream; +import org.antlr.v4.runtime.BaseErrorListener; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.Lexer; + +public class AntlrUtil { + + public static CommonTokenStream getTokenStream(String code, Class lexClass) + throws InstantiationException, IllegalAccessException, IllegalArgumentException, + InvocationTargetException, NoSuchMethodException, SecurityException { + //The antlr reader + ANTLRInputStream inputStream = new ANTLRInputStream(code); + // Create the lexer + Lexer lex = lexClass.getConstructor(CharStream.class).newInstance(inputStream); + // Create the token stream + return new CommonTokenStream(lex); + } + + public static CommonTokenStream getTokenStream(String code, Class lexClass, + BaseErrorListener lexerErrorReport) throws InstantiationException, IllegalAccessException, + IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { + // The antlr reader + ANTLRInputStream inputStream = new ANTLRInputStream(code); + // Create the lexer + Lexer lex = lexClass.getConstructor(CharStream.class).newInstance(inputStream); + // Install the error report + lex.addErrorListener(lexerErrorReport); + // Create the token stream + return new CommonTokenStream(lex); + } + +} diff --git a/src/com/carvalab/archtool/csharp/CSharpGraph.java b/src/com/carvalab/archtool/csharp/CSharpGraph.java new file mode 100644 index 0000000..7a84145 --- /dev/null +++ b/src/com/carvalab/archtool/csharp/CSharpGraph.java @@ -0,0 +1,131 @@ +package com.carvalab.archtool.csharp; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; + +import org.graphstream.graph.Graph; +import org.graphstream.graph.Node; +import org.graphstream.graph.implementations.SingleGraph; + +import com.carvalab.archtool.csharp.CSharpVisitorParser.CSClassRelationships; +import com.carvalab.archtool.util.FormatFilterFileVisitor; + +public class CSharpGraph { + + private static String filterLines(String original, String removeWith) { + String finalString = ""; + + for (String line : original.split("\n")) { + if (!line.trim().startsWith("#")) { + finalString += line + "\n"; + } + } + + return finalString; + } + + public static Graph parseFiles(File[] files) { + return parseFiles(files, new SingleGraph("Class graph")); + } + + public static Graph parseFiles(File[] files, Graph graph) { + // Prepare a list of relationships + ArrayList relationships = new ArrayList<>(); + + // Create a parser to get class relationships + CSharpVisitorParser parser = new CSharpVisitorParser(); + for (File f : files) { + getRelationships(f, parser, relationships); + } + + if (!relationships.isEmpty()) { + graph.setStrict(false); + graph.setAutoCreate(true); + + for (CSClassRelationships relationship : relationships) { + if (relationship != null) { + for (String toClass : relationship.relations) { + graph.addEdge(relationship.className + toClass, relationship.className, toClass); + } + } + } + + for (Node node : graph) { + node.addAttribute("ui.label", node.getId()); + } + } + + return graph; + } + + public static Graph parseFileTree(String origin) { + return parseFileTree(origin, new SingleGraph("Class graph")); + } + + public static Graph parseFileTree(String origin, Graph graph) { + // Prepare a list of relationships + ArrayList relationships = new ArrayList<>(); + + // Get the path to the project + Path path = Paths.get(origin); + // Create a parser to get class relationships + CSharpVisitorParser parser = new CSharpVisitorParser(); + // Walk the file tree of the directory parsing each file that has the .cs extension + FormatFilterFileVisitor csharpParserVisitor = new FormatFilterFileVisitor(".cs", f -> { + getRelationships(f, parser, relationships); + }); + + // Walk the file tree + try { + Files.walkFileTree(path, csharpParserVisitor); + } catch (IOException e) { + e.printStackTrace(); + } + + if (!relationships.isEmpty()) { + graph.setStrict(false); + graph.setAutoCreate(true); + + for (CSClassRelationships relationship : relationships) { + if (relationship != null) { + for (String toClass : relationship.relations) { + graph.addEdge(relationship.className + toClass, relationship.className, toClass); + } + } + } + + for (Node node : graph) { + node.addAttribute("ui.label", node.getId()); + } + } + + return graph; + } + + private static void getRelationships(File f, CSharpVisitorParser parser, + ArrayList relationships) { + String code = null; + try { + code = new String(Files.readAllBytes(f.toPath()), "UTF-8"); + } catch (IOException e) { + e.printStackTrace(); + } + + // Remove preprocessor lines + code = filterLines(code.substring(1), "#"); + // System.out.println("Code: " + code.substring(0, 150)); + + // If we have code, parse it + if (code != null && code.length() > 0 && code.contains("class")) { + CSClassRelationships relationship = parser.parseClass(code); + // System.out.println(relationship); + if (relationship != null) { + relationships.add(relationship); + } + } + } +} diff --git a/src/com/carvalab/archtool/csharp/CSharpVisitorParser.java b/src/com/carvalab/archtool/csharp/CSharpVisitorParser.java new file mode 100644 index 0000000..b13ed5d --- /dev/null +++ b/src/com/carvalab/archtool/csharp/CSharpVisitorParser.java @@ -0,0 +1,84 @@ +package com.carvalab.archtool.csharp; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; + +import org.antlr.v4.runtime.ANTLRInputStream; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.TokenStream; + +import com.carvalab.archtool.parsers.CSharpLexer; +import com.carvalab.archtool.parsers.CSharpParser; +import com.carvalab.archtool.parsers.CSharpParser.Base_typeContext; +import com.carvalab.archtool.parsers.CSharpParser.Class_definitionContext; +import com.carvalab.archtool.parsers.CSharpParserBaseVisitor; + +public class CSharpVisitorParser { + + public static class CSClassRelationships { + public String className = "from"; + public Set relations = new HashSet<>(); + + public CSClassRelationships(String cls) { + className = cls; + } + + @Override + public String toString() { + return "CSClassRelationships [className=" + className + ", relations=" + relations + "]"; + } + } + + public CSClassRelationships parseClass(String classDefFile) { + CharStream charStream = new ANTLRInputStream(classDefFile); + CSharpLexer lexer = new CSharpLexer(charStream); + TokenStream tokens = new CommonTokenStream(lexer); + CSharpParser parser = new CSharpParser(tokens); + + ClassDeclarationVisitor classVisitor = new ClassDeclarationVisitor(); + classVisitor.visit(parser.compilation_unit()); + return classVisitor.relationship; + } + + private class ClassDeclarationVisitor extends CSharpParserBaseVisitor { + + private CSClassRelationships relationship; + + @Override + public CSClassRelationships visitClass_definition(Class_definitionContext ctx) { + // System.out.println(ctx.identifier().getText()); + ClassBaseTypesVisitor baseTypesVisitor = new ClassBaseTypesVisitor(); + baseTypesVisitor.visit(ctx); + CSClassRelationships relationship = new CSClassRelationships(ctx.identifier().getText()); + relationship.relations.addAll(baseTypesVisitor.types()); + this.relationship = relationship; + return relationship; + } + + /* + * @Override + * public CSClassRelationship visitClass_base(Class_baseContext ctx) { + * // Gets base class (from current class file) + * // System.out.println(ctx.getText()); + * return super.visitClass_base(ctx); + * } + */ + + } + + private class ClassBaseTypesVisitor extends CSharpParserBaseVisitor { + private ArrayList types = new ArrayList<>(); + + public ArrayList types() { + return types; + } + + @Override + public String visitBase_type(Base_typeContext ctx) { + types.add(ctx.getText()); + return ctx.getText(); + } + } +} diff --git a/src/com/carvalab/archtool/parsers/CSharpLexer.java b/src/com/carvalab/archtool/parsers/CSharpLexer.java new file mode 100644 index 0000000..a78fbaa --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpLexer.java @@ -0,0 +1,1037 @@ +// Generated from CSharpLexer.g4 by ANTLR 4.6 + package com.carvalab.archtool.parsers; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class CSharpLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.6", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + BYTE_ORDER_MARK=1, SINGLE_LINE_DOC_COMMENT=2, DELIMITED_DOC_COMMENT=3, + SINGLE_LINE_COMMENT=4, DELIMITED_COMMENT=5, WHITESPACES=6, SHARP=7, ABSTRACT=8, + ADD=9, ALIAS=10, ARGLIST=11, AS=12, ASCENDING=13, ASYNC=14, AWAIT=15, + BASE=16, BOOL=17, BREAK=18, BY=19, BYTE=20, CASE=21, CATCH=22, CHAR=23, + CHECKED=24, CLASS=25, CONST=26, CONTINUE=27, DECIMAL=28, DEFAULT=29, DELEGATE=30, + DESCENDING=31, DO=32, DOUBLE=33, DYNAMIC=34, ELSE=35, ENUM=36, EQUALS=37, + EVENT=38, EXPLICIT=39, EXTERN=40, FALSE=41, FINALLY=42, FIXED=43, FLOAT=44, + FOR=45, FOREACH=46, FROM=47, GET=48, GOTO=49, GROUP=50, IF=51, IMPLICIT=52, + IN=53, INT=54, INTERFACE=55, INTERNAL=56, INTO=57, IS=58, JOIN=59, LET=60, + LOCK=61, LONG=62, NAMEOF=63, NAMESPACE=64, NEW=65, NULL=66, OBJECT=67, + ON=68, OPERATOR=69, ORDERBY=70, OUT=71, OVERRIDE=72, PARAMS=73, PARTIAL=74, + PRIVATE=75, PROTECTED=76, PUBLIC=77, READONLY=78, REF=79, REMOVE=80, RETURN=81, + SBYTE=82, SEALED=83, SELECT=84, SET=85, SHORT=86, SIZEOF=87, STACKALLOC=88, + STATIC=89, STRING=90, STRUCT=91, SWITCH=92, THIS=93, THROW=94, TRUE=95, + TRY=96, TYPEOF=97, UINT=98, ULONG=99, UNCHECKED=100, UNSAFE=101, USHORT=102, + USING=103, VIRTUAL=104, VOID=105, VOLATILE=106, WHEN=107, WHERE=108, WHILE=109, + YIELD=110, IDENTIFIER=111, LITERAL_ACCESS=112, INTEGER_LITERAL=113, HEX_INTEGER_LITERAL=114, + REAL_LITERAL=115, CHARACTER_LITERAL=116, REGULAR_STRING=117, VERBATIUM_STRING=118, + INTERPOLATED_REGULAR_STRING_START=119, INTERPOLATED_VERBATIUM_STRING_START=120, + OPEN_BRACE=121, CLOSE_BRACE=122, OPEN_BRACKET=123, CLOSE_BRACKET=124, + OPEN_PARENS=125, CLOSE_PARENS=126, DOT=127, COMMA=128, COLON=129, SEMICOLON=130, + PLUS=131, MINUS=132, STAR=133, DIV=134, PERCENT=135, AMP=136, BITWISE_OR=137, + CARET=138, BANG=139, TILDE=140, ASSIGNMENT=141, LT=142, GT=143, INTERR=144, + DOUBLE_COLON=145, OP_COALESCING=146, OP_INC=147, OP_DEC=148, OP_AND=149, + OP_OR=150, OP_PTR=151, OP_EQ=152, OP_NE=153, OP_LE=154, OP_GE=155, OP_ADD_ASSIGNMENT=156, + OP_SUB_ASSIGNMENT=157, OP_MULT_ASSIGNMENT=158, OP_DIV_ASSIGNMENT=159, + OP_MOD_ASSIGNMENT=160, OP_AND_ASSIGNMENT=161, OP_OR_ASSIGNMENT=162, OP_XOR_ASSIGNMENT=163, + OP_LEFT_SHIFT=164, OP_LEFT_SHIFT_ASSIGNMENT=165, DOUBLE_CURLY_INSIDE=166, + OPEN_BRACE_INSIDE=167, REGULAR_CHAR_INSIDE=168, VERBATIUM_DOUBLE_QUOTE_INSIDE=169, + DOUBLE_QUOTE_INSIDE=170, REGULAR_STRING_INSIDE=171, VERBATIUM_INSIDE_STRING=172, + CLOSE_BRACE_INSIDE=173, FORMAT_STRING=174, HIDDEN_WHITESPACES=175, DIGITS=176, + DEFINE=177, UNDEF=178, ELIF=179, ENDIF=180, LINE=181, ERROR=182, WARNING=183, + REGION=184, ENDREGION=185, PRAGMA=186, HIDDEN_HIDDEN=187, CONDITIONAL_SYMBOL=188, + HIDDEN_NEW_LINE=189, TEXT=190, DOUBLE_CURLY_CLOSE_INSIDE=191; + public static final int INTERPOLATION_STRING = 1; + public static final int INTERPOLATION_FORMAT = 2; + public static final int HIDDEN_MODE = 3; + public static final int HIDDEN_TEXT = 4; + public static String[] modeNames = { + "DEFAULT_MODE", "INTERPOLATION_STRING", "INTERPOLATION_FORMAT", "HIDDEN_MODE", + "HIDDEN_TEXT" + }; + + public static final String[] ruleNames = { + "BYTE_ORDER_MARK", "SINGLE_LINE_DOC_COMMENT", "DELIMITED_DOC_COMMENT", + "SINGLE_LINE_COMMENT", "DELIMITED_COMMENT", "WHITESPACES", "SHARP", "ABSTRACT", + "ADD", "ALIAS", "ARGLIST", "AS", "ASCENDING", "ASYNC", "AWAIT", "BASE", + "BOOL", "BREAK", "BY", "BYTE", "CASE", "CATCH", "CHAR", "CHECKED", "CLASS", + "CONST", "CONTINUE", "DECIMAL", "DEFAULT", "DELEGATE", "DESCENDING", "DO", + "DOUBLE", "DYNAMIC", "ELSE", "ENUM", "EQUALS", "EVENT", "EXPLICIT", "EXTERN", + "FALSE", "FINALLY", "FIXED", "FLOAT", "FOR", "FOREACH", "FROM", "GET", + "GOTO", "GROUP", "IF", "IMPLICIT", "IN", "INT", "INTERFACE", "INTERNAL", + "INTO", "IS", "JOIN", "LET", "LOCK", "LONG", "NAMEOF", "NAMESPACE", "NEW", + "NULL", "OBJECT", "ON", "OPERATOR", "ORDERBY", "OUT", "OVERRIDE", "PARAMS", + "PARTIAL", "PRIVATE", "PROTECTED", "PUBLIC", "READONLY", "REF", "REMOVE", + "RETURN", "SBYTE", "SEALED", "SELECT", "SET", "SHORT", "SIZEOF", "STACKALLOC", + "STATIC", "STRING", "STRUCT", "SWITCH", "THIS", "THROW", "TRUE", "TRY", + "TYPEOF", "UINT", "ULONG", "UNCHECKED", "UNSAFE", "USHORT", "USING", "VIRTUAL", + "VOID", "VOLATILE", "WHEN", "WHERE", "WHILE", "YIELD", "IDENTIFIER", "LITERAL_ACCESS", + "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "REAL_LITERAL", "CHARACTER_LITERAL", + "REGULAR_STRING", "VERBATIUM_STRING", "INTERPOLATED_REGULAR_STRING_START", + "INTERPOLATED_VERBATIUM_STRING_START", "OPEN_BRACE", "CLOSE_BRACE", "OPEN_BRACKET", + "CLOSE_BRACKET", "OPEN_PARENS", "CLOSE_PARENS", "DOT", "COMMA", "COLON", + "SEMICOLON", "PLUS", "MINUS", "STAR", "DIV", "PERCENT", "AMP", "BITWISE_OR", + "CARET", "BANG", "TILDE", "ASSIGNMENT", "LT", "GT", "INTERR", "DOUBLE_COLON", + "OP_COALESCING", "OP_INC", "OP_DEC", "OP_AND", "OP_OR", "OP_PTR", "OP_EQ", + "OP_NE", "OP_LE", "OP_GE", "OP_ADD_ASSIGNMENT", "OP_SUB_ASSIGNMENT", "OP_MULT_ASSIGNMENT", + "OP_DIV_ASSIGNMENT", "OP_MOD_ASSIGNMENT", "OP_AND_ASSIGNMENT", "OP_OR_ASSIGNMENT", + "OP_XOR_ASSIGNMENT", "OP_LEFT_SHIFT", "OP_LEFT_SHIFT_ASSIGNMENT", "DOUBLE_CURLY_INSIDE", + "OPEN_BRACE_INSIDE", "REGULAR_CHAR_INSIDE", "VERBATIUM_DOUBLE_QUOTE_INSIDE", + "DOUBLE_QUOTE_INSIDE", "REGULAR_STRING_INSIDE", "VERBATIUM_INSIDE_STRING", + "DOUBLE_CURLY_CLOSE_INSIDE", "CLOSE_BRACE_INSIDE", "FORMAT_STRING", "HIDDEN_WHITESPACES", + "DIGITS", "HIDDEN_TRUE", "HIDDEN_FALSE", "DEFINE", "UNDEF", "HIDDEN_IF", + "ELIF", "HIDDEN_ELSE", "ENDIF", "LINE", "ERROR", "WARNING", "REGION", + "ENDREGION", "PRAGMA", "HIDDEN_DEFAULT", "HIDDEN_HIDDEN", "HIDDEN_OPEN_PARENS", + "HIDDEN_CLOSE_PARENS", "HIDDEN_BANG", "HIDDEN_OP_EQ", "HIDDEN_OP_NE", + "HIDDEN_OP_AND", "HIDDEN_OP_OR", "HIDDEN_STRING", "CONDITIONAL_SYMBOL", + "HIDDEN_SINGLE_LINE_COMMENT", "HIDDEN_NEW_LINE", "TEXT", "TEXT_NEW_LINE", + "InputCharacter", "NewLineCharacter", "IntegerTypeSuffix", "ExponentPart", + "CommonCharacter", "SimpleEscapeSequence", "HexEscapeSequence", "NewLine", + "Whitespace", "UnicodeClassZS", "IdentifierOrKeyword", "IdentifierStartCharacter", + "IdentifierPartCharacter", "LetterCharacter", "DecimalDigitCharacter", + "ConnectingCharacter", "CombiningCharacter", "FormattingCharacter", "UnicodeEscapeSequence", + "HexDigit", "UnicodeClassLU", "UnicodeClassLL", "UnicodeClassLT", "UnicodeClassLM", + "UnicodeClassLO", "UnicodeClassNL", "UnicodeClassMN", "UnicodeClassMC", + "UnicodeClassCF", "UnicodeClassPC", "UnicodeClassND" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'\\u00EF\\u00BB\\u00BF'", null, null, null, null, null, "'#'", + "'abstract'", "'add'", "'alias'", "'__arglist'", "'as'", "'ascending'", + "'async'", "'await'", "'base'", "'bool'", "'break'", "'by'", "'byte'", + "'case'", "'catch'", "'char'", "'checked'", "'class'", "'const'", "'continue'", + "'decimal'", "'default'", "'delegate'", "'descending'", "'do'", "'double'", + "'dynamic'", "'else'", "'enum'", "'equals'", "'event'", "'explicit'", + "'extern'", "'false'", "'finally'", "'fixed'", "'float'", "'for'", "'foreach'", + "'from'", "'get'", "'goto'", "'group'", "'if'", "'implicit'", "'in'", + "'int'", "'interface'", "'internal'", "'into'", "'is'", "'join'", "'let'", + "'lock'", "'long'", "'nameof'", "'namespace'", "'new'", "'null'", "'object'", + "'on'", "'operator'", "'orderby'", "'out'", "'override'", "'params'", + "'partial'", "'private'", "'protected'", "'public'", "'readonly'", "'ref'", + "'remove'", "'return'", "'sbyte'", "'sealed'", "'select'", "'set'", "'short'", + "'sizeof'", "'stackalloc'", "'static'", "'string'", "'struct'", "'switch'", + "'this'", "'throw'", "'true'", "'try'", "'typeof'", "'uint'", "'ulong'", + "'unchecked'", "'unsafe'", "'ushort'", "'using'", "'virtual'", "'void'", + "'volatile'", "'when'", "'where'", "'while'", "'yield'", null, null, null, + null, null, null, null, null, "'$\"'", "'$@\"'", null, null, "'['", "']'", + "'('", "')'", "'.'", "','", "':'", "';'", "'+'", "'-'", "'*'", "'/'", + "'%'", "'&'", "'|'", "'^'", "'!'", "'~'", "'='", "'<'", "'>'", "'?'", + "'::'", "'??'", "'++'", "'--'", "'&&'", "'||'", "'->'", "'=='", "'!='", + "'<='", "'>='", "'+='", "'-='", "'*='", "'/='", "'%='", "'&='", "'|='", + "'^='", "'<<'", "'<<='", "'{{'", null, null, "'\"\"'", "'\"'", null, null, + null, null, null, null, "'define'", "'undef'", "'elif'", "'endif'", "'line'", + null, null, null, null, null, "'hidden'", null, null, null, "'}}'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "BYTE_ORDER_MARK", "SINGLE_LINE_DOC_COMMENT", "DELIMITED_DOC_COMMENT", + "SINGLE_LINE_COMMENT", "DELIMITED_COMMENT", "WHITESPACES", "SHARP", "ABSTRACT", + "ADD", "ALIAS", "ARGLIST", "AS", "ASCENDING", "ASYNC", "AWAIT", "BASE", + "BOOL", "BREAK", "BY", "BYTE", "CASE", "CATCH", "CHAR", "CHECKED", "CLASS", + "CONST", "CONTINUE", "DECIMAL", "DEFAULT", "DELEGATE", "DESCENDING", "DO", + "DOUBLE", "DYNAMIC", "ELSE", "ENUM", "EQUALS", "EVENT", "EXPLICIT", "EXTERN", + "FALSE", "FINALLY", "FIXED", "FLOAT", "FOR", "FOREACH", "FROM", "GET", + "GOTO", "GROUP", "IF", "IMPLICIT", "IN", "INT", "INTERFACE", "INTERNAL", + "INTO", "IS", "JOIN", "LET", "LOCK", "LONG", "NAMEOF", "NAMESPACE", "NEW", + "NULL", "OBJECT", "ON", "OPERATOR", "ORDERBY", "OUT", "OVERRIDE", "PARAMS", + "PARTIAL", "PRIVATE", "PROTECTED", "PUBLIC", "READONLY", "REF", "REMOVE", + "RETURN", "SBYTE", "SEALED", "SELECT", "SET", "SHORT", "SIZEOF", "STACKALLOC", + "STATIC", "STRING", "STRUCT", "SWITCH", "THIS", "THROW", "TRUE", "TRY", + "TYPEOF", "UINT", "ULONG", "UNCHECKED", "UNSAFE", "USHORT", "USING", "VIRTUAL", + "VOID", "VOLATILE", "WHEN", "WHERE", "WHILE", "YIELD", "IDENTIFIER", "LITERAL_ACCESS", + "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "REAL_LITERAL", "CHARACTER_LITERAL", + "REGULAR_STRING", "VERBATIUM_STRING", "INTERPOLATED_REGULAR_STRING_START", + "INTERPOLATED_VERBATIUM_STRING_START", "OPEN_BRACE", "CLOSE_BRACE", "OPEN_BRACKET", + "CLOSE_BRACKET", "OPEN_PARENS", "CLOSE_PARENS", "DOT", "COMMA", "COLON", + "SEMICOLON", "PLUS", "MINUS", "STAR", "DIV", "PERCENT", "AMP", "BITWISE_OR", + "CARET", "BANG", "TILDE", "ASSIGNMENT", "LT", "GT", "INTERR", "DOUBLE_COLON", + "OP_COALESCING", "OP_INC", "OP_DEC", "OP_AND", "OP_OR", "OP_PTR", "OP_EQ", + "OP_NE", "OP_LE", "OP_GE", "OP_ADD_ASSIGNMENT", "OP_SUB_ASSIGNMENT", "OP_MULT_ASSIGNMENT", + "OP_DIV_ASSIGNMENT", "OP_MOD_ASSIGNMENT", "OP_AND_ASSIGNMENT", "OP_OR_ASSIGNMENT", + "OP_XOR_ASSIGNMENT", "OP_LEFT_SHIFT", "OP_LEFT_SHIFT_ASSIGNMENT", "DOUBLE_CURLY_INSIDE", + "OPEN_BRACE_INSIDE", "REGULAR_CHAR_INSIDE", "VERBATIUM_DOUBLE_QUOTE_INSIDE", + "DOUBLE_QUOTE_INSIDE", "REGULAR_STRING_INSIDE", "VERBATIUM_INSIDE_STRING", + "CLOSE_BRACE_INSIDE", "FORMAT_STRING", "HIDDEN_WHITESPACES", "DIGITS", + "DEFINE", "UNDEF", "ELIF", "ENDIF", "LINE", "ERROR", "WARNING", "REGION", + "ENDREGION", "PRAGMA", "HIDDEN_HIDDEN", "CONDITIONAL_SYMBOL", "HIDDEN_NEW_LINE", + "TEXT", "DOUBLE_CURLY_CLOSE_INSIDE" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public CSharpLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "CSharpLexer.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\u00c1\u0778\b\1\b"+ + "\1\b\1\b\1\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b"+ + "\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t"+ + "\20\4\21\t\21\4\22\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t"+ + "\27\4\30\t\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t"+ + "\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t"+ + "(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t"+ + "\62\4\63\t\63\4\64\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t"+ + ":\4;\t;\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4"+ + "F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\t"+ + "Q\4R\tR\4S\tS\4T\tT\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\"+ + "\4]\t]\4^\t^\4_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h"+ + "\th\4i\ti\4j\tj\4k\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts"+ + "\4t\tt\4u\tu\4v\tv\4w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177"+ + "\t\177\4\u0080\t\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083"+ + "\4\u0084\t\u0084\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088"+ + "\t\u0088\4\u0089\t\u0089\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c"+ + "\4\u008d\t\u008d\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091"+ + "\t\u0091\4\u0092\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095"+ + "\4\u0096\t\u0096\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a"+ + "\t\u009a\4\u009b\t\u009b\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e"+ + "\4\u009f\t\u009f\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3"+ + "\t\u00a3\4\u00a4\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7"+ + "\4\u00a8\t\u00a8\4\u00a9\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac"+ + "\t\u00ac\4\u00ad\t\u00ad\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0"+ + "\4\u00b1\t\u00b1\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5"+ + "\t\u00b5\4\u00b6\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9"+ + "\4\u00ba\t\u00ba\4\u00bb\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be"+ + "\t\u00be\4\u00bf\t\u00bf\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2"+ + "\4\u00c3\t\u00c3\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7"+ + "\t\u00c7\4\u00c8\t\u00c8\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb"+ + "\4\u00cc\t\u00cc\4\u00cd\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0"+ + "\t\u00d0\4\u00d1\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4"+ + "\4\u00d5\t\u00d5\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9"+ + "\t\u00d9\4\u00da\t\u00da\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd"+ + "\4\u00de\t\u00de\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2"+ + "\t\u00e2\4\u00e3\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6"+ + "\4\u00e7\t\u00e7\4\u00e8\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb"+ + "\t\u00eb\4\u00ec\t\u00ec\4\u00ed\t\u00ed\4\u00ee\t\u00ee\3\2\3\2\3\2\3"+ + "\2\3\3\3\3\3\3\3\3\3\3\7\3\u01eb\n\3\f\3\16\3\u01ee\13\3\3\3\3\3\3\4\3"+ + "\4\3\4\3\4\3\4\7\4\u01f7\n\4\f\4\16\4\u01fa\13\4\3\4\3\4\3\4\3\4\3\4\3"+ + "\5\3\5\3\5\3\5\7\5\u0205\n\5\f\5\16\5\u0208\13\5\3\5\3\5\3\6\3\6\3\6\3"+ + "\6\7\6\u0210\n\6\f\6\16\6\u0213\13\6\3\6\3\6\3\6\3\6\3\6\3\7\3\7\6\7\u021c"+ + "\n\7\r\7\16\7\u021d\3\7\3\7\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\t\3"+ + "\t\3\t\3\t\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3"+ + "\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3"+ + "\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3"+ + "\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3"+ + "\23\3\23\3\23\3\23\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3"+ + "\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3"+ + "\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3"+ + "\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3"+ + "\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3"+ + "\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3"+ + " \3 \3 \3 \3 \3 \3 \3 \3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3"+ + "#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3\'\3"+ + "\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3*"+ + "\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3-\3-\3-\3-"+ + "\3-\3-\3.\3.\3.\3.\3/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\60\3"+ + "\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3"+ + "\63\3\64\3\64\3\64\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3"+ + "\66\3\66\3\67\3\67\3\67\3\67\38\38\38\38\38\38\38\38\38\38\39\39\39\3"+ + "9\39\39\39\39\39\3:\3:\3:\3:\3:\3;\3;\3;\3<\3<\3<\3<\3<\3=\3=\3=\3=\3"+ + ">\3>\3>\3>\3>\3?\3?\3?\3?\3?\3@\3@\3@\3@\3@\3@\3@\3A\3A\3A\3A\3A\3A\3"+ + "A\3A\3A\3A\3B\3B\3B\3B\3C\3C\3C\3C\3C\3D\3D\3D\3D\3D\3D\3D\3E\3E\3E\3"+ + "F\3F\3F\3F\3F\3F\3F\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3H\3H\3H\3H\3I\3I\3"+ + "I\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3J\3J\3K\3K\3K\3K\3K\3K\3K\3K\3L\3"+ + "L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N\3N\3"+ + "N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3"+ + "R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3T\3U\3U\3U\3U\3U\3"+ + "U\3U\3V\3V\3V\3V\3W\3W\3W\3W\3W\3W\3X\3X\3X\3X\3X\3X\3X\3Y\3Y\3Y\3Y\3"+ + "Y\3Y\3Y\3Y\3Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3[\3[\3[\3[\3[\3[\3[\3\\\3\\"+ + "\3\\\3\\\3\\\3\\\3\\\3]\3]\3]\3]\3]\3]\3]\3^\3^\3^\3^\3^\3_\3_\3_\3_\3"+ + "_\3_\3`\3`\3`\3`\3`\3a\3a\3a\3a\3b\3b\3b\3b\3b\3b\3b\3c\3c\3c\3c\3c\3"+ + "d\3d\3d\3d\3d\3d\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3f\3f\3f\3f\3f\3f\3f\3"+ + "g\3g\3g\3g\3g\3g\3g\3h\3h\3h\3h\3h\3h\3i\3i\3i\3i\3i\3i\3i\3i\3j\3j\3"+ + "j\3j\3j\3k\3k\3k\3k\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l\3m\3m\3m\3m\3m\3m\3"+ + "n\3n\3n\3n\3n\3n\3o\3o\3o\3o\3o\3o\3p\5p\u04bc\np\3p\3p\3q\6q\u04c1\n"+ + "q\rq\16q\u04c2\3q\5q\u04c6\nq\3q\3q\5q\u04ca\nq\3q\3q\3r\6r\u04cf\nr\r"+ + "r\16r\u04d0\3r\5r\u04d4\nr\3s\3s\3s\6s\u04d9\ns\rs\16s\u04da\3s\5s\u04de"+ + "\ns\3t\7t\u04e1\nt\ft\16t\u04e4\13t\3t\3t\6t\u04e8\nt\rt\16t\u04e9\3t"+ + "\5t\u04ed\nt\3t\5t\u04f0\nt\3t\6t\u04f3\nt\rt\16t\u04f4\3t\3t\3t\5t\u04fa"+ + "\nt\5t\u04fc\nt\5t\u04fe\nt\3u\3u\3u\5u\u0503\nu\3u\3u\3v\3v\3v\7v\u050a"+ + "\nv\fv\16v\u050d\13v\3v\3v\3w\3w\3w\3w\3w\3w\7w\u0517\nw\fw\16w\u051a"+ + "\13w\3w\3w\3x\3x\3x\3y\3y\3y\3y\3z\3z\3{\3{\3|\3|\3}\3}\3~\3~\3\177\3"+ + "\177\3\u0080\3\u0080\3\u0081\3\u0081\3\u0082\3\u0082\3\u0083\3\u0083\3"+ + "\u0084\3\u0084\3\u0085\3\u0085\3\u0086\3\u0086\3\u0087\3\u0087\3\u0088"+ + "\3\u0088\3\u0089\3\u0089\3\u008a\3\u008a\3\u008b\3\u008b\3\u008c\3\u008c"+ + "\3\u008d\3\u008d\3\u008e\3\u008e\3\u008f\3\u008f\3\u0090\3\u0090\3\u0091"+ + "\3\u0091\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094"+ + "\3\u0094\3\u0095\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097"+ + "\3\u0097\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a"+ + "\3\u009a\3\u009b\3\u009b\3\u009b\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d"+ + "\3\u009d\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0"+ + "\3\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a3\3\u00a3"+ + "\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6"+ + "\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a9\3\u00a9"+ + "\3\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab\3\u00ac\6\u00ac\u05a2\n\u00ac"+ + "\r\u00ac\16\u00ac\u05a3\3\u00ad\6\u00ad\u05a7\n\u00ad\r\u00ad\16\u00ad"+ + "\u05a8\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00af\3\u00af\3\u00b0"+ + "\6\u00b0\u05b3\n\u00b0\r\u00b0\16\u00b0\u05b4\3\u00b1\6\u00b1\u05b8\n"+ + "\u00b1\r\u00b1\16\u00b1\u05b9\3\u00b1\3\u00b1\3\u00b2\6\u00b2\u05bf\n"+ + "\u00b2\r\u00b2\16\u00b2\u05c0\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3"+ + "\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+ + "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b5\3\u00b5\3\u00b5\3\u00b5"+ + "\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6"+ + "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7"+ + "\3\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b9"+ + "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00ba\3\u00ba"+ + "\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00bb\3\u00bb\3\u00bb"+ + "\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc"+ + "\3\u00bc\3\u00bc\6\u00bc\u0612\n\u00bc\r\u00bc\16\u00bc\u0613\3\u00bc"+ + "\3\u00bc\3\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd"+ + "\3\u00bd\3\u00bd\6\u00bd\u0622\n\u00bd\r\u00bd\16\u00bd\u0623\3\u00bd"+ + "\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be"+ + "\3\u00be\7\u00be\u0631\n\u00be\f\u00be\16\u00be\u0634\13\u00be\3\u00be"+ + "\3\u00be\3\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\3\u00bf\3\u00bf\3\u00bf\3\u00bf\7\u00bf\u0644\n\u00bf\f\u00bf\16\u00bf"+ + "\u0647\13\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0"+ + "\3\u00c0\3\u00c0\3\u00c0\3\u00c0\6\u00c0\u0654\n\u00c0\r\u00c0\16\u00c0"+ + "\u0655\3\u00c0\3\u00c0\3\u00c0\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1"+ + "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c2\3\u00c2\3\u00c2"+ + "\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c2\3\u00c3\3\u00c3\3\u00c3"+ + "\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c5\3\u00c5"+ + "\3\u00c5\3\u00c5\3\u00c5\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8"+ + "\3\u00c8\3\u00c8\3\u00c8\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9"+ + "\3\u00ca\3\u00ca\7\u00ca\u0698\n\u00ca\f\u00ca\16\u00ca\u069b\13\u00ca"+ + "\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb\3\u00cb\3\u00cb"+ + "\3\u00cc\3\u00cc\3\u00cc\3\u00cc\7\u00cc\u06aa\n\u00cc\f\u00cc\16\u00cc"+ + "\u06ad\13\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\3\u00cd"+ + "\3\u00cd\3\u00ce\6\u00ce\u06b8\n\u00ce\r\u00ce\16\u00ce\u06b9\3\u00ce"+ + "\3\u00ce\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0"+ + "\3\u00d1\3\u00d1\3\u00d2\5\u00d2\u06c9\n\u00d2\3\u00d2\3\u00d2\5\u00d2"+ + "\u06cd\n\u00d2\3\u00d2\5\u00d2\u06d0\n\u00d2\3\u00d3\3\u00d3\5\u00d3\u06d4"+ + "\n\u00d3\3\u00d3\6\u00d3\u06d7\n\u00d3\r\u00d3\16\u00d3\u06d8\3\u00d4"+ + "\3\u00d4\3\u00d4\5\u00d4\u06de\n\u00d4\3\u00d5\3\u00d5\3\u00d5\3\u00d5"+ + "\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5"+ + "\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5\3\u00d5"+ + "\5\u00d5\u06f6\n\u00d5\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6"+ + "\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6"+ + "\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6\3\u00d6"+ + "\3\u00d6\5\u00d6\u0711\n\u00d6\3\u00d7\3\u00d7\3\u00d7\5\u00d7\u0716\n"+ + "\u00d7\3\u00d8\3\u00d8\5\u00d8\u071a\n\u00d8\3\u00d9\3\u00d9\3\u00da\3"+ + "\u00da\7\u00da\u0720\n\u00da\f\u00da\16\u00da\u0723\13\u00da\3\u00db\3"+ + "\u00db\5\u00db\u0727\n\u00db\3\u00dc\3\u00dc\3\u00dc\3\u00dc\3\u00dc\5"+ + "\u00dc\u072e\n\u00dc\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3\u00dd\3"+ + "\u00dd\5\u00dd\u0737\n\u00dd\3\u00de\3\u00de\5\u00de\u073b\n\u00de\3\u00df"+ + "\3\u00df\5\u00df\u073f\n\u00df\3\u00e0\3\u00e0\3\u00e0\5\u00e0\u0744\n"+ + "\u00e0\3\u00e1\3\u00e1\5\u00e1\u0748\n\u00e1\3\u00e2\3\u00e2\3\u00e2\3"+ + "\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2"+ + "\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2\5\u00e2"+ + "\u075e\n\u00e2\3\u00e3\5\u00e3\u0761\n\u00e3\3\u00e4\3\u00e4\3\u00e5\3"+ + "\u00e5\3\u00e6\3\u00e6\3\u00e7\3\u00e7\3\u00e8\3\u00e8\3\u00e9\3\u00e9"+ + "\3\u00ea\3\u00ea\3\u00eb\3\u00eb\3\u00ec\3\u00ec\3\u00ed\3\u00ed\3\u00ee"+ + "\3\u00ee\4\u01f8\u0211\2\u00ef\7\3\t\4\13\5\r\6\17\7\21\b\23\t\25\n\27"+ + "\13\31\f\33\r\35\16\37\17!\20#\21%\22\'\23)\24+\25-\26/\27\61\30\63\31"+ + "\65\32\67\339\34;\35=\36?\37A C!E\"G#I$K%M&O\'Q(S)U*W+Y,[-]._/a\60c\61"+ + "e\62g\63i\64k\65m\66o\67q8s9u:w;y<{=}>\177?\u0081@\u0083A\u0085B\u0087"+ + "C\u0089D\u008bE\u008dF\u008fG\u0091H\u0093I\u0095J\u0097K\u0099L\u009b"+ + "M\u009dN\u009fO\u00a1P\u00a3Q\u00a5R\u00a7S\u00a9T\u00abU\u00adV\u00af"+ + "W\u00b1X\u00b3Y\u00b5Z\u00b7[\u00b9\\\u00bb]\u00bd^\u00bf_\u00c1`\u00c3"+ + "a\u00c5b\u00c7c\u00c9d\u00cbe\u00cdf\u00cfg\u00d1h\u00d3i\u00d5j\u00d7"+ + "k\u00d9l\u00dbm\u00ddn\u00dfo\u00e1p\u00e3q\u00e5r\u00e7s\u00e9t\u00eb"+ + "u\u00edv\u00efw\u00f1x\u00f3y\u00f5z\u00f7{\u00f9|\u00fb}\u00fd~\u00ff"+ + "\177\u0101\u0080\u0103\u0081\u0105\u0082\u0107\u0083\u0109\u0084\u010b"+ + "\u0085\u010d\u0086\u010f\u0087\u0111\u0088\u0113\u0089\u0115\u008a\u0117"+ + "\u008b\u0119\u008c\u011b\u008d\u011d\u008e\u011f\u008f\u0121\u0090\u0123"+ + "\u0091\u0125\u0092\u0127\u0093\u0129\u0094\u012b\u0095\u012d\u0096\u012f"+ + "\u0097\u0131\u0098\u0133\u0099\u0135\u009a\u0137\u009b\u0139\u009c\u013b"+ + "\u009d\u013d\u009e\u013f\u009f\u0141\u00a0\u0143\u00a1\u0145\u00a2\u0147"+ + "\u00a3\u0149\u00a4\u014b\u00a5\u014d\u00a6\u014f\u00a7\u0151\u00a8\u0153"+ + "\u00a9\u0155\u00aa\u0157\u00ab\u0159\u00ac\u015b\u00ad\u015d\u00ae\u015f"+ + "\u00c1\u0161\u00af\u0163\u00b0\u0165\u00b1\u0167\u00b2\u0169\2\u016b\2"+ + "\u016d\u00b3\u016f\u00b4\u0171\2\u0173\u00b5\u0175\2\u0177\u00b6\u0179"+ + "\u00b7\u017b\u00b8\u017d\u00b9\u017f\u00ba\u0181\u00bb\u0183\u00bc\u0185"+ + "\2\u0187\u00bd\u0189\2\u018b\2\u018d\2\u018f\2\u0191\2\u0193\2\u0195\2"+ + "\u0197\2\u0199\u00be\u019b\2\u019d\u00bf\u019f\u00c0\u01a1\2\u01a3\2\u01a5"+ + "\2\u01a7\2\u01a9\2\u01ab\2\u01ad\2\u01af\2\u01b1\2\u01b3\2\u01b5\2\u01b7"+ + "\2\u01b9\2\u01bb\2\u01bd\2\u01bf\2\u01c1\2\u01c3\2\u01c5\2\u01c7\2\u01c9"+ + "\2\u01cb\2\u01cd\2\u01cf\2\u01d1\2\u01d3\2\u01d5\2\u01d7\2\u01d9\2\u01db"+ + "\2\u01dd\2\u01df\2\7\2\3\4\5\6\36\3\2\62;\4\2ZZzz\b\2FFHHOOffhhoo\b\2"+ + "\f\f\17\17))^^\u0087\u0087\u202a\u202b\b\2\f\f\17\17$$^^\u0087\u0087\u202a"+ + "\u202b\3\2$$\5\2$$^^}}\4\2$$}}\3\2\177\177\7\2\f\f\17\17$$\u0087\u0087"+ + "\u202a\u202b\6\2\f\f\17\17\u0087\u0087\u202a\u202b\4\2NNnn\4\2WWww\4\2"+ + "GGgg\4\2--//\4\2\13\13\r\16\13\2\"\"\u00a2\u00a2\u1682\u1682\u1810\u1810"+ + "\u2002\u2008\u200a\u200c\u2031\u2031\u2061\u2061\u3002\u3002\5\2\62;C"+ + "HchS\2C\\\u00c2\u00e0\u0102\u0138\u013b\u0149\u014c\u017f\u0183\u0184"+ + "\u0186\u018d\u0190\u0193\u0195\u0196\u0198\u019a\u019e\u019f\u01a1\u01a2"+ + "\u01a4\u01ab\u01ae\u01b5\u01b7\u01be\u01c6\u01cf\u01d1\u01dd\u01e0\u01f0"+ + "\u01f3\u01f6\u01f8\u01fa\u01fc\u0234\u023c\u023d\u023f\u0240\u0243\u0248"+ + "\u024a\u0250\u0372\u0374\u0378\u0381\u0388\u038c\u038e\u03a3\u03a5\u03ad"+ + "\u03d1\u03d6\u03da\u03f0\u03f6\u03f9\u03fb\u03fc\u03ff\u0431\u0462\u0482"+ + "\u048c\u04cf\u04d2\u0530\u0533\u0558\u10a2\u10c7\u10c9\u10cf\u1e02\u1e96"+ + "\u1ea0\u1f00\u1f0a\u1f11\u1f1a\u1f1f\u1f2a\u1f31\u1f3a\u1f41\u1f4a\u1f4f"+ + "\u1f5b\u1f61\u1f6a\u1f71\u1fba\u1fbd\u1fca\u1fcd\u1fda\u1fdd\u1fea\u1fee"+ + "\u1ffa\u1ffd\u2104\u2109\u210d\u210f\u2112\u2114\u2117\u211f\u2126\u212f"+ + "\u2132\u2135\u2140\u2141\u2147\u2185\u2c02\u2c30\u2c62\u2c66\u2c69\u2c72"+ + "\u2c74\u2c77\u2c80\u2c82\u2c84\u2ce4\u2ced\u2cef\u2cf4\ua642\ua644\ua66e"+ + "\ua682\ua69c\ua724\ua730\ua734\ua770\ua77b\ua788\ua78d\ua78f\ua792\ua794"+ + "\ua798\ua7af\ua7b2\ua7b3\uff23\uff3cS\2c|\u00b7\u00f8\u00fa\u0101\u0103"+ + "\u0179\u017c\u0182\u0185\u0187\u018a\u0194\u0197\u019d\u01a0\u01a3\u01a5"+ + "\u01a7\u01aa\u01af\u01b2\u01b6\u01b8\u01c1\u01c8\u01ce\u01d0\u01f5\u01f7"+ + "\u01fb\u01fd\u023b\u023e\u0244\u0249\u0295\u0297\u02b1\u0373\u0375\u0379"+ + "\u037f\u0392\u03d0\u03d2\u03d3\u03d7\u03d9\u03db\u03f5\u03f7\u0461\u0463"+ + "\u0483\u048d\u04c1\u04c4\u0531\u0563\u0589\u1d02\u1d2d\u1d6d\u1d79\u1d7b"+ + "\u1d9c\u1e03\u1e9f\u1ea1\u1f09\u1f12\u1f17\u1f22\u1f29\u1f32\u1f39\u1f42"+ + "\u1f47\u1f52\u1f59\u1f62\u1f69\u1f72\u1f7f\u1f82\u1f89\u1f92\u1f99\u1fa2"+ + "\u1fa9\u1fb2\u1fb6\u1fb8\u1fb9\u1fc0\u1fc6\u1fc8\u1fc9\u1fd2\u1fd5\u1fd8"+ + "\u1fd9\u1fe2\u1fe9\u1ff4\u1ff6\u1ff8\u1ff9\u210c\u2115\u2131\u213b\u213e"+ + "\u213f\u2148\u214b\u2150\u2186\u2c32\u2c60\u2c63\u2c6e\u2c73\u2c7d\u2c83"+ + "\u2cee\u2cf0\u2cf5\u2d02\u2d27\u2d29\u2d2f\ua643\ua66f\ua683\ua69d\ua725"+ + "\ua733\ua735\ua77a\ua77c\ua77e\ua781\ua789\ua78e\ua790\ua793\ua797\ua799"+ + "\ua7ab\ua7fc\uab5c\uab66\uab67\ufb02\ufb08\ufb15\ufb19\uff43\uff5c\b\2"+ + "\u01c7\u01cd\u01f4\u1f91\u1f9a\u1fa1\u1faa\u1fb1\u1fbe\u1fce\u1ffe\u1ffe"+ + "#\2\u02b2\u02c3\u02c8\u02d3\u02e2\u02e6\u02ee\u02f0\u0376\u037c\u055b"+ + "\u0642\u06e7\u06e8\u07f6\u07f7\u07fc\u081c\u0826\u082a\u0973\u0e48\u0ec8"+ + "\u10fe\u17d9\u1845\u1aa9\u1c7f\u1d2e\u1d6c\u1d7a\u1dc1\u2073\u2081\u2092"+ + "\u209e\u2c7e\u2c7f\u2d71\u2e31\u3007\u3037\u303d\u3100\ua017\ua4ff\ua60e"+ + "\ua681\ua69e\ua69f\ua719\ua721\ua772\ua78a\ua7fa\ua7fb\ua9d1\ua9e8\uaa72"+ + "\uaadf\uaaf5\uaaf6\uab5e\uab61\uff72\uffa1\u00ec\2\u00ac\u00bc\u01bd\u01c5"+ + "\u0296\u05ec\u05f2\u05f4\u0622\u0641\u0643\u064c\u0670\u0671\u0673\u06d5"+ + "\u06d7\u06fe\u0701\u0712\u0714\u0731\u074f\u07a7\u07b3\u07ec\u0802\u0817"+ + "\u0842\u085a\u08a2\u08b4\u0906\u093b\u093f\u0952\u095a\u0963\u0974\u0982"+ + "\u0987\u098e\u0991\u0992\u0995\u09aa\u09ac\u09b2\u09b4\u09bb\u09bf\u09d0"+ + "\u09de\u09df\u09e1\u09e3\u09f2\u09f3\u0a07\u0a0c\u0a11\u0a12\u0a15\u0a2a"+ + "\u0a2c\u0a32\u0a34\u0a35\u0a37\u0a38\u0a3a\u0a3b\u0a5b\u0a5e\u0a60\u0a76"+ + "\u0a87\u0a8f\u0a91\u0a93\u0a95\u0aaa\u0aac\u0ab2\u0ab4\u0ab5\u0ab7\u0abb"+ + "\u0abf\u0ad2\u0ae2\u0ae3\u0b07\u0b0e\u0b11\u0b12\u0b15\u0b2a\u0b2c\u0b32"+ + "\u0b34\u0b35\u0b37\u0b3b\u0b3f\u0b63\u0b73\u0b85\u0b87\u0b8c\u0b90\u0b92"+ + "\u0b94\u0b97\u0b9b\u0b9c\u0b9e\u0bac\u0bb0\u0bbb\u0bd2\u0c0e\u0c10\u0c12"+ + "\u0c14\u0c2a\u0c2c\u0c3b\u0c3f\u0c8e\u0c90\u0c92\u0c94\u0caa\u0cac\u0cb5"+ + "\u0cb7\u0cbb\u0cbf\u0ce0\u0ce2\u0ce3\u0cf3\u0cf4\u0d07\u0d0e\u0d10\u0d12"+ + "\u0d14\u0d3c\u0d3f\u0d50\u0d62\u0d63\u0d7c\u0d81\u0d87\u0d98\u0d9c\u0db3"+ + "\u0db5\u0dbd\u0dbf\u0dc8\u0e03\u0e32\u0e34\u0e35\u0e42\u0e47\u0e83\u0e84"+ + "\u0e86\u0e8c\u0e8f\u0e99\u0e9b\u0ea1\u0ea3\u0ea5\u0ea7\u0ea9\u0eac\u0ead"+ + "\u0eaf\u0eb2\u0eb4\u0eb5\u0ebf\u0ec6\u0ede\u0ee1\u0f02\u0f49\u0f4b\u0f6e"+ + "\u0f8a\u0f8e\u1002\u102c\u1041\u1057\u105c\u105f\u1063\u1072\u1077\u1083"+ + "\u1090\u10fc\u10ff\u124a\u124c\u124f\u1252\u1258\u125a\u125f\u1262\u128a"+ + "\u128c\u128f\u1292\u12b2\u12b4\u12b7\u12ba\u12c0\u12c2\u12c7\u12ca\u12d8"+ + "\u12da\u1312\u1314\u1317\u131a\u135c\u1382\u1391\u13a2\u13f6\u1403\u166e"+ + "\u1671\u1681\u1683\u169c\u16a2\u16ec\u16f3\u16fa\u1702\u170e\u1710\u1713"+ + "\u1722\u1733\u1742\u1753\u1762\u176e\u1770\u1772\u1782\u17b5\u17de\u1844"+ + "\u1846\u1879\u1882\u18aa\u18ac\u18f7\u1902\u1920\u1952\u196f\u1972\u1976"+ + "\u1982\u19ad\u19c3\u19c9\u1a02\u1a18\u1a22\u1a56\u1b07\u1b35\u1b47\u1b4d"+ + "\u1b85\u1ba2\u1bb0\u1bb1\u1bbc\u1be7\u1c02\u1c25\u1c4f\u1c51\u1c5c\u1c79"+ + "\u1ceb\u1cee\u1cf0\u1cf3\u1cf7\u1cf8\u2137\u213a\u2d32\u2d69\u2d82\u2d98"+ + "\u2da2\u2da8\u2daa\u2db0\u2db2\u2db8\u2dba\u2dc0\u2dc2\u2dc8\u2dca\u2dd0"+ + "\u2dd2\u2dd8\u2dda\u2de0\u3008\u303e\u3043\u3098\u30a1\u30fc\u3101\u312f"+ + "\u3133\u3190\u31a2\u31bc\u31f2\u3201\u3402\u4db7\u4e02\u9fce\ua002\ua016"+ + "\ua018\ua48e\ua4d2\ua4f9\ua502\ua60d\ua612\ua621\ua62c\ua62d\ua670\ua6e7"+ + "\ua7f9\ua803\ua805\ua807\ua809\ua80c\ua80e\ua824\ua842\ua875\ua884\ua8b5"+ + "\ua8f4\ua8f9\ua8fd\ua927\ua932\ua948\ua962\ua97e\ua986\ua9b4\ua9e2\ua9e6"+ + "\ua9e9\ua9f1\ua9fc\uaa00\uaa02\uaa2a\uaa42\uaa44\uaa46\uaa4d\uaa62\uaa71"+ + "\uaa73\uaa78\uaa7c\uaab1\uaab3\uaabf\uaac2\uaac4\uaadd\uaade\uaae2\uaaec"+ + "\uaaf4\uab08\uab0b\uab10\uab13\uab18\uab22\uab28\uab2a\uab30\uabc2\uabe4"+ + "\uac02\ud7a5\ud7b2\ud7c8\ud7cd\ud7fd\uf902\ufa6f\ufa72\ufadb\ufb1f\ufb2a"+ + "\ufb2c\ufb38\ufb3a\ufb3e\ufb40\ufbb3\ufbd5\ufd3f\ufd52\ufd91\ufd94\ufdc9"+ + "\ufdf2\ufdfd\ufe72\ufe76\ufe78\ufefe\uff68\uff71\uff73\uff9f\uffa2\uffc0"+ + "\uffc4\uffc9\uffcc\uffd1\uffd4\uffd9\uffdc\uffde\4\2\u16f0\u16f2\u2162"+ + "\u2171\5\2\u0905\u0905\u0940\u0942\u094b\u094e\5\2\u00af\u00af\u0602\u0605"+ + "\u06df\u06df\b\2aa\u2041\u2042\u2056\u2056\ufe35\ufe36\ufe4f\ufe51\uff41"+ + "\uff41\'\2\62;\u0662\u066b\u06f2\u06fb\u07c2\u07cb\u0968\u0971\u09e8\u09f1"+ + "\u0a68\u0a71\u0ae8\u0af1\u0b68\u0b71\u0be8\u0bf1\u0c68\u0c71\u0ce8\u0cf1"+ + "\u0d68\u0d71\u0de8\u0df1\u0e52\u0e5b\u0ed2\u0edb\u0f22\u0f2b\u1042\u104b"+ + "\u1092\u109b\u17e2\u17eb\u1812\u181b\u1948\u1951\u19d2\u19db\u1a82\u1a8b"+ + "\u1a92\u1a9b\u1b52\u1b5b\u1bb2\u1bbb\u1c42\u1c4b\u1c52\u1c5b\ua622\ua62b"+ + "\ua8d2\ua8db\ua902\ua90b\ua9d2\ua9db\ua9f2\ua9fb\uaa52\uaa5b\uabf2\uabfb"+ + "\uff12\uff1b\u07a4\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2"+ + "\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3"+ + "\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2"+ + "%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61"+ + "\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2"+ + "\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I"+ + "\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2"+ + "\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2"+ + "\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o"+ + "\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2"+ + "\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085"+ + "\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2"+ + "\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097"+ + "\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2"+ + "\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9"+ + "\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2"+ + "\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb"+ + "\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2"+ + "\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd"+ + "\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2"+ + "\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df"+ + "\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7\3\2\2"+ + "\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef\3\2\2\2\2\u00f1"+ + "\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2\2\2\u00f9\3\2\2"+ + "\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2\2\2\u0103"+ + "\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b\3\2\2"+ + "\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113\3\2\2\2\2\u0115"+ + "\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2\2\2\u011d\3\2\2"+ + "\2\2\u011f\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u0127"+ + "\3\2\2\2\2\u0129\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2\2\2\u012f\3\2\2"+ + "\2\2\u0131\3\2\2\2\2\u0133\3\2\2\2\2\u0135\3\2\2\2\2\u0137\3\2\2\2\2\u0139"+ + "\3\2\2\2\2\u013b\3\2\2\2\2\u013d\3\2\2\2\2\u013f\3\2\2\2\2\u0141\3\2\2"+ + "\2\2\u0143\3\2\2\2\2\u0145\3\2\2\2\2\u0147\3\2\2\2\2\u0149\3\2\2\2\2\u014b"+ + "\3\2\2\2\2\u014d\3\2\2\2\2\u014f\3\2\2\2\3\u0151\3\2\2\2\3\u0153\3\2\2"+ + "\2\3\u0155\3\2\2\2\3\u0157\3\2\2\2\3\u0159\3\2\2\2\3\u015b\3\2\2\2\3\u015d"+ + "\3\2\2\2\4\u015f\3\2\2\2\4\u0161\3\2\2\2\4\u0163\3\2\2\2\5\u0165\3\2\2"+ + "\2\5\u0167\3\2\2\2\5\u0169\3\2\2\2\5\u016b\3\2\2\2\5\u016d\3\2\2\2\5\u016f"+ + "\3\2\2\2\5\u0171\3\2\2\2\5\u0173\3\2\2\2\5\u0175\3\2\2\2\5\u0177\3\2\2"+ + "\2\5\u0179\3\2\2\2\5\u017b\3\2\2\2\5\u017d\3\2\2\2\5\u017f\3\2\2\2\5\u0181"+ + "\3\2\2\2\5\u0183\3\2\2\2\5\u0185\3\2\2\2\5\u0187\3\2\2\2\5\u0189\3\2\2"+ + "\2\5\u018b\3\2\2\2\5\u018d\3\2\2\2\5\u018f\3\2\2\2\5\u0191\3\2\2\2\5\u0193"+ + "\3\2\2\2\5\u0195\3\2\2\2\5\u0197\3\2\2\2\5\u0199\3\2\2\2\5\u019b\3\2\2"+ + "\2\5\u019d\3\2\2\2\6\u019f\3\2\2\2\6\u01a1\3\2\2\2\7\u01e1\3\2\2\2\t\u01e5"+ + "\3\2\2\2\13\u01f1\3\2\2\2\r\u0200\3\2\2\2\17\u020b\3\2\2\2\21\u021b\3"+ + "\2\2\2\23\u0221\3\2\2\2\25\u0225\3\2\2\2\27\u022e\3\2\2\2\31\u0232\3\2"+ + "\2\2\33\u0238\3\2\2\2\35\u0242\3\2\2\2\37\u0245\3\2\2\2!\u024f\3\2\2\2"+ + "#\u0255\3\2\2\2%\u025b\3\2\2\2\'\u0260\3\2\2\2)\u0265\3\2\2\2+\u026b\3"+ + "\2\2\2-\u026e\3\2\2\2/\u0273\3\2\2\2\61\u0278\3\2\2\2\63\u027e\3\2\2\2"+ + "\65\u0283\3\2\2\2\67\u028b\3\2\2\29\u0291\3\2\2\2;\u0297\3\2\2\2=\u02a0"+ + "\3\2\2\2?\u02a8\3\2\2\2A\u02b0\3\2\2\2C\u02b9\3\2\2\2E\u02c4\3\2\2\2G"+ + "\u02c7\3\2\2\2I\u02ce\3\2\2\2K\u02d6\3\2\2\2M\u02db\3\2\2\2O\u02e0\3\2"+ + "\2\2Q\u02e7\3\2\2\2S\u02ed\3\2\2\2U\u02f6\3\2\2\2W\u02fd\3\2\2\2Y\u0303"+ + "\3\2\2\2[\u030b\3\2\2\2]\u0311\3\2\2\2_\u0317\3\2\2\2a\u031b\3\2\2\2c"+ + "\u0323\3\2\2\2e\u0328\3\2\2\2g\u032c\3\2\2\2i\u0331\3\2\2\2k\u0337\3\2"+ + "\2\2m\u033a\3\2\2\2o\u0343\3\2\2\2q\u0346\3\2\2\2s\u034a\3\2\2\2u\u0354"+ + "\3\2\2\2w\u035d\3\2\2\2y\u0362\3\2\2\2{\u0365\3\2\2\2}\u036a\3\2\2\2\177"+ + "\u036e\3\2\2\2\u0081\u0373\3\2\2\2\u0083\u0378\3\2\2\2\u0085\u037f\3\2"+ + "\2\2\u0087\u0389\3\2\2\2\u0089\u038d\3\2\2\2\u008b\u0392\3\2\2\2\u008d"+ + "\u0399\3\2\2\2\u008f\u039c\3\2\2\2\u0091\u03a5\3\2\2\2\u0093\u03ad\3\2"+ + "\2\2\u0095\u03b1\3\2\2\2\u0097\u03ba\3\2\2\2\u0099\u03c1\3\2\2\2\u009b"+ + "\u03c9\3\2\2\2\u009d\u03d1\3\2\2\2\u009f\u03db\3\2\2\2\u00a1\u03e2\3\2"+ + "\2\2\u00a3\u03eb\3\2\2\2\u00a5\u03ef\3\2\2\2\u00a7\u03f6\3\2\2\2\u00a9"+ + "\u03fd\3\2\2\2\u00ab\u0403\3\2\2\2\u00ad\u040a\3\2\2\2\u00af\u0411\3\2"+ + "\2\2\u00b1\u0415\3\2\2\2\u00b3\u041b\3\2\2\2\u00b5\u0422\3\2\2\2\u00b7"+ + "\u042d\3\2\2\2\u00b9\u0434\3\2\2\2\u00bb\u043b\3\2\2\2\u00bd\u0442\3\2"+ + "\2\2\u00bf\u0449\3\2\2\2\u00c1\u044e\3\2\2\2\u00c3\u0454\3\2\2\2\u00c5"+ + "\u0459\3\2\2\2\u00c7\u045d\3\2\2\2\u00c9\u0464\3\2\2\2\u00cb\u0469\3\2"+ + "\2\2\u00cd\u046f\3\2\2\2\u00cf\u0479\3\2\2\2\u00d1\u0480\3\2\2\2\u00d3"+ + "\u0487\3\2\2\2\u00d5\u048d\3\2\2\2\u00d7\u0495\3\2\2\2\u00d9\u049a\3\2"+ + "\2\2\u00db\u04a3\3\2\2\2\u00dd\u04a8\3\2\2\2\u00df\u04ae\3\2\2\2\u00e1"+ + "\u04b4\3\2\2\2\u00e3\u04bb\3\2\2\2\u00e5\u04c0\3\2\2\2\u00e7\u04ce\3\2"+ + "\2\2\u00e9\u04d5\3\2\2\2\u00eb\u04fd\3\2\2\2\u00ed\u04ff\3\2\2\2\u00ef"+ + "\u0506\3\2\2\2\u00f1\u0510\3\2\2\2\u00f3\u051d\3\2\2\2\u00f5\u0520\3\2"+ + "\2\2\u00f7\u0524\3\2\2\2\u00f9\u0526\3\2\2\2\u00fb\u0528\3\2\2\2\u00fd"+ + "\u052a\3\2\2\2\u00ff\u052c\3\2\2\2\u0101\u052e\3\2\2\2\u0103\u0530\3\2"+ + "\2\2\u0105\u0532\3\2\2\2\u0107\u0534\3\2\2\2\u0109\u0536\3\2\2\2\u010b"+ + "\u0538\3\2\2\2\u010d\u053a\3\2\2\2\u010f\u053c\3\2\2\2\u0111\u053e\3\2"+ + "\2\2\u0113\u0540\3\2\2\2\u0115\u0542\3\2\2\2\u0117\u0544\3\2\2\2\u0119"+ + "\u0546\3\2\2\2\u011b\u0548\3\2\2\2\u011d\u054a\3\2\2\2\u011f\u054c\3\2"+ + "\2\2\u0121\u054e\3\2\2\2\u0123\u0550\3\2\2\2\u0125\u0552\3\2\2\2\u0127"+ + "\u0554\3\2\2\2\u0129\u0557\3\2\2\2\u012b\u055a\3\2\2\2\u012d\u055d\3\2"+ + "\2\2\u012f\u0560\3\2\2\2\u0131\u0563\3\2\2\2\u0133\u0566\3\2\2\2\u0135"+ + "\u0569\3\2\2\2\u0137\u056c\3\2\2\2\u0139\u056f\3\2\2\2\u013b\u0572\3\2"+ + "\2\2\u013d\u0575\3\2\2\2\u013f\u0578\3\2\2\2\u0141\u057b\3\2\2\2\u0143"+ + "\u057e\3\2\2\2\u0145\u0581\3\2\2\2\u0147\u0584\3\2\2\2\u0149\u0587\3\2"+ + "\2\2\u014b\u058a\3\2\2\2\u014d\u058d\3\2\2\2\u014f\u0590\3\2\2\2\u0151"+ + "\u0594\3\2\2\2\u0153\u0597\3\2\2\2\u0155\u0599\3\2\2\2\u0157\u059b\3\2"+ + "\2\2\u0159\u059e\3\2\2\2\u015b\u05a1\3\2\2\2\u015d\u05a6\3\2\2\2\u015f"+ + "\u05aa\3\2\2\2\u0161\u05af\3\2\2\2\u0163\u05b2\3\2\2\2\u0165\u05b7\3\2"+ + "\2\2\u0167\u05be\3\2\2\2\u0169\u05c4\3\2\2\2\u016b\u05cc\3\2\2\2\u016d"+ + "\u05d5\3\2\2\2\u016f\u05de\3\2\2\2\u0171\u05e6\3\2\2\2\u0173\u05ec\3\2"+ + "\2\2\u0175\u05f3\3\2\2\2\u0177\u05fb\3\2\2\2\u0179\u0603\3\2\2\2\u017b"+ + "\u060a\3\2\2\2\u017d\u0618\3\2\2\2\u017f\u0628\3\2\2\2\u0181\u0638\3\2"+ + "\2\2\u0183\u064b\3\2\2\2\u0185\u065a\3\2\2\2\u0187\u0665\3\2\2\2\u0189"+ + "\u066e\3\2\2\2\u018b\u0673\3\2\2\2\u018d\u0678\3\2\2\2\u018f\u067d\3\2"+ + "\2\2\u0191\u0683\3\2\2\2\u0193\u0689\3\2\2\2\u0195\u068f\3\2\2\2\u0197"+ + "\u0695\3\2\2\2\u0199\u06a1\3\2\2\2\u019b\u06a5\3\2\2\2\u019d\u06b1\3\2"+ + "\2\2\u019f\u06b7\3\2\2\2\u01a1\u06bd\3\2\2\2\u01a3\u06c3\3\2\2\2\u01a5"+ + "\u06c5\3\2\2\2\u01a7\u06cf\3\2\2\2\u01a9\u06d1\3\2\2\2\u01ab\u06dd\3\2"+ + "\2\2\u01ad\u06f5\3\2\2\2\u01af\u0710\3\2\2\2\u01b1\u0715\3\2\2\2\u01b3"+ + "\u0719\3\2\2\2\u01b5\u071b\3\2\2\2\u01b7\u071d\3\2\2\2\u01b9\u0726\3\2"+ + "\2\2\u01bb\u072d\3\2\2\2\u01bd\u0736\3\2\2\2\u01bf\u073a\3\2\2\2\u01c1"+ + "\u073e\3\2\2\2\u01c3\u0743\3\2\2\2\u01c5\u0747\3\2\2\2\u01c7\u075d\3\2"+ + "\2\2\u01c9\u0760\3\2\2\2\u01cb\u0762\3\2\2\2\u01cd\u0764\3\2\2\2\u01cf"+ + "\u0766\3\2\2\2\u01d1\u0768\3\2\2\2\u01d3\u076a\3\2\2\2\u01d5\u076c\3\2"+ + "\2\2\u01d7\u076e\3\2\2\2\u01d9\u0770\3\2\2\2\u01db\u0772\3\2\2\2\u01dd"+ + "\u0774\3\2\2\2\u01df\u0776\3\2\2\2\u01e1\u01e2\7\u00f1\2\2\u01e2\u01e3"+ + "\7\u00bd\2\2\u01e3\u01e4\7\u00c1\2\2\u01e4\b\3\2\2\2\u01e5\u01e6\7\61"+ + "\2\2\u01e6\u01e7\7\61\2\2\u01e7\u01e8\7\61\2\2\u01e8\u01ec\3\2\2\2\u01e9"+ + "\u01eb\5\u01a3\u00d0\2\u01ea\u01e9\3\2\2\2\u01eb\u01ee\3\2\2\2\u01ec\u01ea"+ + "\3\2\2\2\u01ec\u01ed\3\2\2\2\u01ed\u01ef\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ef"+ + "\u01f0\b\3\2\2\u01f0\n\3\2\2\2\u01f1\u01f2\7\61\2\2\u01f2\u01f3\7,\2\2"+ + "\u01f3\u01f4\7,\2\2\u01f4\u01f8\3\2\2\2\u01f5\u01f7\13\2\2\2\u01f6\u01f5"+ + "\3\2\2\2\u01f7\u01fa\3\2\2\2\u01f8\u01f9\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f9"+ + "\u01fb\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fb\u01fc\7,\2\2\u01fc\u01fd\7\61"+ + "\2\2\u01fd\u01fe\3\2\2\2\u01fe\u01ff\b\4\2\2\u01ff\f\3\2\2\2\u0200\u0201"+ + "\7\61\2\2\u0201\u0202\7\61\2\2\u0202\u0206\3\2\2\2\u0203\u0205\5\u01a3"+ + "\u00d0\2\u0204\u0203\3\2\2\2\u0205\u0208\3\2\2\2\u0206\u0204\3\2\2\2\u0206"+ + "\u0207\3\2\2\2\u0207\u0209\3\2\2\2\u0208\u0206\3\2\2\2\u0209\u020a\b\5"+ + "\2\2\u020a\16\3\2\2\2\u020b\u020c\7\61\2\2\u020c\u020d\7,\2\2\u020d\u0211"+ + "\3\2\2\2\u020e\u0210\13\2\2\2\u020f\u020e\3\2\2\2\u0210\u0213\3\2\2\2"+ + "\u0211\u0212\3\2\2\2\u0211\u020f\3\2\2\2\u0212\u0214\3\2\2\2\u0213\u0211"+ + "\3\2\2\2\u0214\u0215\7,\2\2\u0215\u0216\7\61\2\2\u0216\u0217\3\2\2\2\u0217"+ + "\u0218\b\6\2\2\u0218\20\3\2\2\2\u0219\u021c\5\u01b3\u00d8\2\u021a\u021c"+ + "\5\u01b1\u00d7\2\u021b\u0219\3\2\2\2\u021b\u021a\3\2\2\2\u021c\u021d\3"+ + "\2\2\2\u021d\u021b\3\2\2\2\u021d\u021e\3\2\2\2\u021e\u021f\3\2\2\2\u021f"+ + "\u0220\b\7\2\2\u0220\22\3\2\2\2\u0221\u0222\7%\2\2\u0222\u0223\3\2\2\2"+ + "\u0223\u0224\b\b\3\2\u0224\24\3\2\2\2\u0225\u0226\7c\2\2\u0226\u0227\7"+ + "d\2\2\u0227\u0228\7u\2\2\u0228\u0229\7v\2\2\u0229\u022a\7t\2\2\u022a\u022b"+ + "\7c\2\2\u022b\u022c\7e\2\2\u022c\u022d\7v\2\2\u022d\26\3\2\2\2\u022e\u022f"+ + "\7c\2\2\u022f\u0230\7f\2\2\u0230\u0231\7f\2\2\u0231\30\3\2\2\2\u0232\u0233"+ + "\7c\2\2\u0233\u0234\7n\2\2\u0234\u0235\7k\2\2\u0235\u0236\7c\2\2\u0236"+ + "\u0237\7u\2\2\u0237\32\3\2\2\2\u0238\u0239\7a\2\2\u0239\u023a\7a\2\2\u023a"+ + "\u023b\7c\2\2\u023b\u023c\7t\2\2\u023c\u023d\7i\2\2\u023d\u023e\7n\2\2"+ + "\u023e\u023f\7k\2\2\u023f\u0240\7u\2\2\u0240\u0241\7v\2\2\u0241\34\3\2"+ + "\2\2\u0242\u0243\7c\2\2\u0243\u0244\7u\2\2\u0244\36\3\2\2\2\u0245\u0246"+ + "\7c\2\2\u0246\u0247\7u\2\2\u0247\u0248\7e\2\2\u0248\u0249\7g\2\2\u0249"+ + "\u024a\7p\2\2\u024a\u024b\7f\2\2\u024b\u024c\7k\2\2\u024c\u024d\7p\2\2"+ + "\u024d\u024e\7i\2\2\u024e \3\2\2\2\u024f\u0250\7c\2\2\u0250\u0251\7u\2"+ + "\2\u0251\u0252\7{\2\2\u0252\u0253\7p\2\2\u0253\u0254\7e\2\2\u0254\"\3"+ + "\2\2\2\u0255\u0256\7c\2\2\u0256\u0257\7y\2\2\u0257\u0258\7c\2\2\u0258"+ + "\u0259\7k\2\2\u0259\u025a\7v\2\2\u025a$\3\2\2\2\u025b\u025c\7d\2\2\u025c"+ + "\u025d\7c\2\2\u025d\u025e\7u\2\2\u025e\u025f\7g\2\2\u025f&\3\2\2\2\u0260"+ + "\u0261\7d\2\2\u0261\u0262\7q\2\2\u0262\u0263\7q\2\2\u0263\u0264\7n\2\2"+ + "\u0264(\3\2\2\2\u0265\u0266\7d\2\2\u0266\u0267\7t\2\2\u0267\u0268\7g\2"+ + "\2\u0268\u0269\7c\2\2\u0269\u026a\7m\2\2\u026a*\3\2\2\2\u026b\u026c\7"+ + "d\2\2\u026c\u026d\7{\2\2\u026d,\3\2\2\2\u026e\u026f\7d\2\2\u026f\u0270"+ + "\7{\2\2\u0270\u0271\7v\2\2\u0271\u0272\7g\2\2\u0272.\3\2\2\2\u0273\u0274"+ + "\7e\2\2\u0274\u0275\7c\2\2\u0275\u0276\7u\2\2\u0276\u0277\7g\2\2\u0277"+ + "\60\3\2\2\2\u0278\u0279\7e\2\2\u0279\u027a\7c\2\2\u027a\u027b\7v\2\2\u027b"+ + "\u027c\7e\2\2\u027c\u027d\7j\2\2\u027d\62\3\2\2\2\u027e\u027f\7e\2\2\u027f"+ + "\u0280\7j\2\2\u0280\u0281\7c\2\2\u0281\u0282\7t\2\2\u0282\64\3\2\2\2\u0283"+ + "\u0284\7e\2\2\u0284\u0285\7j\2\2\u0285\u0286\7g\2\2\u0286\u0287\7e\2\2"+ + "\u0287\u0288\7m\2\2\u0288\u0289\7g\2\2\u0289\u028a\7f\2\2\u028a\66\3\2"+ + "\2\2\u028b\u028c\7e\2\2\u028c\u028d\7n\2\2\u028d\u028e\7c\2\2\u028e\u028f"+ + "\7u\2\2\u028f\u0290\7u\2\2\u02908\3\2\2\2\u0291\u0292\7e\2\2\u0292\u0293"+ + "\7q\2\2\u0293\u0294\7p\2\2\u0294\u0295\7u\2\2\u0295\u0296\7v\2\2\u0296"+ + ":\3\2\2\2\u0297\u0298\7e\2\2\u0298\u0299\7q\2\2\u0299\u029a\7p\2\2\u029a"+ + "\u029b\7v\2\2\u029b\u029c\7k\2\2\u029c\u029d\7p\2\2\u029d\u029e\7w\2\2"+ + "\u029e\u029f\7g\2\2\u029f<\3\2\2\2\u02a0\u02a1\7f\2\2\u02a1\u02a2\7g\2"+ + "\2\u02a2\u02a3\7e\2\2\u02a3\u02a4\7k\2\2\u02a4\u02a5\7o\2\2\u02a5\u02a6"+ + "\7c\2\2\u02a6\u02a7\7n\2\2\u02a7>\3\2\2\2\u02a8\u02a9\7f\2\2\u02a9\u02aa"+ + "\7g\2\2\u02aa\u02ab\7h\2\2\u02ab\u02ac\7c\2\2\u02ac\u02ad\7w\2\2\u02ad"+ + "\u02ae\7n\2\2\u02ae\u02af\7v\2\2\u02af@\3\2\2\2\u02b0\u02b1\7f\2\2\u02b1"+ + "\u02b2\7g\2\2\u02b2\u02b3\7n\2\2\u02b3\u02b4\7g\2\2\u02b4\u02b5\7i\2\2"+ + "\u02b5\u02b6\7c\2\2\u02b6\u02b7\7v\2\2\u02b7\u02b8\7g\2\2\u02b8B\3\2\2"+ + "\2\u02b9\u02ba\7f\2\2\u02ba\u02bb\7g\2\2\u02bb\u02bc\7u\2\2\u02bc\u02bd"+ + "\7e\2\2\u02bd\u02be\7g\2\2\u02be\u02bf\7p\2\2\u02bf\u02c0\7f\2\2\u02c0"+ + "\u02c1\7k\2\2\u02c1\u02c2\7p\2\2\u02c2\u02c3\7i\2\2\u02c3D\3\2\2\2\u02c4"+ + "\u02c5\7f\2\2\u02c5\u02c6\7q\2\2\u02c6F\3\2\2\2\u02c7\u02c8\7f\2\2\u02c8"+ + "\u02c9\7q\2\2\u02c9\u02ca\7w\2\2\u02ca\u02cb\7d\2\2\u02cb\u02cc\7n\2\2"+ + "\u02cc\u02cd\7g\2\2\u02cdH\3\2\2\2\u02ce\u02cf\7f\2\2\u02cf\u02d0\7{\2"+ + "\2\u02d0\u02d1\7p\2\2\u02d1\u02d2\7c\2\2\u02d2\u02d3\7o\2\2\u02d3\u02d4"+ + "\7k\2\2\u02d4\u02d5\7e\2\2\u02d5J\3\2\2\2\u02d6\u02d7\7g\2\2\u02d7\u02d8"+ + "\7n\2\2\u02d8\u02d9\7u\2\2\u02d9\u02da\7g\2\2\u02daL\3\2\2\2\u02db\u02dc"+ + "\7g\2\2\u02dc\u02dd\7p\2\2\u02dd\u02de\7w\2\2\u02de\u02df\7o\2\2\u02df"+ + "N\3\2\2\2\u02e0\u02e1\7g\2\2\u02e1\u02e2\7s\2\2\u02e2\u02e3\7w\2\2\u02e3"+ + "\u02e4\7c\2\2\u02e4\u02e5\7n\2\2\u02e5\u02e6\7u\2\2\u02e6P\3\2\2\2\u02e7"+ + "\u02e8\7g\2\2\u02e8\u02e9\7x\2\2\u02e9\u02ea\7g\2\2\u02ea\u02eb\7p\2\2"+ + "\u02eb\u02ec\7v\2\2\u02ecR\3\2\2\2\u02ed\u02ee\7g\2\2\u02ee\u02ef\7z\2"+ + "\2\u02ef\u02f0\7r\2\2\u02f0\u02f1\7n\2\2\u02f1\u02f2\7k\2\2\u02f2\u02f3"+ + "\7e\2\2\u02f3\u02f4\7k\2\2\u02f4\u02f5\7v\2\2\u02f5T\3\2\2\2\u02f6\u02f7"+ + "\7g\2\2\u02f7\u02f8\7z\2\2\u02f8\u02f9\7v\2\2\u02f9\u02fa\7g\2\2\u02fa"+ + "\u02fb\7t\2\2\u02fb\u02fc\7p\2\2\u02fcV\3\2\2\2\u02fd\u02fe\7h\2\2\u02fe"+ + "\u02ff\7c\2\2\u02ff\u0300\7n\2\2\u0300\u0301\7u\2\2\u0301\u0302\7g\2\2"+ + "\u0302X\3\2\2\2\u0303\u0304\7h\2\2\u0304\u0305\7k\2\2\u0305\u0306\7p\2"+ + "\2\u0306\u0307\7c\2\2\u0307\u0308\7n\2\2\u0308\u0309\7n\2\2\u0309\u030a"+ + "\7{\2\2\u030aZ\3\2\2\2\u030b\u030c\7h\2\2\u030c\u030d\7k\2\2\u030d\u030e"+ + "\7z\2\2\u030e\u030f\7g\2\2\u030f\u0310\7f\2\2\u0310\\\3\2\2\2\u0311\u0312"+ + "\7h\2\2\u0312\u0313\7n\2\2\u0313\u0314\7q\2\2\u0314\u0315\7c\2\2\u0315"+ + "\u0316\7v\2\2\u0316^\3\2\2\2\u0317\u0318\7h\2\2\u0318\u0319\7q\2\2\u0319"+ + "\u031a\7t\2\2\u031a`\3\2\2\2\u031b\u031c\7h\2\2\u031c\u031d\7q\2\2\u031d"+ + "\u031e\7t\2\2\u031e\u031f\7g\2\2\u031f\u0320\7c\2\2\u0320\u0321\7e\2\2"+ + "\u0321\u0322\7j\2\2\u0322b\3\2\2\2\u0323\u0324\7h\2\2\u0324\u0325\7t\2"+ + "\2\u0325\u0326\7q\2\2\u0326\u0327\7o\2\2\u0327d\3\2\2\2\u0328\u0329\7"+ + "i\2\2\u0329\u032a\7g\2\2\u032a\u032b\7v\2\2\u032bf\3\2\2\2\u032c\u032d"+ + "\7i\2\2\u032d\u032e\7q\2\2\u032e\u032f\7v\2\2\u032f\u0330\7q\2\2\u0330"+ + "h\3\2\2\2\u0331\u0332\7i\2\2\u0332\u0333\7t\2\2\u0333\u0334\7q\2\2\u0334"+ + "\u0335\7w\2\2\u0335\u0336\7r\2\2\u0336j\3\2\2\2\u0337\u0338\7k\2\2\u0338"+ + "\u0339\7h\2\2\u0339l\3\2\2\2\u033a\u033b\7k\2\2\u033b\u033c\7o\2\2\u033c"+ + "\u033d\7r\2\2\u033d\u033e\7n\2\2\u033e\u033f\7k\2\2\u033f\u0340\7e\2\2"+ + "\u0340\u0341\7k\2\2\u0341\u0342\7v\2\2\u0342n\3\2\2\2\u0343\u0344\7k\2"+ + "\2\u0344\u0345\7p\2\2\u0345p\3\2\2\2\u0346\u0347\7k\2\2\u0347\u0348\7"+ + "p\2\2\u0348\u0349\7v\2\2\u0349r\3\2\2\2\u034a\u034b\7k\2\2\u034b\u034c"+ + "\7p\2\2\u034c\u034d\7v\2\2\u034d\u034e\7g\2\2\u034e\u034f\7t\2\2\u034f"+ + "\u0350\7h\2\2\u0350\u0351\7c\2\2\u0351\u0352\7e\2\2\u0352\u0353\7g\2\2"+ + "\u0353t\3\2\2\2\u0354\u0355\7k\2\2\u0355\u0356\7p\2\2\u0356\u0357\7v\2"+ + "\2\u0357\u0358\7g\2\2\u0358\u0359\7t\2\2\u0359\u035a\7p\2\2\u035a\u035b"+ + "\7c\2\2\u035b\u035c\7n\2\2\u035cv\3\2\2\2\u035d\u035e\7k\2\2\u035e\u035f"+ + "\7p\2\2\u035f\u0360\7v\2\2\u0360\u0361\7q\2\2\u0361x\3\2\2\2\u0362\u0363"+ + "\7k\2\2\u0363\u0364\7u\2\2\u0364z\3\2\2\2\u0365\u0366\7l\2\2\u0366\u0367"+ + "\7q\2\2\u0367\u0368\7k\2\2\u0368\u0369\7p\2\2\u0369|\3\2\2\2\u036a\u036b"+ + "\7n\2\2\u036b\u036c\7g\2\2\u036c\u036d\7v\2\2\u036d~\3\2\2\2\u036e\u036f"+ + "\7n\2\2\u036f\u0370\7q\2\2\u0370\u0371\7e\2\2\u0371\u0372\7m\2\2\u0372"+ + "\u0080\3\2\2\2\u0373\u0374\7n\2\2\u0374\u0375\7q\2\2\u0375\u0376\7p\2"+ + "\2\u0376\u0377\7i\2\2\u0377\u0082\3\2\2\2\u0378\u0379\7p\2\2\u0379\u037a"+ + "\7c\2\2\u037a\u037b\7o\2\2\u037b\u037c\7g\2\2\u037c\u037d\7q\2\2\u037d"+ + "\u037e\7h\2\2\u037e\u0084\3\2\2\2\u037f\u0380\7p\2\2\u0380\u0381\7c\2"+ + "\2\u0381\u0382\7o\2\2\u0382\u0383\7g\2\2\u0383\u0384\7u\2\2\u0384\u0385"+ + "\7r\2\2\u0385\u0386\7c\2\2\u0386\u0387\7e\2\2\u0387\u0388\7g\2\2\u0388"+ + "\u0086\3\2\2\2\u0389\u038a\7p\2\2\u038a\u038b\7g\2\2\u038b\u038c\7y\2"+ + "\2\u038c\u0088\3\2\2\2\u038d\u038e\7p\2\2\u038e\u038f\7w\2\2\u038f\u0390"+ + "\7n\2\2\u0390\u0391\7n\2\2\u0391\u008a\3\2\2\2\u0392\u0393\7q\2\2\u0393"+ + "\u0394\7d\2\2\u0394\u0395\7l\2\2\u0395\u0396\7g\2\2\u0396\u0397\7e\2\2"+ + "\u0397\u0398\7v\2\2\u0398\u008c\3\2\2\2\u0399\u039a\7q\2\2\u039a\u039b"+ + "\7p\2\2\u039b\u008e\3\2\2\2\u039c\u039d\7q\2\2\u039d\u039e\7r\2\2\u039e"+ + "\u039f\7g\2\2\u039f\u03a0\7t\2\2\u03a0\u03a1\7c\2\2\u03a1\u03a2\7v\2\2"+ + "\u03a2\u03a3\7q\2\2\u03a3\u03a4\7t\2\2\u03a4\u0090\3\2\2\2\u03a5\u03a6"+ + "\7q\2\2\u03a6\u03a7\7t\2\2\u03a7\u03a8\7f\2\2\u03a8\u03a9\7g\2\2\u03a9"+ + "\u03aa\7t\2\2\u03aa\u03ab\7d\2\2\u03ab\u03ac\7{\2\2\u03ac\u0092\3\2\2"+ + "\2\u03ad\u03ae\7q\2\2\u03ae\u03af\7w\2\2\u03af\u03b0\7v\2\2\u03b0\u0094"+ + "\3\2\2\2\u03b1\u03b2\7q\2\2\u03b2\u03b3\7x\2\2\u03b3\u03b4\7g\2\2\u03b4"+ + "\u03b5\7t\2\2\u03b5\u03b6\7t\2\2\u03b6\u03b7\7k\2\2\u03b7\u03b8\7f\2\2"+ + "\u03b8\u03b9\7g\2\2\u03b9\u0096\3\2\2\2\u03ba\u03bb\7r\2\2\u03bb\u03bc"+ + "\7c\2\2\u03bc\u03bd\7t\2\2\u03bd\u03be\7c\2\2\u03be\u03bf\7o\2\2\u03bf"+ + "\u03c0\7u\2\2\u03c0\u0098\3\2\2\2\u03c1\u03c2\7r\2\2\u03c2\u03c3\7c\2"+ + "\2\u03c3\u03c4\7t\2\2\u03c4\u03c5\7v\2\2\u03c5\u03c6\7k\2\2\u03c6\u03c7"+ + "\7c\2\2\u03c7\u03c8\7n\2\2\u03c8\u009a\3\2\2\2\u03c9\u03ca\7r\2\2\u03ca"+ + "\u03cb\7t\2\2\u03cb\u03cc\7k\2\2\u03cc\u03cd\7x\2\2\u03cd\u03ce\7c\2\2"+ + "\u03ce\u03cf\7v\2\2\u03cf\u03d0\7g\2\2\u03d0\u009c\3\2\2\2\u03d1\u03d2"+ + "\7r\2\2\u03d2\u03d3\7t\2\2\u03d3\u03d4\7q\2\2\u03d4\u03d5\7v\2\2\u03d5"+ + "\u03d6\7g\2\2\u03d6\u03d7\7e\2\2\u03d7\u03d8\7v\2\2\u03d8\u03d9\7g\2\2"+ + "\u03d9\u03da\7f\2\2\u03da\u009e\3\2\2\2\u03db\u03dc\7r\2\2\u03dc\u03dd"+ + "\7w\2\2\u03dd\u03de\7d\2\2\u03de\u03df\7n\2\2\u03df\u03e0\7k\2\2\u03e0"+ + "\u03e1\7e\2\2\u03e1\u00a0\3\2\2\2\u03e2\u03e3\7t\2\2\u03e3\u03e4\7g\2"+ + "\2\u03e4\u03e5\7c\2\2\u03e5\u03e6\7f\2\2\u03e6\u03e7\7q\2\2\u03e7\u03e8"+ + "\7p\2\2\u03e8\u03e9\7n\2\2\u03e9\u03ea\7{\2\2\u03ea\u00a2\3\2\2\2\u03eb"+ + "\u03ec\7t\2\2\u03ec\u03ed\7g\2\2\u03ed\u03ee\7h\2\2\u03ee\u00a4\3\2\2"+ + "\2\u03ef\u03f0\7t\2\2\u03f0\u03f1\7g\2\2\u03f1\u03f2\7o\2\2\u03f2\u03f3"+ + "\7q\2\2\u03f3\u03f4\7x\2\2\u03f4\u03f5\7g\2\2\u03f5\u00a6\3\2\2\2\u03f6"+ + "\u03f7\7t\2\2\u03f7\u03f8\7g\2\2\u03f8\u03f9\7v\2\2\u03f9\u03fa\7w\2\2"+ + "\u03fa\u03fb\7t\2\2\u03fb\u03fc\7p\2\2\u03fc\u00a8\3\2\2\2\u03fd\u03fe"+ + "\7u\2\2\u03fe\u03ff\7d\2\2\u03ff\u0400\7{\2\2\u0400\u0401\7v\2\2\u0401"+ + "\u0402\7g\2\2\u0402\u00aa\3\2\2\2\u0403\u0404\7u\2\2\u0404\u0405\7g\2"+ + "\2\u0405\u0406\7c\2\2\u0406\u0407\7n\2\2\u0407\u0408\7g\2\2\u0408\u0409"+ + "\7f\2\2\u0409\u00ac\3\2\2\2\u040a\u040b\7u\2\2\u040b\u040c\7g\2\2\u040c"+ + "\u040d\7n\2\2\u040d\u040e\7g\2\2\u040e\u040f\7e\2\2\u040f\u0410\7v\2\2"+ + "\u0410\u00ae\3\2\2\2\u0411\u0412\7u\2\2\u0412\u0413\7g\2\2\u0413\u0414"+ + "\7v\2\2\u0414\u00b0\3\2\2\2\u0415\u0416\7u\2\2\u0416\u0417\7j\2\2\u0417"+ + "\u0418\7q\2\2\u0418\u0419\7t\2\2\u0419\u041a\7v\2\2\u041a\u00b2\3\2\2"+ + "\2\u041b\u041c\7u\2\2\u041c\u041d\7k\2\2\u041d\u041e\7|\2\2\u041e\u041f"+ + "\7g\2\2\u041f\u0420\7q\2\2\u0420\u0421\7h\2\2\u0421\u00b4\3\2\2\2\u0422"+ + "\u0423\7u\2\2\u0423\u0424\7v\2\2\u0424\u0425\7c\2\2\u0425\u0426\7e\2\2"+ + "\u0426\u0427\7m\2\2\u0427\u0428\7c\2\2\u0428\u0429\7n\2\2\u0429\u042a"+ + "\7n\2\2\u042a\u042b\7q\2\2\u042b\u042c\7e\2\2\u042c\u00b6\3\2\2\2\u042d"+ + "\u042e\7u\2\2\u042e\u042f\7v\2\2\u042f\u0430\7c\2\2\u0430\u0431\7v\2\2"+ + "\u0431\u0432\7k\2\2\u0432\u0433\7e\2\2\u0433\u00b8\3\2\2\2\u0434\u0435"+ + "\7u\2\2\u0435\u0436\7v\2\2\u0436\u0437\7t\2\2\u0437\u0438\7k\2\2\u0438"+ + "\u0439\7p\2\2\u0439\u043a\7i\2\2\u043a\u00ba\3\2\2\2\u043b\u043c\7u\2"+ + "\2\u043c\u043d\7v\2\2\u043d\u043e\7t\2\2\u043e\u043f\7w\2\2\u043f\u0440"+ + "\7e\2\2\u0440\u0441\7v\2\2\u0441\u00bc\3\2\2\2\u0442\u0443\7u\2\2\u0443"+ + "\u0444\7y\2\2\u0444\u0445\7k\2\2\u0445\u0446\7v\2\2\u0446\u0447\7e\2\2"+ + "\u0447\u0448\7j\2\2\u0448\u00be\3\2\2\2\u0449\u044a\7v\2\2\u044a\u044b"+ + "\7j\2\2\u044b\u044c\7k\2\2\u044c\u044d\7u\2\2\u044d\u00c0\3\2\2\2\u044e"+ + "\u044f\7v\2\2\u044f\u0450\7j\2\2\u0450\u0451\7t\2\2\u0451\u0452\7q\2\2"+ + "\u0452\u0453\7y\2\2\u0453\u00c2\3\2\2\2\u0454\u0455\7v\2\2\u0455\u0456"+ + "\7t\2\2\u0456\u0457\7w\2\2\u0457\u0458\7g\2\2\u0458\u00c4\3\2\2\2\u0459"+ + "\u045a\7v\2\2\u045a\u045b\7t\2\2\u045b\u045c\7{\2\2\u045c\u00c6\3\2\2"+ + "\2\u045d\u045e\7v\2\2\u045e\u045f\7{\2\2\u045f\u0460\7r\2\2\u0460\u0461"+ + "\7g\2\2\u0461\u0462\7q\2\2\u0462\u0463\7h\2\2\u0463\u00c8\3\2\2\2\u0464"+ + "\u0465\7w\2\2\u0465\u0466\7k\2\2\u0466\u0467\7p\2\2\u0467\u0468\7v\2\2"+ + "\u0468\u00ca\3\2\2\2\u0469\u046a\7w\2\2\u046a\u046b\7n\2\2\u046b\u046c"+ + "\7q\2\2\u046c\u046d\7p\2\2\u046d\u046e\7i\2\2\u046e\u00cc\3\2\2\2\u046f"+ + "\u0470\7w\2\2\u0470\u0471\7p\2\2\u0471\u0472\7e\2\2\u0472\u0473\7j\2\2"+ + "\u0473\u0474\7g\2\2\u0474\u0475\7e\2\2\u0475\u0476\7m\2\2\u0476\u0477"+ + "\7g\2\2\u0477\u0478\7f\2\2\u0478\u00ce\3\2\2\2\u0479\u047a\7w\2\2\u047a"+ + "\u047b\7p\2\2\u047b\u047c\7u\2\2\u047c\u047d\7c\2\2\u047d\u047e\7h\2\2"+ + "\u047e\u047f\7g\2\2\u047f\u00d0\3\2\2\2\u0480\u0481\7w\2\2\u0481\u0482"+ + "\7u\2\2\u0482\u0483\7j\2\2\u0483\u0484\7q\2\2\u0484\u0485\7t\2\2\u0485"+ + "\u0486\7v\2\2\u0486\u00d2\3\2\2\2\u0487\u0488\7w\2\2\u0488\u0489\7u\2"+ + "\2\u0489\u048a\7k\2\2\u048a\u048b\7p\2\2\u048b\u048c\7i\2\2\u048c\u00d4"+ + "\3\2\2\2\u048d\u048e\7x\2\2\u048e\u048f\7k\2\2\u048f\u0490\7t\2\2\u0490"+ + "\u0491\7v\2\2\u0491\u0492\7w\2\2\u0492\u0493\7c\2\2\u0493\u0494\7n\2\2"+ + "\u0494\u00d6\3\2\2\2\u0495\u0496\7x\2\2\u0496\u0497\7q\2\2\u0497\u0498"+ + "\7k\2\2\u0498\u0499\7f\2\2\u0499\u00d8\3\2\2\2\u049a\u049b\7x\2\2\u049b"+ + "\u049c\7q\2\2\u049c\u049d\7n\2\2\u049d\u049e\7c\2\2\u049e\u049f\7v\2\2"+ + "\u049f\u04a0\7k\2\2\u04a0\u04a1\7n\2\2\u04a1\u04a2\7g\2\2\u04a2\u00da"+ + "\3\2\2\2\u04a3\u04a4\7y\2\2\u04a4\u04a5\7j\2\2\u04a5\u04a6\7g\2\2\u04a6"+ + "\u04a7\7p\2\2\u04a7\u00dc\3\2\2\2\u04a8\u04a9\7y\2\2\u04a9\u04aa\7j\2"+ + "\2\u04aa\u04ab\7g\2\2\u04ab\u04ac\7t\2\2\u04ac\u04ad\7g\2\2\u04ad\u00de"+ + "\3\2\2\2\u04ae\u04af\7y\2\2\u04af\u04b0\7j\2\2\u04b0\u04b1\7k\2\2\u04b1"+ + "\u04b2\7n\2\2\u04b2\u04b3\7g\2\2\u04b3\u00e0\3\2\2\2\u04b4\u04b5\7{\2"+ + "\2\u04b5\u04b6\7k\2\2\u04b6\u04b7\7g\2\2\u04b7\u04b8\7n\2\2\u04b8\u04b9"+ + "\7f\2\2\u04b9\u00e2\3\2\2\2\u04ba\u04bc\7B\2\2\u04bb\u04ba\3\2\2\2\u04bb"+ + "\u04bc\3\2\2\2\u04bc\u04bd\3\2\2\2\u04bd\u04be\5\u01b7\u00da\2\u04be\u00e4"+ + "\3\2\2\2\u04bf\u04c1\t\2\2\2\u04c0\u04bf\3\2\2\2\u04c1\u04c2\3\2\2\2\u04c2"+ + "\u04c0\3\2\2\2\u04c2\u04c3\3\2\2\2\u04c3\u04c5\3\2\2\2\u04c4\u04c6\5\u01a7"+ + "\u00d2\2\u04c5\u04c4\3\2\2\2\u04c5\u04c6\3\2\2\2\u04c6\u04c7\3\2\2\2\u04c7"+ + "\u04c9\7\60\2\2\u04c8\u04ca\7B\2\2\u04c9\u04c8\3\2\2\2\u04c9\u04ca\3\2"+ + "\2\2\u04ca\u04cb\3\2\2\2\u04cb\u04cc\5\u01b7\u00da\2\u04cc\u00e6\3\2\2"+ + "\2\u04cd\u04cf\t\2\2\2\u04ce\u04cd\3\2\2\2\u04cf\u04d0\3\2\2\2\u04d0\u04ce"+ + "\3\2\2\2\u04d0\u04d1\3\2\2\2\u04d1\u04d3\3\2\2\2\u04d2\u04d4\5\u01a7\u00d2"+ + "\2\u04d3\u04d2\3\2\2\2\u04d3\u04d4\3\2\2\2\u04d4\u00e8\3\2\2\2\u04d5\u04d6"+ + "\7\62\2\2\u04d6\u04d8\t\3\2\2\u04d7\u04d9\5\u01c9\u00e3\2\u04d8\u04d7"+ + "\3\2\2\2\u04d9\u04da\3\2\2\2\u04da\u04d8\3\2\2\2\u04da\u04db\3\2\2\2\u04db"+ + "\u04dd\3\2\2\2\u04dc\u04de\5\u01a7\u00d2\2\u04dd\u04dc\3\2\2\2\u04dd\u04de"+ + "\3\2\2\2\u04de\u00ea\3\2\2\2\u04df\u04e1\t\2\2\2\u04e0\u04df\3\2\2\2\u04e1"+ + "\u04e4\3\2\2\2\u04e2\u04e0\3\2\2\2\u04e2\u04e3\3\2\2\2\u04e3\u04e5\3\2"+ + "\2\2\u04e4\u04e2\3\2\2\2\u04e5\u04e7\7\60\2\2\u04e6\u04e8\t\2\2\2\u04e7"+ + "\u04e6\3\2\2\2\u04e8\u04e9\3\2\2\2\u04e9\u04e7\3\2\2\2\u04e9\u04ea\3\2"+ + "\2\2\u04ea\u04ec\3\2\2\2\u04eb\u04ed\5\u01a9\u00d3\2\u04ec\u04eb\3\2\2"+ + "\2\u04ec\u04ed\3\2\2\2\u04ed\u04ef\3\2\2\2\u04ee\u04f0\t\4\2\2\u04ef\u04ee"+ + "\3\2\2\2\u04ef\u04f0\3\2\2\2\u04f0\u04fe\3\2\2\2\u04f1\u04f3\t\2\2\2\u04f2"+ + "\u04f1\3\2\2\2\u04f3\u04f4\3\2\2\2\u04f4\u04f2\3\2\2\2\u04f4\u04f5\3\2"+ + "\2\2\u04f5\u04fb\3\2\2\2\u04f6\u04fc\t\4\2\2\u04f7\u04f9\5\u01a9\u00d3"+ + "\2\u04f8\u04fa\t\4\2\2\u04f9\u04f8\3\2\2\2\u04f9\u04fa\3\2\2\2\u04fa\u04fc"+ + "\3\2\2\2\u04fb\u04f6\3\2\2\2\u04fb\u04f7\3\2\2\2\u04fc\u04fe\3\2\2\2\u04fd"+ + "\u04e2\3\2\2\2\u04fd\u04f2\3\2\2\2\u04fe\u00ec\3\2\2\2\u04ff\u0502\7)"+ + "\2\2\u0500\u0503\n\5\2\2\u0501\u0503\5\u01ab\u00d4\2\u0502\u0500\3\2\2"+ + "\2\u0502\u0501\3\2\2\2\u0503\u0504\3\2\2\2\u0504\u0505\7)\2\2\u0505\u00ee"+ + "\3\2\2\2\u0506\u050b\7$\2\2\u0507\u050a\n\6\2\2\u0508\u050a\5\u01ab\u00d4"+ + "\2\u0509\u0507\3\2\2\2\u0509\u0508\3\2\2\2\u050a\u050d\3\2\2\2\u050b\u0509"+ + "\3\2\2\2\u050b\u050c\3\2\2\2\u050c\u050e\3\2\2\2\u050d\u050b\3\2\2\2\u050e"+ + "\u050f\7$\2\2\u050f\u00f0\3\2\2\2\u0510\u0511\7B\2\2\u0511\u0512\7$\2"+ + "\2\u0512\u0518\3\2\2\2\u0513\u0517\n\7\2\2\u0514\u0515\7$\2\2\u0515\u0517"+ + "\7$\2\2\u0516\u0513\3\2\2\2\u0516\u0514\3\2\2\2\u0517\u051a\3\2\2\2\u0518"+ + "\u0516\3\2\2\2\u0518\u0519\3\2\2\2\u0519\u051b\3\2\2\2\u051a\u0518\3\2"+ + "\2\2\u051b\u051c\7$\2\2\u051c\u00f2\3\2\2\2\u051d\u051e\7&\2\2\u051e\u051f"+ + "\7$\2\2\u051f\u00f4\3\2\2\2\u0520\u0521\7&\2\2\u0521\u0522\7B\2\2\u0522"+ + "\u0523\7$\2\2\u0523\u00f6\3\2\2\2\u0524\u0525\7}\2\2\u0525\u00f8\3\2\2"+ + "\2\u0526\u0527\7\177\2\2\u0527\u00fa\3\2\2\2\u0528\u0529\7]\2\2\u0529"+ + "\u00fc\3\2\2\2\u052a\u052b\7_\2\2\u052b\u00fe\3\2\2\2\u052c\u052d\7*\2"+ + "\2\u052d\u0100\3\2\2\2\u052e\u052f\7+\2\2\u052f\u0102\3\2\2\2\u0530\u0531"+ + "\7\60\2\2\u0531\u0104\3\2\2\2\u0532\u0533\7.\2\2\u0533\u0106\3\2\2\2\u0534"+ + "\u0535\7<\2\2\u0535\u0108\3\2\2\2\u0536\u0537\7=\2\2\u0537\u010a\3\2\2"+ + "\2\u0538\u0539\7-\2\2\u0539\u010c\3\2\2\2\u053a\u053b\7/\2\2\u053b\u010e"+ + "\3\2\2\2\u053c\u053d\7,\2\2\u053d\u0110\3\2\2\2\u053e\u053f\7\61\2\2\u053f"+ + "\u0112\3\2\2\2\u0540\u0541\7\'\2\2\u0541\u0114\3\2\2\2\u0542\u0543\7("+ + "\2\2\u0543\u0116\3\2\2\2\u0544\u0545\7~\2\2\u0545\u0118\3\2\2\2\u0546"+ + "\u0547\7`\2\2\u0547\u011a\3\2\2\2\u0548\u0549\7#\2\2\u0549\u011c\3\2\2"+ + "\2\u054a\u054b\7\u0080\2\2\u054b\u011e\3\2\2\2\u054c\u054d\7?\2\2\u054d"+ + "\u0120\3\2\2\2\u054e\u054f\7>\2\2\u054f\u0122\3\2\2\2\u0550\u0551\7@\2"+ + "\2\u0551\u0124\3\2\2\2\u0552\u0553\7A\2\2\u0553\u0126\3\2\2\2\u0554\u0555"+ + "\7<\2\2\u0555\u0556\7<\2\2\u0556\u0128\3\2\2\2\u0557\u0558\7A\2\2\u0558"+ + "\u0559\7A\2\2\u0559\u012a\3\2\2\2\u055a\u055b\7-\2\2\u055b\u055c\7-\2"+ + "\2\u055c\u012c\3\2\2\2\u055d\u055e\7/\2\2\u055e\u055f\7/\2\2\u055f\u012e"+ + "\3\2\2\2\u0560\u0561\7(\2\2\u0561\u0562\7(\2\2\u0562\u0130\3\2\2\2\u0563"+ + "\u0564\7~\2\2\u0564\u0565\7~\2\2\u0565\u0132\3\2\2\2\u0566\u0567\7/\2"+ + "\2\u0567\u0568\7@\2\2\u0568\u0134\3\2\2\2\u0569\u056a\7?\2\2\u056a\u056b"+ + "\7?\2\2\u056b\u0136\3\2\2\2\u056c\u056d\7#\2\2\u056d\u056e\7?\2\2\u056e"+ + "\u0138\3\2\2\2\u056f\u0570\7>\2\2\u0570\u0571\7?\2\2\u0571\u013a\3\2\2"+ + "\2\u0572\u0573\7@\2\2\u0573\u0574\7?\2\2\u0574\u013c\3\2\2\2\u0575\u0576"+ + "\7-\2\2\u0576\u0577\7?\2\2\u0577\u013e\3\2\2\2\u0578\u0579\7/\2\2\u0579"+ + "\u057a\7?\2\2\u057a\u0140\3\2\2\2\u057b\u057c\7,\2\2\u057c\u057d\7?\2"+ + "\2\u057d\u0142\3\2\2\2\u057e\u057f\7\61\2\2\u057f\u0580\7?\2\2\u0580\u0144"+ + "\3\2\2\2\u0581\u0582\7\'\2\2\u0582\u0583\7?\2\2\u0583\u0146\3\2\2\2\u0584"+ + "\u0585\7(\2\2\u0585\u0586\7?\2\2\u0586\u0148\3\2\2\2\u0587\u0588\7~\2"+ + "\2\u0588\u0589\7?\2\2\u0589\u014a\3\2\2\2\u058a\u058b\7`\2\2\u058b\u058c"+ + "\7?\2\2\u058c\u014c\3\2\2\2\u058d\u058e\7>\2\2\u058e\u058f\7>\2\2\u058f"+ + "\u014e\3\2\2\2\u0590\u0591\7>\2\2\u0591\u0592\7>\2\2\u0592\u0593\7?\2"+ + "\2\u0593\u0150\3\2\2\2\u0594\u0595\7}\2\2\u0595\u0596\7}\2\2\u0596\u0152"+ + "\3\2\2\2\u0597\u0598\7}\2\2\u0598\u0154\3\2\2\2\u0599\u059a\5\u01ad\u00d5"+ + "\2\u059a\u0156\3\2\2\2\u059b\u059c\7$\2\2\u059c\u059d\7$\2\2\u059d\u0158"+ + "\3\2\2\2\u059e\u059f\7$\2\2\u059f\u015a\3\2\2\2\u05a0\u05a2\n\b\2\2\u05a1"+ + "\u05a0\3\2\2\2\u05a2\u05a3\3\2\2\2\u05a3\u05a1\3\2\2\2\u05a3\u05a4\3\2"+ + "\2\2\u05a4\u015c\3\2\2\2\u05a5\u05a7\n\t\2\2\u05a6\u05a5\3\2\2\2\u05a7"+ + "\u05a8\3\2\2\2\u05a8\u05a6\3\2\2\2\u05a8\u05a9\3\2\2\2\u05a9\u015e\3\2"+ + "\2\2\u05aa\u05ab\7\177\2\2\u05ab\u05ac\7\177\2\2\u05ac\u05ad\3\2\2\2\u05ad"+ + "\u05ae\b\u00ae\4\2\u05ae\u0160\3\2\2\2\u05af\u05b0\7\177\2\2\u05b0\u0162"+ + "\3\2\2\2\u05b1\u05b3\n\n\2\2\u05b2\u05b1\3\2\2\2\u05b3\u05b4\3\2\2\2\u05b4"+ + "\u05b2\3\2\2\2\u05b4\u05b5\3\2\2\2\u05b5\u0164\3\2\2\2\u05b6\u05b8\5\u01b3"+ + "\u00d8\2\u05b7\u05b6\3\2\2\2\u05b8\u05b9\3\2\2\2\u05b9\u05b7\3\2\2\2\u05b9"+ + "\u05ba\3\2\2\2\u05ba\u05bb\3\2\2\2\u05bb\u05bc\b\u00b1\2\2\u05bc\u0166"+ + "\3\2\2\2\u05bd\u05bf\t\2\2\2\u05be\u05bd\3\2\2\2\u05bf\u05c0\3\2\2\2\u05c0"+ + "\u05be\3\2\2\2\u05c0\u05c1\3\2\2\2\u05c1\u05c2\3\2\2\2\u05c2\u05c3\b\u00b2"+ + "\2\2\u05c3\u0168\3\2\2\2\u05c4\u05c5\7v\2\2\u05c5\u05c6\7t\2\2\u05c6\u05c7"+ + "\7w\2\2\u05c7\u05c8\7g\2\2\u05c8\u05c9\3\2\2\2\u05c9\u05ca\b\u00b3\2\2"+ + "\u05ca\u05cb\b\u00b3\5\2\u05cb\u016a\3\2\2\2\u05cc\u05cd\7h\2\2\u05cd"+ + "\u05ce\7c\2\2\u05ce\u05cf\7n\2\2\u05cf\u05d0\7u\2\2\u05d0\u05d1\7g\2\2"+ + "\u05d1\u05d2\3\2\2\2\u05d2\u05d3\b\u00b4\2\2\u05d3\u05d4\b\u00b4\6\2\u05d4"+ + "\u016c\3\2\2\2\u05d5\u05d6\7f\2\2\u05d6\u05d7\7g\2\2\u05d7\u05d8\7h\2"+ + "\2\u05d8\u05d9\7k\2\2\u05d9\u05da\7p\2\2\u05da\u05db\7g\2\2\u05db\u05dc"+ + "\3\2\2\2\u05dc\u05dd\b\u00b5\2\2\u05dd\u016e\3\2\2\2\u05de\u05df\7w\2"+ + "\2\u05df\u05e0\7p\2\2\u05e0\u05e1\7f\2\2\u05e1\u05e2\7g\2\2\u05e2\u05e3"+ + "\7h\2\2\u05e3\u05e4\3\2\2\2\u05e4\u05e5\b\u00b6\2\2\u05e5\u0170\3\2\2"+ + "\2\u05e6\u05e7\7k\2\2\u05e7\u05e8\7h\2\2\u05e8\u05e9\3\2\2\2\u05e9\u05ea"+ + "\b\u00b7\2\2\u05ea\u05eb\b\u00b7\7\2\u05eb\u0172\3\2\2\2\u05ec\u05ed\7"+ + "g\2\2\u05ed\u05ee\7n\2\2\u05ee\u05ef\7k\2\2\u05ef\u05f0\7h\2\2\u05f0\u05f1"+ + "\3\2\2\2\u05f1\u05f2\b\u00b8\2\2\u05f2\u0174\3\2\2\2\u05f3\u05f4\7g\2"+ + "\2\u05f4\u05f5\7n\2\2\u05f5\u05f6\7u\2\2\u05f6\u05f7\7g\2\2\u05f7\u05f8"+ + "\3\2\2\2\u05f8\u05f9\b\u00b9\2\2\u05f9\u05fa\b\u00b9\b\2\u05fa\u0176\3"+ + "\2\2\2\u05fb\u05fc\7g\2\2\u05fc\u05fd\7p\2\2\u05fd\u05fe\7f\2\2\u05fe"+ + "\u05ff\7k\2\2\u05ff\u0600\7h\2\2\u0600\u0601\3\2\2\2\u0601\u0602\b\u00ba"+ + "\2\2\u0602\u0178\3\2\2\2\u0603\u0604\7n\2\2\u0604\u0605\7k\2\2\u0605\u0606"+ + "\7p\2\2\u0606\u0607\7g\2\2\u0607\u0608\3\2\2\2\u0608\u0609\b\u00bb\2\2"+ + "\u0609\u017a\3\2\2\2\u060a\u060b\7g\2\2\u060b\u060c\7t\2\2\u060c\u060d"+ + "\7t\2\2\u060d\u060e\7q\2\2\u060e\u060f\7t\2\2\u060f\u0611\3\2\2\2\u0610"+ + "\u0612\5\u01b3\u00d8\2\u0611\u0610\3\2\2\2\u0612\u0613\3\2\2\2\u0613\u0611"+ + "\3\2\2\2\u0613\u0614\3\2\2\2\u0614\u0615\3\2\2\2\u0615\u0616\b\u00bc\2"+ + "\2\u0616\u0617\b\u00bc\t\2\u0617\u017c\3\2\2\2\u0618\u0619\7y\2\2\u0619"+ + "\u061a\7c\2\2\u061a\u061b\7t\2\2\u061b\u061c\7p\2\2\u061c\u061d\7k\2\2"+ + "\u061d\u061e\7p\2\2\u061e\u061f\7i\2\2\u061f\u0621\3\2\2\2\u0620\u0622"+ + "\5\u01b3\u00d8\2\u0621\u0620\3\2\2\2\u0622\u0623\3\2\2\2\u0623\u0621\3"+ + "\2\2\2\u0623\u0624\3\2\2\2\u0624\u0625\3\2\2\2\u0625\u0626\b\u00bd\2\2"+ + "\u0626\u0627\b\u00bd\t\2\u0627\u017e\3\2\2\2\u0628\u0629\7t\2\2\u0629"+ + "\u062a\7g\2\2\u062a\u062b\7i\2\2\u062b\u062c\7k\2\2\u062c\u062d\7q\2\2"+ + "\u062d\u062e\7p\2\2\u062e\u0632\3\2\2\2\u062f\u0631\5\u01b3\u00d8\2\u0630"+ + "\u062f\3\2\2\2\u0631\u0634\3\2\2\2\u0632\u0630\3\2\2\2\u0632\u0633\3\2"+ + "\2\2\u0633\u0635\3\2\2\2\u0634\u0632\3\2\2\2\u0635\u0636\b\u00be\2\2\u0636"+ + "\u0637\b\u00be\t\2\u0637\u0180\3\2\2\2\u0638\u0639\7g\2\2\u0639\u063a"+ + "\7p\2\2\u063a\u063b\7f\2\2\u063b\u063c\7t\2\2\u063c\u063d\7g\2\2\u063d"+ + "\u063e\7i\2\2\u063e\u063f\7k\2\2\u063f\u0640\7q\2\2\u0640\u0641\7p\2\2"+ + "\u0641\u0645\3\2\2\2\u0642\u0644\5\u01b3\u00d8\2\u0643\u0642\3\2\2\2\u0644"+ + "\u0647\3\2\2\2\u0645\u0643\3\2\2\2\u0645\u0646\3\2\2\2\u0646\u0648\3\2"+ + "\2\2\u0647\u0645\3\2\2\2\u0648\u0649\b\u00bf\2\2\u0649\u064a\b\u00bf\t"+ + "\2\u064a\u0182\3\2\2\2\u064b\u064c\7r\2\2\u064c\u064d\7t\2\2\u064d\u064e"+ + "\7c\2\2\u064e\u064f\7i\2\2\u064f\u0650\7o\2\2\u0650\u0651\7c\2\2\u0651"+ + "\u0653\3\2\2\2\u0652\u0654\5\u01b3\u00d8\2\u0653\u0652\3\2\2\2\u0654\u0655"+ + "\3\2\2\2\u0655\u0653\3\2\2\2\u0655\u0656\3\2\2\2\u0656\u0657\3\2\2\2\u0657"+ + "\u0658\b\u00c0\2\2\u0658\u0659\b\u00c0\t\2\u0659\u0184\3\2\2\2\u065a\u065b"+ + "\7f\2\2\u065b\u065c\7g\2\2\u065c\u065d\7h\2\2\u065d\u065e\7c\2\2\u065e"+ + "\u065f\7w\2\2\u065f\u0660\7n\2\2\u0660\u0661\7v\2\2\u0661\u0662\3\2\2"+ + "\2\u0662\u0663\b\u00c1\2\2\u0663\u0664\b\u00c1\n\2\u0664\u0186\3\2\2\2"+ + "\u0665\u0666\7j\2\2\u0666\u0667\7k\2\2\u0667\u0668\7f\2\2\u0668\u0669"+ + "\7f\2\2\u0669\u066a\7g\2\2\u066a\u066b\7p\2\2\u066b\u066c\3\2\2\2\u066c"+ + "\u066d\b\u00c2\2\2\u066d\u0188\3\2\2\2\u066e\u066f\7*\2\2\u066f\u0670"+ + "\3\2\2\2\u0670\u0671\b\u00c3\2\2\u0671\u0672\b\u00c3\13\2\u0672\u018a"+ + "\3\2\2\2\u0673\u0674\7+\2\2\u0674\u0675\3\2\2\2\u0675\u0676\b\u00c4\2"+ + "\2\u0676\u0677\b\u00c4\f\2\u0677\u018c\3\2\2\2\u0678\u0679\7#\2\2\u0679"+ + "\u067a\3\2\2\2\u067a\u067b\b\u00c5\2\2\u067b\u067c\b\u00c5\r\2\u067c\u018e"+ + "\3\2\2\2\u067d\u067e\7?\2\2\u067e\u067f\7?\2\2\u067f\u0680\3\2\2\2\u0680"+ + "\u0681\b\u00c6\2\2\u0681\u0682\b\u00c6\16\2\u0682\u0190\3\2\2\2\u0683"+ + "\u0684\7#\2\2\u0684\u0685\7?\2\2\u0685\u0686\3\2\2\2\u0686\u0687\b\u00c7"+ + "\2\2\u0687\u0688\b\u00c7\17\2\u0688\u0192\3\2\2\2\u0689\u068a\7(\2\2\u068a"+ + "\u068b\7(\2\2\u068b\u068c\3\2\2\2\u068c\u068d\b\u00c8\2\2\u068d\u068e"+ + "\b\u00c8\20\2\u068e\u0194\3\2\2\2\u068f\u0690\7~\2\2\u0690\u0691\7~\2"+ + "\2\u0691\u0692\3\2\2\2\u0692\u0693\b\u00c9\2\2\u0693\u0694\b\u00c9\21"+ + "\2\u0694\u0196\3\2\2\2\u0695\u0699\7$\2\2\u0696\u0698\n\13\2\2\u0697\u0696"+ + "\3\2\2\2\u0698\u069b\3\2\2\2\u0699\u0697\3\2\2\2\u0699\u069a\3\2\2\2\u069a"+ + "\u069c\3\2\2\2\u069b\u0699\3\2\2\2\u069c\u069d\7$\2\2\u069d\u069e\3\2"+ + "\2\2\u069e\u069f\b\u00ca\2\2\u069f\u06a0\b\u00ca\22\2\u06a0\u0198\3\2"+ + "\2\2\u06a1\u06a2\5\u01b7\u00da\2\u06a2\u06a3\3\2\2\2\u06a3\u06a4\b\u00cb"+ + "\2\2\u06a4\u019a\3\2\2\2\u06a5\u06a6\7\61\2\2\u06a6\u06a7\7\61\2\2\u06a7"+ + "\u06ab\3\2\2\2\u06a8\u06aa\n\f\2\2\u06a9\u06a8\3\2\2\2\u06aa\u06ad\3\2"+ + "\2\2\u06ab\u06a9\3\2\2\2\u06ab\u06ac\3\2\2\2\u06ac\u06ae\3\2\2\2\u06ad"+ + "\u06ab\3\2\2\2\u06ae\u06af\b\u00cc\2\2\u06af\u06b0\b\u00cc\23\2\u06b0"+ + "\u019c\3\2\2\2\u06b1\u06b2\5\u01b1\u00d7\2\u06b2\u06b3\3\2\2\2\u06b3\u06b4"+ + "\b\u00cd\2\2\u06b4\u06b5\b\u00cd\24\2\u06b5\u019e\3\2\2\2\u06b6\u06b8"+ + "\n\f\2\2\u06b7\u06b6\3\2\2\2\u06b8\u06b9\3\2\2\2\u06b9\u06b7\3\2\2\2\u06b9"+ + "\u06ba\3\2\2\2\u06ba\u06bb\3\2\2\2\u06bb\u06bc\b\u00ce\2\2\u06bc\u01a0"+ + "\3\2\2\2\u06bd\u06be\5\u01b1\u00d7\2\u06be\u06bf\3\2\2\2\u06bf\u06c0\b"+ + "\u00cf\2\2\u06c0\u06c1\b\u00cf\25\2\u06c1\u06c2\b\u00cf\24\2\u06c2\u01a2"+ + "\3\2\2\2\u06c3\u06c4\n\f\2\2\u06c4\u01a4\3\2\2\2\u06c5\u06c6\t\f\2\2\u06c6"+ + "\u01a6\3\2\2\2\u06c7\u06c9\t\r\2\2\u06c8\u06c7\3\2\2\2\u06c8\u06c9\3\2"+ + "\2\2\u06c9\u06ca\3\2\2\2\u06ca\u06d0\t\16\2\2\u06cb\u06cd\t\16\2\2\u06cc"+ + "\u06cb\3\2\2\2\u06cc\u06cd\3\2\2\2\u06cd\u06ce\3\2\2\2\u06ce\u06d0\t\r"+ + "\2\2\u06cf\u06c8\3\2\2\2\u06cf\u06cc\3\2\2\2\u06d0\u01a8\3\2\2\2\u06d1"+ + "\u06d3\t\17\2\2\u06d2\u06d4\t\20\2\2\u06d3\u06d2\3\2\2\2\u06d3\u06d4\3"+ + "\2\2\2\u06d4\u06d6\3\2\2\2\u06d5\u06d7\t\2\2\2\u06d6\u06d5\3\2\2\2\u06d7"+ + "\u06d8\3\2\2\2\u06d8\u06d6\3\2\2\2\u06d8\u06d9\3\2\2\2\u06d9\u01aa\3\2"+ + "\2\2\u06da\u06de\5\u01ad\u00d5\2\u06db\u06de\5\u01af\u00d6\2\u06dc\u06de"+ + "\5\u01c7\u00e2\2\u06dd\u06da\3\2\2\2\u06dd\u06db\3\2\2\2\u06dd\u06dc\3"+ + "\2\2\2\u06de\u01ac\3\2\2\2\u06df\u06e0\7^\2\2\u06e0\u06f6\7)\2\2\u06e1"+ + "\u06e2\7^\2\2\u06e2\u06f6\7$\2\2\u06e3\u06e4\7^\2\2\u06e4\u06f6\7^\2\2"+ + "\u06e5\u06e6\7^\2\2\u06e6\u06f6\7\62\2\2\u06e7\u06e8\7^\2\2\u06e8\u06f6"+ + "\7c\2\2\u06e9\u06ea\7^\2\2\u06ea\u06f6\7d\2\2\u06eb\u06ec\7^\2\2\u06ec"+ + "\u06f6\7h\2\2\u06ed\u06ee\7^\2\2\u06ee\u06f6\7p\2\2\u06ef\u06f0\7^\2\2"+ + "\u06f0\u06f6\7t\2\2\u06f1\u06f2\7^\2\2\u06f2\u06f6\7v\2\2\u06f3\u06f4"+ + "\7^\2\2\u06f4\u06f6\7x\2\2\u06f5\u06df\3\2\2\2\u06f5\u06e1\3\2\2\2\u06f5"+ + "\u06e3\3\2\2\2\u06f5\u06e5\3\2\2\2\u06f5\u06e7\3\2\2\2\u06f5\u06e9\3\2"+ + "\2\2\u06f5\u06eb\3\2\2\2\u06f5\u06ed\3\2\2\2\u06f5\u06ef\3\2\2\2\u06f5"+ + "\u06f1\3\2\2\2\u06f5\u06f3\3\2\2\2\u06f6\u01ae\3\2\2\2\u06f7\u06f8\7^"+ + "\2\2\u06f8\u06f9\7z\2\2\u06f9\u06fa\3\2\2\2\u06fa\u0711\5\u01c9\u00e3"+ + "\2\u06fb\u06fc\7^\2\2\u06fc\u06fd\7z\2\2\u06fd\u06fe\3\2\2\2\u06fe\u06ff"+ + "\5\u01c9\u00e3\2\u06ff\u0700\5\u01c9\u00e3\2\u0700\u0711\3\2\2\2\u0701"+ + "\u0702\7^\2\2\u0702\u0703\7z\2\2\u0703\u0704\3\2\2\2\u0704\u0705\5\u01c9"+ + "\u00e3\2\u0705\u0706\5\u01c9\u00e3\2\u0706\u0707\5\u01c9\u00e3\2\u0707"+ + "\u0711\3\2\2\2\u0708\u0709\7^\2\2\u0709\u070a\7z\2\2\u070a\u070b\3\2\2"+ + "\2\u070b\u070c\5\u01c9\u00e3\2\u070c\u070d\5\u01c9\u00e3\2\u070d\u070e"+ + "\5\u01c9\u00e3\2\u070e\u070f\5\u01c9\u00e3\2\u070f\u0711\3\2\2\2\u0710"+ + "\u06f7\3\2\2\2\u0710\u06fb\3\2\2\2\u0710\u0701\3\2\2\2\u0710\u0708\3\2"+ + "\2\2\u0711\u01b0\3\2\2\2\u0712\u0713\7\17\2\2\u0713\u0716\7\f\2\2\u0714"+ + "\u0716\t\f\2\2\u0715\u0712\3\2\2\2\u0715\u0714\3\2\2\2\u0716\u01b2\3\2"+ + "\2\2\u0717\u071a\5\u01b5\u00d9\2\u0718\u071a\t\21\2\2\u0719\u0717\3\2"+ + "\2\2\u0719\u0718\3\2\2\2\u071a\u01b4\3\2\2\2\u071b\u071c\t\22\2\2\u071c"+ + "\u01b6\3\2\2\2\u071d\u0721\5\u01b9\u00db\2\u071e\u0720\5\u01bb\u00dc\2"+ + "\u071f\u071e\3\2\2\2\u0720\u0723\3\2\2\2\u0721\u071f\3\2\2\2\u0721\u0722"+ + "\3\2\2\2\u0722\u01b8\3\2\2\2\u0723\u0721\3\2\2\2\u0724\u0727\5\u01bd\u00dd"+ + "\2\u0725\u0727\7a\2\2\u0726\u0724\3\2\2\2\u0726\u0725\3\2\2\2\u0727\u01ba"+ + "\3\2\2\2\u0728\u072e\5\u01bd\u00dd\2\u0729\u072e\5\u01bf\u00de\2\u072a"+ + "\u072e\5\u01c1\u00df\2\u072b\u072e\5\u01c3\u00e0\2\u072c\u072e\5\u01c5"+ + "\u00e1\2\u072d\u0728\3\2\2\2\u072d\u0729\3\2\2\2\u072d\u072a\3\2\2\2\u072d"+ + "\u072b\3\2\2\2\u072d\u072c\3\2\2\2\u072e\u01bc\3\2\2\2\u072f\u0737\5\u01cb"+ + "\u00e4\2\u0730\u0737\5\u01cd\u00e5\2\u0731\u0737\5\u01cf\u00e6\2\u0732"+ + "\u0737\5\u01d1\u00e7\2\u0733\u0737\5\u01d3\u00e8\2\u0734\u0737\5\u01d5"+ + "\u00e9\2\u0735\u0737\5\u01c7\u00e2\2\u0736\u072f\3\2\2\2\u0736\u0730\3"+ + "\2\2\2\u0736\u0731\3\2\2\2\u0736\u0732\3\2\2\2\u0736\u0733\3\2\2\2\u0736"+ + "\u0734\3\2\2\2\u0736\u0735\3\2\2\2\u0737\u01be\3\2\2\2\u0738\u073b\5\u01df"+ + "\u00ee\2\u0739\u073b\5\u01c7\u00e2\2\u073a\u0738\3\2\2\2\u073a\u0739\3"+ + "\2\2\2\u073b\u01c0\3\2\2\2\u073c\u073f\5\u01dd\u00ed\2\u073d\u073f\5\u01c7"+ + "\u00e2\2\u073e\u073c\3\2\2\2\u073e\u073d\3\2\2\2\u073f\u01c2\3\2\2\2\u0740"+ + "\u0744\5\u01d7\u00ea\2\u0741\u0744\5\u01d9\u00eb\2\u0742\u0744\5\u01c7"+ + "\u00e2\2\u0743\u0740\3\2\2\2\u0743\u0741\3\2\2\2\u0743\u0742\3\2\2\2\u0744"+ + "\u01c4\3\2\2\2\u0745\u0748\5\u01db\u00ec\2\u0746\u0748\5\u01c7\u00e2\2"+ + "\u0747\u0745\3\2\2\2\u0747\u0746\3\2\2\2\u0748\u01c6\3\2\2\2\u0749\u074a"+ + "\7^\2\2\u074a\u074b\7w\2\2\u074b\u074c\3\2\2\2\u074c\u074d\5\u01c9\u00e3"+ + "\2\u074d\u074e\5\u01c9\u00e3\2\u074e\u074f\5\u01c9\u00e3\2\u074f\u0750"+ + "\5\u01c9\u00e3\2\u0750\u075e\3\2\2\2\u0751\u0752\7^\2\2\u0752\u0753\7"+ + "W\2\2\u0753\u0754\3\2\2\2\u0754\u0755\5\u01c9\u00e3\2\u0755\u0756\5\u01c9"+ + "\u00e3\2\u0756\u0757\5\u01c9\u00e3\2\u0757\u0758\5\u01c9\u00e3\2\u0758"+ + "\u0759\5\u01c9\u00e3\2\u0759\u075a\5\u01c9\u00e3\2\u075a\u075b\5\u01c9"+ + "\u00e3\2\u075b\u075c\5\u01c9\u00e3\2\u075c\u075e\3\2\2\2\u075d\u0749\3"+ + "\2\2\2\u075d\u0751\3\2\2\2\u075e\u01c8\3\2\2\2\u075f\u0761\t\23\2\2\u0760"+ + "\u075f\3\2\2\2\u0761\u01ca\3\2\2\2\u0762\u0763\t\24\2\2\u0763\u01cc\3"+ + "\2\2\2\u0764\u0765\t\25\2\2\u0765\u01ce\3\2\2\2\u0766\u0767\t\26\2\2\u0767"+ + "\u01d0\3\2\2\2\u0768\u0769\t\27\2\2\u0769\u01d2\3\2\2\2\u076a\u076b\t"+ + "\30\2\2\u076b\u01d4\3\2\2\2\u076c\u076d\t\31\2\2\u076d\u01d6\3\2\2\2\u076e"+ + "\u076f\4\u0302\u0312\2\u076f\u01d8\3\2\2\2\u0770\u0771\t\32\2\2\u0771"+ + "\u01da\3\2\2\2\u0772\u0773\t\33\2\2\u0773\u01dc\3\2\2\2\u0774\u0775\t"+ + "\34\2\2\u0775\u01de\3\2\2\2\u0776\u0777\t\35\2\2\u0777\u01e0\3\2\2\2C"+ + "\2\3\4\5\6\u01ec\u01f8\u0206\u0211\u021b\u021d\u04bb\u04c2\u04c5\u04c9"+ + "\u04d0\u04d3\u04da\u04dd\u04e2\u04e9\u04ec\u04ef\u04f4\u04f9\u04fb\u04fd"+ + "\u0502\u0509\u050b\u0516\u0518\u05a3\u05a8\u05b4\u05b9\u05c0\u0613\u0623"+ + "\u0632\u0645\u0655\u0699\u06ab\u06b9\u06c8\u06cc\u06cf\u06d3\u06d8\u06dd"+ + "\u06f5\u0710\u0715\u0719\u0721\u0726\u072d\u0736\u073a\u073e\u0743\u0747"+ + "\u075d\u0760\26\2\3\2\4\5\2\t\u00b0\2\ta\2\t+\2\t\65\2\t%\2\4\6\2\t\37"+ + "\2\t\177\2\t\u0080\2\t\u008d\2\t\u009a\2\t\u009b\2\t\u0097\2\t\u0098\2"+ + "\t\\\2\t\6\2\4\2\2\t\u00bf\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/com/carvalab/archtool/parsers/CSharpLexer.tokens b/src/com/carvalab/archtool/parsers/CSharpLexer.tokens new file mode 100644 index 0000000..f2bac1a --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpLexer.tokens @@ -0,0 +1,351 @@ +BYTE_ORDER_MARK=1 +SINGLE_LINE_DOC_COMMENT=2 +DELIMITED_DOC_COMMENT=3 +SINGLE_LINE_COMMENT=4 +DELIMITED_COMMENT=5 +WHITESPACES=6 +SHARP=7 +ABSTRACT=8 +ADD=9 +ALIAS=10 +ARGLIST=11 +AS=12 +ASCENDING=13 +ASYNC=14 +AWAIT=15 +BASE=16 +BOOL=17 +BREAK=18 +BY=19 +BYTE=20 +CASE=21 +CATCH=22 +CHAR=23 +CHECKED=24 +CLASS=25 +CONST=26 +CONTINUE=27 +DECIMAL=28 +DEFAULT=29 +DELEGATE=30 +DESCENDING=31 +DO=32 +DOUBLE=33 +DYNAMIC=34 +ELSE=35 +ENUM=36 +EQUALS=37 +EVENT=38 +EXPLICIT=39 +EXTERN=40 +FALSE=41 +FINALLY=42 +FIXED=43 +FLOAT=44 +FOR=45 +FOREACH=46 +FROM=47 +GET=48 +GOTO=49 +GROUP=50 +IF=51 +IMPLICIT=52 +IN=53 +INT=54 +INTERFACE=55 +INTERNAL=56 +INTO=57 +IS=58 +JOIN=59 +LET=60 +LOCK=61 +LONG=62 +NAMEOF=63 +NAMESPACE=64 +NEW=65 +NULL=66 +OBJECT=67 +ON=68 +OPERATOR=69 +ORDERBY=70 +OUT=71 +OVERRIDE=72 +PARAMS=73 +PARTIAL=74 +PRIVATE=75 +PROTECTED=76 +PUBLIC=77 +READONLY=78 +REF=79 +REMOVE=80 +RETURN=81 +SBYTE=82 +SEALED=83 +SELECT=84 +SET=85 +SHORT=86 +SIZEOF=87 +STACKALLOC=88 +STATIC=89 +STRING=90 +STRUCT=91 +SWITCH=92 +THIS=93 +THROW=94 +TRUE=95 +TRY=96 +TYPEOF=97 +UINT=98 +ULONG=99 +UNCHECKED=100 +UNSAFE=101 +USHORT=102 +USING=103 +VIRTUAL=104 +VOID=105 +VOLATILE=106 +WHEN=107 +WHERE=108 +WHILE=109 +YIELD=110 +IDENTIFIER=111 +LITERAL_ACCESS=112 +INTEGER_LITERAL=113 +HEX_INTEGER_LITERAL=114 +REAL_LITERAL=115 +CHARACTER_LITERAL=116 +REGULAR_STRING=117 +VERBATIUM_STRING=118 +INTERPOLATED_REGULAR_STRING_START=119 +INTERPOLATED_VERBATIUM_STRING_START=120 +OPEN_BRACE=121 +CLOSE_BRACE=122 +OPEN_BRACKET=123 +CLOSE_BRACKET=124 +OPEN_PARENS=125 +CLOSE_PARENS=126 +DOT=127 +COMMA=128 +COLON=129 +SEMICOLON=130 +PLUS=131 +MINUS=132 +STAR=133 +DIV=134 +PERCENT=135 +AMP=136 +BITWISE_OR=137 +CARET=138 +BANG=139 +TILDE=140 +ASSIGNMENT=141 +LT=142 +GT=143 +INTERR=144 +DOUBLE_COLON=145 +OP_COALESCING=146 +OP_INC=147 +OP_DEC=148 +OP_AND=149 +OP_OR=150 +OP_PTR=151 +OP_EQ=152 +OP_NE=153 +OP_LE=154 +OP_GE=155 +OP_ADD_ASSIGNMENT=156 +OP_SUB_ASSIGNMENT=157 +OP_MULT_ASSIGNMENT=158 +OP_DIV_ASSIGNMENT=159 +OP_MOD_ASSIGNMENT=160 +OP_AND_ASSIGNMENT=161 +OP_OR_ASSIGNMENT=162 +OP_XOR_ASSIGNMENT=163 +OP_LEFT_SHIFT=164 +OP_LEFT_SHIFT_ASSIGNMENT=165 +DOUBLE_CURLY_INSIDE=166 +OPEN_BRACE_INSIDE=167 +REGULAR_CHAR_INSIDE=168 +VERBATIUM_DOUBLE_QUOTE_INSIDE=169 +DOUBLE_QUOTE_INSIDE=170 +REGULAR_STRING_INSIDE=171 +VERBATIUM_INSIDE_STRING=172 +CLOSE_BRACE_INSIDE=173 +FORMAT_STRING=174 +HIDDEN_WHITESPACES=175 +DIGITS=176 +DEFINE=177 +UNDEF=178 +ELIF=179 +ENDIF=180 +LINE=181 +ERROR=182 +WARNING=183 +REGION=184 +ENDREGION=185 +PRAGMA=186 +HIDDEN_HIDDEN=187 +CONDITIONAL_SYMBOL=188 +HIDDEN_NEW_LINE=189 +TEXT=190 +DOUBLE_CURLY_CLOSE_INSIDE=191 +'\u00EF\u00BB\u00BF'=1 +'#'=7 +'abstract'=8 +'add'=9 +'alias'=10 +'__arglist'=11 +'as'=12 +'ascending'=13 +'async'=14 +'await'=15 +'base'=16 +'bool'=17 +'break'=18 +'by'=19 +'byte'=20 +'case'=21 +'catch'=22 +'char'=23 +'checked'=24 +'class'=25 +'const'=26 +'continue'=27 +'decimal'=28 +'default'=29 +'delegate'=30 +'descending'=31 +'do'=32 +'double'=33 +'dynamic'=34 +'else'=35 +'enum'=36 +'equals'=37 +'event'=38 +'explicit'=39 +'extern'=40 +'false'=41 +'finally'=42 +'fixed'=43 +'float'=44 +'for'=45 +'foreach'=46 +'from'=47 +'get'=48 +'goto'=49 +'group'=50 +'if'=51 +'implicit'=52 +'in'=53 +'int'=54 +'interface'=55 +'internal'=56 +'into'=57 +'is'=58 +'join'=59 +'let'=60 +'lock'=61 +'long'=62 +'nameof'=63 +'namespace'=64 +'new'=65 +'null'=66 +'object'=67 +'on'=68 +'operator'=69 +'orderby'=70 +'out'=71 +'override'=72 +'params'=73 +'partial'=74 +'private'=75 +'protected'=76 +'public'=77 +'readonly'=78 +'ref'=79 +'remove'=80 +'return'=81 +'sbyte'=82 +'sealed'=83 +'select'=84 +'set'=85 +'short'=86 +'sizeof'=87 +'stackalloc'=88 +'static'=89 +'string'=90 +'struct'=91 +'switch'=92 +'this'=93 +'throw'=94 +'true'=95 +'try'=96 +'typeof'=97 +'uint'=98 +'ulong'=99 +'unchecked'=100 +'unsafe'=101 +'ushort'=102 +'using'=103 +'virtual'=104 +'void'=105 +'volatile'=106 +'when'=107 +'where'=108 +'while'=109 +'yield'=110 +'$"'=119 +'$@"'=120 +'['=123 +']'=124 +'('=125 +')'=126 +'.'=127 +','=128 +':'=129 +';'=130 +'+'=131 +'-'=132 +'*'=133 +'/'=134 +'%'=135 +'&'=136 +'|'=137 +'^'=138 +'!'=139 +'~'=140 +'='=141 +'<'=142 +'>'=143 +'?'=144 +'::'=145 +'??'=146 +'++'=147 +'--'=148 +'&&'=149 +'||'=150 +'->'=151 +'=='=152 +'!='=153 +'<='=154 +'>='=155 +'+='=156 +'-='=157 +'*='=158 +'/='=159 +'%='=160 +'&='=161 +'|='=162 +'^='=163 +'<<'=164 +'<<='=165 +'{{'=166 +'""'=169 +'"'=170 +'}}'=191 +'define'=177 +'undef'=178 +'elif'=179 +'endif'=180 +'line'=181 +'hidden'=187 diff --git a/src/com/carvalab/archtool/parsers/CSharpParser.java b/src/com/carvalab/archtool/parsers/CSharpParser.java new file mode 100644 index 0000000..a4edffd --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpParser.java @@ -0,0 +1,19633 @@ +// Generated from CSharpParser.g4 by ANTLR 4.6 + package com.carvalab.archtool.parsers; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class CSharpParser extends Parser { + static { RuntimeMetaData.checkVersion("4.6", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + BYTE_ORDER_MARK=1, SINGLE_LINE_DOC_COMMENT=2, DELIMITED_DOC_COMMENT=3, + SINGLE_LINE_COMMENT=4, DELIMITED_COMMENT=5, WHITESPACES=6, SHARP=7, ABSTRACT=8, + ADD=9, ALIAS=10, ARGLIST=11, AS=12, ASCENDING=13, ASYNC=14, AWAIT=15, + BASE=16, BOOL=17, BREAK=18, BY=19, BYTE=20, CASE=21, CATCH=22, CHAR=23, + CHECKED=24, CLASS=25, CONST=26, CONTINUE=27, DECIMAL=28, DEFAULT=29, DELEGATE=30, + DESCENDING=31, DO=32, DOUBLE=33, DYNAMIC=34, ELSE=35, ENUM=36, EQUALS=37, + EVENT=38, EXPLICIT=39, EXTERN=40, FALSE=41, FINALLY=42, FIXED=43, FLOAT=44, + FOR=45, FOREACH=46, FROM=47, GET=48, GOTO=49, GROUP=50, IF=51, IMPLICIT=52, + IN=53, INT=54, INTERFACE=55, INTERNAL=56, INTO=57, IS=58, JOIN=59, LET=60, + LOCK=61, LONG=62, NAMEOF=63, NAMESPACE=64, NEW=65, NULL=66, OBJECT=67, + ON=68, OPERATOR=69, ORDERBY=70, OUT=71, OVERRIDE=72, PARAMS=73, PARTIAL=74, + PRIVATE=75, PROTECTED=76, PUBLIC=77, READONLY=78, REF=79, REMOVE=80, RETURN=81, + SBYTE=82, SEALED=83, SELECT=84, SET=85, SHORT=86, SIZEOF=87, STACKALLOC=88, + STATIC=89, STRING=90, STRUCT=91, SWITCH=92, THIS=93, THROW=94, TRUE=95, + TRY=96, TYPEOF=97, UINT=98, ULONG=99, UNCHECKED=100, UNSAFE=101, USHORT=102, + USING=103, VIRTUAL=104, VOID=105, VOLATILE=106, WHEN=107, WHERE=108, WHILE=109, + YIELD=110, IDENTIFIER=111, LITERAL_ACCESS=112, INTEGER_LITERAL=113, HEX_INTEGER_LITERAL=114, + REAL_LITERAL=115, CHARACTER_LITERAL=116, REGULAR_STRING=117, VERBATIUM_STRING=118, + INTERPOLATED_REGULAR_STRING_START=119, INTERPOLATED_VERBATIUM_STRING_START=120, + OPEN_BRACE=121, CLOSE_BRACE=122, OPEN_BRACKET=123, CLOSE_BRACKET=124, + OPEN_PARENS=125, CLOSE_PARENS=126, DOT=127, COMMA=128, COLON=129, SEMICOLON=130, + PLUS=131, MINUS=132, STAR=133, DIV=134, PERCENT=135, AMP=136, BITWISE_OR=137, + CARET=138, BANG=139, TILDE=140, ASSIGNMENT=141, LT=142, GT=143, INTERR=144, + DOUBLE_COLON=145, OP_COALESCING=146, OP_INC=147, OP_DEC=148, OP_AND=149, + OP_OR=150, OP_PTR=151, OP_EQ=152, OP_NE=153, OP_LE=154, OP_GE=155, OP_ADD_ASSIGNMENT=156, + OP_SUB_ASSIGNMENT=157, OP_MULT_ASSIGNMENT=158, OP_DIV_ASSIGNMENT=159, + OP_MOD_ASSIGNMENT=160, OP_AND_ASSIGNMENT=161, OP_OR_ASSIGNMENT=162, OP_XOR_ASSIGNMENT=163, + OP_LEFT_SHIFT=164, OP_LEFT_SHIFT_ASSIGNMENT=165, DOUBLE_CURLY_INSIDE=166, + OPEN_BRACE_INSIDE=167, REGULAR_CHAR_INSIDE=168, VERBATIUM_DOUBLE_QUOTE_INSIDE=169, + DOUBLE_QUOTE_INSIDE=170, REGULAR_STRING_INSIDE=171, VERBATIUM_INSIDE_STRING=172, + CLOSE_BRACE_INSIDE=173, FORMAT_STRING=174, HIDDEN_WHITESPACES=175, DIGITS=176, + DEFINE=177, UNDEF=178, ELIF=179, ENDIF=180, LINE=181, ERROR=182, WARNING=183, + REGION=184, ENDREGION=185, PRAGMA=186, HIDDEN_HIDDEN=187, CONDITIONAL_SYMBOL=188, + HIDDEN_NEW_LINE=189, TEXT=190, DOUBLE_CURLY_CLOSE_INSIDE=191; + public static final int + RULE_compilation_unit = 0, RULE_namespace_or_type_name = 1, RULE_type = 2, + RULE_base_type = 3, RULE_simple_type = 4, RULE_numeric_type = 5, RULE_integral_type = 6, + RULE_floating_point_type = 7, RULE_class_type = 8, RULE_type_argument_list = 9, + RULE_argument_list = 10, RULE_argument = 11, RULE_expression = 12, RULE_non_assignment_expression = 13, + RULE_assignment = 14, RULE_assignment_operator = 15, RULE_conditional_expression = 16, + RULE_null_coalescing_expression = 17, RULE_conditional_or_expression = 18, + RULE_conditional_and_expression = 19, RULE_inclusive_or_expression = 20, + RULE_exclusive_or_expression = 21, RULE_and_expression = 22, RULE_equality_expression = 23, + RULE_relational_expression = 24, RULE_shift_expression = 25, RULE_additive_expression = 26, + RULE_multiplicative_expression = 27, RULE_unary_expression = 28, RULE_primary_expression = 29, + RULE_primary_expression_start = 30, RULE_member_access = 31, RULE_bracket_expression = 32, + RULE_indexer_argument = 33, RULE_predefined_type = 34, RULE_expression_list = 35, + RULE_object_or_collection_initializer = 36, RULE_object_initializer = 37, + RULE_member_initializer_list = 38, RULE_member_initializer = 39, RULE_initializer_value = 40, + RULE_collection_initializer = 41, RULE_element_initializer = 42, RULE_anonymous_object_initializer = 43, + RULE_member_declarator_list = 44, RULE_member_declarator = 45, RULE_unbound_type_name = 46, + RULE_generic_dimension_specifier = 47, RULE_isType = 48, RULE_lambda_expression = 49, + RULE_anonymous_function_signature = 50, RULE_explicit_anonymous_function_parameter_list = 51, + RULE_explicit_anonymous_function_parameter = 52, RULE_implicit_anonymous_function_parameter_list = 53, + RULE_anonymous_function_body = 54, RULE_query_expression = 55, RULE_from_clause = 56, + RULE_query_body = 57, RULE_query_body_clause = 58, RULE_let_clause = 59, + RULE_where_clause = 60, RULE_combined_join_clause = 61, RULE_orderby_clause = 62, + RULE_ordering = 63, RULE_select_or_group_clause = 64, RULE_query_continuation = 65, + RULE_statement = 66, RULE_embedded_statement = 67, RULE_simple_embedded_statement = 68, + RULE_block = 69, RULE_local_variable_declaration = 70, RULE_local_variable_declarator = 71, + RULE_local_variable_initializer = 72, RULE_local_constant_declaration = 73, + RULE_if_body = 74, RULE_switch_section = 75, RULE_switch_label = 76, RULE_statement_list = 77, + RULE_for_initializer = 78, RULE_for_iterator = 79, RULE_catch_clauses = 80, + RULE_specific_catch_clause = 81, RULE_general_catch_clause = 82, RULE_exception_filter = 83, + RULE_finally_clause = 84, RULE_resource_acquisition = 85, RULE_namespace_declaration = 86, + RULE_qualified_identifier = 87, RULE_namespace_body = 88, RULE_extern_alias_directives = 89, + RULE_extern_alias_directive = 90, RULE_using_directives = 91, RULE_using_directive = 92, + RULE_namespace_member_declarations = 93, RULE_namespace_member_declaration = 94, + RULE_type_declaration = 95, RULE_qualified_alias_member = 96, RULE_type_parameter_list = 97, + RULE_type_parameter = 98, RULE_class_base = 99, RULE_interface_type_list = 100, + RULE_type_parameter_constraints_clauses = 101, RULE_type_parameter_constraints_clause = 102, + RULE_type_parameter_constraints = 103, RULE_primary_constraint = 104, + RULE_secondary_constraints = 105, RULE_constructor_constraint = 106, RULE_class_body = 107, + RULE_class_member_declarations = 108, RULE_class_member_declaration = 109, + RULE_all_member_modifiers = 110, RULE_all_member_modifier = 111, RULE_common_member_declaration = 112, + RULE_typed_member_declaration = 113, RULE_constant_declarators = 114, + RULE_constant_declarator = 115, RULE_variable_declarators = 116, RULE_variable_declarator = 117, + RULE_variable_initializer = 118, RULE_return_type = 119, RULE_member_name = 120, + RULE_method_body = 121, RULE_formal_parameter_list = 122, RULE_fixed_parameters = 123, + RULE_fixed_parameter = 124, RULE_parameter_modifier = 125, RULE_parameter_array = 126, + RULE_accessor_declarations = 127, RULE_get_accessor_declaration = 128, + RULE_set_accessor_declaration = 129, RULE_accessor_modifier = 130, RULE_accessor_body = 131, + RULE_event_accessor_declarations = 132, RULE_add_accessor_declaration = 133, + RULE_remove_accessor_declaration = 134, RULE_overloadable_operator = 135, + RULE_conversion_operator_declarator = 136, RULE_constructor_initializer = 137, + RULE_body = 138, RULE_struct_interfaces = 139, RULE_struct_body = 140, + RULE_struct_member_declaration = 141, RULE_array_type = 142, RULE_rank_specifier = 143, + RULE_array_initializer = 144, RULE_variant_type_parameter_list = 145, + RULE_variant_type_parameter = 146, RULE_variance_annotation = 147, RULE_interface_base = 148, + RULE_interface_body = 149, RULE_interface_member_declaration = 150, RULE_interface_accessors = 151, + RULE_enum_base = 152, RULE_enum_body = 153, RULE_enum_member_declaration = 154, + RULE_global_attribute_section = 155, RULE_global_attribute_target = 156, + RULE_attributes = 157, RULE_attribute_section = 158, RULE_attribute_target = 159, + RULE_attribute_list = 160, RULE_attribute = 161, RULE_attribute_argument = 162, + RULE_pointer_type = 163, RULE_fixed_pointer_declarators = 164, RULE_fixed_pointer_declarator = 165, + RULE_fixed_pointer_initializer = 166, RULE_fixed_size_buffer_declarator = 167, + RULE_local_variable_initializer_unsafe = 168, RULE_right_arrow = 169, + RULE_right_shift = 170, RULE_right_shift_assignment = 171, RULE_literal = 172, + RULE_boolean_literal = 173, RULE_string_literal = 174, RULE_interpolated_regular_string = 175, + RULE_interpolated_verbatium_string = 176, RULE_interpolated_regular_string_part = 177, + RULE_interpolated_verbatium_string_part = 178, RULE_interpolated_string_expression = 179, + RULE_keyword = 180, RULE_class_definition = 181, RULE_struct_definition = 182, + RULE_interface_definition = 183, RULE_enum_definition = 184, RULE_delegate_definition = 185, + RULE_event_declaration = 186, RULE_field_declaration = 187, RULE_property_declaration = 188, + RULE_constant_declaration = 189, RULE_indexer_declaration = 190, RULE_destructor_definition = 191, + RULE_constructor_declaration = 192, RULE_method_declaration = 193, RULE_method_member_name = 194, + RULE_operator_declaration = 195, RULE_arg_declaration = 196, RULE_method_invocation = 197, + RULE_object_creation_expression = 198, RULE_identifier = 199; + public static final String[] ruleNames = { + "compilation_unit", "namespace_or_type_name", "type", "base_type", "simple_type", + "numeric_type", "integral_type", "floating_point_type", "class_type", + "type_argument_list", "argument_list", "argument", "expression", "non_assignment_expression", + "assignment", "assignment_operator", "conditional_expression", "null_coalescing_expression", + "conditional_or_expression", "conditional_and_expression", "inclusive_or_expression", + "exclusive_or_expression", "and_expression", "equality_expression", "relational_expression", + "shift_expression", "additive_expression", "multiplicative_expression", + "unary_expression", "primary_expression", "primary_expression_start", + "member_access", "bracket_expression", "indexer_argument", "predefined_type", + "expression_list", "object_or_collection_initializer", "object_initializer", + "member_initializer_list", "member_initializer", "initializer_value", + "collection_initializer", "element_initializer", "anonymous_object_initializer", + "member_declarator_list", "member_declarator", "unbound_type_name", "generic_dimension_specifier", + "isType", "lambda_expression", "anonymous_function_signature", "explicit_anonymous_function_parameter_list", + "explicit_anonymous_function_parameter", "implicit_anonymous_function_parameter_list", + "anonymous_function_body", "query_expression", "from_clause", "query_body", + "query_body_clause", "let_clause", "where_clause", "combined_join_clause", + "orderby_clause", "ordering", "select_or_group_clause", "query_continuation", + "statement", "embedded_statement", "simple_embedded_statement", "block", + "local_variable_declaration", "local_variable_declarator", "local_variable_initializer", + "local_constant_declaration", "if_body", "switch_section", "switch_label", + "statement_list", "for_initializer", "for_iterator", "catch_clauses", + "specific_catch_clause", "general_catch_clause", "exception_filter", "finally_clause", + "resource_acquisition", "namespace_declaration", "qualified_identifier", + "namespace_body", "extern_alias_directives", "extern_alias_directive", + "using_directives", "using_directive", "namespace_member_declarations", + "namespace_member_declaration", "type_declaration", "qualified_alias_member", + "type_parameter_list", "type_parameter", "class_base", "interface_type_list", + "type_parameter_constraints_clauses", "type_parameter_constraints_clause", + "type_parameter_constraints", "primary_constraint", "secondary_constraints", + "constructor_constraint", "class_body", "class_member_declarations", "class_member_declaration", + "all_member_modifiers", "all_member_modifier", "common_member_declaration", + "typed_member_declaration", "constant_declarators", "constant_declarator", + "variable_declarators", "variable_declarator", "variable_initializer", + "return_type", "member_name", "method_body", "formal_parameter_list", + "fixed_parameters", "fixed_parameter", "parameter_modifier", "parameter_array", + "accessor_declarations", "get_accessor_declaration", "set_accessor_declaration", + "accessor_modifier", "accessor_body", "event_accessor_declarations", "add_accessor_declaration", + "remove_accessor_declaration", "overloadable_operator", "conversion_operator_declarator", + "constructor_initializer", "body", "struct_interfaces", "struct_body", + "struct_member_declaration", "array_type", "rank_specifier", "array_initializer", + "variant_type_parameter_list", "variant_type_parameter", "variance_annotation", + "interface_base", "interface_body", "interface_member_declaration", "interface_accessors", + "enum_base", "enum_body", "enum_member_declaration", "global_attribute_section", + "global_attribute_target", "attributes", "attribute_section", "attribute_target", + "attribute_list", "attribute", "attribute_argument", "pointer_type", "fixed_pointer_declarators", + "fixed_pointer_declarator", "fixed_pointer_initializer", "fixed_size_buffer_declarator", + "local_variable_initializer_unsafe", "right_arrow", "right_shift", "right_shift_assignment", + "literal", "boolean_literal", "string_literal", "interpolated_regular_string", + "interpolated_verbatium_string", "interpolated_regular_string_part", "interpolated_verbatium_string_part", + "interpolated_string_expression", "keyword", "class_definition", "struct_definition", + "interface_definition", "enum_definition", "delegate_definition", "event_declaration", + "field_declaration", "property_declaration", "constant_declaration", "indexer_declaration", + "destructor_definition", "constructor_declaration", "method_declaration", + "method_member_name", "operator_declaration", "arg_declaration", "method_invocation", + "object_creation_expression", "identifier" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'\\u00EF\\u00BB\\u00BF'", null, null, null, null, null, "'#'", + "'abstract'", "'add'", "'alias'", "'__arglist'", "'as'", "'ascending'", + "'async'", "'await'", "'base'", "'bool'", "'break'", "'by'", "'byte'", + "'case'", "'catch'", "'char'", "'checked'", "'class'", "'const'", "'continue'", + "'decimal'", "'default'", "'delegate'", "'descending'", "'do'", "'double'", + "'dynamic'", "'else'", "'enum'", "'equals'", "'event'", "'explicit'", + "'extern'", "'false'", "'finally'", "'fixed'", "'float'", "'for'", "'foreach'", + "'from'", "'get'", "'goto'", "'group'", "'if'", "'implicit'", "'in'", + "'int'", "'interface'", "'internal'", "'into'", "'is'", "'join'", "'let'", + "'lock'", "'long'", "'nameof'", "'namespace'", "'new'", "'null'", "'object'", + "'on'", "'operator'", "'orderby'", "'out'", "'override'", "'params'", + "'partial'", "'private'", "'protected'", "'public'", "'readonly'", "'ref'", + "'remove'", "'return'", "'sbyte'", "'sealed'", "'select'", "'set'", "'short'", + "'sizeof'", "'stackalloc'", "'static'", "'string'", "'struct'", "'switch'", + "'this'", "'throw'", "'true'", "'try'", "'typeof'", "'uint'", "'ulong'", + "'unchecked'", "'unsafe'", "'ushort'", "'using'", "'virtual'", "'void'", + "'volatile'", "'when'", "'where'", "'while'", "'yield'", null, null, null, + null, null, null, null, null, "'$\"'", "'$@\"'", null, null, "'['", "']'", + "'('", "')'", "'.'", "','", "':'", "';'", "'+'", "'-'", "'*'", "'/'", + "'%'", "'&'", "'|'", "'^'", "'!'", "'~'", "'='", "'<'", "'>'", "'?'", + "'::'", "'??'", "'++'", "'--'", "'&&'", "'||'", "'->'", "'=='", "'!='", + "'<='", "'>='", "'+='", "'-='", "'*='", "'/='", "'%='", "'&='", "'|='", + "'^='", "'<<'", "'<<='", "'{{'", null, null, "'\"\"'", "'\"'", null, null, + null, null, null, null, "'define'", "'undef'", "'elif'", "'endif'", "'line'", + null, null, null, null, null, "'hidden'", null, null, null, "'}}'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, "BYTE_ORDER_MARK", "SINGLE_LINE_DOC_COMMENT", "DELIMITED_DOC_COMMENT", + "SINGLE_LINE_COMMENT", "DELIMITED_COMMENT", "WHITESPACES", "SHARP", "ABSTRACT", + "ADD", "ALIAS", "ARGLIST", "AS", "ASCENDING", "ASYNC", "AWAIT", "BASE", + "BOOL", "BREAK", "BY", "BYTE", "CASE", "CATCH", "CHAR", "CHECKED", "CLASS", + "CONST", "CONTINUE", "DECIMAL", "DEFAULT", "DELEGATE", "DESCENDING", "DO", + "DOUBLE", "DYNAMIC", "ELSE", "ENUM", "EQUALS", "EVENT", "EXPLICIT", "EXTERN", + "FALSE", "FINALLY", "FIXED", "FLOAT", "FOR", "FOREACH", "FROM", "GET", + "GOTO", "GROUP", "IF", "IMPLICIT", "IN", "INT", "INTERFACE", "INTERNAL", + "INTO", "IS", "JOIN", "LET", "LOCK", "LONG", "NAMEOF", "NAMESPACE", "NEW", + "NULL", "OBJECT", "ON", "OPERATOR", "ORDERBY", "OUT", "OVERRIDE", "PARAMS", + "PARTIAL", "PRIVATE", "PROTECTED", "PUBLIC", "READONLY", "REF", "REMOVE", + "RETURN", "SBYTE", "SEALED", "SELECT", "SET", "SHORT", "SIZEOF", "STACKALLOC", + "STATIC", "STRING", "STRUCT", "SWITCH", "THIS", "THROW", "TRUE", "TRY", + "TYPEOF", "UINT", "ULONG", "UNCHECKED", "UNSAFE", "USHORT", "USING", "VIRTUAL", + "VOID", "VOLATILE", "WHEN", "WHERE", "WHILE", "YIELD", "IDENTIFIER", "LITERAL_ACCESS", + "INTEGER_LITERAL", "HEX_INTEGER_LITERAL", "REAL_LITERAL", "CHARACTER_LITERAL", + "REGULAR_STRING", "VERBATIUM_STRING", "INTERPOLATED_REGULAR_STRING_START", + "INTERPOLATED_VERBATIUM_STRING_START", "OPEN_BRACE", "CLOSE_BRACE", "OPEN_BRACKET", + "CLOSE_BRACKET", "OPEN_PARENS", "CLOSE_PARENS", "DOT", "COMMA", "COLON", + "SEMICOLON", "PLUS", "MINUS", "STAR", "DIV", "PERCENT", "AMP", "BITWISE_OR", + "CARET", "BANG", "TILDE", "ASSIGNMENT", "LT", "GT", "INTERR", "DOUBLE_COLON", + "OP_COALESCING", "OP_INC", "OP_DEC", "OP_AND", "OP_OR", "OP_PTR", "OP_EQ", + "OP_NE", "OP_LE", "OP_GE", "OP_ADD_ASSIGNMENT", "OP_SUB_ASSIGNMENT", "OP_MULT_ASSIGNMENT", + "OP_DIV_ASSIGNMENT", "OP_MOD_ASSIGNMENT", "OP_AND_ASSIGNMENT", "OP_OR_ASSIGNMENT", + "OP_XOR_ASSIGNMENT", "OP_LEFT_SHIFT", "OP_LEFT_SHIFT_ASSIGNMENT", "DOUBLE_CURLY_INSIDE", + "OPEN_BRACE_INSIDE", "REGULAR_CHAR_INSIDE", "VERBATIUM_DOUBLE_QUOTE_INSIDE", + "DOUBLE_QUOTE_INSIDE", "REGULAR_STRING_INSIDE", "VERBATIUM_INSIDE_STRING", + "CLOSE_BRACE_INSIDE", "FORMAT_STRING", "HIDDEN_WHITESPACES", "DIGITS", + "DEFINE", "UNDEF", "ELIF", "ENDIF", "LINE", "ERROR", "WARNING", "REGION", + "ENDREGION", "PRAGMA", "HIDDEN_HIDDEN", "CONDITIONAL_SYMBOL", "HIDDEN_NEW_LINE", + "TEXT", "DOUBLE_CURLY_CLOSE_INSIDE" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "CSharpParser.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public CSharpParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class Compilation_unitContext extends ParserRuleContext { + public TerminalNode EOF() { return getToken(CSharpParser.EOF, 0); } + public TerminalNode BYTE_ORDER_MARK() { return getToken(CSharpParser.BYTE_ORDER_MARK, 0); } + public Extern_alias_directivesContext extern_alias_directives() { + return getRuleContext(Extern_alias_directivesContext.class,0); + } + public Using_directivesContext using_directives() { + return getRuleContext(Using_directivesContext.class,0); + } + public List global_attribute_section() { + return getRuleContexts(Global_attribute_sectionContext.class); + } + public Global_attribute_sectionContext global_attribute_section(int i) { + return getRuleContext(Global_attribute_sectionContext.class,i); + } + public Namespace_member_declarationsContext namespace_member_declarations() { + return getRuleContext(Namespace_member_declarationsContext.class,0); + } + public Compilation_unitContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_compilation_unit; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCompilation_unit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCompilation_unit(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitCompilation_unit(this); + else return visitor.visitChildren(this); + } + } + + public final Compilation_unitContext compilation_unit() throws RecognitionException { + Compilation_unitContext _localctx = new Compilation_unitContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_compilation_unit); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(401); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==BYTE_ORDER_MARK) { + { + setState(400); + match(BYTE_ORDER_MARK); + } + } + + setState(404); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) { + case 1: + { + setState(403); + extern_alias_directives(); + } + break; + } + setState(407); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(406); + using_directives(); + } + } + + setState(412); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,3,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(409); + global_attribute_section(); + } + } + } + setState(414); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,3,_ctx); + } + setState(416); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASYNC) | (1L << CLASS) | (1L << DELEGATE) | (1L << ENUM) | (1L << EXTERN) | (1L << INTERFACE) | (1L << INTERNAL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMESPACE - 64)) | (1L << (NEW - 64)) | (1L << (OVERRIDE - 64)) | (1L << (PARTIAL - 64)) | (1L << (PRIVATE - 64)) | (1L << (PROTECTED - 64)) | (1L << (PUBLIC - 64)) | (1L << (READONLY - 64)) | (1L << (SEALED - 64)) | (1L << (STATIC - 64)) | (1L << (STRUCT - 64)) | (1L << (UNSAFE - 64)) | (1L << (VIRTUAL - 64)) | (1L << (VOLATILE - 64)) | (1L << (OPEN_BRACKET - 64)))) != 0)) { + { + setState(415); + namespace_member_declarations(); + } + } + + setState(418); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Namespace_or_type_nameContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Qualified_alias_memberContext qualified_alias_member() { + return getRuleContext(Qualified_alias_memberContext.class,0); + } + public List DOT() { return getTokens(CSharpParser.DOT); } + public TerminalNode DOT(int i) { + return getToken(CSharpParser.DOT, i); + } + public List type_argument_list() { + return getRuleContexts(Type_argument_listContext.class); + } + public Type_argument_listContext type_argument_list(int i) { + return getRuleContext(Type_argument_listContext.class,i); + } + public Namespace_or_type_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namespace_or_type_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNamespace_or_type_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNamespace_or_type_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNamespace_or_type_name(this); + else return visitor.visitChildren(this); + } + } + + public final Namespace_or_type_nameContext namespace_or_type_name() throws RecognitionException { + Namespace_or_type_nameContext _localctx = new Namespace_or_type_nameContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_namespace_or_type_name); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(425); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + { + setState(420); + identifier(); + setState(422); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { + case 1: + { + setState(421); + type_argument_list(); + } + break; + } + } + break; + case 2: + { + setState(424); + qualified_alias_member(); + } + break; + } + setState(434); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,8,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(427); + match(DOT); + setState(428); + identifier(); + setState(430); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) { + case 1: + { + setState(429); + type_argument_list(); + } + break; + } + } + } + } + setState(436); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,8,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeContext extends ParserRuleContext { + public Base_typeContext base_type() { + return getRuleContext(Base_typeContext.class,0); + } + public List INTERR() { return getTokens(CSharpParser.INTERR); } + public TerminalNode INTERR(int i) { + return getToken(CSharpParser.INTERR, i); + } + public List rank_specifier() { + return getRuleContexts(Rank_specifierContext.class); + } + public Rank_specifierContext rank_specifier(int i) { + return getRuleContext(Rank_specifierContext.class,i); + } + public List STAR() { return getTokens(CSharpParser.STAR); } + public TerminalNode STAR(int i) { + return getToken(CSharpParser.STAR, i); + } + public TypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType(this); + else return visitor.visitChildren(this); + } + } + + public final TypeContext type() throws RecognitionException { + TypeContext _localctx = new TypeContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_type); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(437); + base_type(); + setState(443); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,10,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(441); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INTERR: + { + setState(438); + match(INTERR); + } + break; + case OPEN_BRACKET: + { + setState(439); + rank_specifier(); + } + break; + case STAR: + { + setState(440); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(445); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,10,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Base_typeContext extends ParserRuleContext { + public Simple_typeContext simple_type() { + return getRuleContext(Simple_typeContext.class,0); + } + public Class_typeContext class_type() { + return getRuleContext(Class_typeContext.class,0); + } + public TerminalNode VOID() { return getToken(CSharpParser.VOID, 0); } + public TerminalNode STAR() { return getToken(CSharpParser.STAR, 0); } + public Base_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_base_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterBase_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitBase_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitBase_type(this); + else return visitor.visitChildren(this); + } + } + + public final Base_typeContext base_type() throws RecognitionException { + Base_typeContext _localctx = new Base_typeContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_base_type); + try { + setState(450); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOL: + case BYTE: + case CHAR: + case DECIMAL: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SBYTE: + case SHORT: + case UINT: + case ULONG: + case USHORT: + enterOuterAlt(_localctx, 1); + { + setState(446); + simple_type(); + } + break; + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case STRING: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(447); + class_type(); + } + break; + case VOID: + enterOuterAlt(_localctx, 3); + { + setState(448); + match(VOID); + setState(449); + match(STAR); + } + 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 static class Simple_typeContext extends ParserRuleContext { + public Numeric_typeContext numeric_type() { + return getRuleContext(Numeric_typeContext.class,0); + } + public TerminalNode BOOL() { return getToken(CSharpParser.BOOL, 0); } + public Simple_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simple_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSimple_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSimple_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSimple_type(this); + else return visitor.visitChildren(this); + } + } + + public final Simple_typeContext simple_type() throws RecognitionException { + Simple_typeContext _localctx = new Simple_typeContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_simple_type); + try { + setState(454); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTE: + case CHAR: + case DECIMAL: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SBYTE: + case SHORT: + case UINT: + case ULONG: + case USHORT: + enterOuterAlt(_localctx, 1); + { + setState(452); + numeric_type(); + } + break; + case BOOL: + enterOuterAlt(_localctx, 2); + { + setState(453); + match(BOOL); + } + 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 static class Numeric_typeContext extends ParserRuleContext { + public Integral_typeContext integral_type() { + return getRuleContext(Integral_typeContext.class,0); + } + public Floating_point_typeContext floating_point_type() { + return getRuleContext(Floating_point_typeContext.class,0); + } + public TerminalNode DECIMAL() { return getToken(CSharpParser.DECIMAL, 0); } + public Numeric_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_numeric_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNumeric_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNumeric_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNumeric_type(this); + else return visitor.visitChildren(this); + } + } + + public final Numeric_typeContext numeric_type() throws RecognitionException { + Numeric_typeContext _localctx = new Numeric_typeContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_numeric_type); + try { + setState(459); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BYTE: + case CHAR: + case INT: + case LONG: + case SBYTE: + case SHORT: + case UINT: + case ULONG: + case USHORT: + enterOuterAlt(_localctx, 1); + { + setState(456); + integral_type(); + } + break; + case DOUBLE: + case FLOAT: + enterOuterAlt(_localctx, 2); + { + setState(457); + floating_point_type(); + } + break; + case DECIMAL: + enterOuterAlt(_localctx, 3); + { + setState(458); + match(DECIMAL); + } + 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 static class Integral_typeContext extends ParserRuleContext { + public TerminalNode SBYTE() { return getToken(CSharpParser.SBYTE, 0); } + public TerminalNode BYTE() { return getToken(CSharpParser.BYTE, 0); } + public TerminalNode SHORT() { return getToken(CSharpParser.SHORT, 0); } + public TerminalNode USHORT() { return getToken(CSharpParser.USHORT, 0); } + public TerminalNode INT() { return getToken(CSharpParser.INT, 0); } + public TerminalNode UINT() { return getToken(CSharpParser.UINT, 0); } + public TerminalNode LONG() { return getToken(CSharpParser.LONG, 0); } + public TerminalNode ULONG() { return getToken(CSharpParser.ULONG, 0); } + public TerminalNode CHAR() { return getToken(CSharpParser.CHAR, 0); } + public Integral_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_integral_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIntegral_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIntegral_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitIntegral_type(this); + else return visitor.visitChildren(this); + } + } + + public final Integral_typeContext integral_type() throws RecognitionException { + Integral_typeContext _localctx = new Integral_typeContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_integral_type); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(461); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BYTE) | (1L << CHAR) | (1L << INT) | (1L << LONG))) != 0) || ((((_la - 82)) & ~0x3f) == 0 && ((1L << (_la - 82)) & ((1L << (SBYTE - 82)) | (1L << (SHORT - 82)) | (1L << (UINT - 82)) | (1L << (ULONG - 82)) | (1L << (USHORT - 82)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Floating_point_typeContext extends ParserRuleContext { + public TerminalNode FLOAT() { return getToken(CSharpParser.FLOAT, 0); } + public TerminalNode DOUBLE() { return getToken(CSharpParser.DOUBLE, 0); } + public Floating_point_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_floating_point_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFloating_point_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFloating_point_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFloating_point_type(this); + else return visitor.visitChildren(this); + } + } + + public final Floating_point_typeContext floating_point_type() throws RecognitionException { + Floating_point_typeContext _localctx = new Floating_point_typeContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_floating_point_type); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(463); + _la = _input.LA(1); + if ( !(_la==DOUBLE || _la==FLOAT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Class_typeContext extends ParserRuleContext { + public Namespace_or_type_nameContext namespace_or_type_name() { + return getRuleContext(Namespace_or_type_nameContext.class,0); + } + public TerminalNode OBJECT() { return getToken(CSharpParser.OBJECT, 0); } + public TerminalNode DYNAMIC() { return getToken(CSharpParser.DYNAMIC, 0); } + public TerminalNode STRING() { return getToken(CSharpParser.STRING, 0); } + public Class_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_class_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterClass_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitClass_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitClass_type(this); + else return visitor.visitChildren(this); + } + } + + public final Class_typeContext class_type() throws RecognitionException { + Class_typeContext _localctx = new Class_typeContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_class_type); + try { + setState(469); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(465); + namespace_or_type_name(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(466); + match(OBJECT); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(467); + match(DYNAMIC); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(468); + match(STRING); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Type_argument_listContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(CSharpParser.LT, 0); } + public List type() { + return getRuleContexts(TypeContext.class); + } + public TypeContext type(int i) { + return getRuleContext(TypeContext.class,i); + } + public TerminalNode GT() { return getToken(CSharpParser.GT, 0); } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Type_argument_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_argument_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType_argument_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType_argument_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType_argument_list(this); + else return visitor.visitChildren(this); + } + } + + public final Type_argument_listContext type_argument_list() throws RecognitionException { + Type_argument_listContext _localctx = new Type_argument_listContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_type_argument_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(471); + match(LT); + setState(472); + type(); + setState(477); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(473); + match(COMMA); + setState(474); + type(); + } + } + setState(479); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(480); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Argument_listContext extends ParserRuleContext { + public List argument() { + return getRuleContexts(ArgumentContext.class); + } + public ArgumentContext argument(int i) { + return getRuleContext(ArgumentContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Argument_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_argument_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterArgument_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitArgument_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitArgument_list(this); + else return visitor.visitChildren(this); + } + } + + public final Argument_listContext argument_list() throws RecognitionException { + Argument_listContext _localctx = new Argument_listContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_argument_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(482); + argument(); + setState(487); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(483); + match(COMMA); + setState(484); + argument(); + } + } + setState(489); + _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 class ArgumentContext extends ParserRuleContext { + public Token refout; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public TerminalNode REF() { return getToken(CSharpParser.REF, 0); } + public TerminalNode OUT() { return getToken(CSharpParser.OUT, 0); } + public ArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_argument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitArgument(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitArgument(this); + else return visitor.visitChildren(this); + } + } + + public final ArgumentContext argument() throws RecognitionException { + ArgumentContext _localctx = new ArgumentContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_argument); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(493); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) { + case 1: + { + setState(490); + identifier(); + setState(491); + match(COLON); + } + break; + } + setState(496); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUT || _la==REF) { + { + setState(495); + ((ArgumentContext)_localctx).refout = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==OUT || _la==REF) ) { + ((ArgumentContext)_localctx).refout = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(498); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExpressionContext extends ParserRuleContext { + public AssignmentContext assignment() { + return getRuleContext(AssignmentContext.class,0); + } + public Non_assignment_expressionContext non_assignment_expression() { + return getRuleContext(Non_assignment_expressionContext.class,0); + } + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExpression(this); + else return visitor.visitChildren(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_expression); + try { + setState(502); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(500); + assignment(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(501); + non_assignment_expression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Non_assignment_expressionContext extends ParserRuleContext { + public Lambda_expressionContext lambda_expression() { + return getRuleContext(Lambda_expressionContext.class,0); + } + public Query_expressionContext query_expression() { + return getRuleContext(Query_expressionContext.class,0); + } + public Conditional_expressionContext conditional_expression() { + return getRuleContext(Conditional_expressionContext.class,0); + } + public Non_assignment_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_non_assignment_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNon_assignment_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNon_assignment_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNon_assignment_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Non_assignment_expressionContext non_assignment_expression() throws RecognitionException { + Non_assignment_expressionContext _localctx = new Non_assignment_expressionContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_non_assignment_expression); + try { + setState(507); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(504); + lambda_expression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(505); + query_expression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(506); + conditional_expression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AssignmentContext extends ParserRuleContext { + public Unary_expressionContext unary_expression() { + return getRuleContext(Unary_expressionContext.class,0); + } + public Assignment_operatorContext assignment_operator() { + return getRuleContext(Assignment_operatorContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public AssignmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignment; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAssignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAssignment(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAssignment(this); + else return visitor.visitChildren(this); + } + } + + public final AssignmentContext assignment() throws RecognitionException { + AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(509); + unary_expression(); + setState(510); + assignment_operator(); + setState(511); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Assignment_operatorContext extends ParserRuleContext { + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public TerminalNode OP_ADD_ASSIGNMENT() { return getToken(CSharpParser.OP_ADD_ASSIGNMENT, 0); } + public TerminalNode OP_SUB_ASSIGNMENT() { return getToken(CSharpParser.OP_SUB_ASSIGNMENT, 0); } + public TerminalNode OP_MULT_ASSIGNMENT() { return getToken(CSharpParser.OP_MULT_ASSIGNMENT, 0); } + public TerminalNode OP_DIV_ASSIGNMENT() { return getToken(CSharpParser.OP_DIV_ASSIGNMENT, 0); } + public Right_shift_assignmentContext right_shift_assignment() { + return getRuleContext(Right_shift_assignmentContext.class,0); + } + public Assignment_operatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignment_operator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAssignment_operator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAssignment_operator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAssignment_operator(this); + else return visitor.visitChildren(this); + } + } + + public final Assignment_operatorContext assignment_operator() throws RecognitionException { + Assignment_operatorContext _localctx = new Assignment_operatorContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_assignment_operator); + try { + setState(524); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ASSIGNMENT: + enterOuterAlt(_localctx, 1); + { + setState(513); + match(ASSIGNMENT); + } + break; + case OP_ADD_ASSIGNMENT: + enterOuterAlt(_localctx, 2); + { + setState(514); + match(OP_ADD_ASSIGNMENT); + } + break; + case OP_SUB_ASSIGNMENT: + enterOuterAlt(_localctx, 3); + { + setState(515); + match(OP_SUB_ASSIGNMENT); + } + break; + case OP_MULT_ASSIGNMENT: + enterOuterAlt(_localctx, 4); + { + setState(516); + match(OP_MULT_ASSIGNMENT); + } + break; + case OP_DIV_ASSIGNMENT: + enterOuterAlt(_localctx, 5); + { + setState(517); + match(OP_DIV_ASSIGNMENT); + } + break; + case OP_MOD_ASSIGNMENT: + enterOuterAlt(_localctx, 6); + { + setState(518); + match(OP_MOD_ASSIGNMENT); + } + break; + case OP_AND_ASSIGNMENT: + enterOuterAlt(_localctx, 7); + { + setState(519); + match(OP_AND_ASSIGNMENT); + } + break; + case OP_OR_ASSIGNMENT: + enterOuterAlt(_localctx, 8); + { + setState(520); + match(OP_OR_ASSIGNMENT); + } + break; + case OP_XOR_ASSIGNMENT: + enterOuterAlt(_localctx, 9); + { + setState(521); + match(OP_XOR_ASSIGNMENT); + } + break; + case OP_LEFT_SHIFT_ASSIGNMENT: + enterOuterAlt(_localctx, 10); + { + setState(522); + match(OP_LEFT_SHIFT_ASSIGNMENT); + } + break; + case GT: + enterOuterAlt(_localctx, 11); + { + setState(523); + right_shift_assignment(); + } + 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 static class Conditional_expressionContext extends ParserRuleContext { + public Null_coalescing_expressionContext null_coalescing_expression() { + return getRuleContext(Null_coalescing_expressionContext.class,0); + } + public TerminalNode INTERR() { return getToken(CSharpParser.INTERR, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Conditional_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditional_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConditional_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConditional_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConditional_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Conditional_expressionContext conditional_expression() throws RecognitionException { + Conditional_expressionContext _localctx = new Conditional_expressionContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_conditional_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(526); + null_coalescing_expression(); + setState(532); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INTERR) { + { + setState(527); + match(INTERR); + setState(528); + expression(); + setState(529); + match(COLON); + setState(530); + expression(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Null_coalescing_expressionContext extends ParserRuleContext { + public Conditional_or_expressionContext conditional_or_expression() { + return getRuleContext(Conditional_or_expressionContext.class,0); + } + public Null_coalescing_expressionContext null_coalescing_expression() { + return getRuleContext(Null_coalescing_expressionContext.class,0); + } + public Null_coalescing_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_null_coalescing_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNull_coalescing_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNull_coalescing_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNull_coalescing_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Null_coalescing_expressionContext null_coalescing_expression() throws RecognitionException { + Null_coalescing_expressionContext _localctx = new Null_coalescing_expressionContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_null_coalescing_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(534); + conditional_or_expression(); + setState(537); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OP_COALESCING) { + { + setState(535); + match(OP_COALESCING); + setState(536); + null_coalescing_expression(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Conditional_or_expressionContext extends ParserRuleContext { + public List conditional_and_expression() { + return getRuleContexts(Conditional_and_expressionContext.class); + } + public Conditional_and_expressionContext conditional_and_expression(int i) { + return getRuleContext(Conditional_and_expressionContext.class,i); + } + public List OP_OR() { return getTokens(CSharpParser.OP_OR); } + public TerminalNode OP_OR(int i) { + return getToken(CSharpParser.OP_OR, i); + } + public Conditional_or_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditional_or_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConditional_or_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConditional_or_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConditional_or_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Conditional_or_expressionContext conditional_or_expression() throws RecognitionException { + Conditional_or_expressionContext _localctx = new Conditional_or_expressionContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_conditional_or_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(539); + conditional_and_expression(); + setState(544); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==OP_OR) { + { + { + setState(540); + match(OP_OR); + setState(541); + conditional_and_expression(); + } + } + setState(546); + _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 class Conditional_and_expressionContext extends ParserRuleContext { + public List inclusive_or_expression() { + return getRuleContexts(Inclusive_or_expressionContext.class); + } + public Inclusive_or_expressionContext inclusive_or_expression(int i) { + return getRuleContext(Inclusive_or_expressionContext.class,i); + } + public List OP_AND() { return getTokens(CSharpParser.OP_AND); } + public TerminalNode OP_AND(int i) { + return getToken(CSharpParser.OP_AND, i); + } + public Conditional_and_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditional_and_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConditional_and_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConditional_and_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConditional_and_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Conditional_and_expressionContext conditional_and_expression() throws RecognitionException { + Conditional_and_expressionContext _localctx = new Conditional_and_expressionContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_conditional_and_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(547); + inclusive_or_expression(); + setState(552); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==OP_AND) { + { + { + setState(548); + match(OP_AND); + setState(549); + inclusive_or_expression(); + } + } + setState(554); + _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 class Inclusive_or_expressionContext extends ParserRuleContext { + public List exclusive_or_expression() { + return getRuleContexts(Exclusive_or_expressionContext.class); + } + public Exclusive_or_expressionContext exclusive_or_expression(int i) { + return getRuleContext(Exclusive_or_expressionContext.class,i); + } + public Inclusive_or_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_inclusive_or_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInclusive_or_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInclusive_or_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInclusive_or_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Inclusive_or_expressionContext inclusive_or_expression() throws RecognitionException { + Inclusive_or_expressionContext _localctx = new Inclusive_or_expressionContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_inclusive_or_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(555); + exclusive_or_expression(); + setState(560); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITWISE_OR) { + { + { + setState(556); + match(BITWISE_OR); + setState(557); + exclusive_or_expression(); + } + } + setState(562); + _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 class Exclusive_or_expressionContext extends ParserRuleContext { + public List and_expression() { + return getRuleContexts(And_expressionContext.class); + } + public And_expressionContext and_expression(int i) { + return getRuleContext(And_expressionContext.class,i); + } + public Exclusive_or_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exclusive_or_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExclusive_or_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExclusive_or_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExclusive_or_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Exclusive_or_expressionContext exclusive_or_expression() throws RecognitionException { + Exclusive_or_expressionContext _localctx = new Exclusive_or_expressionContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_exclusive_or_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(563); + and_expression(); + setState(568); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CARET) { + { + { + setState(564); + match(CARET); + setState(565); + and_expression(); + } + } + setState(570); + _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 class And_expressionContext extends ParserRuleContext { + public List equality_expression() { + return getRuleContexts(Equality_expressionContext.class); + } + public Equality_expressionContext equality_expression(int i) { + return getRuleContext(Equality_expressionContext.class,i); + } + public And_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_and_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAnd_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAnd_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAnd_expression(this); + else return visitor.visitChildren(this); + } + } + + public final And_expressionContext and_expression() throws RecognitionException { + And_expressionContext _localctx = new And_expressionContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_and_expression); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(571); + equality_expression(); + setState(576); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,28,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(572); + match(AMP); + setState(573); + equality_expression(); + } + } + } + setState(578); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,28,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Equality_expressionContext extends ParserRuleContext { + public List relational_expression() { + return getRuleContexts(Relational_expressionContext.class); + } + public Relational_expressionContext relational_expression(int i) { + return getRuleContext(Relational_expressionContext.class,i); + } + public List OP_EQ() { return getTokens(CSharpParser.OP_EQ); } + public TerminalNode OP_EQ(int i) { + return getToken(CSharpParser.OP_EQ, i); + } + public List OP_NE() { return getTokens(CSharpParser.OP_NE); } + public TerminalNode OP_NE(int i) { + return getToken(CSharpParser.OP_NE, i); + } + public Equality_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_equality_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEquality_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEquality_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEquality_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Equality_expressionContext equality_expression() throws RecognitionException { + Equality_expressionContext _localctx = new Equality_expressionContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_equality_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(579); + relational_expression(); + setState(584); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==OP_EQ || _la==OP_NE) { + { + { + setState(580); + _la = _input.LA(1); + if ( !(_la==OP_EQ || _la==OP_NE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(581); + relational_expression(); + } + } + setState(586); + _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 class Relational_expressionContext extends ParserRuleContext { + public List shift_expression() { + return getRuleContexts(Shift_expressionContext.class); + } + public Shift_expressionContext shift_expression(int i) { + return getRuleContext(Shift_expressionContext.class,i); + } + public List IS() { return getTokens(CSharpParser.IS); } + public TerminalNode IS(int i) { + return getToken(CSharpParser.IS, i); + } + public List isType() { + return getRuleContexts(IsTypeContext.class); + } + public IsTypeContext isType(int i) { + return getRuleContext(IsTypeContext.class,i); + } + public List AS() { return getTokens(CSharpParser.AS); } + public TerminalNode AS(int i) { + return getToken(CSharpParser.AS, i); + } + public List type() { + return getRuleContexts(TypeContext.class); + } + public TypeContext type(int i) { + return getRuleContext(TypeContext.class,i); + } + public List LT() { return getTokens(CSharpParser.LT); } + public TerminalNode LT(int i) { + return getToken(CSharpParser.LT, i); + } + public List GT() { return getTokens(CSharpParser.GT); } + public TerminalNode GT(int i) { + return getToken(CSharpParser.GT, i); + } + public Relational_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relational_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterRelational_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitRelational_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitRelational_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Relational_expressionContext relational_expression() throws RecognitionException { + Relational_expressionContext _localctx = new Relational_expressionContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_relational_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(587); + shift_expression(); + setState(596); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==AS || _la==IS || ((((_la - 142)) & ~0x3f) == 0 && ((1L << (_la - 142)) & ((1L << (LT - 142)) | (1L << (GT - 142)) | (1L << (OP_LE - 142)) | (1L << (OP_GE - 142)))) != 0)) { + { + setState(594); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LT: + case GT: + case OP_LE: + case OP_GE: + { + setState(588); + _la = _input.LA(1); + if ( !(((((_la - 142)) & ~0x3f) == 0 && ((1L << (_la - 142)) & ((1L << (LT - 142)) | (1L << (GT - 142)) | (1L << (OP_LE - 142)) | (1L << (OP_GE - 142)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(589); + shift_expression(); + } + break; + case IS: + { + setState(590); + match(IS); + setState(591); + isType(); + } + break; + case AS: + { + setState(592); + match(AS); + setState(593); + type(); + } + break; + default: + throw new NoViableAltException(this); + } + } + setState(598); + _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 class Shift_expressionContext extends ParserRuleContext { + public List additive_expression() { + return getRuleContexts(Additive_expressionContext.class); + } + public Additive_expressionContext additive_expression(int i) { + return getRuleContext(Additive_expressionContext.class,i); + } + public List right_shift() { + return getRuleContexts(Right_shiftContext.class); + } + public Right_shiftContext right_shift(int i) { + return getRuleContext(Right_shiftContext.class,i); + } + public Shift_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_shift_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterShift_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitShift_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitShift_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Shift_expressionContext shift_expression() throws RecognitionException { + Shift_expressionContext _localctx = new Shift_expressionContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_shift_expression); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(599); + additive_expression(); + setState(607); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(602); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OP_LEFT_SHIFT: + { + setState(600); + match(OP_LEFT_SHIFT); + } + break; + case GT: + { + setState(601); + right_shift(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(604); + additive_expression(); + } + } + } + setState(609); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Additive_expressionContext extends ParserRuleContext { + public List multiplicative_expression() { + return getRuleContexts(Multiplicative_expressionContext.class); + } + public Multiplicative_expressionContext multiplicative_expression(int i) { + return getRuleContext(Multiplicative_expressionContext.class,i); + } + public Additive_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_additive_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAdditive_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAdditive_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAdditive_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Additive_expressionContext additive_expression() throws RecognitionException { + Additive_expressionContext _localctx = new Additive_expressionContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_additive_expression); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(610); + multiplicative_expression(); + setState(615); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,34,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(611); + _la = _input.LA(1); + if ( !(_la==PLUS || _la==MINUS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(612); + multiplicative_expression(); + } + } + } + setState(617); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,34,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Multiplicative_expressionContext extends ParserRuleContext { + public List unary_expression() { + return getRuleContexts(Unary_expressionContext.class); + } + public Unary_expressionContext unary_expression(int i) { + return getRuleContext(Unary_expressionContext.class,i); + } + public List STAR() { return getTokens(CSharpParser.STAR); } + public TerminalNode STAR(int i) { + return getToken(CSharpParser.STAR, i); + } + public Multiplicative_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_multiplicative_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMultiplicative_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMultiplicative_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMultiplicative_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Multiplicative_expressionContext multiplicative_expression() throws RecognitionException { + Multiplicative_expressionContext _localctx = new Multiplicative_expressionContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_multiplicative_expression); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(618); + unary_expression(); + setState(623); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(619); + _la = _input.LA(1); + if ( !(((((_la - 133)) & ~0x3f) == 0 && ((1L << (_la - 133)) & ((1L << (STAR - 133)) | (1L << (DIV - 133)) | (1L << (PERCENT - 133)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(620); + unary_expression(); + } + } + } + setState(625); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Unary_expressionContext extends ParserRuleContext { + public Primary_expressionContext primary_expression() { + return getRuleContext(Primary_expressionContext.class,0); + } + public Unary_expressionContext unary_expression() { + return getRuleContext(Unary_expressionContext.class,0); + } + public TerminalNode BANG() { return getToken(CSharpParser.BANG, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public TerminalNode AWAIT() { return getToken(CSharpParser.AWAIT, 0); } + public TerminalNode STAR() { return getToken(CSharpParser.STAR, 0); } + public Unary_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unary_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUnary_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUnary_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUnary_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Unary_expressionContext unary_expression() throws RecognitionException { + Unary_expressionContext _localctx = new Unary_expressionContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_unary_expression); + try { + setState(650); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(626); + primary_expression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(627); + match(PLUS); + setState(628); + unary_expression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(629); + match(MINUS); + setState(630); + unary_expression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(631); + match(BANG); + setState(632); + unary_expression(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(633); + match(TILDE); + setState(634); + unary_expression(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(635); + match(OP_INC); + setState(636); + unary_expression(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(637); + match(OP_DEC); + setState(638); + unary_expression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(639); + match(OPEN_PARENS); + setState(640); + type(); + setState(641); + match(CLOSE_PARENS); + setState(642); + unary_expression(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(644); + match(AWAIT); + setState(645); + unary_expression(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(646); + match(AMP); + setState(647); + unary_expression(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(648); + match(STAR); + setState(649); + unary_expression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Primary_expressionContext extends ParserRuleContext { + public Primary_expression_startContext pe; + public Primary_expression_startContext primary_expression_start() { + return getRuleContext(Primary_expression_startContext.class,0); + } + public List bracket_expression() { + return getRuleContexts(Bracket_expressionContext.class); + } + public Bracket_expressionContext bracket_expression(int i) { + return getRuleContext(Bracket_expressionContext.class,i); + } + public List member_access() { + return getRuleContexts(Member_accessContext.class); + } + public Member_accessContext member_access(int i) { + return getRuleContext(Member_accessContext.class,i); + } + public List method_invocation() { + return getRuleContexts(Method_invocationContext.class); + } + public Method_invocationContext method_invocation(int i) { + return getRuleContext(Method_invocationContext.class,i); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Primary_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primary_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterPrimary_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitPrimary_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitPrimary_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Primary_expressionContext primary_expression() throws RecognitionException { + Primary_expressionContext _localctx = new Primary_expressionContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_primary_expression); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(652); + ((Primary_expressionContext)_localctx).pe = primary_expression_start(); + setState(656); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,37,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(653); + bracket_expression(); + } + } + } + setState(658); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,37,_ctx); + } + setState(675); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,40,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(665); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DOT: + case INTERR: + { + setState(659); + member_access(); + } + break; + case OPEN_PARENS: + { + setState(660); + method_invocation(); + } + break; + case OP_INC: + { + setState(661); + match(OP_INC); + } + break; + case OP_DEC: + { + setState(662); + match(OP_DEC); + } + break; + case OP_PTR: + { + setState(663); + match(OP_PTR); + setState(664); + identifier(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(670); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,39,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(667); + bracket_expression(); + } + } + } + setState(672); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,39,_ctx); + } + } + } + } + setState(677); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,40,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Primary_expression_startContext extends ParserRuleContext { + public Primary_expression_startContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primary_expression_start; } + + public Primary_expression_startContext() { } + public void copyFrom(Primary_expression_startContext ctx) { + super.copyFrom(ctx); + } + } + public static class LiteralAccessExpressionContext extends Primary_expression_startContext { + public TerminalNode LITERAL_ACCESS() { return getToken(CSharpParser.LITERAL_ACCESS, 0); } + public LiteralAccessExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLiteralAccessExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLiteralAccessExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLiteralAccessExpression(this); + else return visitor.visitChildren(this); + } + } + public static class DefaultValueExpressionContext extends Primary_expression_startContext { + public TerminalNode DEFAULT() { return getToken(CSharpParser.DEFAULT, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public DefaultValueExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterDefaultValueExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitDefaultValueExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitDefaultValueExpression(this); + else return visitor.visitChildren(this); + } + } + public static class BaseAccessExpressionContext extends Primary_expression_startContext { + public TerminalNode BASE() { return getToken(CSharpParser.BASE, 0); } + public TerminalNode DOT() { return getToken(CSharpParser.DOT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Expression_listContext expression_list() { + return getRuleContext(Expression_listContext.class,0); + } + public Type_argument_listContext type_argument_list() { + return getRuleContext(Type_argument_listContext.class,0); + } + public BaseAccessExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterBaseAccessExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitBaseAccessExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitBaseAccessExpression(this); + else return visitor.visitChildren(this); + } + } + public static class SizeofExpressionContext extends Primary_expression_startContext { + public TerminalNode SIZEOF() { return getToken(CSharpParser.SIZEOF, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public SizeofExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSizeofExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSizeofExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSizeofExpression(this); + else return visitor.visitChildren(this); + } + } + public static class ParenthesisExpressionsContext extends Primary_expression_startContext { + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public ParenthesisExpressionsContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterParenthesisExpressions(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitParenthesisExpressions(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitParenthesisExpressions(this); + else return visitor.visitChildren(this); + } + } + public static class ThisReferenceExpressionContext extends Primary_expression_startContext { + public TerminalNode THIS() { return getToken(CSharpParser.THIS, 0); } + public ThisReferenceExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterThisReferenceExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitThisReferenceExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitThisReferenceExpression(this); + else return visitor.visitChildren(this); + } + } + public static class ObjectCreationExpressionContext extends Primary_expression_startContext { + public TerminalNode NEW() { return getToken(CSharpParser.NEW, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public Anonymous_object_initializerContext anonymous_object_initializer() { + return getRuleContext(Anonymous_object_initializerContext.class,0); + } + public List rank_specifier() { + return getRuleContexts(Rank_specifierContext.class); + } + public Rank_specifierContext rank_specifier(int i) { + return getRuleContext(Rank_specifierContext.class,i); + } + public Array_initializerContext array_initializer() { + return getRuleContext(Array_initializerContext.class,0); + } + public Object_creation_expressionContext object_creation_expression() { + return getRuleContext(Object_creation_expressionContext.class,0); + } + public Object_or_collection_initializerContext object_or_collection_initializer() { + return getRuleContext(Object_or_collection_initializerContext.class,0); + } + public Expression_listContext expression_list() { + return getRuleContext(Expression_listContext.class,0); + } + public ObjectCreationExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterObjectCreationExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitObjectCreationExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitObjectCreationExpression(this); + else return visitor.visitChildren(this); + } + } + public static class AnonymousMethodExpressionContext extends Primary_expression_startContext { + public TerminalNode DELEGATE() { return getToken(CSharpParser.DELEGATE, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode ASYNC() { return getToken(CSharpParser.ASYNC, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Explicit_anonymous_function_parameter_listContext explicit_anonymous_function_parameter_list() { + return getRuleContext(Explicit_anonymous_function_parameter_listContext.class,0); + } + public AnonymousMethodExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAnonymousMethodExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAnonymousMethodExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAnonymousMethodExpression(this); + else return visitor.visitChildren(this); + } + } + public static class TypeofExpressionContext extends Primary_expression_startContext { + public TerminalNode TYPEOF() { return getToken(CSharpParser.TYPEOF, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Unbound_type_nameContext unbound_type_name() { + return getRuleContext(Unbound_type_nameContext.class,0); + } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode VOID() { return getToken(CSharpParser.VOID, 0); } + public TypeofExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterTypeofExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitTypeofExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitTypeofExpression(this); + else return visitor.visitChildren(this); + } + } + public static class UncheckedExpressionContext extends Primary_expression_startContext { + public TerminalNode UNCHECKED() { return getToken(CSharpParser.UNCHECKED, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public UncheckedExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUncheckedExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUncheckedExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUncheckedExpression(this); + else return visitor.visitChildren(this); + } + } + public static class SimpleNameExpressionContext extends Primary_expression_startContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Type_argument_listContext type_argument_list() { + return getRuleContext(Type_argument_listContext.class,0); + } + public SimpleNameExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSimpleNameExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSimpleNameExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSimpleNameExpression(this); + else return visitor.visitChildren(this); + } + } + public static class MemberAccessExpressionContext extends Primary_expression_startContext { + public Predefined_typeContext predefined_type() { + return getRuleContext(Predefined_typeContext.class,0); + } + public Qualified_alias_memberContext qualified_alias_member() { + return getRuleContext(Qualified_alias_memberContext.class,0); + } + public MemberAccessExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMemberAccessExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMemberAccessExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMemberAccessExpression(this); + else return visitor.visitChildren(this); + } + } + public static class CheckedExpressionContext extends Primary_expression_startContext { + public TerminalNode CHECKED() { return getToken(CSharpParser.CHECKED, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public CheckedExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCheckedExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCheckedExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitCheckedExpression(this); + else return visitor.visitChildren(this); + } + } + public static class LiteralExpressionContext extends Primary_expression_startContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public LiteralExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLiteralExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLiteralExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLiteralExpression(this); + else return visitor.visitChildren(this); + } + } + public static class NameofExpressionContext extends Primary_expression_startContext { + public TerminalNode NAMEOF() { return getToken(CSharpParser.NAMEOF, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public List DOT() { return getTokens(CSharpParser.DOT); } + public TerminalNode DOT(int i) { + return getToken(CSharpParser.DOT, i); + } + public NameofExpressionContext(Primary_expression_startContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNameofExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNameofExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNameofExpression(this); + else return visitor.visitChildren(this); + } + } + + public final Primary_expression_startContext primary_expression_start() throws RecognitionException { + Primary_expression_startContext _localctx = new Primary_expression_startContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_primary_expression_start); + int _la; + try { + int _alt; + setState(787); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,54,_ctx) ) { + case 1: + _localctx = new LiteralExpressionContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(678); + literal(); + } + break; + case 2: + _localctx = new SimpleNameExpressionContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(679); + identifier(); + setState(681); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) { + case 1: + { + setState(680); + type_argument_list(); + } + break; + } + } + break; + case 3: + _localctx = new ParenthesisExpressionsContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(683); + match(OPEN_PARENS); + setState(684); + expression(); + setState(685); + match(CLOSE_PARENS); + } + break; + case 4: + _localctx = new MemberAccessExpressionContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(687); + predefined_type(); + } + break; + case 5: + _localctx = new MemberAccessExpressionContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(688); + qualified_alias_member(); + } + break; + case 6: + _localctx = new LiteralAccessExpressionContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(689); + match(LITERAL_ACCESS); + } + break; + case 7: + _localctx = new ThisReferenceExpressionContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(690); + match(THIS); + } + break; + case 8: + _localctx = new BaseAccessExpressionContext(_localctx); + enterOuterAlt(_localctx, 8); + { + setState(691); + match(BASE); + setState(701); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DOT: + { + setState(692); + match(DOT); + setState(693); + identifier(); + setState(695); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { + case 1: + { + setState(694); + type_argument_list(); + } + break; + } + } + break; + case OPEN_BRACKET: + { + setState(697); + match(OPEN_BRACKET); + setState(698); + expression_list(); + setState(699); + match(CLOSE_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 9: + _localctx = new ObjectCreationExpressionContext(_localctx); + enterOuterAlt(_localctx, 9); + { + setState(703); + match(NEW); + setState(732); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BOOL: + case BY: + case BYTE: + case CHAR: + case DECIMAL: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case STRING: + case UINT: + case ULONG: + case USHORT: + case VOID: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + { + setState(704); + type(); + setState(726); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) { + case 1: + { + setState(705); + object_creation_expression(); + } + break; + case 2: + { + setState(706); + object_or_collection_initializer(); + } + break; + case 3: + { + setState(707); + match(OPEN_BRACKET); + setState(708); + expression_list(); + setState(709); + match(CLOSE_BRACKET); + setState(713); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,44,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(710); + rank_specifier(); + } + } + } + setState(715); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,44,_ctx); + } + setState(717); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACE) { + { + setState(716); + array_initializer(); + } + } + + } + break; + case 4: + { + setState(720); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(719); + rank_specifier(); + } + } + setState(722); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==OPEN_BRACKET ); + setState(724); + array_initializer(); + } + break; + } + } + break; + case OPEN_BRACE: + { + setState(728); + anonymous_object_initializer(); + } + break; + case OPEN_BRACKET: + { + setState(729); + rank_specifier(); + setState(730); + array_initializer(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 10: + _localctx = new TypeofExpressionContext(_localctx); + enterOuterAlt(_localctx, 10); + { + setState(734); + match(TYPEOF); + setState(735); + match(OPEN_PARENS); + setState(739); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,49,_ctx) ) { + case 1: + { + setState(736); + unbound_type_name(); + } + break; + case 2: + { + setState(737); + type(); + } + break; + case 3: + { + setState(738); + match(VOID); + } + break; + } + setState(741); + match(CLOSE_PARENS); + } + break; + case 11: + _localctx = new CheckedExpressionContext(_localctx); + enterOuterAlt(_localctx, 11); + { + setState(742); + match(CHECKED); + setState(743); + match(OPEN_PARENS); + setState(744); + expression(); + setState(745); + match(CLOSE_PARENS); + } + break; + case 12: + _localctx = new UncheckedExpressionContext(_localctx); + enterOuterAlt(_localctx, 12); + { + setState(747); + match(UNCHECKED); + setState(748); + match(OPEN_PARENS); + setState(749); + expression(); + setState(750); + match(CLOSE_PARENS); + } + break; + case 13: + _localctx = new DefaultValueExpressionContext(_localctx); + enterOuterAlt(_localctx, 13); + { + setState(752); + match(DEFAULT); + setState(753); + match(OPEN_PARENS); + setState(754); + type(); + setState(755); + match(CLOSE_PARENS); + } + break; + case 14: + _localctx = new AnonymousMethodExpressionContext(_localctx); + enterOuterAlt(_localctx, 14); + { + setState(758); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASYNC) { + { + setState(757); + match(ASYNC); + } + } + + setState(760); + match(DELEGATE); + setState(766); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PARENS) { + { + setState(761); + match(OPEN_PARENS); + setState(763); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (OBJECT - 67)) | (1L << (ON - 67)) | (1L << (ORDERBY - 67)) | (1L << (OUT - 67)) | (1L << (PARTIAL - 67)) | (1L << (REF - 67)) | (1L << (REMOVE - 67)) | (1L << (SBYTE - 67)) | (1L << (SELECT - 67)) | (1L << (SET - 67)) | (1L << (SHORT - 67)) | (1L << (STRING - 67)) | (1L << (UINT - 67)) | (1L << (ULONG - 67)) | (1L << (USHORT - 67)) | (1L << (VOID - 67)) | (1L << (WHEN - 67)) | (1L << (WHERE - 67)) | (1L << (YIELD - 67)) | (1L << (IDENTIFIER - 67)))) != 0)) { + { + setState(762); + explicit_anonymous_function_parameter_list(); + } + } + + setState(765); + match(CLOSE_PARENS); + } + } + + setState(768); + block(); + } + break; + case 15: + _localctx = new SizeofExpressionContext(_localctx); + enterOuterAlt(_localctx, 15); + { + setState(769); + match(SIZEOF); + setState(770); + match(OPEN_PARENS); + setState(771); + type(); + setState(772); + match(CLOSE_PARENS); + } + break; + case 16: + _localctx = new NameofExpressionContext(_localctx); + enterOuterAlt(_localctx, 16); + { + setState(774); + match(NAMEOF); + setState(775); + match(OPEN_PARENS); + setState(781); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,53,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(776); + identifier(); + setState(777); + match(DOT); + } + } + } + setState(783); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,53,_ctx); + } + setState(784); + identifier(); + setState(785); + match(CLOSE_PARENS); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Member_accessContext extends ParserRuleContext { + public TerminalNode DOT() { return getToken(CSharpParser.DOT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode INTERR() { return getToken(CSharpParser.INTERR, 0); } + public Type_argument_listContext type_argument_list() { + return getRuleContext(Type_argument_listContext.class,0); + } + public Member_accessContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_member_access; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMember_access(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMember_access(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMember_access(this); + else return visitor.visitChildren(this); + } + } + + public final Member_accessContext member_access() throws RecognitionException { + Member_accessContext _localctx = new Member_accessContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_member_access); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(790); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INTERR) { + { + setState(789); + match(INTERR); + } + } + + setState(792); + match(DOT); + setState(793); + identifier(); + setState(795); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) { + case 1: + { + setState(794); + type_argument_list(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Bracket_expressionContext extends ParserRuleContext { + public List indexer_argument() { + return getRuleContexts(Indexer_argumentContext.class); + } + public Indexer_argumentContext indexer_argument(int i) { + return getRuleContext(Indexer_argumentContext.class,i); + } + public TerminalNode INTERR() { return getToken(CSharpParser.INTERR, 0); } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Bracket_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_bracket_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterBracket_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitBracket_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitBracket_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Bracket_expressionContext bracket_expression() throws RecognitionException { + Bracket_expressionContext _localctx = new Bracket_expressionContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_bracket_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(798); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INTERR) { + { + setState(797); + match(INTERR); + } + } + + setState(800); + match(OPEN_BRACKET); + setState(801); + indexer_argument(); + setState(806); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(802); + match(COMMA); + setState(803); + indexer_argument(); + } + } + setState(808); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(809); + match(CLOSE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Indexer_argumentContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Indexer_argumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_indexer_argument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIndexer_argument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIndexer_argument(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitIndexer_argument(this); + else return visitor.visitChildren(this); + } + } + + public final Indexer_argumentContext indexer_argument() throws RecognitionException { + Indexer_argumentContext _localctx = new Indexer_argumentContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_indexer_argument); + try { + enterOuterAlt(_localctx, 1); + { + setState(814); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) { + case 1: + { + setState(811); + identifier(); + setState(812); + match(COLON); + } + break; + } + setState(816); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Predefined_typeContext extends ParserRuleContext { + public TerminalNode BOOL() { return getToken(CSharpParser.BOOL, 0); } + public TerminalNode BYTE() { return getToken(CSharpParser.BYTE, 0); } + public TerminalNode CHAR() { return getToken(CSharpParser.CHAR, 0); } + public TerminalNode DECIMAL() { return getToken(CSharpParser.DECIMAL, 0); } + public TerminalNode DOUBLE() { return getToken(CSharpParser.DOUBLE, 0); } + public TerminalNode FLOAT() { return getToken(CSharpParser.FLOAT, 0); } + public TerminalNode INT() { return getToken(CSharpParser.INT, 0); } + public TerminalNode LONG() { return getToken(CSharpParser.LONG, 0); } + public TerminalNode OBJECT() { return getToken(CSharpParser.OBJECT, 0); } + public TerminalNode SBYTE() { return getToken(CSharpParser.SBYTE, 0); } + public TerminalNode SHORT() { return getToken(CSharpParser.SHORT, 0); } + public TerminalNode STRING() { return getToken(CSharpParser.STRING, 0); } + public TerminalNode UINT() { return getToken(CSharpParser.UINT, 0); } + public TerminalNode ULONG() { return getToken(CSharpParser.ULONG, 0); } + public TerminalNode USHORT() { return getToken(CSharpParser.USHORT, 0); } + public Predefined_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_predefined_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterPredefined_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitPredefined_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitPredefined_type(this); + else return visitor.visitChildren(this); + } + } + + public final Predefined_typeContext predefined_type() throws RecognitionException { + Predefined_typeContext _localctx = new Predefined_typeContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_predefined_type); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(818); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BOOL) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DOUBLE) | (1L << FLOAT) | (1L << INT) | (1L << LONG))) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (OBJECT - 67)) | (1L << (SBYTE - 67)) | (1L << (SHORT - 67)) | (1L << (STRING - 67)) | (1L << (UINT - 67)) | (1L << (ULONG - 67)) | (1L << (USHORT - 67)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Expression_listContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Expression_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExpression_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExpression_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExpression_list(this); + else return visitor.visitChildren(this); + } + } + + public final Expression_listContext expression_list() throws RecognitionException { + Expression_listContext _localctx = new Expression_listContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_expression_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(820); + expression(); + setState(825); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(821); + match(COMMA); + setState(822); + expression(); + } + } + setState(827); + _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 class Object_or_collection_initializerContext extends ParserRuleContext { + public Object_initializerContext object_initializer() { + return getRuleContext(Object_initializerContext.class,0); + } + public Collection_initializerContext collection_initializer() { + return getRuleContext(Collection_initializerContext.class,0); + } + public Object_or_collection_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_object_or_collection_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterObject_or_collection_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitObject_or_collection_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitObject_or_collection_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Object_or_collection_initializerContext object_or_collection_initializer() throws RecognitionException { + Object_or_collection_initializerContext _localctx = new Object_or_collection_initializerContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_object_or_collection_initializer); + try { + setState(830); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(828); + object_initializer(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(829); + collection_initializer(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Object_initializerContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Member_initializer_listContext member_initializer_list() { + return getRuleContext(Member_initializer_listContext.class,0); + } + public TerminalNode COMMA() { return getToken(CSharpParser.COMMA, 0); } + public Object_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_object_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterObject_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitObject_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitObject_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Object_initializerContext object_initializer() throws RecognitionException { + Object_initializerContext _localctx = new Object_initializerContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_object_initializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(832); + match(OPEN_BRACE); + setState(837); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BY) | (1L << DESCENDING) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << NAMEOF))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (ON - 68)) | (1L << (ORDERBY - 68)) | (1L << (PARTIAL - 68)) | (1L << (REMOVE - 68)) | (1L << (SELECT - 68)) | (1L << (SET - 68)) | (1L << (WHEN - 68)) | (1L << (WHERE - 68)) | (1L << (YIELD - 68)) | (1L << (IDENTIFIER - 68)) | (1L << (OPEN_BRACKET - 68)))) != 0)) { + { + setState(833); + member_initializer_list(); + setState(835); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(834); + match(COMMA); + } + } + + } + } + + setState(839); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Member_initializer_listContext extends ParserRuleContext { + public List member_initializer() { + return getRuleContexts(Member_initializerContext.class); + } + public Member_initializerContext member_initializer(int i) { + return getRuleContext(Member_initializerContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Member_initializer_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_member_initializer_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMember_initializer_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMember_initializer_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMember_initializer_list(this); + else return visitor.visitChildren(this); + } + } + + public final Member_initializer_listContext member_initializer_list() throws RecognitionException { + Member_initializer_listContext _localctx = new Member_initializer_listContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_member_initializer_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(841); + member_initializer(); + setState(846); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,64,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(842); + match(COMMA); + setState(843); + member_initializer(); + } + } + } + setState(848); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,64,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Member_initializerContext extends ParserRuleContext { + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public Initializer_valueContext initializer_value() { + return getRuleContext(Initializer_valueContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Member_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_member_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMember_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMember_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMember_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Member_initializerContext member_initializer() throws RecognitionException { + Member_initializerContext _localctx = new Member_initializerContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_member_initializer); + try { + enterOuterAlt(_localctx, 1); + { + setState(854); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + { + setState(849); + identifier(); + } + break; + case OPEN_BRACKET: + { + setState(850); + match(OPEN_BRACKET); + setState(851); + expression(); + setState(852); + match(CLOSE_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + setState(856); + match(ASSIGNMENT); + setState(857); + initializer_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Initializer_valueContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Object_or_collection_initializerContext object_or_collection_initializer() { + return getRuleContext(Object_or_collection_initializerContext.class,0); + } + public Initializer_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_initializer_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInitializer_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInitializer_value(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInitializer_value(this); + else return visitor.visitChildren(this); + } + } + + public final Initializer_valueContext initializer_value() throws RecognitionException { + Initializer_valueContext _localctx = new Initializer_valueContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_initializer_value); + try { + setState(861); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(859); + expression(); + } + break; + case OPEN_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(860); + object_or_collection_initializer(); + } + 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 static class Collection_initializerContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public List element_initializer() { + return getRuleContexts(Element_initializerContext.class); + } + public Element_initializerContext element_initializer(int i) { + return getRuleContext(Element_initializerContext.class,i); + } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Collection_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_collection_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCollection_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCollection_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitCollection_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Collection_initializerContext collection_initializer() throws RecognitionException { + Collection_initializerContext _localctx = new Collection_initializerContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_collection_initializer); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(863); + match(OPEN_BRACE); + setState(864); + element_initializer(); + setState(869); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,67,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(865); + match(COMMA); + setState(866); + element_initializer(); + } + } + } + setState(871); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,67,_ctx); + } + setState(873); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(872); + match(COMMA); + } + } + + setState(875); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Element_initializerContext extends ParserRuleContext { + public Non_assignment_expressionContext non_assignment_expression() { + return getRuleContext(Non_assignment_expressionContext.class,0); + } + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public Expression_listContext expression_list() { + return getRuleContext(Expression_listContext.class,0); + } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Element_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_element_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterElement_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitElement_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitElement_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Element_initializerContext element_initializer() throws RecognitionException { + Element_initializerContext _localctx = new Element_initializerContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_element_initializer); + try { + setState(882); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(877); + non_assignment_expression(); + } + break; + case OPEN_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(878); + match(OPEN_BRACE); + setState(879); + expression_list(); + setState(880); + match(CLOSE_BRACE); + } + 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 static class Anonymous_object_initializerContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Member_declarator_listContext member_declarator_list() { + return getRuleContext(Member_declarator_listContext.class,0); + } + public TerminalNode COMMA() { return getToken(CSharpParser.COMMA, 0); } + public Anonymous_object_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_anonymous_object_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAnonymous_object_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAnonymous_object_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAnonymous_object_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Anonymous_object_initializerContext anonymous_object_initializer() throws RecognitionException { + Anonymous_object_initializerContext _localctx = new Anonymous_object_initializerContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_anonymous_object_initializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(884); + match(OPEN_BRACE); + setState(889); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0)) { + { + setState(885); + member_declarator_list(); + setState(887); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(886); + match(COMMA); + } + } + + } + } + + setState(891); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Member_declarator_listContext extends ParserRuleContext { + public List member_declarator() { + return getRuleContexts(Member_declaratorContext.class); + } + public Member_declaratorContext member_declarator(int i) { + return getRuleContext(Member_declaratorContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Member_declarator_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_member_declarator_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMember_declarator_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMember_declarator_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMember_declarator_list(this); + else return visitor.visitChildren(this); + } + } + + public final Member_declarator_listContext member_declarator_list() throws RecognitionException { + Member_declarator_listContext _localctx = new Member_declarator_listContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_member_declarator_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(893); + member_declarator(); + setState(898); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,72,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(894); + match(COMMA); + setState(895); + member_declarator(); + } + } + } + setState(900); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,72,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Member_declaratorContext extends ParserRuleContext { + public Primary_expressionContext primary_expression() { + return getRuleContext(Primary_expressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Member_declaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_member_declarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMember_declarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMember_declarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMember_declarator(this); + else return visitor.visitChildren(this); + } + } + + public final Member_declaratorContext member_declarator() throws RecognitionException { + Member_declaratorContext _localctx = new Member_declaratorContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_member_declarator); + try { + setState(906); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,73,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(901); + primary_expression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(902); + identifier(); + setState(903); + match(ASSIGNMENT); + setState(904); + expression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Unbound_type_nameContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List DOT() { return getTokens(CSharpParser.DOT); } + public TerminalNode DOT(int i) { + return getToken(CSharpParser.DOT, i); + } + public List generic_dimension_specifier() { + return getRuleContexts(Generic_dimension_specifierContext.class); + } + public Generic_dimension_specifierContext generic_dimension_specifier(int i) { + return getRuleContext(Generic_dimension_specifierContext.class,i); + } + public Unbound_type_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unbound_type_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUnbound_type_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUnbound_type_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUnbound_type_name(this); + else return visitor.visitChildren(this); + } + } + + public final Unbound_type_nameContext unbound_type_name() throws RecognitionException { + Unbound_type_nameContext _localctx = new Unbound_type_nameContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_unbound_type_name); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(908); + identifier(); + setState(917); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CLOSE_PARENS: + case DOT: + case LT: + { + setState(910); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(909); + generic_dimension_specifier(); + } + } + + } + break; + case DOUBLE_COLON: + { + setState(912); + match(DOUBLE_COLON); + setState(913); + identifier(); + setState(915); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(914); + generic_dimension_specifier(); + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + setState(926); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(919); + match(DOT); + setState(920); + identifier(); + setState(922); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(921); + generic_dimension_specifier(); + } + } + + } + } + setState(928); + _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 class Generic_dimension_specifierContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(CSharpParser.LT, 0); } + public TerminalNode GT() { return getToken(CSharpParser.GT, 0); } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Generic_dimension_specifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_generic_dimension_specifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterGeneric_dimension_specifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitGeneric_dimension_specifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitGeneric_dimension_specifier(this); + else return visitor.visitChildren(this); + } + } + + public final Generic_dimension_specifierContext generic_dimension_specifier() throws RecognitionException { + Generic_dimension_specifierContext _localctx = new Generic_dimension_specifierContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_generic_dimension_specifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(929); + match(LT); + setState(933); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(930); + match(COMMA); + } + } + setState(935); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(936); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IsTypeContext extends ParserRuleContext { + public Base_typeContext base_type() { + return getRuleContext(Base_typeContext.class,0); + } + public List rank_specifier() { + return getRuleContexts(Rank_specifierContext.class); + } + public Rank_specifierContext rank_specifier(int i) { + return getRuleContext(Rank_specifierContext.class,i); + } + public List STAR() { return getTokens(CSharpParser.STAR); } + public TerminalNode STAR(int i) { + return getToken(CSharpParser.STAR, i); + } + public TerminalNode INTERR() { return getToken(CSharpParser.INTERR, 0); } + public IsTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIsType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIsType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitIsType(this); + else return visitor.visitChildren(this); + } + } + + public final IsTypeContext isType() throws RecognitionException { + IsTypeContext _localctx = new IsTypeContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_isType); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(938); + base_type(); + setState(943); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,81,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + setState(941); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACKET: + { + setState(939); + rank_specifier(); + } + break; + case STAR: + { + setState(940); + match(STAR); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + setState(945); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,81,_ctx); + } + setState(947); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,82,_ctx) ) { + case 1: + { + setState(946); + match(INTERR); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Lambda_expressionContext extends ParserRuleContext { + public Anonymous_function_signatureContext anonymous_function_signature() { + return getRuleContext(Anonymous_function_signatureContext.class,0); + } + public Right_arrowContext right_arrow() { + return getRuleContext(Right_arrowContext.class,0); + } + public Anonymous_function_bodyContext anonymous_function_body() { + return getRuleContext(Anonymous_function_bodyContext.class,0); + } + public TerminalNode ASYNC() { return getToken(CSharpParser.ASYNC, 0); } + public Lambda_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambda_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLambda_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLambda_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLambda_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Lambda_expressionContext lambda_expression() throws RecognitionException { + Lambda_expressionContext _localctx = new Lambda_expressionContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_lambda_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(950); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,83,_ctx) ) { + case 1: + { + setState(949); + match(ASYNC); + } + break; + } + setState(952); + anonymous_function_signature(); + setState(953); + right_arrow(); + setState(954); + anonymous_function_body(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Anonymous_function_signatureContext extends ParserRuleContext { + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Explicit_anonymous_function_parameter_listContext explicit_anonymous_function_parameter_list() { + return getRuleContext(Explicit_anonymous_function_parameter_listContext.class,0); + } + public Implicit_anonymous_function_parameter_listContext implicit_anonymous_function_parameter_list() { + return getRuleContext(Implicit_anonymous_function_parameter_listContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Anonymous_function_signatureContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_anonymous_function_signature; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAnonymous_function_signature(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAnonymous_function_signature(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAnonymous_function_signature(this); + else return visitor.visitChildren(this); + } + } + + public final Anonymous_function_signatureContext anonymous_function_signature() throws RecognitionException { + Anonymous_function_signatureContext _localctx = new Anonymous_function_signatureContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_anonymous_function_signature); + try { + setState(967); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,84,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(956); + match(OPEN_PARENS); + setState(957); + match(CLOSE_PARENS); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(958); + match(OPEN_PARENS); + setState(959); + explicit_anonymous_function_parameter_list(); + setState(960); + match(CLOSE_PARENS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(962); + match(OPEN_PARENS); + setState(963); + implicit_anonymous_function_parameter_list(); + setState(964); + match(CLOSE_PARENS); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(966); + identifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Explicit_anonymous_function_parameter_listContext extends ParserRuleContext { + public List explicit_anonymous_function_parameter() { + return getRuleContexts(Explicit_anonymous_function_parameterContext.class); + } + public Explicit_anonymous_function_parameterContext explicit_anonymous_function_parameter(int i) { + return getRuleContext(Explicit_anonymous_function_parameterContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Explicit_anonymous_function_parameter_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explicit_anonymous_function_parameter_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExplicit_anonymous_function_parameter_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExplicit_anonymous_function_parameter_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExplicit_anonymous_function_parameter_list(this); + else return visitor.visitChildren(this); + } + } + + public final Explicit_anonymous_function_parameter_listContext explicit_anonymous_function_parameter_list() throws RecognitionException { + Explicit_anonymous_function_parameter_listContext _localctx = new Explicit_anonymous_function_parameter_listContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_explicit_anonymous_function_parameter_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(969); + explicit_anonymous_function_parameter(); + setState(974); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(970); + match(COMMA); + setState(971); + explicit_anonymous_function_parameter(); + } + } + setState(976); + _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 class Explicit_anonymous_function_parameterContext extends ParserRuleContext { + public Token refout; + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode REF() { return getToken(CSharpParser.REF, 0); } + public TerminalNode OUT() { return getToken(CSharpParser.OUT, 0); } + public Explicit_anonymous_function_parameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explicit_anonymous_function_parameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExplicit_anonymous_function_parameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExplicit_anonymous_function_parameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExplicit_anonymous_function_parameter(this); + else return visitor.visitChildren(this); + } + } + + public final Explicit_anonymous_function_parameterContext explicit_anonymous_function_parameter() throws RecognitionException { + Explicit_anonymous_function_parameterContext _localctx = new Explicit_anonymous_function_parameterContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_explicit_anonymous_function_parameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(978); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OUT || _la==REF) { + { + setState(977); + ((Explicit_anonymous_function_parameterContext)_localctx).refout = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==OUT || _la==REF) ) { + ((Explicit_anonymous_function_parameterContext)_localctx).refout = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + setState(980); + type(); + setState(981); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Implicit_anonymous_function_parameter_listContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Implicit_anonymous_function_parameter_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_implicit_anonymous_function_parameter_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterImplicit_anonymous_function_parameter_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitImplicit_anonymous_function_parameter_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitImplicit_anonymous_function_parameter_list(this); + else return visitor.visitChildren(this); + } + } + + public final Implicit_anonymous_function_parameter_listContext implicit_anonymous_function_parameter_list() throws RecognitionException { + Implicit_anonymous_function_parameter_listContext _localctx = new Implicit_anonymous_function_parameter_listContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_implicit_anonymous_function_parameter_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(983); + identifier(); + setState(988); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(984); + match(COMMA); + setState(985); + identifier(); + } + } + setState(990); + _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 class Anonymous_function_bodyContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Anonymous_function_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_anonymous_function_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAnonymous_function_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAnonymous_function_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAnonymous_function_body(this); + else return visitor.visitChildren(this); + } + } + + public final Anonymous_function_bodyContext anonymous_function_body() throws RecognitionException { + Anonymous_function_bodyContext _localctx = new Anonymous_function_bodyContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_anonymous_function_body); + try { + setState(993); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(991); + expression(); + } + break; + case OPEN_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(992); + block(); + } + 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 static class Query_expressionContext extends ParserRuleContext { + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class,0); + } + public Query_bodyContext query_body() { + return getRuleContext(Query_bodyContext.class,0); + } + public Query_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_query_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterQuery_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitQuery_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitQuery_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Query_expressionContext query_expression() throws RecognitionException { + Query_expressionContext _localctx = new Query_expressionContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_query_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(995); + from_clause(); + setState(996); + query_body(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class From_clauseContext extends ParserRuleContext { + public TerminalNode FROM() { return getToken(CSharpParser.FROM, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IN() { return getToken(CSharpParser.IN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public From_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_from_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFrom_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFrom_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFrom_clause(this); + else return visitor.visitChildren(this); + } + } + + public final From_clauseContext from_clause() throws RecognitionException { + From_clauseContext _localctx = new From_clauseContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_from_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(998); + match(FROM); + setState(1000); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { + case 1: + { + setState(999); + type(); + } + break; + } + setState(1002); + identifier(); + setState(1003); + match(IN); + setState(1004); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Query_bodyContext extends ParserRuleContext { + public Select_or_group_clauseContext select_or_group_clause() { + return getRuleContext(Select_or_group_clauseContext.class,0); + } + public List query_body_clause() { + return getRuleContexts(Query_body_clauseContext.class); + } + public Query_body_clauseContext query_body_clause(int i) { + return getRuleContext(Query_body_clauseContext.class,i); + } + public Query_continuationContext query_continuation() { + return getRuleContext(Query_continuationContext.class,0); + } + public Query_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_query_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterQuery_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitQuery_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitQuery_body(this); + else return visitor.visitChildren(this); + } + } + + public final Query_bodyContext query_body() throws RecognitionException { + Query_bodyContext _localctx = new Query_bodyContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_query_body); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1009); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (FROM - 47)) | (1L << (JOIN - 47)) | (1L << (LET - 47)) | (1L << (ORDERBY - 47)) | (1L << (WHERE - 47)))) != 0)) { + { + { + setState(1006); + query_body_clause(); + } + } + setState(1011); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1012); + select_or_group_clause(); + setState(1014); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,91,_ctx) ) { + case 1: + { + setState(1013); + query_continuation(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Query_body_clauseContext extends ParserRuleContext { + public From_clauseContext from_clause() { + return getRuleContext(From_clauseContext.class,0); + } + public Let_clauseContext let_clause() { + return getRuleContext(Let_clauseContext.class,0); + } + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class,0); + } + public Combined_join_clauseContext combined_join_clause() { + return getRuleContext(Combined_join_clauseContext.class,0); + } + public Orderby_clauseContext orderby_clause() { + return getRuleContext(Orderby_clauseContext.class,0); + } + public Query_body_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_query_body_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterQuery_body_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitQuery_body_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitQuery_body_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Query_body_clauseContext query_body_clause() throws RecognitionException { + Query_body_clauseContext _localctx = new Query_body_clauseContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_query_body_clause); + try { + setState(1021); + _errHandler.sync(this); + switch (_input.LA(1)) { + case FROM: + enterOuterAlt(_localctx, 1); + { + setState(1016); + from_clause(); + } + break; + case LET: + enterOuterAlt(_localctx, 2); + { + setState(1017); + let_clause(); + } + break; + case WHERE: + enterOuterAlt(_localctx, 3); + { + setState(1018); + where_clause(); + } + break; + case JOIN: + enterOuterAlt(_localctx, 4); + { + setState(1019); + combined_join_clause(); + } + break; + case ORDERBY: + enterOuterAlt(_localctx, 5); + { + setState(1020); + orderby_clause(); + } + 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 static class Let_clauseContext extends ParserRuleContext { + public TerminalNode LET() { return getToken(CSharpParser.LET, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Let_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_let_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLet_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLet_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLet_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Let_clauseContext let_clause() throws RecognitionException { + Let_clauseContext _localctx = new Let_clauseContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_let_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1023); + match(LET); + setState(1024); + identifier(); + setState(1025); + match(ASSIGNMENT); + setState(1026); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Where_clauseContext extends ParserRuleContext { + public TerminalNode WHERE() { return getToken(CSharpParser.WHERE, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Where_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_where_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterWhere_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitWhere_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitWhere_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Where_clauseContext where_clause() throws RecognitionException { + Where_clauseContext _localctx = new Where_clauseContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_where_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1028); + match(WHERE); + setState(1029); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Combined_join_clauseContext extends ParserRuleContext { + public TerminalNode JOIN() { return getToken(CSharpParser.JOIN, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode IN() { return getToken(CSharpParser.IN, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode ON() { return getToken(CSharpParser.ON, 0); } + public TerminalNode EQUALS() { return getToken(CSharpParser.EQUALS, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode INTO() { return getToken(CSharpParser.INTO, 0); } + public Combined_join_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_combined_join_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCombined_join_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCombined_join_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitCombined_join_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Combined_join_clauseContext combined_join_clause() throws RecognitionException { + Combined_join_clauseContext _localctx = new Combined_join_clauseContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_combined_join_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1031); + match(JOIN); + setState(1033); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,93,_ctx) ) { + case 1: + { + setState(1032); + type(); + } + break; + } + setState(1035); + identifier(); + setState(1036); + match(IN); + setState(1037); + expression(); + setState(1038); + match(ON); + setState(1039); + expression(); + setState(1040); + match(EQUALS); + setState(1041); + expression(); + setState(1044); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INTO) { + { + setState(1042); + match(INTO); + setState(1043); + identifier(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Orderby_clauseContext extends ParserRuleContext { + public TerminalNode ORDERBY() { return getToken(CSharpParser.ORDERBY, 0); } + public List ordering() { + return getRuleContexts(OrderingContext.class); + } + public OrderingContext ordering(int i) { + return getRuleContext(OrderingContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Orderby_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_orderby_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterOrderby_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitOrderby_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitOrderby_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Orderby_clauseContext orderby_clause() throws RecognitionException { + Orderby_clauseContext _localctx = new Orderby_clauseContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_orderby_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1046); + match(ORDERBY); + setState(1047); + ordering(); + setState(1052); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1048); + match(COMMA); + setState(1049); + ordering(); + } + } + setState(1054); + _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 class OrderingContext extends ParserRuleContext { + public Token dir; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode ASCENDING() { return getToken(CSharpParser.ASCENDING, 0); } + public TerminalNode DESCENDING() { return getToken(CSharpParser.DESCENDING, 0); } + public OrderingContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ordering; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterOrdering(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitOrdering(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitOrdering(this); + else return visitor.visitChildren(this); + } + } + + public final OrderingContext ordering() throws RecognitionException { + OrderingContext _localctx = new OrderingContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_ordering); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1055); + expression(); + setState(1057); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASCENDING || _la==DESCENDING) { + { + setState(1056); + ((OrderingContext)_localctx).dir = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ASCENDING || _la==DESCENDING) ) { + ((OrderingContext)_localctx).dir = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Select_or_group_clauseContext extends ParserRuleContext { + public TerminalNode SELECT() { return getToken(CSharpParser.SELECT, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode GROUP() { return getToken(CSharpParser.GROUP, 0); } + public TerminalNode BY() { return getToken(CSharpParser.BY, 0); } + public Select_or_group_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_select_or_group_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSelect_or_group_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSelect_or_group_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSelect_or_group_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Select_or_group_clauseContext select_or_group_clause() throws RecognitionException { + Select_or_group_clauseContext _localctx = new Select_or_group_clauseContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_select_or_group_clause); + try { + setState(1066); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SELECT: + enterOuterAlt(_localctx, 1); + { + setState(1059); + match(SELECT); + setState(1060); + expression(); + } + break; + case GROUP: + enterOuterAlt(_localctx, 2); + { + setState(1061); + match(GROUP); + setState(1062); + expression(); + setState(1063); + match(BY); + setState(1064); + expression(); + } + 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 static class Query_continuationContext extends ParserRuleContext { + public TerminalNode INTO() { return getToken(CSharpParser.INTO, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Query_bodyContext query_body() { + return getRuleContext(Query_bodyContext.class,0); + } + public Query_continuationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_query_continuation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterQuery_continuation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitQuery_continuation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitQuery_continuation(this); + else return visitor.visitChildren(this); + } + } + + public final Query_continuationContext query_continuation() throws RecognitionException { + Query_continuationContext _localctx = new Query_continuationContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_query_continuation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1068); + match(INTO); + setState(1069); + identifier(); + setState(1070); + query_body(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StatementContext extends ParserRuleContext { + public StatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statement; } + + public StatementContext() { } + public void copyFrom(StatementContext ctx) { + super.copyFrom(ctx); + } + } + public static class DeclarationStatementContext extends StatementContext { + public Local_variable_declarationContext local_variable_declaration() { + return getRuleContext(Local_variable_declarationContext.class,0); + } + public Local_constant_declarationContext local_constant_declaration() { + return getRuleContext(Local_constant_declarationContext.class,0); + } + public DeclarationStatementContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterDeclarationStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitDeclarationStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitDeclarationStatement(this); + else return visitor.visitChildren(this); + } + } + public static class EmbeddedStatementContext extends StatementContext { + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public EmbeddedStatementContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEmbeddedStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEmbeddedStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEmbeddedStatement(this); + else return visitor.visitChildren(this); + } + } + public static class LabeledStatementContext extends StatementContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public LabeledStatementContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLabeledStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLabeledStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLabeledStatement(this); + else return visitor.visitChildren(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_statement); + try { + setState(1083); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,99,_ctx) ) { + case 1: + _localctx = new LabeledStatementContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1072); + identifier(); + setState(1073); + match(COLON); + setState(1074); + statement(); + } + break; + case 2: + _localctx = new DeclarationStatementContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1078); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BOOL: + case BY: + case BYTE: + case CHAR: + case DECIMAL: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case STRING: + case UINT: + case ULONG: + case USHORT: + case VOID: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + { + setState(1076); + local_variable_declaration(); + } + break; + case CONST: + { + setState(1077); + local_constant_declaration(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1080); + match(SEMICOLON); + } + break; + case 3: + _localctx = new EmbeddedStatementContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1082); + embedded_statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Embedded_statementContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Simple_embedded_statementContext simple_embedded_statement() { + return getRuleContext(Simple_embedded_statementContext.class,0); + } + public Embedded_statementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_embedded_statement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEmbedded_statement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEmbedded_statement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEmbedded_statement(this); + else return visitor.visitChildren(this); + } + } + + public final Embedded_statementContext embedded_statement() throws RecognitionException { + Embedded_statementContext _localctx = new Embedded_statementContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_embedded_statement); + try { + setState(1087); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + enterOuterAlt(_localctx, 1); + { + setState(1085); + block(); + } + break; + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BREAK: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case CONTINUE: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DO: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FIXED: + case FLOAT: + case FOR: + case FOREACH: + case FROM: + case GET: + case GOTO: + case GROUP: + case IF: + case INT: + case INTO: + case JOIN: + case LET: + case LOCK: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case RETURN: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case SWITCH: + case THIS: + case THROW: + case TRUE: + case TRY: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case UNSAFE: + case USHORT: + case USING: + case WHEN: + case WHERE: + case WHILE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case SEMICOLON: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 2); + { + setState(1086); + simple_embedded_statement(); + } + 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 static class Simple_embedded_statementContext extends ParserRuleContext { + public Simple_embedded_statementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_simple_embedded_statement; } + + public Simple_embedded_statementContext() { } + public void copyFrom(Simple_embedded_statementContext ctx) { + super.copyFrom(ctx); + } + } + public static class EmptyStatementContext extends Simple_embedded_statementContext { + public EmptyStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEmptyStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEmptyStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEmptyStatement(this); + else return visitor.visitChildren(this); + } + } + public static class TryStatementContext extends Simple_embedded_statementContext { + public TerminalNode TRY() { return getToken(CSharpParser.TRY, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Catch_clausesContext catch_clauses() { + return getRuleContext(Catch_clausesContext.class,0); + } + public Finally_clauseContext finally_clause() { + return getRuleContext(Finally_clauseContext.class,0); + } + public TryStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterTryStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitTryStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitTryStatement(this); + else return visitor.visitChildren(this); + } + } + public static class CheckedStatementContext extends Simple_embedded_statementContext { + public TerminalNode CHECKED() { return getToken(CSharpParser.CHECKED, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public CheckedStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCheckedStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCheckedStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitCheckedStatement(this); + else return visitor.visitChildren(this); + } + } + public static class ThrowStatementContext extends Simple_embedded_statementContext { + public TerminalNode THROW() { return getToken(CSharpParser.THROW, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ThrowStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterThrowStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitThrowStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitThrowStatement(this); + else return visitor.visitChildren(this); + } + } + public static class ForeschStatementContext extends Simple_embedded_statementContext { + public TerminalNode FOREACH() { return getToken(CSharpParser.FOREACH, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode IN() { return getToken(CSharpParser.IN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public ForeschStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterForeschStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitForeschStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitForeschStatement(this); + else return visitor.visitChildren(this); + } + } + public static class UnsafeStatementContext extends Simple_embedded_statementContext { + public TerminalNode UNSAFE() { return getToken(CSharpParser.UNSAFE, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public UnsafeStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUnsafeStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUnsafeStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUnsafeStatement(this); + else return visitor.visitChildren(this); + } + } + public static class ForStatementContext extends Simple_embedded_statementContext { + public TerminalNode FOR() { return getToken(CSharpParser.FOR, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public For_initializerContext for_initializer() { + return getRuleContext(For_initializerContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public For_iteratorContext for_iterator() { + return getRuleContext(For_iteratorContext.class,0); + } + public ForStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterForStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitForStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitForStatement(this); + else return visitor.visitChildren(this); + } + } + public static class BreakStatementContext extends Simple_embedded_statementContext { + public TerminalNode BREAK() { return getToken(CSharpParser.BREAK, 0); } + public BreakStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterBreakStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitBreakStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitBreakStatement(this); + else return visitor.visitChildren(this); + } + } + public static class IfStatementContext extends Simple_embedded_statementContext { + public TerminalNode IF() { return getToken(CSharpParser.IF, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public List if_body() { + return getRuleContexts(If_bodyContext.class); + } + public If_bodyContext if_body(int i) { + return getRuleContext(If_bodyContext.class,i); + } + public TerminalNode ELSE() { return getToken(CSharpParser.ELSE, 0); } + public IfStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIfStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIfStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitIfStatement(this); + else return visitor.visitChildren(this); + } + } + public static class ReturnStatementContext extends Simple_embedded_statementContext { + public TerminalNode RETURN() { return getToken(CSharpParser.RETURN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ReturnStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterReturnStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitReturnStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitReturnStatement(this); + else return visitor.visitChildren(this); + } + } + public static class GotoStatementContext extends Simple_embedded_statementContext { + public TerminalNode GOTO() { return getToken(CSharpParser.GOTO, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode CASE() { return getToken(CSharpParser.CASE, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode DEFAULT() { return getToken(CSharpParser.DEFAULT, 0); } + public GotoStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterGotoStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitGotoStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitGotoStatement(this); + else return visitor.visitChildren(this); + } + } + public static class SwitchStatementContext extends Simple_embedded_statementContext { + public TerminalNode SWITCH() { return getToken(CSharpParser.SWITCH, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public List switch_section() { + return getRuleContexts(Switch_sectionContext.class); + } + public Switch_sectionContext switch_section(int i) { + return getRuleContext(Switch_sectionContext.class,i); + } + public SwitchStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSwitchStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSwitchStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSwitchStatement(this); + else return visitor.visitChildren(this); + } + } + public static class FixedStatementContext extends Simple_embedded_statementContext { + public TerminalNode FIXED() { return getToken(CSharpParser.FIXED, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public Pointer_typeContext pointer_type() { + return getRuleContext(Pointer_typeContext.class,0); + } + public Fixed_pointer_declaratorsContext fixed_pointer_declarators() { + return getRuleContext(Fixed_pointer_declaratorsContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public FixedStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFixedStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFixedStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFixedStatement(this); + else return visitor.visitChildren(this); + } + } + public static class WhileStatementContext extends Simple_embedded_statementContext { + public TerminalNode WHILE() { return getToken(CSharpParser.WHILE, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public WhileStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterWhileStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitWhileStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitWhileStatement(this); + else return visitor.visitChildren(this); + } + } + public static class DoStatementContext extends Simple_embedded_statementContext { + public TerminalNode DO() { return getToken(CSharpParser.DO, 0); } + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public TerminalNode WHILE() { return getToken(CSharpParser.WHILE, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public DoStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterDoStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitDoStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitDoStatement(this); + else return visitor.visitChildren(this); + } + } + public static class UncheckedStatementContext extends Simple_embedded_statementContext { + public TerminalNode UNCHECKED() { return getToken(CSharpParser.UNCHECKED, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public UncheckedStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUncheckedStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUncheckedStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUncheckedStatement(this); + else return visitor.visitChildren(this); + } + } + public static class ExpressionStatementContext extends Simple_embedded_statementContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ExpressionStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExpressionStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExpressionStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExpressionStatement(this); + else return visitor.visitChildren(this); + } + } + public static class ContinueStatementContext extends Simple_embedded_statementContext { + public TerminalNode CONTINUE() { return getToken(CSharpParser.CONTINUE, 0); } + public ContinueStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterContinueStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitContinueStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitContinueStatement(this); + else return visitor.visitChildren(this); + } + } + public static class UsingStatementContext extends Simple_embedded_statementContext { + public TerminalNode USING() { return getToken(CSharpParser.USING, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public Resource_acquisitionContext resource_acquisition() { + return getRuleContext(Resource_acquisitionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public UsingStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUsingStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUsingStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUsingStatement(this); + else return visitor.visitChildren(this); + } + } + public static class LockStatementContext extends Simple_embedded_statementContext { + public TerminalNode LOCK() { return getToken(CSharpParser.LOCK, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Embedded_statementContext embedded_statement() { + return getRuleContext(Embedded_statementContext.class,0); + } + public LockStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLockStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLockStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLockStatement(this); + else return visitor.visitChildren(this); + } + } + public static class YieldStatementContext extends Simple_embedded_statementContext { + public TerminalNode YIELD() { return getToken(CSharpParser.YIELD, 0); } + public TerminalNode RETURN() { return getToken(CSharpParser.RETURN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode BREAK() { return getToken(CSharpParser.BREAK, 0); } + public YieldStatementContext(Simple_embedded_statementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterYieldStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitYieldStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitYieldStatement(this); + else return visitor.visitChildren(this); + } + } + + public final Simple_embedded_statementContext simple_embedded_statement() throws RecognitionException { + Simple_embedded_statementContext _localctx = new Simple_embedded_statementContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_simple_embedded_statement); + int _la; + try { + setState(1216); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,112,_ctx) ) { + case 1: + _localctx = new EmptyStatementContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1089); + match(SEMICOLON); + } + break; + case 2: + _localctx = new ExpressionStatementContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1090); + expression(); + setState(1091); + match(SEMICOLON); + } + break; + case 3: + _localctx = new IfStatementContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1093); + match(IF); + setState(1094); + match(OPEN_PARENS); + setState(1095); + expression(); + setState(1096); + match(CLOSE_PARENS); + setState(1097); + if_body(); + setState(1100); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,101,_ctx) ) { + case 1: + { + setState(1098); + match(ELSE); + setState(1099); + if_body(); + } + break; + } + } + break; + case 4: + _localctx = new SwitchStatementContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1102); + match(SWITCH); + setState(1103); + match(OPEN_PARENS); + setState(1104); + expression(); + setState(1105); + match(CLOSE_PARENS); + setState(1106); + match(OPEN_BRACE); + setState(1110); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1107); + switch_section(); + } + } + setState(1112); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1113); + match(CLOSE_BRACE); + } + break; + case 5: + _localctx = new WhileStatementContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1115); + match(WHILE); + setState(1116); + match(OPEN_PARENS); + setState(1117); + expression(); + setState(1118); + match(CLOSE_PARENS); + setState(1119); + embedded_statement(); + } + break; + case 6: + _localctx = new DoStatementContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(1121); + match(DO); + setState(1122); + embedded_statement(); + setState(1123); + match(WHILE); + setState(1124); + match(OPEN_PARENS); + setState(1125); + expression(); + setState(1126); + match(CLOSE_PARENS); + setState(1127); + match(SEMICOLON); + } + break; + case 7: + _localctx = new ForStatementContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(1129); + match(FOR); + setState(1130); + match(OPEN_PARENS); + setState(1132); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (VOID - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(1131); + for_initializer(); + } + } + + setState(1134); + match(SEMICOLON); + setState(1136); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(1135); + expression(); + } + } + + setState(1138); + match(SEMICOLON); + setState(1140); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(1139); + for_iterator(); + } + } + + setState(1142); + match(CLOSE_PARENS); + setState(1143); + embedded_statement(); + } + break; + case 8: + _localctx = new ForeschStatementContext(_localctx); + enterOuterAlt(_localctx, 8); + { + setState(1144); + match(FOREACH); + setState(1145); + match(OPEN_PARENS); + setState(1146); + type(); + setState(1147); + identifier(); + setState(1148); + match(IN); + setState(1149); + expression(); + setState(1150); + match(CLOSE_PARENS); + setState(1151); + embedded_statement(); + } + break; + case 9: + _localctx = new BreakStatementContext(_localctx); + enterOuterAlt(_localctx, 9); + { + setState(1153); + match(BREAK); + setState(1154); + match(SEMICOLON); + } + break; + case 10: + _localctx = new ContinueStatementContext(_localctx); + enterOuterAlt(_localctx, 10); + { + setState(1155); + match(CONTINUE); + setState(1156); + match(SEMICOLON); + } + break; + case 11: + _localctx = new GotoStatementContext(_localctx); + enterOuterAlt(_localctx, 11); + { + setState(1157); + match(GOTO); + setState(1162); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + { + setState(1158); + identifier(); + } + break; + case CASE: + { + setState(1159); + match(CASE); + setState(1160); + expression(); + } + break; + case DEFAULT: + { + setState(1161); + match(DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1164); + match(SEMICOLON); + } + break; + case 12: + _localctx = new ReturnStatementContext(_localctx); + enterOuterAlt(_localctx, 12); + { + setState(1165); + match(RETURN); + setState(1167); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(1166); + expression(); + } + } + + setState(1169); + match(SEMICOLON); + } + break; + case 13: + _localctx = new ThrowStatementContext(_localctx); + enterOuterAlt(_localctx, 13); + { + setState(1170); + match(THROW); + setState(1172); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(1171); + expression(); + } + } + + setState(1174); + match(SEMICOLON); + } + break; + case 14: + _localctx = new TryStatementContext(_localctx); + enterOuterAlt(_localctx, 14); + { + setState(1175); + match(TRY); + setState(1176); + block(); + setState(1182); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CATCH: + { + setState(1177); + catch_clauses(); + setState(1179); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINALLY) { + { + setState(1178); + finally_clause(); + } + } + + } + break; + case FINALLY: + { + setState(1181); + finally_clause(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 15: + _localctx = new CheckedStatementContext(_localctx); + enterOuterAlt(_localctx, 15); + { + setState(1184); + match(CHECKED); + setState(1185); + block(); + } + break; + case 16: + _localctx = new UncheckedStatementContext(_localctx); + enterOuterAlt(_localctx, 16); + { + setState(1186); + match(UNCHECKED); + setState(1187); + block(); + } + break; + case 17: + _localctx = new LockStatementContext(_localctx); + enterOuterAlt(_localctx, 17); + { + setState(1188); + match(LOCK); + setState(1189); + match(OPEN_PARENS); + setState(1190); + expression(); + setState(1191); + match(CLOSE_PARENS); + setState(1192); + embedded_statement(); + } + break; + case 18: + _localctx = new UsingStatementContext(_localctx); + enterOuterAlt(_localctx, 18); + { + setState(1194); + match(USING); + setState(1195); + match(OPEN_PARENS); + setState(1196); + resource_acquisition(); + setState(1197); + match(CLOSE_PARENS); + setState(1198); + embedded_statement(); + } + break; + case 19: + _localctx = new YieldStatementContext(_localctx); + enterOuterAlt(_localctx, 19); + { + setState(1200); + match(YIELD); + setState(1204); + _errHandler.sync(this); + switch (_input.LA(1)) { + case RETURN: + { + setState(1201); + match(RETURN); + setState(1202); + expression(); + } + break; + case BREAK: + { + setState(1203); + match(BREAK); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1206); + match(SEMICOLON); + } + break; + case 20: + _localctx = new UnsafeStatementContext(_localctx); + enterOuterAlt(_localctx, 20); + { + setState(1207); + match(UNSAFE); + setState(1208); + block(); + } + break; + case 21: + _localctx = new FixedStatementContext(_localctx); + enterOuterAlt(_localctx, 21); + { + setState(1209); + match(FIXED); + setState(1210); + match(OPEN_PARENS); + setState(1211); + pointer_type(); + setState(1212); + fixed_pointer_declarators(); + setState(1213); + match(CLOSE_PARENS); + setState(1214); + embedded_statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BlockContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Statement_listContext statement_list() { + return getRuleContext(Statement_listContext.class,0); + } + public BlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_block; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitBlock(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitBlock(this); + else return visitor.visitChildren(this); + } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_block); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1218); + match(OPEN_BRACE); + setState(1220); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BREAK) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << CONST) | (1L << CONTINUE) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DO) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FIXED) | (1L << FLOAT) | (1L << FOR) | (1L << FOREACH) | (1L << FROM) | (1L << GET) | (1L << GOTO) | (1L << GROUP) | (1L << IF) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LOCK) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (RETURN - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (SWITCH - 65)) | (1L << (THIS - 65)) | (1L << (THROW - 65)) | (1L << (TRUE - 65)) | (1L << (TRY - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (UNSAFE - 65)) | (1L << (USHORT - 65)) | (1L << (USING - 65)) | (1L << (VOID - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (WHILE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_BRACE - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (SEMICOLON - 130)) | (1L << (PLUS - 130)) | (1L << (MINUS - 130)) | (1L << (STAR - 130)) | (1L << (AMP - 130)) | (1L << (BANG - 130)) | (1L << (TILDE - 130)) | (1L << (OP_INC - 130)) | (1L << (OP_DEC - 130)))) != 0)) { + { + setState(1219); + statement_list(); + } + } + + setState(1222); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Local_variable_declarationContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public List local_variable_declarator() { + return getRuleContexts(Local_variable_declaratorContext.class); + } + public Local_variable_declaratorContext local_variable_declarator(int i) { + return getRuleContext(Local_variable_declaratorContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Local_variable_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_local_variable_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_variable_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_variable_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLocal_variable_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Local_variable_declarationContext local_variable_declaration() throws RecognitionException { + Local_variable_declarationContext _localctx = new Local_variable_declarationContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_local_variable_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1224); + type(); + setState(1225); + local_variable_declarator(); + setState(1230); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1226); + match(COMMA); + setState(1227); + local_variable_declarator(); + } + } + setState(1232); + _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 class Local_variable_declaratorContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public Local_variable_initializerContext local_variable_initializer() { + return getRuleContext(Local_variable_initializerContext.class,0); + } + public Local_variable_declaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_local_variable_declarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_variable_declarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_variable_declarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLocal_variable_declarator(this); + else return visitor.visitChildren(this); + } + } + + public final Local_variable_declaratorContext local_variable_declarator() throws RecognitionException { + Local_variable_declaratorContext _localctx = new Local_variable_declaratorContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_local_variable_declarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1233); + identifier(); + setState(1236); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGNMENT) { + { + setState(1234); + match(ASSIGNMENT); + setState(1235); + local_variable_initializer(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Local_variable_initializerContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Array_initializerContext array_initializer() { + return getRuleContext(Array_initializerContext.class,0); + } + public Local_variable_initializer_unsafeContext local_variable_initializer_unsafe() { + return getRuleContext(Local_variable_initializer_unsafeContext.class,0); + } + public Local_variable_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_local_variable_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_variable_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_variable_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLocal_variable_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Local_variable_initializerContext local_variable_initializer() throws RecognitionException { + Local_variable_initializerContext _localctx = new Local_variable_initializerContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_local_variable_initializer); + try { + setState(1241); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(1238); + expression(); + } + break; + case OPEN_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1239); + array_initializer(); + } + break; + case STACKALLOC: + enterOuterAlt(_localctx, 3); + { + setState(1240); + local_variable_initializer_unsafe(); + } + 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 static class Local_constant_declarationContext extends ParserRuleContext { + public TerminalNode CONST() { return getToken(CSharpParser.CONST, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public Constant_declaratorsContext constant_declarators() { + return getRuleContext(Constant_declaratorsContext.class,0); + } + public Local_constant_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_local_constant_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_constant_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_constant_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLocal_constant_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Local_constant_declarationContext local_constant_declaration() throws RecognitionException { + Local_constant_declarationContext _localctx = new Local_constant_declarationContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_local_constant_declaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(1243); + match(CONST); + setState(1244); + type(); + setState(1245); + constant_declarators(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class If_bodyContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Simple_embedded_statementContext simple_embedded_statement() { + return getRuleContext(Simple_embedded_statementContext.class,0); + } + public If_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_if_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIf_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIf_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitIf_body(this); + else return visitor.visitChildren(this); + } + } + + public final If_bodyContext if_body() throws RecognitionException { + If_bodyContext _localctx = new If_bodyContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_if_body); + try { + setState(1249); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + enterOuterAlt(_localctx, 1); + { + setState(1247); + block(); + } + break; + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BREAK: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case CONTINUE: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DO: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FIXED: + case FLOAT: + case FOR: + case FOREACH: + case FROM: + case GET: + case GOTO: + case GROUP: + case IF: + case INT: + case INTO: + case JOIN: + case LET: + case LOCK: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case RETURN: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case SWITCH: + case THIS: + case THROW: + case TRUE: + case TRY: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case UNSAFE: + case USHORT: + case USING: + case WHEN: + case WHERE: + case WHILE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case SEMICOLON: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 2); + { + setState(1248); + simple_embedded_statement(); + } + 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 static class Switch_sectionContext extends ParserRuleContext { + public Statement_listContext statement_list() { + return getRuleContext(Statement_listContext.class,0); + } + public List switch_label() { + return getRuleContexts(Switch_labelContext.class); + } + public Switch_labelContext switch_label(int i) { + return getRuleContext(Switch_labelContext.class,i); + } + public Switch_sectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switch_section; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSwitch_section(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSwitch_section(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSwitch_section(this); + else return visitor.visitChildren(this); + } + } + + public final Switch_sectionContext switch_section() throws RecognitionException { + Switch_sectionContext _localctx = new Switch_sectionContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_switch_section); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1252); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(1251); + switch_label(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(1254); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,118,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + setState(1256); + statement_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Switch_labelContext extends ParserRuleContext { + public TerminalNode CASE() { return getToken(CSharpParser.CASE, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public TerminalNode DEFAULT() { return getToken(CSharpParser.DEFAULT, 0); } + public Switch_labelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switch_label; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSwitch_label(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSwitch_label(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSwitch_label(this); + else return visitor.visitChildren(this); + } + } + + public final Switch_labelContext switch_label() throws RecognitionException { + Switch_labelContext _localctx = new Switch_labelContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_switch_label); + try { + setState(1264); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CASE: + enterOuterAlt(_localctx, 1); + { + setState(1258); + match(CASE); + setState(1259); + expression(); + setState(1260); + match(COLON); + } + break; + case DEFAULT: + enterOuterAlt(_localctx, 2); + { + setState(1262); + match(DEFAULT); + setState(1263); + match(COLON); + } + 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 static class Statement_listContext extends ParserRuleContext { + public List statement() { + return getRuleContexts(StatementContext.class); + } + public StatementContext statement(int i) { + return getRuleContext(StatementContext.class,i); + } + public Statement_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statement_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterStatement_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitStatement_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitStatement_list(this); + else return visitor.visitChildren(this); + } + } + + public final Statement_listContext statement_list() throws RecognitionException { + Statement_listContext _localctx = new Statement_listContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_statement_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1267); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(1266); + statement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(1269); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,120,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class For_initializerContext extends ParserRuleContext { + public Local_variable_declarationContext local_variable_declaration() { + return getRuleContext(Local_variable_declarationContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public For_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_for_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFor_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFor_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFor_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final For_initializerContext for_initializer() throws RecognitionException { + For_initializerContext _localctx = new For_initializerContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_for_initializer); + int _la; + try { + setState(1280); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1271); + local_variable_declaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1272); + expression(); + setState(1277); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1273); + match(COMMA); + setState(1274); + expression(); + } + } + setState(1279); + _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 static class For_iteratorContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public For_iteratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_for_iterator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFor_iterator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFor_iterator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFor_iterator(this); + else return visitor.visitChildren(this); + } + } + + public final For_iteratorContext for_iterator() throws RecognitionException { + For_iteratorContext _localctx = new For_iteratorContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_for_iterator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1282); + expression(); + setState(1287); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1283); + match(COMMA); + setState(1284); + expression(); + } + } + setState(1289); + _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 class Catch_clausesContext extends ParserRuleContext { + public List specific_catch_clause() { + return getRuleContexts(Specific_catch_clauseContext.class); + } + public Specific_catch_clauseContext specific_catch_clause(int i) { + return getRuleContext(Specific_catch_clauseContext.class,i); + } + public General_catch_clauseContext general_catch_clause() { + return getRuleContext(General_catch_clauseContext.class,0); + } + public Catch_clausesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catch_clauses; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCatch_clauses(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCatch_clauses(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitCatch_clauses(this); + else return visitor.visitChildren(this); + } + } + + public final Catch_clausesContext catch_clauses() throws RecognitionException { + Catch_clausesContext _localctx = new Catch_clausesContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_catch_clauses); + int _la; + try { + int _alt; + setState(1301); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1290); + specific_catch_clause(); + setState(1294); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,124,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1291); + specific_catch_clause(); + } + } + } + setState(1296); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,124,_ctx); + } + setState(1298); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==CATCH) { + { + setState(1297); + general_catch_clause(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1300); + general_catch_clause(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Specific_catch_clauseContext extends ParserRuleContext { + public TerminalNode CATCH() { return getToken(CSharpParser.CATCH, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public Class_typeContext class_type() { + return getRuleContext(Class_typeContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Exception_filterContext exception_filter() { + return getRuleContext(Exception_filterContext.class,0); + } + public Specific_catch_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_specific_catch_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSpecific_catch_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSpecific_catch_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSpecific_catch_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Specific_catch_clauseContext specific_catch_clause() throws RecognitionException { + Specific_catch_clauseContext _localctx = new Specific_catch_clauseContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_specific_catch_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1303); + match(CATCH); + setState(1304); + match(OPEN_PARENS); + setState(1305); + class_type(); + setState(1307); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BY) | (1L << DESCENDING) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << NAMEOF))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (ON - 68)) | (1L << (ORDERBY - 68)) | (1L << (PARTIAL - 68)) | (1L << (REMOVE - 68)) | (1L << (SELECT - 68)) | (1L << (SET - 68)) | (1L << (WHEN - 68)) | (1L << (WHERE - 68)) | (1L << (YIELD - 68)) | (1L << (IDENTIFIER - 68)))) != 0)) { + { + setState(1306); + identifier(); + } + } + + setState(1309); + match(CLOSE_PARENS); + setState(1311); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHEN) { + { + setState(1310); + exception_filter(); + } + } + + setState(1313); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class General_catch_clauseContext extends ParserRuleContext { + public TerminalNode CATCH() { return getToken(CSharpParser.CATCH, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Exception_filterContext exception_filter() { + return getRuleContext(Exception_filterContext.class,0); + } + public General_catch_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_general_catch_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterGeneral_catch_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitGeneral_catch_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitGeneral_catch_clause(this); + else return visitor.visitChildren(this); + } + } + + public final General_catch_clauseContext general_catch_clause() throws RecognitionException { + General_catch_clauseContext _localctx = new General_catch_clauseContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_general_catch_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1315); + match(CATCH); + setState(1317); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHEN) { + { + setState(1316); + exception_filter(); + } + } + + setState(1319); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Exception_filterContext extends ParserRuleContext { + public TerminalNode WHEN() { return getToken(CSharpParser.WHEN, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Exception_filterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exception_filter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterException_filter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitException_filter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitException_filter(this); + else return visitor.visitChildren(this); + } + } + + public final Exception_filterContext exception_filter() throws RecognitionException { + Exception_filterContext _localctx = new Exception_filterContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_exception_filter); + try { + enterOuterAlt(_localctx, 1); + { + setState(1321); + match(WHEN); + setState(1322); + match(OPEN_PARENS); + setState(1323); + expression(); + setState(1324); + match(CLOSE_PARENS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Finally_clauseContext extends ParserRuleContext { + public TerminalNode FINALLY() { return getToken(CSharpParser.FINALLY, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Finally_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_finally_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFinally_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFinally_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFinally_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Finally_clauseContext finally_clause() throws RecognitionException { + Finally_clauseContext _localctx = new Finally_clauseContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_finally_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1326); + match(FINALLY); + setState(1327); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Resource_acquisitionContext extends ParserRuleContext { + public Local_variable_declarationContext local_variable_declaration() { + return getRuleContext(Local_variable_declarationContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Resource_acquisitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resource_acquisition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterResource_acquisition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitResource_acquisition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitResource_acquisition(this); + else return visitor.visitChildren(this); + } + } + + public final Resource_acquisitionContext resource_acquisition() throws RecognitionException { + Resource_acquisitionContext _localctx = new Resource_acquisitionContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_resource_acquisition); + try { + setState(1331); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,130,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1329); + local_variable_declaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1330); + expression(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Namespace_declarationContext extends ParserRuleContext { + public Qualified_identifierContext qi; + public TerminalNode NAMESPACE() { return getToken(CSharpParser.NAMESPACE, 0); } + public Namespace_bodyContext namespace_body() { + return getRuleContext(Namespace_bodyContext.class,0); + } + public Qualified_identifierContext qualified_identifier() { + return getRuleContext(Qualified_identifierContext.class,0); + } + public Namespace_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namespace_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNamespace_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNamespace_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNamespace_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Namespace_declarationContext namespace_declaration() throws RecognitionException { + Namespace_declarationContext _localctx = new Namespace_declarationContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_namespace_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1333); + match(NAMESPACE); + setState(1334); + ((Namespace_declarationContext)_localctx).qi = qualified_identifier(); + setState(1335); + namespace_body(); + setState(1337); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMICOLON) { + { + setState(1336); + match(SEMICOLON); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Qualified_identifierContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List DOT() { return getTokens(CSharpParser.DOT); } + public TerminalNode DOT(int i) { + return getToken(CSharpParser.DOT, i); + } + public Qualified_identifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_qualified_identifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterQualified_identifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitQualified_identifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitQualified_identifier(this); + else return visitor.visitChildren(this); + } + } + + public final Qualified_identifierContext qualified_identifier() throws RecognitionException { + Qualified_identifierContext _localctx = new Qualified_identifierContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_qualified_identifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1339); + identifier(); + setState(1344); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==DOT) { + { + { + setState(1340); + match(DOT); + setState(1341); + identifier(); + } + } + setState(1346); + _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 class Namespace_bodyContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Extern_alias_directivesContext extern_alias_directives() { + return getRuleContext(Extern_alias_directivesContext.class,0); + } + public Using_directivesContext using_directives() { + return getRuleContext(Using_directivesContext.class,0); + } + public Namespace_member_declarationsContext namespace_member_declarations() { + return getRuleContext(Namespace_member_declarationsContext.class,0); + } + public Namespace_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namespace_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNamespace_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNamespace_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNamespace_body(this); + else return visitor.visitChildren(this); + } + } + + public final Namespace_bodyContext namespace_body() throws RecognitionException { + Namespace_bodyContext _localctx = new Namespace_bodyContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_namespace_body); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1347); + match(OPEN_BRACE); + setState(1349); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) { + case 1: + { + setState(1348); + extern_alias_directives(); + } + break; + } + setState(1352); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==USING) { + { + setState(1351); + using_directives(); + } + } + + setState(1355); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASYNC) | (1L << CLASS) | (1L << DELEGATE) | (1L << ENUM) | (1L << EXTERN) | (1L << INTERFACE) | (1L << INTERNAL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMESPACE - 64)) | (1L << (NEW - 64)) | (1L << (OVERRIDE - 64)) | (1L << (PARTIAL - 64)) | (1L << (PRIVATE - 64)) | (1L << (PROTECTED - 64)) | (1L << (PUBLIC - 64)) | (1L << (READONLY - 64)) | (1L << (SEALED - 64)) | (1L << (STATIC - 64)) | (1L << (STRUCT - 64)) | (1L << (UNSAFE - 64)) | (1L << (VIRTUAL - 64)) | (1L << (VOLATILE - 64)) | (1L << (OPEN_BRACKET - 64)))) != 0)) { + { + setState(1354); + namespace_member_declarations(); + } + } + + setState(1357); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Extern_alias_directivesContext extends ParserRuleContext { + public List extern_alias_directive() { + return getRuleContexts(Extern_alias_directiveContext.class); + } + public Extern_alias_directiveContext extern_alias_directive(int i) { + return getRuleContext(Extern_alias_directiveContext.class,i); + } + public Extern_alias_directivesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_extern_alias_directives; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExtern_alias_directives(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExtern_alias_directives(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExtern_alias_directives(this); + else return visitor.visitChildren(this); + } + } + + public final Extern_alias_directivesContext extern_alias_directives() throws RecognitionException { + Extern_alias_directivesContext _localctx = new Extern_alias_directivesContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_extern_alias_directives); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1360); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(1359); + extern_alias_directive(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(1362); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,136,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Extern_alias_directiveContext extends ParserRuleContext { + public TerminalNode EXTERN() { return getToken(CSharpParser.EXTERN, 0); } + public TerminalNode ALIAS() { return getToken(CSharpParser.ALIAS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Extern_alias_directiveContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_extern_alias_directive; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterExtern_alias_directive(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitExtern_alias_directive(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitExtern_alias_directive(this); + else return visitor.visitChildren(this); + } + } + + public final Extern_alias_directiveContext extern_alias_directive() throws RecognitionException { + Extern_alias_directiveContext _localctx = new Extern_alias_directiveContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_extern_alias_directive); + try { + enterOuterAlt(_localctx, 1); + { + setState(1364); + match(EXTERN); + setState(1365); + match(ALIAS); + setState(1366); + identifier(); + setState(1367); + match(SEMICOLON); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Using_directivesContext extends ParserRuleContext { + public List using_directive() { + return getRuleContexts(Using_directiveContext.class); + } + public Using_directiveContext using_directive(int i) { + return getRuleContext(Using_directiveContext.class,i); + } + public Using_directivesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_using_directives; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUsing_directives(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUsing_directives(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUsing_directives(this); + else return visitor.visitChildren(this); + } + } + + public final Using_directivesContext using_directives() throws RecognitionException { + Using_directivesContext _localctx = new Using_directivesContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_using_directives); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1370); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1369); + using_directive(); + } + } + setState(1372); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==USING ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Using_directiveContext extends ParserRuleContext { + public Using_directiveContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_using_directive; } + + public Using_directiveContext() { } + public void copyFrom(Using_directiveContext ctx) { + super.copyFrom(ctx); + } + } + public static class UsingAliasDirectiveContext extends Using_directiveContext { + public TerminalNode USING() { return getToken(CSharpParser.USING, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public Namespace_or_type_nameContext namespace_or_type_name() { + return getRuleContext(Namespace_or_type_nameContext.class,0); + } + public UsingAliasDirectiveContext(Using_directiveContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUsingAliasDirective(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUsingAliasDirective(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUsingAliasDirective(this); + else return visitor.visitChildren(this); + } + } + public static class UsingNamespaceDirectiveContext extends Using_directiveContext { + public TerminalNode USING() { return getToken(CSharpParser.USING, 0); } + public Namespace_or_type_nameContext namespace_or_type_name() { + return getRuleContext(Namespace_or_type_nameContext.class,0); + } + public UsingNamespaceDirectiveContext(Using_directiveContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUsingNamespaceDirective(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUsingNamespaceDirective(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUsingNamespaceDirective(this); + else return visitor.visitChildren(this); + } + } + public static class UsingStaticDirectiveContext extends Using_directiveContext { + public TerminalNode USING() { return getToken(CSharpParser.USING, 0); } + public TerminalNode STATIC() { return getToken(CSharpParser.STATIC, 0); } + public Namespace_or_type_nameContext namespace_or_type_name() { + return getRuleContext(Namespace_or_type_nameContext.class,0); + } + public UsingStaticDirectiveContext(Using_directiveContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterUsingStaticDirective(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitUsingStaticDirective(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitUsingStaticDirective(this); + else return visitor.visitChildren(this); + } + } + + public final Using_directiveContext using_directive() throws RecognitionException { + Using_directiveContext _localctx = new Using_directiveContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_using_directive); + try { + setState(1389); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,138,_ctx) ) { + case 1: + _localctx = new UsingAliasDirectiveContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1374); + match(USING); + setState(1375); + identifier(); + setState(1376); + match(ASSIGNMENT); + setState(1377); + namespace_or_type_name(); + setState(1378); + match(SEMICOLON); + } + break; + case 2: + _localctx = new UsingNamespaceDirectiveContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1380); + match(USING); + setState(1381); + namespace_or_type_name(); + setState(1382); + match(SEMICOLON); + } + break; + case 3: + _localctx = new UsingStaticDirectiveContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1384); + match(USING); + setState(1385); + match(STATIC); + setState(1386); + namespace_or_type_name(); + setState(1387); + match(SEMICOLON); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Namespace_member_declarationsContext extends ParserRuleContext { + public List namespace_member_declaration() { + return getRuleContexts(Namespace_member_declarationContext.class); + } + public Namespace_member_declarationContext namespace_member_declaration(int i) { + return getRuleContext(Namespace_member_declarationContext.class,i); + } + public Namespace_member_declarationsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namespace_member_declarations; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNamespace_member_declarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNamespace_member_declarations(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNamespace_member_declarations(this); + else return visitor.visitChildren(this); + } + } + + public final Namespace_member_declarationsContext namespace_member_declarations() throws RecognitionException { + Namespace_member_declarationsContext _localctx = new Namespace_member_declarationsContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_namespace_member_declarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1392); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1391); + namespace_member_declaration(); + } + } + setState(1394); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASYNC) | (1L << CLASS) | (1L << DELEGATE) | (1L << ENUM) | (1L << EXTERN) | (1L << INTERFACE) | (1L << INTERNAL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMESPACE - 64)) | (1L << (NEW - 64)) | (1L << (OVERRIDE - 64)) | (1L << (PARTIAL - 64)) | (1L << (PRIVATE - 64)) | (1L << (PROTECTED - 64)) | (1L << (PUBLIC - 64)) | (1L << (READONLY - 64)) | (1L << (SEALED - 64)) | (1L << (STATIC - 64)) | (1L << (STRUCT - 64)) | (1L << (UNSAFE - 64)) | (1L << (VIRTUAL - 64)) | (1L << (VOLATILE - 64)) | (1L << (OPEN_BRACKET - 64)))) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Namespace_member_declarationContext extends ParserRuleContext { + public Namespace_declarationContext namespace_declaration() { + return getRuleContext(Namespace_declarationContext.class,0); + } + public Type_declarationContext type_declaration() { + return getRuleContext(Type_declarationContext.class,0); + } + public Namespace_member_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_namespace_member_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterNamespace_member_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitNamespace_member_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitNamespace_member_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Namespace_member_declarationContext namespace_member_declaration() throws RecognitionException { + Namespace_member_declarationContext _localctx = new Namespace_member_declarationContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_namespace_member_declaration); + try { + setState(1398); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NAMESPACE: + enterOuterAlt(_localctx, 1); + { + setState(1396); + namespace_declaration(); + } + break; + case ABSTRACT: + case ASYNC: + case CLASS: + case DELEGATE: + case ENUM: + case EXTERN: + case INTERFACE: + case INTERNAL: + case NEW: + case OVERRIDE: + case PARTIAL: + case PRIVATE: + case PROTECTED: + case PUBLIC: + case READONLY: + case SEALED: + case STATIC: + case STRUCT: + case UNSAFE: + case VIRTUAL: + case VOLATILE: + case OPEN_BRACKET: + enterOuterAlt(_localctx, 2); + { + setState(1397); + type_declaration(); + } + 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 static class Type_declarationContext extends ParserRuleContext { + public Class_definitionContext class_definition() { + return getRuleContext(Class_definitionContext.class,0); + } + public Struct_definitionContext struct_definition() { + return getRuleContext(Struct_definitionContext.class,0); + } + public Interface_definitionContext interface_definition() { + return getRuleContext(Interface_definitionContext.class,0); + } + public Enum_definitionContext enum_definition() { + return getRuleContext(Enum_definitionContext.class,0); + } + public Delegate_definitionContext delegate_definition() { + return getRuleContext(Delegate_definitionContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public All_member_modifiersContext all_member_modifiers() { + return getRuleContext(All_member_modifiersContext.class,0); + } + public Type_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Type_declarationContext type_declaration() throws RecognitionException { + Type_declarationContext _localctx = new Type_declarationContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_type_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1401); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1400); + attributes(); + } + } + + setState(1404); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASYNC) | (1L << EXTERN) | (1L << INTERNAL))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (OVERRIDE - 65)) | (1L << (PARTIAL - 65)) | (1L << (PRIVATE - 65)) | (1L << (PROTECTED - 65)) | (1L << (PUBLIC - 65)) | (1L << (READONLY - 65)) | (1L << (SEALED - 65)) | (1L << (STATIC - 65)) | (1L << (UNSAFE - 65)) | (1L << (VIRTUAL - 65)) | (1L << (VOLATILE - 65)))) != 0)) { + { + setState(1403); + all_member_modifiers(); + } + } + + setState(1411); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CLASS: + { + setState(1406); + class_definition(); + } + break; + case STRUCT: + { + setState(1407); + struct_definition(); + } + break; + case INTERFACE: + { + setState(1408); + interface_definition(); + } + break; + case ENUM: + { + setState(1409); + enum_definition(); + } + break; + case DELEGATE: + { + setState(1410); + delegate_definition(); + } + 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 static class Qualified_alias_memberContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public Type_argument_listContext type_argument_list() { + return getRuleContext(Type_argument_listContext.class,0); + } + public Qualified_alias_memberContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_qualified_alias_member; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterQualified_alias_member(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitQualified_alias_member(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitQualified_alias_member(this); + else return visitor.visitChildren(this); + } + } + + public final Qualified_alias_memberContext qualified_alias_member() throws RecognitionException { + Qualified_alias_memberContext _localctx = new Qualified_alias_memberContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_qualified_alias_member); + try { + enterOuterAlt(_localctx, 1); + { + setState(1413); + identifier(); + setState(1414); + match(DOUBLE_COLON); + setState(1415); + identifier(); + setState(1417); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) { + case 1: + { + setState(1416); + type_argument_list(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Type_parameter_listContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(CSharpParser.LT, 0); } + public List type_parameter() { + return getRuleContexts(Type_parameterContext.class); + } + public Type_parameterContext type_parameter(int i) { + return getRuleContext(Type_parameterContext.class,i); + } + public TerminalNode GT() { return getToken(CSharpParser.GT, 0); } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Type_parameter_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_parameter_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType_parameter_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType_parameter_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType_parameter_list(this); + else return visitor.visitChildren(this); + } + } + + public final Type_parameter_listContext type_parameter_list() throws RecognitionException { + Type_parameter_listContext _localctx = new Type_parameter_listContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_type_parameter_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1419); + match(LT); + setState(1420); + type_parameter(); + setState(1425); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1421); + match(COMMA); + setState(1422); + type_parameter(); + } + } + setState(1427); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1428); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Type_parameterContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Type_parameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_parameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType_parameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType_parameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType_parameter(this); + else return visitor.visitChildren(this); + } + } + + public final Type_parameterContext type_parameter() throws RecognitionException { + Type_parameterContext _localctx = new Type_parameterContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_type_parameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1431); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1430); + attributes(); + } + } + + setState(1433); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Class_baseContext extends ParserRuleContext { + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Class_typeContext class_type() { + return getRuleContext(Class_typeContext.class,0); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public List namespace_or_type_name() { + return getRuleContexts(Namespace_or_type_nameContext.class); + } + public Namespace_or_type_nameContext namespace_or_type_name(int i) { + return getRuleContext(Namespace_or_type_nameContext.class,i); + } + public Class_baseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_class_base; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterClass_base(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitClass_base(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitClass_base(this); + else return visitor.visitChildren(this); + } + } + + public final Class_baseContext class_base() throws RecognitionException { + Class_baseContext _localctx = new Class_baseContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_class_base); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1435); + match(COLON); + setState(1436); + class_type(); + setState(1441); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1437); + match(COMMA); + setState(1438); + namespace_or_type_name(); + } + } + setState(1443); + _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 class Interface_type_listContext extends ParserRuleContext { + public List namespace_or_type_name() { + return getRuleContexts(Namespace_or_type_nameContext.class); + } + public Namespace_or_type_nameContext namespace_or_type_name(int i) { + return getRuleContext(Namespace_or_type_nameContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Interface_type_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interface_type_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterface_type_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterface_type_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterface_type_list(this); + else return visitor.visitChildren(this); + } + } + + public final Interface_type_listContext interface_type_list() throws RecognitionException { + Interface_type_listContext _localctx = new Interface_type_listContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_interface_type_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1444); + namespace_or_type_name(); + setState(1449); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1445); + match(COMMA); + setState(1446); + namespace_or_type_name(); + } + } + setState(1451); + _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 class Type_parameter_constraints_clausesContext extends ParserRuleContext { + public List type_parameter_constraints_clause() { + return getRuleContexts(Type_parameter_constraints_clauseContext.class); + } + public Type_parameter_constraints_clauseContext type_parameter_constraints_clause(int i) { + return getRuleContext(Type_parameter_constraints_clauseContext.class,i); + } + public Type_parameter_constraints_clausesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_parameter_constraints_clauses; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType_parameter_constraints_clauses(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType_parameter_constraints_clauses(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType_parameter_constraints_clauses(this); + else return visitor.visitChildren(this); + } + } + + public final Type_parameter_constraints_clausesContext type_parameter_constraints_clauses() throws RecognitionException { + Type_parameter_constraints_clausesContext _localctx = new Type_parameter_constraints_clausesContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_type_parameter_constraints_clauses); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1453); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1452); + type_parameter_constraints_clause(); + } + } + setState(1455); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==WHERE ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Type_parameter_constraints_clauseContext extends ParserRuleContext { + public TerminalNode WHERE() { return getToken(CSharpParser.WHERE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Type_parameter_constraintsContext type_parameter_constraints() { + return getRuleContext(Type_parameter_constraintsContext.class,0); + } + public Type_parameter_constraints_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_parameter_constraints_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType_parameter_constraints_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType_parameter_constraints_clause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType_parameter_constraints_clause(this); + else return visitor.visitChildren(this); + } + } + + public final Type_parameter_constraints_clauseContext type_parameter_constraints_clause() throws RecognitionException { + Type_parameter_constraints_clauseContext _localctx = new Type_parameter_constraints_clauseContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_type_parameter_constraints_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(1457); + match(WHERE); + setState(1458); + identifier(); + setState(1459); + match(COLON); + setState(1460); + type_parameter_constraints(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Type_parameter_constraintsContext extends ParserRuleContext { + public Constructor_constraintContext constructor_constraint() { + return getRuleContext(Constructor_constraintContext.class,0); + } + public Primary_constraintContext primary_constraint() { + return getRuleContext(Primary_constraintContext.class,0); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Secondary_constraintsContext secondary_constraints() { + return getRuleContext(Secondary_constraintsContext.class,0); + } + public Type_parameter_constraintsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type_parameter_constraints; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterType_parameter_constraints(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitType_parameter_constraints(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitType_parameter_constraints(this); + else return visitor.visitChildren(this); + } + } + + public final Type_parameter_constraintsContext type_parameter_constraints() throws RecognitionException { + Type_parameter_constraintsContext _localctx = new Type_parameter_constraintsContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_type_parameter_constraints); + int _la; + try { + setState(1472); + _errHandler.sync(this); + switch (_input.LA(1)) { + case NEW: + enterOuterAlt(_localctx, 1); + { + setState(1462); + constructor_constraint(); + } + break; + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case CLASS: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case STRING: + case STRUCT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(1463); + primary_constraint(); + setState(1466); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) { + case 1: + { + setState(1464); + match(COMMA); + setState(1465); + secondary_constraints(); + } + break; + } + setState(1470); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1468); + match(COMMA); + setState(1469); + constructor_constraint(); + } + } + + } + 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 static class Primary_constraintContext extends ParserRuleContext { + public Class_typeContext class_type() { + return getRuleContext(Class_typeContext.class,0); + } + public TerminalNode CLASS() { return getToken(CSharpParser.CLASS, 0); } + public TerminalNode STRUCT() { return getToken(CSharpParser.STRUCT, 0); } + public Primary_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primary_constraint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterPrimary_constraint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitPrimary_constraint(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitPrimary_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Primary_constraintContext primary_constraint() throws RecognitionException { + Primary_constraintContext _localctx = new Primary_constraintContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_primary_constraint); + try { + setState(1477); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case STRING: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(1474); + class_type(); + } + break; + case CLASS: + enterOuterAlt(_localctx, 2); + { + setState(1475); + match(CLASS); + } + break; + case STRUCT: + enterOuterAlt(_localctx, 3); + { + setState(1476); + match(STRUCT); + } + 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 static class Secondary_constraintsContext extends ParserRuleContext { + public List namespace_or_type_name() { + return getRuleContexts(Namespace_or_type_nameContext.class); + } + public Namespace_or_type_nameContext namespace_or_type_name(int i) { + return getRuleContext(Namespace_or_type_nameContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Secondary_constraintsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_secondary_constraints; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSecondary_constraints(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSecondary_constraints(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSecondary_constraints(this); + else return visitor.visitChildren(this); + } + } + + public final Secondary_constraintsContext secondary_constraints() throws RecognitionException { + Secondary_constraintsContext _localctx = new Secondary_constraintsContext(_ctx, getState()); + enterRule(_localctx, 210, RULE_secondary_constraints); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1479); + namespace_or_type_name(); + setState(1484); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,154,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1480); + match(COMMA); + setState(1481); + namespace_or_type_name(); + } + } + } + setState(1486); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,154,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Constructor_constraintContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(CSharpParser.NEW, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Constructor_constraintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructor_constraint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConstructor_constraint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConstructor_constraint(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConstructor_constraint(this); + else return visitor.visitChildren(this); + } + } + + public final Constructor_constraintContext constructor_constraint() throws RecognitionException { + Constructor_constraintContext _localctx = new Constructor_constraintContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_constructor_constraint); + try { + enterOuterAlt(_localctx, 1); + { + setState(1487); + match(NEW); + setState(1488); + match(OPEN_PARENS); + setState(1489); + match(CLOSE_PARENS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Class_bodyContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Class_member_declarationsContext class_member_declarations() { + return getRuleContext(Class_member_declarationsContext.class,0); + } + public Class_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_class_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterClass_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitClass_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitClass_body(this); + else return visitor.visitChildren(this); + } + } + + public final Class_bodyContext class_body() throws RecognitionException { + Class_bodyContext _localctx = new Class_bodyContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_class_body); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1491); + match(OPEN_BRACE); + setState(1493); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONST) | (1L << DECIMAL) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << ENUM) | (1L << EQUALS) | (1L << EVENT) | (1L << EXPLICIT) | (1L << EXTERN) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << IMPLICIT) | (1L << INT) | (1L << INTERFACE) | (1L << INTERNAL) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (OVERRIDE - 65)) | (1L << (PARTIAL - 65)) | (1L << (PRIVATE - 65)) | (1L << (PROTECTED - 65)) | (1L << (PUBLIC - 65)) | (1L << (READONLY - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SEALED - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (STATIC - 65)) | (1L << (STRING - 65)) | (1L << (STRUCT - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNSAFE - 65)) | (1L << (USHORT - 65)) | (1L << (VIRTUAL - 65)) | (1L << (VOID - 65)) | (1L << (VOLATILE - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (OPEN_BRACKET - 65)))) != 0) || _la==TILDE) { + { + setState(1492); + class_member_declarations(); + } + } + + setState(1495); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Class_member_declarationsContext extends ParserRuleContext { + public List class_member_declaration() { + return getRuleContexts(Class_member_declarationContext.class); + } + public Class_member_declarationContext class_member_declaration(int i) { + return getRuleContext(Class_member_declarationContext.class,i); + } + public Class_member_declarationsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_class_member_declarations; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterClass_member_declarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitClass_member_declarations(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitClass_member_declarations(this); + else return visitor.visitChildren(this); + } + } + + public final Class_member_declarationsContext class_member_declarations() throws RecognitionException { + Class_member_declarationsContext _localctx = new Class_member_declarationsContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_class_member_declarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1498); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1497); + class_member_declaration(); + } + } + setState(1500); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONST) | (1L << DECIMAL) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << ENUM) | (1L << EQUALS) | (1L << EVENT) | (1L << EXPLICIT) | (1L << EXTERN) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << IMPLICIT) | (1L << INT) | (1L << INTERFACE) | (1L << INTERNAL) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (OVERRIDE - 65)) | (1L << (PARTIAL - 65)) | (1L << (PRIVATE - 65)) | (1L << (PROTECTED - 65)) | (1L << (PUBLIC - 65)) | (1L << (READONLY - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SEALED - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (STATIC - 65)) | (1L << (STRING - 65)) | (1L << (STRUCT - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNSAFE - 65)) | (1L << (USHORT - 65)) | (1L << (VIRTUAL - 65)) | (1L << (VOID - 65)) | (1L << (VOLATILE - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (OPEN_BRACKET - 65)))) != 0) || _la==TILDE ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Class_member_declarationContext extends ParserRuleContext { + public Common_member_declarationContext common_member_declaration() { + return getRuleContext(Common_member_declarationContext.class,0); + } + public Destructor_definitionContext destructor_definition() { + return getRuleContext(Destructor_definitionContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public All_member_modifiersContext all_member_modifiers() { + return getRuleContext(All_member_modifiersContext.class,0); + } + public Class_member_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_class_member_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterClass_member_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitClass_member_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitClass_member_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Class_member_declarationContext class_member_declaration() throws RecognitionException { + Class_member_declarationContext _localctx = new Class_member_declarationContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_class_member_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1503); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1502); + attributes(); + } + } + + setState(1506); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + case 1: + { + setState(1505); + all_member_modifiers(); + } + break; + } + setState(1510); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CLASS: + case CONST: + case DECIMAL: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case ENUM: + case EQUALS: + case EVENT: + case EXPLICIT: + case FLOAT: + case FROM: + case GET: + case GROUP: + case IMPLICIT: + case INT: + case INTERFACE: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case STRING: + case STRUCT: + case UINT: + case ULONG: + case USHORT: + case VOID: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + { + setState(1508); + common_member_declaration(); + } + break; + case TILDE: + { + setState(1509); + destructor_definition(); + } + 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 static class All_member_modifiersContext extends ParserRuleContext { + public List all_member_modifier() { + return getRuleContexts(All_member_modifierContext.class); + } + public All_member_modifierContext all_member_modifier(int i) { + return getRuleContext(All_member_modifierContext.class,i); + } + public All_member_modifiersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_all_member_modifiers; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAll_member_modifiers(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAll_member_modifiers(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAll_member_modifiers(this); + else return visitor.visitChildren(this); + } + } + + public final All_member_modifiersContext all_member_modifiers() throws RecognitionException { + All_member_modifiersContext _localctx = new All_member_modifiersContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_all_member_modifiers); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1513); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(1512); + all_member_modifier(); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(1515); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,160,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class All_member_modifierContext extends ParserRuleContext { + public TerminalNode NEW() { return getToken(CSharpParser.NEW, 0); } + public TerminalNode PUBLIC() { return getToken(CSharpParser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(CSharpParser.PROTECTED, 0); } + public TerminalNode INTERNAL() { return getToken(CSharpParser.INTERNAL, 0); } + public TerminalNode PRIVATE() { return getToken(CSharpParser.PRIVATE, 0); } + public TerminalNode READONLY() { return getToken(CSharpParser.READONLY, 0); } + public TerminalNode VOLATILE() { return getToken(CSharpParser.VOLATILE, 0); } + public TerminalNode VIRTUAL() { return getToken(CSharpParser.VIRTUAL, 0); } + public TerminalNode SEALED() { return getToken(CSharpParser.SEALED, 0); } + public TerminalNode OVERRIDE() { return getToken(CSharpParser.OVERRIDE, 0); } + public TerminalNode ABSTRACT() { return getToken(CSharpParser.ABSTRACT, 0); } + public TerminalNode STATIC() { return getToken(CSharpParser.STATIC, 0); } + public TerminalNode UNSAFE() { return getToken(CSharpParser.UNSAFE, 0); } + public TerminalNode EXTERN() { return getToken(CSharpParser.EXTERN, 0); } + public TerminalNode PARTIAL() { return getToken(CSharpParser.PARTIAL, 0); } + public TerminalNode ASYNC() { return getToken(CSharpParser.ASYNC, 0); } + public All_member_modifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_all_member_modifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAll_member_modifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAll_member_modifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAll_member_modifier(this); + else return visitor.visitChildren(this); + } + } + + public final All_member_modifierContext all_member_modifier() throws RecognitionException { + All_member_modifierContext _localctx = new All_member_modifierContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_all_member_modifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1517); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ASYNC) | (1L << EXTERN) | (1L << INTERNAL))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (OVERRIDE - 65)) | (1L << (PARTIAL - 65)) | (1L << (PRIVATE - 65)) | (1L << (PROTECTED - 65)) | (1L << (PUBLIC - 65)) | (1L << (READONLY - 65)) | (1L << (SEALED - 65)) | (1L << (STATIC - 65)) | (1L << (UNSAFE - 65)) | (1L << (VIRTUAL - 65)) | (1L << (VOLATILE - 65)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Common_member_declarationContext extends ParserRuleContext { + public Constant_declarationContext constant_declaration() { + return getRuleContext(Constant_declarationContext.class,0); + } + public Typed_member_declarationContext typed_member_declaration() { + return getRuleContext(Typed_member_declarationContext.class,0); + } + public Event_declarationContext event_declaration() { + return getRuleContext(Event_declarationContext.class,0); + } + public Conversion_operator_declaratorContext conversion_operator_declarator() { + return getRuleContext(Conversion_operator_declaratorContext.class,0); + } + public BodyContext body() { + return getRuleContext(BodyContext.class,0); + } + public Right_arrowContext right_arrow() { + return getRuleContext(Right_arrowContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Constructor_declarationContext constructor_declaration() { + return getRuleContext(Constructor_declarationContext.class,0); + } + public TerminalNode VOID() { return getToken(CSharpParser.VOID, 0); } + public Method_declarationContext method_declaration() { + return getRuleContext(Method_declarationContext.class,0); + } + public Class_definitionContext class_definition() { + return getRuleContext(Class_definitionContext.class,0); + } + public Struct_definitionContext struct_definition() { + return getRuleContext(Struct_definitionContext.class,0); + } + public Interface_definitionContext interface_definition() { + return getRuleContext(Interface_definitionContext.class,0); + } + public Enum_definitionContext enum_definition() { + return getRuleContext(Enum_definitionContext.class,0); + } + public Delegate_definitionContext delegate_definition() { + return getRuleContext(Delegate_definitionContext.class,0); + } + public Common_member_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_common_member_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterCommon_member_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitCommon_member_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitCommon_member_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Common_member_declarationContext common_member_declaration() throws RecognitionException { + Common_member_declarationContext _localctx = new Common_member_declarationContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_common_member_declaration); + try { + setState(1538); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1519); + constant_declaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1520); + typed_member_declaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1521); + event_declaration(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1522); + conversion_operator_declarator(); + setState(1528); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + case SEMICOLON: + { + setState(1523); + body(); + } + break; + case ASSIGNMENT: + { + setState(1524); + right_arrow(); + setState(1525); + expression(); + setState(1526); + match(SEMICOLON); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1530); + constructor_declaration(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1531); + match(VOID); + setState(1532); + method_declaration(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1533); + class_definition(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1534); + struct_definition(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1535); + interface_definition(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1536); + enum_definition(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1537); + delegate_definition(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Typed_member_declarationContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public Namespace_or_type_nameContext namespace_or_type_name() { + return getRuleContext(Namespace_or_type_nameContext.class,0); + } + public TerminalNode DOT() { return getToken(CSharpParser.DOT, 0); } + public Indexer_declarationContext indexer_declaration() { + return getRuleContext(Indexer_declarationContext.class,0); + } + public Method_declarationContext method_declaration() { + return getRuleContext(Method_declarationContext.class,0); + } + public Property_declarationContext property_declaration() { + return getRuleContext(Property_declarationContext.class,0); + } + public Operator_declarationContext operator_declaration() { + return getRuleContext(Operator_declarationContext.class,0); + } + public Field_declarationContext field_declaration() { + return getRuleContext(Field_declarationContext.class,0); + } + public Typed_member_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typed_member_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterTyped_member_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitTyped_member_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitTyped_member_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Typed_member_declarationContext typed_member_declaration() throws RecognitionException { + Typed_member_declarationContext _localctx = new Typed_member_declarationContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_typed_member_declaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(1540); + type(); + setState(1550); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,163,_ctx) ) { + case 1: + { + setState(1541); + namespace_or_type_name(); + setState(1542); + match(DOT); + setState(1543); + indexer_declaration(); + } + break; + case 2: + { + setState(1545); + method_declaration(); + } + break; + case 3: + { + setState(1546); + property_declaration(); + } + break; + case 4: + { + setState(1547); + indexer_declaration(); + } + break; + case 5: + { + setState(1548); + operator_declaration(); + } + break; + case 6: + { + setState(1549); + field_declaration(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Constant_declaratorsContext extends ParserRuleContext { + public List constant_declarator() { + return getRuleContexts(Constant_declaratorContext.class); + } + public Constant_declaratorContext constant_declarator(int i) { + return getRuleContext(Constant_declaratorContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Constant_declaratorsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constant_declarators; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConstant_declarators(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConstant_declarators(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConstant_declarators(this); + else return visitor.visitChildren(this); + } + } + + public final Constant_declaratorsContext constant_declarators() throws RecognitionException { + Constant_declaratorsContext _localctx = new Constant_declaratorsContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_constant_declarators); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1552); + constant_declarator(); + setState(1557); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1553); + match(COMMA); + setState(1554); + constant_declarator(); + } + } + setState(1559); + _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 class Constant_declaratorContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Constant_declaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constant_declarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConstant_declarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConstant_declarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConstant_declarator(this); + else return visitor.visitChildren(this); + } + } + + public final Constant_declaratorContext constant_declarator() throws RecognitionException { + Constant_declaratorContext _localctx = new Constant_declaratorContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_constant_declarator); + try { + enterOuterAlt(_localctx, 1); + { + setState(1560); + identifier(); + setState(1561); + match(ASSIGNMENT); + setState(1562); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Variable_declaratorsContext extends ParserRuleContext { + public List variable_declarator() { + return getRuleContexts(Variable_declaratorContext.class); + } + public Variable_declaratorContext variable_declarator(int i) { + return getRuleContext(Variable_declaratorContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Variable_declaratorsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variable_declarators; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterVariable_declarators(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitVariable_declarators(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitVariable_declarators(this); + else return visitor.visitChildren(this); + } + } + + public final Variable_declaratorsContext variable_declarators() throws RecognitionException { + Variable_declaratorsContext _localctx = new Variable_declaratorsContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_variable_declarators); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1564); + variable_declarator(); + setState(1569); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1565); + match(COMMA); + setState(1566); + variable_declarator(); + } + } + setState(1571); + _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 class Variable_declaratorContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public Variable_initializerContext variable_initializer() { + return getRuleContext(Variable_initializerContext.class,0); + } + public Variable_declaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variable_declarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterVariable_declarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitVariable_declarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitVariable_declarator(this); + else return visitor.visitChildren(this); + } + } + + public final Variable_declaratorContext variable_declarator() throws RecognitionException { + Variable_declaratorContext _localctx = new Variable_declaratorContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_variable_declarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1572); + identifier(); + setState(1575); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGNMENT) { + { + setState(1573); + match(ASSIGNMENT); + setState(1574); + variable_initializer(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Variable_initializerContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Array_initializerContext array_initializer() { + return getRuleContext(Array_initializerContext.class,0); + } + public Variable_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variable_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterVariable_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitVariable_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitVariable_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Variable_initializerContext variable_initializer() throws RecognitionException { + Variable_initializerContext _localctx = new Variable_initializerContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_variable_initializer); + try { + setState(1579); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(1577); + expression(); + } + break; + case OPEN_BRACE: + enterOuterAlt(_localctx, 2); + { + setState(1578); + array_initializer(); + } + 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 static class Return_typeContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode VOID() { return getToken(CSharpParser.VOID, 0); } + public Return_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_return_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterReturn_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitReturn_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitReturn_type(this); + else return visitor.visitChildren(this); + } + } + + public final Return_typeContext return_type() throws RecognitionException { + Return_typeContext _localctx = new Return_typeContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_return_type); + try { + setState(1583); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,168,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1581); + type(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1582); + match(VOID); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Member_nameContext extends ParserRuleContext { + public Namespace_or_type_nameContext namespace_or_type_name() { + return getRuleContext(Namespace_or_type_nameContext.class,0); + } + public Member_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_member_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMember_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMember_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMember_name(this); + else return visitor.visitChildren(this); + } + } + + public final Member_nameContext member_name() throws RecognitionException { + Member_nameContext _localctx = new Member_nameContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_member_name); + try { + enterOuterAlt(_localctx, 1); + { + setState(1585); + namespace_or_type_name(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Method_bodyContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Method_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_method_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMethod_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMethod_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMethod_body(this); + else return visitor.visitChildren(this); + } + } + + public final Method_bodyContext method_body() throws RecognitionException { + Method_bodyContext _localctx = new Method_bodyContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_method_body); + try { + setState(1589); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + enterOuterAlt(_localctx, 1); + { + setState(1587); + block(); + } + break; + case SEMICOLON: + enterOuterAlt(_localctx, 2); + { + setState(1588); + match(SEMICOLON); + } + 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 static class Formal_parameter_listContext extends ParserRuleContext { + public Parameter_arrayContext parameter_array() { + return getRuleContext(Parameter_arrayContext.class,0); + } + public Fixed_parametersContext fixed_parameters() { + return getRuleContext(Fixed_parametersContext.class,0); + } + public TerminalNode COMMA() { return getToken(CSharpParser.COMMA, 0); } + public Formal_parameter_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formal_parameter_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFormal_parameter_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFormal_parameter_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFormal_parameter_list(this); + else return visitor.visitChildren(this); + } + } + + public final Formal_parameter_listContext formal_parameter_list() throws RecognitionException { + Formal_parameter_listContext _localctx = new Formal_parameter_listContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_formal_parameter_list); + int _la; + try { + setState(1597); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,171,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1591); + parameter_array(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1592); + fixed_parameters(); + setState(1595); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1593); + match(COMMA); + setState(1594); + parameter_array(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fixed_parametersContext extends ParserRuleContext { + public List fixed_parameter() { + return getRuleContexts(Fixed_parameterContext.class); + } + public Fixed_parameterContext fixed_parameter(int i) { + return getRuleContext(Fixed_parameterContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Fixed_parametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixed_parameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFixed_parameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFixed_parameters(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFixed_parameters(this); + else return visitor.visitChildren(this); + } + } + + public final Fixed_parametersContext fixed_parameters() throws RecognitionException { + Fixed_parametersContext _localctx = new Fixed_parametersContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_fixed_parameters); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1599); + fixed_parameter(); + setState(1604); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,172,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1600); + match(COMMA); + setState(1601); + fixed_parameter(); + } + } + } + setState(1606); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,172,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fixed_parameterContext extends ParserRuleContext { + public Arg_declarationContext arg_declaration() { + return getRuleContext(Arg_declarationContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Parameter_modifierContext parameter_modifier() { + return getRuleContext(Parameter_modifierContext.class,0); + } + public TerminalNode ARGLIST() { return getToken(CSharpParser.ARGLIST, 0); } + public Fixed_parameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixed_parameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFixed_parameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFixed_parameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFixed_parameter(this); + else return visitor.visitChildren(this); + } + } + + public final Fixed_parameterContext fixed_parameter() throws RecognitionException { + Fixed_parameterContext _localctx = new Fixed_parameterContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_fixed_parameter); + int _la; + try { + setState(1615); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,175,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1608); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1607); + attributes(); + } + } + + setState(1611); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 71)) & ~0x3f) == 0 && ((1L << (_la - 71)) & ((1L << (OUT - 71)) | (1L << (REF - 71)) | (1L << (THIS - 71)))) != 0)) { + { + setState(1610); + parameter_modifier(); + } + } + + setState(1613); + arg_declaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1614); + match(ARGLIST); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Parameter_modifierContext extends ParserRuleContext { + public TerminalNode REF() { return getToken(CSharpParser.REF, 0); } + public TerminalNode OUT() { return getToken(CSharpParser.OUT, 0); } + public TerminalNode THIS() { return getToken(CSharpParser.THIS, 0); } + public Parameter_modifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parameter_modifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterParameter_modifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitParameter_modifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitParameter_modifier(this); + else return visitor.visitChildren(this); + } + } + + public final Parameter_modifierContext parameter_modifier() throws RecognitionException { + Parameter_modifierContext _localctx = new Parameter_modifierContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_parameter_modifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1617); + _la = _input.LA(1); + if ( !(((((_la - 71)) & ~0x3f) == 0 && ((1L << (_la - 71)) & ((1L << (OUT - 71)) | (1L << (REF - 71)) | (1L << (THIS - 71)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Parameter_arrayContext extends ParserRuleContext { + public TerminalNode PARAMS() { return getToken(CSharpParser.PARAMS, 0); } + public Array_typeContext array_type() { + return getRuleContext(Array_typeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Parameter_arrayContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parameter_array; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterParameter_array(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitParameter_array(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitParameter_array(this); + else return visitor.visitChildren(this); + } + } + + public final Parameter_arrayContext parameter_array() throws RecognitionException { + Parameter_arrayContext _localctx = new Parameter_arrayContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_parameter_array); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1620); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1619); + attributes(); + } + } + + setState(1622); + match(PARAMS); + setState(1623); + array_type(); + setState(1624); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Accessor_declarationsContext extends ParserRuleContext { + public AttributesContext attrs; + public Accessor_modifierContext mods; + public TerminalNode GET() { return getToken(CSharpParser.GET, 0); } + public Accessor_bodyContext accessor_body() { + return getRuleContext(Accessor_bodyContext.class,0); + } + public TerminalNode SET() { return getToken(CSharpParser.SET, 0); } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Accessor_modifierContext accessor_modifier() { + return getRuleContext(Accessor_modifierContext.class,0); + } + public Set_accessor_declarationContext set_accessor_declaration() { + return getRuleContext(Set_accessor_declarationContext.class,0); + } + public Get_accessor_declarationContext get_accessor_declaration() { + return getRuleContext(Get_accessor_declarationContext.class,0); + } + public Accessor_declarationsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_accessor_declarations; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAccessor_declarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAccessor_declarations(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAccessor_declarations(this); + else return visitor.visitChildren(this); + } + } + + public final Accessor_declarationsContext accessor_declarations() throws RecognitionException { + Accessor_declarationsContext _localctx = new Accessor_declarationsContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_accessor_declarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1627); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1626); + ((Accessor_declarationsContext)_localctx).attrs = attributes(); + } + } + + setState(1630); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 56)) & ~0x3f) == 0 && ((1L << (_la - 56)) & ((1L << (INTERNAL - 56)) | (1L << (PRIVATE - 56)) | (1L << (PROTECTED - 56)))) != 0)) { + { + setState(1629); + ((Accessor_declarationsContext)_localctx).mods = accessor_modifier(); + } + } + + setState(1642); + _errHandler.sync(this); + switch (_input.LA(1)) { + case GET: + { + setState(1632); + match(GET); + setState(1633); + accessor_body(); + setState(1635); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==INTERNAL || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (PRIVATE - 75)) | (1L << (PROTECTED - 75)) | (1L << (SET - 75)) | (1L << (OPEN_BRACKET - 75)))) != 0)) { + { + setState(1634); + set_accessor_declaration(); + } + } + + } + break; + case SET: + { + setState(1637); + match(SET); + setState(1638); + accessor_body(); + setState(1640); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GET || _la==INTERNAL || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (PRIVATE - 75)) | (1L << (PROTECTED - 75)) | (1L << (OPEN_BRACKET - 75)))) != 0)) { + { + setState(1639); + get_accessor_declaration(); + } + } + + } + 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 static class Get_accessor_declarationContext extends ParserRuleContext { + public TerminalNode GET() { return getToken(CSharpParser.GET, 0); } + public Accessor_bodyContext accessor_body() { + return getRuleContext(Accessor_bodyContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Accessor_modifierContext accessor_modifier() { + return getRuleContext(Accessor_modifierContext.class,0); + } + public Get_accessor_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_get_accessor_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterGet_accessor_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitGet_accessor_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitGet_accessor_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Get_accessor_declarationContext get_accessor_declaration() throws RecognitionException { + Get_accessor_declarationContext _localctx = new Get_accessor_declarationContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_get_accessor_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1645); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1644); + attributes(); + } + } + + setState(1648); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 56)) & ~0x3f) == 0 && ((1L << (_la - 56)) & ((1L << (INTERNAL - 56)) | (1L << (PRIVATE - 56)) | (1L << (PROTECTED - 56)))) != 0)) { + { + setState(1647); + accessor_modifier(); + } + } + + setState(1650); + match(GET); + setState(1651); + accessor_body(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Set_accessor_declarationContext extends ParserRuleContext { + public TerminalNode SET() { return getToken(CSharpParser.SET, 0); } + public Accessor_bodyContext accessor_body() { + return getRuleContext(Accessor_bodyContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Accessor_modifierContext accessor_modifier() { + return getRuleContext(Accessor_modifierContext.class,0); + } + public Set_accessor_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_set_accessor_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterSet_accessor_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitSet_accessor_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitSet_accessor_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Set_accessor_declarationContext set_accessor_declaration() throws RecognitionException { + Set_accessor_declarationContext _localctx = new Set_accessor_declarationContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_set_accessor_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1654); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1653); + attributes(); + } + } + + setState(1657); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 56)) & ~0x3f) == 0 && ((1L << (_la - 56)) & ((1L << (INTERNAL - 56)) | (1L << (PRIVATE - 56)) | (1L << (PROTECTED - 56)))) != 0)) { + { + setState(1656); + accessor_modifier(); + } + } + + setState(1659); + match(SET); + setState(1660); + accessor_body(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Accessor_modifierContext extends ParserRuleContext { + public TerminalNode PROTECTED() { return getToken(CSharpParser.PROTECTED, 0); } + public TerminalNode INTERNAL() { return getToken(CSharpParser.INTERNAL, 0); } + public TerminalNode PRIVATE() { return getToken(CSharpParser.PRIVATE, 0); } + public Accessor_modifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_accessor_modifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAccessor_modifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAccessor_modifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAccessor_modifier(this); + else return visitor.visitChildren(this); + } + } + + public final Accessor_modifierContext accessor_modifier() throws RecognitionException { + Accessor_modifierContext _localctx = new Accessor_modifierContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_accessor_modifier); + try { + setState(1669); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1662); + match(PROTECTED); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1663); + match(INTERNAL); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1664); + match(PRIVATE); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1665); + match(PROTECTED); + setState(1666); + match(INTERNAL); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1667); + match(INTERNAL); + setState(1668); + match(PROTECTED); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Accessor_bodyContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Accessor_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_accessor_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAccessor_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAccessor_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAccessor_body(this); + else return visitor.visitChildren(this); + } + } + + public final Accessor_bodyContext accessor_body() throws RecognitionException { + Accessor_bodyContext _localctx = new Accessor_bodyContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_accessor_body); + try { + setState(1673); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + enterOuterAlt(_localctx, 1); + { + setState(1671); + block(); + } + break; + case SEMICOLON: + enterOuterAlt(_localctx, 2); + { + setState(1672); + match(SEMICOLON); + } + 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 static class Event_accessor_declarationsContext extends ParserRuleContext { + public TerminalNode ADD() { return getToken(CSharpParser.ADD, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public Remove_accessor_declarationContext remove_accessor_declaration() { + return getRuleContext(Remove_accessor_declarationContext.class,0); + } + public TerminalNode REMOVE() { return getToken(CSharpParser.REMOVE, 0); } + public Add_accessor_declarationContext add_accessor_declaration() { + return getRuleContext(Add_accessor_declarationContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Event_accessor_declarationsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_event_accessor_declarations; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEvent_accessor_declarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEvent_accessor_declarations(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEvent_accessor_declarations(this); + else return visitor.visitChildren(this); + } + } + + public final Event_accessor_declarationsContext event_accessor_declarations() throws RecognitionException { + Event_accessor_declarationsContext _localctx = new Event_accessor_declarationsContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_event_accessor_declarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1676); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1675); + attributes(); + } + } + + setState(1686); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + { + setState(1678); + match(ADD); + setState(1679); + block(); + setState(1680); + remove_accessor_declaration(); + } + break; + case REMOVE: + { + setState(1682); + match(REMOVE); + setState(1683); + block(); + setState(1684); + add_accessor_declaration(); + } + 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 static class Add_accessor_declarationContext extends ParserRuleContext { + public TerminalNode ADD() { return getToken(CSharpParser.ADD, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Add_accessor_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_add_accessor_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAdd_accessor_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAdd_accessor_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAdd_accessor_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Add_accessor_declarationContext add_accessor_declaration() throws RecognitionException { + Add_accessor_declarationContext _localctx = new Add_accessor_declarationContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_add_accessor_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1689); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1688); + attributes(); + } + } + + setState(1691); + match(ADD); + setState(1692); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Remove_accessor_declarationContext extends ParserRuleContext { + public TerminalNode REMOVE() { return getToken(CSharpParser.REMOVE, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Remove_accessor_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_remove_accessor_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterRemove_accessor_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitRemove_accessor_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitRemove_accessor_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Remove_accessor_declarationContext remove_accessor_declaration() throws RecognitionException { + Remove_accessor_declarationContext _localctx = new Remove_accessor_declarationContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_remove_accessor_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1695); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1694); + attributes(); + } + } + + setState(1697); + match(REMOVE); + setState(1698); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Overloadable_operatorContext extends ParserRuleContext { + public TerminalNode BANG() { return getToken(CSharpParser.BANG, 0); } + public TerminalNode TRUE() { return getToken(CSharpParser.TRUE, 0); } + public TerminalNode FALSE() { return getToken(CSharpParser.FALSE, 0); } + public TerminalNode STAR() { return getToken(CSharpParser.STAR, 0); } + public Right_shiftContext right_shift() { + return getRuleContext(Right_shiftContext.class,0); + } + public TerminalNode OP_EQ() { return getToken(CSharpParser.OP_EQ, 0); } + public TerminalNode OP_NE() { return getToken(CSharpParser.OP_NE, 0); } + public TerminalNode GT() { return getToken(CSharpParser.GT, 0); } + public TerminalNode LT() { return getToken(CSharpParser.LT, 0); } + public Overloadable_operatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_overloadable_operator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterOverloadable_operator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitOverloadable_operator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitOverloadable_operator(this); + else return visitor.visitChildren(this); + } + } + + public final Overloadable_operatorContext overloadable_operator() throws RecognitionException { + Overloadable_operatorContext _localctx = new Overloadable_operatorContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_overloadable_operator); + try { + setState(1722); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1700); + match(PLUS); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1701); + match(MINUS); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1702); + match(BANG); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1703); + match(TILDE); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(1704); + match(OP_INC); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(1705); + match(OP_DEC); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(1706); + match(TRUE); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(1707); + match(FALSE); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(1708); + match(STAR); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(1709); + match(DIV); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(1710); + match(PERCENT); + } + break; + case 12: + enterOuterAlt(_localctx, 12); + { + setState(1711); + match(AMP); + } + break; + case 13: + enterOuterAlt(_localctx, 13); + { + setState(1712); + match(BITWISE_OR); + } + break; + case 14: + enterOuterAlt(_localctx, 14); + { + setState(1713); + match(CARET); + } + break; + case 15: + enterOuterAlt(_localctx, 15); + { + setState(1714); + match(OP_LEFT_SHIFT); + } + break; + case 16: + enterOuterAlt(_localctx, 16); + { + setState(1715); + right_shift(); + } + break; + case 17: + enterOuterAlt(_localctx, 17); + { + setState(1716); + match(OP_EQ); + } + break; + case 18: + enterOuterAlt(_localctx, 18); + { + setState(1717); + match(OP_NE); + } + break; + case 19: + enterOuterAlt(_localctx, 19); + { + setState(1718); + match(GT); + } + break; + case 20: + enterOuterAlt(_localctx, 20); + { + setState(1719); + match(LT); + } + break; + case 21: + enterOuterAlt(_localctx, 21); + { + setState(1720); + match(OP_GE); + } + break; + case 22: + enterOuterAlt(_localctx, 22); + { + setState(1721); + match(OP_LE); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Conversion_operator_declaratorContext extends ParserRuleContext { + public TerminalNode OPERATOR() { return getToken(CSharpParser.OPERATOR, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public Arg_declarationContext arg_declaration() { + return getRuleContext(Arg_declarationContext.class,0); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public TerminalNode IMPLICIT() { return getToken(CSharpParser.IMPLICIT, 0); } + public TerminalNode EXPLICIT() { return getToken(CSharpParser.EXPLICIT, 0); } + public Conversion_operator_declaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conversion_operator_declarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConversion_operator_declarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConversion_operator_declarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConversion_operator_declarator(this); + else return visitor.visitChildren(this); + } + } + + public final Conversion_operator_declaratorContext conversion_operator_declarator() throws RecognitionException { + Conversion_operator_declaratorContext _localctx = new Conversion_operator_declaratorContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_conversion_operator_declarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1724); + _la = _input.LA(1); + if ( !(_la==EXPLICIT || _la==IMPLICIT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1725); + match(OPERATOR); + setState(1726); + type(); + setState(1727); + match(OPEN_PARENS); + setState(1728); + arg_declaration(); + setState(1729); + match(CLOSE_PARENS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Constructor_initializerContext extends ParserRuleContext { + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public TerminalNode BASE() { return getToken(CSharpParser.BASE, 0); } + public TerminalNode THIS() { return getToken(CSharpParser.THIS, 0); } + public Argument_listContext argument_list() { + return getRuleContext(Argument_listContext.class,0); + } + public Constructor_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructor_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConstructor_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConstructor_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConstructor_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Constructor_initializerContext constructor_initializer() throws RecognitionException { + Constructor_initializerContext _localctx = new Constructor_initializerContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_constructor_initializer); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1731); + match(COLON); + setState(1732); + _la = _input.LA(1); + if ( !(_la==BASE || _la==THIS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1733); + match(OPEN_PARENS); + setState(1735); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (OUT - 65)) | (1L << (PARTIAL - 65)) | (1L << (REF - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(1734); + argument_list(); + } + } + + setState(1737); + match(CLOSE_PARENS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BodyContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public BodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitBody(this); + else return visitor.visitChildren(this); + } + } + + public final BodyContext body() throws RecognitionException { + BodyContext _localctx = new BodyContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_body); + try { + setState(1741); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + enterOuterAlt(_localctx, 1); + { + setState(1739); + block(); + } + break; + case SEMICOLON: + enterOuterAlt(_localctx, 2); + { + setState(1740); + match(SEMICOLON); + } + 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 static class Struct_interfacesContext extends ParserRuleContext { + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Interface_type_listContext interface_type_list() { + return getRuleContext(Interface_type_listContext.class,0); + } + public Struct_interfacesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_struct_interfaces; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterStruct_interfaces(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitStruct_interfaces(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitStruct_interfaces(this); + else return visitor.visitChildren(this); + } + } + + public final Struct_interfacesContext struct_interfaces() throws RecognitionException { + Struct_interfacesContext _localctx = new Struct_interfacesContext(_ctx, getState()); + enterRule(_localctx, 278, RULE_struct_interfaces); + try { + enterOuterAlt(_localctx, 1); + { + setState(1743); + match(COLON); + setState(1744); + interface_type_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Struct_bodyContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public List struct_member_declaration() { + return getRuleContexts(Struct_member_declarationContext.class); + } + public Struct_member_declarationContext struct_member_declaration(int i) { + return getRuleContext(Struct_member_declarationContext.class,i); + } + public Struct_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_struct_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterStruct_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitStruct_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitStruct_body(this); + else return visitor.visitChildren(this); + } + } + + public final Struct_bodyContext struct_body() throws RecognitionException { + Struct_bodyContext _localctx = new Struct_bodyContext(_ctx, getState()); + enterRule(_localctx, 280, RULE_struct_body); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1746); + match(OPEN_BRACE); + setState(1750); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CLASS) | (1L << CONST) | (1L << DECIMAL) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << ENUM) | (1L << EQUALS) | (1L << EVENT) | (1L << EXPLICIT) | (1L << EXTERN) | (1L << FIXED) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << IMPLICIT) | (1L << INT) | (1L << INTERFACE) | (1L << INTERNAL) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (OVERRIDE - 65)) | (1L << (PARTIAL - 65)) | (1L << (PRIVATE - 65)) | (1L << (PROTECTED - 65)) | (1L << (PUBLIC - 65)) | (1L << (READONLY - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SEALED - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (STATIC - 65)) | (1L << (STRING - 65)) | (1L << (STRUCT - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNSAFE - 65)) | (1L << (USHORT - 65)) | (1L << (VIRTUAL - 65)) | (1L << (VOID - 65)) | (1L << (VOLATILE - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (OPEN_BRACKET - 65)))) != 0)) { + { + { + setState(1747); + struct_member_declaration(); + } + } + setState(1752); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1753); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Struct_member_declarationContext extends ParserRuleContext { + public Common_member_declarationContext common_member_declaration() { + return getRuleContext(Common_member_declarationContext.class,0); + } + public TerminalNode FIXED() { return getToken(CSharpParser.FIXED, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public All_member_modifiersContext all_member_modifiers() { + return getRuleContext(All_member_modifiersContext.class,0); + } + public List fixed_size_buffer_declarator() { + return getRuleContexts(Fixed_size_buffer_declaratorContext.class); + } + public Fixed_size_buffer_declaratorContext fixed_size_buffer_declarator(int i) { + return getRuleContext(Fixed_size_buffer_declaratorContext.class,i); + } + public Struct_member_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_struct_member_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterStruct_member_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitStruct_member_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitStruct_member_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Struct_member_declarationContext struct_member_declaration() throws RecognitionException { + Struct_member_declarationContext _localctx = new Struct_member_declarationContext(_ctx, getState()); + enterRule(_localctx, 282, RULE_struct_member_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1756); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1755); + attributes(); + } + } + + setState(1759); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,197,_ctx) ) { + case 1: + { + setState(1758); + all_member_modifiers(); + } + break; + } + setState(1771); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CLASS: + case CONST: + case DECIMAL: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case ENUM: + case EQUALS: + case EVENT: + case EXPLICIT: + case FLOAT: + case FROM: + case GET: + case GROUP: + case IMPLICIT: + case INT: + case INTERFACE: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case STRING: + case STRUCT: + case UINT: + case ULONG: + case USHORT: + case VOID: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + { + setState(1761); + common_member_declaration(); + } + break; + case FIXED: + { + setState(1762); + match(FIXED); + setState(1763); + type(); + setState(1765); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1764); + fixed_size_buffer_declarator(); + } + } + setState(1767); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BY) | (1L << DESCENDING) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << NAMEOF))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (ON - 68)) | (1L << (ORDERBY - 68)) | (1L << (PARTIAL - 68)) | (1L << (REMOVE - 68)) | (1L << (SELECT - 68)) | (1L << (SET - 68)) | (1L << (WHEN - 68)) | (1L << (WHERE - 68)) | (1L << (YIELD - 68)) | (1L << (IDENTIFIER - 68)))) != 0) ); + setState(1769); + match(SEMICOLON); + } + 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 static class Array_typeContext extends ParserRuleContext { + public Base_typeContext base_type() { + return getRuleContext(Base_typeContext.class,0); + } + public List rank_specifier() { + return getRuleContexts(Rank_specifierContext.class); + } + public Rank_specifierContext rank_specifier(int i) { + return getRuleContext(Rank_specifierContext.class,i); + } + public List STAR() { return getTokens(CSharpParser.STAR); } + public TerminalNode STAR(int i) { + return getToken(CSharpParser.STAR, i); + } + public List INTERR() { return getTokens(CSharpParser.INTERR); } + public TerminalNode INTERR(int i) { + return getToken(CSharpParser.INTERR, i); + } + public Array_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_array_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterArray_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitArray_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitArray_type(this); + else return visitor.visitChildren(this); + } + } + + public final Array_typeContext array_type() throws RecognitionException { + Array_typeContext _localctx = new Array_typeContext(_ctx, getState()); + enterRule(_localctx, 284, RULE_array_type); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1773); + base_type(); + setState(1781); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1777); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==STAR || _la==INTERR) { + { + { + setState(1774); + _la = _input.LA(1); + if ( !(_la==STAR || _la==INTERR) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + setState(1779); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1780); + rank_specifier(); + } + } + setState(1783); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 123)) & ~0x3f) == 0 && ((1L << (_la - 123)) & ((1L << (OPEN_BRACKET - 123)) | (1L << (STAR - 123)) | (1L << (INTERR - 123)))) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Rank_specifierContext extends ParserRuleContext { + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Rank_specifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_rank_specifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterRank_specifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitRank_specifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitRank_specifier(this); + else return visitor.visitChildren(this); + } + } + + public final Rank_specifierContext rank_specifier() throws RecognitionException { + Rank_specifierContext _localctx = new Rank_specifierContext(_ctx, getState()); + enterRule(_localctx, 286, RULE_rank_specifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1785); + match(OPEN_BRACKET); + setState(1789); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1786); + match(COMMA); + } + } + setState(1791); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1792); + match(CLOSE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Array_initializerContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public List variable_initializer() { + return getRuleContexts(Variable_initializerContext.class); + } + public Variable_initializerContext variable_initializer(int i) { + return getRuleContext(Variable_initializerContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Array_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_array_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterArray_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitArray_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitArray_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Array_initializerContext array_initializer() throws RecognitionException { + Array_initializerContext _localctx = new Array_initializerContext(_ctx, getState()); + enterRule(_localctx, 288, RULE_array_initializer); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1794); + match(OPEN_BRACE); + setState(1806); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_BRACE - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(1795); + variable_initializer(); + setState(1800); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,203,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1796); + match(COMMA); + setState(1797); + variable_initializer(); + } + } + } + setState(1802); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,203,_ctx); + } + setState(1804); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1803); + match(COMMA); + } + } + + } + } + + setState(1808); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Variant_type_parameter_listContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(CSharpParser.LT, 0); } + public List variant_type_parameter() { + return getRuleContexts(Variant_type_parameterContext.class); + } + public Variant_type_parameterContext variant_type_parameter(int i) { + return getRuleContext(Variant_type_parameterContext.class,i); + } + public TerminalNode GT() { return getToken(CSharpParser.GT, 0); } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Variant_type_parameter_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variant_type_parameter_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterVariant_type_parameter_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitVariant_type_parameter_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitVariant_type_parameter_list(this); + else return visitor.visitChildren(this); + } + } + + public final Variant_type_parameter_listContext variant_type_parameter_list() throws RecognitionException { + Variant_type_parameter_listContext _localctx = new Variant_type_parameter_listContext(_ctx, getState()); + enterRule(_localctx, 290, RULE_variant_type_parameter_list); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1810); + match(LT); + setState(1811); + variant_type_parameter(); + setState(1816); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1812); + match(COMMA); + setState(1813); + variant_type_parameter(); + } + } + setState(1818); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1819); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Variant_type_parameterContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public Variance_annotationContext variance_annotation() { + return getRuleContext(Variance_annotationContext.class,0); + } + public Variant_type_parameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variant_type_parameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterVariant_type_parameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitVariant_type_parameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitVariant_type_parameter(this); + else return visitor.visitChildren(this); + } + } + + public final Variant_type_parameterContext variant_type_parameter() throws RecognitionException { + Variant_type_parameterContext _localctx = new Variant_type_parameterContext(_ctx, getState()); + enterRule(_localctx, 292, RULE_variant_type_parameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1822); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1821); + attributes(); + } + } + + setState(1825); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IN || _la==OUT) { + { + setState(1824); + variance_annotation(); + } + } + + setState(1827); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Variance_annotationContext extends ParserRuleContext { + public TerminalNode IN() { return getToken(CSharpParser.IN, 0); } + public TerminalNode OUT() { return getToken(CSharpParser.OUT, 0); } + public Variance_annotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variance_annotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterVariance_annotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitVariance_annotation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitVariance_annotation(this); + else return visitor.visitChildren(this); + } + } + + public final Variance_annotationContext variance_annotation() throws RecognitionException { + Variance_annotationContext _localctx = new Variance_annotationContext(_ctx, getState()); + enterRule(_localctx, 294, RULE_variance_annotation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1829); + _la = _input.LA(1); + if ( !(_la==IN || _la==OUT) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Interface_baseContext extends ParserRuleContext { + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Interface_type_listContext interface_type_list() { + return getRuleContext(Interface_type_listContext.class,0); + } + public Interface_baseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interface_base; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterface_base(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterface_base(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterface_base(this); + else return visitor.visitChildren(this); + } + } + + public final Interface_baseContext interface_base() throws RecognitionException { + Interface_baseContext _localctx = new Interface_baseContext(_ctx, getState()); + enterRule(_localctx, 296, RULE_interface_base); + try { + enterOuterAlt(_localctx, 1); + { + setState(1831); + match(COLON); + setState(1832); + interface_type_list(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Interface_bodyContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public List interface_member_declaration() { + return getRuleContexts(Interface_member_declarationContext.class); + } + public Interface_member_declarationContext interface_member_declaration(int i) { + return getRuleContext(Interface_member_declarationContext.class,i); + } + public Interface_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interface_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterface_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterface_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterface_body(this); + else return visitor.visitChildren(this); + } + } + + public final Interface_bodyContext interface_body() throws RecognitionException { + Interface_bodyContext _localctx = new Interface_bodyContext(_ctx, getState()); + enterRule(_localctx, 298, RULE_interface_body); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1834); + match(OPEN_BRACE); + setState(1838); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << EVENT) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (STRING - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNSAFE - 65)) | (1L << (USHORT - 65)) | (1L << (VOID - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (OPEN_BRACKET - 65)))) != 0)) { + { + { + setState(1835); + interface_member_declaration(); + } + } + setState(1840); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1841); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Interface_member_declarationContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode VOID() { return getToken(CSharpParser.VOID, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public TerminalNode EVENT() { return getToken(CSharpParser.EVENT, 0); } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public TerminalNode NEW() { return getToken(CSharpParser.NEW, 0); } + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public Interface_accessorsContext interface_accessors() { + return getRuleContext(Interface_accessorsContext.class,0); + } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public TerminalNode THIS() { return getToken(CSharpParser.THIS, 0); } + public Formal_parameter_listContext formal_parameter_list() { + return getRuleContext(Formal_parameter_listContext.class,0); + } + public TerminalNode UNSAFE() { return getToken(CSharpParser.UNSAFE, 0); } + public Type_parameter_listContext type_parameter_list() { + return getRuleContext(Type_parameter_listContext.class,0); + } + public Type_parameter_constraints_clausesContext type_parameter_constraints_clauses() { + return getRuleContext(Type_parameter_constraints_clausesContext.class,0); + } + public Interface_member_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interface_member_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterface_member_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterface_member_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterface_member_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Interface_member_declarationContext interface_member_declaration() throws RecognitionException { + Interface_member_declarationContext _localctx = new Interface_member_declarationContext(_ctx, getState()); + enterRule(_localctx, 300, RULE_interface_member_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1844); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1843); + attributes(); + } + } + + setState(1847); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==NEW) { + { + setState(1846); + match(NEW); + } + } + + setState(1905); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,221,_ctx) ) { + case 1: + { + setState(1850); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==UNSAFE) { + { + setState(1849); + match(UNSAFE); + } + } + + setState(1852); + type(); + setState(1880); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,216,_ctx) ) { + case 1: + { + setState(1853); + identifier(); + setState(1855); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1854); + type_parameter_list(); + } + } + + setState(1857); + match(OPEN_PARENS); + setState(1859); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (OBJECT - 67)) | (1L << (ON - 67)) | (1L << (ORDERBY - 67)) | (1L << (OUT - 67)) | (1L << (PARAMS - 67)) | (1L << (PARTIAL - 67)) | (1L << (REF - 67)) | (1L << (REMOVE - 67)) | (1L << (SBYTE - 67)) | (1L << (SELECT - 67)) | (1L << (SET - 67)) | (1L << (SHORT - 67)) | (1L << (STRING - 67)) | (1L << (THIS - 67)) | (1L << (UINT - 67)) | (1L << (ULONG - 67)) | (1L << (USHORT - 67)) | (1L << (VOID - 67)) | (1L << (WHEN - 67)) | (1L << (WHERE - 67)) | (1L << (YIELD - 67)) | (1L << (IDENTIFIER - 67)) | (1L << (OPEN_BRACKET - 67)))) != 0)) { + { + setState(1858); + formal_parameter_list(); + } + } + + setState(1861); + match(CLOSE_PARENS); + setState(1863); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(1862); + type_parameter_constraints_clauses(); + } + } + + setState(1865); + match(SEMICOLON); + } + break; + case 2: + { + setState(1867); + identifier(); + setState(1868); + match(OPEN_BRACE); + setState(1869); + interface_accessors(); + setState(1870); + match(CLOSE_BRACE); + } + break; + case 3: + { + setState(1872); + match(THIS); + setState(1873); + match(OPEN_BRACKET); + setState(1874); + formal_parameter_list(); + setState(1875); + match(CLOSE_BRACKET); + setState(1876); + match(OPEN_BRACE); + setState(1877); + interface_accessors(); + setState(1878); + match(CLOSE_BRACE); + } + break; + } + } + break; + case 2: + { + setState(1883); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==UNSAFE) { + { + setState(1882); + match(UNSAFE); + } + } + + setState(1885); + match(VOID); + setState(1886); + identifier(); + setState(1888); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1887); + type_parameter_list(); + } + } + + setState(1890); + match(OPEN_PARENS); + setState(1892); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (OBJECT - 67)) | (1L << (ON - 67)) | (1L << (ORDERBY - 67)) | (1L << (OUT - 67)) | (1L << (PARAMS - 67)) | (1L << (PARTIAL - 67)) | (1L << (REF - 67)) | (1L << (REMOVE - 67)) | (1L << (SBYTE - 67)) | (1L << (SELECT - 67)) | (1L << (SET - 67)) | (1L << (SHORT - 67)) | (1L << (STRING - 67)) | (1L << (THIS - 67)) | (1L << (UINT - 67)) | (1L << (ULONG - 67)) | (1L << (USHORT - 67)) | (1L << (VOID - 67)) | (1L << (WHEN - 67)) | (1L << (WHERE - 67)) | (1L << (YIELD - 67)) | (1L << (IDENTIFIER - 67)) | (1L << (OPEN_BRACKET - 67)))) != 0)) { + { + setState(1891); + formal_parameter_list(); + } + } + + setState(1894); + match(CLOSE_PARENS); + setState(1896); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(1895); + type_parameter_constraints_clauses(); + } + } + + setState(1898); + match(SEMICOLON); + } + break; + case 3: + { + setState(1900); + match(EVENT); + setState(1901); + type(); + setState(1902); + identifier(); + setState(1903); + match(SEMICOLON); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Interface_accessorsContext extends ParserRuleContext { + public TerminalNode GET() { return getToken(CSharpParser.GET, 0); } + public TerminalNode SET() { return getToken(CSharpParser.SET, 0); } + public List attributes() { + return getRuleContexts(AttributesContext.class); + } + public AttributesContext attributes(int i) { + return getRuleContext(AttributesContext.class,i); + } + public Interface_accessorsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interface_accessors; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterface_accessors(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterface_accessors(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterface_accessors(this); + else return visitor.visitChildren(this); + } + } + + public final Interface_accessorsContext interface_accessors() throws RecognitionException { + Interface_accessorsContext _localctx = new Interface_accessorsContext(_ctx, getState()); + enterRule(_localctx, 302, RULE_interface_accessors); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1908); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1907); + attributes(); + } + } + + setState(1928); + _errHandler.sync(this); + switch (_input.LA(1)) { + case GET: + { + setState(1910); + match(GET); + setState(1911); + match(SEMICOLON); + setState(1917); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SET || _la==OPEN_BRACKET) { + { + setState(1913); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1912); + attributes(); + } + } + + setState(1915); + match(SET); + setState(1916); + match(SEMICOLON); + } + } + + } + break; + case SET: + { + setState(1919); + match(SET); + setState(1920); + match(SEMICOLON); + setState(1926); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==GET || _la==OPEN_BRACKET) { + { + setState(1922); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1921); + attributes(); + } + } + + setState(1924); + match(GET); + setState(1925); + match(SEMICOLON); + } + } + + } + 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 static class Enum_baseContext extends ParserRuleContext { + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public Enum_baseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enum_base; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEnum_base(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEnum_base(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEnum_base(this); + else return visitor.visitChildren(this); + } + } + + public final Enum_baseContext enum_base() throws RecognitionException { + Enum_baseContext _localctx = new Enum_baseContext(_ctx, getState()); + enterRule(_localctx, 304, RULE_enum_base); + try { + enterOuterAlt(_localctx, 1); + { + setState(1930); + match(COLON); + setState(1931); + type(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Enum_bodyContext extends ParserRuleContext { + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public List enum_member_declaration() { + return getRuleContexts(Enum_member_declarationContext.class); + } + public Enum_member_declarationContext enum_member_declaration(int i) { + return getRuleContext(Enum_member_declarationContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Enum_bodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enum_body; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEnum_body(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEnum_body(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEnum_body(this); + else return visitor.visitChildren(this); + } + } + + public final Enum_bodyContext enum_body() throws RecognitionException { + Enum_bodyContext _localctx = new Enum_bodyContext(_ctx, getState()); + enterRule(_localctx, 306, RULE_enum_body); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1933); + match(OPEN_BRACE); + setState(1945); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BY) | (1L << DESCENDING) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << NAMEOF))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (ON - 68)) | (1L << (ORDERBY - 68)) | (1L << (PARTIAL - 68)) | (1L << (REMOVE - 68)) | (1L << (SELECT - 68)) | (1L << (SET - 68)) | (1L << (WHEN - 68)) | (1L << (WHERE - 68)) | (1L << (YIELD - 68)) | (1L << (IDENTIFIER - 68)) | (1L << (OPEN_BRACKET - 68)))) != 0)) { + { + setState(1934); + enum_member_declaration(); + setState(1939); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,228,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1935); + match(COMMA); + setState(1936); + enum_member_declaration(); + } + } + } + setState(1941); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,228,_ctx); + } + setState(1943); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1942); + match(COMMA); + } + } + + } + } + + setState(1947); + match(CLOSE_BRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Enum_member_declarationContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public AttributesContext attributes() { + return getRuleContext(AttributesContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Enum_member_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enum_member_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEnum_member_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEnum_member_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEnum_member_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Enum_member_declarationContext enum_member_declaration() throws RecognitionException { + Enum_member_declarationContext _localctx = new Enum_member_declarationContext(_ctx, getState()); + enterRule(_localctx, 308, RULE_enum_member_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1950); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACKET) { + { + setState(1949); + attributes(); + } + } + + setState(1952); + identifier(); + setState(1955); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGNMENT) { + { + setState(1953); + match(ASSIGNMENT); + setState(1954); + expression(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Global_attribute_sectionContext extends ParserRuleContext { + public Global_attribute_targetContext global_attribute_target() { + return getRuleContext(Global_attribute_targetContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Attribute_listContext attribute_list() { + return getRuleContext(Attribute_listContext.class,0); + } + public TerminalNode COMMA() { return getToken(CSharpParser.COMMA, 0); } + public Global_attribute_sectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_global_attribute_section; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterGlobal_attribute_section(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitGlobal_attribute_section(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitGlobal_attribute_section(this); + else return visitor.visitChildren(this); + } + } + + public final Global_attribute_sectionContext global_attribute_section() throws RecognitionException { + Global_attribute_sectionContext _localctx = new Global_attribute_sectionContext(_ctx, getState()); + enterRule(_localctx, 310, RULE_global_attribute_section); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1957); + match(OPEN_BRACKET); + setState(1958); + global_attribute_target(); + setState(1959); + match(COLON); + setState(1960); + attribute_list(); + setState(1962); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1961); + match(COMMA); + } + } + + setState(1964); + match(CLOSE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Global_attribute_targetContext extends ParserRuleContext { + public KeywordContext keyword() { + return getRuleContext(KeywordContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Global_attribute_targetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_global_attribute_target; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterGlobal_attribute_target(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitGlobal_attribute_target(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitGlobal_attribute_target(this); + else return visitor.visitChildren(this); + } + } + + public final Global_attribute_targetContext global_attribute_target() throws RecognitionException { + Global_attribute_targetContext _localctx = new Global_attribute_targetContext(_ctx, getState()); + enterRule(_localctx, 312, RULE_global_attribute_target); + try { + setState(1968); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ABSTRACT: + case AS: + case BASE: + case BOOL: + case BREAK: + case BYTE: + case CASE: + case CATCH: + case CHAR: + case CHECKED: + case CLASS: + case CONST: + case CONTINUE: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DO: + case DOUBLE: + case ELSE: + case ENUM: + case EVENT: + case EXPLICIT: + case EXTERN: + case FALSE: + case FINALLY: + case FIXED: + case FLOAT: + case FOR: + case FOREACH: + case GOTO: + case IF: + case IMPLICIT: + case IN: + case INT: + case INTERFACE: + case INTERNAL: + case IS: + case LOCK: + case LONG: + case NAMESPACE: + case NEW: + case NULL: + case OBJECT: + case OPERATOR: + case OUT: + case OVERRIDE: + case PARAMS: + case PRIVATE: + case PROTECTED: + case PUBLIC: + case READONLY: + case REF: + case RETURN: + case SBYTE: + case SEALED: + case SHORT: + case SIZEOF: + case STACKALLOC: + case STATIC: + case STRING: + case STRUCT: + case SWITCH: + case THIS: + case THROW: + case TRUE: + case TRY: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case UNSAFE: + case USHORT: + case USING: + case VIRTUAL: + case VOID: + case VOLATILE: + case WHILE: + enterOuterAlt(_localctx, 1); + { + setState(1966); + keyword(); + } + break; + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(1967); + identifier(); + } + 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 static class AttributesContext extends ParserRuleContext { + public List attribute_section() { + return getRuleContexts(Attribute_sectionContext.class); + } + public Attribute_sectionContext attribute_section(int i) { + return getRuleContext(Attribute_sectionContext.class,i); + } + public AttributesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_attributes; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAttributes(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAttributes(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAttributes(this); + else return visitor.visitChildren(this); + } + } + + public final AttributesContext attributes() throws RecognitionException { + AttributesContext _localctx = new AttributesContext(_ctx, getState()); + enterRule(_localctx, 314, RULE_attributes); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1971); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1970); + attribute_section(); + } + } + setState(1973); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==OPEN_BRACKET ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Attribute_sectionContext extends ParserRuleContext { + public Attribute_listContext attribute_list() { + return getRuleContext(Attribute_listContext.class,0); + } + public Attribute_targetContext attribute_target() { + return getRuleContext(Attribute_targetContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public TerminalNode COMMA() { return getToken(CSharpParser.COMMA, 0); } + public Attribute_sectionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_attribute_section; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAttribute_section(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAttribute_section(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAttribute_section(this); + else return visitor.visitChildren(this); + } + } + + public final Attribute_sectionContext attribute_section() throws RecognitionException { + Attribute_sectionContext _localctx = new Attribute_sectionContext(_ctx, getState()); + enterRule(_localctx, 316, RULE_attribute_section); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1975); + match(OPEN_BRACKET); + setState(1979); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,236,_ctx) ) { + case 1: + { + setState(1976); + attribute_target(); + setState(1977); + match(COLON); + } + break; + } + setState(1981); + attribute_list(); + setState(1983); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(1982); + match(COMMA); + } + } + + setState(1985); + match(CLOSE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Attribute_targetContext extends ParserRuleContext { + public KeywordContext keyword() { + return getRuleContext(KeywordContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Attribute_targetContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_attribute_target; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAttribute_target(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAttribute_target(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAttribute_target(this); + else return visitor.visitChildren(this); + } + } + + public final Attribute_targetContext attribute_target() throws RecognitionException { + Attribute_targetContext _localctx = new Attribute_targetContext(_ctx, getState()); + enterRule(_localctx, 318, RULE_attribute_target); + try { + setState(1989); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ABSTRACT: + case AS: + case BASE: + case BOOL: + case BREAK: + case BYTE: + case CASE: + case CATCH: + case CHAR: + case CHECKED: + case CLASS: + case CONST: + case CONTINUE: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DO: + case DOUBLE: + case ELSE: + case ENUM: + case EVENT: + case EXPLICIT: + case EXTERN: + case FALSE: + case FINALLY: + case FIXED: + case FLOAT: + case FOR: + case FOREACH: + case GOTO: + case IF: + case IMPLICIT: + case IN: + case INT: + case INTERFACE: + case INTERNAL: + case IS: + case LOCK: + case LONG: + case NAMESPACE: + case NEW: + case NULL: + case OBJECT: + case OPERATOR: + case OUT: + case OVERRIDE: + case PARAMS: + case PRIVATE: + case PROTECTED: + case PUBLIC: + case READONLY: + case REF: + case RETURN: + case SBYTE: + case SEALED: + case SHORT: + case SIZEOF: + case STACKALLOC: + case STATIC: + case STRING: + case STRUCT: + case SWITCH: + case THIS: + case THROW: + case TRUE: + case TRY: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case UNSAFE: + case USHORT: + case USING: + case VIRTUAL: + case VOID: + case VOLATILE: + case WHILE: + enterOuterAlt(_localctx, 1); + { + setState(1987); + keyword(); + } + break; + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(1988); + identifier(); + } + 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 static class Attribute_listContext extends ParserRuleContext { + public List attribute() { + return getRuleContexts(AttributeContext.class); + } + public AttributeContext attribute(int i) { + return getRuleContext(AttributeContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Attribute_listContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_attribute_list; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAttribute_list(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAttribute_list(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAttribute_list(this); + else return visitor.visitChildren(this); + } + } + + public final Attribute_listContext attribute_list() throws RecognitionException { + Attribute_listContext _localctx = new Attribute_listContext(_ctx, getState()); + enterRule(_localctx, 320, RULE_attribute_list); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1991); + attribute(); + setState(1996); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,239,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1992); + match(COMMA); + setState(1993); + attribute(); + } + } + } + setState(1998); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,239,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AttributeContext extends ParserRuleContext { + public Namespace_or_type_nameContext namespace_or_type_name() { + return getRuleContext(Namespace_or_type_nameContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public List attribute_argument() { + return getRuleContexts(Attribute_argumentContext.class); + } + public Attribute_argumentContext attribute_argument(int i) { + return getRuleContext(Attribute_argumentContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public AttributeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_attribute; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAttribute(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAttribute(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAttribute(this); + else return visitor.visitChildren(this); + } + } + + public final AttributeContext attribute() throws RecognitionException { + AttributeContext _localctx = new AttributeContext(_ctx, getState()); + enterRule(_localctx, 322, RULE_attribute); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1999); + namespace_or_type_name(); + setState(2012); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_PARENS) { + { + setState(2000); + match(OPEN_PARENS); + setState(2009); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(2001); + attribute_argument(); + setState(2006); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2002); + match(COMMA); + setState(2003); + attribute_argument(); + } + } + setState(2008); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(2011); + match(CLOSE_PARENS); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Attribute_argumentContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public Attribute_argumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_attribute_argument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterAttribute_argument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitAttribute_argument(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitAttribute_argument(this); + else return visitor.visitChildren(this); + } + } + + public final Attribute_argumentContext attribute_argument() throws RecognitionException { + Attribute_argumentContext _localctx = new Attribute_argumentContext(_ctx, getState()); + enterRule(_localctx, 324, RULE_attribute_argument); + try { + enterOuterAlt(_localctx, 1); + { + setState(2017); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,243,_ctx) ) { + case 1: + { + setState(2014); + identifier(); + setState(2015); + match(COLON); + } + break; + } + setState(2019); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Pointer_typeContext extends ParserRuleContext { + public TerminalNode STAR() { return getToken(CSharpParser.STAR, 0); } + public Simple_typeContext simple_type() { + return getRuleContext(Simple_typeContext.class,0); + } + public Class_typeContext class_type() { + return getRuleContext(Class_typeContext.class,0); + } + public List rank_specifier() { + return getRuleContexts(Rank_specifierContext.class); + } + public Rank_specifierContext rank_specifier(int i) { + return getRuleContext(Rank_specifierContext.class,i); + } + public List INTERR() { return getTokens(CSharpParser.INTERR); } + public TerminalNode INTERR(int i) { + return getToken(CSharpParser.INTERR, i); + } + public TerminalNode VOID() { return getToken(CSharpParser.VOID, 0); } + public Pointer_typeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pointer_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterPointer_type(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitPointer_type(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitPointer_type(this); + else return visitor.visitChildren(this); + } + } + + public final Pointer_typeContext pointer_type() throws RecognitionException { + Pointer_typeContext _localctx = new Pointer_typeContext(_ctx, getState()); + enterRule(_localctx, 326, RULE_pointer_type); + int _la; + try { + setState(2036); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BOOL: + case BY: + case BYTE: + case CHAR: + case DECIMAL: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case STRING: + case UINT: + case ULONG: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(2023); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOL: + case BYTE: + case CHAR: + case DECIMAL: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SBYTE: + case SHORT: + case UINT: + case ULONG: + case USHORT: + { + setState(2021); + simple_type(); + } + break; + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BY: + case DESCENDING: + case DYNAMIC: + case EQUALS: + case FROM: + case GET: + case GROUP: + case INTO: + case JOIN: + case LET: + case NAMEOF: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SELECT: + case SET: + case STRING: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + { + setState(2022); + class_type(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(2029); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==OPEN_BRACKET || _la==INTERR) { + { + setState(2027); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACKET: + { + setState(2025); + rank_specifier(); + } + break; + case INTERR: + { + setState(2026); + match(INTERR); + } + break; + default: + throw new NoViableAltException(this); + } + } + setState(2031); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2032); + match(STAR); + } + break; + case VOID: + enterOuterAlt(_localctx, 2); + { + setState(2034); + match(VOID); + setState(2035); + match(STAR); + } + 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 static class Fixed_pointer_declaratorsContext extends ParserRuleContext { + public List fixed_pointer_declarator() { + return getRuleContexts(Fixed_pointer_declaratorContext.class); + } + public Fixed_pointer_declaratorContext fixed_pointer_declarator(int i) { + return getRuleContext(Fixed_pointer_declaratorContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public Fixed_pointer_declaratorsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixed_pointer_declarators; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFixed_pointer_declarators(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFixed_pointer_declarators(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFixed_pointer_declarators(this); + else return visitor.visitChildren(this); + } + } + + public final Fixed_pointer_declaratorsContext fixed_pointer_declarators() throws RecognitionException { + Fixed_pointer_declaratorsContext _localctx = new Fixed_pointer_declaratorsContext(_ctx, getState()); + enterRule(_localctx, 328, RULE_fixed_pointer_declarators); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2038); + fixed_pointer_declarator(); + setState(2043); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2039); + match(COMMA); + setState(2040); + fixed_pointer_declarator(); + } + } + setState(2045); + _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 class Fixed_pointer_declaratorContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public Fixed_pointer_initializerContext fixed_pointer_initializer() { + return getRuleContext(Fixed_pointer_initializerContext.class,0); + } + public Fixed_pointer_declaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixed_pointer_declarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFixed_pointer_declarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFixed_pointer_declarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFixed_pointer_declarator(this); + else return visitor.visitChildren(this); + } + } + + public final Fixed_pointer_declaratorContext fixed_pointer_declarator() throws RecognitionException { + Fixed_pointer_declaratorContext _localctx = new Fixed_pointer_declaratorContext(_ctx, getState()); + enterRule(_localctx, 330, RULE_fixed_pointer_declarator); + try { + enterOuterAlt(_localctx, 1); + { + setState(2046); + identifier(); + setState(2047); + match(ASSIGNMENT); + setState(2048); + fixed_pointer_initializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fixed_pointer_initializerContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Local_variable_initializer_unsafeContext local_variable_initializer_unsafe() { + return getRuleContext(Local_variable_initializer_unsafeContext.class,0); + } + public Fixed_pointer_initializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixed_pointer_initializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFixed_pointer_initializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFixed_pointer_initializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFixed_pointer_initializer(this); + else return visitor.visitChildren(this); + } + } + + public final Fixed_pointer_initializerContext fixed_pointer_initializer() throws RecognitionException { + Fixed_pointer_initializerContext _localctx = new Fixed_pointer_initializerContext(_ctx, getState()); + enterRule(_localctx, 332, RULE_fixed_pointer_initializer); + try { + setState(2055); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(2051); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,249,_ctx) ) { + case 1: + { + setState(2050); + match(AMP); + } + break; + } + setState(2053); + expression(); + } + break; + case STACKALLOC: + enterOuterAlt(_localctx, 2); + { + setState(2054); + local_variable_initializer_unsafe(); + } + 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 static class Fixed_size_buffer_declaratorContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Fixed_size_buffer_declaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fixed_size_buffer_declarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterFixed_size_buffer_declarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitFixed_size_buffer_declarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitFixed_size_buffer_declarator(this); + else return visitor.visitChildren(this); + } + } + + public final Fixed_size_buffer_declaratorContext fixed_size_buffer_declarator() throws RecognitionException { + Fixed_size_buffer_declaratorContext _localctx = new Fixed_size_buffer_declaratorContext(_ctx, getState()); + enterRule(_localctx, 334, RULE_fixed_size_buffer_declarator); + try { + enterOuterAlt(_localctx, 1); + { + setState(2057); + identifier(); + setState(2058); + match(OPEN_BRACKET); + setState(2059); + expression(); + setState(2060); + match(CLOSE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Local_variable_initializer_unsafeContext extends ParserRuleContext { + public TerminalNode STACKALLOC() { return getToken(CSharpParser.STACKALLOC, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Local_variable_initializer_unsafeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_local_variable_initializer_unsafe; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLocal_variable_initializer_unsafe(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLocal_variable_initializer_unsafe(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLocal_variable_initializer_unsafe(this); + else return visitor.visitChildren(this); + } + } + + public final Local_variable_initializer_unsafeContext local_variable_initializer_unsafe() throws RecognitionException { + Local_variable_initializer_unsafeContext _localctx = new Local_variable_initializer_unsafeContext(_ctx, getState()); + enterRule(_localctx, 336, RULE_local_variable_initializer_unsafe); + try { + enterOuterAlt(_localctx, 1); + { + setState(2062); + match(STACKALLOC); + setState(2063); + type(); + setState(2064); + match(OPEN_BRACKET); + setState(2065); + expression(); + setState(2066); + match(CLOSE_BRACKET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Right_arrowContext extends ParserRuleContext { + public Token first; + public Token second; + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public TerminalNode GT() { return getToken(CSharpParser.GT, 0); } + public Right_arrowContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_right_arrow; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterRight_arrow(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitRight_arrow(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitRight_arrow(this); + else return visitor.visitChildren(this); + } + } + + public final Right_arrowContext right_arrow() throws RecognitionException { + Right_arrowContext _localctx = new Right_arrowContext(_ctx, getState()); + enterRule(_localctx, 338, RULE_right_arrow); + try { + enterOuterAlt(_localctx, 1); + { + setState(2068); + ((Right_arrowContext)_localctx).first = match(ASSIGNMENT); + setState(2069); + ((Right_arrowContext)_localctx).second = match(GT); + setState(2070); + if (!((((Right_arrowContext)_localctx).first!=null?((Right_arrowContext)_localctx).first.getTokenIndex():0) + 1 == (((Right_arrowContext)_localctx).second!=null?((Right_arrowContext)_localctx).second.getTokenIndex():0))) throw new FailedPredicateException(this, "$first.index + 1 == $second.index"); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Right_shiftContext extends ParserRuleContext { + public Token first; + public Token second; + public List GT() { return getTokens(CSharpParser.GT); } + public TerminalNode GT(int i) { + return getToken(CSharpParser.GT, i); + } + public Right_shiftContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_right_shift; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterRight_shift(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitRight_shift(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitRight_shift(this); + else return visitor.visitChildren(this); + } + } + + public final Right_shiftContext right_shift() throws RecognitionException { + Right_shiftContext _localctx = new Right_shiftContext(_ctx, getState()); + enterRule(_localctx, 340, RULE_right_shift); + try { + enterOuterAlt(_localctx, 1); + { + setState(2072); + ((Right_shiftContext)_localctx).first = match(GT); + setState(2073); + ((Right_shiftContext)_localctx).second = match(GT); + setState(2074); + if (!((((Right_shiftContext)_localctx).first!=null?((Right_shiftContext)_localctx).first.getTokenIndex():0) + 1 == (((Right_shiftContext)_localctx).second!=null?((Right_shiftContext)_localctx).second.getTokenIndex():0))) throw new FailedPredicateException(this, "$first.index + 1 == $second.index"); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Right_shift_assignmentContext extends ParserRuleContext { + public Token first; + public Token second; + public TerminalNode GT() { return getToken(CSharpParser.GT, 0); } + public Right_shift_assignmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_right_shift_assignment; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterRight_shift_assignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitRight_shift_assignment(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitRight_shift_assignment(this); + else return visitor.visitChildren(this); + } + } + + public final Right_shift_assignmentContext right_shift_assignment() throws RecognitionException { + Right_shift_assignmentContext _localctx = new Right_shift_assignmentContext(_ctx, getState()); + enterRule(_localctx, 342, RULE_right_shift_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(2076); + ((Right_shift_assignmentContext)_localctx).first = match(GT); + setState(2077); + ((Right_shift_assignmentContext)_localctx).second = match(OP_GE); + setState(2078); + if (!((((Right_shift_assignmentContext)_localctx).first!=null?((Right_shift_assignmentContext)_localctx).first.getTokenIndex():0) + 1 == (((Right_shift_assignmentContext)_localctx).second!=null?((Right_shift_assignmentContext)_localctx).second.getTokenIndex():0))) throw new FailedPredicateException(this, "$first.index + 1 == $second.index"); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LiteralContext extends ParserRuleContext { + public Boolean_literalContext boolean_literal() { + return getRuleContext(Boolean_literalContext.class,0); + } + public String_literalContext string_literal() { + return getRuleContext(String_literalContext.class,0); + } + public TerminalNode INTEGER_LITERAL() { return getToken(CSharpParser.INTEGER_LITERAL, 0); } + public TerminalNode HEX_INTEGER_LITERAL() { return getToken(CSharpParser.HEX_INTEGER_LITERAL, 0); } + public TerminalNode REAL_LITERAL() { return getToken(CSharpParser.REAL_LITERAL, 0); } + public TerminalNode CHARACTER_LITERAL() { return getToken(CSharpParser.CHARACTER_LITERAL, 0); } + public TerminalNode NULL() { return getToken(CSharpParser.NULL, 0); } + public LiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitLiteral(this); + else return visitor.visitChildren(this); + } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 344, RULE_literal); + try { + setState(2087); + _errHandler.sync(this); + switch (_input.LA(1)) { + case FALSE: + case TRUE: + enterOuterAlt(_localctx, 1); + { + setState(2080); + boolean_literal(); + } + break; + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + enterOuterAlt(_localctx, 2); + { + setState(2081); + string_literal(); + } + break; + case INTEGER_LITERAL: + enterOuterAlt(_localctx, 3); + { + setState(2082); + match(INTEGER_LITERAL); + } + break; + case HEX_INTEGER_LITERAL: + enterOuterAlt(_localctx, 4); + { + setState(2083); + match(HEX_INTEGER_LITERAL); + } + break; + case REAL_LITERAL: + enterOuterAlt(_localctx, 5); + { + setState(2084); + match(REAL_LITERAL); + } + break; + case CHARACTER_LITERAL: + enterOuterAlt(_localctx, 6); + { + setState(2085); + match(CHARACTER_LITERAL); + } + break; + case NULL: + enterOuterAlt(_localctx, 7); + { + setState(2086); + match(NULL); + } + 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 static class Boolean_literalContext extends ParserRuleContext { + public TerminalNode TRUE() { return getToken(CSharpParser.TRUE, 0); } + public TerminalNode FALSE() { return getToken(CSharpParser.FALSE, 0); } + public Boolean_literalContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_boolean_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterBoolean_literal(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitBoolean_literal(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitBoolean_literal(this); + else return visitor.visitChildren(this); + } + } + + public final Boolean_literalContext boolean_literal() throws RecognitionException { + Boolean_literalContext _localctx = new Boolean_literalContext(_ctx, getState()); + enterRule(_localctx, 346, RULE_boolean_literal); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2089); + _la = _input.LA(1); + if ( !(_la==FALSE || _la==TRUE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class String_literalContext extends ParserRuleContext { + public Interpolated_regular_stringContext interpolated_regular_string() { + return getRuleContext(Interpolated_regular_stringContext.class,0); + } + public Interpolated_verbatium_stringContext interpolated_verbatium_string() { + return getRuleContext(Interpolated_verbatium_stringContext.class,0); + } + public TerminalNode REGULAR_STRING() { return getToken(CSharpParser.REGULAR_STRING, 0); } + public TerminalNode VERBATIUM_STRING() { return getToken(CSharpParser.VERBATIUM_STRING, 0); } + public String_literalContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_string_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterString_literal(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitString_literal(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitString_literal(this); + else return visitor.visitChildren(this); + } + } + + public final String_literalContext string_literal() throws RecognitionException { + String_literalContext _localctx = new String_literalContext(_ctx, getState()); + enterRule(_localctx, 348, RULE_string_literal); + try { + setState(2095); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INTERPOLATED_REGULAR_STRING_START: + enterOuterAlt(_localctx, 1); + { + setState(2091); + interpolated_regular_string(); + } + break; + case INTERPOLATED_VERBATIUM_STRING_START: + enterOuterAlt(_localctx, 2); + { + setState(2092); + interpolated_verbatium_string(); + } + break; + case REGULAR_STRING: + enterOuterAlt(_localctx, 3); + { + setState(2093); + match(REGULAR_STRING); + } + break; + case VERBATIUM_STRING: + enterOuterAlt(_localctx, 4); + { + setState(2094); + match(VERBATIUM_STRING); + } + 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 static class Interpolated_regular_stringContext extends ParserRuleContext { + public TerminalNode INTERPOLATED_REGULAR_STRING_START() { return getToken(CSharpParser.INTERPOLATED_REGULAR_STRING_START, 0); } + public TerminalNode DOUBLE_QUOTE_INSIDE() { return getToken(CSharpParser.DOUBLE_QUOTE_INSIDE, 0); } + public List interpolated_regular_string_part() { + return getRuleContexts(Interpolated_regular_string_partContext.class); + } + public Interpolated_regular_string_partContext interpolated_regular_string_part(int i) { + return getRuleContext(Interpolated_regular_string_partContext.class,i); + } + public Interpolated_regular_stringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interpolated_regular_string; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterpolated_regular_string(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterpolated_regular_string(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterpolated_regular_string(this); + else return visitor.visitChildren(this); + } + } + + public final Interpolated_regular_stringContext interpolated_regular_string() throws RecognitionException { + Interpolated_regular_stringContext _localctx = new Interpolated_regular_stringContext(_ctx, getState()); + enterRule(_localctx, 350, RULE_interpolated_regular_string); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2097); + match(INTERPOLATED_REGULAR_STRING_START); + setState(2101); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)) | (1L << (DOUBLE_CURLY_INSIDE - 131)) | (1L << (REGULAR_CHAR_INSIDE - 131)) | (1L << (REGULAR_STRING_INSIDE - 131)))) != 0)) { + { + { + setState(2098); + interpolated_regular_string_part(); + } + } + setState(2103); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2104); + match(DOUBLE_QUOTE_INSIDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Interpolated_verbatium_stringContext extends ParserRuleContext { + public TerminalNode INTERPOLATED_VERBATIUM_STRING_START() { return getToken(CSharpParser.INTERPOLATED_VERBATIUM_STRING_START, 0); } + public TerminalNode DOUBLE_QUOTE_INSIDE() { return getToken(CSharpParser.DOUBLE_QUOTE_INSIDE, 0); } + public List interpolated_verbatium_string_part() { + return getRuleContexts(Interpolated_verbatium_string_partContext.class); + } + public Interpolated_verbatium_string_partContext interpolated_verbatium_string_part(int i) { + return getRuleContext(Interpolated_verbatium_string_partContext.class,i); + } + public Interpolated_verbatium_stringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interpolated_verbatium_string; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterpolated_verbatium_string(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterpolated_verbatium_string(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterpolated_verbatium_string(this); + else return visitor.visitChildren(this); + } + } + + public final Interpolated_verbatium_stringContext interpolated_verbatium_string() throws RecognitionException { + Interpolated_verbatium_stringContext _localctx = new Interpolated_verbatium_stringContext(_ctx, getState()); + enterRule(_localctx, 352, RULE_interpolated_verbatium_string); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2106); + match(INTERPOLATED_VERBATIUM_STRING_START); + setState(2110); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (PARTIAL - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)) | (1L << (DOUBLE_CURLY_INSIDE - 131)) | (1L << (VERBATIUM_DOUBLE_QUOTE_INSIDE - 131)) | (1L << (VERBATIUM_INSIDE_STRING - 131)))) != 0)) { + { + { + setState(2107); + interpolated_verbatium_string_part(); + } + } + setState(2112); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2113); + match(DOUBLE_QUOTE_INSIDE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Interpolated_regular_string_partContext extends ParserRuleContext { + public Interpolated_string_expressionContext interpolated_string_expression() { + return getRuleContext(Interpolated_string_expressionContext.class,0); + } + public TerminalNode DOUBLE_CURLY_INSIDE() { return getToken(CSharpParser.DOUBLE_CURLY_INSIDE, 0); } + public TerminalNode REGULAR_CHAR_INSIDE() { return getToken(CSharpParser.REGULAR_CHAR_INSIDE, 0); } + public TerminalNode REGULAR_STRING_INSIDE() { return getToken(CSharpParser.REGULAR_STRING_INSIDE, 0); } + public Interpolated_regular_string_partContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interpolated_regular_string_part; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterpolated_regular_string_part(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterpolated_regular_string_part(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterpolated_regular_string_part(this); + else return visitor.visitChildren(this); + } + } + + public final Interpolated_regular_string_partContext interpolated_regular_string_part() throws RecognitionException { + Interpolated_regular_string_partContext _localctx = new Interpolated_regular_string_partContext(_ctx, getState()); + enterRule(_localctx, 354, RULE_interpolated_regular_string_part); + try { + setState(2119); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(2115); + interpolated_string_expression(); + } + break; + case DOUBLE_CURLY_INSIDE: + enterOuterAlt(_localctx, 2); + { + setState(2116); + match(DOUBLE_CURLY_INSIDE); + } + break; + case REGULAR_CHAR_INSIDE: + enterOuterAlt(_localctx, 3); + { + setState(2117); + match(REGULAR_CHAR_INSIDE); + } + break; + case REGULAR_STRING_INSIDE: + enterOuterAlt(_localctx, 4); + { + setState(2118); + match(REGULAR_STRING_INSIDE); + } + 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 static class Interpolated_verbatium_string_partContext extends ParserRuleContext { + public Interpolated_string_expressionContext interpolated_string_expression() { + return getRuleContext(Interpolated_string_expressionContext.class,0); + } + public TerminalNode DOUBLE_CURLY_INSIDE() { return getToken(CSharpParser.DOUBLE_CURLY_INSIDE, 0); } + public TerminalNode VERBATIUM_DOUBLE_QUOTE_INSIDE() { return getToken(CSharpParser.VERBATIUM_DOUBLE_QUOTE_INSIDE, 0); } + public TerminalNode VERBATIUM_INSIDE_STRING() { return getToken(CSharpParser.VERBATIUM_INSIDE_STRING, 0); } + public Interpolated_verbatium_string_partContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interpolated_verbatium_string_part; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterpolated_verbatium_string_part(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterpolated_verbatium_string_part(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterpolated_verbatium_string_part(this); + else return visitor.visitChildren(this); + } + } + + public final Interpolated_verbatium_string_partContext interpolated_verbatium_string_part() throws RecognitionException { + Interpolated_verbatium_string_partContext _localctx = new Interpolated_verbatium_string_partContext(_ctx, getState()); + enterRule(_localctx, 356, RULE_interpolated_verbatium_string_part); + try { + setState(2125); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ADD: + case ALIAS: + case ARGLIST: + case ASCENDING: + case ASYNC: + case AWAIT: + case BASE: + case BOOL: + case BY: + case BYTE: + case CHAR: + case CHECKED: + case DECIMAL: + case DEFAULT: + case DELEGATE: + case DESCENDING: + case DOUBLE: + case DYNAMIC: + case EQUALS: + case FALSE: + case FLOAT: + case FROM: + case GET: + case GROUP: + case INT: + case INTO: + case JOIN: + case LET: + case LONG: + case NAMEOF: + case NEW: + case NULL: + case OBJECT: + case ON: + case ORDERBY: + case PARTIAL: + case REMOVE: + case SBYTE: + case SELECT: + case SET: + case SHORT: + case SIZEOF: + case STRING: + case THIS: + case TRUE: + case TYPEOF: + case UINT: + case ULONG: + case UNCHECKED: + case USHORT: + case WHEN: + case WHERE: + case YIELD: + case IDENTIFIER: + case LITERAL_ACCESS: + case INTEGER_LITERAL: + case HEX_INTEGER_LITERAL: + case REAL_LITERAL: + case CHARACTER_LITERAL: + case REGULAR_STRING: + case VERBATIUM_STRING: + case INTERPOLATED_REGULAR_STRING_START: + case INTERPOLATED_VERBATIUM_STRING_START: + case OPEN_PARENS: + case PLUS: + case MINUS: + case STAR: + case AMP: + case BANG: + case TILDE: + case OP_INC: + case OP_DEC: + enterOuterAlt(_localctx, 1); + { + setState(2121); + interpolated_string_expression(); + } + break; + case DOUBLE_CURLY_INSIDE: + enterOuterAlt(_localctx, 2); + { + setState(2122); + match(DOUBLE_CURLY_INSIDE); + } + break; + case VERBATIUM_DOUBLE_QUOTE_INSIDE: + enterOuterAlt(_localctx, 3); + { + setState(2123); + match(VERBATIUM_DOUBLE_QUOTE_INSIDE); + } + break; + case VERBATIUM_INSIDE_STRING: + enterOuterAlt(_localctx, 4); + { + setState(2124); + match(VERBATIUM_INSIDE_STRING); + } + 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 static class Interpolated_string_expressionContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List COMMA() { return getTokens(CSharpParser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(CSharpParser.COMMA, i); + } + public TerminalNode COLON() { return getToken(CSharpParser.COLON, 0); } + public List FORMAT_STRING() { return getTokens(CSharpParser.FORMAT_STRING); } + public TerminalNode FORMAT_STRING(int i) { + return getToken(CSharpParser.FORMAT_STRING, i); + } + public Interpolated_string_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interpolated_string_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterpolated_string_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterpolated_string_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterpolated_string_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Interpolated_string_expressionContext interpolated_string_expression() throws RecognitionException { + Interpolated_string_expressionContext _localctx = new Interpolated_string_expressionContext(_ctx, getState()); + enterRule(_localctx, 358, RULE_interpolated_string_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2127); + expression(); + setState(2132); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(2128); + match(COMMA); + setState(2129); + expression(); + } + } + setState(2134); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(2141); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLON) { + { + setState(2135); + match(COLON); + setState(2137); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(2136); + match(FORMAT_STRING); + } + } + setState(2139); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==FORMAT_STRING ); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class KeywordContext extends ParserRuleContext { + public TerminalNode ABSTRACT() { return getToken(CSharpParser.ABSTRACT, 0); } + public TerminalNode AS() { return getToken(CSharpParser.AS, 0); } + public TerminalNode BASE() { return getToken(CSharpParser.BASE, 0); } + public TerminalNode BOOL() { return getToken(CSharpParser.BOOL, 0); } + public TerminalNode BREAK() { return getToken(CSharpParser.BREAK, 0); } + public TerminalNode BYTE() { return getToken(CSharpParser.BYTE, 0); } + public TerminalNode CASE() { return getToken(CSharpParser.CASE, 0); } + public TerminalNode CATCH() { return getToken(CSharpParser.CATCH, 0); } + public TerminalNode CHAR() { return getToken(CSharpParser.CHAR, 0); } + public TerminalNode CHECKED() { return getToken(CSharpParser.CHECKED, 0); } + public TerminalNode CLASS() { return getToken(CSharpParser.CLASS, 0); } + public TerminalNode CONST() { return getToken(CSharpParser.CONST, 0); } + public TerminalNode CONTINUE() { return getToken(CSharpParser.CONTINUE, 0); } + public TerminalNode DECIMAL() { return getToken(CSharpParser.DECIMAL, 0); } + public TerminalNode DEFAULT() { return getToken(CSharpParser.DEFAULT, 0); } + public TerminalNode DELEGATE() { return getToken(CSharpParser.DELEGATE, 0); } + public TerminalNode DO() { return getToken(CSharpParser.DO, 0); } + public TerminalNode DOUBLE() { return getToken(CSharpParser.DOUBLE, 0); } + public TerminalNode ELSE() { return getToken(CSharpParser.ELSE, 0); } + public TerminalNode ENUM() { return getToken(CSharpParser.ENUM, 0); } + public TerminalNode EVENT() { return getToken(CSharpParser.EVENT, 0); } + public TerminalNode EXPLICIT() { return getToken(CSharpParser.EXPLICIT, 0); } + public TerminalNode EXTERN() { return getToken(CSharpParser.EXTERN, 0); } + public TerminalNode FALSE() { return getToken(CSharpParser.FALSE, 0); } + public TerminalNode FINALLY() { return getToken(CSharpParser.FINALLY, 0); } + public TerminalNode FIXED() { return getToken(CSharpParser.FIXED, 0); } + public TerminalNode FLOAT() { return getToken(CSharpParser.FLOAT, 0); } + public TerminalNode FOR() { return getToken(CSharpParser.FOR, 0); } + public TerminalNode FOREACH() { return getToken(CSharpParser.FOREACH, 0); } + public TerminalNode GOTO() { return getToken(CSharpParser.GOTO, 0); } + public TerminalNode IF() { return getToken(CSharpParser.IF, 0); } + public TerminalNode IMPLICIT() { return getToken(CSharpParser.IMPLICIT, 0); } + public TerminalNode IN() { return getToken(CSharpParser.IN, 0); } + public TerminalNode INT() { return getToken(CSharpParser.INT, 0); } + public TerminalNode INTERFACE() { return getToken(CSharpParser.INTERFACE, 0); } + public TerminalNode INTERNAL() { return getToken(CSharpParser.INTERNAL, 0); } + public TerminalNode IS() { return getToken(CSharpParser.IS, 0); } + public TerminalNode LOCK() { return getToken(CSharpParser.LOCK, 0); } + public TerminalNode LONG() { return getToken(CSharpParser.LONG, 0); } + public TerminalNode NAMESPACE() { return getToken(CSharpParser.NAMESPACE, 0); } + public TerminalNode NEW() { return getToken(CSharpParser.NEW, 0); } + public TerminalNode NULL() { return getToken(CSharpParser.NULL, 0); } + public TerminalNode OBJECT() { return getToken(CSharpParser.OBJECT, 0); } + public TerminalNode OPERATOR() { return getToken(CSharpParser.OPERATOR, 0); } + public TerminalNode OUT() { return getToken(CSharpParser.OUT, 0); } + public TerminalNode OVERRIDE() { return getToken(CSharpParser.OVERRIDE, 0); } + public TerminalNode PARAMS() { return getToken(CSharpParser.PARAMS, 0); } + public TerminalNode PRIVATE() { return getToken(CSharpParser.PRIVATE, 0); } + public TerminalNode PROTECTED() { return getToken(CSharpParser.PROTECTED, 0); } + public TerminalNode PUBLIC() { return getToken(CSharpParser.PUBLIC, 0); } + public TerminalNode READONLY() { return getToken(CSharpParser.READONLY, 0); } + public TerminalNode REF() { return getToken(CSharpParser.REF, 0); } + public TerminalNode RETURN() { return getToken(CSharpParser.RETURN, 0); } + public TerminalNode SBYTE() { return getToken(CSharpParser.SBYTE, 0); } + public TerminalNode SEALED() { return getToken(CSharpParser.SEALED, 0); } + public TerminalNode SHORT() { return getToken(CSharpParser.SHORT, 0); } + public TerminalNode SIZEOF() { return getToken(CSharpParser.SIZEOF, 0); } + public TerminalNode STACKALLOC() { return getToken(CSharpParser.STACKALLOC, 0); } + public TerminalNode STATIC() { return getToken(CSharpParser.STATIC, 0); } + public TerminalNode STRING() { return getToken(CSharpParser.STRING, 0); } + public TerminalNode STRUCT() { return getToken(CSharpParser.STRUCT, 0); } + public TerminalNode SWITCH() { return getToken(CSharpParser.SWITCH, 0); } + public TerminalNode THIS() { return getToken(CSharpParser.THIS, 0); } + public TerminalNode THROW() { return getToken(CSharpParser.THROW, 0); } + public TerminalNode TRUE() { return getToken(CSharpParser.TRUE, 0); } + public TerminalNode TRY() { return getToken(CSharpParser.TRY, 0); } + public TerminalNode TYPEOF() { return getToken(CSharpParser.TYPEOF, 0); } + public TerminalNode UINT() { return getToken(CSharpParser.UINT, 0); } + public TerminalNode ULONG() { return getToken(CSharpParser.ULONG, 0); } + public TerminalNode UNCHECKED() { return getToken(CSharpParser.UNCHECKED, 0); } + public TerminalNode UNSAFE() { return getToken(CSharpParser.UNSAFE, 0); } + public TerminalNode USHORT() { return getToken(CSharpParser.USHORT, 0); } + public TerminalNode USING() { return getToken(CSharpParser.USING, 0); } + public TerminalNode VIRTUAL() { return getToken(CSharpParser.VIRTUAL, 0); } + public TerminalNode VOID() { return getToken(CSharpParser.VOID, 0); } + public TerminalNode VOLATILE() { return getToken(CSharpParser.VOLATILE, 0); } + public TerminalNode WHILE() { return getToken(CSharpParser.WHILE, 0); } + public KeywordContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_keyword; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterKeyword(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitKeyword(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitKeyword(this); + else return visitor.visitChildren(this); + } + } + + public final KeywordContext keyword() throws RecognitionException { + KeywordContext _localctx = new KeywordContext(_ctx, getState()); + enterRule(_localctx, 360, RULE_keyword); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2143); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABSTRACT) | (1L << AS) | (1L << BASE) | (1L << BOOL) | (1L << BREAK) | (1L << BYTE) | (1L << CASE) | (1L << CATCH) | (1L << CHAR) | (1L << CHECKED) | (1L << CLASS) | (1L << CONST) | (1L << CONTINUE) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DO) | (1L << DOUBLE) | (1L << ELSE) | (1L << ENUM) | (1L << EVENT) | (1L << EXPLICIT) | (1L << EXTERN) | (1L << FALSE) | (1L << FINALLY) | (1L << FIXED) | (1L << FLOAT) | (1L << FOR) | (1L << FOREACH) | (1L << GOTO) | (1L << IF) | (1L << IMPLICIT) | (1L << IN) | (1L << INT) | (1L << INTERFACE) | (1L << INTERNAL) | (1L << IS) | (1L << LOCK) | (1L << LONG))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (NAMESPACE - 64)) | (1L << (NEW - 64)) | (1L << (NULL - 64)) | (1L << (OBJECT - 64)) | (1L << (OPERATOR - 64)) | (1L << (OUT - 64)) | (1L << (OVERRIDE - 64)) | (1L << (PARAMS - 64)) | (1L << (PRIVATE - 64)) | (1L << (PROTECTED - 64)) | (1L << (PUBLIC - 64)) | (1L << (READONLY - 64)) | (1L << (REF - 64)) | (1L << (RETURN - 64)) | (1L << (SBYTE - 64)) | (1L << (SEALED - 64)) | (1L << (SHORT - 64)) | (1L << (SIZEOF - 64)) | (1L << (STACKALLOC - 64)) | (1L << (STATIC - 64)) | (1L << (STRING - 64)) | (1L << (STRUCT - 64)) | (1L << (SWITCH - 64)) | (1L << (THIS - 64)) | (1L << (THROW - 64)) | (1L << (TRUE - 64)) | (1L << (TRY - 64)) | (1L << (TYPEOF - 64)) | (1L << (UINT - 64)) | (1L << (ULONG - 64)) | (1L << (UNCHECKED - 64)) | (1L << (UNSAFE - 64)) | (1L << (USHORT - 64)) | (1L << (USING - 64)) | (1L << (VIRTUAL - 64)) | (1L << (VOID - 64)) | (1L << (VOLATILE - 64)) | (1L << (WHILE - 64)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Class_definitionContext extends ParserRuleContext { + public TerminalNode CLASS() { return getToken(CSharpParser.CLASS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Class_bodyContext class_body() { + return getRuleContext(Class_bodyContext.class,0); + } + public Type_parameter_listContext type_parameter_list() { + return getRuleContext(Type_parameter_listContext.class,0); + } + public Class_baseContext class_base() { + return getRuleContext(Class_baseContext.class,0); + } + public Type_parameter_constraints_clausesContext type_parameter_constraints_clauses() { + return getRuleContext(Type_parameter_constraints_clausesContext.class,0); + } + public Class_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_class_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterClass_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitClass_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitClass_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Class_definitionContext class_definition() throws RecognitionException { + Class_definitionContext _localctx = new Class_definitionContext(_ctx, getState()); + enterRule(_localctx, 362, RULE_class_definition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2145); + match(CLASS); + setState(2146); + identifier(); + setState(2148); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2147); + type_parameter_list(); + } + } + + setState(2151); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLON) { + { + setState(2150); + class_base(); + } + } + + setState(2154); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2153); + type_parameter_constraints_clauses(); + } + } + + setState(2156); + class_body(); + setState(2158); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMICOLON) { + { + setState(2157); + match(SEMICOLON); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Struct_definitionContext extends ParserRuleContext { + public TerminalNode STRUCT() { return getToken(CSharpParser.STRUCT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Struct_bodyContext struct_body() { + return getRuleContext(Struct_bodyContext.class,0); + } + public Type_parameter_listContext type_parameter_list() { + return getRuleContext(Type_parameter_listContext.class,0); + } + public Struct_interfacesContext struct_interfaces() { + return getRuleContext(Struct_interfacesContext.class,0); + } + public Type_parameter_constraints_clausesContext type_parameter_constraints_clauses() { + return getRuleContext(Type_parameter_constraints_clausesContext.class,0); + } + public Struct_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_struct_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterStruct_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitStruct_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitStruct_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Struct_definitionContext struct_definition() throws RecognitionException { + Struct_definitionContext _localctx = new Struct_definitionContext(_ctx, getState()); + enterRule(_localctx, 364, RULE_struct_definition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2160); + match(STRUCT); + setState(2161); + identifier(); + setState(2163); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2162); + type_parameter_list(); + } + } + + setState(2166); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLON) { + { + setState(2165); + struct_interfaces(); + } + } + + setState(2169); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2168); + type_parameter_constraints_clauses(); + } + } + + setState(2171); + struct_body(); + setState(2173); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMICOLON) { + { + setState(2172); + match(SEMICOLON); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Interface_definitionContext extends ParserRuleContext { + public TerminalNode INTERFACE() { return getToken(CSharpParser.INTERFACE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Interface_bodyContext interface_body() { + return getRuleContext(Interface_bodyContext.class,0); + } + public Variant_type_parameter_listContext variant_type_parameter_list() { + return getRuleContext(Variant_type_parameter_listContext.class,0); + } + public Interface_baseContext interface_base() { + return getRuleContext(Interface_baseContext.class,0); + } + public Type_parameter_constraints_clausesContext type_parameter_constraints_clauses() { + return getRuleContext(Type_parameter_constraints_clausesContext.class,0); + } + public Interface_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interface_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterInterface_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitInterface_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitInterface_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Interface_definitionContext interface_definition() throws RecognitionException { + Interface_definitionContext _localctx = new Interface_definitionContext(_ctx, getState()); + enterRule(_localctx, 366, RULE_interface_definition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2175); + match(INTERFACE); + setState(2176); + identifier(); + setState(2178); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2177); + variant_type_parameter_list(); + } + } + + setState(2181); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLON) { + { + setState(2180); + interface_base(); + } + } + + setState(2184); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2183); + type_parameter_constraints_clauses(); + } + } + + setState(2186); + interface_body(); + setState(2188); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMICOLON) { + { + setState(2187); + match(SEMICOLON); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Enum_definitionContext extends ParserRuleContext { + public TerminalNode ENUM() { return getToken(CSharpParser.ENUM, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public Enum_bodyContext enum_body() { + return getRuleContext(Enum_bodyContext.class,0); + } + public Enum_baseContext enum_base() { + return getRuleContext(Enum_baseContext.class,0); + } + public Enum_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enum_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEnum_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEnum_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEnum_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Enum_definitionContext enum_definition() throws RecognitionException { + Enum_definitionContext _localctx = new Enum_definitionContext(_ctx, getState()); + enterRule(_localctx, 368, RULE_enum_definition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2190); + match(ENUM); + setState(2191); + identifier(); + setState(2193); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLON) { + { + setState(2192); + enum_base(); + } + } + + setState(2195); + enum_body(); + setState(2197); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMICOLON) { + { + setState(2196); + match(SEMICOLON); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Delegate_definitionContext extends ParserRuleContext { + public TerminalNode DELEGATE() { return getToken(CSharpParser.DELEGATE, 0); } + public Return_typeContext return_type() { + return getRuleContext(Return_typeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Variant_type_parameter_listContext variant_type_parameter_list() { + return getRuleContext(Variant_type_parameter_listContext.class,0); + } + public Formal_parameter_listContext formal_parameter_list() { + return getRuleContext(Formal_parameter_listContext.class,0); + } + public Type_parameter_constraints_clausesContext type_parameter_constraints_clauses() { + return getRuleContext(Type_parameter_constraints_clausesContext.class,0); + } + public Delegate_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_delegate_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterDelegate_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitDelegate_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitDelegate_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Delegate_definitionContext delegate_definition() throws RecognitionException { + Delegate_definitionContext _localctx = new Delegate_definitionContext(_ctx, getState()); + enterRule(_localctx, 370, RULE_delegate_definition); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2199); + match(DELEGATE); + setState(2200); + return_type(); + setState(2201); + identifier(); + setState(2203); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2202); + variant_type_parameter_list(); + } + } + + setState(2205); + match(OPEN_PARENS); + setState(2207); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (OBJECT - 67)) | (1L << (ON - 67)) | (1L << (ORDERBY - 67)) | (1L << (OUT - 67)) | (1L << (PARAMS - 67)) | (1L << (PARTIAL - 67)) | (1L << (REF - 67)) | (1L << (REMOVE - 67)) | (1L << (SBYTE - 67)) | (1L << (SELECT - 67)) | (1L << (SET - 67)) | (1L << (SHORT - 67)) | (1L << (STRING - 67)) | (1L << (THIS - 67)) | (1L << (UINT - 67)) | (1L << (ULONG - 67)) | (1L << (USHORT - 67)) | (1L << (VOID - 67)) | (1L << (WHEN - 67)) | (1L << (WHERE - 67)) | (1L << (YIELD - 67)) | (1L << (IDENTIFIER - 67)) | (1L << (OPEN_BRACKET - 67)))) != 0)) { + { + setState(2206); + formal_parameter_list(); + } + } + + setState(2209); + match(CLOSE_PARENS); + setState(2211); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2210); + type_parameter_constraints_clauses(); + } + } + + setState(2213); + match(SEMICOLON); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Event_declarationContext extends ParserRuleContext { + public TerminalNode EVENT() { return getToken(CSharpParser.EVENT, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public Variable_declaratorsContext variable_declarators() { + return getRuleContext(Variable_declaratorsContext.class,0); + } + public Member_nameContext member_name() { + return getRuleContext(Member_nameContext.class,0); + } + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public Event_accessor_declarationsContext event_accessor_declarations() { + return getRuleContext(Event_accessor_declarationsContext.class,0); + } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Event_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_event_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterEvent_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitEvent_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitEvent_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Event_declarationContext event_declaration() throws RecognitionException { + Event_declarationContext _localctx = new Event_declarationContext(_ctx, getState()); + enterRule(_localctx, 372, RULE_event_declaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(2215); + match(EVENT); + setState(2216); + type(); + setState(2225); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,277,_ctx) ) { + case 1: + { + setState(2217); + variable_declarators(); + setState(2218); + match(SEMICOLON); + } + break; + case 2: + { + setState(2220); + member_name(); + setState(2221); + match(OPEN_BRACE); + setState(2222); + event_accessor_declarations(); + setState(2223); + match(CLOSE_BRACE); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Field_declarationContext extends ParserRuleContext { + public Variable_declaratorsContext variable_declarators() { + return getRuleContext(Variable_declaratorsContext.class,0); + } + public Field_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_field_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterField_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitField_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitField_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Field_declarationContext field_declaration() throws RecognitionException { + Field_declarationContext _localctx = new Field_declarationContext(_ctx, getState()); + enterRule(_localctx, 374, RULE_field_declaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(2227); + variable_declarators(); + setState(2228); + match(SEMICOLON); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Property_declarationContext extends ParserRuleContext { + public Member_nameContext member_name() { + return getRuleContext(Member_nameContext.class,0); + } + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public Accessor_declarationsContext accessor_declarations() { + return getRuleContext(Accessor_declarationsContext.class,0); + } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Right_arrowContext right_arrow() { + return getRuleContext(Right_arrowContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public Variable_initializerContext variable_initializer() { + return getRuleContext(Variable_initializerContext.class,0); + } + public Property_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_property_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterProperty_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitProperty_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitProperty_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Property_declarationContext property_declaration() throws RecognitionException { + Property_declarationContext _localctx = new Property_declarationContext(_ctx, getState()); + enterRule(_localctx, 376, RULE_property_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2230); + member_name(); + setState(2244); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + { + setState(2231); + match(OPEN_BRACE); + setState(2232); + accessor_declarations(); + setState(2233); + match(CLOSE_BRACE); + setState(2238); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGNMENT) { + { + setState(2234); + match(ASSIGNMENT); + setState(2235); + variable_initializer(); + setState(2236); + match(SEMICOLON); + } + } + + } + break; + case ASSIGNMENT: + { + setState(2240); + right_arrow(); + setState(2241); + expression(); + setState(2242); + match(SEMICOLON); + } + 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 static class Constant_declarationContext extends ParserRuleContext { + public TerminalNode CONST() { return getToken(CSharpParser.CONST, 0); } + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public Constant_declaratorsContext constant_declarators() { + return getRuleContext(Constant_declaratorsContext.class,0); + } + public Constant_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constant_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConstant_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConstant_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConstant_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Constant_declarationContext constant_declaration() throws RecognitionException { + Constant_declarationContext _localctx = new Constant_declarationContext(_ctx, getState()); + enterRule(_localctx, 378, RULE_constant_declaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(2246); + match(CONST); + setState(2247); + type(); + setState(2248); + constant_declarators(); + setState(2249); + match(SEMICOLON); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Indexer_declarationContext extends ParserRuleContext { + public TerminalNode THIS() { return getToken(CSharpParser.THIS, 0); } + public Formal_parameter_listContext formal_parameter_list() { + return getRuleContext(Formal_parameter_listContext.class,0); + } + public TerminalNode OPEN_BRACE() { return getToken(CSharpParser.OPEN_BRACE, 0); } + public Accessor_declarationsContext accessor_declarations() { + return getRuleContext(Accessor_declarationsContext.class,0); + } + public TerminalNode CLOSE_BRACE() { return getToken(CSharpParser.CLOSE_BRACE, 0); } + public Right_arrowContext right_arrow() { + return getRuleContext(Right_arrowContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Indexer_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_indexer_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIndexer_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIndexer_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitIndexer_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Indexer_declarationContext indexer_declaration() throws RecognitionException { + Indexer_declarationContext _localctx = new Indexer_declarationContext(_ctx, getState()); + enterRule(_localctx, 380, RULE_indexer_declaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(2251); + match(THIS); + setState(2252); + match(OPEN_BRACKET); + setState(2253); + formal_parameter_list(); + setState(2254); + match(CLOSE_BRACKET); + setState(2263); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + { + setState(2255); + match(OPEN_BRACE); + setState(2256); + accessor_declarations(); + setState(2257); + match(CLOSE_BRACE); + } + break; + case ASSIGNMENT: + { + setState(2259); + right_arrow(); + setState(2260); + expression(); + setState(2261); + match(SEMICOLON); + } + 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 static class Destructor_definitionContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public BodyContext body() { + return getRuleContext(BodyContext.class,0); + } + public Destructor_definitionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_destructor_definition; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterDestructor_definition(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitDestructor_definition(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitDestructor_definition(this); + else return visitor.visitChildren(this); + } + } + + public final Destructor_definitionContext destructor_definition() throws RecognitionException { + Destructor_definitionContext _localctx = new Destructor_definitionContext(_ctx, getState()); + enterRule(_localctx, 382, RULE_destructor_definition); + try { + enterOuterAlt(_localctx, 1); + { + setState(2265); + match(TILDE); + setState(2266); + identifier(); + setState(2267); + match(OPEN_PARENS); + setState(2268); + match(CLOSE_PARENS); + setState(2269); + body(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Constructor_declarationContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public BodyContext body() { + return getRuleContext(BodyContext.class,0); + } + public Formal_parameter_listContext formal_parameter_list() { + return getRuleContext(Formal_parameter_listContext.class,0); + } + public Constructor_initializerContext constructor_initializer() { + return getRuleContext(Constructor_initializerContext.class,0); + } + public Constructor_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructor_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterConstructor_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitConstructor_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitConstructor_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Constructor_declarationContext constructor_declaration() throws RecognitionException { + Constructor_declarationContext _localctx = new Constructor_declarationContext(_ctx, getState()); + enterRule(_localctx, 384, RULE_constructor_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2271); + identifier(); + setState(2272); + match(OPEN_PARENS); + setState(2274); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (OBJECT - 67)) | (1L << (ON - 67)) | (1L << (ORDERBY - 67)) | (1L << (OUT - 67)) | (1L << (PARAMS - 67)) | (1L << (PARTIAL - 67)) | (1L << (REF - 67)) | (1L << (REMOVE - 67)) | (1L << (SBYTE - 67)) | (1L << (SELECT - 67)) | (1L << (SET - 67)) | (1L << (SHORT - 67)) | (1L << (STRING - 67)) | (1L << (THIS - 67)) | (1L << (UINT - 67)) | (1L << (ULONG - 67)) | (1L << (USHORT - 67)) | (1L << (VOID - 67)) | (1L << (WHEN - 67)) | (1L << (WHERE - 67)) | (1L << (YIELD - 67)) | (1L << (IDENTIFIER - 67)) | (1L << (OPEN_BRACKET - 67)))) != 0)) { + { + setState(2273); + formal_parameter_list(); + } + } + + setState(2276); + match(CLOSE_PARENS); + setState(2278); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLON) { + { + setState(2277); + constructor_initializer(); + } + } + + setState(2280); + body(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Method_declarationContext extends ParserRuleContext { + public Method_member_nameContext method_member_name() { + return getRuleContext(Method_member_nameContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Method_bodyContext method_body() { + return getRuleContext(Method_bodyContext.class,0); + } + public Right_arrowContext right_arrow() { + return getRuleContext(Right_arrowContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Type_parameter_listContext type_parameter_list() { + return getRuleContext(Type_parameter_listContext.class,0); + } + public Formal_parameter_listContext formal_parameter_list() { + return getRuleContext(Formal_parameter_listContext.class,0); + } + public Type_parameter_constraints_clausesContext type_parameter_constraints_clauses() { + return getRuleContext(Type_parameter_constraints_clausesContext.class,0); + } + public Method_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_method_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMethod_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMethod_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMethod_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Method_declarationContext method_declaration() throws RecognitionException { + Method_declarationContext _localctx = new Method_declarationContext(_ctx, getState()); + enterRule(_localctx, 386, RULE_method_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2282); + method_member_name(); + setState(2284); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2283); + type_parameter_list(); + } + } + + setState(2286); + match(OPEN_PARENS); + setState(2288); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << DECIMAL) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & ((1L << (OBJECT - 67)) | (1L << (ON - 67)) | (1L << (ORDERBY - 67)) | (1L << (OUT - 67)) | (1L << (PARAMS - 67)) | (1L << (PARTIAL - 67)) | (1L << (REF - 67)) | (1L << (REMOVE - 67)) | (1L << (SBYTE - 67)) | (1L << (SELECT - 67)) | (1L << (SET - 67)) | (1L << (SHORT - 67)) | (1L << (STRING - 67)) | (1L << (THIS - 67)) | (1L << (UINT - 67)) | (1L << (ULONG - 67)) | (1L << (USHORT - 67)) | (1L << (VOID - 67)) | (1L << (WHEN - 67)) | (1L << (WHERE - 67)) | (1L << (YIELD - 67)) | (1L << (IDENTIFIER - 67)) | (1L << (OPEN_BRACKET - 67)))) != 0)) { + { + setState(2287); + formal_parameter_list(); + } + } + + setState(2290); + match(CLOSE_PARENS); + setState(2292); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==WHERE) { + { + setState(2291); + type_parameter_constraints_clauses(); + } + } + + setState(2299); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + case SEMICOLON: + { + setState(2294); + method_body(); + } + break; + case ASSIGNMENT: + { + setState(2295); + right_arrow(); + setState(2296); + expression(); + setState(2297); + match(SEMICOLON); + } + 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 static class Method_member_nameContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List DOT() { return getTokens(CSharpParser.DOT); } + public TerminalNode DOT(int i) { + return getToken(CSharpParser.DOT, i); + } + public List type_argument_list() { + return getRuleContexts(Type_argument_listContext.class); + } + public Type_argument_listContext type_argument_list(int i) { + return getRuleContext(Type_argument_listContext.class,i); + } + public Method_member_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_method_member_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMethod_member_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMethod_member_name(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMethod_member_name(this); + else return visitor.visitChildren(this); + } + } + + public final Method_member_nameContext method_member_name() throws RecognitionException { + Method_member_nameContext _localctx = new Method_member_nameContext(_ctx, getState()); + enterRule(_localctx, 388, RULE_method_member_name); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(2306); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,287,_ctx) ) { + case 1: + { + setState(2301); + identifier(); + } + break; + case 2: + { + setState(2302); + identifier(); + setState(2303); + match(DOUBLE_COLON); + setState(2304); + identifier(); + } + break; + } + setState(2315); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,289,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(2309); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(2308); + type_argument_list(); + } + } + + setState(2311); + match(DOT); + setState(2312); + identifier(); + } + } + } + setState(2317); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,289,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Operator_declarationContext extends ParserRuleContext { + public TerminalNode OPERATOR() { return getToken(CSharpParser.OPERATOR, 0); } + public Overloadable_operatorContext overloadable_operator() { + return getRuleContext(Overloadable_operatorContext.class,0); + } + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public List arg_declaration() { + return getRuleContexts(Arg_declarationContext.class); + } + public Arg_declarationContext arg_declaration(int i) { + return getRuleContext(Arg_declarationContext.class,i); + } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public BodyContext body() { + return getRuleContext(BodyContext.class,0); + } + public Right_arrowContext right_arrow() { + return getRuleContext(Right_arrowContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode COMMA() { return getToken(CSharpParser.COMMA, 0); } + public Operator_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_operator_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterOperator_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitOperator_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitOperator_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Operator_declarationContext operator_declaration() throws RecognitionException { + Operator_declarationContext _localctx = new Operator_declarationContext(_ctx, getState()); + enterRule(_localctx, 390, RULE_operator_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2318); + match(OPERATOR); + setState(2319); + overloadable_operator(); + setState(2320); + match(OPEN_PARENS); + setState(2321); + arg_declaration(); + setState(2324); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(2322); + match(COMMA); + setState(2323); + arg_declaration(); + } + } + + setState(2326); + match(CLOSE_PARENS); + setState(2332); + _errHandler.sync(this); + switch (_input.LA(1)) { + case OPEN_BRACE: + case SEMICOLON: + { + setState(2327); + body(); + } + break; + case ASSIGNMENT: + { + setState(2328); + right_arrow(); + setState(2329); + expression(); + setState(2330); + match(SEMICOLON); + } + 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 static class Arg_declarationContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGNMENT() { return getToken(CSharpParser.ASSIGNMENT, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public Arg_declarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arg_declaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterArg_declaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitArg_declaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitArg_declaration(this); + else return visitor.visitChildren(this); + } + } + + public final Arg_declarationContext arg_declaration() throws RecognitionException { + Arg_declarationContext _localctx = new Arg_declarationContext(_ctx, getState()); + enterRule(_localctx, 392, RULE_arg_declaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2334); + type(); + setState(2335); + identifier(); + setState(2338); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGNMENT) { + { + setState(2336); + match(ASSIGNMENT); + setState(2337); + expression(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Method_invocationContext extends ParserRuleContext { + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Argument_listContext argument_list() { + return getRuleContext(Argument_listContext.class,0); + } + public Method_invocationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_method_invocation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterMethod_invocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitMethod_invocation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitMethod_invocation(this); + else return visitor.visitChildren(this); + } + } + + public final Method_invocationContext method_invocation() throws RecognitionException { + Method_invocationContext _localctx = new Method_invocationContext(_ctx, getState()); + enterRule(_localctx, 394, RULE_method_invocation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2340); + match(OPEN_PARENS); + setState(2342); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (OUT - 65)) | (1L << (PARTIAL - 65)) | (1L << (REF - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(2341); + argument_list(); + } + } + + setState(2344); + match(CLOSE_PARENS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Object_creation_expressionContext extends ParserRuleContext { + public TerminalNode OPEN_PARENS() { return getToken(CSharpParser.OPEN_PARENS, 0); } + public TerminalNode CLOSE_PARENS() { return getToken(CSharpParser.CLOSE_PARENS, 0); } + public Argument_listContext argument_list() { + return getRuleContext(Argument_listContext.class,0); + } + public Object_or_collection_initializerContext object_or_collection_initializer() { + return getRuleContext(Object_or_collection_initializerContext.class,0); + } + public Object_creation_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_object_creation_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterObject_creation_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitObject_creation_expression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitObject_creation_expression(this); + else return visitor.visitChildren(this); + } + } + + public final Object_creation_expressionContext object_creation_expression() throws RecognitionException { + Object_creation_expressionContext _localctx = new Object_creation_expressionContext(_ctx, getState()); + enterRule(_localctx, 396, RULE_object_creation_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2346); + match(OPEN_PARENS); + setState(2348); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BASE) | (1L << BOOL) | (1L << BY) | (1L << BYTE) | (1L << CHAR) | (1L << CHECKED) | (1L << DECIMAL) | (1L << DEFAULT) | (1L << DELEGATE) | (1L << DESCENDING) | (1L << DOUBLE) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FALSE) | (1L << FLOAT) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INT) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << LONG) | (1L << NAMEOF))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (NEW - 65)) | (1L << (NULL - 65)) | (1L << (OBJECT - 65)) | (1L << (ON - 65)) | (1L << (ORDERBY - 65)) | (1L << (OUT - 65)) | (1L << (PARTIAL - 65)) | (1L << (REF - 65)) | (1L << (REMOVE - 65)) | (1L << (SBYTE - 65)) | (1L << (SELECT - 65)) | (1L << (SET - 65)) | (1L << (SHORT - 65)) | (1L << (SIZEOF - 65)) | (1L << (STRING - 65)) | (1L << (THIS - 65)) | (1L << (TRUE - 65)) | (1L << (TYPEOF - 65)) | (1L << (UINT - 65)) | (1L << (ULONG - 65)) | (1L << (UNCHECKED - 65)) | (1L << (USHORT - 65)) | (1L << (WHEN - 65)) | (1L << (WHERE - 65)) | (1L << (YIELD - 65)) | (1L << (IDENTIFIER - 65)) | (1L << (LITERAL_ACCESS - 65)) | (1L << (INTEGER_LITERAL - 65)) | (1L << (HEX_INTEGER_LITERAL - 65)) | (1L << (REAL_LITERAL - 65)) | (1L << (CHARACTER_LITERAL - 65)) | (1L << (REGULAR_STRING - 65)) | (1L << (VERBATIUM_STRING - 65)) | (1L << (INTERPOLATED_REGULAR_STRING_START - 65)) | (1L << (INTERPOLATED_VERBATIUM_STRING_START - 65)) | (1L << (OPEN_PARENS - 65)))) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (PLUS - 131)) | (1L << (MINUS - 131)) | (1L << (STAR - 131)) | (1L << (AMP - 131)) | (1L << (BANG - 131)) | (1L << (TILDE - 131)) | (1L << (OP_INC - 131)) | (1L << (OP_DEC - 131)))) != 0)) { + { + setState(2347); + argument_list(); + } + } + + setState(2350); + match(CLOSE_PARENS); + setState(2352); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN_BRACE) { + { + setState(2351); + object_or_collection_initializer(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IdentifierContext extends ParserRuleContext { + public TerminalNode IDENTIFIER() { return getToken(CSharpParser.IDENTIFIER, 0); } + public TerminalNode ADD() { return getToken(CSharpParser.ADD, 0); } + public TerminalNode ALIAS() { return getToken(CSharpParser.ALIAS, 0); } + public TerminalNode ARGLIST() { return getToken(CSharpParser.ARGLIST, 0); } + public TerminalNode ASCENDING() { return getToken(CSharpParser.ASCENDING, 0); } + public TerminalNode ASYNC() { return getToken(CSharpParser.ASYNC, 0); } + public TerminalNode AWAIT() { return getToken(CSharpParser.AWAIT, 0); } + public TerminalNode BY() { return getToken(CSharpParser.BY, 0); } + public TerminalNode DESCENDING() { return getToken(CSharpParser.DESCENDING, 0); } + public TerminalNode DYNAMIC() { return getToken(CSharpParser.DYNAMIC, 0); } + public TerminalNode EQUALS() { return getToken(CSharpParser.EQUALS, 0); } + public TerminalNode FROM() { return getToken(CSharpParser.FROM, 0); } + public TerminalNode GET() { return getToken(CSharpParser.GET, 0); } + public TerminalNode GROUP() { return getToken(CSharpParser.GROUP, 0); } + public TerminalNode INTO() { return getToken(CSharpParser.INTO, 0); } + public TerminalNode JOIN() { return getToken(CSharpParser.JOIN, 0); } + public TerminalNode LET() { return getToken(CSharpParser.LET, 0); } + public TerminalNode NAMEOF() { return getToken(CSharpParser.NAMEOF, 0); } + public TerminalNode ON() { return getToken(CSharpParser.ON, 0); } + public TerminalNode ORDERBY() { return getToken(CSharpParser.ORDERBY, 0); } + public TerminalNode PARTIAL() { return getToken(CSharpParser.PARTIAL, 0); } + public TerminalNode REMOVE() { return getToken(CSharpParser.REMOVE, 0); } + public TerminalNode SELECT() { return getToken(CSharpParser.SELECT, 0); } + public TerminalNode SET() { return getToken(CSharpParser.SET, 0); } + public TerminalNode WHEN() { return getToken(CSharpParser.WHEN, 0); } + public TerminalNode WHERE() { return getToken(CSharpParser.WHERE, 0); } + public TerminalNode YIELD() { return getToken(CSharpParser.YIELD, 0); } + public IdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).enterIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof CSharpParserListener ) ((CSharpParserListener)listener).exitIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof CSharpParserVisitor ) return ((CSharpParserVisitor)visitor).visitIdentifier(this); + else return visitor.visitChildren(this); + } + } + + public final IdentifierContext identifier() throws RecognitionException { + IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); + enterRule(_localctx, 398, RULE_identifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(2354); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ALIAS) | (1L << ARGLIST) | (1L << ASCENDING) | (1L << ASYNC) | (1L << AWAIT) | (1L << BY) | (1L << DESCENDING) | (1L << DYNAMIC) | (1L << EQUALS) | (1L << FROM) | (1L << GET) | (1L << GROUP) | (1L << INTO) | (1L << JOIN) | (1L << LET) | (1L << NAMEOF))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (ON - 68)) | (1L << (ORDERBY - 68)) | (1L << (PARTIAL - 68)) | (1L << (REMOVE - 68)) | (1L << (SELECT - 68)) | (1L << (SET - 68)) | (1L << (WHEN - 68)) | (1L << (WHERE - 68)) | (1L << (YIELD - 68)) | (1L << (IDENTIFIER - 68)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 169: + return right_arrow_sempred((Right_arrowContext)_localctx, predIndex); + case 170: + return right_shift_sempred((Right_shiftContext)_localctx, predIndex); + case 171: + return right_shift_assignment_sempred((Right_shift_assignmentContext)_localctx, predIndex); + } + return true; + } + private boolean right_arrow_sempred(Right_arrowContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return (((Right_arrowContext)_localctx).first!=null?((Right_arrowContext)_localctx).first.getTokenIndex():0) + 1 == (((Right_arrowContext)_localctx).second!=null?((Right_arrowContext)_localctx).second.getTokenIndex():0); + } + return true; + } + private boolean right_shift_sempred(Right_shiftContext _localctx, int predIndex) { + switch (predIndex) { + case 1: + return (((Right_shiftContext)_localctx).first!=null?((Right_shiftContext)_localctx).first.getTokenIndex():0) + 1 == (((Right_shiftContext)_localctx).second!=null?((Right_shiftContext)_localctx).second.getTokenIndex():0); + } + return true; + } + private boolean right_shift_assignment_sempred(Right_shift_assignmentContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return (((Right_shift_assignmentContext)_localctx).first!=null?((Right_shift_assignmentContext)_localctx).first.getTokenIndex():0) + 1 == (((Right_shift_assignmentContext)_localctx).second!=null?((Right_shift_assignmentContext)_localctx).second.getTokenIndex():0); + } + return true; + } + + public static final String _serializedATN = + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\u00c1\u0937\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ + "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"+ + "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+ + "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+ + "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+ + "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"+ + "w\tw\4x\tx\4y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080"+ + "\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084\t\u0084\4\u0085"+ + "\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089"+ + "\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e"+ + "\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092"+ + "\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096\4\u0097"+ + "\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b"+ + "\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0"+ + "\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4\t\u00a4"+ + "\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8\4\u00a9"+ + "\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad"+ + "\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1\4\u00b2"+ + "\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6\t\u00b6"+ + "\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb"+ + "\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf"+ + "\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3\4\u00c4"+ + "\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8\t\u00c8"+ + "\4\u00c9\t\u00c9\3\2\5\2\u0194\n\2\3\2\5\2\u0197\n\2\3\2\5\2\u019a\n\2"+ + "\3\2\7\2\u019d\n\2\f\2\16\2\u01a0\13\2\3\2\5\2\u01a3\n\2\3\2\3\2\3\3\3"+ + "\3\5\3\u01a9\n\3\3\3\5\3\u01ac\n\3\3\3\3\3\3\3\5\3\u01b1\n\3\7\3\u01b3"+ + "\n\3\f\3\16\3\u01b6\13\3\3\4\3\4\3\4\3\4\7\4\u01bc\n\4\f\4\16\4\u01bf"+ + "\13\4\3\5\3\5\3\5\3\5\5\5\u01c5\n\5\3\6\3\6\5\6\u01c9\n\6\3\7\3\7\3\7"+ + "\5\7\u01ce\n\7\3\b\3\b\3\t\3\t\3\n\3\n\3\n\3\n\5\n\u01d8\n\n\3\13\3\13"+ + "\3\13\3\13\7\13\u01de\n\13\f\13\16\13\u01e1\13\13\3\13\3\13\3\f\3\f\3"+ + "\f\7\f\u01e8\n\f\f\f\16\f\u01eb\13\f\3\r\3\r\3\r\5\r\u01f0\n\r\3\r\5\r"+ + "\u01f3\n\r\3\r\3\r\3\16\3\16\5\16\u01f9\n\16\3\17\3\17\3\17\5\17\u01fe"+ + "\n\17\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+ + "\3\21\3\21\5\21\u020f\n\21\3\22\3\22\3\22\3\22\3\22\3\22\5\22\u0217\n"+ + "\22\3\23\3\23\3\23\5\23\u021c\n\23\3\24\3\24\3\24\7\24\u0221\n\24\f\24"+ + "\16\24\u0224\13\24\3\25\3\25\3\25\7\25\u0229\n\25\f\25\16\25\u022c\13"+ + "\25\3\26\3\26\3\26\7\26\u0231\n\26\f\26\16\26\u0234\13\26\3\27\3\27\3"+ + "\27\7\27\u0239\n\27\f\27\16\27\u023c\13\27\3\30\3\30\3\30\7\30\u0241\n"+ + "\30\f\30\16\30\u0244\13\30\3\31\3\31\3\31\7\31\u0249\n\31\f\31\16\31\u024c"+ + "\13\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\7\32\u0255\n\32\f\32\16\32\u0258"+ + "\13\32\3\33\3\33\3\33\5\33\u025d\n\33\3\33\7\33\u0260\n\33\f\33\16\33"+ + "\u0263\13\33\3\34\3\34\3\34\7\34\u0268\n\34\f\34\16\34\u026b\13\34\3\35"+ + "\3\35\3\35\7\35\u0270\n\35\f\35\16\35\u0273\13\35\3\36\3\36\3\36\3\36"+ + "\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36"+ + "\3\36\3\36\3\36\3\36\3\36\3\36\5\36\u028d\n\36\3\37\3\37\7\37\u0291\n"+ + "\37\f\37\16\37\u0294\13\37\3\37\3\37\3\37\3\37\3\37\3\37\5\37\u029c\n"+ + "\37\3\37\7\37\u029f\n\37\f\37\16\37\u02a2\13\37\7\37\u02a4\n\37\f\37\16"+ + "\37\u02a7\13\37\3 \3 \3 \5 \u02ac\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 "+ + "\3 \5 \u02ba\n \3 \3 \3 \3 \5 \u02c0\n \3 \3 \3 \3 \3 \3 \3 \3 \7 \u02ca"+ + "\n \f \16 \u02cd\13 \3 \5 \u02d0\n \3 \6 \u02d3\n \r \16 \u02d4\3 \3 "+ + "\5 \u02d9\n \3 \3 \3 \3 \5 \u02df\n \3 \3 \3 \3 \3 \5 \u02e6\n \3 \3 "+ + "\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u02f9\n \3 \3 \3 \5 "+ + "\u02fe\n \3 \5 \u0301\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \7 \u030e\n "+ + "\f \16 \u0311\13 \3 \3 \3 \5 \u0316\n \3!\5!\u0319\n!\3!\3!\3!\5!\u031e"+ + "\n!\3\"\5\"\u0321\n\"\3\"\3\"\3\"\3\"\7\"\u0327\n\"\f\"\16\"\u032a\13"+ + "\"\3\"\3\"\3#\3#\3#\5#\u0331\n#\3#\3#\3$\3$\3%\3%\3%\7%\u033a\n%\f%\16"+ + "%\u033d\13%\3&\3&\5&\u0341\n&\3\'\3\'\3\'\5\'\u0346\n\'\5\'\u0348\n\'"+ + "\3\'\3\'\3(\3(\3(\7(\u034f\n(\f(\16(\u0352\13(\3)\3)\3)\3)\3)\5)\u0359"+ + "\n)\3)\3)\3)\3*\3*\5*\u0360\n*\3+\3+\3+\3+\7+\u0366\n+\f+\16+\u0369\13"+ + "+\3+\5+\u036c\n+\3+\3+\3,\3,\3,\3,\3,\5,\u0375\n,\3-\3-\3-\5-\u037a\n"+ + "-\5-\u037c\n-\3-\3-\3.\3.\3.\7.\u0383\n.\f.\16.\u0386\13.\3/\3/\3/\3/"+ + "\3/\5/\u038d\n/\3\60\3\60\5\60\u0391\n\60\3\60\3\60\3\60\5\60\u0396\n"+ + "\60\5\60\u0398\n\60\3\60\3\60\3\60\5\60\u039d\n\60\7\60\u039f\n\60\f\60"+ + "\16\60\u03a2\13\60\3\61\3\61\7\61\u03a6\n\61\f\61\16\61\u03a9\13\61\3"+ + "\61\3\61\3\62\3\62\3\62\7\62\u03b0\n\62\f\62\16\62\u03b3\13\62\3\62\5"+ + "\62\u03b6\n\62\3\63\5\63\u03b9\n\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64"+ + "\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\5\64\u03ca\n\64\3\65\3\65\3\65"+ + "\7\65\u03cf\n\65\f\65\16\65\u03d2\13\65\3\66\5\66\u03d5\n\66\3\66\3\66"+ + "\3\66\3\67\3\67\3\67\7\67\u03dd\n\67\f\67\16\67\u03e0\13\67\38\38\58\u03e4"+ + "\n8\39\39\39\3:\3:\5:\u03eb\n:\3:\3:\3:\3:\3;\7;\u03f2\n;\f;\16;\u03f5"+ + "\13;\3;\3;\5;\u03f9\n;\3<\3<\3<\3<\3<\5<\u0400\n<\3=\3=\3=\3=\3=\3>\3"+ + ">\3>\3?\3?\5?\u040c\n?\3?\3?\3?\3?\3?\3?\3?\3?\3?\5?\u0417\n?\3@\3@\3"+ + "@\3@\7@\u041d\n@\f@\16@\u0420\13@\3A\3A\5A\u0424\nA\3B\3B\3B\3B\3B\3B"+ + "\3B\5B\u042d\nB\3C\3C\3C\3C\3D\3D\3D\3D\3D\3D\5D\u0439\nD\3D\3D\3D\5D"+ + "\u043e\nD\3E\3E\5E\u0442\nE\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\5F\u044f"+ + "\nF\3F\3F\3F\3F\3F\3F\7F\u0457\nF\fF\16F\u045a\13F\3F\3F\3F\3F\3F\3F\3"+ + "F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\5F\u046f\nF\3F\3F\5F\u0473\nF\3"+ + "F\3F\5F\u0477\nF\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3"+ + "F\3F\3F\5F\u048d\nF\3F\3F\3F\5F\u0492\nF\3F\3F\3F\5F\u0497\nF\3F\3F\3"+ + "F\3F\3F\5F\u049e\nF\3F\5F\u04a1\nF\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3"+ + "F\3F\3F\3F\3F\3F\3F\3F\3F\5F\u04b7\nF\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\5"+ + "F\u04c3\nF\3G\3G\5G\u04c7\nG\3G\3G\3H\3H\3H\3H\7H\u04cf\nH\fH\16H\u04d2"+ + "\13H\3I\3I\3I\5I\u04d7\nI\3J\3J\3J\5J\u04dc\nJ\3K\3K\3K\3K\3L\3L\5L\u04e4"+ + "\nL\3M\6M\u04e7\nM\rM\16M\u04e8\3M\3M\3N\3N\3N\3N\3N\3N\5N\u04f3\nN\3"+ + "O\6O\u04f6\nO\rO\16O\u04f7\3P\3P\3P\3P\7P\u04fe\nP\fP\16P\u0501\13P\5"+ + "P\u0503\nP\3Q\3Q\3Q\7Q\u0508\nQ\fQ\16Q\u050b\13Q\3R\3R\7R\u050f\nR\fR"+ + "\16R\u0512\13R\3R\5R\u0515\nR\3R\5R\u0518\nR\3S\3S\3S\3S\5S\u051e\nS\3"+ + "S\3S\5S\u0522\nS\3S\3S\3T\3T\5T\u0528\nT\3T\3T\3U\3U\3U\3U\3U\3V\3V\3"+ + "V\3W\3W\5W\u0536\nW\3X\3X\3X\3X\5X\u053c\nX\3Y\3Y\3Y\7Y\u0541\nY\fY\16"+ + "Y\u0544\13Y\3Z\3Z\5Z\u0548\nZ\3Z\5Z\u054b\nZ\3Z\5Z\u054e\nZ\3Z\3Z\3[\6"+ + "[\u0553\n[\r[\16[\u0554\3\\\3\\\3\\\3\\\3\\\3]\6]\u055d\n]\r]\16]\u055e"+ + "\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\5^\u0570\n^\3_\6_\u0573"+ + "\n_\r_\16_\u0574\3`\3`\5`\u0579\n`\3a\5a\u057c\na\3a\5a\u057f\na\3a\3"+ + "a\3a\3a\3a\5a\u0586\na\3b\3b\3b\3b\5b\u058c\nb\3c\3c\3c\3c\7c\u0592\n"+ + "c\fc\16c\u0595\13c\3c\3c\3d\5d\u059a\nd\3d\3d\3e\3e\3e\3e\7e\u05a2\ne"+ + "\fe\16e\u05a5\13e\3f\3f\3f\7f\u05aa\nf\ff\16f\u05ad\13f\3g\6g\u05b0\n"+ + "g\rg\16g\u05b1\3h\3h\3h\3h\3h\3i\3i\3i\3i\5i\u05bd\ni\3i\3i\5i\u05c1\n"+ + "i\5i\u05c3\ni\3j\3j\3j\5j\u05c8\nj\3k\3k\3k\7k\u05cd\nk\fk\16k\u05d0\13"+ + "k\3l\3l\3l\3l\3m\3m\5m\u05d8\nm\3m\3m\3n\6n\u05dd\nn\rn\16n\u05de\3o\5"+ + "o\u05e2\no\3o\5o\u05e5\no\3o\3o\5o\u05e9\no\3p\6p\u05ec\np\rp\16p\u05ed"+ + "\3q\3q\3r\3r\3r\3r\3r\3r\3r\3r\3r\5r\u05fb\nr\3r\3r\3r\3r\3r\3r\3r\3r"+ + "\5r\u0605\nr\3s\3s\3s\3s\3s\3s\3s\3s\3s\3s\5s\u0611\ns\3t\3t\3t\7t\u0616"+ + "\nt\ft\16t\u0619\13t\3u\3u\3u\3u\3v\3v\3v\7v\u0622\nv\fv\16v\u0625\13"+ + "v\3w\3w\3w\5w\u062a\nw\3x\3x\5x\u062e\nx\3y\3y\5y\u0632\ny\3z\3z\3{\3"+ + "{\5{\u0638\n{\3|\3|\3|\3|\5|\u063e\n|\5|\u0640\n|\3}\3}\3}\7}\u0645\n"+ + "}\f}\16}\u0648\13}\3~\5~\u064b\n~\3~\5~\u064e\n~\3~\3~\5~\u0652\n~\3\177"+ + "\3\177\3\u0080\5\u0080\u0657\n\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3"+ + "\u0081\5\u0081\u065e\n\u0081\3\u0081\5\u0081\u0661\n\u0081\3\u0081\3\u0081"+ + "\3\u0081\5\u0081\u0666\n\u0081\3\u0081\3\u0081\3\u0081\5\u0081\u066b\n"+ + "\u0081\5\u0081\u066d\n\u0081\3\u0082\5\u0082\u0670\n\u0082\3\u0082\5\u0082"+ + "\u0673\n\u0082\3\u0082\3\u0082\3\u0082\3\u0083\5\u0083\u0679\n\u0083\3"+ + "\u0083\5\u0083\u067c\n\u0083\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3"+ + "\u0084\3\u0084\3\u0084\3\u0084\3\u0084\5\u0084\u0688\n\u0084\3\u0085\3"+ + "\u0085\5\u0085\u068c\n\u0085\3\u0086\5\u0086\u068f\n\u0086\3\u0086\3\u0086"+ + "\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\5\u0086\u0699\n\u0086"+ + "\3\u0087\5\u0087\u069c\n\u0087\3\u0087\3\u0087\3\u0087\3\u0088\5\u0088"+ + "\u06a2\n\u0088\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089"+ + "\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089"+ + "\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089"+ + "\5\u0089\u06bd\n\u0089\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a"+ + "\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\5\u008b\u06ca\n\u008b\3\u008b"+ + "\3\u008b\3\u008c\3\u008c\5\u008c\u06d0\n\u008c\3\u008d\3\u008d\3\u008d"+ + "\3\u008e\3\u008e\7\u008e\u06d7\n\u008e\f\u008e\16\u008e\u06da\13\u008e"+ + "\3\u008e\3\u008e\3\u008f\5\u008f\u06df\n\u008f\3\u008f\5\u008f\u06e2\n"+ + "\u008f\3\u008f\3\u008f\3\u008f\3\u008f\6\u008f\u06e8\n\u008f\r\u008f\16"+ + "\u008f\u06e9\3\u008f\3\u008f\5\u008f\u06ee\n\u008f\3\u0090\3\u0090\7\u0090"+ + "\u06f2\n\u0090\f\u0090\16\u0090\u06f5\13\u0090\3\u0090\6\u0090\u06f8\n"+ + "\u0090\r\u0090\16\u0090\u06f9\3\u0091\3\u0091\7\u0091\u06fe\n\u0091\f"+ + "\u0091\16\u0091\u0701\13\u0091\3\u0091\3\u0091\3\u0092\3\u0092\3\u0092"+ + "\3\u0092\7\u0092\u0709\n\u0092\f\u0092\16\u0092\u070c\13\u0092\3\u0092"+ + "\5\u0092\u070f\n\u0092\5\u0092\u0711\n\u0092\3\u0092\3\u0092\3\u0093\3"+ + "\u0093\3\u0093\3\u0093\7\u0093\u0719\n\u0093\f\u0093\16\u0093\u071c\13"+ + "\u0093\3\u0093\3\u0093\3\u0094\5\u0094\u0721\n\u0094\3\u0094\5\u0094\u0724"+ + "\n\u0094\3\u0094\3\u0094\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0097"+ + "\3\u0097\7\u0097\u072f\n\u0097\f\u0097\16\u0097\u0732\13\u0097\3\u0097"+ + "\3\u0097\3\u0098\5\u0098\u0737\n\u0098\3\u0098\5\u0098\u073a\n\u0098\3"+ + "\u0098\5\u0098\u073d\n\u0098\3\u0098\3\u0098\3\u0098\5\u0098\u0742\n\u0098"+ + "\3\u0098\3\u0098\5\u0098\u0746\n\u0098\3\u0098\3\u0098\5\u0098\u074a\n"+ + "\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098"+ + "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\5\u0098\u075b"+ + "\n\u0098\3\u0098\5\u0098\u075e\n\u0098\3\u0098\3\u0098\3\u0098\5\u0098"+ + "\u0763\n\u0098\3\u0098\3\u0098\5\u0098\u0767\n\u0098\3\u0098\3\u0098\5"+ + "\u0098\u076b\n\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3"+ + "\u0098\5\u0098\u0774\n\u0098\3\u0099\5\u0099\u0777\n\u0099\3\u0099\3\u0099"+ + "\3\u0099\5\u0099\u077c\n\u0099\3\u0099\3\u0099\5\u0099\u0780\n\u0099\3"+ + "\u0099\3\u0099\3\u0099\5\u0099\u0785\n\u0099\3\u0099\3\u0099\5\u0099\u0789"+ + "\n\u0099\5\u0099\u078b\n\u0099\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b"+ + "\3\u009b\3\u009b\7\u009b\u0794\n\u009b\f\u009b\16\u009b\u0797\13\u009b"+ + "\3\u009b\5\u009b\u079a\n\u009b\5\u009b\u079c\n\u009b\3\u009b\3\u009b\3"+ + "\u009c\5\u009c\u07a1\n\u009c\3\u009c\3\u009c\3\u009c\5\u009c\u07a6\n\u009c"+ + "\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\5\u009d\u07ad\n\u009d\3\u009d"+ + "\3\u009d\3\u009e\3\u009e\5\u009e\u07b3\n\u009e\3\u009f\6\u009f\u07b6\n"+ + "\u009f\r\u009f\16\u009f\u07b7\3\u00a0\3\u00a0\3\u00a0\3\u00a0\5\u00a0"+ + "\u07be\n\u00a0\3\u00a0\3\u00a0\5\u00a0\u07c2\n\u00a0\3\u00a0\3\u00a0\3"+ + "\u00a1\3\u00a1\5\u00a1\u07c8\n\u00a1\3\u00a2\3\u00a2\3\u00a2\7\u00a2\u07cd"+ + "\n\u00a2\f\u00a2\16\u00a2\u07d0\13\u00a2\3\u00a3\3\u00a3\3\u00a3\3\u00a3"+ + "\3\u00a3\7\u00a3\u07d7\n\u00a3\f\u00a3\16\u00a3\u07da\13\u00a3\5\u00a3"+ + "\u07dc\n\u00a3\3\u00a3\5\u00a3\u07df\n\u00a3\3\u00a4\3\u00a4\3\u00a4\5"+ + "\u00a4\u07e4\n\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\5\u00a5\u07ea\n\u00a5"+ + "\3\u00a5\3\u00a5\7\u00a5\u07ee\n\u00a5\f\u00a5\16\u00a5\u07f1\13\u00a5"+ + "\3\u00a5\3\u00a5\3\u00a5\3\u00a5\5\u00a5\u07f7\n\u00a5\3\u00a6\3\u00a6"+ + "\3\u00a6\7\u00a6\u07fc\n\u00a6\f\u00a6\16\u00a6\u07ff\13\u00a6\3\u00a7"+ + "\3\u00a7\3\u00a7\3\u00a7\3\u00a8\5\u00a8\u0806\n\u00a8\3\u00a8\3\u00a8"+ + "\5\u00a8\u080a\n\u00a8\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00aa"+ + "\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+ + "\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae"+ + "\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\5\u00ae\u082a\n\u00ae"+ + "\3\u00af\3\u00af\3\u00b0\3\u00b0\3\u00b0\3\u00b0\5\u00b0\u0832\n\u00b0"+ + "\3\u00b1\3\u00b1\7\u00b1\u0836\n\u00b1\f\u00b1\16\u00b1\u0839\13\u00b1"+ + "\3\u00b1\3\u00b1\3\u00b2\3\u00b2\7\u00b2\u083f\n\u00b2\f\u00b2\16\u00b2"+ + "\u0842\13\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\5\u00b3"+ + "\u084a\n\u00b3\3\u00b4\3\u00b4\3\u00b4\3\u00b4\5\u00b4\u0850\n\u00b4\3"+ + "\u00b5\3\u00b5\3\u00b5\7\u00b5\u0855\n\u00b5\f\u00b5\16\u00b5\u0858\13"+ + "\u00b5\3\u00b5\3\u00b5\6\u00b5\u085c\n\u00b5\r\u00b5\16\u00b5\u085d\5"+ + "\u00b5\u0860\n\u00b5\3\u00b6\3\u00b6\3\u00b7\3\u00b7\3\u00b7\5\u00b7\u0867"+ + "\n\u00b7\3\u00b7\5\u00b7\u086a\n\u00b7\3\u00b7\5\u00b7\u086d\n\u00b7\3"+ + "\u00b7\3\u00b7\5\u00b7\u0871\n\u00b7\3\u00b8\3\u00b8\3\u00b8\5\u00b8\u0876"+ + "\n\u00b8\3\u00b8\5\u00b8\u0879\n\u00b8\3\u00b8\5\u00b8\u087c\n\u00b8\3"+ + "\u00b8\3\u00b8\5\u00b8\u0880\n\u00b8\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u0885"+ + "\n\u00b9\3\u00b9\5\u00b9\u0888\n\u00b9\3\u00b9\5\u00b9\u088b\n\u00b9\3"+ + "\u00b9\3\u00b9\5\u00b9\u088f\n\u00b9\3\u00ba\3\u00ba\3\u00ba\5\u00ba\u0894"+ + "\n\u00ba\3\u00ba\3\u00ba\5\u00ba\u0898\n\u00ba\3\u00bb\3\u00bb\3\u00bb"+ + "\3\u00bb\5\u00bb\u089e\n\u00bb\3\u00bb\3\u00bb\5\u00bb\u08a2\n\u00bb\3"+ + "\u00bb\3\u00bb\5\u00bb\u08a6\n\u00bb\3\u00bb\3\u00bb\3\u00bc\3\u00bc\3"+ + "\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc"+ + "\u08b4\n\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00be"+ + "\3\u00be\3\u00be\3\u00be\3\u00be\5\u00be\u08c1\n\u00be\3\u00be\3\u00be"+ + "\3\u00be\3\u00be\5\u00be\u08c7\n\u00be\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+ + "\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0"+ + "\3\u00c0\3\u00c0\3\u00c0\3\u00c0\5\u00c0\u08da\n\u00c0\3\u00c1\3\u00c1"+ + "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c2\3\u00c2\3\u00c2\5\u00c2\u08e5"+ + "\n\u00c2\3\u00c2\3\u00c2\5\u00c2\u08e9\n\u00c2\3\u00c2\3\u00c2\3\u00c3"+ + "\3\u00c3\5\u00c3\u08ef\n\u00c3\3\u00c3\3\u00c3\5\u00c3\u08f3\n\u00c3\3"+ + "\u00c3\3\u00c3\5\u00c3\u08f7\n\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3"+ + "\u00c3\5\u00c3\u08fe\n\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\5"+ + "\u00c4\u0905\n\u00c4\3\u00c4\5\u00c4\u0908\n\u00c4\3\u00c4\3\u00c4\7\u00c4"+ + "\u090c\n\u00c4\f\u00c4\16\u00c4\u090f\13\u00c4\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c5\3\u00c5\3\u00c5\5\u00c5\u0917\n\u00c5\3\u00c5\3\u00c5\3\u00c5"+ + "\3\u00c5\3\u00c5\3\u00c5\5\u00c5\u091f\n\u00c5\3\u00c6\3\u00c6\3\u00c6"+ + "\3\u00c6\5\u00c6\u0925\n\u00c6\3\u00c7\3\u00c7\5\u00c7\u0929\n\u00c7\3"+ + "\u00c7\3\u00c7\3\u00c8\3\u00c8\5\u00c8\u092f\n\u00c8\3\u00c8\3\u00c8\5"+ + "\u00c8\u0933\n\u00c8\3\u00c9\3\u00c9\3\u00c9\2\2\u00ca\2\4\6\b\n\f\16"+ + "\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`bd"+ + "fhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092"+ + "\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa"+ + "\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2"+ + "\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da"+ + "\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2"+ + "\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a"+ + "\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122"+ + "\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138\u013a"+ + "\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152"+ + "\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a"+ + "\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180\u0182"+ + "\u0184\u0186\u0188\u018a\u018c\u018e\u0190\2\24\n\2\26\26\31\3188@@TT"+ + "XXdehh\4\2##..\4\2IIQQ\3\2\u009a\u009b\4\2\u0090\u0091\u009c\u009d\3\2"+ + "\u0085\u0086\3\2\u0087\u0089\20\2\23\23\26\26\31\31\36\36##..88@@EETT"+ + "XX\\\\dehh\4\2\17\17!!\16\2\n\n\20\20**::CCJJLPUU[[ggjjll\5\2IIQQ__\4"+ + "\2))\66\66\4\2\22\22__\4\2\u0087\u0087\u0092\u0092\4\2\67\67II\4\2++a"+ + "a\24\2\n\n\16\16\22\24\26 \"#%&(\60\63\63\65:<AAFFHHLLRRVWmnpq\u0a15\2\u0193\3"+ + "\2\2\2\4\u01ab\3\2\2\2\6\u01b7\3\2\2\2\b\u01c4\3\2\2\2\n\u01c8\3\2\2\2"+ + "\f\u01cd\3\2\2\2\16\u01cf\3\2\2\2\20\u01d1\3\2\2\2\22\u01d7\3\2\2\2\24"+ + "\u01d9\3\2\2\2\26\u01e4\3\2\2\2\30\u01ef\3\2\2\2\32\u01f8\3\2\2\2\34\u01fd"+ + "\3\2\2\2\36\u01ff\3\2\2\2 \u020e\3\2\2\2\"\u0210\3\2\2\2$\u0218\3\2\2"+ + "\2&\u021d\3\2\2\2(\u0225\3\2\2\2*\u022d\3\2\2\2,\u0235\3\2\2\2.\u023d"+ + "\3\2\2\2\60\u0245\3\2\2\2\62\u024d\3\2\2\2\64\u0259\3\2\2\2\66\u0264\3"+ + "\2\2\28\u026c\3\2\2\2:\u028c\3\2\2\2<\u028e\3\2\2\2>\u0315\3\2\2\2@\u0318"+ + "\3\2\2\2B\u0320\3\2\2\2D\u0330\3\2\2\2F\u0334\3\2\2\2H\u0336\3\2\2\2J"+ + "\u0340\3\2\2\2L\u0342\3\2\2\2N\u034b\3\2\2\2P\u0358\3\2\2\2R\u035f\3\2"+ + "\2\2T\u0361\3\2\2\2V\u0374\3\2\2\2X\u0376\3\2\2\2Z\u037f\3\2\2\2\\\u038c"+ + "\3\2\2\2^\u038e\3\2\2\2`\u03a3\3\2\2\2b\u03ac\3\2\2\2d\u03b8\3\2\2\2f"+ + "\u03c9\3\2\2\2h\u03cb\3\2\2\2j\u03d4\3\2\2\2l\u03d9\3\2\2\2n\u03e3\3\2"+ + "\2\2p\u03e5\3\2\2\2r\u03e8\3\2\2\2t\u03f3\3\2\2\2v\u03ff\3\2\2\2x\u0401"+ + "\3\2\2\2z\u0406\3\2\2\2|\u0409\3\2\2\2~\u0418\3\2\2\2\u0080\u0421\3\2"+ + "\2\2\u0082\u042c\3\2\2\2\u0084\u042e\3\2\2\2\u0086\u043d\3\2\2\2\u0088"+ + "\u0441\3\2\2\2\u008a\u04c2\3\2\2\2\u008c\u04c4\3\2\2\2\u008e\u04ca\3\2"+ + "\2\2\u0090\u04d3\3\2\2\2\u0092\u04db\3\2\2\2\u0094\u04dd\3\2\2\2\u0096"+ + "\u04e3\3\2\2\2\u0098\u04e6\3\2\2\2\u009a\u04f2\3\2\2\2\u009c\u04f5\3\2"+ + "\2\2\u009e\u0502\3\2\2\2\u00a0\u0504\3\2\2\2\u00a2\u0517\3\2\2\2\u00a4"+ + "\u0519\3\2\2\2\u00a6\u0525\3\2\2\2\u00a8\u052b\3\2\2\2\u00aa\u0530\3\2"+ + "\2\2\u00ac\u0535\3\2\2\2\u00ae\u0537\3\2\2\2\u00b0\u053d\3\2\2\2\u00b2"+ + "\u0545\3\2\2\2\u00b4\u0552\3\2\2\2\u00b6\u0556\3\2\2\2\u00b8\u055c\3\2"+ + "\2\2\u00ba\u056f\3\2\2\2\u00bc\u0572\3\2\2\2\u00be\u0578\3\2\2\2\u00c0"+ + "\u057b\3\2\2\2\u00c2\u0587\3\2\2\2\u00c4\u058d\3\2\2\2\u00c6\u0599\3\2"+ + "\2\2\u00c8\u059d\3\2\2\2\u00ca\u05a6\3\2\2\2\u00cc\u05af\3\2\2\2\u00ce"+ + "\u05b3\3\2\2\2\u00d0\u05c2\3\2\2\2\u00d2\u05c7\3\2\2\2\u00d4\u05c9\3\2"+ + "\2\2\u00d6\u05d1\3\2\2\2\u00d8\u05d5\3\2\2\2\u00da\u05dc\3\2\2\2\u00dc"+ + "\u05e1\3\2\2\2\u00de\u05eb\3\2\2\2\u00e0\u05ef\3\2\2\2\u00e2\u0604\3\2"+ + "\2\2\u00e4\u0606\3\2\2\2\u00e6\u0612\3\2\2\2\u00e8\u061a\3\2\2\2\u00ea"+ + "\u061e\3\2\2\2\u00ec\u0626\3\2\2\2\u00ee\u062d\3\2\2\2\u00f0\u0631\3\2"+ + "\2\2\u00f2\u0633\3\2\2\2\u00f4\u0637\3\2\2\2\u00f6\u063f\3\2\2\2\u00f8"+ + "\u0641\3\2\2\2\u00fa\u0651\3\2\2\2\u00fc\u0653\3\2\2\2\u00fe\u0656\3\2"+ + "\2\2\u0100\u065d\3\2\2\2\u0102\u066f\3\2\2\2\u0104\u0678\3\2\2\2\u0106"+ + "\u0687\3\2\2\2\u0108\u068b\3\2\2\2\u010a\u068e\3\2\2\2\u010c\u069b\3\2"+ + "\2\2\u010e\u06a1\3\2\2\2\u0110\u06bc\3\2\2\2\u0112\u06be\3\2\2\2\u0114"+ + "\u06c5\3\2\2\2\u0116\u06cf\3\2\2\2\u0118\u06d1\3\2\2\2\u011a\u06d4\3\2"+ + "\2\2\u011c\u06de\3\2\2\2\u011e\u06ef\3\2\2\2\u0120\u06fb\3\2\2\2\u0122"+ + "\u0704\3\2\2\2\u0124\u0714\3\2\2\2\u0126\u0720\3\2\2\2\u0128\u0727\3\2"+ + "\2\2\u012a\u0729\3\2\2\2\u012c\u072c\3\2\2\2\u012e\u0736\3\2\2\2\u0130"+ + "\u0776\3\2\2\2\u0132\u078c\3\2\2\2\u0134\u078f\3\2\2\2\u0136\u07a0\3\2"+ + "\2\2\u0138\u07a7\3\2\2\2\u013a\u07b2\3\2\2\2\u013c\u07b5\3\2\2\2\u013e"+ + "\u07b9\3\2\2\2\u0140\u07c7\3\2\2\2\u0142\u07c9\3\2\2\2\u0144\u07d1\3\2"+ + "\2\2\u0146\u07e3\3\2\2\2\u0148\u07f6\3\2\2\2\u014a\u07f8\3\2\2\2\u014c"+ + "\u0800\3\2\2\2\u014e\u0809\3\2\2\2\u0150\u080b\3\2\2\2\u0152\u0810\3\2"+ + "\2\2\u0154\u0816\3\2\2\2\u0156\u081a\3\2\2\2\u0158\u081e\3\2\2\2\u015a"+ + "\u0829\3\2\2\2\u015c\u082b\3\2\2\2\u015e\u0831\3\2\2\2\u0160\u0833\3\2"+ + "\2\2\u0162\u083c\3\2\2\2\u0164\u0849\3\2\2\2\u0166\u084f\3\2\2\2\u0168"+ + "\u0851\3\2\2\2\u016a\u0861\3\2\2\2\u016c\u0863\3\2\2\2\u016e\u0872\3\2"+ + "\2\2\u0170\u0881\3\2\2\2\u0172\u0890\3\2\2\2\u0174\u0899\3\2\2\2\u0176"+ + "\u08a9\3\2\2\2\u0178\u08b5\3\2\2\2\u017a\u08b8\3\2\2\2\u017c\u08c8\3\2"+ + "\2\2\u017e\u08cd\3\2\2\2\u0180\u08db\3\2\2\2\u0182\u08e1\3\2\2\2\u0184"+ + "\u08ec\3\2\2\2\u0186\u0904\3\2\2\2\u0188\u0910\3\2\2\2\u018a\u0920\3\2"+ + "\2\2\u018c\u0926\3\2\2\2\u018e\u092c\3\2\2\2\u0190\u0934\3\2\2\2\u0192"+ + "\u0194\7\3\2\2\u0193\u0192\3\2\2\2\u0193\u0194\3\2\2\2\u0194\u0196\3\2"+ + "\2\2\u0195\u0197\5\u00b4[\2\u0196\u0195\3\2\2\2\u0196\u0197\3\2\2\2\u0197"+ + "\u0199\3\2\2\2\u0198\u019a\5\u00b8]\2\u0199\u0198\3\2\2\2\u0199\u019a"+ + "\3\2\2\2\u019a\u019e\3\2\2\2\u019b\u019d\5\u0138\u009d\2\u019c\u019b\3"+ + "\2\2\2\u019d\u01a0\3\2\2\2\u019e\u019c\3\2\2\2\u019e\u019f\3\2\2\2\u019f"+ + "\u01a2\3\2\2\2\u01a0\u019e\3\2\2\2\u01a1\u01a3\5\u00bc_\2\u01a2\u01a1"+ + "\3\2\2\2\u01a2\u01a3\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4\u01a5\7\2\2\3\u01a5"+ + "\3\3\2\2\2\u01a6\u01a8\5\u0190\u00c9\2\u01a7\u01a9\5\24\13\2\u01a8\u01a7"+ + "\3\2\2\2\u01a8\u01a9\3\2\2\2\u01a9\u01ac\3\2\2\2\u01aa\u01ac\5\u00c2b"+ + "\2\u01ab\u01a6\3\2\2\2\u01ab\u01aa\3\2\2\2\u01ac\u01b4\3\2\2\2\u01ad\u01ae"+ + "\7\u0081\2\2\u01ae\u01b0\5\u0190\u00c9\2\u01af\u01b1\5\24\13\2\u01b0\u01af"+ + "\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1\u01b3\3\2\2\2\u01b2\u01ad\3\2\2\2\u01b3"+ + "\u01b6\3\2\2\2\u01b4\u01b2\3\2\2\2\u01b4\u01b5\3\2\2\2\u01b5\5\3\2\2\2"+ + "\u01b6\u01b4\3\2\2\2\u01b7\u01bd\5\b\5\2\u01b8\u01bc\7\u0092\2\2\u01b9"+ + "\u01bc\5\u0120\u0091\2\u01ba\u01bc\7\u0087\2\2\u01bb\u01b8\3\2\2\2\u01bb"+ + "\u01b9\3\2\2\2\u01bb\u01ba\3\2\2\2\u01bc\u01bf\3\2\2\2\u01bd\u01bb\3\2"+ + "\2\2\u01bd\u01be\3\2\2\2\u01be\7\3\2\2\2\u01bf\u01bd\3\2\2\2\u01c0\u01c5"+ + "\5\n\6\2\u01c1\u01c5\5\22\n\2\u01c2\u01c3\7k\2\2\u01c3\u01c5\7\u0087\2"+ + "\2\u01c4\u01c0\3\2\2\2\u01c4\u01c1\3\2\2\2\u01c4\u01c2\3\2\2\2\u01c5\t"+ + "\3\2\2\2\u01c6\u01c9\5\f\7\2\u01c7\u01c9\7\23\2\2\u01c8\u01c6\3\2\2\2"+ + "\u01c8\u01c7\3\2\2\2\u01c9\13\3\2\2\2\u01ca\u01ce\5\16\b\2\u01cb\u01ce"+ + "\5\20\t\2\u01cc\u01ce\7\36\2\2\u01cd\u01ca\3\2\2\2\u01cd\u01cb\3\2\2\2"+ + "\u01cd\u01cc\3\2\2\2\u01ce\r\3\2\2\2\u01cf\u01d0\t\2\2\2\u01d0\17\3\2"+ + "\2\2\u01d1\u01d2\t\3\2\2\u01d2\21\3\2\2\2\u01d3\u01d8\5\4\3\2\u01d4\u01d8"+ + "\7E\2\2\u01d5\u01d8\7$\2\2\u01d6\u01d8\7\\\2\2\u01d7\u01d3\3\2\2\2\u01d7"+ + "\u01d4\3\2\2\2\u01d7\u01d5\3\2\2\2\u01d7\u01d6\3\2\2\2\u01d8\23\3\2\2"+ + "\2\u01d9\u01da\7\u0090\2\2\u01da\u01df\5\6\4\2\u01db\u01dc\7\u0082\2\2"+ + "\u01dc\u01de\5\6\4\2\u01dd\u01db\3\2\2\2\u01de\u01e1\3\2\2\2\u01df\u01dd"+ + "\3\2\2\2\u01df\u01e0\3\2\2\2\u01e0\u01e2\3\2\2\2\u01e1\u01df\3\2\2\2\u01e2"+ + "\u01e3\7\u0091\2\2\u01e3\25\3\2\2\2\u01e4\u01e9\5\30\r\2\u01e5\u01e6\7"+ + "\u0082\2\2\u01e6\u01e8\5\30\r\2\u01e7\u01e5\3\2\2\2\u01e8\u01eb\3\2\2"+ + "\2\u01e9\u01e7\3\2\2\2\u01e9\u01ea\3\2\2\2\u01ea\27\3\2\2\2\u01eb\u01e9"+ + "\3\2\2\2\u01ec\u01ed\5\u0190\u00c9\2\u01ed\u01ee\7\u0083\2\2\u01ee\u01f0"+ + "\3\2\2\2\u01ef\u01ec\3\2\2\2\u01ef\u01f0\3\2\2\2\u01f0\u01f2\3\2\2\2\u01f1"+ + "\u01f3\t\4\2\2\u01f2\u01f1\3\2\2\2\u01f2\u01f3\3\2\2\2\u01f3\u01f4\3\2"+ + "\2\2\u01f4\u01f5\5\32\16\2\u01f5\31\3\2\2\2\u01f6\u01f9\5\36\20\2\u01f7"+ + "\u01f9\5\34\17\2\u01f8\u01f6\3\2\2\2\u01f8\u01f7\3\2\2\2\u01f9\33\3\2"+ + "\2\2\u01fa\u01fe\5d\63\2\u01fb\u01fe\5p9\2\u01fc\u01fe\5\"\22\2\u01fd"+ + "\u01fa\3\2\2\2\u01fd\u01fb\3\2\2\2\u01fd\u01fc\3\2\2\2\u01fe\35\3\2\2"+ + "\2\u01ff\u0200\5:\36\2\u0200\u0201\5 \21\2\u0201\u0202\5\32\16\2\u0202"+ + "\37\3\2\2\2\u0203\u020f\7\u008f\2\2\u0204\u020f\7\u009e\2\2\u0205\u020f"+ + "\7\u009f\2\2\u0206\u020f\7\u00a0\2\2\u0207\u020f\7\u00a1\2\2\u0208\u020f"+ + "\7\u00a2\2\2\u0209\u020f\7\u00a3\2\2\u020a\u020f\7\u00a4\2\2\u020b\u020f"+ + "\7\u00a5\2\2\u020c\u020f\7\u00a7\2\2\u020d\u020f\5\u0158\u00ad\2\u020e"+ + "\u0203\3\2\2\2\u020e\u0204\3\2\2\2\u020e\u0205\3\2\2\2\u020e\u0206\3\2"+ + "\2\2\u020e\u0207\3\2\2\2\u020e\u0208\3\2\2\2\u020e\u0209\3\2\2\2\u020e"+ + "\u020a\3\2\2\2\u020e\u020b\3\2\2\2\u020e\u020c\3\2\2\2\u020e\u020d\3\2"+ + "\2\2\u020f!\3\2\2\2\u0210\u0216\5$\23\2\u0211\u0212\7\u0092\2\2\u0212"+ + "\u0213\5\32\16\2\u0213\u0214\7\u0083\2\2\u0214\u0215\5\32\16\2\u0215\u0217"+ + "\3\2\2\2\u0216\u0211\3\2\2\2\u0216\u0217\3\2\2\2\u0217#\3\2\2\2\u0218"+ + "\u021b\5&\24\2\u0219\u021a\7\u0094\2\2\u021a\u021c\5$\23\2\u021b\u0219"+ + "\3\2\2\2\u021b\u021c\3\2\2\2\u021c%\3\2\2\2\u021d\u0222\5(\25\2\u021e"+ + "\u021f\7\u0098\2\2\u021f\u0221\5(\25\2\u0220\u021e\3\2\2\2\u0221\u0224"+ + "\3\2\2\2\u0222\u0220\3\2\2\2\u0222\u0223\3\2\2\2\u0223\'\3\2\2\2\u0224"+ + "\u0222\3\2\2\2\u0225\u022a\5*\26\2\u0226\u0227\7\u0097\2\2\u0227\u0229"+ + "\5*\26\2\u0228\u0226\3\2\2\2\u0229\u022c\3\2\2\2\u022a\u0228\3\2\2\2\u022a"+ + "\u022b\3\2\2\2\u022b)\3\2\2\2\u022c\u022a\3\2\2\2\u022d\u0232\5,\27\2"+ + "\u022e\u022f\7\u008b\2\2\u022f\u0231\5,\27\2\u0230\u022e\3\2\2\2\u0231"+ + "\u0234\3\2\2\2\u0232\u0230\3\2\2\2\u0232\u0233\3\2\2\2\u0233+\3\2\2\2"+ + "\u0234\u0232\3\2\2\2\u0235\u023a\5.\30\2\u0236\u0237\7\u008c\2\2\u0237"+ + "\u0239\5.\30\2\u0238\u0236\3\2\2\2\u0239\u023c\3\2\2\2\u023a\u0238\3\2"+ + "\2\2\u023a\u023b\3\2\2\2\u023b-\3\2\2\2\u023c\u023a\3\2\2\2\u023d\u0242"+ + "\5\60\31\2\u023e\u023f\7\u008a\2\2\u023f\u0241\5\60\31\2\u0240\u023e\3"+ + "\2\2\2\u0241\u0244\3\2\2\2\u0242\u0240\3\2\2\2\u0242\u0243\3\2\2\2\u0243"+ + "/\3\2\2\2\u0244\u0242\3\2\2\2\u0245\u024a\5\62\32\2\u0246\u0247\t\5\2"+ + "\2\u0247\u0249\5\62\32\2\u0248\u0246\3\2\2\2\u0249\u024c\3\2\2\2\u024a"+ + "\u0248\3\2\2\2\u024a\u024b\3\2\2\2\u024b\61\3\2\2\2\u024c\u024a\3\2\2"+ + "\2\u024d\u0256\5\64\33\2\u024e\u024f\t\6\2\2\u024f\u0255\5\64\33\2\u0250"+ + "\u0251\7<\2\2\u0251\u0255\5b\62\2\u0252\u0253\7\16\2\2\u0253\u0255\5\6"+ + "\4\2\u0254\u024e\3\2\2\2\u0254\u0250\3\2\2\2\u0254\u0252\3\2\2\2\u0255"+ + "\u0258\3\2\2\2\u0256\u0254\3\2\2\2\u0256\u0257\3\2\2\2\u0257\63\3\2\2"+ + "\2\u0258\u0256\3\2\2\2\u0259\u0261\5\66\34\2\u025a\u025d\7\u00a6\2\2\u025b"+ + "\u025d\5\u0156\u00ac\2\u025c\u025a\3\2\2\2\u025c\u025b\3\2\2\2\u025d\u025e"+ + "\3\2\2\2\u025e\u0260\5\66\34\2\u025f\u025c\3\2\2\2\u0260\u0263\3\2\2\2"+ + "\u0261\u025f\3\2\2\2\u0261\u0262\3\2\2\2\u0262\65\3\2\2\2\u0263\u0261"+ + "\3\2\2\2\u0264\u0269\58\35\2\u0265\u0266\t\7\2\2\u0266\u0268\58\35\2\u0267"+ + "\u0265\3\2\2\2\u0268\u026b\3\2\2\2\u0269\u0267\3\2\2\2\u0269\u026a\3\2"+ + "\2\2\u026a\67\3\2\2\2\u026b\u0269\3\2\2\2\u026c\u0271\5:\36\2\u026d\u026e"+ + "\t\b\2\2\u026e\u0270\5:\36\2\u026f\u026d\3\2\2\2\u0270\u0273\3\2\2\2\u0271"+ + "\u026f\3\2\2\2\u0271\u0272\3\2\2\2\u02729\3\2\2\2\u0273\u0271\3\2\2\2"+ + "\u0274\u028d\5<\37\2\u0275\u0276\7\u0085\2\2\u0276\u028d\5:\36\2\u0277"+ + "\u0278\7\u0086\2\2\u0278\u028d\5:\36\2\u0279\u027a\7\u008d\2\2\u027a\u028d"+ + "\5:\36\2\u027b\u027c\7\u008e\2\2\u027c\u028d\5:\36\2\u027d\u027e\7\u0095"+ + "\2\2\u027e\u028d\5:\36\2\u027f\u0280\7\u0096\2\2\u0280\u028d\5:\36\2\u0281"+ + "\u0282\7\177\2\2\u0282\u0283\5\6\4\2\u0283\u0284\7\u0080\2\2\u0284\u0285"+ + "\5:\36\2\u0285\u028d\3\2\2\2\u0286\u0287\7\21\2\2\u0287\u028d\5:\36\2"+ + "\u0288\u0289\7\u008a\2\2\u0289\u028d\5:\36\2\u028a\u028b\7\u0087\2\2\u028b"+ + "\u028d\5:\36\2\u028c\u0274\3\2\2\2\u028c\u0275\3\2\2\2\u028c\u0277\3\2"+ + "\2\2\u028c\u0279\3\2\2\2\u028c\u027b\3\2\2\2\u028c\u027d\3\2\2\2\u028c"+ + "\u027f\3\2\2\2\u028c\u0281\3\2\2\2\u028c\u0286\3\2\2\2\u028c\u0288\3\2"+ + "\2\2\u028c\u028a\3\2\2\2\u028d;\3\2\2\2\u028e\u0292\5> \2\u028f\u0291"+ + "\5B\"\2\u0290\u028f\3\2\2\2\u0291\u0294\3\2\2\2\u0292\u0290\3\2\2\2\u0292"+ + "\u0293\3\2\2\2\u0293\u02a5\3\2\2\2\u0294\u0292\3\2\2\2\u0295\u029c\5@"+ + "!\2\u0296\u029c\5\u018c\u00c7\2\u0297\u029c\7\u0095\2\2\u0298\u029c\7"+ + "\u0096\2\2\u0299\u029a\7\u0099\2\2\u029a\u029c\5\u0190\u00c9\2\u029b\u0295"+ + "\3\2\2\2\u029b\u0296\3\2\2\2\u029b\u0297\3\2\2\2\u029b\u0298\3\2\2\2\u029b"+ + "\u0299\3\2\2\2\u029c\u02a0\3\2\2\2\u029d\u029f\5B\"\2\u029e\u029d\3\2"+ + "\2\2\u029f\u02a2\3\2\2\2\u02a0\u029e\3\2\2\2\u02a0\u02a1\3\2\2\2\u02a1"+ + "\u02a4\3\2\2\2\u02a2\u02a0\3\2\2\2\u02a3\u029b\3\2\2\2\u02a4\u02a7\3\2"+ + "\2\2\u02a5\u02a3\3\2\2\2\u02a5\u02a6\3\2\2\2\u02a6=\3\2\2\2\u02a7\u02a5"+ + "\3\2\2\2\u02a8\u0316\5\u015a\u00ae\2\u02a9\u02ab\5\u0190\u00c9\2\u02aa"+ + "\u02ac\5\24\13\2\u02ab\u02aa\3\2\2\2\u02ab\u02ac\3\2\2\2\u02ac\u0316\3"+ + "\2\2\2\u02ad\u02ae\7\177\2\2\u02ae\u02af\5\32\16\2\u02af\u02b0\7\u0080"+ + "\2\2\u02b0\u0316\3\2\2\2\u02b1\u0316\5F$\2\u02b2\u0316\5\u00c2b\2\u02b3"+ + "\u0316\7r\2\2\u02b4\u0316\7_\2\2\u02b5\u02bf\7\22\2\2\u02b6\u02b7\7\u0081"+ + "\2\2\u02b7\u02b9\5\u0190\u00c9\2\u02b8\u02ba\5\24\13\2\u02b9\u02b8\3\2"+ + "\2\2\u02b9\u02ba\3\2\2\2\u02ba\u02c0\3\2\2\2\u02bb\u02bc\7}\2\2\u02bc"+ + "\u02bd\5H%\2\u02bd\u02be\7~\2\2\u02be\u02c0\3\2\2\2\u02bf\u02b6\3\2\2"+ + "\2\u02bf\u02bb\3\2\2\2\u02c0\u0316\3\2\2\2\u02c1\u02de\7C\2\2\u02c2\u02d8"+ + "\5\6\4\2\u02c3\u02d9\5\u018e\u00c8\2\u02c4\u02d9\5J&\2\u02c5\u02c6\7}"+ + "\2\2\u02c6\u02c7\5H%\2\u02c7\u02cb\7~\2\2\u02c8\u02ca\5\u0120\u0091\2"+ + "\u02c9\u02c8\3\2\2\2\u02ca\u02cd\3\2\2\2\u02cb\u02c9\3\2\2\2\u02cb\u02cc"+ + "\3\2\2\2\u02cc\u02cf\3\2\2\2\u02cd\u02cb\3\2\2\2\u02ce\u02d0\5\u0122\u0092"+ + "\2\u02cf\u02ce\3\2\2\2\u02cf\u02d0\3\2\2\2\u02d0\u02d9\3\2\2\2\u02d1\u02d3"+ + "\5\u0120\u0091\2\u02d2\u02d1\3\2\2\2\u02d3\u02d4\3\2\2\2\u02d4\u02d2\3"+ + "\2\2\2\u02d4\u02d5\3\2\2\2\u02d5\u02d6\3\2\2\2\u02d6\u02d7\5\u0122\u0092"+ + "\2\u02d7\u02d9\3\2\2\2\u02d8\u02c3\3\2\2\2\u02d8\u02c4\3\2\2\2\u02d8\u02c5"+ + "\3\2\2\2\u02d8\u02d2\3\2\2\2\u02d9\u02df\3\2\2\2\u02da\u02df\5X-\2\u02db"+ + "\u02dc\5\u0120\u0091\2\u02dc\u02dd\5\u0122\u0092\2\u02dd\u02df\3\2\2\2"+ + "\u02de\u02c2\3\2\2\2\u02de\u02da\3\2\2\2\u02de\u02db\3\2\2\2\u02df\u0316"+ + "\3\2\2\2\u02e0\u02e1\7c\2\2\u02e1\u02e5\7\177\2\2\u02e2\u02e6\5^\60\2"+ + "\u02e3\u02e6\5\6\4\2\u02e4\u02e6\7k\2\2\u02e5\u02e2\3\2\2\2\u02e5\u02e3"+ + "\3\2\2\2\u02e5\u02e4\3\2\2\2\u02e6\u02e7\3\2\2\2\u02e7\u0316\7\u0080\2"+ + "\2\u02e8\u02e9\7\32\2\2\u02e9\u02ea\7\177\2\2\u02ea\u02eb\5\32\16\2\u02eb"+ + "\u02ec\7\u0080\2\2\u02ec\u0316\3\2\2\2\u02ed\u02ee\7f\2\2\u02ee\u02ef"+ + "\7\177\2\2\u02ef\u02f0\5\32\16\2\u02f0\u02f1\7\u0080\2\2\u02f1\u0316\3"+ + "\2\2\2\u02f2\u02f3\7\37\2\2\u02f3\u02f4\7\177\2\2\u02f4\u02f5\5\6\4\2"+ + "\u02f5\u02f6\7\u0080\2\2\u02f6\u0316\3\2\2\2\u02f7\u02f9\7\20\2\2\u02f8"+ + "\u02f7\3\2\2\2\u02f8\u02f9\3\2\2\2\u02f9\u02fa\3\2\2\2\u02fa\u0300\7 "+ + "\2\2\u02fb\u02fd\7\177\2\2\u02fc\u02fe\5h\65\2\u02fd\u02fc\3\2\2\2\u02fd"+ + "\u02fe\3\2\2\2\u02fe\u02ff\3\2\2\2\u02ff\u0301\7\u0080\2\2\u0300\u02fb"+ + "\3\2\2\2\u0300\u0301\3\2\2\2\u0301\u0302\3\2\2\2\u0302\u0316\5\u008cG"+ + "\2\u0303\u0304\7Y\2\2\u0304\u0305\7\177\2\2\u0305\u0306\5\6\4\2\u0306"+ + "\u0307\7\u0080\2\2\u0307\u0316\3\2\2\2\u0308\u0309\7A\2\2\u0309\u030f"+ + "\7\177\2\2\u030a\u030b\5\u0190\u00c9\2\u030b\u030c\7\u0081\2\2\u030c\u030e"+ + "\3\2\2\2\u030d\u030a\3\2\2\2\u030e\u0311\3\2\2\2\u030f\u030d\3\2\2\2\u030f"+ + "\u0310\3\2\2\2\u0310\u0312\3\2\2\2\u0311\u030f\3\2\2\2\u0312\u0313\5\u0190"+ + "\u00c9\2\u0313\u0314\7\u0080\2\2\u0314\u0316\3\2\2\2\u0315\u02a8\3\2\2"+ + "\2\u0315\u02a9\3\2\2\2\u0315\u02ad\3\2\2\2\u0315\u02b1\3\2\2\2\u0315\u02b2"+ + "\3\2\2\2\u0315\u02b3\3\2\2\2\u0315\u02b4\3\2\2\2\u0315\u02b5\3\2\2\2\u0315"+ + "\u02c1\3\2\2\2\u0315\u02e0\3\2\2\2\u0315\u02e8\3\2\2\2\u0315\u02ed\3\2"+ + "\2\2\u0315\u02f2\3\2\2\2\u0315\u02f8\3\2\2\2\u0315\u0303\3\2\2\2\u0315"+ + "\u0308\3\2\2\2\u0316?\3\2\2\2\u0317\u0319\7\u0092\2\2\u0318\u0317\3\2"+ + "\2\2\u0318\u0319\3\2\2\2\u0319\u031a\3\2\2\2\u031a\u031b\7\u0081\2\2\u031b"+ + "\u031d\5\u0190\u00c9\2\u031c\u031e\5\24\13\2\u031d\u031c\3\2\2\2\u031d"+ + "\u031e\3\2\2\2\u031eA\3\2\2\2\u031f\u0321\7\u0092\2\2\u0320\u031f\3\2"+ + "\2\2\u0320\u0321\3\2\2\2\u0321\u0322\3\2\2\2\u0322\u0323\7}\2\2\u0323"+ + "\u0328\5D#\2\u0324\u0325\7\u0082\2\2\u0325\u0327\5D#\2\u0326\u0324\3\2"+ + "\2\2\u0327\u032a\3\2\2\2\u0328\u0326\3\2\2\2\u0328\u0329\3\2\2\2\u0329"+ + "\u032b\3\2\2\2\u032a\u0328\3\2\2\2\u032b\u032c\7~\2\2\u032cC\3\2\2\2\u032d"+ + "\u032e\5\u0190\u00c9\2\u032e\u032f\7\u0083\2\2\u032f\u0331\3\2\2\2\u0330"+ + "\u032d\3\2\2\2\u0330\u0331\3\2\2\2\u0331\u0332\3\2\2\2\u0332\u0333\5\32"+ + "\16\2\u0333E\3\2\2\2\u0334\u0335\t\t\2\2\u0335G\3\2\2\2\u0336\u033b\5"+ + "\32\16\2\u0337\u0338\7\u0082\2\2\u0338\u033a\5\32\16\2\u0339\u0337\3\2"+ + "\2\2\u033a\u033d\3\2\2\2\u033b\u0339\3\2\2\2\u033b\u033c\3\2\2\2\u033c"+ + "I\3\2\2\2\u033d\u033b\3\2\2\2\u033e\u0341\5L\'\2\u033f\u0341\5T+\2\u0340"+ + "\u033e\3\2\2\2\u0340\u033f\3\2\2\2\u0341K\3\2\2\2\u0342\u0347\7{\2\2\u0343"+ + "\u0345\5N(\2\u0344\u0346\7\u0082\2\2\u0345\u0344\3\2\2\2\u0345\u0346\3"+ + "\2\2\2\u0346\u0348\3\2\2\2\u0347\u0343\3\2\2\2\u0347\u0348\3\2\2\2\u0348"+ + "\u0349\3\2\2\2\u0349\u034a\7|\2\2\u034aM\3\2\2\2\u034b\u0350\5P)\2\u034c"+ + "\u034d\7\u0082\2\2\u034d\u034f\5P)\2\u034e\u034c\3\2\2\2\u034f\u0352\3"+ + "\2\2\2\u0350\u034e\3\2\2\2\u0350\u0351\3\2\2\2\u0351O\3\2\2\2\u0352\u0350"+ + "\3\2\2\2\u0353\u0359\5\u0190\u00c9\2\u0354\u0355\7}\2\2\u0355\u0356\5"+ + "\32\16\2\u0356\u0357\7~\2\2\u0357\u0359\3\2\2\2\u0358\u0353\3\2\2\2\u0358"+ + "\u0354\3\2\2\2\u0359\u035a\3\2\2\2\u035a\u035b\7\u008f\2\2\u035b\u035c"+ + "\5R*\2\u035cQ\3\2\2\2\u035d\u0360\5\32\16\2\u035e\u0360\5J&\2\u035f\u035d"+ + "\3\2\2\2\u035f\u035e\3\2\2\2\u0360S\3\2\2\2\u0361\u0362\7{\2\2\u0362\u0367"+ + "\5V,\2\u0363\u0364\7\u0082\2\2\u0364\u0366\5V,\2\u0365\u0363\3\2\2\2\u0366"+ + "\u0369\3\2\2\2\u0367\u0365\3\2\2\2\u0367\u0368\3\2\2\2\u0368\u036b\3\2"+ + "\2\2\u0369\u0367\3\2\2\2\u036a\u036c\7\u0082\2\2\u036b\u036a\3\2\2\2\u036b"+ + "\u036c\3\2\2\2\u036c\u036d\3\2\2\2\u036d\u036e\7|\2\2\u036eU\3\2\2\2\u036f"+ + "\u0375\5\34\17\2\u0370\u0371\7{\2\2\u0371\u0372\5H%\2\u0372\u0373\7|\2"+ + "\2\u0373\u0375\3\2\2\2\u0374\u036f\3\2\2\2\u0374\u0370\3\2\2\2\u0375W"+ + "\3\2\2\2\u0376\u037b\7{\2\2\u0377\u0379\5Z.\2\u0378\u037a\7\u0082\2\2"+ + "\u0379\u0378\3\2\2\2\u0379\u037a\3\2\2\2\u037a\u037c\3\2\2\2\u037b\u0377"+ + "\3\2\2\2\u037b\u037c\3\2\2\2\u037c\u037d\3\2\2\2\u037d\u037e\7|\2\2\u037e"+ + "Y\3\2\2\2\u037f\u0384\5\\/\2\u0380\u0381\7\u0082\2\2\u0381\u0383\5\\/"+ + "\2\u0382\u0380\3\2\2\2\u0383\u0386\3\2\2\2\u0384\u0382\3\2\2\2\u0384\u0385"+ + "\3\2\2\2\u0385[\3\2\2\2\u0386\u0384\3\2\2\2\u0387\u038d\5<\37\2\u0388"+ + "\u0389\5\u0190\u00c9\2\u0389\u038a\7\u008f\2\2\u038a\u038b\5\32\16\2\u038b"+ + "\u038d\3\2\2\2\u038c\u0387\3\2\2\2\u038c\u0388\3\2\2\2\u038d]\3\2\2\2"+ + "\u038e\u0397\5\u0190\u00c9\2\u038f\u0391\5`\61\2\u0390\u038f\3\2\2\2\u0390"+ + "\u0391\3\2\2\2\u0391\u0398\3\2\2\2\u0392\u0393\7\u0093\2\2\u0393\u0395"+ + "\5\u0190\u00c9\2\u0394\u0396\5`\61\2\u0395\u0394\3\2\2\2\u0395\u0396\3"+ + "\2\2\2\u0396\u0398\3\2\2\2\u0397\u0390\3\2\2\2\u0397\u0392\3\2\2\2\u0398"+ + "\u03a0\3\2\2\2\u0399\u039a\7\u0081\2\2\u039a\u039c\5\u0190\u00c9\2\u039b"+ + "\u039d\5`\61\2\u039c\u039b\3\2\2\2\u039c\u039d\3\2\2\2\u039d\u039f\3\2"+ + "\2\2\u039e\u0399\3\2\2\2\u039f\u03a2\3\2\2\2\u03a0\u039e\3\2\2\2\u03a0"+ + "\u03a1\3\2\2\2\u03a1_\3\2\2\2\u03a2\u03a0\3\2\2\2\u03a3\u03a7\7\u0090"+ + "\2\2\u03a4\u03a6\7\u0082\2\2\u03a5\u03a4\3\2\2\2\u03a6\u03a9\3\2\2\2\u03a7"+ + "\u03a5\3\2\2\2\u03a7\u03a8\3\2\2\2\u03a8\u03aa\3\2\2\2\u03a9\u03a7\3\2"+ + "\2\2\u03aa\u03ab\7\u0091\2\2\u03aba\3\2\2\2\u03ac\u03b1\5\b\5\2\u03ad"+ + "\u03b0\5\u0120\u0091\2\u03ae\u03b0\7\u0087\2\2\u03af\u03ad\3\2\2\2\u03af"+ + "\u03ae\3\2\2\2\u03b0\u03b3\3\2\2\2\u03b1\u03af\3\2\2\2\u03b1\u03b2\3\2"+ + "\2\2\u03b2\u03b5\3\2\2\2\u03b3\u03b1\3\2\2\2\u03b4\u03b6\7\u0092\2\2\u03b5"+ + "\u03b4\3\2\2\2\u03b5\u03b6\3\2\2\2\u03b6c\3\2\2\2\u03b7\u03b9\7\20\2\2"+ + "\u03b8\u03b7\3\2\2\2\u03b8\u03b9\3\2\2\2\u03b9\u03ba\3\2\2\2\u03ba\u03bb"+ + "\5f\64\2\u03bb\u03bc\5\u0154\u00ab\2\u03bc\u03bd\5n8\2\u03bde\3\2\2\2"+ + "\u03be\u03bf\7\177\2\2\u03bf\u03ca\7\u0080\2\2\u03c0\u03c1\7\177\2\2\u03c1"+ + "\u03c2\5h\65\2\u03c2\u03c3\7\u0080\2\2\u03c3\u03ca\3\2\2\2\u03c4\u03c5"+ + "\7\177\2\2\u03c5\u03c6\5l\67\2\u03c6\u03c7\7\u0080\2\2\u03c7\u03ca\3\2"+ + "\2\2\u03c8\u03ca\5\u0190\u00c9\2\u03c9\u03be\3\2\2\2\u03c9\u03c0\3\2\2"+ + "\2\u03c9\u03c4\3\2\2\2\u03c9\u03c8\3\2\2\2\u03cag\3\2\2\2\u03cb\u03d0"+ + "\5j\66\2\u03cc\u03cd\7\u0082\2\2\u03cd\u03cf\5j\66\2\u03ce\u03cc\3\2\2"+ + "\2\u03cf\u03d2\3\2\2\2\u03d0\u03ce\3\2\2\2\u03d0\u03d1\3\2\2\2\u03d1i"+ + "\3\2\2\2\u03d2\u03d0\3\2\2\2\u03d3\u03d5\t\4\2\2\u03d4\u03d3\3\2\2\2\u03d4"+ + "\u03d5\3\2\2\2\u03d5\u03d6\3\2\2\2\u03d6\u03d7\5\6\4\2\u03d7\u03d8\5\u0190"+ + "\u00c9\2\u03d8k\3\2\2\2\u03d9\u03de\5\u0190\u00c9\2\u03da\u03db\7\u0082"+ + "\2\2\u03db\u03dd\5\u0190\u00c9\2\u03dc\u03da\3\2\2\2\u03dd\u03e0\3\2\2"+ + "\2\u03de\u03dc\3\2\2\2\u03de\u03df\3\2\2\2\u03dfm\3\2\2\2\u03e0\u03de"+ + "\3\2\2\2\u03e1\u03e4\5\32\16\2\u03e2\u03e4\5\u008cG\2\u03e3\u03e1\3\2"+ + "\2\2\u03e3\u03e2\3\2\2\2\u03e4o\3\2\2\2\u03e5\u03e6\5r:\2\u03e6\u03e7"+ + "\5t;\2\u03e7q\3\2\2\2\u03e8\u03ea\7\61\2\2\u03e9\u03eb\5\6\4\2\u03ea\u03e9"+ + "\3\2\2\2\u03ea\u03eb\3\2\2\2\u03eb\u03ec\3\2\2\2\u03ec\u03ed\5\u0190\u00c9"+ + "\2\u03ed\u03ee\7\67\2\2\u03ee\u03ef\5\32\16\2\u03efs\3\2\2\2\u03f0\u03f2"+ + "\5v<\2\u03f1\u03f0\3\2\2\2\u03f2\u03f5\3\2\2\2\u03f3\u03f1\3\2\2\2\u03f3"+ + "\u03f4\3\2\2\2\u03f4\u03f6\3\2\2\2\u03f5\u03f3\3\2\2\2\u03f6\u03f8\5\u0082"+ + "B\2\u03f7\u03f9\5\u0084C\2\u03f8\u03f7\3\2\2\2\u03f8\u03f9\3\2\2\2\u03f9"+ + "u\3\2\2\2\u03fa\u0400\5r:\2\u03fb\u0400\5x=\2\u03fc\u0400\5z>\2\u03fd"+ + "\u0400\5|?\2\u03fe\u0400\5~@\2\u03ff\u03fa\3\2\2\2\u03ff\u03fb\3\2\2\2"+ + "\u03ff\u03fc\3\2\2\2\u03ff\u03fd\3\2\2\2\u03ff\u03fe\3\2\2\2\u0400w\3"+ + "\2\2\2\u0401\u0402\7>\2\2\u0402\u0403\5\u0190\u00c9\2\u0403\u0404\7\u008f"+ + "\2\2\u0404\u0405\5\32\16\2\u0405y\3\2\2\2\u0406\u0407\7n\2\2\u0407\u0408"+ + "\5\32\16\2\u0408{\3\2\2\2\u0409\u040b\7=\2\2\u040a\u040c\5\6\4\2\u040b"+ + "\u040a\3\2\2\2\u040b\u040c\3\2\2\2\u040c\u040d\3\2\2\2\u040d\u040e\5\u0190"+ + "\u00c9\2\u040e\u040f\7\67\2\2\u040f\u0410\5\32\16\2\u0410\u0411\7F\2\2"+ + "\u0411\u0412\5\32\16\2\u0412\u0413\7\'\2\2\u0413\u0416\5\32\16\2\u0414"+ + "\u0415\7;\2\2\u0415\u0417\5\u0190\u00c9\2\u0416\u0414\3\2\2\2\u0416\u0417"+ + "\3\2\2\2\u0417}\3\2\2\2\u0418\u0419\7H\2\2\u0419\u041e\5\u0080A\2\u041a"+ + "\u041b\7\u0082\2\2\u041b\u041d\5\u0080A\2\u041c\u041a\3\2\2\2\u041d\u0420"+ + "\3\2\2\2\u041e\u041c\3\2\2\2\u041e\u041f\3\2\2\2\u041f\177\3\2\2\2\u0420"+ + "\u041e\3\2\2\2\u0421\u0423\5\32\16\2\u0422\u0424\t\n\2\2\u0423\u0422\3"+ + "\2\2\2\u0423\u0424\3\2\2\2\u0424\u0081\3\2\2\2\u0425\u0426\7V\2\2\u0426"+ + "\u042d\5\32\16\2\u0427\u0428\7\64\2\2\u0428\u0429\5\32\16\2\u0429\u042a"+ + "\7\25\2\2\u042a\u042b\5\32\16\2\u042b\u042d\3\2\2\2\u042c\u0425\3\2\2"+ + "\2\u042c\u0427\3\2\2\2\u042d\u0083\3\2\2\2\u042e\u042f\7;\2\2\u042f\u0430"+ + "\5\u0190\u00c9\2\u0430\u0431\5t;\2\u0431\u0085\3\2\2\2\u0432\u0433\5\u0190"+ + "\u00c9\2\u0433\u0434\7\u0083\2\2\u0434\u0435\5\u0086D\2\u0435\u043e\3"+ + "\2\2\2\u0436\u0439\5\u008eH\2\u0437\u0439\5\u0094K\2\u0438\u0436\3\2\2"+ + "\2\u0438\u0437\3\2\2\2\u0439\u043a\3\2\2\2\u043a\u043b\7\u0084\2\2\u043b"+ + "\u043e\3\2\2\2\u043c\u043e\5\u0088E\2\u043d\u0432\3\2\2\2\u043d\u0438"+ + "\3\2\2\2\u043d\u043c\3\2\2\2\u043e\u0087\3\2\2\2\u043f\u0442\5\u008cG"+ + "\2\u0440\u0442\5\u008aF\2\u0441\u043f\3\2\2\2\u0441\u0440\3\2\2\2\u0442"+ + "\u0089\3\2\2\2\u0443\u04c3\7\u0084\2\2\u0444\u0445\5\32\16\2\u0445\u0446"+ + "\7\u0084\2\2\u0446\u04c3\3\2\2\2\u0447\u0448\7\65\2\2\u0448\u0449\7\177"+ + "\2\2\u0449\u044a\5\32\16\2\u044a\u044b\7\u0080\2\2\u044b\u044e\5\u0096"+ + "L\2\u044c\u044d\7%\2\2\u044d\u044f\5\u0096L\2\u044e\u044c\3\2\2\2\u044e"+ + "\u044f\3\2\2\2\u044f\u04c3\3\2\2\2\u0450\u0451\7^\2\2\u0451\u0452\7\177"+ + "\2\2\u0452\u0453\5\32\16\2\u0453\u0454\7\u0080\2\2\u0454\u0458\7{\2\2"+ + "\u0455\u0457\5\u0098M\2\u0456\u0455\3\2\2\2\u0457\u045a\3\2\2\2\u0458"+ + "\u0456\3\2\2\2\u0458\u0459\3\2\2\2\u0459\u045b\3\2\2\2\u045a\u0458\3\2"+ + "\2\2\u045b\u045c\7|\2\2\u045c\u04c3\3\2\2\2\u045d\u045e\7o\2\2\u045e\u045f"+ + "\7\177\2\2\u045f\u0460\5\32\16\2\u0460\u0461\7\u0080\2\2\u0461\u0462\5"+ + "\u0088E\2\u0462\u04c3\3\2\2\2\u0463\u0464\7\"\2\2\u0464\u0465\5\u0088"+ + "E\2\u0465\u0466\7o\2\2\u0466\u0467\7\177\2\2\u0467\u0468\5\32\16\2\u0468"+ + "\u0469\7\u0080\2\2\u0469\u046a\7\u0084\2\2\u046a\u04c3\3\2\2\2\u046b\u046c"+ + "\7/\2\2\u046c\u046e\7\177\2\2\u046d\u046f\5\u009eP\2\u046e\u046d\3\2\2"+ + "\2\u046e\u046f\3\2\2\2\u046f\u0470\3\2\2\2\u0470\u0472\7\u0084\2\2\u0471"+ + "\u0473\5\32\16\2\u0472\u0471\3\2\2\2\u0472\u0473\3\2\2\2\u0473\u0474\3"+ + "\2\2\2\u0474\u0476\7\u0084\2\2\u0475\u0477\5\u00a0Q\2\u0476\u0475\3\2"+ + "\2\2\u0476\u0477\3\2\2\2\u0477\u0478\3\2\2\2\u0478\u0479\7\u0080\2\2\u0479"+ + "\u04c3\5\u0088E\2\u047a\u047b\7\60\2\2\u047b\u047c\7\177\2\2\u047c\u047d"+ + "\5\6\4\2\u047d\u047e\5\u0190\u00c9\2\u047e\u047f\7\67\2\2\u047f\u0480"+ + "\5\32\16\2\u0480\u0481\7\u0080\2\2\u0481\u0482\5\u0088E\2\u0482\u04c3"+ + "\3\2\2\2\u0483\u0484\7\24\2\2\u0484\u04c3\7\u0084\2\2\u0485\u0486\7\35"+ + "\2\2\u0486\u04c3\7\u0084\2\2\u0487\u048c\7\63\2\2\u0488\u048d\5\u0190"+ + "\u00c9\2\u0489\u048a\7\27\2\2\u048a\u048d\5\32\16\2\u048b\u048d\7\37\2"+ + "\2\u048c\u0488\3\2\2\2\u048c\u0489\3\2\2\2\u048c\u048b\3\2\2\2\u048d\u048e"+ + "\3\2\2\2\u048e\u04c3\7\u0084\2\2\u048f\u0491\7S\2\2\u0490\u0492\5\32\16"+ + "\2\u0491\u0490\3\2\2\2\u0491\u0492\3\2\2\2\u0492\u0493\3\2\2\2\u0493\u04c3"+ + "\7\u0084\2\2\u0494\u0496\7`\2\2\u0495\u0497\5\32\16\2\u0496\u0495\3\2"+ + "\2\2\u0496\u0497\3\2\2\2\u0497\u0498\3\2\2\2\u0498\u04c3\7\u0084\2\2\u0499"+ + "\u049a\7b\2\2\u049a\u04a0\5\u008cG\2\u049b\u049d\5\u00a2R\2\u049c\u049e"+ + "\5\u00aaV\2\u049d\u049c\3\2\2\2\u049d\u049e\3\2\2\2\u049e\u04a1\3\2\2"+ + "\2\u049f\u04a1\5\u00aaV\2\u04a0\u049b\3\2\2\2\u04a0\u049f\3\2\2\2\u04a1"+ + "\u04c3\3\2\2\2\u04a2\u04a3\7\32\2\2\u04a3\u04c3\5\u008cG\2\u04a4\u04a5"+ + "\7f\2\2\u04a5\u04c3\5\u008cG\2\u04a6\u04a7\7?\2\2\u04a7\u04a8\7\177\2"+ + "\2\u04a8\u04a9\5\32\16\2\u04a9\u04aa\7\u0080\2\2\u04aa\u04ab\5\u0088E"+ + "\2\u04ab\u04c3\3\2\2\2\u04ac\u04ad\7i\2\2\u04ad\u04ae\7\177\2\2\u04ae"+ + "\u04af\5\u00acW\2\u04af\u04b0\7\u0080\2\2\u04b0\u04b1\5\u0088E\2\u04b1"+ + "\u04c3\3\2\2\2\u04b2\u04b6\7p\2\2\u04b3\u04b4\7S\2\2\u04b4\u04b7\5\32"+ + "\16\2\u04b5\u04b7\7\24\2\2\u04b6\u04b3\3\2\2\2\u04b6\u04b5\3\2\2\2\u04b7"+ + "\u04b8\3\2\2\2\u04b8\u04c3\7\u0084\2\2\u04b9\u04ba\7g\2\2\u04ba\u04c3"+ + "\5\u008cG\2\u04bb\u04bc\7-\2\2\u04bc\u04bd\7\177\2\2\u04bd\u04be\5\u0148"+ + "\u00a5\2\u04be\u04bf\5\u014a\u00a6\2\u04bf\u04c0\7\u0080\2\2\u04c0\u04c1"+ + "\5\u0088E\2\u04c1\u04c3\3\2\2\2\u04c2\u0443\3\2\2\2\u04c2\u0444\3\2\2"+ + "\2\u04c2\u0447\3\2\2\2\u04c2\u0450\3\2\2\2\u04c2\u045d\3\2\2\2\u04c2\u0463"+ + "\3\2\2\2\u04c2\u046b\3\2\2\2\u04c2\u047a\3\2\2\2\u04c2\u0483\3\2\2\2\u04c2"+ + "\u0485\3\2\2\2\u04c2\u0487\3\2\2\2\u04c2\u048f\3\2\2\2\u04c2\u0494\3\2"+ + "\2\2\u04c2\u0499\3\2\2\2\u04c2\u04a2\3\2\2\2\u04c2\u04a4\3\2\2\2\u04c2"+ + "\u04a6\3\2\2\2\u04c2\u04ac\3\2\2\2\u04c2\u04b2\3\2\2\2\u04c2\u04b9\3\2"+ + "\2\2\u04c2\u04bb\3\2\2\2\u04c3\u008b\3\2\2\2\u04c4\u04c6\7{\2\2\u04c5"+ + "\u04c7\5\u009cO\2\u04c6\u04c5\3\2\2\2\u04c6\u04c7\3\2\2\2\u04c7\u04c8"+ + "\3\2\2\2\u04c8\u04c9\7|\2\2\u04c9\u008d\3\2\2\2\u04ca\u04cb\5\6\4\2\u04cb"+ + "\u04d0\5\u0090I\2\u04cc\u04cd\7\u0082\2\2\u04cd\u04cf\5\u0090I\2\u04ce"+ + "\u04cc\3\2\2\2\u04cf\u04d2\3\2\2\2\u04d0\u04ce\3\2\2\2\u04d0\u04d1\3\2"+ + "\2\2\u04d1\u008f\3\2\2\2\u04d2\u04d0\3\2\2\2\u04d3\u04d6\5\u0190\u00c9"+ + "\2\u04d4\u04d5\7\u008f\2\2\u04d5\u04d7\5\u0092J\2\u04d6\u04d4\3\2\2\2"+ + "\u04d6\u04d7\3\2\2\2\u04d7\u0091\3\2\2\2\u04d8\u04dc\5\32\16\2\u04d9\u04dc"+ + "\5\u0122\u0092\2\u04da\u04dc\5\u0152\u00aa\2\u04db\u04d8\3\2\2\2\u04db"+ + "\u04d9\3\2\2\2\u04db\u04da\3\2\2\2\u04dc\u0093\3\2\2\2\u04dd\u04de\7\34"+ + "\2\2\u04de\u04df\5\6\4\2\u04df\u04e0\5\u00e6t\2\u04e0\u0095\3\2\2\2\u04e1"+ + "\u04e4\5\u008cG\2\u04e2\u04e4\5\u008aF\2\u04e3\u04e1\3\2\2\2\u04e3\u04e2"+ + "\3\2\2\2\u04e4\u0097\3\2\2\2\u04e5\u04e7\5\u009aN\2\u04e6\u04e5\3\2\2"+ + "\2\u04e7\u04e8\3\2\2\2\u04e8\u04e6\3\2\2\2\u04e8\u04e9\3\2\2\2\u04e9\u04ea"+ + "\3\2\2\2\u04ea\u04eb\5\u009cO\2\u04eb\u0099\3\2\2\2\u04ec\u04ed\7\27\2"+ + "\2\u04ed\u04ee\5\32\16\2\u04ee\u04ef\7\u0083\2\2\u04ef\u04f3\3\2\2\2\u04f0"+ + "\u04f1\7\37\2\2\u04f1\u04f3\7\u0083\2\2\u04f2\u04ec\3\2\2\2\u04f2\u04f0"+ + "\3\2\2\2\u04f3\u009b\3\2\2\2\u04f4\u04f6\5\u0086D\2\u04f5\u04f4\3\2\2"+ + "\2\u04f6\u04f7\3\2\2\2\u04f7\u04f5\3\2\2\2\u04f7\u04f8\3\2\2\2\u04f8\u009d"+ + "\3\2\2\2\u04f9\u0503\5\u008eH\2\u04fa\u04ff\5\32\16\2\u04fb\u04fc\7\u0082"+ + "\2\2\u04fc\u04fe\5\32\16\2\u04fd\u04fb\3\2\2\2\u04fe\u0501\3\2\2\2\u04ff"+ + "\u04fd\3\2\2\2\u04ff\u0500\3\2\2\2\u0500\u0503\3\2\2\2\u0501\u04ff\3\2"+ + "\2\2\u0502\u04f9\3\2\2\2\u0502\u04fa\3\2\2\2\u0503\u009f\3\2\2\2\u0504"+ + "\u0509\5\32\16\2\u0505\u0506\7\u0082\2\2\u0506\u0508\5\32\16\2\u0507\u0505"+ + "\3\2\2\2\u0508\u050b\3\2\2\2\u0509\u0507\3\2\2\2\u0509\u050a\3\2\2\2\u050a"+ + "\u00a1\3\2\2\2\u050b\u0509\3\2\2\2\u050c\u0510\5\u00a4S\2\u050d\u050f"+ + "\5\u00a4S\2\u050e\u050d\3\2\2\2\u050f\u0512\3\2\2\2\u0510\u050e\3\2\2"+ + "\2\u0510\u0511\3\2\2\2\u0511\u0514\3\2\2\2\u0512\u0510\3\2\2\2\u0513\u0515"+ + "\5\u00a6T\2\u0514\u0513\3\2\2\2\u0514\u0515\3\2\2\2\u0515\u0518\3\2\2"+ + "\2\u0516\u0518\5\u00a6T\2\u0517\u050c\3\2\2\2\u0517\u0516\3\2\2\2\u0518"+ + "\u00a3\3\2\2\2\u0519\u051a\7\30\2\2\u051a\u051b\7\177\2\2\u051b\u051d"+ + "\5\22\n\2\u051c\u051e\5\u0190\u00c9\2\u051d\u051c\3\2\2\2\u051d\u051e"+ + "\3\2\2\2\u051e\u051f\3\2\2\2\u051f\u0521\7\u0080\2\2\u0520\u0522\5\u00a8"+ + "U\2\u0521\u0520\3\2\2\2\u0521\u0522\3\2\2\2\u0522\u0523\3\2\2\2\u0523"+ + "\u0524\5\u008cG\2\u0524\u00a5\3\2\2\2\u0525\u0527\7\30\2\2\u0526\u0528"+ + "\5\u00a8U\2\u0527\u0526\3\2\2\2\u0527\u0528\3\2\2\2\u0528\u0529\3\2\2"+ + "\2\u0529\u052a\5\u008cG\2\u052a\u00a7\3\2\2\2\u052b\u052c\7m\2\2\u052c"+ + "\u052d\7\177\2\2\u052d\u052e\5\32\16\2\u052e\u052f\7\u0080\2\2\u052f\u00a9"+ + "\3\2\2\2\u0530\u0531\7,\2\2\u0531\u0532\5\u008cG\2\u0532\u00ab\3\2\2\2"+ + "\u0533\u0536\5\u008eH\2\u0534\u0536\5\32\16\2\u0535\u0533\3\2\2\2\u0535"+ + "\u0534\3\2\2\2\u0536\u00ad\3\2\2\2\u0537\u0538\7B\2\2\u0538\u0539\5\u00b0"+ + "Y\2\u0539\u053b\5\u00b2Z\2\u053a\u053c\7\u0084\2\2\u053b\u053a\3\2\2\2"+ + "\u053b\u053c\3\2\2\2\u053c\u00af\3\2\2\2\u053d\u0542\5\u0190\u00c9\2\u053e"+ + "\u053f\7\u0081\2\2\u053f\u0541\5\u0190\u00c9\2\u0540\u053e\3\2\2\2\u0541"+ + "\u0544\3\2\2\2\u0542\u0540\3\2\2\2\u0542\u0543\3\2\2\2\u0543\u00b1\3\2"+ + "\2\2\u0544\u0542\3\2\2\2\u0545\u0547\7{\2\2\u0546\u0548\5\u00b4[\2\u0547"+ + "\u0546\3\2\2\2\u0547\u0548\3\2\2\2\u0548\u054a\3\2\2\2\u0549\u054b\5\u00b8"+ + "]\2\u054a\u0549\3\2\2\2\u054a\u054b\3\2\2\2\u054b\u054d\3\2\2\2\u054c"+ + "\u054e\5\u00bc_\2\u054d\u054c\3\2\2\2\u054d\u054e\3\2\2\2\u054e\u054f"+ + "\3\2\2\2\u054f\u0550\7|\2\2\u0550\u00b3\3\2\2\2\u0551\u0553\5\u00b6\\"+ + "\2\u0552\u0551\3\2\2\2\u0553\u0554\3\2\2\2\u0554\u0552\3\2\2\2\u0554\u0555"+ + "\3\2\2\2\u0555\u00b5\3\2\2\2\u0556\u0557\7*\2\2\u0557\u0558\7\f\2\2\u0558"+ + "\u0559\5\u0190\u00c9\2\u0559\u055a\7\u0084\2\2\u055a\u00b7\3\2\2\2\u055b"+ + "\u055d\5\u00ba^\2\u055c\u055b\3\2\2\2\u055d\u055e\3\2\2\2\u055e\u055c"+ + "\3\2\2\2\u055e\u055f\3\2\2\2\u055f\u00b9\3\2\2\2\u0560\u0561\7i\2\2\u0561"+ + "\u0562\5\u0190\u00c9\2\u0562\u0563\7\u008f\2\2\u0563\u0564\5\4\3\2\u0564"+ + "\u0565\7\u0084\2\2\u0565\u0570\3\2\2\2\u0566\u0567\7i\2\2\u0567\u0568"+ + "\5\4\3\2\u0568\u0569\7\u0084\2\2\u0569\u0570\3\2\2\2\u056a\u056b\7i\2"+ + "\2\u056b\u056c\7[\2\2\u056c\u056d\5\4\3\2\u056d\u056e\7\u0084\2\2\u056e"+ + "\u0570\3\2\2\2\u056f\u0560\3\2\2\2\u056f\u0566\3\2\2\2\u056f\u056a\3\2"+ + "\2\2\u0570\u00bb\3\2\2\2\u0571\u0573\5\u00be`\2\u0572\u0571\3\2\2\2\u0573"+ + "\u0574\3\2\2\2\u0574\u0572\3\2\2\2\u0574\u0575\3\2\2\2\u0575\u00bd\3\2"+ + "\2\2\u0576\u0579\5\u00aeX\2\u0577\u0579\5\u00c0a\2\u0578\u0576\3\2\2\2"+ + "\u0578\u0577\3\2\2\2\u0579\u00bf\3\2\2\2\u057a\u057c\5\u013c\u009f\2\u057b"+ + "\u057a\3\2\2\2\u057b\u057c\3\2\2\2\u057c\u057e\3\2\2\2\u057d\u057f\5\u00de"+ + "p\2\u057e\u057d\3\2\2\2\u057e\u057f\3\2\2\2\u057f\u0585\3\2\2\2\u0580"+ + "\u0586\5\u016c\u00b7\2\u0581\u0586\5\u016e\u00b8\2\u0582\u0586\5\u0170"+ + "\u00b9\2\u0583\u0586\5\u0172\u00ba\2\u0584\u0586\5\u0174\u00bb\2\u0585"+ + "\u0580\3\2\2\2\u0585\u0581\3\2\2\2\u0585\u0582\3\2\2\2\u0585\u0583\3\2"+ + "\2\2\u0585\u0584\3\2\2\2\u0586\u00c1\3\2\2\2\u0587\u0588\5\u0190\u00c9"+ + "\2\u0588\u0589\7\u0093\2\2\u0589\u058b\5\u0190\u00c9\2\u058a\u058c\5\24"+ + "\13\2\u058b\u058a\3\2\2\2\u058b\u058c\3\2\2\2\u058c\u00c3\3\2\2\2\u058d"+ + "\u058e\7\u0090\2\2\u058e\u0593\5\u00c6d\2\u058f\u0590\7\u0082\2\2\u0590"+ + "\u0592\5\u00c6d\2\u0591\u058f\3\2\2\2\u0592\u0595\3\2\2\2\u0593\u0591"+ + "\3\2\2\2\u0593\u0594\3\2\2\2\u0594\u0596\3\2\2\2\u0595\u0593\3\2\2\2\u0596"+ + "\u0597\7\u0091\2\2\u0597\u00c5\3\2\2\2\u0598\u059a\5\u013c\u009f\2\u0599"+ + "\u0598\3\2\2\2\u0599\u059a\3\2\2\2\u059a\u059b\3\2\2\2\u059b\u059c\5\u0190"+ + "\u00c9\2\u059c\u00c7\3\2\2\2\u059d\u059e\7\u0083\2\2\u059e\u05a3\5\22"+ + "\n\2\u059f\u05a0\7\u0082\2\2\u05a0\u05a2\5\4\3\2\u05a1\u059f\3\2\2\2\u05a2"+ + "\u05a5\3\2\2\2\u05a3\u05a1\3\2\2\2\u05a3\u05a4\3\2\2\2\u05a4\u00c9\3\2"+ + "\2\2\u05a5\u05a3\3\2\2\2\u05a6\u05ab\5\4\3\2\u05a7\u05a8\7\u0082\2\2\u05a8"+ + "\u05aa\5\4\3\2\u05a9\u05a7\3\2\2\2\u05aa\u05ad\3\2\2\2\u05ab\u05a9\3\2"+ + "\2\2\u05ab\u05ac\3\2\2\2\u05ac\u00cb\3\2\2\2\u05ad\u05ab\3\2\2\2\u05ae"+ + "\u05b0\5\u00ceh\2\u05af\u05ae\3\2\2\2\u05b0\u05b1\3\2\2\2\u05b1\u05af"+ + "\3\2\2\2\u05b1\u05b2\3\2\2\2\u05b2\u00cd\3\2\2\2\u05b3\u05b4\7n\2\2\u05b4"+ + "\u05b5\5\u0190\u00c9\2\u05b5\u05b6\7\u0083\2\2\u05b6\u05b7\5\u00d0i\2"+ + "\u05b7\u00cf\3\2\2\2\u05b8\u05c3\5\u00d6l\2\u05b9\u05bc\5\u00d2j\2\u05ba"+ + "\u05bb\7\u0082\2\2\u05bb\u05bd\5\u00d4k\2\u05bc\u05ba\3\2\2\2\u05bc\u05bd"+ + "\3\2\2\2\u05bd\u05c0\3\2\2\2\u05be\u05bf\7\u0082\2\2\u05bf\u05c1\5\u00d6"+ + "l\2\u05c0\u05be\3\2\2\2\u05c0\u05c1\3\2\2\2\u05c1\u05c3\3\2\2\2\u05c2"+ + "\u05b8\3\2\2\2\u05c2\u05b9\3\2\2\2\u05c3\u00d1\3\2\2\2\u05c4\u05c8\5\22"+ + "\n\2\u05c5\u05c8\7\33\2\2\u05c6\u05c8\7]\2\2\u05c7\u05c4\3\2\2\2\u05c7"+ + "\u05c5\3\2\2\2\u05c7\u05c6\3\2\2\2\u05c8\u00d3\3\2\2\2\u05c9\u05ce\5\4"+ + "\3\2\u05ca\u05cb\7\u0082\2\2\u05cb\u05cd\5\4\3\2\u05cc\u05ca\3\2\2\2\u05cd"+ + "\u05d0\3\2\2\2\u05ce\u05cc\3\2\2\2\u05ce\u05cf\3\2\2\2\u05cf\u00d5\3\2"+ + "\2\2\u05d0\u05ce\3\2\2\2\u05d1\u05d2\7C\2\2\u05d2\u05d3\7\177\2\2\u05d3"+ + "\u05d4\7\u0080\2\2\u05d4\u00d7\3\2\2\2\u05d5\u05d7\7{\2\2\u05d6\u05d8"+ + "\5\u00dan\2\u05d7\u05d6\3\2\2\2\u05d7\u05d8\3\2\2\2\u05d8\u05d9\3\2\2"+ + "\2\u05d9\u05da\7|\2\2\u05da\u00d9\3\2\2\2\u05db\u05dd\5\u00dco\2\u05dc"+ + "\u05db\3\2\2\2\u05dd\u05de\3\2\2\2\u05de\u05dc\3\2\2\2\u05de\u05df\3\2"+ + "\2\2\u05df\u00db\3\2\2\2\u05e0\u05e2\5\u013c\u009f\2\u05e1\u05e0\3\2\2"+ + "\2\u05e1\u05e2\3\2\2\2\u05e2\u05e4\3\2\2\2\u05e3\u05e5\5\u00dep\2\u05e4"+ + "\u05e3\3\2\2\2\u05e4\u05e5\3\2\2\2\u05e5\u05e8\3\2\2\2\u05e6\u05e9\5\u00e2"+ + "r\2\u05e7\u05e9\5\u0180\u00c1\2\u05e8\u05e6\3\2\2\2\u05e8\u05e7\3\2\2"+ + "\2\u05e9\u00dd\3\2\2\2\u05ea\u05ec\5\u00e0q\2\u05eb\u05ea\3\2\2\2\u05ec"+ + "\u05ed\3\2\2\2\u05ed\u05eb\3\2\2\2\u05ed\u05ee\3\2\2\2\u05ee\u00df\3\2"+ + "\2\2\u05ef\u05f0\t\13\2\2\u05f0\u00e1\3\2\2\2\u05f1\u0605\5\u017c\u00bf"+ + "\2\u05f2\u0605\5\u00e4s\2\u05f3\u0605\5\u0176\u00bc\2\u05f4\u05fa\5\u0112"+ + "\u008a\2\u05f5\u05fb\5\u0116\u008c\2\u05f6\u05f7\5\u0154\u00ab\2\u05f7"+ + "\u05f8\5\32\16\2\u05f8\u05f9\7\u0084\2\2\u05f9\u05fb\3\2\2\2\u05fa\u05f5"+ + "\3\2\2\2\u05fa\u05f6\3\2\2\2\u05fb\u0605\3\2\2\2\u05fc\u0605\5\u0182\u00c2"+ + "\2\u05fd\u05fe\7k\2\2\u05fe\u0605\5\u0184\u00c3\2\u05ff\u0605\5\u016c"+ + "\u00b7\2\u0600\u0605\5\u016e\u00b8\2\u0601\u0605\5\u0170\u00b9\2\u0602"+ + "\u0605\5\u0172\u00ba\2\u0603\u0605\5\u0174\u00bb\2\u0604\u05f1\3\2\2\2"+ + "\u0604\u05f2\3\2\2\2\u0604\u05f3\3\2\2\2\u0604\u05f4\3\2\2\2\u0604\u05fc"+ + "\3\2\2\2\u0604\u05fd\3\2\2\2\u0604\u05ff\3\2\2\2\u0604\u0600\3\2\2\2\u0604"+ + "\u0601\3\2\2\2\u0604\u0602\3\2\2\2\u0604\u0603\3\2\2\2\u0605\u00e3\3\2"+ + "\2\2\u0606\u0610\5\6\4\2\u0607\u0608\5\4\3\2\u0608\u0609\7\u0081\2\2\u0609"+ + "\u060a\5\u017e\u00c0\2\u060a\u0611\3\2\2\2\u060b\u0611\5\u0184\u00c3\2"+ + "\u060c\u0611\5\u017a\u00be\2\u060d\u0611\5\u017e\u00c0\2\u060e\u0611\5"+ + "\u0188\u00c5\2\u060f\u0611\5\u0178\u00bd\2\u0610\u0607\3\2\2\2\u0610\u060b"+ + "\3\2\2\2\u0610\u060c\3\2\2\2\u0610\u060d\3\2\2\2\u0610\u060e\3\2\2\2\u0610"+ + "\u060f\3\2\2\2\u0611\u00e5\3\2\2\2\u0612\u0617\5\u00e8u\2\u0613\u0614"+ + "\7\u0082\2\2\u0614\u0616\5\u00e8u\2\u0615\u0613\3\2\2\2\u0616\u0619\3"+ + "\2\2\2\u0617\u0615\3\2\2\2\u0617\u0618\3\2\2\2\u0618\u00e7\3\2\2\2\u0619"+ + "\u0617\3\2\2\2\u061a\u061b\5\u0190\u00c9\2\u061b\u061c\7\u008f\2\2\u061c"+ + "\u061d\5\32\16\2\u061d\u00e9\3\2\2\2\u061e\u0623\5\u00ecw\2\u061f\u0620"+ + "\7\u0082\2\2\u0620\u0622\5\u00ecw\2\u0621\u061f\3\2\2\2\u0622\u0625\3"+ + "\2\2\2\u0623\u0621\3\2\2\2\u0623\u0624\3\2\2\2\u0624\u00eb\3\2\2\2\u0625"+ + "\u0623\3\2\2\2\u0626\u0629\5\u0190\u00c9\2\u0627\u0628\7\u008f\2\2\u0628"+ + "\u062a\5\u00eex\2\u0629\u0627\3\2\2\2\u0629\u062a\3\2\2\2\u062a\u00ed"+ + "\3\2\2\2\u062b\u062e\5\32\16\2\u062c\u062e\5\u0122\u0092\2\u062d\u062b"+ + "\3\2\2\2\u062d\u062c\3\2\2\2\u062e\u00ef\3\2\2\2\u062f\u0632\5\6\4\2\u0630"+ + "\u0632\7k\2\2\u0631\u062f\3\2\2\2\u0631\u0630\3\2\2\2\u0632\u00f1\3\2"+ + "\2\2\u0633\u0634\5\4\3\2\u0634\u00f3\3\2\2\2\u0635\u0638\5\u008cG\2\u0636"+ + "\u0638\7\u0084\2\2\u0637\u0635\3\2\2\2\u0637\u0636\3\2\2\2\u0638\u00f5"+ + "\3\2\2\2\u0639\u0640\5\u00fe\u0080\2\u063a\u063d\5\u00f8}\2\u063b\u063c"+ + "\7\u0082\2\2\u063c\u063e\5\u00fe\u0080\2\u063d\u063b\3\2\2\2\u063d\u063e"+ + "\3\2\2\2\u063e\u0640\3\2\2\2\u063f\u0639\3\2\2\2\u063f\u063a\3\2\2\2\u0640"+ + "\u00f7\3\2\2\2\u0641\u0646\5\u00fa~\2\u0642\u0643\7\u0082\2\2\u0643\u0645"+ + "\5\u00fa~\2\u0644\u0642\3\2\2\2\u0645\u0648\3\2\2\2\u0646\u0644\3\2\2"+ + "\2\u0646\u0647\3\2\2\2\u0647\u00f9\3\2\2\2\u0648\u0646\3\2\2\2\u0649\u064b"+ + "\5\u013c\u009f\2\u064a\u0649\3\2\2\2\u064a\u064b\3\2\2\2\u064b\u064d\3"+ + "\2\2\2\u064c\u064e\5\u00fc\177\2\u064d\u064c\3\2\2\2\u064d\u064e\3\2\2"+ + "\2\u064e\u064f\3\2\2\2\u064f\u0652\5\u018a\u00c6\2\u0650\u0652\7\r\2\2"+ + "\u0651\u064a\3\2\2\2\u0651\u0650\3\2\2\2\u0652\u00fb\3\2\2\2\u0653\u0654"+ + "\t\f\2\2\u0654\u00fd\3\2\2\2\u0655\u0657\5\u013c\u009f\2\u0656\u0655\3"+ + "\2\2\2\u0656\u0657\3\2\2\2\u0657\u0658\3\2\2\2\u0658\u0659\7K\2\2\u0659"+ + "\u065a\5\u011e\u0090\2\u065a\u065b\5\u0190\u00c9\2\u065b\u00ff\3\2\2\2"+ + "\u065c\u065e\5\u013c\u009f\2\u065d\u065c\3\2\2\2\u065d\u065e\3\2\2\2\u065e"+ + "\u0660\3\2\2\2\u065f\u0661\5\u0106\u0084\2\u0660\u065f\3\2\2\2\u0660\u0661"+ + "\3\2\2\2\u0661\u066c\3\2\2\2\u0662\u0663\7\62\2\2\u0663\u0665\5\u0108"+ + "\u0085\2\u0664\u0666\5\u0104\u0083\2\u0665\u0664\3\2\2\2\u0665\u0666\3"+ + "\2\2\2\u0666\u066d\3\2\2\2\u0667\u0668\7W\2\2\u0668\u066a\5\u0108\u0085"+ + "\2\u0669\u066b\5\u0102\u0082\2\u066a\u0669\3\2\2\2\u066a\u066b\3\2\2\2"+ + "\u066b\u066d\3\2\2\2\u066c\u0662\3\2\2\2\u066c\u0667\3\2\2\2\u066d\u0101"+ + "\3\2\2\2\u066e\u0670\5\u013c\u009f\2\u066f\u066e\3\2\2\2\u066f\u0670\3"+ + "\2\2\2\u0670\u0672\3\2\2\2\u0671\u0673\5\u0106\u0084\2\u0672\u0671\3\2"+ + "\2\2\u0672\u0673\3\2\2\2\u0673\u0674\3\2\2\2\u0674\u0675\7\62\2\2\u0675"+ + "\u0676\5\u0108\u0085\2\u0676\u0103\3\2\2\2\u0677\u0679\5\u013c\u009f\2"+ + "\u0678\u0677\3\2\2\2\u0678\u0679\3\2\2\2\u0679\u067b\3\2\2\2\u067a\u067c"+ + "\5\u0106\u0084\2\u067b\u067a\3\2\2\2\u067b\u067c\3\2\2\2\u067c\u067d\3"+ + "\2\2\2\u067d\u067e\7W\2\2\u067e\u067f\5\u0108\u0085\2\u067f\u0105\3\2"+ + "\2\2\u0680\u0688\7N\2\2\u0681\u0688\7:\2\2\u0682\u0688\7M\2\2\u0683\u0684"+ + "\7N\2\2\u0684\u0688\7:\2\2\u0685\u0686\7:\2\2\u0686\u0688\7N\2\2\u0687"+ + "\u0680\3\2\2\2\u0687\u0681\3\2\2\2\u0687\u0682\3\2\2\2\u0687\u0683\3\2"+ + "\2\2\u0687\u0685\3\2\2\2\u0688\u0107\3\2\2\2\u0689\u068c\5\u008cG\2\u068a"+ + "\u068c\7\u0084\2\2\u068b\u0689\3\2\2\2\u068b\u068a\3\2\2\2\u068c\u0109"+ + "\3\2\2\2\u068d\u068f\5\u013c\u009f\2\u068e\u068d\3\2\2\2\u068e\u068f\3"+ + "\2\2\2\u068f\u0698\3\2\2\2\u0690\u0691\7\13\2\2\u0691\u0692\5\u008cG\2"+ + "\u0692\u0693\5\u010e\u0088\2\u0693\u0699\3\2\2\2\u0694\u0695\7R\2\2\u0695"+ + "\u0696\5\u008cG\2\u0696\u0697\5\u010c\u0087\2\u0697\u0699\3\2\2\2\u0698"+ + "\u0690\3\2\2\2\u0698\u0694\3\2\2\2\u0699\u010b\3\2\2\2\u069a\u069c\5\u013c"+ + "\u009f\2\u069b\u069a\3\2\2\2\u069b\u069c\3\2\2\2\u069c\u069d\3\2\2\2\u069d"+ + "\u069e\7\13\2\2\u069e\u069f\5\u008cG\2\u069f\u010d\3\2\2\2\u06a0\u06a2"+ + "\5\u013c\u009f\2\u06a1\u06a0\3\2\2\2\u06a1\u06a2\3\2\2\2\u06a2\u06a3\3"+ + "\2\2\2\u06a3\u06a4\7R\2\2\u06a4\u06a5\5\u008cG\2\u06a5\u010f\3\2\2\2\u06a6"+ + "\u06bd\7\u0085\2\2\u06a7\u06bd\7\u0086\2\2\u06a8\u06bd\7\u008d\2\2\u06a9"+ + "\u06bd\7\u008e\2\2\u06aa\u06bd\7\u0095\2\2\u06ab\u06bd\7\u0096\2\2\u06ac"+ + "\u06bd\7a\2\2\u06ad\u06bd\7+\2\2\u06ae\u06bd\7\u0087\2\2\u06af\u06bd\7"+ + "\u0088\2\2\u06b0\u06bd\7\u0089\2\2\u06b1\u06bd\7\u008a\2\2\u06b2\u06bd"+ + "\7\u008b\2\2\u06b3\u06bd\7\u008c\2\2\u06b4\u06bd\7\u00a6\2\2\u06b5\u06bd"+ + "\5\u0156\u00ac\2\u06b6\u06bd\7\u009a\2\2\u06b7\u06bd\7\u009b\2\2\u06b8"+ + "\u06bd\7\u0091\2\2\u06b9\u06bd\7\u0090\2\2\u06ba\u06bd\7\u009d\2\2\u06bb"+ + "\u06bd\7\u009c\2\2\u06bc\u06a6\3\2\2\2\u06bc\u06a7\3\2\2\2\u06bc\u06a8"+ + "\3\2\2\2\u06bc\u06a9\3\2\2\2\u06bc\u06aa\3\2\2\2\u06bc\u06ab\3\2\2\2\u06bc"+ + "\u06ac\3\2\2\2\u06bc\u06ad\3\2\2\2\u06bc\u06ae\3\2\2\2\u06bc\u06af\3\2"+ + "\2\2\u06bc\u06b0\3\2\2\2\u06bc\u06b1\3\2\2\2\u06bc\u06b2\3\2\2\2\u06bc"+ + "\u06b3\3\2\2\2\u06bc\u06b4\3\2\2\2\u06bc\u06b5\3\2\2\2\u06bc\u06b6\3\2"+ + "\2\2\u06bc\u06b7\3\2\2\2\u06bc\u06b8\3\2\2\2\u06bc\u06b9\3\2\2\2\u06bc"+ + "\u06ba\3\2\2\2\u06bc\u06bb\3\2\2\2\u06bd\u0111\3\2\2\2\u06be\u06bf\t\r"+ + "\2\2\u06bf\u06c0\7G\2\2\u06c0\u06c1\5\6\4\2\u06c1\u06c2\7\177\2\2\u06c2"+ + "\u06c3\5\u018a\u00c6\2\u06c3\u06c4\7\u0080\2\2\u06c4\u0113\3\2\2\2\u06c5"+ + "\u06c6\7\u0083\2\2\u06c6\u06c7\t\16\2\2\u06c7\u06c9\7\177\2\2\u06c8\u06ca"+ + "\5\26\f\2\u06c9\u06c8\3\2\2\2\u06c9\u06ca\3\2\2\2\u06ca\u06cb\3\2\2\2"+ + "\u06cb\u06cc\7\u0080\2\2\u06cc\u0115\3\2\2\2\u06cd\u06d0\5\u008cG\2\u06ce"+ + "\u06d0\7\u0084\2\2\u06cf\u06cd\3\2\2\2\u06cf\u06ce\3\2\2\2\u06d0\u0117"+ + "\3\2\2\2\u06d1\u06d2\7\u0083\2\2\u06d2\u06d3\5\u00caf\2\u06d3\u0119\3"+ + "\2\2\2\u06d4\u06d8\7{\2\2\u06d5\u06d7\5\u011c\u008f\2\u06d6\u06d5\3\2"+ + "\2\2\u06d7\u06da\3\2\2\2\u06d8\u06d6\3\2\2\2\u06d8\u06d9\3\2\2\2\u06d9"+ + "\u06db\3\2\2\2\u06da\u06d8\3\2\2\2\u06db\u06dc\7|\2\2\u06dc\u011b\3\2"+ + "\2\2\u06dd\u06df\5\u013c\u009f\2\u06de\u06dd\3\2\2\2\u06de\u06df\3\2\2"+ + "\2\u06df\u06e1\3\2\2\2\u06e0\u06e2\5\u00dep\2\u06e1\u06e0\3\2\2\2\u06e1"+ + "\u06e2\3\2\2\2\u06e2\u06ed\3\2\2\2\u06e3\u06ee\5\u00e2r\2\u06e4\u06e5"+ + "\7-\2\2\u06e5\u06e7\5\6\4\2\u06e6\u06e8\5\u0150\u00a9\2\u06e7\u06e6\3"+ + "\2\2\2\u06e8\u06e9\3\2\2\2\u06e9\u06e7\3\2\2\2\u06e9\u06ea\3\2\2\2\u06ea"+ + "\u06eb\3\2\2\2\u06eb\u06ec\7\u0084\2\2\u06ec\u06ee\3\2\2\2\u06ed\u06e3"+ + "\3\2\2\2\u06ed\u06e4\3\2\2\2\u06ee\u011d\3\2\2\2\u06ef\u06f7\5\b\5\2\u06f0"+ + "\u06f2\t\17\2\2\u06f1\u06f0\3\2\2\2\u06f2\u06f5\3\2\2\2\u06f3\u06f1\3"+ + "\2\2\2\u06f3\u06f4\3\2\2\2\u06f4\u06f6\3\2\2\2\u06f5\u06f3\3\2\2\2\u06f6"+ + "\u06f8\5\u0120\u0091\2\u06f7\u06f3\3\2\2\2\u06f8\u06f9\3\2\2\2\u06f9\u06f7"+ + "\3\2\2\2\u06f9\u06fa\3\2\2\2\u06fa\u011f\3\2\2\2\u06fb\u06ff\7}\2\2\u06fc"+ + "\u06fe\7\u0082\2\2\u06fd\u06fc\3\2\2\2\u06fe\u0701\3\2\2\2\u06ff\u06fd"+ + "\3\2\2\2\u06ff\u0700\3\2\2\2\u0700\u0702\3\2\2\2\u0701\u06ff\3\2\2\2\u0702"+ + "\u0703\7~\2\2\u0703\u0121\3\2\2\2\u0704\u0710\7{\2\2\u0705\u070a\5\u00ee"+ + "x\2\u0706\u0707\7\u0082\2\2\u0707\u0709\5\u00eex\2\u0708\u0706\3\2\2\2"+ + "\u0709\u070c\3\2\2\2\u070a\u0708\3\2\2\2\u070a\u070b\3\2\2\2\u070b\u070e"+ + "\3\2\2\2\u070c\u070a\3\2\2\2\u070d\u070f\7\u0082\2\2\u070e\u070d\3\2\2"+ + "\2\u070e\u070f\3\2\2\2\u070f\u0711\3\2\2\2\u0710\u0705\3\2\2\2\u0710\u0711"+ + "\3\2\2\2\u0711\u0712\3\2\2\2\u0712\u0713\7|\2\2\u0713\u0123\3\2\2\2\u0714"+ + "\u0715\7\u0090\2\2\u0715\u071a\5\u0126\u0094\2\u0716\u0717\7\u0082\2\2"+ + "\u0717\u0719\5\u0126\u0094\2\u0718\u0716\3\2\2\2\u0719\u071c\3\2\2\2\u071a"+ + "\u0718\3\2\2\2\u071a\u071b\3\2\2\2\u071b\u071d\3\2\2\2\u071c\u071a\3\2"+ + "\2\2\u071d\u071e\7\u0091\2\2\u071e\u0125\3\2\2\2\u071f\u0721\5\u013c\u009f"+ + "\2\u0720\u071f\3\2\2\2\u0720\u0721\3\2\2\2\u0721\u0723\3\2\2\2\u0722\u0724"+ + "\5\u0128\u0095\2\u0723\u0722\3\2\2\2\u0723\u0724\3\2\2\2\u0724\u0725\3"+ + "\2\2\2\u0725\u0726\5\u0190\u00c9\2\u0726\u0127\3\2\2\2\u0727\u0728\t\20"+ + "\2\2\u0728\u0129\3\2\2\2\u0729\u072a\7\u0083\2\2\u072a\u072b\5\u00caf"+ + "\2\u072b\u012b\3\2\2\2\u072c\u0730\7{\2\2\u072d\u072f\5\u012e\u0098\2"+ + "\u072e\u072d\3\2\2\2\u072f\u0732\3\2\2\2\u0730\u072e\3\2\2\2\u0730\u0731"+ + "\3\2\2\2\u0731\u0733\3\2\2\2\u0732\u0730\3\2\2\2\u0733\u0734\7|\2\2\u0734"+ + "\u012d\3\2\2\2\u0735\u0737\5\u013c\u009f\2\u0736\u0735\3\2\2\2\u0736\u0737"+ + "\3\2\2\2\u0737\u0739\3\2\2\2\u0738\u073a\7C\2\2\u0739\u0738\3\2\2\2\u0739"+ + "\u073a\3\2\2\2\u073a\u0773\3\2\2\2\u073b\u073d\7g\2\2\u073c\u073b\3\2"+ + "\2\2\u073c\u073d\3\2\2\2\u073d\u073e\3\2\2\2\u073e\u075a\5\6\4\2\u073f"+ + "\u0741\5\u0190\u00c9\2\u0740\u0742\5\u00c4c\2\u0741\u0740\3\2\2\2\u0741"+ + "\u0742\3\2\2\2\u0742\u0743\3\2\2\2\u0743\u0745\7\177\2\2\u0744\u0746\5"+ + "\u00f6|\2\u0745\u0744\3\2\2\2\u0745\u0746\3\2\2\2\u0746\u0747\3\2\2\2"+ + "\u0747\u0749\7\u0080\2\2\u0748\u074a\5\u00ccg\2\u0749\u0748\3\2\2\2\u0749"+ + "\u074a\3\2\2\2\u074a\u074b\3\2\2\2\u074b\u074c\7\u0084\2\2\u074c\u075b"+ + "\3\2\2\2\u074d\u074e\5\u0190\u00c9\2\u074e\u074f\7{\2\2\u074f\u0750\5"+ + "\u0130\u0099\2\u0750\u0751\7|\2\2\u0751\u075b\3\2\2\2\u0752\u0753\7_\2"+ + "\2\u0753\u0754\7}\2\2\u0754\u0755\5\u00f6|\2\u0755\u0756\7~\2\2\u0756"+ + "\u0757\7{\2\2\u0757\u0758\5\u0130\u0099\2\u0758\u0759\7|\2\2\u0759\u075b"+ + "\3\2\2\2\u075a\u073f\3\2\2\2\u075a\u074d\3\2\2\2\u075a\u0752\3\2\2\2\u075b"+ + "\u0774\3\2\2\2\u075c\u075e\7g\2\2\u075d\u075c\3\2\2\2\u075d\u075e\3\2"+ + "\2\2\u075e\u075f\3\2\2\2\u075f\u0760\7k\2\2\u0760\u0762\5\u0190\u00c9"+ + "\2\u0761\u0763\5\u00c4c\2\u0762\u0761\3\2\2\2\u0762\u0763\3\2\2\2\u0763"+ + "\u0764\3\2\2\2\u0764\u0766\7\177\2\2\u0765\u0767\5\u00f6|\2\u0766\u0765"+ + "\3\2\2\2\u0766\u0767\3\2\2\2\u0767\u0768\3\2\2\2\u0768\u076a\7\u0080\2"+ + "\2\u0769\u076b\5\u00ccg\2\u076a\u0769\3\2\2\2\u076a\u076b\3\2\2\2\u076b"+ + "\u076c\3\2\2\2\u076c\u076d\7\u0084\2\2\u076d\u0774\3\2\2\2\u076e\u076f"+ + "\7(\2\2\u076f\u0770\5\6\4\2\u0770\u0771\5\u0190\u00c9\2\u0771\u0772\7"+ + "\u0084\2\2\u0772\u0774\3\2\2\2\u0773\u073c\3\2\2\2\u0773\u075d\3\2\2\2"+ + "\u0773\u076e\3\2\2\2\u0774\u012f\3\2\2\2\u0775\u0777\5\u013c\u009f\2\u0776"+ + "\u0775\3\2\2\2\u0776\u0777\3\2\2\2\u0777\u078a\3\2\2\2\u0778\u0779\7\62"+ + "\2\2\u0779\u077f\7\u0084\2\2\u077a\u077c\5\u013c\u009f\2\u077b\u077a\3"+ + "\2\2\2\u077b\u077c\3\2\2\2\u077c\u077d\3\2\2\2\u077d\u077e\7W\2\2\u077e"+ + "\u0780\7\u0084\2\2\u077f\u077b\3\2\2\2\u077f\u0780\3\2\2\2\u0780\u078b"+ + "\3\2\2\2\u0781\u0782\7W\2\2\u0782\u0788\7\u0084\2\2\u0783\u0785\5\u013c"+ + "\u009f\2\u0784\u0783\3\2\2\2\u0784\u0785\3\2\2\2\u0785\u0786\3\2\2\2\u0786"+ + "\u0787\7\62\2\2\u0787\u0789\7\u0084\2\2\u0788\u0784\3\2\2\2\u0788\u0789"+ + "\3\2\2\2\u0789\u078b\3\2\2\2\u078a\u0778\3\2\2\2\u078a\u0781\3\2\2\2\u078b"+ + "\u0131\3\2\2\2\u078c\u078d\7\u0083\2\2\u078d\u078e\5\6\4\2\u078e\u0133"+ + "\3\2\2\2\u078f\u079b\7{\2\2\u0790\u0795\5\u0136\u009c\2\u0791\u0792\7"+ + "\u0082\2\2\u0792\u0794\5\u0136\u009c\2\u0793\u0791\3\2\2\2\u0794\u0797"+ + "\3\2\2\2\u0795\u0793\3\2\2\2\u0795\u0796\3\2\2\2\u0796\u0799\3\2\2\2\u0797"+ + "\u0795\3\2\2\2\u0798\u079a\7\u0082\2\2\u0799\u0798\3\2\2\2\u0799\u079a"+ + "\3\2\2\2\u079a\u079c\3\2\2\2\u079b\u0790\3\2\2\2\u079b\u079c\3\2\2\2\u079c"+ + "\u079d\3\2\2\2\u079d\u079e\7|\2\2\u079e\u0135\3\2\2\2\u079f\u07a1\5\u013c"+ + "\u009f\2\u07a0\u079f\3\2\2\2\u07a0\u07a1\3\2\2\2\u07a1\u07a2\3\2\2\2\u07a2"+ + "\u07a5\5\u0190\u00c9\2\u07a3\u07a4\7\u008f\2\2\u07a4\u07a6\5\32\16\2\u07a5"+ + "\u07a3\3\2\2\2\u07a5\u07a6\3\2\2\2\u07a6\u0137\3\2\2\2\u07a7\u07a8\7}"+ + "\2\2\u07a8\u07a9\5\u013a\u009e\2\u07a9\u07aa\7\u0083\2\2\u07aa\u07ac\5"+ + "\u0142\u00a2\2\u07ab\u07ad\7\u0082\2\2\u07ac\u07ab\3\2\2\2\u07ac\u07ad"+ + "\3\2\2\2\u07ad\u07ae\3\2\2\2\u07ae\u07af\7~\2\2\u07af\u0139\3\2\2\2\u07b0"+ + "\u07b3\5\u016a\u00b6\2\u07b1\u07b3\5\u0190\u00c9\2\u07b2\u07b0\3\2\2\2"+ + "\u07b2\u07b1\3\2\2\2\u07b3\u013b\3\2\2\2\u07b4\u07b6\5\u013e\u00a0\2\u07b5"+ + "\u07b4\3\2\2\2\u07b6\u07b7\3\2\2\2\u07b7\u07b5\3\2\2\2\u07b7\u07b8\3\2"+ + "\2\2\u07b8\u013d\3\2\2\2\u07b9\u07bd\7}\2\2\u07ba\u07bb\5\u0140\u00a1"+ + "\2\u07bb\u07bc\7\u0083\2\2\u07bc\u07be\3\2\2\2\u07bd\u07ba\3\2\2\2\u07bd"+ + "\u07be\3\2\2\2\u07be\u07bf\3\2\2\2\u07bf\u07c1\5\u0142\u00a2\2\u07c0\u07c2"+ + "\7\u0082\2\2\u07c1\u07c0\3\2\2\2\u07c1\u07c2\3\2\2\2\u07c2\u07c3\3\2\2"+ + "\2\u07c3\u07c4\7~\2\2\u07c4\u013f\3\2\2\2\u07c5\u07c8\5\u016a\u00b6\2"+ + "\u07c6\u07c8\5\u0190\u00c9\2\u07c7\u07c5\3\2\2\2\u07c7\u07c6\3\2\2\2\u07c8"+ + "\u0141\3\2\2\2\u07c9\u07ce\5\u0144\u00a3\2\u07ca\u07cb\7\u0082\2\2\u07cb"+ + "\u07cd\5\u0144\u00a3\2\u07cc\u07ca\3\2\2\2\u07cd\u07d0\3\2\2\2\u07ce\u07cc"+ + "\3\2\2\2\u07ce\u07cf\3\2\2\2\u07cf\u0143\3\2\2\2\u07d0\u07ce\3\2\2\2\u07d1"+ + "\u07de\5\4\3\2\u07d2\u07db\7\177\2\2\u07d3\u07d8\5\u0146\u00a4\2\u07d4"+ + "\u07d5\7\u0082\2\2\u07d5\u07d7\5\u0146\u00a4\2\u07d6\u07d4\3\2\2\2\u07d7"+ + "\u07da\3\2\2\2\u07d8\u07d6\3\2\2\2\u07d8\u07d9\3\2\2\2\u07d9\u07dc\3\2"+ + "\2\2\u07da\u07d8\3\2\2\2\u07db\u07d3\3\2\2\2\u07db\u07dc\3\2\2\2\u07dc"+ + "\u07dd\3\2\2\2\u07dd\u07df\7\u0080\2\2\u07de\u07d2\3\2\2\2\u07de\u07df"+ + "\3\2\2\2\u07df\u0145\3\2\2\2\u07e0\u07e1\5\u0190\u00c9\2\u07e1\u07e2\7"+ + "\u0083\2\2\u07e2\u07e4\3\2\2\2\u07e3\u07e0\3\2\2\2\u07e3\u07e4\3\2\2\2"+ + "\u07e4\u07e5\3\2\2\2\u07e5\u07e6\5\32\16\2\u07e6\u0147\3\2\2\2\u07e7\u07ea"+ + "\5\n\6\2\u07e8\u07ea\5\22\n\2\u07e9\u07e7\3\2\2\2\u07e9\u07e8\3\2\2\2"+ + "\u07ea\u07ef\3\2\2\2\u07eb\u07ee\5\u0120\u0091\2\u07ec\u07ee\7\u0092\2"+ + "\2\u07ed\u07eb\3\2\2\2\u07ed\u07ec\3\2\2\2\u07ee\u07f1\3\2\2\2\u07ef\u07ed"+ + "\3\2\2\2\u07ef\u07f0\3\2\2\2\u07f0\u07f2\3\2\2\2\u07f1\u07ef\3\2\2\2\u07f2"+ + "\u07f3\7\u0087\2\2\u07f3\u07f7\3\2\2\2\u07f4\u07f5\7k\2\2\u07f5\u07f7"+ + "\7\u0087\2\2\u07f6\u07e9\3\2\2\2\u07f6\u07f4\3\2\2\2\u07f7\u0149\3\2\2"+ + "\2\u07f8\u07fd\5\u014c\u00a7\2\u07f9\u07fa\7\u0082\2\2\u07fa\u07fc\5\u014c"+ + "\u00a7\2\u07fb\u07f9\3\2\2\2\u07fc\u07ff\3\2\2\2\u07fd\u07fb\3\2\2\2\u07fd"+ + "\u07fe\3\2\2\2\u07fe\u014b\3\2\2\2\u07ff\u07fd\3\2\2\2\u0800\u0801\5\u0190"+ + "\u00c9\2\u0801\u0802\7\u008f\2\2\u0802\u0803\5\u014e\u00a8\2\u0803\u014d"+ + "\3\2\2\2\u0804\u0806\7\u008a\2\2\u0805\u0804\3\2\2\2\u0805\u0806\3\2\2"+ + "\2\u0806\u0807\3\2\2\2\u0807\u080a\5\32\16\2\u0808\u080a\5\u0152\u00aa"+ + "\2\u0809\u0805\3\2\2\2\u0809\u0808\3\2\2\2\u080a\u014f\3\2\2\2\u080b\u080c"+ + "\5\u0190\u00c9\2\u080c\u080d\7}\2\2\u080d\u080e\5\32\16\2\u080e\u080f"+ + "\7~\2\2\u080f\u0151\3\2\2\2\u0810\u0811\7Z\2\2\u0811\u0812\5\6\4\2\u0812"+ + "\u0813\7}\2\2\u0813\u0814\5\32\16\2\u0814\u0815\7~\2\2\u0815\u0153\3\2"+ + "\2\2\u0816\u0817\7\u008f\2\2\u0817\u0818\7\u0091\2\2\u0818\u0819\6\u00ab"+ + "\2\3\u0819\u0155\3\2\2\2\u081a\u081b\7\u0091\2\2\u081b\u081c\7\u0091\2"+ + "\2\u081c\u081d\6\u00ac\3\3\u081d\u0157\3\2\2\2\u081e\u081f\7\u0091\2\2"+ + "\u081f\u0820\7\u009d\2\2\u0820\u0821\6\u00ad\4\3\u0821\u0159\3\2\2\2\u0822"+ + "\u082a\5\u015c\u00af\2\u0823\u082a\5\u015e\u00b0\2\u0824\u082a\7s\2\2"+ + "\u0825\u082a\7t\2\2\u0826\u082a\7u\2\2\u0827\u082a\7v\2\2\u0828\u082a"+ + "\7D\2\2\u0829\u0822\3\2\2\2\u0829\u0823\3\2\2\2\u0829\u0824\3\2\2\2\u0829"+ + "\u0825\3\2\2\2\u0829\u0826\3\2\2\2\u0829\u0827\3\2\2\2\u0829\u0828\3\2"+ + "\2\2\u082a\u015b\3\2\2\2\u082b\u082c\t\21\2\2\u082c\u015d\3\2\2\2\u082d"+ + "\u0832\5\u0160\u00b1\2\u082e\u0832\5\u0162\u00b2\2\u082f\u0832\7w\2\2"+ + "\u0830\u0832\7x\2\2\u0831\u082d\3\2\2\2\u0831\u082e\3\2\2\2\u0831\u082f"+ + "\3\2\2\2\u0831\u0830\3\2\2\2\u0832\u015f\3\2\2\2\u0833\u0837\7y\2\2\u0834"+ + "\u0836\5\u0164\u00b3\2\u0835\u0834\3\2\2\2\u0836\u0839\3\2\2\2\u0837\u0835"+ + "\3\2\2\2\u0837\u0838\3\2\2\2\u0838\u083a\3\2\2\2\u0839\u0837\3\2\2\2\u083a"+ + "\u083b\7\u00ac\2\2\u083b\u0161\3\2\2\2\u083c\u0840\7z\2\2\u083d\u083f"+ + "\5\u0166\u00b4\2\u083e\u083d\3\2\2\2\u083f\u0842\3\2\2\2\u0840\u083e\3"+ + "\2\2\2\u0840\u0841\3\2\2\2\u0841\u0843\3\2\2\2\u0842\u0840\3\2\2\2\u0843"+ + "\u0844\7\u00ac\2\2\u0844\u0163\3\2\2\2\u0845\u084a\5\u0168\u00b5\2\u0846"+ + "\u084a\7\u00a8\2\2\u0847\u084a\7\u00aa\2\2\u0848\u084a\7\u00ad\2\2\u0849"+ + "\u0845\3\2\2\2\u0849\u0846\3\2\2\2\u0849\u0847\3\2\2\2\u0849\u0848\3\2"+ + "\2\2\u084a\u0165\3\2\2\2\u084b\u0850\5\u0168\u00b5\2\u084c\u0850\7\u00a8"+ + "\2\2\u084d\u0850\7\u00ab\2\2\u084e\u0850\7\u00ae\2\2\u084f\u084b\3\2\2"+ + "\2\u084f\u084c\3\2\2\2\u084f\u084d\3\2\2\2\u084f\u084e\3\2\2\2\u0850\u0167"+ + "\3\2\2\2\u0851\u0856\5\32\16\2\u0852\u0853\7\u0082\2\2\u0853\u0855\5\32"+ + "\16\2\u0854\u0852\3\2\2\2\u0855\u0858\3\2\2\2\u0856\u0854\3\2\2\2\u0856"+ + "\u0857\3\2\2\2\u0857\u085f\3\2\2\2\u0858\u0856\3\2\2\2\u0859\u085b\7\u0083"+ + "\2\2\u085a\u085c\7\u00b0\2\2\u085b\u085a\3\2\2\2\u085c\u085d\3\2\2\2\u085d"+ + "\u085b\3\2\2\2\u085d\u085e\3\2\2\2\u085e\u0860\3\2\2\2\u085f\u0859\3\2"+ + "\2\2\u085f\u0860\3\2\2\2\u0860\u0169\3\2\2\2\u0861\u0862\t\22\2\2\u0862"+ + "\u016b\3\2\2\2\u0863\u0864\7\33\2\2\u0864\u0866\5\u0190\u00c9\2\u0865"+ + "\u0867\5\u00c4c\2\u0866\u0865\3\2\2\2\u0866\u0867\3\2\2\2\u0867\u0869"+ + "\3\2\2\2\u0868\u086a\5\u00c8e\2\u0869\u0868\3\2\2\2\u0869\u086a\3\2\2"+ + "\2\u086a\u086c\3\2\2\2\u086b\u086d\5\u00ccg\2\u086c\u086b\3\2\2\2\u086c"+ + "\u086d\3\2\2\2\u086d\u086e\3\2\2\2\u086e\u0870\5\u00d8m\2\u086f\u0871"+ + "\7\u0084\2\2\u0870\u086f\3\2\2\2\u0870\u0871\3\2\2\2\u0871\u016d\3\2\2"+ + "\2\u0872\u0873\7]\2\2\u0873\u0875\5\u0190\u00c9\2\u0874\u0876\5\u00c4"+ + "c\2\u0875\u0874\3\2\2\2\u0875\u0876\3\2\2\2\u0876\u0878\3\2\2\2\u0877"+ + "\u0879\5\u0118\u008d\2\u0878\u0877\3\2\2\2\u0878\u0879\3\2\2\2\u0879\u087b"+ + "\3\2\2\2\u087a\u087c\5\u00ccg\2\u087b\u087a\3\2\2\2\u087b\u087c\3\2\2"+ + "\2\u087c\u087d\3\2\2\2\u087d\u087f\5\u011a\u008e\2\u087e\u0880\7\u0084"+ + "\2\2\u087f\u087e\3\2\2\2\u087f\u0880\3\2\2\2\u0880\u016f\3\2\2\2\u0881"+ + "\u0882\79\2\2\u0882\u0884\5\u0190\u00c9\2\u0883\u0885\5\u0124\u0093\2"+ + "\u0884\u0883\3\2\2\2\u0884\u0885\3\2\2\2\u0885\u0887\3\2\2\2\u0886\u0888"+ + "\5\u012a\u0096\2\u0887\u0886\3\2\2\2\u0887\u0888\3\2\2\2\u0888\u088a\3"+ + "\2\2\2\u0889\u088b\5\u00ccg\2\u088a\u0889\3\2\2\2\u088a\u088b\3\2\2\2"+ + "\u088b\u088c\3\2\2\2\u088c\u088e\5\u012c\u0097\2\u088d\u088f\7\u0084\2"+ + "\2\u088e\u088d\3\2\2\2\u088e\u088f\3\2\2\2\u088f\u0171\3\2\2\2\u0890\u0891"+ + "\7&\2\2\u0891\u0893\5\u0190\u00c9\2\u0892\u0894\5\u0132\u009a\2\u0893"+ + "\u0892\3\2\2\2\u0893\u0894\3\2\2\2\u0894\u0895\3\2\2\2\u0895\u0897\5\u0134"+ + "\u009b\2\u0896\u0898\7\u0084\2\2\u0897\u0896\3\2\2\2\u0897\u0898\3\2\2"+ + "\2\u0898\u0173\3\2\2\2\u0899\u089a\7 \2\2\u089a\u089b\5\u00f0y\2\u089b"+ + "\u089d\5\u0190\u00c9\2\u089c\u089e\5\u0124\u0093\2\u089d\u089c\3\2\2\2"+ + "\u089d\u089e\3\2\2\2\u089e\u089f\3\2\2\2\u089f\u08a1\7\177\2\2\u08a0\u08a2"+ + "\5\u00f6|\2\u08a1\u08a0\3\2\2\2\u08a1\u08a2\3\2\2\2\u08a2\u08a3\3\2\2"+ + "\2\u08a3\u08a5\7\u0080\2\2\u08a4\u08a6\5\u00ccg\2\u08a5\u08a4\3\2\2\2"+ + "\u08a5\u08a6\3\2\2\2\u08a6\u08a7\3\2\2\2\u08a7\u08a8\7\u0084\2\2\u08a8"+ + "\u0175\3\2\2\2\u08a9\u08aa\7(\2\2\u08aa\u08b3\5\6\4\2\u08ab\u08ac\5\u00ea"+ + "v\2\u08ac\u08ad\7\u0084\2\2\u08ad\u08b4\3\2\2\2\u08ae\u08af\5\u00f2z\2"+ + "\u08af\u08b0\7{\2\2\u08b0\u08b1\5\u010a\u0086\2\u08b1\u08b2\7|\2\2\u08b2"+ + "\u08b4\3\2\2\2\u08b3\u08ab\3\2\2\2\u08b3\u08ae\3\2\2\2\u08b4\u0177\3\2"+ + "\2\2\u08b5\u08b6\5\u00eav\2\u08b6\u08b7\7\u0084\2\2\u08b7\u0179\3\2\2"+ + "\2\u08b8\u08c6\5\u00f2z\2\u08b9\u08ba\7{\2\2\u08ba\u08bb\5\u0100\u0081"+ + "\2\u08bb\u08c0\7|\2\2\u08bc\u08bd\7\u008f\2\2\u08bd\u08be\5\u00eex\2\u08be"+ + "\u08bf\7\u0084\2\2\u08bf\u08c1\3\2\2\2\u08c0\u08bc\3\2\2\2\u08c0\u08c1"+ + "\3\2\2\2\u08c1\u08c7\3\2\2\2\u08c2\u08c3\5\u0154\u00ab\2\u08c3\u08c4\5"+ + "\32\16\2\u08c4\u08c5\7\u0084\2\2\u08c5\u08c7\3\2\2\2\u08c6\u08b9\3\2\2"+ + "\2\u08c6\u08c2\3\2\2\2\u08c7\u017b\3\2\2\2\u08c8\u08c9\7\34\2\2\u08c9"+ + "\u08ca\5\6\4\2\u08ca\u08cb\5\u00e6t\2\u08cb\u08cc\7\u0084\2\2\u08cc\u017d"+ + "\3\2\2\2\u08cd\u08ce\7_\2\2\u08ce\u08cf\7}\2\2\u08cf\u08d0\5\u00f6|\2"+ + "\u08d0\u08d9\7~\2\2\u08d1\u08d2\7{\2\2\u08d2\u08d3\5\u0100\u0081\2\u08d3"+ + "\u08d4\7|\2\2\u08d4\u08da\3\2\2\2\u08d5\u08d6\5\u0154\u00ab\2\u08d6\u08d7"+ + "\5\32\16\2\u08d7\u08d8\7\u0084\2\2\u08d8\u08da\3\2\2\2\u08d9\u08d1\3\2"+ + "\2\2\u08d9\u08d5\3\2\2\2\u08da\u017f\3\2\2\2\u08db\u08dc\7\u008e\2\2\u08dc"+ + "\u08dd\5\u0190\u00c9\2\u08dd\u08de\7\177\2\2\u08de\u08df\7\u0080\2\2\u08df"+ + "\u08e0\5\u0116\u008c\2\u08e0\u0181\3\2\2\2\u08e1\u08e2\5\u0190\u00c9\2"+ + "\u08e2\u08e4\7\177\2\2\u08e3\u08e5\5\u00f6|\2\u08e4\u08e3\3\2\2\2\u08e4"+ + "\u08e5\3\2\2\2\u08e5\u08e6\3\2\2\2\u08e6\u08e8\7\u0080\2\2\u08e7\u08e9"+ + "\5\u0114\u008b\2\u08e8\u08e7\3\2\2\2\u08e8\u08e9\3\2\2\2\u08e9\u08ea\3"+ + "\2\2\2\u08ea\u08eb\5\u0116\u008c\2\u08eb\u0183\3\2\2\2\u08ec\u08ee\5\u0186"+ + "\u00c4\2\u08ed\u08ef\5\u00c4c\2\u08ee\u08ed\3\2\2\2\u08ee\u08ef\3\2\2"+ + "\2\u08ef\u08f0\3\2\2\2\u08f0\u08f2\7\177\2\2\u08f1\u08f3\5\u00f6|\2\u08f2"+ + "\u08f1\3\2\2\2\u08f2\u08f3\3\2\2\2\u08f3\u08f4\3\2\2\2\u08f4\u08f6\7\u0080"+ + "\2\2\u08f5\u08f7\5\u00ccg\2\u08f6\u08f5\3\2\2\2\u08f6\u08f7\3\2\2\2\u08f7"+ + "\u08fd\3\2\2\2\u08f8\u08fe\5\u00f4{\2\u08f9\u08fa\5\u0154\u00ab\2\u08fa"+ + "\u08fb\5\32\16\2\u08fb\u08fc\7\u0084\2\2\u08fc\u08fe\3\2\2\2\u08fd\u08f8"+ + "\3\2\2\2\u08fd\u08f9\3\2\2\2\u08fe\u0185\3\2\2\2\u08ff\u0905\5\u0190\u00c9"+ + "\2\u0900\u0901\5\u0190\u00c9\2\u0901\u0902\7\u0093\2\2\u0902\u0903\5\u0190"+ + "\u00c9\2\u0903\u0905\3\2\2\2\u0904\u08ff\3\2\2\2\u0904\u0900\3\2\2\2\u0905"+ + "\u090d\3\2\2\2\u0906\u0908\5\24\13\2\u0907\u0906\3\2\2\2\u0907\u0908\3"+ + "\2\2\2\u0908\u0909\3\2\2\2\u0909\u090a\7\u0081\2\2\u090a\u090c\5\u0190"+ + "\u00c9\2\u090b\u0907\3\2\2\2\u090c\u090f\3\2\2\2\u090d\u090b\3\2\2\2\u090d"+ + "\u090e\3\2\2\2\u090e\u0187\3\2\2\2\u090f\u090d\3\2\2\2\u0910\u0911\7G"+ + "\2\2\u0911\u0912\5\u0110\u0089\2\u0912\u0913\7\177\2\2\u0913\u0916\5\u018a"+ + "\u00c6\2\u0914\u0915\7\u0082\2\2\u0915\u0917\5\u018a\u00c6\2\u0916\u0914"+ + "\3\2\2\2\u0916\u0917\3\2\2\2\u0917\u0918\3\2\2\2\u0918\u091e\7\u0080\2"+ + "\2\u0919\u091f\5\u0116\u008c\2\u091a\u091b\5\u0154\u00ab\2\u091b\u091c"+ + "\5\32\16\2\u091c\u091d\7\u0084\2\2\u091d\u091f\3\2\2\2\u091e\u0919\3\2"+ + "\2\2\u091e\u091a\3\2\2\2\u091f\u0189\3\2\2\2\u0920\u0921\5\6\4\2\u0921"+ + "\u0924\5\u0190\u00c9\2\u0922\u0923\7\u008f\2\2\u0923\u0925\5\32\16\2\u0924"+ + "\u0922\3\2\2\2\u0924\u0925\3\2\2\2\u0925\u018b\3\2\2\2\u0926\u0928\7\177"+ + "\2\2\u0927\u0929\5\26\f\2\u0928\u0927\3\2\2\2\u0928\u0929\3\2\2\2\u0929"+ + "\u092a\3\2\2\2\u092a\u092b\7\u0080\2\2\u092b\u018d\3\2\2\2\u092c\u092e"+ + "\7\177\2\2\u092d\u092f\5\26\f\2\u092e\u092d\3\2\2\2\u092e\u092f\3\2\2"+ + "\2\u092f\u0930\3\2\2\2\u0930\u0932\7\u0080\2\2\u0931\u0933\5J&\2\u0932"+ + "\u0931\3\2\2\2\u0932\u0933\3\2\2\2\u0933\u018f\3\2\2\2\u0934\u0935\t\23"+ + "\2\2\u0935\u0191\3\2\2\2\u012a\u0193\u0196\u0199\u019e\u01a2\u01a8\u01ab"+ + "\u01b0\u01b4\u01bb\u01bd\u01c4\u01c8\u01cd\u01d7\u01df\u01e9\u01ef\u01f2"+ + "\u01f8\u01fd\u020e\u0216\u021b\u0222\u022a\u0232\u023a\u0242\u024a\u0254"+ + "\u0256\u025c\u0261\u0269\u0271\u028c\u0292\u029b\u02a0\u02a5\u02ab\u02b9"+ + "\u02bf\u02cb\u02cf\u02d4\u02d8\u02de\u02e5\u02f8\u02fd\u0300\u030f\u0315"+ + "\u0318\u031d\u0320\u0328\u0330\u033b\u0340\u0345\u0347\u0350\u0358\u035f"+ + "\u0367\u036b\u0374\u0379\u037b\u0384\u038c\u0390\u0395\u0397\u039c\u03a0"+ + "\u03a7\u03af\u03b1\u03b5\u03b8\u03c9\u03d0\u03d4\u03de\u03e3\u03ea\u03f3"+ + "\u03f8\u03ff\u040b\u0416\u041e\u0423\u042c\u0438\u043d\u0441\u044e\u0458"+ + "\u046e\u0472\u0476\u048c\u0491\u0496\u049d\u04a0\u04b6\u04c2\u04c6\u04d0"+ + "\u04d6\u04db\u04e3\u04e8\u04f2\u04f7\u04ff\u0502\u0509\u0510\u0514\u0517"+ + "\u051d\u0521\u0527\u0535\u053b\u0542\u0547\u054a\u054d\u0554\u055e\u056f"+ + "\u0574\u0578\u057b\u057e\u0585\u058b\u0593\u0599\u05a3\u05ab\u05b1\u05bc"+ + "\u05c0\u05c2\u05c7\u05ce\u05d7\u05de\u05e1\u05e4\u05e8\u05ed\u05fa\u0604"+ + "\u0610\u0617\u0623\u0629\u062d\u0631\u0637\u063d\u063f\u0646\u064a\u064d"+ + "\u0651\u0656\u065d\u0660\u0665\u066a\u066c\u066f\u0672\u0678\u067b\u0687"+ + "\u068b\u068e\u0698\u069b\u06a1\u06bc\u06c9\u06cf\u06d8\u06de\u06e1\u06e9"+ + "\u06ed\u06f3\u06f9\u06ff\u070a\u070e\u0710\u071a\u0720\u0723\u0730\u0736"+ + "\u0739\u073c\u0741\u0745\u0749\u075a\u075d\u0762\u0766\u076a\u0773\u0776"+ + "\u077b\u077f\u0784\u0788\u078a\u0795\u0799\u079b\u07a0\u07a5\u07ac\u07b2"+ + "\u07b7\u07bd\u07c1\u07c7\u07ce\u07d8\u07db\u07de\u07e3\u07e9\u07ed\u07ef"+ + "\u07f6\u07fd\u0805\u0809\u0829\u0831\u0837\u0840\u0849\u084f\u0856\u085d"+ + "\u085f\u0866\u0869\u086c\u0870\u0875\u0878\u087b\u087f\u0884\u0887\u088a"+ + "\u088e\u0893\u0897\u089d\u08a1\u08a5\u08b3\u08c0\u08c6\u08d9\u08e4\u08e8"+ + "\u08ee\u08f2\u08f6\u08fd\u0904\u0907\u090d\u0916\u091e\u0924\u0928\u092e"+ + "\u0932"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/src/com/carvalab/archtool/parsers/CSharpParser.tokens b/src/com/carvalab/archtool/parsers/CSharpParser.tokens new file mode 100644 index 0000000..f2bac1a --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpParser.tokens @@ -0,0 +1,351 @@ +BYTE_ORDER_MARK=1 +SINGLE_LINE_DOC_COMMENT=2 +DELIMITED_DOC_COMMENT=3 +SINGLE_LINE_COMMENT=4 +DELIMITED_COMMENT=5 +WHITESPACES=6 +SHARP=7 +ABSTRACT=8 +ADD=9 +ALIAS=10 +ARGLIST=11 +AS=12 +ASCENDING=13 +ASYNC=14 +AWAIT=15 +BASE=16 +BOOL=17 +BREAK=18 +BY=19 +BYTE=20 +CASE=21 +CATCH=22 +CHAR=23 +CHECKED=24 +CLASS=25 +CONST=26 +CONTINUE=27 +DECIMAL=28 +DEFAULT=29 +DELEGATE=30 +DESCENDING=31 +DO=32 +DOUBLE=33 +DYNAMIC=34 +ELSE=35 +ENUM=36 +EQUALS=37 +EVENT=38 +EXPLICIT=39 +EXTERN=40 +FALSE=41 +FINALLY=42 +FIXED=43 +FLOAT=44 +FOR=45 +FOREACH=46 +FROM=47 +GET=48 +GOTO=49 +GROUP=50 +IF=51 +IMPLICIT=52 +IN=53 +INT=54 +INTERFACE=55 +INTERNAL=56 +INTO=57 +IS=58 +JOIN=59 +LET=60 +LOCK=61 +LONG=62 +NAMEOF=63 +NAMESPACE=64 +NEW=65 +NULL=66 +OBJECT=67 +ON=68 +OPERATOR=69 +ORDERBY=70 +OUT=71 +OVERRIDE=72 +PARAMS=73 +PARTIAL=74 +PRIVATE=75 +PROTECTED=76 +PUBLIC=77 +READONLY=78 +REF=79 +REMOVE=80 +RETURN=81 +SBYTE=82 +SEALED=83 +SELECT=84 +SET=85 +SHORT=86 +SIZEOF=87 +STACKALLOC=88 +STATIC=89 +STRING=90 +STRUCT=91 +SWITCH=92 +THIS=93 +THROW=94 +TRUE=95 +TRY=96 +TYPEOF=97 +UINT=98 +ULONG=99 +UNCHECKED=100 +UNSAFE=101 +USHORT=102 +USING=103 +VIRTUAL=104 +VOID=105 +VOLATILE=106 +WHEN=107 +WHERE=108 +WHILE=109 +YIELD=110 +IDENTIFIER=111 +LITERAL_ACCESS=112 +INTEGER_LITERAL=113 +HEX_INTEGER_LITERAL=114 +REAL_LITERAL=115 +CHARACTER_LITERAL=116 +REGULAR_STRING=117 +VERBATIUM_STRING=118 +INTERPOLATED_REGULAR_STRING_START=119 +INTERPOLATED_VERBATIUM_STRING_START=120 +OPEN_BRACE=121 +CLOSE_BRACE=122 +OPEN_BRACKET=123 +CLOSE_BRACKET=124 +OPEN_PARENS=125 +CLOSE_PARENS=126 +DOT=127 +COMMA=128 +COLON=129 +SEMICOLON=130 +PLUS=131 +MINUS=132 +STAR=133 +DIV=134 +PERCENT=135 +AMP=136 +BITWISE_OR=137 +CARET=138 +BANG=139 +TILDE=140 +ASSIGNMENT=141 +LT=142 +GT=143 +INTERR=144 +DOUBLE_COLON=145 +OP_COALESCING=146 +OP_INC=147 +OP_DEC=148 +OP_AND=149 +OP_OR=150 +OP_PTR=151 +OP_EQ=152 +OP_NE=153 +OP_LE=154 +OP_GE=155 +OP_ADD_ASSIGNMENT=156 +OP_SUB_ASSIGNMENT=157 +OP_MULT_ASSIGNMENT=158 +OP_DIV_ASSIGNMENT=159 +OP_MOD_ASSIGNMENT=160 +OP_AND_ASSIGNMENT=161 +OP_OR_ASSIGNMENT=162 +OP_XOR_ASSIGNMENT=163 +OP_LEFT_SHIFT=164 +OP_LEFT_SHIFT_ASSIGNMENT=165 +DOUBLE_CURLY_INSIDE=166 +OPEN_BRACE_INSIDE=167 +REGULAR_CHAR_INSIDE=168 +VERBATIUM_DOUBLE_QUOTE_INSIDE=169 +DOUBLE_QUOTE_INSIDE=170 +REGULAR_STRING_INSIDE=171 +VERBATIUM_INSIDE_STRING=172 +CLOSE_BRACE_INSIDE=173 +FORMAT_STRING=174 +HIDDEN_WHITESPACES=175 +DIGITS=176 +DEFINE=177 +UNDEF=178 +ELIF=179 +ENDIF=180 +LINE=181 +ERROR=182 +WARNING=183 +REGION=184 +ENDREGION=185 +PRAGMA=186 +HIDDEN_HIDDEN=187 +CONDITIONAL_SYMBOL=188 +HIDDEN_NEW_LINE=189 +TEXT=190 +DOUBLE_CURLY_CLOSE_INSIDE=191 +'\u00EF\u00BB\u00BF'=1 +'#'=7 +'abstract'=8 +'add'=9 +'alias'=10 +'__arglist'=11 +'as'=12 +'ascending'=13 +'async'=14 +'await'=15 +'base'=16 +'bool'=17 +'break'=18 +'by'=19 +'byte'=20 +'case'=21 +'catch'=22 +'char'=23 +'checked'=24 +'class'=25 +'const'=26 +'continue'=27 +'decimal'=28 +'default'=29 +'delegate'=30 +'descending'=31 +'do'=32 +'double'=33 +'dynamic'=34 +'else'=35 +'enum'=36 +'equals'=37 +'event'=38 +'explicit'=39 +'extern'=40 +'false'=41 +'finally'=42 +'fixed'=43 +'float'=44 +'for'=45 +'foreach'=46 +'from'=47 +'get'=48 +'goto'=49 +'group'=50 +'if'=51 +'implicit'=52 +'in'=53 +'int'=54 +'interface'=55 +'internal'=56 +'into'=57 +'is'=58 +'join'=59 +'let'=60 +'lock'=61 +'long'=62 +'nameof'=63 +'namespace'=64 +'new'=65 +'null'=66 +'object'=67 +'on'=68 +'operator'=69 +'orderby'=70 +'out'=71 +'override'=72 +'params'=73 +'partial'=74 +'private'=75 +'protected'=76 +'public'=77 +'readonly'=78 +'ref'=79 +'remove'=80 +'return'=81 +'sbyte'=82 +'sealed'=83 +'select'=84 +'set'=85 +'short'=86 +'sizeof'=87 +'stackalloc'=88 +'static'=89 +'string'=90 +'struct'=91 +'switch'=92 +'this'=93 +'throw'=94 +'true'=95 +'try'=96 +'typeof'=97 +'uint'=98 +'ulong'=99 +'unchecked'=100 +'unsafe'=101 +'ushort'=102 +'using'=103 +'virtual'=104 +'void'=105 +'volatile'=106 +'when'=107 +'where'=108 +'while'=109 +'yield'=110 +'$"'=119 +'$@"'=120 +'['=123 +']'=124 +'('=125 +')'=126 +'.'=127 +','=128 +':'=129 +';'=130 +'+'=131 +'-'=132 +'*'=133 +'/'=134 +'%'=135 +'&'=136 +'|'=137 +'^'=138 +'!'=139 +'~'=140 +'='=141 +'<'=142 +'>'=143 +'?'=144 +'::'=145 +'??'=146 +'++'=147 +'--'=148 +'&&'=149 +'||'=150 +'->'=151 +'=='=152 +'!='=153 +'<='=154 +'>='=155 +'+='=156 +'-='=157 +'*='=158 +'/='=159 +'%='=160 +'&='=161 +'|='=162 +'^='=163 +'<<'=164 +'<<='=165 +'{{'=166 +'""'=169 +'"'=170 +'}}'=191 +'define'=177 +'undef'=178 +'elif'=179 +'endif'=180 +'line'=181 +'hidden'=187 diff --git a/src/com/carvalab/archtool/parsers/CSharpParserBaseListener.java b/src/com/carvalab/archtool/parsers/CSharpParserBaseListener.java new file mode 100644 index 0000000..838efaa --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpParserBaseListener.java @@ -0,0 +1,2895 @@ +// Generated from CSharpParser.g4 by ANTLR 4.6 + package com.carvalab.archtool.parsers; + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link CSharpParserListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +public class CSharpParserBaseListener implements CSharpParserListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCompilation_unit(CSharpParser.Compilation_unitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCompilation_unit(CSharpParser.Compilation_unitContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamespace_or_type_name(CSharpParser.Namespace_or_type_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamespace_or_type_name(CSharpParser.Namespace_or_type_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType(CSharpParser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType(CSharpParser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBase_type(CSharpParser.Base_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBase_type(CSharpParser.Base_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimple_type(CSharpParser.Simple_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimple_type(CSharpParser.Simple_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNumeric_type(CSharpParser.Numeric_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNumeric_type(CSharpParser.Numeric_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntegral_type(CSharpParser.Integral_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntegral_type(CSharpParser.Integral_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFloating_point_type(CSharpParser.Floating_point_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFloating_point_type(CSharpParser.Floating_point_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClass_type(CSharpParser.Class_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClass_type(CSharpParser.Class_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_argument_list(CSharpParser.Type_argument_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_argument_list(CSharpParser.Type_argument_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArgument_list(CSharpParser.Argument_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArgument_list(CSharpParser.Argument_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArgument(CSharpParser.ArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArgument(CSharpParser.ArgumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpression(CSharpParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression(CSharpParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNon_assignment_expression(CSharpParser.Non_assignment_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNon_assignment_expression(CSharpParser.Non_assignment_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignment(CSharpParser.AssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignment(CSharpParser.AssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignment_operator(CSharpParser.Assignment_operatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignment_operator(CSharpParser.Assignment_operatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditional_expression(CSharpParser.Conditional_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditional_expression(CSharpParser.Conditional_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNull_coalescing_expression(CSharpParser.Null_coalescing_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNull_coalescing_expression(CSharpParser.Null_coalescing_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditional_or_expression(CSharpParser.Conditional_or_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditional_or_expression(CSharpParser.Conditional_or_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditional_and_expression(CSharpParser.Conditional_and_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditional_and_expression(CSharpParser.Conditional_and_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInclusive_or_expression(CSharpParser.Inclusive_or_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInclusive_or_expression(CSharpParser.Inclusive_or_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExclusive_or_expression(CSharpParser.Exclusive_or_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExclusive_or_expression(CSharpParser.Exclusive_or_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnd_expression(CSharpParser.And_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnd_expression(CSharpParser.And_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEquality_expression(CSharpParser.Equality_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEquality_expression(CSharpParser.Equality_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelational_expression(CSharpParser.Relational_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelational_expression(CSharpParser.Relational_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShift_expression(CSharpParser.Shift_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShift_expression(CSharpParser.Shift_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAdditive_expression(CSharpParser.Additive_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAdditive_expression(CSharpParser.Additive_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultiplicative_expression(CSharpParser.Multiplicative_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultiplicative_expression(CSharpParser.Multiplicative_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnary_expression(CSharpParser.Unary_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnary_expression(CSharpParser.Unary_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimary_expression(CSharpParser.Primary_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimary_expression(CSharpParser.Primary_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteralExpression(CSharpParser.LiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteralExpression(CSharpParser.LiteralExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSimpleNameExpression(CSharpParser.SimpleNameExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSimpleNameExpression(CSharpParser.SimpleNameExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParenthesisExpressions(CSharpParser.ParenthesisExpressionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParenthesisExpressions(CSharpParser.ParenthesisExpressionsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberAccessExpression(CSharpParser.MemberAccessExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberAccessExpression(CSharpParser.MemberAccessExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteralAccessExpression(CSharpParser.LiteralAccessExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteralAccessExpression(CSharpParser.LiteralAccessExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThisReferenceExpression(CSharpParser.ThisReferenceExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThisReferenceExpression(CSharpParser.ThisReferenceExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBaseAccessExpression(CSharpParser.BaseAccessExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBaseAccessExpression(CSharpParser.BaseAccessExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObjectCreationExpression(CSharpParser.ObjectCreationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObjectCreationExpression(CSharpParser.ObjectCreationExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeofExpression(CSharpParser.TypeofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeofExpression(CSharpParser.TypeofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCheckedExpression(CSharpParser.CheckedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCheckedExpression(CSharpParser.CheckedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUncheckedExpression(CSharpParser.UncheckedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUncheckedExpression(CSharpParser.UncheckedExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDefaultValueExpression(CSharpParser.DefaultValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDefaultValueExpression(CSharpParser.DefaultValueExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnonymousMethodExpression(CSharpParser.AnonymousMethodExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnonymousMethodExpression(CSharpParser.AnonymousMethodExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSizeofExpression(CSharpParser.SizeofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSizeofExpression(CSharpParser.SizeofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNameofExpression(CSharpParser.NameofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNameofExpression(CSharpParser.NameofExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMember_access(CSharpParser.Member_accessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMember_access(CSharpParser.Member_accessContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBracket_expression(CSharpParser.Bracket_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBracket_expression(CSharpParser.Bracket_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIndexer_argument(CSharpParser.Indexer_argumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIndexer_argument(CSharpParser.Indexer_argumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPredefined_type(CSharpParser.Predefined_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPredefined_type(CSharpParser.Predefined_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpression_list(CSharpParser.Expression_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression_list(CSharpParser.Expression_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObject_or_collection_initializer(CSharpParser.Object_or_collection_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObject_or_collection_initializer(CSharpParser.Object_or_collection_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObject_initializer(CSharpParser.Object_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObject_initializer(CSharpParser.Object_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMember_initializer_list(CSharpParser.Member_initializer_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMember_initializer_list(CSharpParser.Member_initializer_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMember_initializer(CSharpParser.Member_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMember_initializer(CSharpParser.Member_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInitializer_value(CSharpParser.Initializer_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInitializer_value(CSharpParser.Initializer_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCollection_initializer(CSharpParser.Collection_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCollection_initializer(CSharpParser.Collection_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElement_initializer(CSharpParser.Element_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElement_initializer(CSharpParser.Element_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnonymous_object_initializer(CSharpParser.Anonymous_object_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnonymous_object_initializer(CSharpParser.Anonymous_object_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMember_declarator_list(CSharpParser.Member_declarator_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMember_declarator_list(CSharpParser.Member_declarator_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMember_declarator(CSharpParser.Member_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMember_declarator(CSharpParser.Member_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnbound_type_name(CSharpParser.Unbound_type_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnbound_type_name(CSharpParser.Unbound_type_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneric_dimension_specifier(CSharpParser.Generic_dimension_specifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneric_dimension_specifier(CSharpParser.Generic_dimension_specifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsType(CSharpParser.IsTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsType(CSharpParser.IsTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLambda_expression(CSharpParser.Lambda_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambda_expression(CSharpParser.Lambda_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnonymous_function_signature(CSharpParser.Anonymous_function_signatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnonymous_function_signature(CSharpParser.Anonymous_function_signatureContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplicit_anonymous_function_parameter_list(CSharpParser.Explicit_anonymous_function_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplicit_anonymous_function_parameter_list(CSharpParser.Explicit_anonymous_function_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplicit_anonymous_function_parameter(CSharpParser.Explicit_anonymous_function_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplicit_anonymous_function_parameter(CSharpParser.Explicit_anonymous_function_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterImplicit_anonymous_function_parameter_list(CSharpParser.Implicit_anonymous_function_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitImplicit_anonymous_function_parameter_list(CSharpParser.Implicit_anonymous_function_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnonymous_function_body(CSharpParser.Anonymous_function_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnonymous_function_body(CSharpParser.Anonymous_function_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuery_expression(CSharpParser.Query_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuery_expression(CSharpParser.Query_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFrom_clause(CSharpParser.From_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFrom_clause(CSharpParser.From_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuery_body(CSharpParser.Query_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuery_body(CSharpParser.Query_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuery_body_clause(CSharpParser.Query_body_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuery_body_clause(CSharpParser.Query_body_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLet_clause(CSharpParser.Let_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLet_clause(CSharpParser.Let_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhere_clause(CSharpParser.Where_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhere_clause(CSharpParser.Where_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCombined_join_clause(CSharpParser.Combined_join_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCombined_join_clause(CSharpParser.Combined_join_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrderby_clause(CSharpParser.Orderby_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrderby_clause(CSharpParser.Orderby_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrdering(CSharpParser.OrderingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrdering(CSharpParser.OrderingContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelect_or_group_clause(CSharpParser.Select_or_group_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelect_or_group_clause(CSharpParser.Select_or_group_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQuery_continuation(CSharpParser.Query_continuationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQuery_continuation(CSharpParser.Query_continuationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledStatement(CSharpParser.LabeledStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledStatement(CSharpParser.LabeledStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDeclarationStatement(CSharpParser.DeclarationStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDeclarationStatement(CSharpParser.DeclarationStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmbeddedStatement(CSharpParser.EmbeddedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmbeddedStatement(CSharpParser.EmbeddedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmbedded_statement(CSharpParser.Embedded_statementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmbedded_statement(CSharpParser.Embedded_statementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmptyStatement(CSharpParser.EmptyStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyStatement(CSharpParser.EmptyStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpressionStatement(CSharpParser.ExpressionStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpressionStatement(CSharpParser.ExpressionStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIfStatement(CSharpParser.IfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIfStatement(CSharpParser.IfStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchStatement(CSharpParser.SwitchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchStatement(CSharpParser.SwitchStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhileStatement(CSharpParser.WhileStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhileStatement(CSharpParser.WhileStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDoStatement(CSharpParser.DoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDoStatement(CSharpParser.DoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForStatement(CSharpParser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForStatement(CSharpParser.ForStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForeschStatement(CSharpParser.ForeschStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForeschStatement(CSharpParser.ForeschStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBreakStatement(CSharpParser.BreakStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBreakStatement(CSharpParser.BreakStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterContinueStatement(CSharpParser.ContinueStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitContinueStatement(CSharpParser.ContinueStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGotoStatement(CSharpParser.GotoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGotoStatement(CSharpParser.GotoStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnStatement(CSharpParser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnStatement(CSharpParser.ReturnStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThrowStatement(CSharpParser.ThrowStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThrowStatement(CSharpParser.ThrowStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTryStatement(CSharpParser.TryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTryStatement(CSharpParser.TryStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCheckedStatement(CSharpParser.CheckedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCheckedStatement(CSharpParser.CheckedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUncheckedStatement(CSharpParser.UncheckedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUncheckedStatement(CSharpParser.UncheckedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLockStatement(CSharpParser.LockStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLockStatement(CSharpParser.LockStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUsingStatement(CSharpParser.UsingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUsingStatement(CSharpParser.UsingStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldStatement(CSharpParser.YieldStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldStatement(CSharpParser.YieldStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnsafeStatement(CSharpParser.UnsafeStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnsafeStatement(CSharpParser.UnsafeStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixedStatement(CSharpParser.FixedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixedStatement(CSharpParser.FixedStatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlock(CSharpParser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlock(CSharpParser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocal_variable_declaration(CSharpParser.Local_variable_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocal_variable_declaration(CSharpParser.Local_variable_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocal_variable_declarator(CSharpParser.Local_variable_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocal_variable_declarator(CSharpParser.Local_variable_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocal_variable_initializer(CSharpParser.Local_variable_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocal_variable_initializer(CSharpParser.Local_variable_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocal_constant_declaration(CSharpParser.Local_constant_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocal_constant_declaration(CSharpParser.Local_constant_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIf_body(CSharpParser.If_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIf_body(CSharpParser.If_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitch_section(CSharpParser.Switch_sectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitch_section(CSharpParser.Switch_sectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitch_label(CSharpParser.Switch_labelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitch_label(CSharpParser.Switch_labelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatement_list(CSharpParser.Statement_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatement_list(CSharpParser.Statement_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFor_initializer(CSharpParser.For_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFor_initializer(CSharpParser.For_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFor_iterator(CSharpParser.For_iteratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFor_iterator(CSharpParser.For_iteratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCatch_clauses(CSharpParser.Catch_clausesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCatch_clauses(CSharpParser.Catch_clausesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSpecific_catch_clause(CSharpParser.Specific_catch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSpecific_catch_clause(CSharpParser.Specific_catch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGeneral_catch_clause(CSharpParser.General_catch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGeneral_catch_clause(CSharpParser.General_catch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterException_filter(CSharpParser.Exception_filterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitException_filter(CSharpParser.Exception_filterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFinally_clause(CSharpParser.Finally_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFinally_clause(CSharpParser.Finally_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterResource_acquisition(CSharpParser.Resource_acquisitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResource_acquisition(CSharpParser.Resource_acquisitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamespace_declaration(CSharpParser.Namespace_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamespace_declaration(CSharpParser.Namespace_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQualified_identifier(CSharpParser.Qualified_identifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQualified_identifier(CSharpParser.Qualified_identifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamespace_body(CSharpParser.Namespace_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamespace_body(CSharpParser.Namespace_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExtern_alias_directives(CSharpParser.Extern_alias_directivesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExtern_alias_directives(CSharpParser.Extern_alias_directivesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExtern_alias_directive(CSharpParser.Extern_alias_directiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExtern_alias_directive(CSharpParser.Extern_alias_directiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUsing_directives(CSharpParser.Using_directivesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUsing_directives(CSharpParser.Using_directivesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUsingAliasDirective(CSharpParser.UsingAliasDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUsingAliasDirective(CSharpParser.UsingAliasDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUsingNamespaceDirective(CSharpParser.UsingNamespaceDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUsingNamespaceDirective(CSharpParser.UsingNamespaceDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUsingStaticDirective(CSharpParser.UsingStaticDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUsingStaticDirective(CSharpParser.UsingStaticDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamespace_member_declarations(CSharpParser.Namespace_member_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamespace_member_declarations(CSharpParser.Namespace_member_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNamespace_member_declaration(CSharpParser.Namespace_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNamespace_member_declaration(CSharpParser.Namespace_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_declaration(CSharpParser.Type_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_declaration(CSharpParser.Type_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQualified_alias_member(CSharpParser.Qualified_alias_memberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQualified_alias_member(CSharpParser.Qualified_alias_memberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_parameter_list(CSharpParser.Type_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_parameter_list(CSharpParser.Type_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_parameter(CSharpParser.Type_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_parameter(CSharpParser.Type_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClass_base(CSharpParser.Class_baseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClass_base(CSharpParser.Class_baseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterface_type_list(CSharpParser.Interface_type_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterface_type_list(CSharpParser.Interface_type_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_parameter_constraints_clauses(CSharpParser.Type_parameter_constraints_clausesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_parameter_constraints_clauses(CSharpParser.Type_parameter_constraints_clausesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_parameter_constraints_clause(CSharpParser.Type_parameter_constraints_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_parameter_constraints_clause(CSharpParser.Type_parameter_constraints_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType_parameter_constraints(CSharpParser.Type_parameter_constraintsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType_parameter_constraints(CSharpParser.Type_parameter_constraintsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimary_constraint(CSharpParser.Primary_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimary_constraint(CSharpParser.Primary_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSecondary_constraints(CSharpParser.Secondary_constraintsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSecondary_constraints(CSharpParser.Secondary_constraintsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructor_constraint(CSharpParser.Constructor_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructor_constraint(CSharpParser.Constructor_constraintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClass_body(CSharpParser.Class_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClass_body(CSharpParser.Class_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClass_member_declarations(CSharpParser.Class_member_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClass_member_declarations(CSharpParser.Class_member_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClass_member_declaration(CSharpParser.Class_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClass_member_declaration(CSharpParser.Class_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAll_member_modifiers(CSharpParser.All_member_modifiersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAll_member_modifiers(CSharpParser.All_member_modifiersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAll_member_modifier(CSharpParser.All_member_modifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAll_member_modifier(CSharpParser.All_member_modifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCommon_member_declaration(CSharpParser.Common_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCommon_member_declaration(CSharpParser.Common_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTyped_member_declaration(CSharpParser.Typed_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTyped_member_declaration(CSharpParser.Typed_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstant_declarators(CSharpParser.Constant_declaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstant_declarators(CSharpParser.Constant_declaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstant_declarator(CSharpParser.Constant_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstant_declarator(CSharpParser.Constant_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariable_declarators(CSharpParser.Variable_declaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariable_declarators(CSharpParser.Variable_declaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariable_declarator(CSharpParser.Variable_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariable_declarator(CSharpParser.Variable_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariable_initializer(CSharpParser.Variable_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariable_initializer(CSharpParser.Variable_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturn_type(CSharpParser.Return_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturn_type(CSharpParser.Return_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMember_name(CSharpParser.Member_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMember_name(CSharpParser.Member_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethod_body(CSharpParser.Method_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethod_body(CSharpParser.Method_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormal_parameter_list(CSharpParser.Formal_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormal_parameter_list(CSharpParser.Formal_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixed_parameters(CSharpParser.Fixed_parametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixed_parameters(CSharpParser.Fixed_parametersContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixed_parameter(CSharpParser.Fixed_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixed_parameter(CSharpParser.Fixed_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParameter_modifier(CSharpParser.Parameter_modifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParameter_modifier(CSharpParser.Parameter_modifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParameter_array(CSharpParser.Parameter_arrayContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParameter_array(CSharpParser.Parameter_arrayContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAccessor_declarations(CSharpParser.Accessor_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAccessor_declarations(CSharpParser.Accessor_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGet_accessor_declaration(CSharpParser.Get_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGet_accessor_declaration(CSharpParser.Get_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSet_accessor_declaration(CSharpParser.Set_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSet_accessor_declaration(CSharpParser.Set_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAccessor_modifier(CSharpParser.Accessor_modifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAccessor_modifier(CSharpParser.Accessor_modifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAccessor_body(CSharpParser.Accessor_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAccessor_body(CSharpParser.Accessor_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEvent_accessor_declarations(CSharpParser.Event_accessor_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEvent_accessor_declarations(CSharpParser.Event_accessor_declarationsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAdd_accessor_declaration(CSharpParser.Add_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAdd_accessor_declaration(CSharpParser.Add_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRemove_accessor_declaration(CSharpParser.Remove_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRemove_accessor_declaration(CSharpParser.Remove_accessor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOverloadable_operator(CSharpParser.Overloadable_operatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOverloadable_operator(CSharpParser.Overloadable_operatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConversion_operator_declarator(CSharpParser.Conversion_operator_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConversion_operator_declarator(CSharpParser.Conversion_operator_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructor_initializer(CSharpParser.Constructor_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructor_initializer(CSharpParser.Constructor_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBody(CSharpParser.BodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBody(CSharpParser.BodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStruct_interfaces(CSharpParser.Struct_interfacesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStruct_interfaces(CSharpParser.Struct_interfacesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStruct_body(CSharpParser.Struct_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStruct_body(CSharpParser.Struct_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStruct_member_declaration(CSharpParser.Struct_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStruct_member_declaration(CSharpParser.Struct_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArray_type(CSharpParser.Array_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArray_type(CSharpParser.Array_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRank_specifier(CSharpParser.Rank_specifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRank_specifier(CSharpParser.Rank_specifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArray_initializer(CSharpParser.Array_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArray_initializer(CSharpParser.Array_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariant_type_parameter_list(CSharpParser.Variant_type_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariant_type_parameter_list(CSharpParser.Variant_type_parameter_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariant_type_parameter(CSharpParser.Variant_type_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariant_type_parameter(CSharpParser.Variant_type_parameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariance_annotation(CSharpParser.Variance_annotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariance_annotation(CSharpParser.Variance_annotationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterface_base(CSharpParser.Interface_baseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterface_base(CSharpParser.Interface_baseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterface_body(CSharpParser.Interface_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterface_body(CSharpParser.Interface_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterface_member_declaration(CSharpParser.Interface_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterface_member_declaration(CSharpParser.Interface_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterface_accessors(CSharpParser.Interface_accessorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterface_accessors(CSharpParser.Interface_accessorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnum_base(CSharpParser.Enum_baseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnum_base(CSharpParser.Enum_baseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnum_body(CSharpParser.Enum_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnum_body(CSharpParser.Enum_bodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnum_member_declaration(CSharpParser.Enum_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnum_member_declaration(CSharpParser.Enum_member_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGlobal_attribute_section(CSharpParser.Global_attribute_sectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGlobal_attribute_section(CSharpParser.Global_attribute_sectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGlobal_attribute_target(CSharpParser.Global_attribute_targetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGlobal_attribute_target(CSharpParser.Global_attribute_targetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAttributes(CSharpParser.AttributesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAttributes(CSharpParser.AttributesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAttribute_section(CSharpParser.Attribute_sectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAttribute_section(CSharpParser.Attribute_sectionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAttribute_target(CSharpParser.Attribute_targetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAttribute_target(CSharpParser.Attribute_targetContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAttribute_list(CSharpParser.Attribute_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAttribute_list(CSharpParser.Attribute_listContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAttribute(CSharpParser.AttributeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAttribute(CSharpParser.AttributeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAttribute_argument(CSharpParser.Attribute_argumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAttribute_argument(CSharpParser.Attribute_argumentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPointer_type(CSharpParser.Pointer_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPointer_type(CSharpParser.Pointer_typeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixed_pointer_declarators(CSharpParser.Fixed_pointer_declaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixed_pointer_declarators(CSharpParser.Fixed_pointer_declaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixed_pointer_declarator(CSharpParser.Fixed_pointer_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixed_pointer_declarator(CSharpParser.Fixed_pointer_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixed_pointer_initializer(CSharpParser.Fixed_pointer_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixed_pointer_initializer(CSharpParser.Fixed_pointer_initializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFixed_size_buffer_declarator(CSharpParser.Fixed_size_buffer_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFixed_size_buffer_declarator(CSharpParser.Fixed_size_buffer_declaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocal_variable_initializer_unsafe(CSharpParser.Local_variable_initializer_unsafeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocal_variable_initializer_unsafe(CSharpParser.Local_variable_initializer_unsafeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRight_arrow(CSharpParser.Right_arrowContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRight_arrow(CSharpParser.Right_arrowContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRight_shift(CSharpParser.Right_shiftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRight_shift(CSharpParser.Right_shiftContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRight_shift_assignment(CSharpParser.Right_shift_assignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRight_shift_assignment(CSharpParser.Right_shift_assignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteral(CSharpParser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteral(CSharpParser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBoolean_literal(CSharpParser.Boolean_literalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBoolean_literal(CSharpParser.Boolean_literalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterString_literal(CSharpParser.String_literalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitString_literal(CSharpParser.String_literalContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterpolated_regular_string(CSharpParser.Interpolated_regular_stringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterpolated_regular_string(CSharpParser.Interpolated_regular_stringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterpolated_verbatium_string(CSharpParser.Interpolated_verbatium_stringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterpolated_verbatium_string(CSharpParser.Interpolated_verbatium_stringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterpolated_regular_string_part(CSharpParser.Interpolated_regular_string_partContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterpolated_regular_string_part(CSharpParser.Interpolated_regular_string_partContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterpolated_verbatium_string_part(CSharpParser.Interpolated_verbatium_string_partContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterpolated_verbatium_string_part(CSharpParser.Interpolated_verbatium_string_partContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterpolated_string_expression(CSharpParser.Interpolated_string_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterpolated_string_expression(CSharpParser.Interpolated_string_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterKeyword(CSharpParser.KeywordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitKeyword(CSharpParser.KeywordContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClass_definition(CSharpParser.Class_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClass_definition(CSharpParser.Class_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStruct_definition(CSharpParser.Struct_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStruct_definition(CSharpParser.Struct_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterface_definition(CSharpParser.Interface_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterface_definition(CSharpParser.Interface_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnum_definition(CSharpParser.Enum_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnum_definition(CSharpParser.Enum_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDelegate_definition(CSharpParser.Delegate_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDelegate_definition(CSharpParser.Delegate_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEvent_declaration(CSharpParser.Event_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEvent_declaration(CSharpParser.Event_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterField_declaration(CSharpParser.Field_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitField_declaration(CSharpParser.Field_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProperty_declaration(CSharpParser.Property_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProperty_declaration(CSharpParser.Property_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstant_declaration(CSharpParser.Constant_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstant_declaration(CSharpParser.Constant_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIndexer_declaration(CSharpParser.Indexer_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIndexer_declaration(CSharpParser.Indexer_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDestructor_definition(CSharpParser.Destructor_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDestructor_definition(CSharpParser.Destructor_definitionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructor_declaration(CSharpParser.Constructor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructor_declaration(CSharpParser.Constructor_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethod_declaration(CSharpParser.Method_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethod_declaration(CSharpParser.Method_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethod_member_name(CSharpParser.Method_member_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethod_member_name(CSharpParser.Method_member_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOperator_declaration(CSharpParser.Operator_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOperator_declaration(CSharpParser.Operator_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArg_declaration(CSharpParser.Arg_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArg_declaration(CSharpParser.Arg_declarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethod_invocation(CSharpParser.Method_invocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethod_invocation(CSharpParser.Method_invocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterObject_creation_expression(CSharpParser.Object_creation_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitObject_creation_expression(CSharpParser.Object_creation_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIdentifier(CSharpParser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifier(CSharpParser.IdentifierContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/src/com/carvalab/archtool/parsers/CSharpParserBaseVisitor.java b/src/com/carvalab/archtool/parsers/CSharpParserBaseVisitor.java new file mode 100644 index 0000000..6c46323 --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpParserBaseVisitor.java @@ -0,0 +1,1680 @@ +// Generated from CSharpParser.g4 by ANTLR 4.6 + package com.carvalab.archtool.parsers; +import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; + +/** + * This class provides an empty implementation of {@link CSharpParserVisitor}, + * which can be extended to create a visitor which only needs to handle a subset + * of the available methods. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public class CSharpParserBaseVisitor extends AbstractParseTreeVisitor implements CSharpParserVisitor { + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCompilation_unit(CSharpParser.Compilation_unitContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamespace_or_type_name(CSharpParser.Namespace_or_type_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType(CSharpParser.TypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBase_type(CSharpParser.Base_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSimple_type(CSharpParser.Simple_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNumeric_type(CSharpParser.Numeric_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIntegral_type(CSharpParser.Integral_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFloating_point_type(CSharpParser.Floating_point_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClass_type(CSharpParser.Class_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_argument_list(CSharpParser.Type_argument_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArgument_list(CSharpParser.Argument_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArgument(CSharpParser.ArgumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpression(CSharpParser.ExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNon_assignment_expression(CSharpParser.Non_assignment_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignment(CSharpParser.AssignmentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignment_operator(CSharpParser.Assignment_operatorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConditional_expression(CSharpParser.Conditional_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNull_coalescing_expression(CSharpParser.Null_coalescing_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConditional_or_expression(CSharpParser.Conditional_or_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConditional_and_expression(CSharpParser.Conditional_and_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInclusive_or_expression(CSharpParser.Inclusive_or_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExclusive_or_expression(CSharpParser.Exclusive_or_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnd_expression(CSharpParser.And_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEquality_expression(CSharpParser.Equality_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRelational_expression(CSharpParser.Relational_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShift_expression(CSharpParser.Shift_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAdditive_expression(CSharpParser.Additive_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMultiplicative_expression(CSharpParser.Multiplicative_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnary_expression(CSharpParser.Unary_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimary_expression(CSharpParser.Primary_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLiteralExpression(CSharpParser.LiteralExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSimpleNameExpression(CSharpParser.SimpleNameExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParenthesisExpressions(CSharpParser.ParenthesisExpressionsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMemberAccessExpression(CSharpParser.MemberAccessExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLiteralAccessExpression(CSharpParser.LiteralAccessExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitThisReferenceExpression(CSharpParser.ThisReferenceExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBaseAccessExpression(CSharpParser.BaseAccessExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObjectCreationExpression(CSharpParser.ObjectCreationExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeofExpression(CSharpParser.TypeofExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCheckedExpression(CSharpParser.CheckedExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUncheckedExpression(CSharpParser.UncheckedExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDefaultValueExpression(CSharpParser.DefaultValueExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnonymousMethodExpression(CSharpParser.AnonymousMethodExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSizeofExpression(CSharpParser.SizeofExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNameofExpression(CSharpParser.NameofExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMember_access(CSharpParser.Member_accessContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBracket_expression(CSharpParser.Bracket_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIndexer_argument(CSharpParser.Indexer_argumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPredefined_type(CSharpParser.Predefined_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpression_list(CSharpParser.Expression_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObject_or_collection_initializer(CSharpParser.Object_or_collection_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObject_initializer(CSharpParser.Object_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMember_initializer_list(CSharpParser.Member_initializer_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMember_initializer(CSharpParser.Member_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInitializer_value(CSharpParser.Initializer_valueContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCollection_initializer(CSharpParser.Collection_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitElement_initializer(CSharpParser.Element_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnonymous_object_initializer(CSharpParser.Anonymous_object_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMember_declarator_list(CSharpParser.Member_declarator_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMember_declarator(CSharpParser.Member_declaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnbound_type_name(CSharpParser.Unbound_type_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneric_dimension_specifier(CSharpParser.Generic_dimension_specifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIsType(CSharpParser.IsTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambda_expression(CSharpParser.Lambda_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnonymous_function_signature(CSharpParser.Anonymous_function_signatureContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplicit_anonymous_function_parameter_list(CSharpParser.Explicit_anonymous_function_parameter_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplicit_anonymous_function_parameter(CSharpParser.Explicit_anonymous_function_parameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImplicit_anonymous_function_parameter_list(CSharpParser.Implicit_anonymous_function_parameter_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnonymous_function_body(CSharpParser.Anonymous_function_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuery_expression(CSharpParser.Query_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFrom_clause(CSharpParser.From_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuery_body(CSharpParser.Query_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuery_body_clause(CSharpParser.Query_body_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLet_clause(CSharpParser.Let_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWhere_clause(CSharpParser.Where_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCombined_join_clause(CSharpParser.Combined_join_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOrderby_clause(CSharpParser.Orderby_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOrdering(CSharpParser.OrderingContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSelect_or_group_clause(CSharpParser.Select_or_group_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQuery_continuation(CSharpParser.Query_continuationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLabeledStatement(CSharpParser.LabeledStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDeclarationStatement(CSharpParser.DeclarationStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEmbeddedStatement(CSharpParser.EmbeddedStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEmbedded_statement(CSharpParser.Embedded_statementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEmptyStatement(CSharpParser.EmptyStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpressionStatement(CSharpParser.ExpressionStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIfStatement(CSharpParser.IfStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchStatement(CSharpParser.SwitchStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWhileStatement(CSharpParser.WhileStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDoStatement(CSharpParser.DoStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForStatement(CSharpParser.ForStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForeschStatement(CSharpParser.ForeschStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBreakStatement(CSharpParser.BreakStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitContinueStatement(CSharpParser.ContinueStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGotoStatement(CSharpParser.GotoStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReturnStatement(CSharpParser.ReturnStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitThrowStatement(CSharpParser.ThrowStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTryStatement(CSharpParser.TryStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCheckedStatement(CSharpParser.CheckedStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUncheckedStatement(CSharpParser.UncheckedStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLockStatement(CSharpParser.LockStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUsingStatement(CSharpParser.UsingStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitYieldStatement(CSharpParser.YieldStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUnsafeStatement(CSharpParser.UnsafeStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFixedStatement(CSharpParser.FixedStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBlock(CSharpParser.BlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLocal_variable_declaration(CSharpParser.Local_variable_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLocal_variable_declarator(CSharpParser.Local_variable_declaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLocal_variable_initializer(CSharpParser.Local_variable_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLocal_constant_declaration(CSharpParser.Local_constant_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIf_body(CSharpParser.If_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitch_section(CSharpParser.Switch_sectionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitch_label(CSharpParser.Switch_labelContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStatement_list(CSharpParser.Statement_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFor_initializer(CSharpParser.For_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFor_iterator(CSharpParser.For_iteratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCatch_clauses(CSharpParser.Catch_clausesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSpecific_catch_clause(CSharpParser.Specific_catch_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGeneral_catch_clause(CSharpParser.General_catch_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitException_filter(CSharpParser.Exception_filterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFinally_clause(CSharpParser.Finally_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitResource_acquisition(CSharpParser.Resource_acquisitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamespace_declaration(CSharpParser.Namespace_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQualified_identifier(CSharpParser.Qualified_identifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamespace_body(CSharpParser.Namespace_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExtern_alias_directives(CSharpParser.Extern_alias_directivesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExtern_alias_directive(CSharpParser.Extern_alias_directiveContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUsing_directives(CSharpParser.Using_directivesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUsingAliasDirective(CSharpParser.UsingAliasDirectiveContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUsingNamespaceDirective(CSharpParser.UsingNamespaceDirectiveContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitUsingStaticDirective(CSharpParser.UsingStaticDirectiveContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamespace_member_declarations(CSharpParser.Namespace_member_declarationsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNamespace_member_declaration(CSharpParser.Namespace_member_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_declaration(CSharpParser.Type_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQualified_alias_member(CSharpParser.Qualified_alias_memberContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_parameter_list(CSharpParser.Type_parameter_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_parameter(CSharpParser.Type_parameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClass_base(CSharpParser.Class_baseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterface_type_list(CSharpParser.Interface_type_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_parameter_constraints_clauses(CSharpParser.Type_parameter_constraints_clausesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_parameter_constraints_clause(CSharpParser.Type_parameter_constraints_clauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitType_parameter_constraints(CSharpParser.Type_parameter_constraintsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimary_constraint(CSharpParser.Primary_constraintContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSecondary_constraints(CSharpParser.Secondary_constraintsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructor_constraint(CSharpParser.Constructor_constraintContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClass_body(CSharpParser.Class_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClass_member_declarations(CSharpParser.Class_member_declarationsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClass_member_declaration(CSharpParser.Class_member_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAll_member_modifiers(CSharpParser.All_member_modifiersContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAll_member_modifier(CSharpParser.All_member_modifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCommon_member_declaration(CSharpParser.Common_member_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTyped_member_declaration(CSharpParser.Typed_member_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstant_declarators(CSharpParser.Constant_declaratorsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstant_declarator(CSharpParser.Constant_declaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariable_declarators(CSharpParser.Variable_declaratorsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariable_declarator(CSharpParser.Variable_declaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariable_initializer(CSharpParser.Variable_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReturn_type(CSharpParser.Return_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMember_name(CSharpParser.Member_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethod_body(CSharpParser.Method_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFormal_parameter_list(CSharpParser.Formal_parameter_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFixed_parameters(CSharpParser.Fixed_parametersContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFixed_parameter(CSharpParser.Fixed_parameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParameter_modifier(CSharpParser.Parameter_modifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParameter_array(CSharpParser.Parameter_arrayContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAccessor_declarations(CSharpParser.Accessor_declarationsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGet_accessor_declaration(CSharpParser.Get_accessor_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSet_accessor_declaration(CSharpParser.Set_accessor_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAccessor_modifier(CSharpParser.Accessor_modifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAccessor_body(CSharpParser.Accessor_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEvent_accessor_declarations(CSharpParser.Event_accessor_declarationsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAdd_accessor_declaration(CSharpParser.Add_accessor_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRemove_accessor_declaration(CSharpParser.Remove_accessor_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOverloadable_operator(CSharpParser.Overloadable_operatorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConversion_operator_declarator(CSharpParser.Conversion_operator_declaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructor_initializer(CSharpParser.Constructor_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBody(CSharpParser.BodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStruct_interfaces(CSharpParser.Struct_interfacesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStruct_body(CSharpParser.Struct_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStruct_member_declaration(CSharpParser.Struct_member_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArray_type(CSharpParser.Array_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRank_specifier(CSharpParser.Rank_specifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArray_initializer(CSharpParser.Array_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariant_type_parameter_list(CSharpParser.Variant_type_parameter_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariant_type_parameter(CSharpParser.Variant_type_parameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariance_annotation(CSharpParser.Variance_annotationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterface_base(CSharpParser.Interface_baseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterface_body(CSharpParser.Interface_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterface_member_declaration(CSharpParser.Interface_member_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterface_accessors(CSharpParser.Interface_accessorsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnum_base(CSharpParser.Enum_baseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnum_body(CSharpParser.Enum_bodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnum_member_declaration(CSharpParser.Enum_member_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGlobal_attribute_section(CSharpParser.Global_attribute_sectionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGlobal_attribute_target(CSharpParser.Global_attribute_targetContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAttributes(CSharpParser.AttributesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAttribute_section(CSharpParser.Attribute_sectionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAttribute_target(CSharpParser.Attribute_targetContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAttribute_list(CSharpParser.Attribute_listContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAttribute(CSharpParser.AttributeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAttribute_argument(CSharpParser.Attribute_argumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPointer_type(CSharpParser.Pointer_typeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFixed_pointer_declarators(CSharpParser.Fixed_pointer_declaratorsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFixed_pointer_declarator(CSharpParser.Fixed_pointer_declaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFixed_pointer_initializer(CSharpParser.Fixed_pointer_initializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFixed_size_buffer_declarator(CSharpParser.Fixed_size_buffer_declaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLocal_variable_initializer_unsafe(CSharpParser.Local_variable_initializer_unsafeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRight_arrow(CSharpParser.Right_arrowContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRight_shift(CSharpParser.Right_shiftContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRight_shift_assignment(CSharpParser.Right_shift_assignmentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLiteral(CSharpParser.LiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBoolean_literal(CSharpParser.Boolean_literalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitString_literal(CSharpParser.String_literalContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterpolated_regular_string(CSharpParser.Interpolated_regular_stringContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterpolated_verbatium_string(CSharpParser.Interpolated_verbatium_stringContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterpolated_regular_string_part(CSharpParser.Interpolated_regular_string_partContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterpolated_verbatium_string_part(CSharpParser.Interpolated_verbatium_string_partContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterpolated_string_expression(CSharpParser.Interpolated_string_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitKeyword(CSharpParser.KeywordContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClass_definition(CSharpParser.Class_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStruct_definition(CSharpParser.Struct_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterface_definition(CSharpParser.Interface_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnum_definition(CSharpParser.Enum_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDelegate_definition(CSharpParser.Delegate_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEvent_declaration(CSharpParser.Event_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitField_declaration(CSharpParser.Field_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitProperty_declaration(CSharpParser.Property_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstant_declaration(CSharpParser.Constant_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIndexer_declaration(CSharpParser.Indexer_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDestructor_definition(CSharpParser.Destructor_definitionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructor_declaration(CSharpParser.Constructor_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethod_declaration(CSharpParser.Method_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethod_member_name(CSharpParser.Method_member_nameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOperator_declaration(CSharpParser.Operator_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArg_declaration(CSharpParser.Arg_declarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethod_invocation(CSharpParser.Method_invocationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitObject_creation_expression(CSharpParser.Object_creation_expressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifier(CSharpParser.IdentifierContext ctx) { return visitChildren(ctx); } +} \ No newline at end of file diff --git a/src/com/carvalab/archtool/parsers/CSharpParserListener.java b/src/com/carvalab/archtool/parsers/CSharpParserListener.java new file mode 100644 index 0000000..f5401b2 --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpParserListener.java @@ -0,0 +1,2474 @@ +// Generated from CSharpParser.g4 by ANTLR 4.6 + package com.carvalab.archtool.parsers; +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link CSharpParser}. + */ +public interface CSharpParserListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link CSharpParser#compilation_unit}. + * @param ctx the parse tree + */ + void enterCompilation_unit(CSharpParser.Compilation_unitContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#compilation_unit}. + * @param ctx the parse tree + */ + void exitCompilation_unit(CSharpParser.Compilation_unitContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#namespace_or_type_name}. + * @param ctx the parse tree + */ + void enterNamespace_or_type_name(CSharpParser.Namespace_or_type_nameContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#namespace_or_type_name}. + * @param ctx the parse tree + */ + void exitNamespace_or_type_name(CSharpParser.Namespace_or_type_nameContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type}. + * @param ctx the parse tree + */ + void enterType(CSharpParser.TypeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type}. + * @param ctx the parse tree + */ + void exitType(CSharpParser.TypeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#base_type}. + * @param ctx the parse tree + */ + void enterBase_type(CSharpParser.Base_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#base_type}. + * @param ctx the parse tree + */ + void exitBase_type(CSharpParser.Base_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#simple_type}. + * @param ctx the parse tree + */ + void enterSimple_type(CSharpParser.Simple_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#simple_type}. + * @param ctx the parse tree + */ + void exitSimple_type(CSharpParser.Simple_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#numeric_type}. + * @param ctx the parse tree + */ + void enterNumeric_type(CSharpParser.Numeric_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#numeric_type}. + * @param ctx the parse tree + */ + void exitNumeric_type(CSharpParser.Numeric_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#integral_type}. + * @param ctx the parse tree + */ + void enterIntegral_type(CSharpParser.Integral_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#integral_type}. + * @param ctx the parse tree + */ + void exitIntegral_type(CSharpParser.Integral_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#floating_point_type}. + * @param ctx the parse tree + */ + void enterFloating_point_type(CSharpParser.Floating_point_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#floating_point_type}. + * @param ctx the parse tree + */ + void exitFloating_point_type(CSharpParser.Floating_point_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#class_type}. + * @param ctx the parse tree + */ + void enterClass_type(CSharpParser.Class_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#class_type}. + * @param ctx the parse tree + */ + void exitClass_type(CSharpParser.Class_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type_argument_list}. + * @param ctx the parse tree + */ + void enterType_argument_list(CSharpParser.Type_argument_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type_argument_list}. + * @param ctx the parse tree + */ + void exitType_argument_list(CSharpParser.Type_argument_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#argument_list}. + * @param ctx the parse tree + */ + void enterArgument_list(CSharpParser.Argument_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#argument_list}. + * @param ctx the parse tree + */ + void exitArgument_list(CSharpParser.Argument_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#argument}. + * @param ctx the parse tree + */ + void enterArgument(CSharpParser.ArgumentContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#argument}. + * @param ctx the parse tree + */ + void exitArgument(CSharpParser.ArgumentContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#expression}. + * @param ctx the parse tree + */ + void enterExpression(CSharpParser.ExpressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#expression}. + * @param ctx the parse tree + */ + void exitExpression(CSharpParser.ExpressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#non_assignment_expression}. + * @param ctx the parse tree + */ + void enterNon_assignment_expression(CSharpParser.Non_assignment_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#non_assignment_expression}. + * @param ctx the parse tree + */ + void exitNon_assignment_expression(CSharpParser.Non_assignment_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#assignment}. + * @param ctx the parse tree + */ + void enterAssignment(CSharpParser.AssignmentContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#assignment}. + * @param ctx the parse tree + */ + void exitAssignment(CSharpParser.AssignmentContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#assignment_operator}. + * @param ctx the parse tree + */ + void enterAssignment_operator(CSharpParser.Assignment_operatorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#assignment_operator}. + * @param ctx the parse tree + */ + void exitAssignment_operator(CSharpParser.Assignment_operatorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#conditional_expression}. + * @param ctx the parse tree + */ + void enterConditional_expression(CSharpParser.Conditional_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#conditional_expression}. + * @param ctx the parse tree + */ + void exitConditional_expression(CSharpParser.Conditional_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#null_coalescing_expression}. + * @param ctx the parse tree + */ + void enterNull_coalescing_expression(CSharpParser.Null_coalescing_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#null_coalescing_expression}. + * @param ctx the parse tree + */ + void exitNull_coalescing_expression(CSharpParser.Null_coalescing_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#conditional_or_expression}. + * @param ctx the parse tree + */ + void enterConditional_or_expression(CSharpParser.Conditional_or_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#conditional_or_expression}. + * @param ctx the parse tree + */ + void exitConditional_or_expression(CSharpParser.Conditional_or_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#conditional_and_expression}. + * @param ctx the parse tree + */ + void enterConditional_and_expression(CSharpParser.Conditional_and_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#conditional_and_expression}. + * @param ctx the parse tree + */ + void exitConditional_and_expression(CSharpParser.Conditional_and_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#inclusive_or_expression}. + * @param ctx the parse tree + */ + void enterInclusive_or_expression(CSharpParser.Inclusive_or_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#inclusive_or_expression}. + * @param ctx the parse tree + */ + void exitInclusive_or_expression(CSharpParser.Inclusive_or_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#exclusive_or_expression}. + * @param ctx the parse tree + */ + void enterExclusive_or_expression(CSharpParser.Exclusive_or_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#exclusive_or_expression}. + * @param ctx the parse tree + */ + void exitExclusive_or_expression(CSharpParser.Exclusive_or_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#and_expression}. + * @param ctx the parse tree + */ + void enterAnd_expression(CSharpParser.And_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#and_expression}. + * @param ctx the parse tree + */ + void exitAnd_expression(CSharpParser.And_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#equality_expression}. + * @param ctx the parse tree + */ + void enterEquality_expression(CSharpParser.Equality_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#equality_expression}. + * @param ctx the parse tree + */ + void exitEquality_expression(CSharpParser.Equality_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#relational_expression}. + * @param ctx the parse tree + */ + void enterRelational_expression(CSharpParser.Relational_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#relational_expression}. + * @param ctx the parse tree + */ + void exitRelational_expression(CSharpParser.Relational_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#shift_expression}. + * @param ctx the parse tree + */ + void enterShift_expression(CSharpParser.Shift_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#shift_expression}. + * @param ctx the parse tree + */ + void exitShift_expression(CSharpParser.Shift_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#additive_expression}. + * @param ctx the parse tree + */ + void enterAdditive_expression(CSharpParser.Additive_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#additive_expression}. + * @param ctx the parse tree + */ + void exitAdditive_expression(CSharpParser.Additive_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#multiplicative_expression}. + * @param ctx the parse tree + */ + void enterMultiplicative_expression(CSharpParser.Multiplicative_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#multiplicative_expression}. + * @param ctx the parse tree + */ + void exitMultiplicative_expression(CSharpParser.Multiplicative_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#unary_expression}. + * @param ctx the parse tree + */ + void enterUnary_expression(CSharpParser.Unary_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#unary_expression}. + * @param ctx the parse tree + */ + void exitUnary_expression(CSharpParser.Unary_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#primary_expression}. + * @param ctx the parse tree + */ + void enterPrimary_expression(CSharpParser.Primary_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#primary_expression}. + * @param ctx the parse tree + */ + void exitPrimary_expression(CSharpParser.Primary_expressionContext ctx); + /** + * Enter a parse tree produced by the {@code literalExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterLiteralExpression(CSharpParser.LiteralExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code literalExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitLiteralExpression(CSharpParser.LiteralExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code simpleNameExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterSimpleNameExpression(CSharpParser.SimpleNameExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code simpleNameExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitSimpleNameExpression(CSharpParser.SimpleNameExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code parenthesisExpressions} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterParenthesisExpressions(CSharpParser.ParenthesisExpressionsContext ctx); + /** + * Exit a parse tree produced by the {@code parenthesisExpressions} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitParenthesisExpressions(CSharpParser.ParenthesisExpressionsContext ctx); + /** + * Enter a parse tree produced by the {@code memberAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterMemberAccessExpression(CSharpParser.MemberAccessExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code memberAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitMemberAccessExpression(CSharpParser.MemberAccessExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code literalAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterLiteralAccessExpression(CSharpParser.LiteralAccessExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code literalAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitLiteralAccessExpression(CSharpParser.LiteralAccessExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code thisReferenceExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterThisReferenceExpression(CSharpParser.ThisReferenceExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code thisReferenceExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitThisReferenceExpression(CSharpParser.ThisReferenceExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code baseAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterBaseAccessExpression(CSharpParser.BaseAccessExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code baseAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitBaseAccessExpression(CSharpParser.BaseAccessExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code objectCreationExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterObjectCreationExpression(CSharpParser.ObjectCreationExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code objectCreationExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitObjectCreationExpression(CSharpParser.ObjectCreationExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code typeofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterTypeofExpression(CSharpParser.TypeofExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code typeofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitTypeofExpression(CSharpParser.TypeofExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code checkedExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterCheckedExpression(CSharpParser.CheckedExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code checkedExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitCheckedExpression(CSharpParser.CheckedExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code uncheckedExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterUncheckedExpression(CSharpParser.UncheckedExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code uncheckedExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitUncheckedExpression(CSharpParser.UncheckedExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code defaultValueExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterDefaultValueExpression(CSharpParser.DefaultValueExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code defaultValueExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitDefaultValueExpression(CSharpParser.DefaultValueExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code anonymousMethodExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterAnonymousMethodExpression(CSharpParser.AnonymousMethodExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code anonymousMethodExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitAnonymousMethodExpression(CSharpParser.AnonymousMethodExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code sizeofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterSizeofExpression(CSharpParser.SizeofExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code sizeofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitSizeofExpression(CSharpParser.SizeofExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code nameofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void enterNameofExpression(CSharpParser.NameofExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code nameofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + */ + void exitNameofExpression(CSharpParser.NameofExpressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#member_access}. + * @param ctx the parse tree + */ + void enterMember_access(CSharpParser.Member_accessContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#member_access}. + * @param ctx the parse tree + */ + void exitMember_access(CSharpParser.Member_accessContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#bracket_expression}. + * @param ctx the parse tree + */ + void enterBracket_expression(CSharpParser.Bracket_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#bracket_expression}. + * @param ctx the parse tree + */ + void exitBracket_expression(CSharpParser.Bracket_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#indexer_argument}. + * @param ctx the parse tree + */ + void enterIndexer_argument(CSharpParser.Indexer_argumentContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#indexer_argument}. + * @param ctx the parse tree + */ + void exitIndexer_argument(CSharpParser.Indexer_argumentContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#predefined_type}. + * @param ctx the parse tree + */ + void enterPredefined_type(CSharpParser.Predefined_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#predefined_type}. + * @param ctx the parse tree + */ + void exitPredefined_type(CSharpParser.Predefined_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#expression_list}. + * @param ctx the parse tree + */ + void enterExpression_list(CSharpParser.Expression_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#expression_list}. + * @param ctx the parse tree + */ + void exitExpression_list(CSharpParser.Expression_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#object_or_collection_initializer}. + * @param ctx the parse tree + */ + void enterObject_or_collection_initializer(CSharpParser.Object_or_collection_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#object_or_collection_initializer}. + * @param ctx the parse tree + */ + void exitObject_or_collection_initializer(CSharpParser.Object_or_collection_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#object_initializer}. + * @param ctx the parse tree + */ + void enterObject_initializer(CSharpParser.Object_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#object_initializer}. + * @param ctx the parse tree + */ + void exitObject_initializer(CSharpParser.Object_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#member_initializer_list}. + * @param ctx the parse tree + */ + void enterMember_initializer_list(CSharpParser.Member_initializer_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#member_initializer_list}. + * @param ctx the parse tree + */ + void exitMember_initializer_list(CSharpParser.Member_initializer_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#member_initializer}. + * @param ctx the parse tree + */ + void enterMember_initializer(CSharpParser.Member_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#member_initializer}. + * @param ctx the parse tree + */ + void exitMember_initializer(CSharpParser.Member_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#initializer_value}. + * @param ctx the parse tree + */ + void enterInitializer_value(CSharpParser.Initializer_valueContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#initializer_value}. + * @param ctx the parse tree + */ + void exitInitializer_value(CSharpParser.Initializer_valueContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#collection_initializer}. + * @param ctx the parse tree + */ + void enterCollection_initializer(CSharpParser.Collection_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#collection_initializer}. + * @param ctx the parse tree + */ + void exitCollection_initializer(CSharpParser.Collection_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#element_initializer}. + * @param ctx the parse tree + */ + void enterElement_initializer(CSharpParser.Element_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#element_initializer}. + * @param ctx the parse tree + */ + void exitElement_initializer(CSharpParser.Element_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#anonymous_object_initializer}. + * @param ctx the parse tree + */ + void enterAnonymous_object_initializer(CSharpParser.Anonymous_object_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#anonymous_object_initializer}. + * @param ctx the parse tree + */ + void exitAnonymous_object_initializer(CSharpParser.Anonymous_object_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#member_declarator_list}. + * @param ctx the parse tree + */ + void enterMember_declarator_list(CSharpParser.Member_declarator_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#member_declarator_list}. + * @param ctx the parse tree + */ + void exitMember_declarator_list(CSharpParser.Member_declarator_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#member_declarator}. + * @param ctx the parse tree + */ + void enterMember_declarator(CSharpParser.Member_declaratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#member_declarator}. + * @param ctx the parse tree + */ + void exitMember_declarator(CSharpParser.Member_declaratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#unbound_type_name}. + * @param ctx the parse tree + */ + void enterUnbound_type_name(CSharpParser.Unbound_type_nameContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#unbound_type_name}. + * @param ctx the parse tree + */ + void exitUnbound_type_name(CSharpParser.Unbound_type_nameContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#generic_dimension_specifier}. + * @param ctx the parse tree + */ + void enterGeneric_dimension_specifier(CSharpParser.Generic_dimension_specifierContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#generic_dimension_specifier}. + * @param ctx the parse tree + */ + void exitGeneric_dimension_specifier(CSharpParser.Generic_dimension_specifierContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#isType}. + * @param ctx the parse tree + */ + void enterIsType(CSharpParser.IsTypeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#isType}. + * @param ctx the parse tree + */ + void exitIsType(CSharpParser.IsTypeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#lambda_expression}. + * @param ctx the parse tree + */ + void enterLambda_expression(CSharpParser.Lambda_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#lambda_expression}. + * @param ctx the parse tree + */ + void exitLambda_expression(CSharpParser.Lambda_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#anonymous_function_signature}. + * @param ctx the parse tree + */ + void enterAnonymous_function_signature(CSharpParser.Anonymous_function_signatureContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#anonymous_function_signature}. + * @param ctx the parse tree + */ + void exitAnonymous_function_signature(CSharpParser.Anonymous_function_signatureContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#explicit_anonymous_function_parameter_list}. + * @param ctx the parse tree + */ + void enterExplicit_anonymous_function_parameter_list(CSharpParser.Explicit_anonymous_function_parameter_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#explicit_anonymous_function_parameter_list}. + * @param ctx the parse tree + */ + void exitExplicit_anonymous_function_parameter_list(CSharpParser.Explicit_anonymous_function_parameter_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#explicit_anonymous_function_parameter}. + * @param ctx the parse tree + */ + void enterExplicit_anonymous_function_parameter(CSharpParser.Explicit_anonymous_function_parameterContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#explicit_anonymous_function_parameter}. + * @param ctx the parse tree + */ + void exitExplicit_anonymous_function_parameter(CSharpParser.Explicit_anonymous_function_parameterContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#implicit_anonymous_function_parameter_list}. + * @param ctx the parse tree + */ + void enterImplicit_anonymous_function_parameter_list(CSharpParser.Implicit_anonymous_function_parameter_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#implicit_anonymous_function_parameter_list}. + * @param ctx the parse tree + */ + void exitImplicit_anonymous_function_parameter_list(CSharpParser.Implicit_anonymous_function_parameter_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#anonymous_function_body}. + * @param ctx the parse tree + */ + void enterAnonymous_function_body(CSharpParser.Anonymous_function_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#anonymous_function_body}. + * @param ctx the parse tree + */ + void exitAnonymous_function_body(CSharpParser.Anonymous_function_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#query_expression}. + * @param ctx the parse tree + */ + void enterQuery_expression(CSharpParser.Query_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#query_expression}. + * @param ctx the parse tree + */ + void exitQuery_expression(CSharpParser.Query_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#from_clause}. + * @param ctx the parse tree + */ + void enterFrom_clause(CSharpParser.From_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#from_clause}. + * @param ctx the parse tree + */ + void exitFrom_clause(CSharpParser.From_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#query_body}. + * @param ctx the parse tree + */ + void enterQuery_body(CSharpParser.Query_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#query_body}. + * @param ctx the parse tree + */ + void exitQuery_body(CSharpParser.Query_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#query_body_clause}. + * @param ctx the parse tree + */ + void enterQuery_body_clause(CSharpParser.Query_body_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#query_body_clause}. + * @param ctx the parse tree + */ + void exitQuery_body_clause(CSharpParser.Query_body_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#let_clause}. + * @param ctx the parse tree + */ + void enterLet_clause(CSharpParser.Let_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#let_clause}. + * @param ctx the parse tree + */ + void exitLet_clause(CSharpParser.Let_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#where_clause}. + * @param ctx the parse tree + */ + void enterWhere_clause(CSharpParser.Where_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#where_clause}. + * @param ctx the parse tree + */ + void exitWhere_clause(CSharpParser.Where_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#combined_join_clause}. + * @param ctx the parse tree + */ + void enterCombined_join_clause(CSharpParser.Combined_join_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#combined_join_clause}. + * @param ctx the parse tree + */ + void exitCombined_join_clause(CSharpParser.Combined_join_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#orderby_clause}. + * @param ctx the parse tree + */ + void enterOrderby_clause(CSharpParser.Orderby_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#orderby_clause}. + * @param ctx the parse tree + */ + void exitOrderby_clause(CSharpParser.Orderby_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#ordering}. + * @param ctx the parse tree + */ + void enterOrdering(CSharpParser.OrderingContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#ordering}. + * @param ctx the parse tree + */ + void exitOrdering(CSharpParser.OrderingContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#select_or_group_clause}. + * @param ctx the parse tree + */ + void enterSelect_or_group_clause(CSharpParser.Select_or_group_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#select_or_group_clause}. + * @param ctx the parse tree + */ + void exitSelect_or_group_clause(CSharpParser.Select_or_group_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#query_continuation}. + * @param ctx the parse tree + */ + void enterQuery_continuation(CSharpParser.Query_continuationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#query_continuation}. + * @param ctx the parse tree + */ + void exitQuery_continuation(CSharpParser.Query_continuationContext ctx); + /** + * Enter a parse tree produced by the {@code labeledStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + */ + void enterLabeledStatement(CSharpParser.LabeledStatementContext ctx); + /** + * Exit a parse tree produced by the {@code labeledStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + */ + void exitLabeledStatement(CSharpParser.LabeledStatementContext ctx); + /** + * Enter a parse tree produced by the {@code declarationStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + */ + void enterDeclarationStatement(CSharpParser.DeclarationStatementContext ctx); + /** + * Exit a parse tree produced by the {@code declarationStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + */ + void exitDeclarationStatement(CSharpParser.DeclarationStatementContext ctx); + /** + * Enter a parse tree produced by the {@code embeddedStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + */ + void enterEmbeddedStatement(CSharpParser.EmbeddedStatementContext ctx); + /** + * Exit a parse tree produced by the {@code embeddedStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + */ + void exitEmbeddedStatement(CSharpParser.EmbeddedStatementContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#embedded_statement}. + * @param ctx the parse tree + */ + void enterEmbedded_statement(CSharpParser.Embedded_statementContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#embedded_statement}. + * @param ctx the parse tree + */ + void exitEmbedded_statement(CSharpParser.Embedded_statementContext ctx); + /** + * Enter a parse tree produced by the {@code emptyStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterEmptyStatement(CSharpParser.EmptyStatementContext ctx); + /** + * Exit a parse tree produced by the {@code emptyStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitEmptyStatement(CSharpParser.EmptyStatementContext ctx); + /** + * Enter a parse tree produced by the {@code expressionStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterExpressionStatement(CSharpParser.ExpressionStatementContext ctx); + /** + * Exit a parse tree produced by the {@code expressionStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitExpressionStatement(CSharpParser.ExpressionStatementContext ctx); + /** + * Enter a parse tree produced by the {@code ifStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterIfStatement(CSharpParser.IfStatementContext ctx); + /** + * Exit a parse tree produced by the {@code ifStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitIfStatement(CSharpParser.IfStatementContext ctx); + /** + * Enter a parse tree produced by the {@code switchStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterSwitchStatement(CSharpParser.SwitchStatementContext ctx); + /** + * Exit a parse tree produced by the {@code switchStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitSwitchStatement(CSharpParser.SwitchStatementContext ctx); + /** + * Enter a parse tree produced by the {@code whileStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterWhileStatement(CSharpParser.WhileStatementContext ctx); + /** + * Exit a parse tree produced by the {@code whileStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitWhileStatement(CSharpParser.WhileStatementContext ctx); + /** + * Enter a parse tree produced by the {@code doStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterDoStatement(CSharpParser.DoStatementContext ctx); + /** + * Exit a parse tree produced by the {@code doStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitDoStatement(CSharpParser.DoStatementContext ctx); + /** + * Enter a parse tree produced by the {@code forStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterForStatement(CSharpParser.ForStatementContext ctx); + /** + * Exit a parse tree produced by the {@code forStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitForStatement(CSharpParser.ForStatementContext ctx); + /** + * Enter a parse tree produced by the {@code foreschStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterForeschStatement(CSharpParser.ForeschStatementContext ctx); + /** + * Exit a parse tree produced by the {@code foreschStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitForeschStatement(CSharpParser.ForeschStatementContext ctx); + /** + * Enter a parse tree produced by the {@code breakStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterBreakStatement(CSharpParser.BreakStatementContext ctx); + /** + * Exit a parse tree produced by the {@code breakStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitBreakStatement(CSharpParser.BreakStatementContext ctx); + /** + * Enter a parse tree produced by the {@code continueStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterContinueStatement(CSharpParser.ContinueStatementContext ctx); + /** + * Exit a parse tree produced by the {@code continueStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitContinueStatement(CSharpParser.ContinueStatementContext ctx); + /** + * Enter a parse tree produced by the {@code gotoStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterGotoStatement(CSharpParser.GotoStatementContext ctx); + /** + * Exit a parse tree produced by the {@code gotoStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitGotoStatement(CSharpParser.GotoStatementContext ctx); + /** + * Enter a parse tree produced by the {@code returnStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterReturnStatement(CSharpParser.ReturnStatementContext ctx); + /** + * Exit a parse tree produced by the {@code returnStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitReturnStatement(CSharpParser.ReturnStatementContext ctx); + /** + * Enter a parse tree produced by the {@code throwStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterThrowStatement(CSharpParser.ThrowStatementContext ctx); + /** + * Exit a parse tree produced by the {@code throwStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitThrowStatement(CSharpParser.ThrowStatementContext ctx); + /** + * Enter a parse tree produced by the {@code tryStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterTryStatement(CSharpParser.TryStatementContext ctx); + /** + * Exit a parse tree produced by the {@code tryStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitTryStatement(CSharpParser.TryStatementContext ctx); + /** + * Enter a parse tree produced by the {@code checkedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterCheckedStatement(CSharpParser.CheckedStatementContext ctx); + /** + * Exit a parse tree produced by the {@code checkedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitCheckedStatement(CSharpParser.CheckedStatementContext ctx); + /** + * Enter a parse tree produced by the {@code uncheckedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterUncheckedStatement(CSharpParser.UncheckedStatementContext ctx); + /** + * Exit a parse tree produced by the {@code uncheckedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitUncheckedStatement(CSharpParser.UncheckedStatementContext ctx); + /** + * Enter a parse tree produced by the {@code lockStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterLockStatement(CSharpParser.LockStatementContext ctx); + /** + * Exit a parse tree produced by the {@code lockStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitLockStatement(CSharpParser.LockStatementContext ctx); + /** + * Enter a parse tree produced by the {@code usingStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterUsingStatement(CSharpParser.UsingStatementContext ctx); + /** + * Exit a parse tree produced by the {@code usingStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitUsingStatement(CSharpParser.UsingStatementContext ctx); + /** + * Enter a parse tree produced by the {@code yieldStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterYieldStatement(CSharpParser.YieldStatementContext ctx); + /** + * Exit a parse tree produced by the {@code yieldStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitYieldStatement(CSharpParser.YieldStatementContext ctx); + /** + * Enter a parse tree produced by the {@code unsafeStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterUnsafeStatement(CSharpParser.UnsafeStatementContext ctx); + /** + * Exit a parse tree produced by the {@code unsafeStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitUnsafeStatement(CSharpParser.UnsafeStatementContext ctx); + /** + * Enter a parse tree produced by the {@code fixedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void enterFixedStatement(CSharpParser.FixedStatementContext ctx); + /** + * Exit a parse tree produced by the {@code fixedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + */ + void exitFixedStatement(CSharpParser.FixedStatementContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#block}. + * @param ctx the parse tree + */ + void enterBlock(CSharpParser.BlockContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#block}. + * @param ctx the parse tree + */ + void exitBlock(CSharpParser.BlockContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#local_variable_declaration}. + * @param ctx the parse tree + */ + void enterLocal_variable_declaration(CSharpParser.Local_variable_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#local_variable_declaration}. + * @param ctx the parse tree + */ + void exitLocal_variable_declaration(CSharpParser.Local_variable_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#local_variable_declarator}. + * @param ctx the parse tree + */ + void enterLocal_variable_declarator(CSharpParser.Local_variable_declaratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#local_variable_declarator}. + * @param ctx the parse tree + */ + void exitLocal_variable_declarator(CSharpParser.Local_variable_declaratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#local_variable_initializer}. + * @param ctx the parse tree + */ + void enterLocal_variable_initializer(CSharpParser.Local_variable_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#local_variable_initializer}. + * @param ctx the parse tree + */ + void exitLocal_variable_initializer(CSharpParser.Local_variable_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#local_constant_declaration}. + * @param ctx the parse tree + */ + void enterLocal_constant_declaration(CSharpParser.Local_constant_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#local_constant_declaration}. + * @param ctx the parse tree + */ + void exitLocal_constant_declaration(CSharpParser.Local_constant_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#if_body}. + * @param ctx the parse tree + */ + void enterIf_body(CSharpParser.If_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#if_body}. + * @param ctx the parse tree + */ + void exitIf_body(CSharpParser.If_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#switch_section}. + * @param ctx the parse tree + */ + void enterSwitch_section(CSharpParser.Switch_sectionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#switch_section}. + * @param ctx the parse tree + */ + void exitSwitch_section(CSharpParser.Switch_sectionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#switch_label}. + * @param ctx the parse tree + */ + void enterSwitch_label(CSharpParser.Switch_labelContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#switch_label}. + * @param ctx the parse tree + */ + void exitSwitch_label(CSharpParser.Switch_labelContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#statement_list}. + * @param ctx the parse tree + */ + void enterStatement_list(CSharpParser.Statement_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#statement_list}. + * @param ctx the parse tree + */ + void exitStatement_list(CSharpParser.Statement_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#for_initializer}. + * @param ctx the parse tree + */ + void enterFor_initializer(CSharpParser.For_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#for_initializer}. + * @param ctx the parse tree + */ + void exitFor_initializer(CSharpParser.For_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#for_iterator}. + * @param ctx the parse tree + */ + void enterFor_iterator(CSharpParser.For_iteratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#for_iterator}. + * @param ctx the parse tree + */ + void exitFor_iterator(CSharpParser.For_iteratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#catch_clauses}. + * @param ctx the parse tree + */ + void enterCatch_clauses(CSharpParser.Catch_clausesContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#catch_clauses}. + * @param ctx the parse tree + */ + void exitCatch_clauses(CSharpParser.Catch_clausesContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#specific_catch_clause}. + * @param ctx the parse tree + */ + void enterSpecific_catch_clause(CSharpParser.Specific_catch_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#specific_catch_clause}. + * @param ctx the parse tree + */ + void exitSpecific_catch_clause(CSharpParser.Specific_catch_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#general_catch_clause}. + * @param ctx the parse tree + */ + void enterGeneral_catch_clause(CSharpParser.General_catch_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#general_catch_clause}. + * @param ctx the parse tree + */ + void exitGeneral_catch_clause(CSharpParser.General_catch_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#exception_filter}. + * @param ctx the parse tree + */ + void enterException_filter(CSharpParser.Exception_filterContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#exception_filter}. + * @param ctx the parse tree + */ + void exitException_filter(CSharpParser.Exception_filterContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#finally_clause}. + * @param ctx the parse tree + */ + void enterFinally_clause(CSharpParser.Finally_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#finally_clause}. + * @param ctx the parse tree + */ + void exitFinally_clause(CSharpParser.Finally_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#resource_acquisition}. + * @param ctx the parse tree + */ + void enterResource_acquisition(CSharpParser.Resource_acquisitionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#resource_acquisition}. + * @param ctx the parse tree + */ + void exitResource_acquisition(CSharpParser.Resource_acquisitionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#namespace_declaration}. + * @param ctx the parse tree + */ + void enterNamespace_declaration(CSharpParser.Namespace_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#namespace_declaration}. + * @param ctx the parse tree + */ + void exitNamespace_declaration(CSharpParser.Namespace_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#qualified_identifier}. + * @param ctx the parse tree + */ + void enterQualified_identifier(CSharpParser.Qualified_identifierContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#qualified_identifier}. + * @param ctx the parse tree + */ + void exitQualified_identifier(CSharpParser.Qualified_identifierContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#namespace_body}. + * @param ctx the parse tree + */ + void enterNamespace_body(CSharpParser.Namespace_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#namespace_body}. + * @param ctx the parse tree + */ + void exitNamespace_body(CSharpParser.Namespace_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#extern_alias_directives}. + * @param ctx the parse tree + */ + void enterExtern_alias_directives(CSharpParser.Extern_alias_directivesContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#extern_alias_directives}. + * @param ctx the parse tree + */ + void exitExtern_alias_directives(CSharpParser.Extern_alias_directivesContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#extern_alias_directive}. + * @param ctx the parse tree + */ + void enterExtern_alias_directive(CSharpParser.Extern_alias_directiveContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#extern_alias_directive}. + * @param ctx the parse tree + */ + void exitExtern_alias_directive(CSharpParser.Extern_alias_directiveContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#using_directives}. + * @param ctx the parse tree + */ + void enterUsing_directives(CSharpParser.Using_directivesContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#using_directives}. + * @param ctx the parse tree + */ + void exitUsing_directives(CSharpParser.Using_directivesContext ctx); + /** + * Enter a parse tree produced by the {@code usingAliasDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + */ + void enterUsingAliasDirective(CSharpParser.UsingAliasDirectiveContext ctx); + /** + * Exit a parse tree produced by the {@code usingAliasDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + */ + void exitUsingAliasDirective(CSharpParser.UsingAliasDirectiveContext ctx); + /** + * Enter a parse tree produced by the {@code usingNamespaceDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + */ + void enterUsingNamespaceDirective(CSharpParser.UsingNamespaceDirectiveContext ctx); + /** + * Exit a parse tree produced by the {@code usingNamespaceDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + */ + void exitUsingNamespaceDirective(CSharpParser.UsingNamespaceDirectiveContext ctx); + /** + * Enter a parse tree produced by the {@code usingStaticDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + */ + void enterUsingStaticDirective(CSharpParser.UsingStaticDirectiveContext ctx); + /** + * Exit a parse tree produced by the {@code usingStaticDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + */ + void exitUsingStaticDirective(CSharpParser.UsingStaticDirectiveContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#namespace_member_declarations}. + * @param ctx the parse tree + */ + void enterNamespace_member_declarations(CSharpParser.Namespace_member_declarationsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#namespace_member_declarations}. + * @param ctx the parse tree + */ + void exitNamespace_member_declarations(CSharpParser.Namespace_member_declarationsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#namespace_member_declaration}. + * @param ctx the parse tree + */ + void enterNamespace_member_declaration(CSharpParser.Namespace_member_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#namespace_member_declaration}. + * @param ctx the parse tree + */ + void exitNamespace_member_declaration(CSharpParser.Namespace_member_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type_declaration}. + * @param ctx the parse tree + */ + void enterType_declaration(CSharpParser.Type_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type_declaration}. + * @param ctx the parse tree + */ + void exitType_declaration(CSharpParser.Type_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#qualified_alias_member}. + * @param ctx the parse tree + */ + void enterQualified_alias_member(CSharpParser.Qualified_alias_memberContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#qualified_alias_member}. + * @param ctx the parse tree + */ + void exitQualified_alias_member(CSharpParser.Qualified_alias_memberContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type_parameter_list}. + * @param ctx the parse tree + */ + void enterType_parameter_list(CSharpParser.Type_parameter_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type_parameter_list}. + * @param ctx the parse tree + */ + void exitType_parameter_list(CSharpParser.Type_parameter_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type_parameter}. + * @param ctx the parse tree + */ + void enterType_parameter(CSharpParser.Type_parameterContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type_parameter}. + * @param ctx the parse tree + */ + void exitType_parameter(CSharpParser.Type_parameterContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#class_base}. + * @param ctx the parse tree + */ + void enterClass_base(CSharpParser.Class_baseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#class_base}. + * @param ctx the parse tree + */ + void exitClass_base(CSharpParser.Class_baseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interface_type_list}. + * @param ctx the parse tree + */ + void enterInterface_type_list(CSharpParser.Interface_type_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interface_type_list}. + * @param ctx the parse tree + */ + void exitInterface_type_list(CSharpParser.Interface_type_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type_parameter_constraints_clauses}. + * @param ctx the parse tree + */ + void enterType_parameter_constraints_clauses(CSharpParser.Type_parameter_constraints_clausesContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type_parameter_constraints_clauses}. + * @param ctx the parse tree + */ + void exitType_parameter_constraints_clauses(CSharpParser.Type_parameter_constraints_clausesContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type_parameter_constraints_clause}. + * @param ctx the parse tree + */ + void enterType_parameter_constraints_clause(CSharpParser.Type_parameter_constraints_clauseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type_parameter_constraints_clause}. + * @param ctx the parse tree + */ + void exitType_parameter_constraints_clause(CSharpParser.Type_parameter_constraints_clauseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#type_parameter_constraints}. + * @param ctx the parse tree + */ + void enterType_parameter_constraints(CSharpParser.Type_parameter_constraintsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#type_parameter_constraints}. + * @param ctx the parse tree + */ + void exitType_parameter_constraints(CSharpParser.Type_parameter_constraintsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#primary_constraint}. + * @param ctx the parse tree + */ + void enterPrimary_constraint(CSharpParser.Primary_constraintContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#primary_constraint}. + * @param ctx the parse tree + */ + void exitPrimary_constraint(CSharpParser.Primary_constraintContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#secondary_constraints}. + * @param ctx the parse tree + */ + void enterSecondary_constraints(CSharpParser.Secondary_constraintsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#secondary_constraints}. + * @param ctx the parse tree + */ + void exitSecondary_constraints(CSharpParser.Secondary_constraintsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#constructor_constraint}. + * @param ctx the parse tree + */ + void enterConstructor_constraint(CSharpParser.Constructor_constraintContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#constructor_constraint}. + * @param ctx the parse tree + */ + void exitConstructor_constraint(CSharpParser.Constructor_constraintContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#class_body}. + * @param ctx the parse tree + */ + void enterClass_body(CSharpParser.Class_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#class_body}. + * @param ctx the parse tree + */ + void exitClass_body(CSharpParser.Class_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#class_member_declarations}. + * @param ctx the parse tree + */ + void enterClass_member_declarations(CSharpParser.Class_member_declarationsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#class_member_declarations}. + * @param ctx the parse tree + */ + void exitClass_member_declarations(CSharpParser.Class_member_declarationsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#class_member_declaration}. + * @param ctx the parse tree + */ + void enterClass_member_declaration(CSharpParser.Class_member_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#class_member_declaration}. + * @param ctx the parse tree + */ + void exitClass_member_declaration(CSharpParser.Class_member_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#all_member_modifiers}. + * @param ctx the parse tree + */ + void enterAll_member_modifiers(CSharpParser.All_member_modifiersContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#all_member_modifiers}. + * @param ctx the parse tree + */ + void exitAll_member_modifiers(CSharpParser.All_member_modifiersContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#all_member_modifier}. + * @param ctx the parse tree + */ + void enterAll_member_modifier(CSharpParser.All_member_modifierContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#all_member_modifier}. + * @param ctx the parse tree + */ + void exitAll_member_modifier(CSharpParser.All_member_modifierContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#common_member_declaration}. + * @param ctx the parse tree + */ + void enterCommon_member_declaration(CSharpParser.Common_member_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#common_member_declaration}. + * @param ctx the parse tree + */ + void exitCommon_member_declaration(CSharpParser.Common_member_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#typed_member_declaration}. + * @param ctx the parse tree + */ + void enterTyped_member_declaration(CSharpParser.Typed_member_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#typed_member_declaration}. + * @param ctx the parse tree + */ + void exitTyped_member_declaration(CSharpParser.Typed_member_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#constant_declarators}. + * @param ctx the parse tree + */ + void enterConstant_declarators(CSharpParser.Constant_declaratorsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#constant_declarators}. + * @param ctx the parse tree + */ + void exitConstant_declarators(CSharpParser.Constant_declaratorsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#constant_declarator}. + * @param ctx the parse tree + */ + void enterConstant_declarator(CSharpParser.Constant_declaratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#constant_declarator}. + * @param ctx the parse tree + */ + void exitConstant_declarator(CSharpParser.Constant_declaratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#variable_declarators}. + * @param ctx the parse tree + */ + void enterVariable_declarators(CSharpParser.Variable_declaratorsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#variable_declarators}. + * @param ctx the parse tree + */ + void exitVariable_declarators(CSharpParser.Variable_declaratorsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#variable_declarator}. + * @param ctx the parse tree + */ + void enterVariable_declarator(CSharpParser.Variable_declaratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#variable_declarator}. + * @param ctx the parse tree + */ + void exitVariable_declarator(CSharpParser.Variable_declaratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#variable_initializer}. + * @param ctx the parse tree + */ + void enterVariable_initializer(CSharpParser.Variable_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#variable_initializer}. + * @param ctx the parse tree + */ + void exitVariable_initializer(CSharpParser.Variable_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#return_type}. + * @param ctx the parse tree + */ + void enterReturn_type(CSharpParser.Return_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#return_type}. + * @param ctx the parse tree + */ + void exitReturn_type(CSharpParser.Return_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#member_name}. + * @param ctx the parse tree + */ + void enterMember_name(CSharpParser.Member_nameContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#member_name}. + * @param ctx the parse tree + */ + void exitMember_name(CSharpParser.Member_nameContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#method_body}. + * @param ctx the parse tree + */ + void enterMethod_body(CSharpParser.Method_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#method_body}. + * @param ctx the parse tree + */ + void exitMethod_body(CSharpParser.Method_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#formal_parameter_list}. + * @param ctx the parse tree + */ + void enterFormal_parameter_list(CSharpParser.Formal_parameter_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#formal_parameter_list}. + * @param ctx the parse tree + */ + void exitFormal_parameter_list(CSharpParser.Formal_parameter_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#fixed_parameters}. + * @param ctx the parse tree + */ + void enterFixed_parameters(CSharpParser.Fixed_parametersContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#fixed_parameters}. + * @param ctx the parse tree + */ + void exitFixed_parameters(CSharpParser.Fixed_parametersContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#fixed_parameter}. + * @param ctx the parse tree + */ + void enterFixed_parameter(CSharpParser.Fixed_parameterContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#fixed_parameter}. + * @param ctx the parse tree + */ + void exitFixed_parameter(CSharpParser.Fixed_parameterContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#parameter_modifier}. + * @param ctx the parse tree + */ + void enterParameter_modifier(CSharpParser.Parameter_modifierContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#parameter_modifier}. + * @param ctx the parse tree + */ + void exitParameter_modifier(CSharpParser.Parameter_modifierContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#parameter_array}. + * @param ctx the parse tree + */ + void enterParameter_array(CSharpParser.Parameter_arrayContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#parameter_array}. + * @param ctx the parse tree + */ + void exitParameter_array(CSharpParser.Parameter_arrayContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#accessor_declarations}. + * @param ctx the parse tree + */ + void enterAccessor_declarations(CSharpParser.Accessor_declarationsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#accessor_declarations}. + * @param ctx the parse tree + */ + void exitAccessor_declarations(CSharpParser.Accessor_declarationsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#get_accessor_declaration}. + * @param ctx the parse tree + */ + void enterGet_accessor_declaration(CSharpParser.Get_accessor_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#get_accessor_declaration}. + * @param ctx the parse tree + */ + void exitGet_accessor_declaration(CSharpParser.Get_accessor_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#set_accessor_declaration}. + * @param ctx the parse tree + */ + void enterSet_accessor_declaration(CSharpParser.Set_accessor_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#set_accessor_declaration}. + * @param ctx the parse tree + */ + void exitSet_accessor_declaration(CSharpParser.Set_accessor_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#accessor_modifier}. + * @param ctx the parse tree + */ + void enterAccessor_modifier(CSharpParser.Accessor_modifierContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#accessor_modifier}. + * @param ctx the parse tree + */ + void exitAccessor_modifier(CSharpParser.Accessor_modifierContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#accessor_body}. + * @param ctx the parse tree + */ + void enterAccessor_body(CSharpParser.Accessor_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#accessor_body}. + * @param ctx the parse tree + */ + void exitAccessor_body(CSharpParser.Accessor_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#event_accessor_declarations}. + * @param ctx the parse tree + */ + void enterEvent_accessor_declarations(CSharpParser.Event_accessor_declarationsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#event_accessor_declarations}. + * @param ctx the parse tree + */ + void exitEvent_accessor_declarations(CSharpParser.Event_accessor_declarationsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#add_accessor_declaration}. + * @param ctx the parse tree + */ + void enterAdd_accessor_declaration(CSharpParser.Add_accessor_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#add_accessor_declaration}. + * @param ctx the parse tree + */ + void exitAdd_accessor_declaration(CSharpParser.Add_accessor_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#remove_accessor_declaration}. + * @param ctx the parse tree + */ + void enterRemove_accessor_declaration(CSharpParser.Remove_accessor_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#remove_accessor_declaration}. + * @param ctx the parse tree + */ + void exitRemove_accessor_declaration(CSharpParser.Remove_accessor_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#overloadable_operator}. + * @param ctx the parse tree + */ + void enterOverloadable_operator(CSharpParser.Overloadable_operatorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#overloadable_operator}. + * @param ctx the parse tree + */ + void exitOverloadable_operator(CSharpParser.Overloadable_operatorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#conversion_operator_declarator}. + * @param ctx the parse tree + */ + void enterConversion_operator_declarator(CSharpParser.Conversion_operator_declaratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#conversion_operator_declarator}. + * @param ctx the parse tree + */ + void exitConversion_operator_declarator(CSharpParser.Conversion_operator_declaratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#constructor_initializer}. + * @param ctx the parse tree + */ + void enterConstructor_initializer(CSharpParser.Constructor_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#constructor_initializer}. + * @param ctx the parse tree + */ + void exitConstructor_initializer(CSharpParser.Constructor_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#body}. + * @param ctx the parse tree + */ + void enterBody(CSharpParser.BodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#body}. + * @param ctx the parse tree + */ + void exitBody(CSharpParser.BodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#struct_interfaces}. + * @param ctx the parse tree + */ + void enterStruct_interfaces(CSharpParser.Struct_interfacesContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#struct_interfaces}. + * @param ctx the parse tree + */ + void exitStruct_interfaces(CSharpParser.Struct_interfacesContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#struct_body}. + * @param ctx the parse tree + */ + void enterStruct_body(CSharpParser.Struct_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#struct_body}. + * @param ctx the parse tree + */ + void exitStruct_body(CSharpParser.Struct_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#struct_member_declaration}. + * @param ctx the parse tree + */ + void enterStruct_member_declaration(CSharpParser.Struct_member_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#struct_member_declaration}. + * @param ctx the parse tree + */ + void exitStruct_member_declaration(CSharpParser.Struct_member_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#array_type}. + * @param ctx the parse tree + */ + void enterArray_type(CSharpParser.Array_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#array_type}. + * @param ctx the parse tree + */ + void exitArray_type(CSharpParser.Array_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#rank_specifier}. + * @param ctx the parse tree + */ + void enterRank_specifier(CSharpParser.Rank_specifierContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#rank_specifier}. + * @param ctx the parse tree + */ + void exitRank_specifier(CSharpParser.Rank_specifierContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#array_initializer}. + * @param ctx the parse tree + */ + void enterArray_initializer(CSharpParser.Array_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#array_initializer}. + * @param ctx the parse tree + */ + void exitArray_initializer(CSharpParser.Array_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#variant_type_parameter_list}. + * @param ctx the parse tree + */ + void enterVariant_type_parameter_list(CSharpParser.Variant_type_parameter_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#variant_type_parameter_list}. + * @param ctx the parse tree + */ + void exitVariant_type_parameter_list(CSharpParser.Variant_type_parameter_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#variant_type_parameter}. + * @param ctx the parse tree + */ + void enterVariant_type_parameter(CSharpParser.Variant_type_parameterContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#variant_type_parameter}. + * @param ctx the parse tree + */ + void exitVariant_type_parameter(CSharpParser.Variant_type_parameterContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#variance_annotation}. + * @param ctx the parse tree + */ + void enterVariance_annotation(CSharpParser.Variance_annotationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#variance_annotation}. + * @param ctx the parse tree + */ + void exitVariance_annotation(CSharpParser.Variance_annotationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interface_base}. + * @param ctx the parse tree + */ + void enterInterface_base(CSharpParser.Interface_baseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interface_base}. + * @param ctx the parse tree + */ + void exitInterface_base(CSharpParser.Interface_baseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interface_body}. + * @param ctx the parse tree + */ + void enterInterface_body(CSharpParser.Interface_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interface_body}. + * @param ctx the parse tree + */ + void exitInterface_body(CSharpParser.Interface_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interface_member_declaration}. + * @param ctx the parse tree + */ + void enterInterface_member_declaration(CSharpParser.Interface_member_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interface_member_declaration}. + * @param ctx the parse tree + */ + void exitInterface_member_declaration(CSharpParser.Interface_member_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interface_accessors}. + * @param ctx the parse tree + */ + void enterInterface_accessors(CSharpParser.Interface_accessorsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interface_accessors}. + * @param ctx the parse tree + */ + void exitInterface_accessors(CSharpParser.Interface_accessorsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#enum_base}. + * @param ctx the parse tree + */ + void enterEnum_base(CSharpParser.Enum_baseContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#enum_base}. + * @param ctx the parse tree + */ + void exitEnum_base(CSharpParser.Enum_baseContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#enum_body}. + * @param ctx the parse tree + */ + void enterEnum_body(CSharpParser.Enum_bodyContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#enum_body}. + * @param ctx the parse tree + */ + void exitEnum_body(CSharpParser.Enum_bodyContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#enum_member_declaration}. + * @param ctx the parse tree + */ + void enterEnum_member_declaration(CSharpParser.Enum_member_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#enum_member_declaration}. + * @param ctx the parse tree + */ + void exitEnum_member_declaration(CSharpParser.Enum_member_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#global_attribute_section}. + * @param ctx the parse tree + */ + void enterGlobal_attribute_section(CSharpParser.Global_attribute_sectionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#global_attribute_section}. + * @param ctx the parse tree + */ + void exitGlobal_attribute_section(CSharpParser.Global_attribute_sectionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#global_attribute_target}. + * @param ctx the parse tree + */ + void enterGlobal_attribute_target(CSharpParser.Global_attribute_targetContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#global_attribute_target}. + * @param ctx the parse tree + */ + void exitGlobal_attribute_target(CSharpParser.Global_attribute_targetContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#attributes}. + * @param ctx the parse tree + */ + void enterAttributes(CSharpParser.AttributesContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#attributes}. + * @param ctx the parse tree + */ + void exitAttributes(CSharpParser.AttributesContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#attribute_section}. + * @param ctx the parse tree + */ + void enterAttribute_section(CSharpParser.Attribute_sectionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#attribute_section}. + * @param ctx the parse tree + */ + void exitAttribute_section(CSharpParser.Attribute_sectionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#attribute_target}. + * @param ctx the parse tree + */ + void enterAttribute_target(CSharpParser.Attribute_targetContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#attribute_target}. + * @param ctx the parse tree + */ + void exitAttribute_target(CSharpParser.Attribute_targetContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#attribute_list}. + * @param ctx the parse tree + */ + void enterAttribute_list(CSharpParser.Attribute_listContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#attribute_list}. + * @param ctx the parse tree + */ + void exitAttribute_list(CSharpParser.Attribute_listContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#attribute}. + * @param ctx the parse tree + */ + void enterAttribute(CSharpParser.AttributeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#attribute}. + * @param ctx the parse tree + */ + void exitAttribute(CSharpParser.AttributeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#attribute_argument}. + * @param ctx the parse tree + */ + void enterAttribute_argument(CSharpParser.Attribute_argumentContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#attribute_argument}. + * @param ctx the parse tree + */ + void exitAttribute_argument(CSharpParser.Attribute_argumentContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#pointer_type}. + * @param ctx the parse tree + */ + void enterPointer_type(CSharpParser.Pointer_typeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#pointer_type}. + * @param ctx the parse tree + */ + void exitPointer_type(CSharpParser.Pointer_typeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#fixed_pointer_declarators}. + * @param ctx the parse tree + */ + void enterFixed_pointer_declarators(CSharpParser.Fixed_pointer_declaratorsContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#fixed_pointer_declarators}. + * @param ctx the parse tree + */ + void exitFixed_pointer_declarators(CSharpParser.Fixed_pointer_declaratorsContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#fixed_pointer_declarator}. + * @param ctx the parse tree + */ + void enterFixed_pointer_declarator(CSharpParser.Fixed_pointer_declaratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#fixed_pointer_declarator}. + * @param ctx the parse tree + */ + void exitFixed_pointer_declarator(CSharpParser.Fixed_pointer_declaratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#fixed_pointer_initializer}. + * @param ctx the parse tree + */ + void enterFixed_pointer_initializer(CSharpParser.Fixed_pointer_initializerContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#fixed_pointer_initializer}. + * @param ctx the parse tree + */ + void exitFixed_pointer_initializer(CSharpParser.Fixed_pointer_initializerContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#fixed_size_buffer_declarator}. + * @param ctx the parse tree + */ + void enterFixed_size_buffer_declarator(CSharpParser.Fixed_size_buffer_declaratorContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#fixed_size_buffer_declarator}. + * @param ctx the parse tree + */ + void exitFixed_size_buffer_declarator(CSharpParser.Fixed_size_buffer_declaratorContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#local_variable_initializer_unsafe}. + * @param ctx the parse tree + */ + void enterLocal_variable_initializer_unsafe(CSharpParser.Local_variable_initializer_unsafeContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#local_variable_initializer_unsafe}. + * @param ctx the parse tree + */ + void exitLocal_variable_initializer_unsafe(CSharpParser.Local_variable_initializer_unsafeContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#right_arrow}. + * @param ctx the parse tree + */ + void enterRight_arrow(CSharpParser.Right_arrowContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#right_arrow}. + * @param ctx the parse tree + */ + void exitRight_arrow(CSharpParser.Right_arrowContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#right_shift}. + * @param ctx the parse tree + */ + void enterRight_shift(CSharpParser.Right_shiftContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#right_shift}. + * @param ctx the parse tree + */ + void exitRight_shift(CSharpParser.Right_shiftContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#right_shift_assignment}. + * @param ctx the parse tree + */ + void enterRight_shift_assignment(CSharpParser.Right_shift_assignmentContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#right_shift_assignment}. + * @param ctx the parse tree + */ + void exitRight_shift_assignment(CSharpParser.Right_shift_assignmentContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#literal}. + * @param ctx the parse tree + */ + void enterLiteral(CSharpParser.LiteralContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#literal}. + * @param ctx the parse tree + */ + void exitLiteral(CSharpParser.LiteralContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#boolean_literal}. + * @param ctx the parse tree + */ + void enterBoolean_literal(CSharpParser.Boolean_literalContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#boolean_literal}. + * @param ctx the parse tree + */ + void exitBoolean_literal(CSharpParser.Boolean_literalContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#string_literal}. + * @param ctx the parse tree + */ + void enterString_literal(CSharpParser.String_literalContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#string_literal}. + * @param ctx the parse tree + */ + void exitString_literal(CSharpParser.String_literalContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interpolated_regular_string}. + * @param ctx the parse tree + */ + void enterInterpolated_regular_string(CSharpParser.Interpolated_regular_stringContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interpolated_regular_string}. + * @param ctx the parse tree + */ + void exitInterpolated_regular_string(CSharpParser.Interpolated_regular_stringContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interpolated_verbatium_string}. + * @param ctx the parse tree + */ + void enterInterpolated_verbatium_string(CSharpParser.Interpolated_verbatium_stringContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interpolated_verbatium_string}. + * @param ctx the parse tree + */ + void exitInterpolated_verbatium_string(CSharpParser.Interpolated_verbatium_stringContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interpolated_regular_string_part}. + * @param ctx the parse tree + */ + void enterInterpolated_regular_string_part(CSharpParser.Interpolated_regular_string_partContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interpolated_regular_string_part}. + * @param ctx the parse tree + */ + void exitInterpolated_regular_string_part(CSharpParser.Interpolated_regular_string_partContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interpolated_verbatium_string_part}. + * @param ctx the parse tree + */ + void enterInterpolated_verbatium_string_part(CSharpParser.Interpolated_verbatium_string_partContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interpolated_verbatium_string_part}. + * @param ctx the parse tree + */ + void exitInterpolated_verbatium_string_part(CSharpParser.Interpolated_verbatium_string_partContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interpolated_string_expression}. + * @param ctx the parse tree + */ + void enterInterpolated_string_expression(CSharpParser.Interpolated_string_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interpolated_string_expression}. + * @param ctx the parse tree + */ + void exitInterpolated_string_expression(CSharpParser.Interpolated_string_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#keyword}. + * @param ctx the parse tree + */ + void enterKeyword(CSharpParser.KeywordContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#keyword}. + * @param ctx the parse tree + */ + void exitKeyword(CSharpParser.KeywordContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#class_definition}. + * @param ctx the parse tree + */ + void enterClass_definition(CSharpParser.Class_definitionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#class_definition}. + * @param ctx the parse tree + */ + void exitClass_definition(CSharpParser.Class_definitionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#struct_definition}. + * @param ctx the parse tree + */ + void enterStruct_definition(CSharpParser.Struct_definitionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#struct_definition}. + * @param ctx the parse tree + */ + void exitStruct_definition(CSharpParser.Struct_definitionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#interface_definition}. + * @param ctx the parse tree + */ + void enterInterface_definition(CSharpParser.Interface_definitionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#interface_definition}. + * @param ctx the parse tree + */ + void exitInterface_definition(CSharpParser.Interface_definitionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#enum_definition}. + * @param ctx the parse tree + */ + void enterEnum_definition(CSharpParser.Enum_definitionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#enum_definition}. + * @param ctx the parse tree + */ + void exitEnum_definition(CSharpParser.Enum_definitionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#delegate_definition}. + * @param ctx the parse tree + */ + void enterDelegate_definition(CSharpParser.Delegate_definitionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#delegate_definition}. + * @param ctx the parse tree + */ + void exitDelegate_definition(CSharpParser.Delegate_definitionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#event_declaration}. + * @param ctx the parse tree + */ + void enterEvent_declaration(CSharpParser.Event_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#event_declaration}. + * @param ctx the parse tree + */ + void exitEvent_declaration(CSharpParser.Event_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#field_declaration}. + * @param ctx the parse tree + */ + void enterField_declaration(CSharpParser.Field_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#field_declaration}. + * @param ctx the parse tree + */ + void exitField_declaration(CSharpParser.Field_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#property_declaration}. + * @param ctx the parse tree + */ + void enterProperty_declaration(CSharpParser.Property_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#property_declaration}. + * @param ctx the parse tree + */ + void exitProperty_declaration(CSharpParser.Property_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#constant_declaration}. + * @param ctx the parse tree + */ + void enterConstant_declaration(CSharpParser.Constant_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#constant_declaration}. + * @param ctx the parse tree + */ + void exitConstant_declaration(CSharpParser.Constant_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#indexer_declaration}. + * @param ctx the parse tree + */ + void enterIndexer_declaration(CSharpParser.Indexer_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#indexer_declaration}. + * @param ctx the parse tree + */ + void exitIndexer_declaration(CSharpParser.Indexer_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#destructor_definition}. + * @param ctx the parse tree + */ + void enterDestructor_definition(CSharpParser.Destructor_definitionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#destructor_definition}. + * @param ctx the parse tree + */ + void exitDestructor_definition(CSharpParser.Destructor_definitionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#constructor_declaration}. + * @param ctx the parse tree + */ + void enterConstructor_declaration(CSharpParser.Constructor_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#constructor_declaration}. + * @param ctx the parse tree + */ + void exitConstructor_declaration(CSharpParser.Constructor_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#method_declaration}. + * @param ctx the parse tree + */ + void enterMethod_declaration(CSharpParser.Method_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#method_declaration}. + * @param ctx the parse tree + */ + void exitMethod_declaration(CSharpParser.Method_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#method_member_name}. + * @param ctx the parse tree + */ + void enterMethod_member_name(CSharpParser.Method_member_nameContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#method_member_name}. + * @param ctx the parse tree + */ + void exitMethod_member_name(CSharpParser.Method_member_nameContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#operator_declaration}. + * @param ctx the parse tree + */ + void enterOperator_declaration(CSharpParser.Operator_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#operator_declaration}. + * @param ctx the parse tree + */ + void exitOperator_declaration(CSharpParser.Operator_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#arg_declaration}. + * @param ctx the parse tree + */ + void enterArg_declaration(CSharpParser.Arg_declarationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#arg_declaration}. + * @param ctx the parse tree + */ + void exitArg_declaration(CSharpParser.Arg_declarationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#method_invocation}. + * @param ctx the parse tree + */ + void enterMethod_invocation(CSharpParser.Method_invocationContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#method_invocation}. + * @param ctx the parse tree + */ + void exitMethod_invocation(CSharpParser.Method_invocationContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#object_creation_expression}. + * @param ctx the parse tree + */ + void enterObject_creation_expression(CSharpParser.Object_creation_expressionContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#object_creation_expression}. + * @param ctx the parse tree + */ + void exitObject_creation_expression(CSharpParser.Object_creation_expressionContext ctx); + /** + * Enter a parse tree produced by {@link CSharpParser#identifier}. + * @param ctx the parse tree + */ + void enterIdentifier(CSharpParser.IdentifierContext ctx); + /** + * Exit a parse tree produced by {@link CSharpParser#identifier}. + * @param ctx the parse tree + */ + void exitIdentifier(CSharpParser.IdentifierContext ctx); +} \ No newline at end of file diff --git a/src/com/carvalab/archtool/parsers/CSharpParserVisitor.java b/src/com/carvalab/archtool/parsers/CSharpParserVisitor.java new file mode 100644 index 0000000..caeab4d --- /dev/null +++ b/src/com/carvalab/archtool/parsers/CSharpParserVisitor.java @@ -0,0 +1,1483 @@ +// Generated from CSharpParser.g4 by ANTLR 4.6 + package com.carvalab.archtool.parsers; +import org.antlr.v4.runtime.tree.ParseTreeVisitor; + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by {@link CSharpParser}. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public interface CSharpParserVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by {@link CSharpParser#compilation_unit}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCompilation_unit(CSharpParser.Compilation_unitContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#namespace_or_type_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamespace_or_type_name(CSharpParser.Namespace_or_type_nameContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType(CSharpParser.TypeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#base_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBase_type(CSharpParser.Base_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#simple_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSimple_type(CSharpParser.Simple_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#numeric_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNumeric_type(CSharpParser.Numeric_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#integral_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIntegral_type(CSharpParser.Integral_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#floating_point_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFloating_point_type(CSharpParser.Floating_point_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#class_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClass_type(CSharpParser.Class_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type_argument_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_argument_list(CSharpParser.Type_argument_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#argument_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArgument_list(CSharpParser.Argument_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#argument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArgument(CSharpParser.ArgumentContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpression(CSharpParser.ExpressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#non_assignment_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNon_assignment_expression(CSharpParser.Non_assignment_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#assignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignment(CSharpParser.AssignmentContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#assignment_operator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignment_operator(CSharpParser.Assignment_operatorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#conditional_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConditional_expression(CSharpParser.Conditional_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#null_coalescing_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNull_coalescing_expression(CSharpParser.Null_coalescing_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#conditional_or_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConditional_or_expression(CSharpParser.Conditional_or_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#conditional_and_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConditional_and_expression(CSharpParser.Conditional_and_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#inclusive_or_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInclusive_or_expression(CSharpParser.Inclusive_or_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#exclusive_or_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExclusive_or_expression(CSharpParser.Exclusive_or_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#and_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnd_expression(CSharpParser.And_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#equality_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEquality_expression(CSharpParser.Equality_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#relational_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRelational_expression(CSharpParser.Relational_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#shift_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShift_expression(CSharpParser.Shift_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#additive_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAdditive_expression(CSharpParser.Additive_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#multiplicative_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMultiplicative_expression(CSharpParser.Multiplicative_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#unary_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnary_expression(CSharpParser.Unary_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#primary_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimary_expression(CSharpParser.Primary_expressionContext ctx); + /** + * Visit a parse tree produced by the {@code literalExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLiteralExpression(CSharpParser.LiteralExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code simpleNameExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSimpleNameExpression(CSharpParser.SimpleNameExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code parenthesisExpressions} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParenthesisExpressions(CSharpParser.ParenthesisExpressionsContext ctx); + /** + * Visit a parse tree produced by the {@code memberAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMemberAccessExpression(CSharpParser.MemberAccessExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code literalAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLiteralAccessExpression(CSharpParser.LiteralAccessExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code thisReferenceExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitThisReferenceExpression(CSharpParser.ThisReferenceExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code baseAccessExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBaseAccessExpression(CSharpParser.BaseAccessExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code objectCreationExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObjectCreationExpression(CSharpParser.ObjectCreationExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code typeofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeofExpression(CSharpParser.TypeofExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code checkedExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCheckedExpression(CSharpParser.CheckedExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code uncheckedExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUncheckedExpression(CSharpParser.UncheckedExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code defaultValueExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDefaultValueExpression(CSharpParser.DefaultValueExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code anonymousMethodExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnonymousMethodExpression(CSharpParser.AnonymousMethodExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code sizeofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSizeofExpression(CSharpParser.SizeofExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code nameofExpression} + * labeled alternative in {@link CSharpParser#primary_expression_start}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNameofExpression(CSharpParser.NameofExpressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#member_access}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMember_access(CSharpParser.Member_accessContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#bracket_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBracket_expression(CSharpParser.Bracket_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#indexer_argument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndexer_argument(CSharpParser.Indexer_argumentContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#predefined_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPredefined_type(CSharpParser.Predefined_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#expression_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpression_list(CSharpParser.Expression_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#object_or_collection_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObject_or_collection_initializer(CSharpParser.Object_or_collection_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#object_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObject_initializer(CSharpParser.Object_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#member_initializer_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMember_initializer_list(CSharpParser.Member_initializer_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#member_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMember_initializer(CSharpParser.Member_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#initializer_value}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInitializer_value(CSharpParser.Initializer_valueContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#collection_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCollection_initializer(CSharpParser.Collection_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#element_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitElement_initializer(CSharpParser.Element_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#anonymous_object_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnonymous_object_initializer(CSharpParser.Anonymous_object_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#member_declarator_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMember_declarator_list(CSharpParser.Member_declarator_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#member_declarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMember_declarator(CSharpParser.Member_declaratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#unbound_type_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnbound_type_name(CSharpParser.Unbound_type_nameContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#generic_dimension_specifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneric_dimension_specifier(CSharpParser.Generic_dimension_specifierContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#isType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIsType(CSharpParser.IsTypeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#lambda_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambda_expression(CSharpParser.Lambda_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#anonymous_function_signature}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnonymous_function_signature(CSharpParser.Anonymous_function_signatureContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#explicit_anonymous_function_parameter_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplicit_anonymous_function_parameter_list(CSharpParser.Explicit_anonymous_function_parameter_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#explicit_anonymous_function_parameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplicit_anonymous_function_parameter(CSharpParser.Explicit_anonymous_function_parameterContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#implicit_anonymous_function_parameter_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImplicit_anonymous_function_parameter_list(CSharpParser.Implicit_anonymous_function_parameter_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#anonymous_function_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnonymous_function_body(CSharpParser.Anonymous_function_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#query_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuery_expression(CSharpParser.Query_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#from_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFrom_clause(CSharpParser.From_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#query_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuery_body(CSharpParser.Query_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#query_body_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuery_body_clause(CSharpParser.Query_body_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#let_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLet_clause(CSharpParser.Let_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#where_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhere_clause(CSharpParser.Where_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#combined_join_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCombined_join_clause(CSharpParser.Combined_join_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#orderby_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrderby_clause(CSharpParser.Orderby_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#ordering}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrdering(CSharpParser.OrderingContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#select_or_group_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSelect_or_group_clause(CSharpParser.Select_or_group_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#query_continuation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQuery_continuation(CSharpParser.Query_continuationContext ctx); + /** + * Visit a parse tree produced by the {@code labeledStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLabeledStatement(CSharpParser.LabeledStatementContext ctx); + /** + * Visit a parse tree produced by the {@code declarationStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDeclarationStatement(CSharpParser.DeclarationStatementContext ctx); + /** + * Visit a parse tree produced by the {@code embeddedStatement} + * labeled alternative in {@link CSharpParser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEmbeddedStatement(CSharpParser.EmbeddedStatementContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEmbedded_statement(CSharpParser.Embedded_statementContext ctx); + /** + * Visit a parse tree produced by the {@code emptyStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEmptyStatement(CSharpParser.EmptyStatementContext ctx); + /** + * Visit a parse tree produced by the {@code expressionStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpressionStatement(CSharpParser.ExpressionStatementContext ctx); + /** + * Visit a parse tree produced by the {@code ifStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIfStatement(CSharpParser.IfStatementContext ctx); + /** + * Visit a parse tree produced by the {@code switchStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchStatement(CSharpParser.SwitchStatementContext ctx); + /** + * Visit a parse tree produced by the {@code whileStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhileStatement(CSharpParser.WhileStatementContext ctx); + /** + * Visit a parse tree produced by the {@code doStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDoStatement(CSharpParser.DoStatementContext ctx); + /** + * Visit a parse tree produced by the {@code forStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForStatement(CSharpParser.ForStatementContext ctx); + /** + * Visit a parse tree produced by the {@code foreschStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForeschStatement(CSharpParser.ForeschStatementContext ctx); + /** + * Visit a parse tree produced by the {@code breakStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBreakStatement(CSharpParser.BreakStatementContext ctx); + /** + * Visit a parse tree produced by the {@code continueStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitContinueStatement(CSharpParser.ContinueStatementContext ctx); + /** + * Visit a parse tree produced by the {@code gotoStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGotoStatement(CSharpParser.GotoStatementContext ctx); + /** + * Visit a parse tree produced by the {@code returnStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReturnStatement(CSharpParser.ReturnStatementContext ctx); + /** + * Visit a parse tree produced by the {@code throwStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitThrowStatement(CSharpParser.ThrowStatementContext ctx); + /** + * Visit a parse tree produced by the {@code tryStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTryStatement(CSharpParser.TryStatementContext ctx); + /** + * Visit a parse tree produced by the {@code checkedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCheckedStatement(CSharpParser.CheckedStatementContext ctx); + /** + * Visit a parse tree produced by the {@code uncheckedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUncheckedStatement(CSharpParser.UncheckedStatementContext ctx); + /** + * Visit a parse tree produced by the {@code lockStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLockStatement(CSharpParser.LockStatementContext ctx); + /** + * Visit a parse tree produced by the {@code usingStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUsingStatement(CSharpParser.UsingStatementContext ctx); + /** + * Visit a parse tree produced by the {@code yieldStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitYieldStatement(CSharpParser.YieldStatementContext ctx); + /** + * Visit a parse tree produced by the {@code unsafeStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUnsafeStatement(CSharpParser.UnsafeStatementContext ctx); + /** + * Visit a parse tree produced by the {@code fixedStatement} + * labeled alternative in {@link CSharpParser#simple_embedded_statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFixedStatement(CSharpParser.FixedStatementContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#block}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBlock(CSharpParser.BlockContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#local_variable_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLocal_variable_declaration(CSharpParser.Local_variable_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#local_variable_declarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLocal_variable_declarator(CSharpParser.Local_variable_declaratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#local_variable_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLocal_variable_initializer(CSharpParser.Local_variable_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#local_constant_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLocal_constant_declaration(CSharpParser.Local_constant_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#if_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIf_body(CSharpParser.If_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#switch_section}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitch_section(CSharpParser.Switch_sectionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#switch_label}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitch_label(CSharpParser.Switch_labelContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#statement_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStatement_list(CSharpParser.Statement_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#for_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFor_initializer(CSharpParser.For_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#for_iterator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFor_iterator(CSharpParser.For_iteratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#catch_clauses}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCatch_clauses(CSharpParser.Catch_clausesContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#specific_catch_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSpecific_catch_clause(CSharpParser.Specific_catch_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#general_catch_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGeneral_catch_clause(CSharpParser.General_catch_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#exception_filter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitException_filter(CSharpParser.Exception_filterContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#finally_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFinally_clause(CSharpParser.Finally_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#resource_acquisition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitResource_acquisition(CSharpParser.Resource_acquisitionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#namespace_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamespace_declaration(CSharpParser.Namespace_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#qualified_identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQualified_identifier(CSharpParser.Qualified_identifierContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#namespace_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamespace_body(CSharpParser.Namespace_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#extern_alias_directives}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExtern_alias_directives(CSharpParser.Extern_alias_directivesContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#extern_alias_directive}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExtern_alias_directive(CSharpParser.Extern_alias_directiveContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#using_directives}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUsing_directives(CSharpParser.Using_directivesContext ctx); + /** + * Visit a parse tree produced by the {@code usingAliasDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUsingAliasDirective(CSharpParser.UsingAliasDirectiveContext ctx); + /** + * Visit a parse tree produced by the {@code usingNamespaceDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUsingNamespaceDirective(CSharpParser.UsingNamespaceDirectiveContext ctx); + /** + * Visit a parse tree produced by the {@code usingStaticDirective} + * labeled alternative in {@link CSharpParser#using_directive}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitUsingStaticDirective(CSharpParser.UsingStaticDirectiveContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#namespace_member_declarations}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamespace_member_declarations(CSharpParser.Namespace_member_declarationsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#namespace_member_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNamespace_member_declaration(CSharpParser.Namespace_member_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_declaration(CSharpParser.Type_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#qualified_alias_member}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQualified_alias_member(CSharpParser.Qualified_alias_memberContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type_parameter_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_parameter_list(CSharpParser.Type_parameter_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type_parameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_parameter(CSharpParser.Type_parameterContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#class_base}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClass_base(CSharpParser.Class_baseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interface_type_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterface_type_list(CSharpParser.Interface_type_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type_parameter_constraints_clauses}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_parameter_constraints_clauses(CSharpParser.Type_parameter_constraints_clausesContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type_parameter_constraints_clause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_parameter_constraints_clause(CSharpParser.Type_parameter_constraints_clauseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#type_parameter_constraints}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitType_parameter_constraints(CSharpParser.Type_parameter_constraintsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#primary_constraint}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimary_constraint(CSharpParser.Primary_constraintContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#secondary_constraints}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSecondary_constraints(CSharpParser.Secondary_constraintsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#constructor_constraint}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructor_constraint(CSharpParser.Constructor_constraintContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#class_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClass_body(CSharpParser.Class_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#class_member_declarations}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClass_member_declarations(CSharpParser.Class_member_declarationsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#class_member_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClass_member_declaration(CSharpParser.Class_member_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#all_member_modifiers}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAll_member_modifiers(CSharpParser.All_member_modifiersContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#all_member_modifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAll_member_modifier(CSharpParser.All_member_modifierContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#common_member_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCommon_member_declaration(CSharpParser.Common_member_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#typed_member_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTyped_member_declaration(CSharpParser.Typed_member_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#constant_declarators}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstant_declarators(CSharpParser.Constant_declaratorsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#constant_declarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstant_declarator(CSharpParser.Constant_declaratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#variable_declarators}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariable_declarators(CSharpParser.Variable_declaratorsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#variable_declarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariable_declarator(CSharpParser.Variable_declaratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#variable_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariable_initializer(CSharpParser.Variable_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#return_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReturn_type(CSharpParser.Return_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#member_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMember_name(CSharpParser.Member_nameContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#method_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethod_body(CSharpParser.Method_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#formal_parameter_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFormal_parameter_list(CSharpParser.Formal_parameter_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#fixed_parameters}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFixed_parameters(CSharpParser.Fixed_parametersContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#fixed_parameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFixed_parameter(CSharpParser.Fixed_parameterContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#parameter_modifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParameter_modifier(CSharpParser.Parameter_modifierContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#parameter_array}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParameter_array(CSharpParser.Parameter_arrayContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#accessor_declarations}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAccessor_declarations(CSharpParser.Accessor_declarationsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#get_accessor_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGet_accessor_declaration(CSharpParser.Get_accessor_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#set_accessor_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSet_accessor_declaration(CSharpParser.Set_accessor_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#accessor_modifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAccessor_modifier(CSharpParser.Accessor_modifierContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#accessor_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAccessor_body(CSharpParser.Accessor_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#event_accessor_declarations}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEvent_accessor_declarations(CSharpParser.Event_accessor_declarationsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#add_accessor_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAdd_accessor_declaration(CSharpParser.Add_accessor_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#remove_accessor_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRemove_accessor_declaration(CSharpParser.Remove_accessor_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#overloadable_operator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOverloadable_operator(CSharpParser.Overloadable_operatorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#conversion_operator_declarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConversion_operator_declarator(CSharpParser.Conversion_operator_declaratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#constructor_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructor_initializer(CSharpParser.Constructor_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBody(CSharpParser.BodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#struct_interfaces}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStruct_interfaces(CSharpParser.Struct_interfacesContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#struct_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStruct_body(CSharpParser.Struct_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#struct_member_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStruct_member_declaration(CSharpParser.Struct_member_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#array_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArray_type(CSharpParser.Array_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#rank_specifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRank_specifier(CSharpParser.Rank_specifierContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#array_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArray_initializer(CSharpParser.Array_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#variant_type_parameter_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariant_type_parameter_list(CSharpParser.Variant_type_parameter_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#variant_type_parameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariant_type_parameter(CSharpParser.Variant_type_parameterContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#variance_annotation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariance_annotation(CSharpParser.Variance_annotationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interface_base}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterface_base(CSharpParser.Interface_baseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interface_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterface_body(CSharpParser.Interface_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interface_member_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterface_member_declaration(CSharpParser.Interface_member_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interface_accessors}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterface_accessors(CSharpParser.Interface_accessorsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#enum_base}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnum_base(CSharpParser.Enum_baseContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#enum_body}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnum_body(CSharpParser.Enum_bodyContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#enum_member_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnum_member_declaration(CSharpParser.Enum_member_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#global_attribute_section}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGlobal_attribute_section(CSharpParser.Global_attribute_sectionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#global_attribute_target}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGlobal_attribute_target(CSharpParser.Global_attribute_targetContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#attributes}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAttributes(CSharpParser.AttributesContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#attribute_section}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAttribute_section(CSharpParser.Attribute_sectionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#attribute_target}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAttribute_target(CSharpParser.Attribute_targetContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#attribute_list}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAttribute_list(CSharpParser.Attribute_listContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#attribute}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAttribute(CSharpParser.AttributeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#attribute_argument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAttribute_argument(CSharpParser.Attribute_argumentContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#pointer_type}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPointer_type(CSharpParser.Pointer_typeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#fixed_pointer_declarators}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFixed_pointer_declarators(CSharpParser.Fixed_pointer_declaratorsContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#fixed_pointer_declarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFixed_pointer_declarator(CSharpParser.Fixed_pointer_declaratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#fixed_pointer_initializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFixed_pointer_initializer(CSharpParser.Fixed_pointer_initializerContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#fixed_size_buffer_declarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFixed_size_buffer_declarator(CSharpParser.Fixed_size_buffer_declaratorContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#local_variable_initializer_unsafe}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLocal_variable_initializer_unsafe(CSharpParser.Local_variable_initializer_unsafeContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#right_arrow}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRight_arrow(CSharpParser.Right_arrowContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#right_shift}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRight_shift(CSharpParser.Right_shiftContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#right_shift_assignment}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRight_shift_assignment(CSharpParser.Right_shift_assignmentContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLiteral(CSharpParser.LiteralContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#boolean_literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBoolean_literal(CSharpParser.Boolean_literalContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#string_literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitString_literal(CSharpParser.String_literalContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interpolated_regular_string}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterpolated_regular_string(CSharpParser.Interpolated_regular_stringContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interpolated_verbatium_string}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterpolated_verbatium_string(CSharpParser.Interpolated_verbatium_stringContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interpolated_regular_string_part}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterpolated_regular_string_part(CSharpParser.Interpolated_regular_string_partContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interpolated_verbatium_string_part}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterpolated_verbatium_string_part(CSharpParser.Interpolated_verbatium_string_partContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interpolated_string_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterpolated_string_expression(CSharpParser.Interpolated_string_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#keyword}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitKeyword(CSharpParser.KeywordContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#class_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClass_definition(CSharpParser.Class_definitionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#struct_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStruct_definition(CSharpParser.Struct_definitionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#interface_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterface_definition(CSharpParser.Interface_definitionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#enum_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnum_definition(CSharpParser.Enum_definitionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#delegate_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDelegate_definition(CSharpParser.Delegate_definitionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#event_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEvent_declaration(CSharpParser.Event_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#field_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitField_declaration(CSharpParser.Field_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#property_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitProperty_declaration(CSharpParser.Property_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#constant_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstant_declaration(CSharpParser.Constant_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#indexer_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIndexer_declaration(CSharpParser.Indexer_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#destructor_definition}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDestructor_definition(CSharpParser.Destructor_definitionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#constructor_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructor_declaration(CSharpParser.Constructor_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#method_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethod_declaration(CSharpParser.Method_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#method_member_name}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethod_member_name(CSharpParser.Method_member_nameContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#operator_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOperator_declaration(CSharpParser.Operator_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#arg_declaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArg_declaration(CSharpParser.Arg_declarationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#method_invocation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethod_invocation(CSharpParser.Method_invocationContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#object_creation_expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitObject_creation_expression(CSharpParser.Object_creation_expressionContext ctx); + /** + * Visit a parse tree produced by {@link CSharpParser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifier(CSharpParser.IdentifierContext ctx); +} \ No newline at end of file diff --git a/src/com/carvalab/archtool/util/FormatFilterFileVisitor.java b/src/com/carvalab/archtool/util/FormatFilterFileVisitor.java new file mode 100644 index 0000000..68baa8f --- /dev/null +++ b/src/com/carvalab/archtool/util/FormatFilterFileVisitor.java @@ -0,0 +1,36 @@ +package com.carvalab.archtool.util; + +import java.io.File; +import java.nio.file.FileVisitResult; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.function.Consumer; + +public class FormatFilterFileVisitor extends SimpleFileVisitor { + + private String formatFilter = ".*"; + private Consumer fileOperationConsumer; + + public FormatFilterFileVisitor(String filter, Consumer fileOperationConsumer) { + formatFilter = filter; + this.fileOperationConsumer = fileOperationConsumer; + } + + @Override + public FileVisitResult visitFile(Path path, BasicFileAttributes basicFileAttributes) { + if (basicFileAttributes.isRegularFile()) { + File file = path.toFile(); + if (file.getName().endsWith(formatFilter)) { + fileOperationConsumer.accept(file); + } + // System.out.println(path + " is a regular file with size " + basicFileAttributes.size()); + } else if (basicFileAttributes.isSymbolicLink()) { + // System.out.println(path + " is a symbolic link."); + } else { + // System.out.println(path + " is not a regular file or symbolic link."); + } + return FileVisitResult.CONTINUE; + } + +}